# Amp
Source: https://docs.controlplane.com/ai/amp
Connect Amp, Sourcegraph's agentic coding tool, to Control Plane to operate your infrastructure from inside your editor or the Amp CLI.
## Prerequisites
Install [Amp](https://ampcode.com) for your editor or CLI
Sign up at [console.cpln.io](https://console.cpln.io) if you don't have an account yet
## Add the MCP server
```bash theme={null}
amp mcp add cpln https://mcp.cpln.io/mcp
```
Connecting to the bare URL uses the default **`core`** toolset profile — a focused set that already covers the whole build-and-operate workflow (it can read and delete any resource kind generically, and reach anything else through the raw-API tool), which is the right fit for this client. Append `?toolsets=mk8s` to add BYOK Kubernetes tools, or `?toolsets=full` for everything. See [toolset profiles](/ai/mcp#toolset-profiles).
Launch the Amp CLI. Amp opens your browser automatically:
1. Sign in to Control Plane (Google, GitHub, Microsoft, or SAML).
2. Select the orgs you want Amp to access.
3. Click **Authorize**.
Your browser shows a success page — close the tab and return to Amp.
In Amp, ask "list GVCs in org ``" (using one of the orgs you authorized) to confirm.
## Example conversation
```
Use org "my-org" and gvc "my-gvc" for context.
```
```
Create a publicly accessible workload called "my-api" using nginx:latest on port 80.
```
```
Monitor the readiness of my-api and give me the public endpoint once it's ready.
```
## Next steps
Practical prompts for common Control Plane workflows
30+ production-ready templates your AI can deploy on request
# Antigravity
Source: https://docs.controlplane.com/ai/antigravity
Connect Google Antigravity (CLI or IDE) to Control Plane to manage your infrastructure with AI-powered development workflows.
## Prerequisites
Download [Antigravity](https://antigravity.google)
Sign up at [console.cpln.io](https://console.cpln.io) if you don't have an account yet
For the latest MCP configuration options in Antigravity, see the official [Google Antigravity documentation](https://antigravity.google/docs).
## Add the MCP server
Open `mcp_config.json` in your editor:
| OS | Path |
| ------------- | ---------------------------------------------- |
| macOS / Linux | `~/.gemini/config/mcp_config.json` |
| Windows | `%USERPROFILE%\.gemini\config\mcp_config.json` |
Create the `.gemini/config` directory and `mcp_config.json` file if they don't exist.
```json theme={null}
{
"mcpServers": {
"cpln": {
"serverUrl": "https://mcp.cpln.io/mcp"
}
}
}
```
Connecting to the bare URL uses the default **`core`** toolset profile — a focused set that already covers the whole build-and-operate workflow (it can read and delete any resource kind generically, and reach anything else through the raw-API tool), which is the right fit for this client. Append `?toolsets=mk8s` to add BYOK Kubernetes tools, or `?toolsets=full` for everything. See [toolset profiles](/ai/mcp#toolset-profiles).
Save the file.
Trigger the OAuth flow:
* **Antigravity CLI** — run `/mcp`, select `cpln`, and choose **Authenticate**.
* **Antigravity IDE** — the agent reports an **MCP Error** for the new server; click it, then **View MCP Settings → Authenticate** (or **Settings → Customizations → Authenticate** next to the `cpln` MCP).
Your browser opens:
1. Sign in to Control Plane (Google, GitHub, Microsoft, or SAML).
2. Select the orgs you want Antigravity to access.
3. Click **Authorize**.
The browser redirects to an Antigravity page with a code — copy it.
Back in Antigravity, paste the code into the prompt. The `cpln` server is now connected.
In the agent, ask "list GVCs in org ``" (using one of the orgs you authorized) to confirm.
## Example conversation
```
Use org "my-org" and gvc "my-gvc" for context.
```
```
Create a publicly accessible workload called "my-api" using nginx:latest on port 80.
```
```
Monitor the readiness of my-api and give me the public endpoint once it's ready.
```
## Troubleshooting
Open **Settings → Customizations**, click **Sign Out** next to the `cpln` MCP, then click **Authenticate** to start the OAuth flow again. Sign in again and adjust your org selections on the consent screen.
## Next steps
Practical prompts for common Control Plane workflows
30+ production-ready templates your AI can deploy on request
# Claude Code
Source: https://docs.controlplane.com/ai/claude
Connect Claude Code to Control Plane to deploy and operate your infrastructure through natural-language conversations.
We recommend the [Control Plane AI Plugin](/ai/plugin) for Claude Code. The plugin bundles the MCP server.
## Prerequisites
Download [Claude Code](https://claude.com/product/claude-code)
Sign up at [console.cpln.io](https://console.cpln.io) if you don't have an account yet
## Add the MCP server
Use the `claude mcp add` command:
```bash theme={null}
claude mcp add --transport http cpln "https://mcp.cpln.io/mcp?toolsets=full" --scope user
```
The **user** scope makes the server available across all your projects. Use `--scope project` to add it for the current directory only.
`?toolsets=full` serves the complete tool catalog — what the plugin configures for every client. Claude Code loads tool schemas on demand, so the full catalog costs nothing up front (see [toolset profiles](/ai/mcp#toolset-profiles)).
See the [Claude Code MCP installation scopes](https://code.claude.com/docs/en/mcp#mcp-installation-scopes) for the full set of scope options.
Launch Claude Code. It detects the new server and reports that authentication is required. Run `/mcp`, navigate to **cpln**, and choose **Authenticate** — your browser opens:
1. Sign in to Control Plane (Google, GitHub, Microsoft, or SAML).
2. Select the orgs you want this Claude Code install to access.
3. Click **Authorize**.
Your browser shows a success page — close the tab and return to Claude Code.
In Claude Code, ask: "list GVCs in org ``" (using one of the orgs you authorized). You should see the GVCs in that org.
## Example conversation
```
Use org "my-org" and gvc "my-gvc" for context.
```
```
Create a publicly accessible workload called "my-api" using nginx:latest on port 80.
```
```
Monitor the readiness of my-api and give me the public endpoint once it's ready.
```
## Troubleshooting
Some terminal setups can't launch a browser. Claude Code prints a fallback URL — copy it into a browser on the same machine and complete sign-in there.
In Claude Code, run `/mcp`, select **cpln**, and choose **Re-authenticate**. Sign in again and adjust your org selections on the consent screen.
## Next steps
Practical prompts for common Control Plane workflows
Layer skills, agents, slash commands, and guardrails on top of the MCP server
# Claude Desktop
Source: https://docs.controlplane.com/ai/claude-desktop
Connect the Claude desktop app on macOS or Windows to Control Plane via a Custom Connector.
Connectors sync across Claude. Setting this up in the desktop app also enables it in [Claude Web](/ai/claude-web), and vice versa — you only need to do it once.
## Prerequisites
Download [Claude for Mac or Windows](https://claude.ai/download)
Sign up at [console.cpln.io](https://console.cpln.io) if you don't have an account yet
## Add the MCP server
Open [claude://claude.ai/customize/connectors](claude://claude.ai/customize/connectors) to jump directly to the Connectors page in the desktop app.
If the link doesn't open the app, navigate manually: **Settings** → **Connectors** → **Customize**.
Click the **+** button, then **Add custom connector**, and fill in:
| Field | Value |
| ------------------------- | ------------------------- |
| **Name** | `Control Plane` |
| **Remote MCP server URL** | `https://mcp.cpln.io/mcp` |
Connecting to the bare URL uses the default **`core`** toolset profile — a focused set that already covers the whole build-and-operate workflow (it can read and delete any resource kind generically, and reach anything else through the raw-API tool), which is the right fit for this client. Append `?toolsets=mk8s` to add BYOK Kubernetes tools, or `?toolsets=full` for everything. See [toolset profiles](/ai/mcp#toolset-profiles).
Click **Add**.
On the new Control Plane connector card, click **Connect**. Claude opens your default browser for sign-in.
1. Sign in to Control Plane (Google, GitHub, Microsoft, or SAML).
2. Select the orgs you want Claude to access.
3. Click **Authorize**.
Return to the Claude app — the connector shows as **Connected**.
Start a new chat. The Control Plane tools are available — ask Claude to "list GVCs in org ``" (using one of the orgs you authorized) to confirm.
For the latest connector setup details, see Anthropic's [Custom Connectors documentation](https://support.anthropic.com/en/articles/11176164-pre-built-connectors-using-remote-mcp).
## Example conversation
```
Use org "my-org" and gvc "my-gvc" for context.
```
```
Create a publicly accessible workload called "my-api" using nginx:latest on port 80.
```
```
Monitor the readiness of my-api and give me the public endpoint once it's ready.
```
## Troubleshooting
Make sure a default browser is set in your OS. Re-trigger sign-in by removing the connector and adding it again.
Open [claude://claude.ai/customize/connectors](claude://claude.ai/customize/connectors) (or **Settings → Connectors → Customize**), disconnect the **Control Plane** connector, then click **Connect** again. Sign in and adjust your org selections on the consent screen.
## Next steps
Practical prompts for common Control Plane workflows
30+ production-ready templates your AI can deploy on request
# Claude Web
Source: https://docs.controlplane.com/ai/claude-web
Connect claude.ai in your browser to Control Plane via a Custom Connector.
Connectors sync across Claude. Setting this up on claude.ai also enables it in the [Claude desktop app](/ai/claude-desktop), and vice versa — you only need to do it once.
## Prerequisites
Sign in at [claude.ai](https://claude.ai)
Sign up at [console.cpln.io](https://console.cpln.io) if you don't have an account yet
## Add the MCP server
Go to [claude.ai/customize/connectors](https://claude.ai/customize/connectors).
Click the **+** button, then **Add custom connector**, and fill in:
| Field | Value |
| ------------------------- | ------------------------- |
| **Name** | `Control Plane` |
| **Remote MCP server URL** | `https://mcp.cpln.io/mcp` |
Connecting to the bare URL uses the default **`core`** toolset profile — a focused set that already covers the whole build-and-operate workflow (it can read and delete any resource kind generically, and reach anything else through the raw-API tool), which is the right fit for this client. Append `?toolsets=mk8s` to add BYOK Kubernetes tools, or `?toolsets=full` for everything. See [toolset profiles](/ai/mcp#toolset-profiles).
Click **Add**.
On the new Control Plane connector card, click **Connect**. Claude opens a new tab for sign-in.
1. Sign in to Control Plane (Google, GitHub, Microsoft, or SAML).
2. Select the orgs you want claude.ai to access.
3. Click **Authorize**.
The tab closes automatically and the connector shows as **Connected**.
Open a new chat. The Control Plane tools are now available — try asking Claude to "list GVCs in org ``" (using one of the orgs you authorized) to confirm.
For the latest connector setup details, see Anthropic's [Custom Connectors documentation](https://support.anthropic.com/en/articles/11176164-pre-built-connectors-using-remote-mcp).
## Example conversation
```
Use org "my-org" and gvc "my-gvc" for context.
```
```
Create a publicly accessible workload called "my-api" using nginx:latest on port 80.
```
```
Monitor the readiness of my-api and give me the public endpoint once it's ready.
```
## Troubleshooting
Go to [claude.ai/customize/connectors](https://claude.ai/customize/connectors), disconnect the **Control Plane** connector, then click **Connect** again. Sign in and adjust your org selections on the consent screen.
## Next steps
Practical prompts for common Control Plane workflows
30+ production-ready templates your AI can deploy on request
# OpenAI Codex
Source: https://docs.controlplane.com/ai/codex
Connect OpenAI Codex to Control Plane to manage your infrastructure through AI-assisted development.
We recommend the [Control Plane AI Plugin](/ai/plugin) for Codex. The plugin bundles the MCP server.
## Prerequisites
Install [Codex CLI](https://openai.com/codex)
Sign up at [console.cpln.io](https://console.cpln.io) if you don't have an account yet
For the latest MCP configuration options, refer to the official [OpenAI Codex documentation](https://developers.openai.com/codex).
## Add the MCP server
Use the `codex mcp add` command:
```bash theme={null}
codex mcp add cpln --url https://mcp.cpln.io/mcp
```
Connecting to the bare URL uses the default **`core`** toolset profile — a focused set that already covers the whole build-and-operate workflow (it can read and delete any resource kind generically, and reach anything else through the raw-API tool), which is the right fit for this client. Append `?toolsets=mk8s` to add BYOK Kubernetes tools, or `?toolsets=full` for everything. See [toolset profiles](/ai/mcp#toolset-profiles).
Run the login command:
```bash theme={null}
codex mcp login cpln
```
Your browser opens:
1. Sign in to Control Plane (Google, GitHub, Microsoft, or SAML).
2. Select the orgs you want this Codex install to access.
3. Click **Authorize**.
Your browser shows a success page — close the tab and return to Codex.
```bash theme={null}
codex mcp list
```
You should see `cpln` with **enabled** status and **OAuth** auth:
```text theme={null}
Name Url Bearer Token Env Var Status Auth
cpln https://mcp.cpln.io/mcp - enabled OAuth
```
Launch Codex and ask: "list GVCs in org ``" (using one of the orgs you authorized). You should see the GVCs in that org.
## Example conversation
```
Use org "my-org" and gvc "my-gvc" for context.
```
```
Create a publicly accessible workload called "my-api" using nginx:latest on port 80.
```
```
Monitor the readiness of my-api and give me the public endpoint once it's ready.
```
## Troubleshooting
Some terminal setups can't launch a browser. `codex mcp login cpln` prints a fallback URL — copy it into a browser on the same machine and complete sign-in there.
Re-run `codex mcp login cpln`, sign in again, and adjust your org selections on the consent screen.
## Next steps
Practical prompts for common Control Plane workflows
Layer skills, agents, slash commands, and guardrails on top of the MCP server
# Cursor IDE
Source: https://docs.controlplane.com/ai/cursor
Connect the Cursor desktop app to Control Plane to manage your infrastructure directly from your editor.
## Prerequisites
Download [Cursor](https://cursor.com)
Sign up at [console.cpln.io](https://console.cpln.io) if you don't have an account yet
## Add the MCP server
In Cursor, go to **Settings → Tools & MCPs**, then click **New MCP Server** under **Home MCP Servers**. Cursor opens your global `mcp.json`:
| OS | Path |
| ------------- | -------------------------------- |
| macOS / Linux | `~/.cursor/mcp.json` |
| Windows | `%USERPROFILE%\.cursor\mcp.json` |
```json theme={null}
{
"mcpServers": {
"cpln": {
"type": "http",
"url": "https://mcp.cpln.io/mcp"
}
}
}
```
Connecting to the bare URL uses the default **`core`** toolset profile — a focused set that already covers the whole build-and-operate workflow (it can read and delete any resource kind generically, and reach anything else through the raw-API tool), which is the right fit for this client. Append `?toolsets=mk8s` to add BYOK Kubernetes tools, or `?toolsets=full` for everything. See [toolset profiles](/ai/mcp#toolset-profiles).
Save and close the file.
Back in Cursor's MCP settings, the `cpln` server now shows a **Connect** button. Click it.
1. Sign in to Control Plane (Google, GitHub, Microsoft, or SAML).
2. Select the orgs you want Cursor to access.
3. Click **Authorize**.
Your browser shows a success page — close the tab and return to Cursor.
Open Cursor's AI chat and ask "list GVCs in org ``" (using one of the orgs you authorized) to confirm.
For the latest UI changes, see Cursor's [MCP documentation](https://cursor.com/docs/context/mcp).
## Example conversation
```
Use org "my-org" and gvc "my-gvc" for context.
```
```
Create a publicly accessible workload called "my-api" using nginx:latest on port 80.
```
```
Monitor the readiness of my-api and give me the public endpoint once it's ready.
```
## Troubleshooting
In Cursor's MCP settings, expand the `cpln` server, click **Logout**, then **Connect** again. Sign in again and adjust your org selections on the consent screen.
Verify the JSON syntax in `mcp.json` and reload Cursor.
## Next steps
Practical prompts for common Control Plane workflows
30+ production-ready templates your AI can deploy on request
# Cursor Web
Source: https://docs.controlplane.com/ai/cursor-web
Connect Cursor on the web to Control Plane to manage your infrastructure from your browser.
## Prerequisites
Open [Cursor on the web](https://cursor.com/agents)
Sign up at [console.cpln.io](https://console.cpln.io) if you don't have an account yet
## Add the MCP server
In Cursor on the web, click the **MCPs** dropdown.
Click **+**, select **Custom MCP**, and fill in:
| Field | Value |
| -------------- | ------------------------- |
| **Name** | `cpln` |
| **Server URL** | `https://mcp.cpln.io/mcp` |
Connecting to the bare URL uses the default **`core`** toolset profile — a focused set that already covers the whole build-and-operate workflow (it can read and delete any resource kind generically, and reach anything else through the raw-API tool), which is the right fit for this client. Append `?toolsets=mk8s` to add BYOK Kubernetes tools, or `?toolsets=full` for everything. See [toolset profiles](/ai/mcp#toolset-profiles).
Click **Add MCP**.
On the new `cpln` item in the MCPs dropdown, click **Login**.
1. Sign in to Control Plane (Google, GitHub, Microsoft, or SAML).
2. Select the orgs you want Cursor to access.
3. Click **Authorize**.
You're returned to the same Cursor page.
Ask "list GVCs in org ``" (using one of the orgs you authorized) to confirm.
For the latest UI changes, see Cursor's [MCP documentation](https://cursor.com/docs/context/mcp).
## Example conversation
```
Use org "my-org" and gvc "my-gvc" for context.
```
```
Create a publicly accessible workload called "my-api" using nginx:latest on port 80.
```
```
Monitor the readiness of my-api and give me the public endpoint once it's ready.
```
## Troubleshooting
In the MCPs dropdown, click **Edit** on the `cpln` MCP, click **Logout** in the popup, then **Login** again. Sign in again and adjust your org selections on the consent screen.
## Next steps
Practical prompts for common Control Plane workflows
30+ production-ready templates your AI can deploy on request
# Usage Examples
Source: https://docs.controlplane.com/ai/examples
Practical examples of using the Control Plane MCP Server with AI assistants
This page provides practical examples of how to interact with Control Plane through AI assistants using the MCP Server. These examples work across all [compatible tools](/ai/mcp#compatible-tools).
## Setting Context
Before performing operations, always set your organization and GVC context:
```text Natural Language theme={null}
Use org "my-org" and gvc "my-gvc" for the following operations.
```
```text Alternative theme={null}
Set my Control Plane context to organization "my-org" and GVC "my-gvc".
```
Setting context once at the start of a conversation helps the AI assistant understand which resources to target.
***
## GVC Operations
### Create a GVC
Create a new [Global Virtual Cloud](/concepts/gvc) with specific locations. You can use friendly location names or technical location IDs:
```text Basic GVC (Friendly Names) theme={null}
Create a new GVC called "production" with locations in Frankfurt, Virginia, and Dublin.
```
```text Basic GVC (Technical IDs) theme={null}
Create a new GVC called "production" with locations in aws-us-east-1 and aws-eu-west-1.
```
```text Multi-Cloud GVC theme={null}
Create a GVC named "multi-cloud-app" with locations:
- azure-centralus
- gcp-me-west1
- aws-eu-central-1
```
```text With Description theme={null}
Create a GVC called "staging" with these settings:
- Description: "Staging environment for QA testing"
- Locations: Frankfurt, Dublin
- Tags: environment=staging, team=platform
```
You can use friendly location names (like "Frankfurt", "Virginia", "Dublin") or technical location IDs (like "aws-eu-central-1", "aws-us-east-1"). The MCP server will resolve friendly names to the appropriate location IDs.
### List GVCs
```text theme={null}
Show me all GVCs in the org "my-org".
```
### Get GVC Details
```text theme={null}
Get the details of GVC "production" including its locations and configuration.
```
***
## Workload Operations
### Create a Workload
Create a new [workload](/concepts/workload) with various configurations:
```text Basic Workload theme={null}
Create a publicly accessible workload called "api-server" with:
- Image: nginx:latest
- Port: 80
- Memory: 256Mi
- CPU: 250m
```
```text Web Application theme={null}
Deploy a publicly accessible workload named "web-frontend" with these specifications:
- Container image: httpd:latest
- Exposed port: 80
- Memory: 512Mi
- CPU: 500m
- Min replicas: 2
- Max replicas: 5
- Health check path: /
```
```text Background Worker theme={null}
Create a cron workload called "data-processor" that:
- Uses image: python:3.11-slim
- Runs every hour (0 * * * *)
- Has 1Gi memory
- CPU: 500m
- Does not need external access
```
### Update a Workload
```text Scale Up theme={null}
Scale the workload "api-server" to a minimum of 3 replicas and maximum of 5 replicas.
```
```text Update Image theme={null}
Update the "web-frontend" workload to use image httpd:2.4-alpine.
```
```text Add Environment Variables theme={null}
Add these environment variables to workload "api-server":
- DATABASE_URL: postgres://db.example.com:5432/mydb
- CACHE_ENABLED: true
- LOG_LEVEL: info
```
### List Workloads
```text theme={null}
List all workloads in GVC "production" with their current replica counts and status.
```
### Get Workload Status
```text theme={null}
Show me the detailed status of workload "api-server" including:
- Current replicas
- Deployment status per location
- Recent events or errors
```
### Delete a Workload
```text theme={null}
Delete the workload "old-service" from GVC "staging".
```
Deletion operations are irreversible. The AI assistant should be configured to confirm before executing destructive operations.
***
## Image Operations
### Build an Image
The assistant can build a container image straight from a **GitHub or GitLab repository** and push it to your org's private registry. No Docker daemon and no CLI are involved — the build runs on Control Plane, and the assistant follows it until the image is pushed.
```text theme={null}
Build the image "my-app:v1.0.0" in org "my-org" from
https://github.com/my-org/my-app on the main branch, then deploy it.
```
The first build from a **private** repository returns a one-time authorization link instead of starting: open it, approve access for your organization, then ask the assistant to build again. Later builds run without prompting.
To build a **local folder**, the assistant will hand you a `cpln image build --remote` command to run yourself — it has no access to your filesystem. That still needs no Docker daemon, only the [CLI](/cli-reference/installation) with a [profile](/cli-reference/get-started/profiles) authenticated to the target organization. See [build options](/cli-reference/get-started/images#build-options).
```text theme={null}
I want to build the app in ./api and deploy it to org "my-org".
```
### Check a Build
```text theme={null}
What is the status of build "b-1a2b3c" in org "my-org"? Show me the log if it failed.
```
### List Images
```text theme={null}
Show me all images in org "my-org" with their tags and creation dates.
```
### Get Image Details
```text theme={null}
Get the details of image "my-app" including all available tags and their digests.
```
***
## Secret Management
### Wire an Existing Secret
Secret data is managed by you — in the Console, CLI, Terraform, Pulumi, or the API. The assistant verifies a secret exists and wires access to it; it never reads or writes secret values.
```text Check a Secret Exists theme={null}
Do we have a secret called "db-credentials"? List the secrets in my org
and show me its type and tags.
```
```text Grant Workload Access to a Secret theme={null}
Give the workload "api-server" access to the secret "db-credentials"
as environment variables. Set up the identity, policy, and binding
automatically.
```
When granting workload access to secrets, describe the desired outcome — the MCP server will automatically create the identity, policy, and workload binding in one step.
***
## Policy & Access Control
### Manage Policies
```text Create a Read-Only Policy theme={null}
Create a policy called "viewer-workloads" that grants "view" permission
on all workloads to the group "//group/developers".
```
```text Grant Secret Access theme={null}
Create a policy called "api-secrets" that grants "reveal" and "use"
permissions on the secret "//secret/db-credentials" to the identity
"//gvc/production/identity/api-identity".
```
***
## Domain Configuration
```text theme={null}
Create a domain "api.example.com" with:
- DNS mode: cname
- Certificate challenge: http01
- Port 443 (http2) routing to workload "//gvc/production/workload/api-server"
```
***
## Cloud Accounts
```text Setup AWS Cloud Account theme={null}
Get the setup guide for creating an AWS cloud account with:
- Provider: aws
- Cloud account name: my-aws-prod
- AWS account ID: 123456789012
- Role ARN: arn:aws:iam::123456789012:role/cpln-my-org
```
```text Setup GCP Cloud Account theme={null}
Get the setup guide for creating a GCP cloud account with:
- Provider: gcp
- Project ID: my-gcp-project-123
```
***
## Suggestion Tools
### Plan Before Executing
```text CLI Suggestion theme={null}
I want to deploy a workload with a custom domain. What CLI commands
would I need? Use cpln_suggest to plan the workflow.
```
```text API Suggestion theme={null}
I need to update a workload's environment variables via the REST API.
Use api_suggest to show me the endpoint, method, and body format.
```
***
## Workload Logs
### Query Logs
```text Recent Logs theme={null}
Show me the last hour of logs for workload "api-server" in GVC "production".
```
```text Filter for Errors theme={null}
Get logs for workload "api-server" that contain "error" or "panic" in the last 2 hours.
```
```text Specific Container theme={null}
Show logs for the "_accesslog" container of workload "web-frontend" in the last 30 minutes.
```
```text Time Range theme={null}
Get logs for workload "data-processor" between 2024-01-15T10:00:00Z and 2024-01-15T11:00:00Z.
```
The `get_workload_logs` tool builds LogQL queries automatically from structured parameters. Use the `query` parameter for advanced LogQL syntax.
***
## Complex Workflows
### Full Application Deployment
```text theme={null}
Deploy a complete application stack to Control Plane:
1. Create a GVC called "my-app-prod" in Frankfurt and Virginia
2. Create a publicly accessible workload "frontend" with:
- Image: httpd:latest
- Port: 80
- Memory: 512Mi
- CPU: 500m
- 2-5 replicas
3. Create a publicly accessible workload "backend" with:
- Image: nginx:latest
- Port: 8080
- Memory: 1Gi
- CPU: 500m
- 2-5 replicas
- Environment variable SERVICE_NAME=backend
```
### Environment Promotion
```text theme={null}
Promote the configuration from GVC "staging" to "production":
1. Get the current workload configurations from staging
2. Update the production workloads to match staging
3. Show me the differences before and after
```
### Debugging Session
```text theme={null}
Help me debug the workload "api-server" in production:
1. Show me the current status and replica count
2. Check if there are any error events
3. Get the recent logs and filter for errors
4. Show me the resource utilization
```
***
## Next Steps
Configure MCP for your preferred tool
Learn more about workload configuration options
Understand Global Virtual Clouds
Configure permissions for your authorized orgs
# MCP Server
Source: https://docs.controlplane.com/ai/mcp
Connect any MCP-compatible AI tool to Control Plane.
The Control Plane MCP Server lets any AI tool with [Model Context Protocol](https://modelcontextprotocol.io/) support manage Control Plane resources through natural-language conversations.
If your AI tool supports plugins — **Claude Code, Codex, or Antigravity CLI** — start with the [Control Plane AI Plugin](/ai/plugin) instead. The plugin auto-configures this MCP server and adds skills, agents, commands, and guardrails on top.
## Endpoint
`https://mcp.cpln.io/mcp`
## Authentication
OAuth with per-org consent. Your AI tool walks you through it on first use — see your tool's setup page below for the exact trigger.
## Toolset profiles
The full tool catalog is larger than most AI tools can hold in context at once — and some clients cap how many tools they accept. So each connection selects a **toolset profile** with the `toolsets` query parameter. Pick **one** — `core`, `mk8s`, and `full` are nested (each is a superset of the one above), and `readonly` stands on its own:
| Profile | What it includes |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `readonly` | Investigation only. Metrics, logs, traces, workload events, replicas and deployments, quotas, the audit trail, configuration inventory, and Terraform export — plus a generic read tool that works on **every** resource kind. It advertises no tool that creates, updates, deletes or executes a command, so an assistant on this profile cannot change a live resource. |
| `core` *(default)* | The everyday deploy-and-operate journey: GVCs, workloads, deployments, logs, image builds, custom domains, identities, policies, the template catalog, volume sets, Terraform export, metrics, traces, and the audit trail — plus a generic read/delete tool that works on **every** resource kind, and a raw-API escape hatch for anything else. |
| `mk8s` | Everything in `core`, **plus** the typed BYOK managed-Kubernetes (mk8s) cluster tools (create/update across all 11 providers). |
| `full` | Everything in `mk8s`, **plus** the full administrative and fine-tuning surface: cloud-account registration (AWS/GCP/Azure/NATS), org IAM (users, groups, service accounts, policy edits), network-bridge agents, identity network-resource bindings, IP sets, audit contexts, advanced workload tuning (load balancer, sidecar, rollout, security, retry, external logging), deep custom-domain editing (routes, ports, CORS, TLS), volume-set snapshots / expand / shrink, and org/GVC settings. |
```text Examples theme={null}
https://mcp.cpln.io/mcp # core (default)
https://mcp.cpln.io/mcp?toolsets=readonly # reads only, no writes
https://mcp.cpln.io/mcp?toolsets=mk8s # core + BYOK Kubernetes
https://mcp.cpln.io/mcp?toolsets=full # everything
```
An unknown value returns a `400` listing the accepted names (`readonly`, `core`, `mk8s`, `full`). So does combining `readonly` with another profile — it withholds the write tools the others add, so the two cannot be mixed.
**Which profile should I use?** **`full`** is the complete catalog — it's what the [AI Plugin](/ai/plugin) configures for every client. Pick **`core`** (the default) for a lighter, focused catalog if your client caps tool counts or loads every tool definition up front; it still covers the whole build-and-operate workflow (it can read and delete *any* resource kind generically, and reaches anything else through the raw-API tool). Use **`mk8s`** when you manage BYOK Kubernetes clusters. Use **`readonly`** to point an assistant at production for performance work, incident triage, or an audit without the possibility of an unintended change.
The profile is fixed for the life of a connection — an AI agent can't expand it mid-session. If your assistant says a Control Plane tool isn't available, reconnect with the profile that includes it.
## Compatible tools
Claude Code CLI
Claude apps for Mac & Windows
claude.ai in the browser
OpenAI Codex
Cursor IDE
Visual Studio Code
Google Antigravity (CLI or IDE)
Sourcegraph Amp
OpenCode terminal assistant
Don't see your tool listed? Any client that supports remote MCP servers can connect — point it at `https://mcp.cpln.io/mcp` and let it handle OAuth.
## Next steps
Every tool the server exposes, grouped by resource, with toolset profiles
Practical prompts for common Control Plane workflows
Recommended path for Claude Code, Codex, Antigravity CLI
Scope what an AI tool can do in your org with policies and least privilege
# OpenCode
Source: https://docs.controlplane.com/ai/opencode
Connect OpenCode, the terminal-native AI coding assistant, to Control Plane to operate your infrastructure without leaving your shell.
## Prerequisites
Install [OpenCode](https://opencode.ai)
Sign up at [console.cpln.io](https://console.cpln.io) if you don't have an account yet
## Add the MCP server
```bash theme={null}
opencode mcp add
```
Answer the prompts:
| Prompt | Value |
| ---------------------------------------------- | ------------------------- |
| Location | **Global** |
| MCP server name | `cpln` |
| MCP server type | **Remote** |
| MCP server URL | `https://mcp.cpln.io/mcp` |
| Does this server require OAuth authentication? | **Yes** |
| Do you have a pre-registered client ID? | **No** |
Connecting to the bare URL uses the default **`core`** toolset profile — a focused set that already covers the whole build-and-operate workflow (it can read and delete any resource kind generically, and reach anything else through the raw-API tool), which is the right fit for this client. Append `?toolsets=mk8s` to add BYOK Kubernetes tools, or `?toolsets=full` for everything. See [toolset profiles](/ai/mcp#toolset-profiles).
OpenCode writes the entry to `~/.config/opencode/opencode.jsonc`.
```bash theme={null}
opencode mcp auth cpln
```
Your browser opens:
1. Sign in to Control Plane (Google, GitHub, Microsoft, or SAML).
2. Select the orgs you want OpenCode to access.
3. Click **Authorize**.
Your browser shows a success page — close the tab and return to the terminal. OpenCode prints **Authentication successful!**.
Launch OpenCode and ask "list GVCs in org ``" (using one of the orgs you authorized) to confirm.
## Example conversation
```
Use org "my-org" and gvc "my-gvc" for context.
```
```
Create a publicly accessible workload called "my-api" using nginx:latest on port 80.
```
```
Monitor the readiness of my-api and give me the public endpoint once it's ready.
```
## Troubleshooting
Re-run `opencode mcp auth cpln`. Sign in again and adjust your org selections on the consent screen.
## Next steps
Practical prompts for common Control Plane workflows
30+ production-ready templates your AI can deploy on request
# Teach your AI coding agent to use Control Plane
Source: https://docs.controlplane.com/ai/overview
Two paths — the AI Plugin for Claude Code, Codex, and Antigravity CLI, or the MCP Server for any other MCP-compatible client.
For **Claude Code, Codex, and Antigravity CLI**. Includes the MCP server plus skills, agents, slash commands, and guardrails.
For **any other MCP-compatible AI** — Cursor, Claude Web, Claude Desktop, VS Code, Antigravity IDE, Amp, OpenCode.
## What you can do
Create and configure GVCs, workloads, identities, and more
Build images and deploy applications across global locations
Get real-time information about your Control Plane resources
Streamline DevOps tasks through conversational AI
## Which path for which tool?
**AI Plugin** · [MCP only](/ai/claude)
**AI Plugin** · [MCP only](/ai/codex)
**AI Plugin** · [MCP only](/ai/antigravity)
MCP Server
MCP Server
MCP Server
MCP Server
MCP Server
MCP Server
MCP Server
Any remote-MCP client
## Sign in
Each tool triggers OAuth its own way — see your tool's setup page for the specifics. Once your browser lands on Control Plane:
Use Google, GitHub, Microsoft, or SAML.
Pick the orgs this AI client may access and click **Authorize**.
## Best practices
Per-client consent lets you scope each AI tool to the smallest org set that makes sense for its job
Always set your org and GVC context at the start of a conversation
Provide specific values for resources (memory, CPU, replicas) when possible
Add tags to resources for better organization and filtering
### Recommended prompt structure
For the best results, structure your prompts with:
1. **Context** — Org and GVC
2. **Action** — What you want to do
3. **Target** — Which resource
4. **Details** — Specific configuration values
```text Good prompt theme={null}
Using org "my-org" and GVC "production", create a workload called "api-v2"
with image nginx:latest, 512Mi memory, port 8080, and minimum 2 replicas.
```
```text Less effective theme={null}
Make a new workload.
```
## References
Install guide and the full inventory of skills, agents, commands, and guardrails
Endpoint and the compatible-tools list
Every tool the MCP server exposes, grouped by resource
Practical prompts for common Control Plane workflows
Source, release notes, and contribution guide
# AI Plugin
Source: https://docs.controlplane.com/ai/plugin
Install the Control Plane AI Plugin in Claude Code, Codex, or Antigravity CLI.
## Install
Add the marketplace, install the plugin, then reload:
```text theme={null}
/plugin marketplace add https://github.com/controlplane-com/ai-plugin.git
/plugin install cpln@controlplane
/reload-plugins
```
To enable auto-update, run `/plugin`, use the `<` / `>` arrow keys to navigate to the **Marketplaces** tab, select **controlplane**, and choose **Enable auto-update**. Otherwise update manually with `/plugin marketplace update controlplane` followed by `/reload-plugins`.
Alternatively, install from [Anthropic's community plugin marketplace](https://github.com/anthropics/claude-plugins-community), where every listing has passed Anthropic's review:
```text theme={null}
/plugin marketplace add anthropics/claude-plugins-community
/plugin install cpln@claude-community
/reload-plugins
```
Add the plugin marketplace:
```bash theme={null}
codex plugin marketplace add https://github.com/controlplane-com/ai-plugin.git
```
Start Codex, open `/plugins`, navigate to **Control Plane**, then install the `cpln` plugin.
**Enable plugin hooks for guardrail injection (recommended).** Codex ships with `plugin_hooks` off by default. Enable it in `~/.codex/config.toml` so the plugin's `SessionStart` hook can inject CLI conventions and guardrails:
```toml theme={null}
[features]
plugins = true
plugin_hooks = true
```
After restart, `/plugins` → **Control Plane** → **Hooks** should show `SessionStart`.
Codex does not auto-update plugin marketplaces. When a new release is published, run the upgrade command and restart Codex:
```bash theme={null}
codex plugin marketplace upgrade controlplane
```
Install the plugin straight from GitHub:
```bash theme={null}
agy plugin install https://github.com/controlplane-com/ai-plugin/plugins/cpln
```
Confirm it loaded with `agy plugin list`.
## Sign in
The plugin bundles the MCP server and configures every client with the `full` [toolset profile](/ai/mcp#toolset-profiles).
Each tool triggers OAuth its own way — see your tool's setup page for the specifics. Once your browser lands on Control Plane:
Use Google, GitHub, Microsoft, or SAML.
Pick the orgs this AI client may access and click **Authorize**.
## Try it
```text Troubleshoot a workload theme={null}
/cpln:troubleshoot my-api --gvc production
```
```text Set up secret access theme={null}
My "my-api" workload needs to read the "db-password" secret.
```
```text Migrate a Kubernetes manifest theme={null}
/cpln:migrate-k8s ./k8s/deployment.yaml
```
```text Natural language theme={null}
Deploy this app on Frankfurt and give me the public URL.
```
## Next steps
Practical prompts for common Control Plane workflows
Source, full inventory of skills, agents, commands, and guardrails
# Tools Reference
Source: https://docs.controlplane.com/ai/tools
Every tool the Control Plane MCP Server exposes, grouped by resource, with read-only and destructive markers and the toolset profile each belongs to.
This page lists every tool the [MCP Server](/ai/mcp) exposes, grouped by the resource it operates on. Tool names are the exact identifiers the AI calls — you normally describe what you want in natural language and let the assistant pick the tool, but knowing what exists helps you prompt precisely and understand what an assistant is doing on your behalf.
You don't call these tools directly. Describe the outcome you want — see [Usage Examples](/ai/examples) for prompt patterns — and the assistant selects and chains the right tools.
## Toolset profiles
The server advertises a different set of tools depending on the `toolsets` query parameter on the endpoint URL. A smaller set keeps the assistant focused and fits comfortably in its context window; the larger sets unlock specialized resource families.
| Profile | Tools | Endpoint | Includes |
| :--------- | :---: | :------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `readonly` | 30 | `https://mcp.cpln.io/mcp?toolsets=readonly` | Investigation only — observability, runtime state, inventory, and generic reads. Nothing that creates, updates, deletes, or executes, so an assistant on this profile cannot change a live resource. |
| `core` | 56 | `https://mcp.cpln.io/mcp` | The default. Everyday workflows — workloads, GVCs, image builds, domains, identities, policies, templates, volume sets, observability (logs, metrics, traces, audit), quotas, and Terraform export. |
| `mk8s` | 78 | `https://mcp.cpln.io/mcp?toolsets=mk8s` | Everything in `core` plus the [managed Kubernetes](/mk8s/overview) family for provisioning and updating clusters across cloud providers. |
| `full` | 132 | `https://mcp.cpln.io/mcp?toolsets=full` | Every tool, including agents, cloud accounts, IP sets, service accounts, audit contexts, external logging, quotas, advanced workload configuration, and volume snapshots. |
Connecting to `https://mcp.cpln.io/mcp` with no query parameter gives you the `core` profile. To switch profiles, point your client at the URL with the `?toolsets=` parameter — see your tool's [setup page](/ai/mcp#compatible-tools) for where the endpoint URL is configured.
### Reading the tables
Each tool is listed with its name, its label, and what it does. The **Access** column flags how the tool behaves:
| Marker | Meaning |
| :-------------- | :---------------------------------------------------------------------------------------------------------------------- |
| **Read** | Read-only. Fetches data without changing anything. |
| **Write** | Creates or modifies a resource. |
| **Destructive** | Deletes, removes, or overwrites data. Assistants present the impact and ask for your confirmation before running these. |
Tools available only in a larger profile are marked **`mk8s`** or **`full`** next to the access marker; everything else is in `core`.
***
## Docs & guidance
Read-only tools the assistant uses to ground itself in accurate Control Plane facts, schemas, and documentation before acting. All are in `core`.
| Name | Label | Description | Access |
| :------------------------------------ | :---------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------ | :------------ |
| `get_cpln_rules` | Get Control Plane Operating Guide | The operating guide — the resource model, production defaults, and how to verify a change landed. | Read |
| `get_cpln_skill` | Get a Control Plane Skill | The runbook for one task family: how to use a feature correctly, the constraints that are easy to miss, and when it's the wrong tool. | Read |
| `get_resource_schema` | Get Resource Schema & API Endpoints | The exact object schema and REST endpoints for a resource kind, for authoring an accurate manifest or calling the API. | Read |
| `get_permissions` | Get Permissions for a Resource Kind | The grantable permissions for a resource kind, for building policies. | Read |
| `search_control_plane` | Search Control Plane Docs | Search the documentation knowledge base for guides, examples, and API references. | Read |
| `query_docs_filesystem_control_plane` | Query Control Plane Docs Filesystem | Run read-only, shell-like queries against an in-memory filesystem of the docs pages and OpenAPI specs. | Read · `full` |
***
## Generic resource tools
The single read and delete tools that work for every resource kind. Use these to list, inspect, or delete resources — pass the `kind` (`workload`, `secret`, `gvc`, and so on); secrets are read-only. All are in `core`.
| Name | Label | Description | Access |
| :---------------- | :----------------------- | :------------------------------------------------------------------------------------------------------------------------- | :---------- |
| `list_resources` | List Resources of a Kind | List resources of one kind as a summary table. | Read |
| `get_resource` | Get a Resource | Fetch one resource by kind and name, with its full JSON. Secrets return metadata only — the API never includes their data. | Read |
| `delete_resource` | Delete a Resource | Delete one resource by kind and name. The single delete tool for every deletable kind — secrets are not deletable. | Destructive |
***
## GVCs
Create and manage [GVCs](/reference/gvc) and the cloud locations they span.
| Name | Label | Description | Access |
| :--------------------- | :-------------------------- | :----------------------------------------------------------------------- | :------------------- |
| `create_gvc` | Create a Control Plane GVC | Create a GVC with one or more cloud locations. | Write |
| `update_gvc` | Update a Control Plane GVC | Update a GVC's settings, such as its description, tags, or pull secrets. | Destructive |
| `add_gvc_locations` | Add locations to a GVC | Add one or more cloud locations to an existing GVC. | Write · `full` |
| `remove_gvc_locations` | Remove locations from a GVC | Remove cloud locations from a GVC. | Destructive · `full` |
***
## Workloads
Create, update, run, and operate [workloads](/reference/workload/general). The advanced `configure_workload_*` tools each manage one specialized block of the spec and live in the `full` profile.
| Name | Label | Description | Access |
| :--------------------------------- | :------------------------------------------- | :------------------------------------------------------------------------------------------------------------------- | :------------------- |
| `create_workload` | Create a Workload | Create a serverless, standard, cron, stateful, or VM workload with its containers and exposure. | Write |
| `update_workload` | Update a Workload | Update an existing workload — image, resources, scaling, environment, and more. | Destructive |
| `grant_workload_secret_access` | Grant Workload Secret Access | Grant an existing workload access to a secret by wiring its identity and access policy. Never returns secret values. | Write |
| `workload_exec` | Workload Exec — Run a Command in a Container | Run a single command in a running container and return its output. Audited. | Destructive |
| `workload_start_cron` | Workload — Start a Cron Run | Trigger an immediate run of a cron workload. | Write |
| `workload_stop_replica` | Workload — Stop a Replica | Terminate one running replica of a workload; the platform reschedules a replacement per the scaling settings. | Write |
| `configure_workload_load_balancer` | Configure Workload Load Balancer | Set or clear the direct per-location load balancer, geo headers, and replica-direct routing. | Destructive · `full` |
| `configure_workload_security` | Configure Workload Security Options | Set or clear the pod-level security context (filesystem group, run-as user). | Destructive · `full` |
| `configure_workload_rollout` | Configure Workload Rollout Options | Set or clear how updates roll out — surge, unavailability, and scaling policy. | Destructive · `full` |
| `configure_workload_retry` | Configure Workload Request Retry Policy | Set or clear the retry behavior for failed requests. | Destructive · `full` |
| `configure_workload_sidecar` | Configure Workload Envoy Sidecar | Set or clear the Envoy proxy filter chain. Advanced. | Destructive · `full` |
| `configure_workload_local_options` | Configure Workload Per-Location Options | Set or clear per-location overrides of the default options. | Destructive · `full` |
| `configure_workload_extras` | Configure Workload BYOK Extras | Set or clear BYOK-only Kubernetes customizations (affinity, tolerations, spread constraints). | Destructive · `full` |
***
## Images
Build container [images](/reference/image) on Control Plane and follow the build. An image record is created by pushing, so there is no create or update tool — list, inspect, and delete image records with the [generic tools](#generic-resource-tools) using `kind: image`.
| Name | Label | Description | Access |
| :---------------- | :----------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----- |
| `build_image` | Build an Image from a Git Repository | Build an image from a GitHub or GitLab repository and push it to the org's private registry. Returns a build id; the build keeps running after the call returns. | Write |
| `get_image_build` | Get an Image Build Status and Log | Read a build's status, progress events, and log by its build id. | Read |
No Docker daemon is involved: the build service clones the repository, detects how to build it (using the Dockerfile when one is present), and always produces a `linux/amd64` image. Building an existing `NAME:TAG` replaces that image, so prefer a fresh tag.
Only **repository** builds run through the MCP server — it has no access to your filesystem. To build a local folder, run [`cpln image build --remote`](/cli-reference/get-started/images#build-options), which uploads the folder and builds it the same way, also without Docker.
A **private** repository needs a one-time browser authorization per organization. The first build that needs it returns an authorization link instead of starting a build; open the link, approve access, then ask the assistant to build again. The link is single-use and expires shortly. Later builds in that organization run without prompting.
***
## Secrets
[Secrets](/reference/secret) are read-only through the MCP server: `list_resources` and `get_resource` show that a secret exists and its metadata — never its data. No tool creates, edits, deletes, or reveals a secret; secret data and lifecycle are managed by you in the [Console](https://console.cpln.io), the [CLI](/cli-reference/overview), [Terraform](/iac/terraform), [Pulumi](/iac/pulumi), or the [API](/api-reference/api). To let a workload consume an existing secret, use `grant_workload_secret_access` under [Workloads](#workloads).
***
## Custom domains
Configure [custom domains](/reference/domain), their port listeners, routes, TLS, and CORS. Port, route, TLS, and CORS tools operate on an existing domain.
| Name | Label | Description | Access |
| :-------------------- | :------------------------------------ | :---------------------------------------------------------------------------------------- | :------------------- |
| `create_domain` | Create a Domain | Create a custom domain in `cname` or `ns` DNS mode. | Write |
| `update_domain` | Update a Domain | Update a domain's metadata, host/subdomain acceptance flags, and GVC or workload binding. | Destructive |
| `add_domain_port` | Add a Domain Port Listener | Add a port listener (for example, 443/http2) to a domain. | Write |
| `remove_domain_port` | Remove a Domain Port Listener | Remove a port listener from a domain. | Destructive |
| `add_domain_route` | Add a Route to a Domain Listener | Add a route mapping a path or prefix to a workload. | Write |
| `update_domain_route` | Update a Route on a Domain Listener | Update an existing route on a domain listener. | Destructive |
| `remove_domain_route` | Remove a Route from a Domain Listener | Remove a route from a domain listener. | Destructive |
| `set_domain_tls` | Set TLS on a Domain Listener | Set the TLS configuration on a domain listener. | Destructive |
| `clear_domain_tls` | Clear TLS on a Domain Listener | Clear the TLS configuration from a domain listener. | Destructive |
| `set_domain_cors` | Set CORS on a Domain Listener | Set the CORS policy on a domain listener. | Destructive · `full` |
| `clear_domain_cors` | Clear CORS on a Domain Listener | Clear the CORS policy from a domain listener. | Destructive · `full` |
***
## Identity & access
Manage [identities](/reference/identity), [policies](/reference/policy), [groups](/reference/group), [service accounts](/reference/serviceaccount), and the private-network resources attached to an identity. Groups, service accounts, network resources, and user invitations are in `full`.
| Name | Label | Description | Access |
| :------------------------------------- | :------------------------------------ | :-------------------------------------------------------------------------------------------------- | :------------------- |
| `create_identity` | Create an Identity | Create a GVC-scoped identity for workload access to secrets, cloud resources, and private networks. | Write |
| `update_identity` | Update an Identity | Update an identity's settings and bound credentials. | Destructive |
| `create_policy` | Create a Policy | Create a policy that grants permissions on resources to principals. | Write |
| `update_policy` | Update a Policy | Update a policy's bindings, targets, or permissions. | Destructive |
| `create_group` | Create a Group | Create a group of users and service accounts, with optional tag-based membership. | Write · `full` |
| `edit_group` | Edit a Group | Update a group's membership or membership query. | Destructive · `full` |
| `create_service_account` | Create a Service Account | Create a service account for programmatic access. | Write · `full` |
| `update_service_account` | Update a Service Account | Update a service account's description or tags, or revoke its keys by name. | Destructive · `full` |
| `add_key_to_service_account` | Add Key to Service Account | Create a service account if needed, add a key, and optionally add it to a group. | Write · `full` |
| `invite_user_to_org` | Invite User to Organization | Invite a user by email to join the organization. | Write · `full` |
| `add_identity_network_resource` | Add Agent-Based Network Resource | Add an agent-based (wormhole) network resource so a workload can reach a private endpoint. | Write · `full` |
| `add_identity_native_network_resource` | Add Cloud-Native Network Resource | Add an AWS PrivateLink or GCP Private Service Connect network resource to an identity. | Write · `full` |
| `list_identity_network_resources` | List Network Resources on an Identity | List the agent-based and cloud-native network resources attached to an identity. | Read · `full` |
| `remove_identity_network_resource` | Remove Network Resource from Identity | Remove a network resource from an identity. | Destructive · `full` |
***
## Template catalog
Browse and operate the [Template Catalog](/template-catalog/overview) — production-ready stacks you install instead of hand-authoring resources.
| Name | Label | Description | Access |
| :------------------------- | :----------------------------------- | :------------------------------------------------------------------------------------------------ | :------------------- |
| `browse_templates` | Browse Template Catalog | List the catalog — name, category, latest version, and whether each template creates its own GVC. | Read |
| `get_template` | Get Template Detail & Example Values | Show a template's versions, prerequisites, and example `values.yaml`. | Read |
| `preview_template` | Preview Template (Dry-Run) | Render the resources an install or upgrade would create, without applying anything. | Read · `full` |
| `install_template` | Install Template | Install a catalog template as a new release. | Write |
| `upgrade_template` | Upgrade Template | Upgrade an installed release to a new version or updated values. | Destructive |
| `rollback_template` | Rollback a Template Release | Roll a release back to a prior revision. | Destructive · `full` |
| `uninstall_template` | Uninstall Template | Uninstall a release and remove the resources it created. | Destructive |
| `list_installed_templates` | List Installed Templates | List the template releases installed in an org. | Read |
| `get_installed_template` | Get Installed Template Resources | Show a release's status, revision, and the resources it created. | Read |
***
## Volume sets & storage
Create [volume sets](/reference/volumeset), mount them to workloads, and manage their volumes and snapshots. Snapshot and per-volume operations are in `full`.
| Name | Label | Description | Access |
| :---------------------------- | :-------------------------- | :---------------------------------------------------------------------------------------------------------------------------------- | :------------------- |
| `create_volumeset` | Create a Volumeset | Create a volume set for persistent storage. | Write |
| `update_volumeset` | Update a Volumeset | Update a volume set's settings. | Destructive |
| `mount_volumeset_to_workload` | Mount Volumeset to Workload | Mount a volume set to a workload at a path (ext4/xfs require a stateful or VM workload; shared mounts on any type). | Write |
| `expand_volumeset` | Expand Volumeset Volume | Increase a volume's capacity with no downtime or data loss. | Write |
| `shrink_volumeset` | Shrink Volumeset Volume | Shrink a volume to a smaller capacity. Data is migrated, but if used bytes exceed the new size the excess is lost — snapshot first. | Destructive · `full` |
| `create_volumeset_snapshot` | Create Volumeset Snapshot | Create a point-in-time snapshot of a volume. | Write · `full` |
| `list_volumeset_snapshots` | List Volumeset Snapshots | List the snapshots of a volume set. | Read · `full` |
| `restore_volumeset_snapshot` | Restore Volumeset Snapshot | Restore a snapshot, discarding everything written since it was taken. | Destructive · `full` |
| `delete_volumeset_snapshot` | Delete Volumeset Snapshot | Delete a volume set snapshot. | Destructive · `full` |
| `delete_volumeset_volume` | Delete Volumeset Volume | Delete a single volume from a volume set. | Destructive · `full` |
***
## Observability
Inspect deployments, logs, events, replicas, metrics, traces, the audit trail, and the status of asynchronous operation commands. All are in `core`.
| Name | Label | Description | Access |
| :----------------------- | :------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------- | :----- |
| `list_deployments` | List Workload Deployments | A workload's per-location rollout status — the primary readiness check after a deploy. | Read |
| `get_workload_logs` | Get Workload Logs | Query a workload's logs by structured parameters or a raw LogQL query. | Read |
| `get_workload_events` | Get Workload Events | Fetch a workload's event log to diagnose readiness, liveness, and deploy failures. | Read |
| `list_workload_replicas` | List Workload Replicas | List the running replicas of a workload in a location. | Read |
| `list_metrics` | List & Discover Metrics | Discover the metrics and labels you can query, each with a correct PromQL template. | Read |
| `query_metrics` | Query Workload Metrics (PromQL) | Run a PromQL query against Control Plane metrics. | Read |
| `query_audit_events` | Query Audit Events | Query the audit trail for mutations on resources of a kind. | Read |
| `query_traces` | Query Distributed Traces | Search distributed traces (TraceQL) for slow or failing requests. | Read |
| `get_trace` | Get Trace | Fetch one trace by ID and summarize its span tree, durations, and errors. | Read |
| `list_commands` | List Commands | List the asynchronous operation commands issued against a workload or volume set — cron runs, replica stops, and volume operations. | Read |
| `get_command` | Get a Command | Fetch one asynchronous command by ID to check a long-running operation's status. | Read |
***
## Terraform & IaC
Convert manifests to Terraform and export existing resources as HCL for [infrastructure as code](/iac/overview). Batch export and kind discovery are in `full`.
| Name | Label | Description | Access |
| :----------------------- | :--------------------------------------- | :------------------------------------------------------------------------------------- | :------------ |
| `convert_to_terraform` | Convert a manifest to Terraform | Convert a resource manifest to Terraform HCL, dry-run validated against the API first. | Read |
| `export_terraform` | Export an existing resource to Terraform | Generate Terraform HCL for existing resources from a self link, single or in bulk. | Read |
| `export_terraform_batch` | Export many resources to Terraform | Generate merged, de-duplicated Terraform for several existing resources in one call. | Read · `full` |
| `list_terraform_kinds` | List Terraform-convertible kinds | List the resource kinds the exporter can convert. | Read · `full` |
***
## Cloud accounts, agents & networking
Onboard [cloud accounts](/reference/cloudaccount), create [agents](/reference/agent) for private connectivity, and reserve [IP sets](/reference/ipset). All are in `full`.
| Name | Label | Description | Access |
| :---------------------------------- | :----------------------------------- | :----------------------------------------------------------------------------------------- | :------------------- |
| `how_to_create_aws_cloud_account` | How to Create an AWS Cloud Account | The canonical IAM steps to onboard an AWS cloud account, filled in with your values. | Read · `full` |
| `how_to_create_gcp_cloud_account` | How to Create a GCP Cloud Account | The steps to onboard a GCP cloud account. | Read · `full` |
| `how_to_create_azure_cloud_account` | How to Create an Azure Cloud Account | The steps to onboard an Azure cloud account. | Read · `full` |
| `how_to_create_ngs_cloud_account` | How to Create an NGS Cloud Account | The steps to onboard a NATS NGS cloud account. | Read · `full` |
| `create_cloud_account` | Create a Cloud Account | Create a cloud account bridging Control Plane to AWS, GCP, Azure, or NGS. | Write · `full` |
| `update_cloud_account` | Update a Cloud Account | Update a cloud account's settings. | Destructive · `full` |
| `create_agent` | Create an Agent | Create an agent for secure connectivity to a private network. | Write · `full` |
| `update_agent` | Update an Agent | Update an agent's settings. | Destructive · `full` |
| `get_agent_info` | Get Agent Info | Fetch an agent's real-time status — active state, last heartbeat, peer and service counts. | Read · `full` |
| `get_agent_eventlog` | Get Agent Event Log | Fetch an agent's event log. | Read · `full` |
| `create_ipset` | Create an IP Set | Reserve static public IPs per location. | Write · `full` |
| `update_ipset` | Update an IP Set | Update an IP set's settings. | Destructive · `full` |
| `add_ipset_location` | Add or update IP set locations | Add locations to an IP set or update their retention policy. | Write · `full` |
| `remove_ipset_location` | Remove IP set locations | Remove locations from an IP set. | Destructive · `full` |
***
## Organization & operations
Manage [org](/reference/org) settings, [quotas](/reference/quota), [audit contexts](/reference/auditctx), and [external logging](/external-logging/overview). All are in `full` except `list_quotas`.
| Name | Label | Description | Access |
| :--------------------------- | :--------------------------------- | :------------------------------------------------------------------------------------ | :------------------- |
| `update_org` | Update Organization Settings | Update organization-wide settings. | Destructive · `full` |
| `list_quotas` | List Organization Quotas | List the org's resource quotas with current usage — filter to those near their limit. | Read |
| `get_quota` | Get Quota Details | Fetch the details and current usage of one quota. | Read · `full` |
| `create_audit_context` | Create Audit Context | Create a custom audit context for tamper-proof external events. | Write · `full` |
| `edit_audit_context` | Edit an Audit Context | Update an audit context's description and tags. | Write · `full` |
| `get_external_logging` | Get External Logging Configuration | View the org's primary and extra external logging providers. | Read · `full` |
| `configure_external_logging` | Configure External Logging | Configure log shipping to an external provider (S3, Datadog, Coralogix, and more). | Destructive · `full` |
| `remove_external_logging` | Remove External Logging Provider | Remove an external logging provider from the org. | Destructive · `full` |
***
## Managed Kubernetes
Provision and update [managed Kubernetes](/mk8s/overview) clusters across cloud and bare-metal providers. This family is available in the `mk8s` and `full` profiles — connect to `https://mcp.cpln.io/mcp?toolsets=mk8s` to use it.
| Name | Label | Description | Access |
| :------------------------- | :--------------------------------- | :-------------------------------------------------------------------------------- | :------------------- |
| `create_mk8s_aws` | Create an AWS mk8s cluster | Provision a managed Kubernetes cluster on AWS. | Write · `mk8s` |
| `update_mk8s_aws` | Update an AWS mk8s cluster | Update an AWS managed Kubernetes cluster. | Destructive · `mk8s` |
| `create_mk8s_gcp` | Create a GCP mk8s cluster | Provision a managed Kubernetes cluster on GCP. | Write · `mk8s` |
| `update_mk8s_gcp` | Update a GCP mk8s cluster | Update a GCP managed Kubernetes cluster. | Destructive · `mk8s` |
| `create_mk8s_azure` | Create an Azure mk8s cluster | Provision a managed Kubernetes cluster on Azure. | Write · `mk8s` |
| `update_mk8s_azure` | Update an Azure mk8s cluster | Update an Azure managed Kubernetes cluster. | Destructive · `mk8s` |
| `create_mk8s_hetzner` | Create a Hetzner mk8s cluster | Provision a managed Kubernetes cluster on Hetzner. | Write · `mk8s` |
| `update_mk8s_hetzner` | Update a Hetzner mk8s cluster | Update a Hetzner managed Kubernetes cluster. | Destructive · `mk8s` |
| `create_mk8s_digitalocean` | Create a DigitalOcean mk8s cluster | Provision a managed Kubernetes cluster on DigitalOcean. | Write · `mk8s` |
| `update_mk8s_digitalocean` | Update a DigitalOcean mk8s cluster | Update a DigitalOcean managed Kubernetes cluster. | Destructive · `mk8s` |
| `create_mk8s_linode` | Create a Linode mk8s cluster | Provision a managed Kubernetes cluster on Linode. | Write · `mk8s` |
| `update_mk8s_linode` | Update a Linode mk8s cluster | Update a Linode managed Kubernetes cluster. | Destructive · `mk8s` |
| `create_mk8s_oblivus` | Create an Oblivus mk8s cluster | Provision a managed Kubernetes cluster on Oblivus. | Write · `mk8s` |
| `update_mk8s_oblivus` | Update an Oblivus mk8s cluster | Update an Oblivus managed Kubernetes cluster. | Destructive · `mk8s` |
| `create_mk8s_lambdalabs` | Create a Lambda Labs mk8s cluster | Provision a managed Kubernetes cluster on Lambda Labs. | Write · `mk8s` |
| `update_mk8s_lambdalabs` | Update a Lambda Labs mk8s cluster | Update a Lambda Labs managed Kubernetes cluster. | Destructive · `mk8s` |
| `create_mk8s_paperspace` | Create a Paperspace mk8s cluster | Provision a managed Kubernetes cluster on Paperspace. | Write · `mk8s` |
| `update_mk8s_paperspace` | Update a Paperspace mk8s cluster | Update a Paperspace managed Kubernetes cluster. | Destructive · `mk8s` |
| `create_mk8s_triton` | Create a Triton mk8s cluster | Provision a managed Kubernetes cluster on Triton. | Write · `mk8s` |
| `update_mk8s_triton` | Update a Triton mk8s cluster | Update a Triton managed Kubernetes cluster. | Destructive · `mk8s` |
| `create_mk8s_generic` | Create a generic mk8s cluster | Provision a managed Kubernetes cluster on generic or self-managed infrastructure. | Write · `mk8s` |
| `update_mk8s_generic` | Update a generic mk8s cluster | Update a generic managed Kubernetes cluster. | Destructive · `mk8s` |
***
## Next steps
Endpoint, authentication, and the compatible-tools list
Practical prompts that put these tools to work
Skills, agents, commands, and guardrails on top of the MCP server
The full configuration and behavior of every Control Plane resource
# Visual Studio Code
Source: https://docs.controlplane.com/ai/vscode
Connect Visual Studio Code to Control Plane using GitHub Copilot's MCP support to manage your infrastructure from your editor.
For background on MCP servers in VS Code, see the official [VS Code MCP documentation](https://code.visualstudio.com/docs/copilot/customization/mcp-servers).
## Prerequisites
Download [VS Code](https://code.visualstudio.com) and install the [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) extension
Sign up at [console.cpln.io](https://console.cpln.io) if you don't have an account yet
## Add the MCP server
Open the Command Palette (`Cmd/Ctrl + Shift + P`) and run **MCP: Add Server**.
Follow the prompts:
| Prompt | Value |
| ----------- | ------------------------- |
| Server type | **HTTP** |
| URL | `https://mcp.cpln.io/mcp` |
| Name | `cpln` |
| Scope | **Global** |
Connecting to the bare URL uses the default **`core`** toolset profile — a focused set that already covers the whole build-and-operate workflow (it can read and delete any resource kind generically, and reach anything else through the raw-API tool), which is the right fit for this client. Append `?toolsets=mk8s` to add BYOK Kubernetes tools, or `?toolsets=full` for everything. See [toolset profiles](/ai/mcp#toolset-profiles).
VS Code shows a permission prompt to authenticate the new server. Click **Allow** — your browser opens.
1. Sign in to Control Plane (Google, GitHub, Microsoft, or SAML).
2. Select the orgs you want VS Code to access.
3. Click **Authorize**.
Your browser shows a success page — close the tab and return to VS Code.
Open GitHub Copilot Chat and ask "list GVCs in org ``" (using one of the orgs you authorized) to confirm.
## Example conversation
```
Use org "my-org" and gvc "my-gvc" for context.
```
```
Create a publicly accessible workload called "my-api" using nginx:latest on port 80.
```
```
Monitor the readiness of my-api and give me the public endpoint once it's ready.
```
## Troubleshooting
Open the Command Palette → **MCP: List Servers** → select **cpln** → **Sign Out**. Then open **MCP: List Servers** again, select **cpln**, and choose **Start Server** — VS Code prompts you to authenticate. Sign in again and adjust your org selections on the consent screen.
## Next steps
Practical prompts for common Control Plane workflows
30+ production-ready templates your AI can deploy on request
# Create an agent
Source: https://docs.controlplane.com/api-reference/agent/create-an-agent
post /org/{org}/agent
# Delete an agent by name
Source: https://docs.controlplane.com/api-reference/agent/delete-an-agent-by-name
delete /org/{org}/agent/{name}
# Get all agents
Source: https://docs.controlplane.com/api-reference/agent/get-all-agents
get /org/{org}/agent
Response will contain all the agents the caller is authorized to view
# Get all agents based on a query
Source: https://docs.controlplane.com/api-reference/agent/get-all-agents-based-on-a-query
post /org/{org}/agent/-query
Response will contain all the agents the caller is authorized to view
# Get an agent by name
Source: https://docs.controlplane.com/api-reference/agent/get-an-agent-by-name
get /org/{org}/agent/{name}
Response will contain the requested agent if the caller is authorized to view it
# Get available permissions for an agent
Source: https://docs.controlplane.com/api-reference/agent/get-available-permissions-for-an-agent
get /org/{org}/agent/-schema/permissions
Response contains the grantable permissions that are available for an agent when adding a binding in a policy.
# Get the access report for an agent by name
Source: https://docs.controlplane.com/api-reference/agent/get-the-access-report-for-an-agent-by-name
get /org/{org}/agent/{name}/-accessreport
Response will contain the permissions and associated bindings (principal and granted permission) for an agent if the caller is authorized to view it
# Perform a Patch on an agent by name
Source: https://docs.controlplane.com/api-reference/agent/perform-a-patch-on-an-agent-by-name
patch /org/{org}/agent/{name}
# Query agent health
Source: https://docs.controlplane.com/api-reference/agent/query-agent-health
get /org/{org}/agent/{name}/-info
# API Reference
Source: https://docs.controlplane.com/api-reference/api
REST API reference for Control Plane covering Core and Audit APIs, Bearer token authentication, service account keys, and user access tokens.
## Overview
Two APIs are available:
* **Core API** - Main API for managing Control Plane resources
* **Audit API** - API for querying and creating audit events
## API Endpoints
| API | Endpoint URL | Fallback Swagger API Documentation |
| :---- | :--------------------------------------------------------- | :----------------------------------------------------------------------------- |
| Core | [https://api.cpln.io/](https://api.cpln.io/) | [https://console.cpln.io/openapi/core](https://console.cpln.io/openapi/core) |
| Audit | [https://audit.cpln.io/audit](https://audit.cpln.io/audit) | [https://console.cpln.io/openapi/audit](https://console.cpln.io/openapi/audit) |
## Authentication
The Control Plane APIs use Bearer token authentication. All API requests must include an authorization header with a valid token.
### Obtaining Authorization Tokens
You can authenticate using one of the following methods:
#### Service Account Key
[Create a service account](/guides/create-service-account) in your organization with the necessary permissions, then generate a service account key. This key can be used as an API token.
#### User Access Token
If you're using the [Control Plane CLI](/cli-reference/overview), first log in by running [cpln login](/cli-reference/commands/login). The CLI prints a login URL and a confirmation code; open the URL in a browser on any device and authenticate using your identity provider (Google, Microsoft, etc.). After logging in, your CLI profile receives an access token that is used for all subsequent requests.
To obtain this access token, run:
```bash theme={null}
cpln profile token
```
Replace `` with the name of your logged-in [CLI profile](/cli-reference/commands/profile#profile-get). Use the returned token as your authorization token.
### Using Authentication
Include your token in the `Authorization` header of all API requests:
```bash theme={null}
Authorization: Bearer YOUR_TOKEN_HERE
```
Example with cURL:
```bash theme={null}
curl --request GET \
--url https://api.cpln.io/org/{org}/gvc/{name} \
--header 'Authorization: YOUR_TOKEN_HERE'
```
## Using the Interactive API Playground
Each endpoint in this documentation includes a **"Try it"** button that opens an interactive API playground. You can use this to:
1. **Test endpoints directly** - Make live API calls without leaving the documentation
2. **See request/response examples** - View formatted JSON responses
3. **Copy code samples** - Get ready-to-use cURL, Python, or JavaScript examples
### Example: Getting a GVC
To get a GVC (Global Virtual Cloud) using the interactive playground:
1. Navigate to the **GVC** section in the Core API
2. Click on **"Get a GVC by name"**
3. Click the green **"Try it"** button
4. Enter your authorization token in the authentication field
5. Fill in the required parameters:
* `org`: Your organization name (e.g., `my-org`)
* `name`: The name of your GVC (e.g., `my-gvc`)
6. Click **"Send"** to execute the request
The response will display the GVC details in JSON format, which you can copy or use as a reference for your own API calls.
### Example Request
Here's a complete example of getting a GVC using cURL:
```bash theme={null}
curl --request GET \
--url https://api.cpln.io/org/my-org/gvc/my-gvc \
--header 'Authorization: YOUR_TOKEN_HERE'
```
Successful response:
```json theme={null}
{
"kind": "gvc",
"id": "aac813e3-0fef-423f-9dcd-630f5a59e56a",
"name": "my-gvc",
"alias": "a1gm4cx40er00",
"description": "my-gvc",
"version": 12,
"tags": {},
"created": "2024-01-10T21:50:46.156Z",
"lastModified": "2025-11-20T13:09:31.150Z",
"spec": {
"env": [
{
"name": "KEY",
"value": "VALUE"
}
],
"loadBalancer": {
"trustedProxies": 0
},
"staticPlacement": {
"locationLinks": ["/org/my-org/location/aws-eu-central-1"]
}
},
"links": [
{
"rel": "self",
"href": "/org/my-org/gvc/my-gvc"
},
{
"rel": "org",
"href": "/org/my-org"
},
{
"rel": "workload",
"href": "/org/my-org/gvc/my-gvc/workload"
},
{
"rel": "identity",
"href": "/org/my-org/gvc/my-gvc/identity"
}
],
"status": {}
}
```
# Create a new audit event
Source: https://docs.controlplane.com/api-reference/audit/producer/create-a-new-audit-event
post /org/{org}/auditctx/{contextName}
# Get all audit events by query parameters
Source: https://docs.controlplane.com/api-reference/audit/query/get-all-audit-events-by-query-parameters
get /org/{org}
# Get all audit events by request ID
Source: https://docs.controlplane.com/api-reference/audit/query/get-all-audit-events-by-request-id
get /org/{org}/requestId/{requestId}
# Get all audit events by resource ID
Source: https://docs.controlplane.com/api-reference/audit/query/get-all-audit-events-by-resource-id
get /org/{org}/resource/id/{resourceId}
# Get all audit events by resource name
Source: https://docs.controlplane.com/api-reference/audit/query/get-all-audit-events-by-resource-name
get /org/{org}/resource/name/{resourceName}
# Get all audit events by subject email
Source: https://docs.controlplane.com/api-reference/audit/query/get-all-audit-events-by-subject-email
get /org/{org}/subject/email/{subjectEmail}
# Get an audit event by ID
Source: https://docs.controlplane.com/api-reference/audit/query/get-an-audit-event-by-id
get /org/{org}/id/{id}
# Create an audit context
Source: https://docs.controlplane.com/api-reference/auditctx/create-an-audit-context
post /org/{org}/auditctx
# Get all audit contexts
Source: https://docs.controlplane.com/api-reference/auditctx/get-all-audit-contexts
get /org/{org}/auditctx
Response will contain all the audit contexts the caller is authorized to view
# Get all audit contexts based on a query
Source: https://docs.controlplane.com/api-reference/auditctx/get-all-audit-contexts-based-on-a-query
post /org/{org}/auditctx/-query
Response will contain all the audit contexts the caller is authorized to view
# Get an audit context by name
Source: https://docs.controlplane.com/api-reference/auditctx/get-an-audit-context-by-name
get /org/{org}/auditctx/{name}
Response will contain the requested audit context if the caller is authorized to view it
# Get available permissions for an audit context
Source: https://docs.controlplane.com/api-reference/auditctx/get-available-permissions-for-an-audit-context
get /org/{org}/auditctx/-schema/permissions
Response contains the grantable permissions that are available for an audit context when adding a binding in a policy.
# Get the access report for an audit context by name
Source: https://docs.controlplane.com/api-reference/auditctx/get-the-access-report-for-an-audit-context-by-name
get /org/{org}/auditctx/{name}/-accessreport
Response will contain the permissions and associated bindings (principal and granted permission) for an audit context if the caller is authorized to view it
# Perform a Patch on an audit context by name
Source: https://docs.controlplane.com/api-reference/auditctx/perform-a-patch-on-an-audit-context-by-name
patch /org/{org}/auditctx/{name}
# Create a cloud account
Source: https://docs.controlplane.com/api-reference/cloudaccount/create-a-cloud-account
post /org/{org}/cloudaccount
# Delete an cloud account by name
Source: https://docs.controlplane.com/api-reference/cloudaccount/delete-an-cloud-account-by-name
delete /org/{org}/cloudaccount/{name}
# Get a cloud account by name
Source: https://docs.controlplane.com/api-reference/cloudaccount/get-a-cloud-account-by-name
get /org/{org}/cloudaccount/{name}
Response will contain the requested cloud account if the caller is authorized to view it
# Get all cloud accounts
Source: https://docs.controlplane.com/api-reference/cloudaccount/get-all-cloud-accounts
get /org/{org}/cloudaccount
Response will contain all the cloud accounts the caller is authorized to view
# Get all cloud accounts based on a query
Source: https://docs.controlplane.com/api-reference/cloudaccount/get-all-cloud-accounts-based-on-a-query
post /org/{org}/cloudaccount/-query
Response will contain all the cloud accounts the caller is authorized to view
# Get available permissions for a cloud account resource type
Source: https://docs.controlplane.com/api-reference/cloudaccount/get-available-permissions-for-a-cloud-account-resource-type
get /org/{org}/cloudaccount/-schema/permissions
Response contains the grantable permissions that are available for a cloud account when adding a binding in a policy.
# Get the access report for a cloud account by name
Source: https://docs.controlplane.com/api-reference/cloudaccount/get-the-access-report-for-a-cloud-account-by-name
get /org/{org}/cloudaccount/{name}/-accessreport
Response will contain the permissions and associated bindings (principal and granted permission) for a cloud account if the caller is authorized to view it
# Perform a Patch on a cloud account by name
Source: https://docs.controlplane.com/api-reference/cloudaccount/perform-a-patch-on-a-cloud-account-by-name
patch /org/{org}/cloudaccount/{name}
# Create a domain
Source: https://docs.controlplane.com/api-reference/domain/create-a-domain
post /org/{org}/domain
# Delete a domain by name
Source: https://docs.controlplane.com/api-reference/domain/delete-a-domain-by-name
delete /org/{org}/domain/{name}
# Get a domain by name
Source: https://docs.controlplane.com/api-reference/domain/get-a-domain-by-name
get /org/{org}/domain/{name}
Response will contain the requested domain if the caller is authorized to view it
# Get all domains
Source: https://docs.controlplane.com/api-reference/domain/get-all-domains
get /org/{org}/domain
Response will contain all the domains the caller is authorized to view
# Get all domains based on a query
Source: https://docs.controlplane.com/api-reference/domain/get-all-domains-based-on-a-query
post /org/{org}/domain/-query
Response will contain all the domains the caller is authorized to view
# Get available permissions for a domain resource type
Source: https://docs.controlplane.com/api-reference/domain/get-available-permissions-for-a-domain-resource-type
get /org/{org}/domain/-schema/permissions
Response contains the grantable permissions that are available for a domain when adding a binding in a policy.
# Get the access report for a domain by name
Source: https://docs.controlplane.com/api-reference/domain/get-the-access-report-for-a-domain-by-name
get /org/{org}/domain/{name}/-accessreport
Response will contain the permissions and associated bindings (principal and granted permission) for a domain if the caller is authorized to view it
# Perform a Patch on a domain by name
Source: https://docs.controlplane.com/api-reference/domain/perform-a-patch-on-a-domain-by-name
patch /org/{org}/domain/{name}
# Create a group
Source: https://docs.controlplane.com/api-reference/group/create-a-group
post /org/{org}/group
# Delete a group by name
Source: https://docs.controlplane.com/api-reference/group/delete-a-group-by-name
delete /org/{org}/group/{name}
# Get a group by name
Source: https://docs.controlplane.com/api-reference/group/get-a-group-by-name
get /org/{org}/group/{name}
Response will contain the requested group if the caller is authorized to view it
# Get all groups
Source: https://docs.controlplane.com/api-reference/group/get-all-groups
get /org/{org}/group
Response will contain all the groups the caller is authorized to view
# Get all groups based on a query
Source: https://docs.controlplane.com/api-reference/group/get-all-groups-based-on-a-query
post /org/{org}/group/-query
Response will contain all the groups the caller is authorized to view
# Get available permissions for a group resource type
Source: https://docs.controlplane.com/api-reference/group/get-available-permissions-for-a-group-resource-type
get /org/{org}/group/-schema/permissions
Response contains the grantable permissions that are available for a group when adding a binding in a policy.
# Get the access report for a group by name
Source: https://docs.controlplane.com/api-reference/group/get-the-access-report-for-a-group-by-name
get /org/{org}/group/{name}/-accessreport
Response will contain the permissions and associated bindings (principal and granted permission) for a group if the caller is authorized to view it
# Perform a Patch on a group by name
Source: https://docs.controlplane.com/api-reference/group/perform-a-patch-on-a-group-by-name
patch /org/{org}/group/{name}
# Create a GVC
Source: https://docs.controlplane.com/api-reference/gvc/create-a-gvc
post /org/{org}/gvc
# Delete a GVC by name
Source: https://docs.controlplane.com/api-reference/gvc/delete-a-gvc-by-name
delete /org/{org}/gvc/{name}
# Get a GVC by name
Source: https://docs.controlplane.com/api-reference/gvc/get-a-gvc-by-name
get /org/{org}/gvc/{name}
Response will contain the requested GVC if the caller is authorized to view it
# Get all GVCs
Source: https://docs.controlplane.com/api-reference/gvc/get-all-gvcs
get /org/{org}/gvc
Response will contain all the GVCs the caller is authorized to view
# Get all GVCs based on a query
Source: https://docs.controlplane.com/api-reference/gvc/get-all-gvcs-based-on-a-query
post /org/{org}/gvc/-query
Response will contain all the GVCs the caller is authorized to view
# Get available permissions for a GVC resource type
Source: https://docs.controlplane.com/api-reference/gvc/get-available-permissions-for-a-gvc-resource-type
get /org/{org}/gvc/-schema/permissions
Response contains the grantable permissions that are available for a GVC when adding a binding in a policy.
# Get the access report for a GVC by name
Source: https://docs.controlplane.com/api-reference/gvc/get-the-access-report-for-a-gvc-by-name
get /org/{org}/gvc/{name}/-accessreport
Response will contain the permissions and associated bindings (principal and granted permission) for a GVC if the caller is authorized to view it
# Perform a Patch on a GVC by name
Source: https://docs.controlplane.com/api-reference/gvc/perform-a-patch-on-a-gvc-by-name
patch /org/{org}/gvc/{name}
# Create an identity
Source: https://docs.controlplane.com/api-reference/identity/create-an-identity
post /org/{org}/gvc/{gvc}/identity
# Delete an identity by GVC and name
Source: https://docs.controlplane.com/api-reference/identity/delete-an-identity-by-gvc-and-name
delete /org/{org}/gvc/{gvc}/identity/{name}
# Get all GVC identities based on a query
Source: https://docs.controlplane.com/api-reference/identity/get-all-gvc-identities-based-on-a-query
post /org/{org}/identity/-query
Response will contain all the GVC identities the caller is authorized to view
# Get all identities from all GVCs
Source: https://docs.controlplane.com/api-reference/identity/get-all-identities-from-all-gvcs
get /org/{org}/identity
Response will contain all the identities from all the GVCs the caller is authorized to view
# Get all identities in a GVC
Source: https://docs.controlplane.com/api-reference/identity/get-all-identities-in-a-gvc
get /org/{org}/gvc/{gvc}/identity
# Get an identity by GVC and name
Source: https://docs.controlplane.com/api-reference/identity/get-an-identity-by-gvc-and-name
get /org/{org}/gvc/{gvc}/identity/{name}
Response will contain the requested identity if the caller is authorized to view it
# Get available permissions for an identity
Source: https://docs.controlplane.com/api-reference/identity/get-available-permissions-for-an-identity
get /org/{org}/identity/-schema/permissions
Response contains the grantable permissions that are available for an identity when adding a binding in a policy.
# Get the access report for an identity by GVC and name
Source: https://docs.controlplane.com/api-reference/identity/get-the-access-report-for-an-identity-by-gvc-and-name
get /org/{org}/gvc/{gvc}/identity/{name}/-accessreport
Response will contain the permissions and associated bindings (principal and granted permission) for an identity if the caller is authorized to view it
# Perform a Patch on an identity by name
Source: https://docs.controlplane.com/api-reference/identity/perform-a-patch-on-an-identity-by-name
patch /org/{org}/gvc/{gvc}/identity/{name}
# Delete an image by name
Source: https://docs.controlplane.com/api-reference/image/delete-an-image-by-name
delete /org/{org}/image/{name}
# Get all images
Source: https://docs.controlplane.com/api-reference/image/get-all-images
get /org/{org}/image
Response will contain all the images the caller is authorized to view
# Get all images based on a query
Source: https://docs.controlplane.com/api-reference/image/get-all-images-based-on-a-query
post /org/{org}/image/-query
Response will contain all the images the caller is authorized to view
# Get a image by name
Source: https://docs.controlplane.com/api-reference/image/get-an-image-by-name
get /org/{org}/image/{name}
Response will contain the requested image if the caller is authorized to view it
# Get available permissions for an image resource type
Source: https://docs.controlplane.com/api-reference/image/get-available-permissions-for-an-image-resource-type
get /org/{org}/image/-schema/permissions
Response contains the grantable permissions that are available for an image when adding a binding in a policy.
# Get the access report for an image by name
Source: https://docs.controlplane.com/api-reference/image/get-the-access-report-for-an-image-by-name
get /org/{org}/image/{name}/-accessreport
Response will contain the permissions and associated bindings (principal and granted permission) for an image if the caller is authorized to view it
# Perform a Patch on an image by name
Source: https://docs.controlplane.com/api-reference/image/perform-a-patch-on-an-image-by-name
patch /org/{org}/image/{name}
# Create an IP Set
Source: https://docs.controlplane.com/api-reference/ipset/create-an-ip-set
post /org/{org}/ipset
# Delete an IP Set by name
Source: https://docs.controlplane.com/api-reference/ipset/delete-an-ip-set-by-name
delete /org/{org}/ipset/{name}
# Get all IP Sets
Source: https://docs.controlplane.com/api-reference/ipset/get-all-ip-sets
get /org/{org}/ipset
Response will contain all the IP Sets the caller is authorized to view
# Get an IP Set by name
Source: https://docs.controlplane.com/api-reference/ipset/get-an-ip-set-by-name
get /org/{org}/ipset/{name}
Response will contain the requested IP Set if the caller is authorized to view it
# Get available permissions for an IP Set resource type
Source: https://docs.controlplane.com/api-reference/ipset/get-available-permissions-for-an-ip-set-resource-type
get /org/{org}/ipset/-schema/permissions
Response contains the grantable permissions that are available for a IP Set when adding a binding in a policy.
# Get the access report for an IP Set by name
Source: https://docs.controlplane.com/api-reference/ipset/get-the-access-report-for-an-ip-set-by-name
get /org/{org}/ipset/{name}/-accessreport
Response will contain the permissions and associated bindings (principal and granted permission) for an IP Set if the caller is authorized to view it
# Perform a Patch on a secret by name
Source: https://docs.controlplane.com/api-reference/ipset/perform-a-patch-on-an-ip-set-by-name
patch /org/{org}/secret/{name}
# Get a location by name
Source: https://docs.controlplane.com/api-reference/location/get-a-location-by-name
get /org/{org}/location/{name}
Response will contain the requested location if the caller is authorized to view it
# Get all locations
Source: https://docs.controlplane.com/api-reference/location/get-all-locations
get /org/{org}/location
Response will contain all the locations the caller is authorized to view
# Get all locations based on a query
Source: https://docs.controlplane.com/api-reference/location/get-all-locations-based-on-a-query
post /org/{org}/location/-query
Response will contain all the locations the caller is authorized to view
# Get available permissions for a location resource type
Source: https://docs.controlplane.com/api-reference/location/get-available-permissions-for-a-location-resource-type
get /org/{org}/location/-schema/permissions
Response contains the grantable permissions that are available for a location when adding a binding in a policy.
# Get the access report for a location by name
Source: https://docs.controlplane.com/api-reference/location/get-the-access-report-for-a-location-by-name
get /org/{org}/location/{name}/-accessreport
Response will contain the permissions and associated bindings (principal and granted permission) for a location if the caller is authorized to view it
# Perform a Patch on a location by name
Source: https://docs.controlplane.com/api-reference/location/perform-a-patch-on-a-location-by-name
patch /org/{org}/location/{name}
# CA root for this cluster
Source: https://docs.controlplane.com/api-reference/mk8s/ca-root-for-this-cluster
get /org/{org}/mk8s/{name}/-cacerts
PEM-encoded CA certificate
# Check if cluster is deployed
Source: https://docs.controlplane.com/api-reference/mk8s/check-if-cluster-is-deployed
get /org/{org}/mk8s/{name}/-ready
# Create an Mk8s Cluster
Source: https://docs.controlplane.com/api-reference/mk8s/create-an-mk8s-cluster
post /org/{org}/mk8s
# Delete an mk8s cluster by name
Source: https://docs.controlplane.com/api-reference/mk8s/delete-an-mk8s-cluster-by-name
delete /org/{org}/mk8s/{name}
# Get all mk8s clusters
Source: https://docs.controlplane.com/api-reference/mk8s/get-all-mk8s-clusters
get /org/{org}/mk8s
Response will contain all the mk8s clusters the caller is authorized to view
# Get all mk8s clusters based on a query
Source: https://docs.controlplane.com/api-reference/mk8s/get-all-mk8s-clusters-based-on-a-query
post /org/{org}/mk8s/-query
Response will contain all the mk8s clusters the caller is authorized to view
# Get an mk8s cluster by name
Source: https://docs.controlplane.com/api-reference/mk8s/get-an-mk8s-cluster-by-name
get /org/{org}/mk8s/{name}
Response will contain the requested mk8s cluster if the caller is authorized to view it
# Get available permissions for an mk8s cluster resource type
Source: https://docs.controlplane.com/api-reference/mk8s/get-available-permissions-for-an-mk8s-cluster-resource-type
get /org/{org}/mk8s/-schema/permissions
Response contains the grantable permissions that are available for an mk8s cluster when adding a binding in a policy.
# Get the access report for an mk8s cluster name
Source: https://docs.controlplane.com/api-reference/mk8s/get-the-access-report-for-an-mk8s-cluster-name
get /org/{org}/mk8s/{name}/-accessreport
Response will contain the permissions and associated bindings (principal and granted permission) for a mk8s cluster if the caller is authorized to view it
# Perform a Patch on an mk8s cluster by name
Source: https://docs.controlplane.com/api-reference/mk8s/perform-a-patch-on-an-mk8s-cluster-by-name
patch /org/{org}/mk8s/{name}
# Retrieve a cloud-init script
Source: https://docs.controlplane.com/api-reference/mk8s/retrieve-a-cloud-init-script
post /org/{org}/mk8s/{name}/-cloudinit
Note: the result contains sensitive information (secrets). Not all providers support this. In this case 400 will be returned
# Retrieve a join shell script.
Source: https://docs.controlplane.com/api-reference/mk8s/retrieve-a-join-shell-script
post /org/{org}/mk8s/{name}/-join
Note: the result contains sensitive information (secrets). Not all providers support this. In this case 400 will be returned
# Retrieve a kubeconfig
Source: https://docs.controlplane.com/api-reference/mk8s/retrieve-a-kubeconfig
post /org/{org}/mk8s/{name}/-kubeconfig
The kubeconfig will use the cpln CLI as an auth provider. The response contains not secrets as the cpln CLI is used for authorization
# Create an org
Source: https://docs.controlplane.com/api-reference/org/create-an-org
post /org
# Get all orgs
Source: https://docs.controlplane.com/api-reference/org/get-all-orgs
get /org
Response will contain all the orgs the caller is authorized to view
# Get all orgs based on a query
Source: https://docs.controlplane.com/api-reference/org/get-all-orgs-based-on-a-query
post /org/-query
Response will contain all the orgs the caller is authorized to view
# Get an org by name
Source: https://docs.controlplane.com/api-reference/org/get-an-org-by-name
get /org/{name}
Response will contain the requested org if the caller is authorized to view it
# Get available permissions for an org resource type
Source: https://docs.controlplane.com/api-reference/org/get-available-permissions-for-an-org-resource-type
get /org/{org}/org/-schema/permissions
Response contains the grantable permissions that are available for an org when adding a binding in a policy.
# Get the access report for an org by name
Source: https://docs.controlplane.com/api-reference/org/get-the-access-report-for-an-org-by-name
get /org/{name}/-accessreport
Response will contain the permissions and associated bindings (principal and granted permission) for an org if the caller is authorized to view it
# Perform a Patch on an org by name
Source: https://docs.controlplane.com/api-reference/org/perform-a-patch-on-an-org-by-name
patch /org/{name}
# Create a policy
Source: https://docs.controlplane.com/api-reference/policy/create-a-policy
post /org/{org}/policy
# Delete a policy by name
Source: https://docs.controlplane.com/api-reference/policy/delete-a-policy-by-name
delete /org/{org}/policy/{name}
# Get a policy by name
Source: https://docs.controlplane.com/api-reference/policy/get-a-policy-by-name
get /org/{org}/policy/{name}
Response will contain the requested policy if the caller is authorized to view it
# Get all policies
Source: https://docs.controlplane.com/api-reference/policy/get-all-policies
get /org/{org}/policy
Response will contain all the policies the caller is authorized to view
# Get all policies based on a query
Source: https://docs.controlplane.com/api-reference/policy/get-all-policies-based-on-a-query
post /org/{org}/policy/-query
Response will contain all the policies the caller is authorized to view
# Get available permissions for a policy resource type
Source: https://docs.controlplane.com/api-reference/policy/get-available-permissions-for-a-policy-resource-type
get /org/{org}/policy/-schema/permissions
Response contains the grantable permissions that are available for a policy when adding a binding in a policy.
# Get the access report for a policy by name
Source: https://docs.controlplane.com/api-reference/policy/get-the-access-report-for-a-policy-by-name
get /org/{org}/policy/{name}/-accessreport
Response will contain the permissions and associated bindings (principal and granted permission) for a policy if the caller is authorized to view it
# Perform a Patch on a policy by name
Source: https://docs.controlplane.com/api-reference/policy/perform-a-patch-on-a-policy-by-name
patch /org/{org}/policy/{name}
# Get a quota by ID
Source: https://docs.controlplane.com/api-reference/quota/get-a-quota-by-id
get /org/{org}/quota/{id}
Response will contain the requested quota if the caller is authorized to view it
# Get all quotas
Source: https://docs.controlplane.com/api-reference/quota/get-all-quotas
get /org/{org}/quota
Response will contain all the quotas the caller is authorized to view
# Get all quotas based on a query
Source: https://docs.controlplane.com/api-reference/quota/get-all-quotas-based-on-a-query
post /org/{org}/quota/-query
Response will contain all the quotas the caller is authorized to view
# Get available permissions for a quota resource type
Source: https://docs.controlplane.com/api-reference/quota/get-available-permissions-for-a-quota-resource-type
get /org/{org}/quota/-schema/permissions
Response contains the grantable permissions that are available for a quota when adding a binding in a policy.
# Create a secret
Source: https://docs.controlplane.com/api-reference/secret/create-a-secret
post /org/{org}/secret
# Delete a secret by name
Source: https://docs.controlplane.com/api-reference/secret/delete-a-secret-by-name
delete /org/{org}/secret/{name}
# Get a secret by name
Source: https://docs.controlplane.com/api-reference/secret/get-a-secret-by-name
get /org/{org}/secret/{name}
Response will contain the requested secret (except for any sensitive content) if the caller is authorized to view it. Use "reveal" to get the sensitive content.
# Get all secrets
Source: https://docs.controlplane.com/api-reference/secret/get-all-secrets
get /org/{org}/secret
Response will contain all the secrets the caller is authorized to view
# Get all secrets based on a query
Source: https://docs.controlplane.com/api-reference/secret/get-all-secrets-based-on-a-query
post /org/{org}/secret/-query
Response will contain all the secrets the caller is authorized to view
# Get available permissions for a secret resource type
Source: https://docs.controlplane.com/api-reference/secret/get-available-permissions-for-a-secret-resource-type
get /org/{org}/secret/-schema/permissions
Response contains the grantable permissions that are available for a secret when adding a binding in a policy.
# Get the access report for a secret by name
Source: https://docs.controlplane.com/api-reference/secret/get-the-access-report-for-a-secret-by-name
get /org/{org}/secret/{name}/-accessreport
Response will contain the permissions and associated bindings (principal and granted permission) for a secret if the caller is authorized to view it
# Get the sensitive content of a secret by name
Source: https://docs.controlplane.com/api-reference/secret/get-the-sensitive-content-of-a-secret-by-name
get /org/{org}/secret/{name}/-reveal
# Perform a Patch on a secret by name
Source: https://docs.controlplane.com/api-reference/secret/perform-a-patch-on-a-secret-by-name
patch /org/{org}/secret/{name}
# Add a key to a service account
Source: https://docs.controlplane.com/api-reference/serviceaccount/add-a-key-to-a-service-account
post /org/{org}/serviceaccount/{name}/-addKey
You may want to capture the result of this as the key will never be shown again
# Create a service account
Source: https://docs.controlplane.com/api-reference/serviceaccount/create-a-service-account
post /org/{org}/serviceaccount
# Delete a service account by name
Source: https://docs.controlplane.com/api-reference/serviceaccount/delete-a-service-account-by-name
delete /org/{org}/serviceaccount/{name}
# Get a service account by name
Source: https://docs.controlplane.com/api-reference/serviceaccount/get-a-service-account-by-name
get /org/{org}/serviceaccount/{name}
Response will contain the requested service account if the caller is authorized to view it
# Get all service accounts
Source: https://docs.controlplane.com/api-reference/serviceaccount/get-all-service-accounts
get /org/{org}/serviceaccount
Response will contain all the service accounts the caller is authorized to view
# Get all service accounts based on a query
Source: https://docs.controlplane.com/api-reference/serviceaccount/get-all-service-accounts-based-on-a-query
post /org/{org}/serviceaccount/-query
Response will contain all the service accounts the caller is authorized to view
# Get available permissions for a service account resource type
Source: https://docs.controlplane.com/api-reference/serviceaccount/get-available-permissions-for-a-service-account-resource-type
get /org/{org}/serviceaccount/-schema/permissions
Response contains the grantable permissions that are available for a service account when adding a binding in a policy.
# Get the access report for a service account by name
Source: https://docs.controlplane.com/api-reference/serviceaccount/get-the-access-report-for-a-service-account-by-name
get /org/{org}/serviceaccount/{name}/-accessreport
Response will contain the permissions and associated bindings (principal and granted permission) for a service account if the caller is authorized to view it
# Perform a Patch on a service account by name
Source: https://docs.controlplane.com/api-reference/serviceaccount/perform-a-patch-on-a-service-account-by-name
patch /org/{org}/serviceaccount/{name}
# Delete/Cancel a task by ID
Source: https://docs.controlplane.com/api-reference/task/deletecancel-a-task-by-id
delete /org/{org}/task/{id}
# Get a task by ID
Source: https://docs.controlplane.com/api-reference/task/get-a-task-by-id
get /org/{org}/task/{id}
Response will contain the requested task if the caller is authorized to view it
# Get all tasks
Source: https://docs.controlplane.com/api-reference/task/get-all-tasks
get /org/{org}/task
Response will contain all the tasks the caller is authorized to view
# Get all tasks based on a query
Source: https://docs.controlplane.com/api-reference/task/get-all-tasks-based-on-a-query
post /org/{org}/task/-query
Response will contain all the tasks the caller is authorized to view
# Get available permissions for a task resource type
Source: https://docs.controlplane.com/api-reference/task/get-available-permissions-for-a-task-resource-type
get /org/{org}/task/-schema/permissions
Response contains the grantable permissions that are available for a task when adding a binding in a policy.
# List tasks that you can accept to refuse
Source: https://docs.controlplane.com/api-reference/task/list-tasks-that-you-can-accept-to-refuse
get /task/-forme
# List tasks that you can accept to refuse in a specific org
Source: https://docs.controlplane.com/api-reference/task/list-tasks-that-you-can-accept-to-refuse-in-a-specific-org
get /org/{org}/task/-forme
# Post
Source: https://docs.controlplane.com/api-reference/task/post
post /org/{org}/task/{id}
Accept or refuse a task
# Delete a user by name
Source: https://docs.controlplane.com/api-reference/user/delete-a-user-by-name
delete /org/{org}/user/{name}
# Get a user by name
Source: https://docs.controlplane.com/api-reference/user/get-a-user-by-name
get /org/{org}/user/{name}
Response will contain the requested user if the caller is authorized to view it
# Get all users
Source: https://docs.controlplane.com/api-reference/user/get-all-users
get /org/{org}/user
Response will contain all the users the caller is authorized to view
# Get all users based on a query
Source: https://docs.controlplane.com/api-reference/user/get-all-users-based-on-a-query
post /org/{org}/user/-query
Response will contain all the users the caller is authorized to view
# Get available permissions for a user resource type
Source: https://docs.controlplane.com/api-reference/user/get-available-permissions-for-a-user-resource-type
get /org/{org}/user/-schema/permissions
Response contains the grantable permissions that are available for a user when adding a binding in a policy.
# Get the access report for a user by name
Source: https://docs.controlplane.com/api-reference/user/get-the-access-report-for-a-user-by-name
get /org/{org}/user/{name}/-accessreport
Response will contain the permissions and associated bindings (principal and granted permission) for a user if the caller is authorized to view it
# Invite users to this org
Source: https://docs.controlplane.com/api-reference/user/invite-users-to-this-org
post /org/{org}/user/-invite
# Perform a Patch on a user by name
Source: https://docs.controlplane.com/api-reference/user/perform-a-patch-on-a-user-by-name
patch /org/{org}/user/{name}
# Create a volumeset
Source: https://docs.controlplane.com/api-reference/volumeset/create-a-volumeset
post /org/{org}/gvc/{gvc}/volumeset
# Delete a volumeset by name
Source: https://docs.controlplane.com/api-reference/volumeset/delete-a-volumeset-by-name
delete /org/{org}/gvc/{gvc}/volumeset/{name}
# Get a volumeset by GVC and name
Source: https://docs.controlplane.com/api-reference/volumeset/get-a-volumeset-by-gvc-and-name
get /org/{org}/gvc/{gvc}/volumeset/{name}
Response will contain the requested volumeset if the caller is authorized to view it
# Get all volumesets
Source: https://docs.controlplane.com/api-reference/volumeset/get-all-volumesets
get /org/{org}/volumeset
Response will contain all the volumesets the caller is authorized to view
# Get all volumesets based on a query
Source: https://docs.controlplane.com/api-reference/volumeset/get-all-volumesets-based-on-a-query
post /org/{org}/volumeset/-query
Response will contain all the volumesets the caller is authorized to view
# Get available permissions for a volumeset resource type
Source: https://docs.controlplane.com/api-reference/volumeset/get-available-permissions-for-a-volumeset-resource-type
get /org/{org}/volumeset/-schema/permissions
Response contains the grantable permissions that are available for a volumeset when adding a binding in a policy.
# Get the access report for a volumeset by GVC and name
Source: https://docs.controlplane.com/api-reference/volumeset/get-the-access-report-for-a-volumeset-by-gvc-and-name
get /org/{org}/gvc/{gvc}/volumeset/{name}/-accessreport
Response will contain the permissions and associated bindings (principal and granted permission) for a volumeset if the caller is authorized to view it
# List volumesets in a GVC you are authorized to view
Source: https://docs.controlplane.com/api-reference/volumeset/list-volumesets-in-a-gvc-you-are-authorized-to-view
get /org/{org}/gvc/{gvc}/volumeset
# Perform a Patch on a volumeset by name
Source: https://docs.controlplane.com/api-reference/volumeset/perform-a-patch-on-a-volumeset-by-name
patch /org/{org}/gvc/{gvc}/volumeset/{name}
# Create a workload
Source: https://docs.controlplane.com/api-reference/workload/create-a-workload
post /org/{org}/gvc/{gvc}/workload
# Delete a workload by name
Source: https://docs.controlplane.com/api-reference/workload/delete-a-workload-by-name
delete /org/{org}/gvc/{gvc}/workload/{name}
# Get a deployment by GVC, workload and name
Source: https://docs.controlplane.com/api-reference/workload/get-a-deployment-by-gvc-workload-and-name
get /org/{org}/gvc/{gvc}/workload/{workload}/deployment/{name}
Fetch a specific deployment of a workload
# Get a workload by GVC and name
Source: https://docs.controlplane.com/api-reference/workload/get-a-workload-by-gvc-and-name
get /org/{org}/gvc/{gvc}/workload/{name}
Response will contain the requested workload if the caller is authorized to view it
# Get all workloads
Source: https://docs.controlplane.com/api-reference/workload/get-all-workloads
get /org/{org}/workload
Response will contain all the workloads the caller is authorized to view
# Get all workloads based on a query
Source: https://docs.controlplane.com/api-reference/workload/get-all-workloads-based-on-a-query
post /org/{org}/workload/-query
Response will contain all the workloads the caller is authorized to view
# Get available permissions for a workload resource type
Source: https://docs.controlplane.com/api-reference/workload/get-available-permissions-for-a-workload-resource-type
get /org/{org}/workload/-schema/permissions
Response contains the grantable permissions that are available for a workload when adding a binding in a policy.
# Get the access report for a workload by GVC and name
Source: https://docs.controlplane.com/api-reference/workload/get-the-access-report-for-a-workload-by-gvc-and-name
get /org/{org}/gvc/{gvc}/workload/{name}/-accessreport
Response will contain the permissions and associated bindings (principal and granted permission) for a workload if the caller is authorized to view it
# List deployments in a workload
Source: https://docs.controlplane.com/api-reference/workload/list-deployments-in-a-workload
get /org/{org}/gvc/{gvc}/workload/{workload}/deployment
# List workloads in a GVC you are authorized to view
Source: https://docs.controlplane.com/api-reference/workload/list-workloads-in-a-gvc-you-are-authorized-to-view
get /org/{org}/gvc/{gvc}/workload
# Perform a Patch on a workload by name
Source: https://docs.controlplane.com/api-reference/workload/perform-a-patch-on-a-workload-by-name
patch /org/{org}/gvc/{gvc}/workload/{name}
# CPLN BYOK
Source: https://docs.controlplane.com/byok/overview
Integrate your own Kubernetes cluster into Control Plane as a new location, enabling managed workload deployment on your own infrastructure.
The CPLN BYOK (Bring Your Own Kubernetes) allows you to integrate a Kubernetes cluster into the Control Plane Cloud Platform. It works by installing a few additional components into the cluster and then it registers as a new Location in the API for your Org(s). Any Workloads that are configured for that Location will be managed by Control Plane and roll out onto your cluster. You get all the benefits of Control Plane with the added flexibility and security of running in your own cloud account or data center.
## Requirements
* Label at least one nodegroup in the cluster with `cpln.io/nodeType=core`. This label deploys critical system pods and workloads managed by the Control Plane Platform.
* Minimum 2 CPUs per node (4 CPUs or more recommended)
* Minimum 8 GB of RAM per node (16 GB or more recommended)
* Minimum 2 nodes per cluster (3 or more recommended)
* Node processor architecture: amd64, arm64
* Supports the three most recent minor releases of Kubernetes for installation. For information on Kubernetes releases, see the [Kubernetes releases page](https://kubernetes.io/releases/).
* Full network connectivity between all nodes in the cluster (either public or private network)
* Enable egress access for all nodes (contact customer support for alternatives if this is not feasible)
* Exclude service-mesh from your cluster. Control Plane provides an out-of-the-box Istio-based service-mesh
* A working load balancer controller so that at least one service of type LoadBalancer is able to obtain a public or private ip address
## Setup Procedure
### Step 1 - Create BYOK Location Using the UI Console
1. Create a new location by either:
* Clicking `Locations` in the left menu and then clicking `New`, or
* Clicking the `Create` dropdown in the upper right corner and selecting `Location`.
2. Enter a unique name. Click `Next (Tags)`.
3. Enter any optional [tags](/core/misc#tags). Click `Create`.
You have now created a new location. To use it, install this location on at least one Kubernetes cluster as described in the next step.
### Step 2 - Install Location on a Kubernetes Cluster
1. Generate the install command:
* Click `Actions` in the upper right corner of the created location page and choose `Install`.
2. Copy the generated kubectl command. You will need to apply the command within about 5 and a half minutes, as the manifests contain sensitive tokens.
3. Connect to your Kubernetes cluster that you wish to integrate as a location in Control Plane and apply the kubectl command generated in the previous step.
4. Follow the `cpln-byok-agent` deployment in the `kube-system` namespace. Use the following command to fetch its status:
```shell theme={null}
kubectl get pod -l app=cpln-byok-agent -n kube-system
```
The `cpln-byok-agent` will create and maintain the necessary deployments for your location to function. Allow a few minutes for all necessary components to finish deploying.
Ensure at least one of the node groups is labeled with `cpln.io/nodeType=core`, as it is required to deploy essential components.
You can now add the BYOK location to a GVC in your Org.
Repeat [Step 2 - Install Location on a Kubernetes Cluster](#step-2-install-location-on-a-kubernetes-cluster) if you need to add more clusters to the same location, or start from [Step 1 - Create BYOK Location Using the UI Console](#step-1-create-byok-location-using-the-ui-console) to add another location.
## Uninstall Procedure
1. Generate the uninstall command:
* Click `Actions` in the upper right corner of the location you want to remove and choose `Uninstall`.
2. Copy the generated `kubectl` command. You will need to apply the command within about 5 and a half minutes, as the manifests contain sensitive tokens.
3. Connect to your Kubernetes cluster that you wish to remove from the location in Control Plane and apply the `kubectl` command generated in the previous step.
4. The job `cpln-agent-uninstall` will be created in the `kube-system` namespace. It will clean up all BYOK components from the cluster.
## Cloud Provider Recommendations
### GKE
* Private Cluster: Enabled
* Default SNAT: Enabled
* Stack type: IPv4
* VPC-native traffic routing: Enabled
* Intranode visibility: Disabled
* HTTP Load Balancing: Enabled
* Calico Network Policy: Enabled
* DNS provider: Kube-DNS
* Shielded GKE Nodes: Enabled
* Application -layer secrets encryption: Enabled
* Compute Engine persistent disk CSI Driver: Enabled
* Service Mesh: Disabled
After the GKE cluster is created, you must provide the IP address of the kube-dns service in the kube-system namespace to support.
```bash theme={null}
kubectl get svc -n kube-system kube-dns
```
Once the Control Plane configuration has been applied to the cluster, scale down the kube-dns deployments.
```bash theme={null}
kubectl scale --replicas=0 deployment/kube-dns-autoscaler --namespace=kube-system
kubectl scale --replicas=0 deployment/kube-dns --namespace=kube-system
```
### EKS
* Enabled Add-ons:
* Amazon VPC CNI
* kube-proxy
* CoreDNS
* Amazon EBS CSI Driver
## Settings
When using a BYOK Location with Control Plane there are additional settings available to control the behavior of that location.
* [Agent Configuration:](/byok/settings/agent) Agent settings are used during the installation and upgrade of all BYOK components.
* [Actuator Settings:](/byok/settings/actuator) Actuator settings are used to control ingress and other changes to the way workloads are created in Kubernetes.
* [Workload Settings:](/byok/settings/workload) Additional workload settings when using a BYOK Location.
* [Volume Set Settings:](/byok/settings/volumeset) Additional volume set settings when using a BYOK Location.
## Guides
* [Configure a Content Delivery Network (CDN) Domain.](/guides/configure-cdn#amazon-cloudfront-configuration-steps)
# Actuator Settings
Source: https://docs.controlplane.com/byok/settings/actuator
Configure the BYOK actuator component that processes Control Plane events to manage Kubernetes deployments, routing, and storage on your cluster.
The Actuator component receives events from Control Plane and uses the metadata provided in the events to instantiate the desired configuration on the kubernetes cluster. This can be Kubernetes deployments, domain routing configuration, storage devices, etc.
## Settings
These environment variables can be added into configuration for the actuator to adjust the behavior of the CPLN Platform.
To adjustment these settings, make changes to the [CPLN Platform Add-on](/mk8s/add-ons/byok) configuration or manually adjust the cpln-byok-current configmap if you are running your own Kubernetes.
### INGRESS\_REQ\_CPU
* The initial cpu request size used for shared and dedicated load balancer ingress deployments.
### INGRESS\_REQ\_MEM
* The initial memory request size used for shared and dedicated load balancer ingress deployments.
### INGRESS\_TARGET\_CPU\_PERCENT
* The target cpu percent used by the horizontal pod autoscalers for shared and dedicated load balancer ingress deployments. This should be calculated with awareness that the cpu value used is 4000 millicores but may be less if small nodes are used. For example, if the request size is set to 1000m and you desire a target to be 3000m, then set this value to 300.
### INGRESS\_FIREWALL\_CIDR\_LIST
* A comma delimited list of CIDRs used to restrict inbound access for shared and dedicated load balancers.
### INGRESS\_LOAD\_BALANCER\_SCHEME
* One of `internet-facing` or `internal`. When internal is used then you must be on a private network to access the workloads running in this location. Automated detection of geo-routing is limited in this configuration since the external monitoring will not be able to reach the endpoints.
### INGRESS\_ANNOTATIONS
* Annotations to be used instead of standard generated ones for the load balancer service for shared and dedicated load balancer ingress deployments. This can be useful if your cloud provider load balancer controller is not already supported by Control Plane and requires a specific annotation.
### INGRESS\_EXTRA\_ANNOTATIONS
* Extra annotations to be added to the load balancer service for shared and dedicated load balancers. This is useful if a specific annotation should be used in your environment for all load balancers. This is applied after the standard load balancer annotations and can be used to replace existing values. Pass through annotations are applied after this can be used to make additional adjustments to specific dedicated load balancers.
### INGRESS\_PORTS
* An array of ports used to limit the custom ports that are added to dedicated load balancers.
### BYOK\_K8S\_API\_WORKLOADS
* An array of workload links which are allowed to access the kubernetes api.
* The ClusterRole the workloads are given should be specified with the tag cpln/k8sClusterRole on the workload.
Ensure the ClusterRole already exists
### THIN\_PROVISION
* Percent of CPU that is guaranteed for workloads.
#### How to Configure Thin Provisioning
To configure thin provisioning, you need to modify the cpln-byok-current ConfigMap in the kube-system namespace. This ConfigMap contains the actuator settings where you can specify the THIN\_PROVISION environment variable.
#### Steps to Configure
1. Modify the cpln-byok-current configmap in the kube-system namespace.
2. In the actuator settings, add an environment variable named THIN\_PROVISION.
This variable should have a value representing the percentage of resources that will be guaranteed. For example, if you want to reserve 800m when 1000m is requested, set THIN\_PROVISION to .8.
Example Configuration:
Here is an example of how the configuration should look:
```json theme={null}
{
"actuator": {
"env": {
"CACHE_PERIOD_DATA_SERVICE": "600",
"LABEL_NODES": "false",
"THIN_PROVISION": ".8"
}
}
}
```
### MESH\_DISABLE\_IP\_AUTOALLOCATE
Stamps the mTLS [ServiceEntries](/reference/workload/security) the actuator generates with `networking.istio.io/enable-autoallocate-ip=false`. Defaults to `false` (off); enable it **per location**, only where it is needed.
#### When to use it
Enable this when a workload — most commonly a [VM workload](/reference/workload/vm) such as a Windows guest — connects to **another workload over the internal mesh endpoint** and the connection is unreliable over **raw TCP** (databases, RDP, or any non-HTTP protocol).
* **Symptom:** HTTP requests to the internal endpoint succeed, but plain TCP connections reset intermittently (roughly half the time).
* **Cause:** Istio's DNS proxy auto-allocates a virtual IP for each ServiceEntry. In the per-port mesh clusters Control Plane generates, that auto-allocated IP can resolve to an endpoint that is not actually serving, so the TCP connection is reset. HTTP survives because it is re-routed by its `Host` header; raw TCP has no such fallback.
* **Fix:** Setting this to `true` removes the auto-allocated IP, leaving only the real workload endpoint, so raw TCP lands on a live target.
#### How to configure
Add the environment variable to the actuator settings — either through the [CPLN Platform Add-on](/mk8s/add-ons/byok) configuration or by editing the `cpln-byok-current` ConfigMap directly if you run your own Kubernetes:
```json theme={null}
{
"actuator": {
"env": {
"MESH_DISABLE_IP_AUTOALLOCATE": "true"
}
}
}
```
After the actuator picks up the change, redeploy or reconcile the affected workload so its ServiceEntry is re-stamped, then re-establish any existing TCP connections.
### LABEL\_NODES
Controls whether the actuator automatically manages node labels and workload node selectors to enable isolation between core platform components and user workloads across multiple nodepools.
* Core Nodes - infrastructure components: ingress gateways, service mesh, monitoring, cloud integration, etc
* Workload Nodes - used for workloads and minimal supporting infrastructure for workloads
#### How LABEL\_NODES Works
When `LABEL_NODES` is set to `true`, the actuator implements the following behavior:
1. **Node Labeling**: The actuator automatically labels all nodes with `cpln.io/nodeType`:
* If a node has a taint `cpln.io/nodeType` with a specific value, the node receives that value as its label
* If a node does not have the `cpln.io/nodeType` taint, it receives the label `cpln.io/nodeType=core`
2. **Workload Node Selection**: The actuator adds a node selector `cpln.io/nodeType=workload` to all user workloads
3. **Taint Toleration**: All user workloads automatically tolerate the taint `cpln.io/nodeType=workload`
#### Configuring Multi-Nodepool Isolation
To run the CPLN Platform with separate nodepools for core components and user workloads:
1. **Enable LABEL\_NODES**: Set the `LABEL_NODES` environment variable to `true` in the actuator settings
2. **Configure Workload Nodepools**: Add a taint to all nodes in your workload nodepools:
```bash theme={null}
cpln.io/nodeType=workload:NoSchedule
```
3. **Configure Core Nodepools**: Leave core component nodepools without any taints since the workloads running there will not tolerate any taints. It's ok to provide the label `cpln.io/nodeType=core`
#### How Isolation Works
With this configuration:
* **User workloads** will only run on workload nodes because:
* They have a node selector requiring `cpln.io/nodeType=workload`
* They tolerate the `cpln.io/nodeType=workload:NoSchedule` taint
* **Core platform components** will only run on core nodes because:
* They do not tolerate the `cpln.io/nodeType=workload:NoSchedule` taint on workload nodes
#### Example Isolated Node Pool Configuration
Enable LABEL\_NODES in actuator:
```json theme={null}
{
"actuator": {
"env": {
"LABEL_NODES": "true"
}
}
}
```
In your Kubernetes or Managed Kubernetes (MK8s) nodepool configuration, add the appropriate taints:
**Workload Nodepool(s):**
```yaml theme={null}
taints:
- key: cpln.io/nodeType
value: workload
effect: NoSchedule
```
**Core Nodepool(s):**
```yaml theme={null}
# Must not have any taints
labels:
cpln.io/nodeType: core
```
### WORKLOAD\_DNS\_CONFIG\_OPTIONS
Overrides the pod `dnsConfig.options` the actuator applies to standard, stateful, cron, and serverless workload pods in this location. Value is a JSON array of `{name, value?}` objects, matching Kubernetes' [PodDNSConfigOption](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-config) shape.
Defaults to:
```json theme={null}
[
{ "name": "ndots", "value": "2" },
{ "name": "single-request-reopen" },
{ "name": "timeout", "value": "2" },
{ "name": "attempts", "value": "3" }
]
```
These defaults reduce transient `getaddrinfo` resolution failures. Set the value to `[]` to disable pod DNS options entirely.
Changing this setting does not force a fleet-wide pod restart. The new options take effect the next time each workload is otherwise updated (its next deploy).
#### How to configure
Add the environment variable to the actuator settings — either through the [CPLN Platform Add-on](/mk8s/add-ons/byok) configuration or by editing the `cpln-byok-current` ConfigMap directly if you run your own Kubernetes:
```json theme={null}
{
"actuator": {
"env": {
"WORKLOAD_DNS_CONFIG_OPTIONS": "[{\"name\":\"ndots\",\"value\":\"2\"}]"
}
}
}
```
# Agent Settings
Source: https://docs.controlplane.com/byok/settings/agent
Configure BYOK agent settings via the Control Plane API or the cpln-byok-current configmap for self-managed Kubernetes clusters.
If this CPLN Platform Location is created from the Managed kubernetes CPLN PLatform Add-on then all these settings can be adjusted in the Control Plane api. See [CPLN Platform Add-on](/mk8s/add-ons/byok) for information about where to adjust the settings.
If this Kubernetes cluster is not managed by Control Plane, then the configmap `cpln-byok-current` in the `kube-system` namespace can be used to adjust these options.
You can read the default values in the configmap by running this kubectl command against the cluster:
`kubectl get configmap -n kube-system cpln-byok-default -o yaml`
## Usage
To modify the configuration, update the configmap `cpln-byok-current` in the `kube-system` namespace.
Its recommended to store settings in a git repo or CI system so that they can be applied automatically for each new cluster.
## Example cpln-byok-default configmap
```json theme={null}
{
"actuator": {
"minCpu": "50m",
"maxCpu": "1001m",
"minMemory": "200Mi",
"maxMemory": "500Mi",
"logLevel": "info",
"env": {
"CACHE_PERIOD_DATA_SERVICE": "600",
"LABEL_NODES": "false"
}
},
"common": {
"pdb": {
"minAvailable": 0
}
},
"internalDns": {
"minCpu": "1m",
"maxCpu": "1001m",
"minMemory": "100Mi",
"maxMemory": "512Mi"
},
"istio": {
"istiod": {
"replicas": 1,
"maxCpu": "1001m",
"minMemory": "100Mi",
"maxMemory": "2500Mi",
"pdb": 0
}
},
"logSplitter": {
"minCpu": "1m",
"maxCpu": "200m",
"minMemory": "10Mi",
"maxMemory": "256Mi",
"memBufferSize": "128M",
"perPodRate": 10000
},
"monitoring": {
"minMemory": "100Mi"
},
"redis": {
"minCpu": "10m",
"maxCpu": "2001m",
"minMemory": "100Mi",
"maxMemory": "1000Mi",
"storage": "8Gi"
},
"middlebox": {
"enabled": true
}
}
```
## General Configurations
Common configuration settings that may be available for each component, check the `cpln-byok-default` configmap for availability.
| Property | Type | Description |
| :--------------- | :------------- | :------------------------------------------------------------- |
| minCpu | string | Minimum CPU allocation |
| maxCpu | string | Maximum CPU allocation |
| minMemory | string | Minimum memory allocation |
| maxMemory | string | Maximum memory allocation |
| logLevel | string | Logging level for the actuator |
| env | key: string\[] | Optional environment variables for the component |
| targetPercent | number | Target percentage for Horizontal CPU autoscaling |
| pdb.minAvailable | number | Minimum number of available pods for the pod disruption budget |
| replicas | number | Number of replicas |
## Additional Options
### Actuator
Actuator is responsible for syncing the configuration between the Control Plane API and the cluster.
It has several environment variables that will control its behavior.
[Actuator Settings](/byok/settings/actuator)
### Log Splitter
Configuration for component that forwards logs for workloads to Control Plane.
| Property | Type | Description |
| :------------ | :----- | :---------------------------------------------------- |
| memBufferSize | string | Memory buffer size |
| perPodRate | number | Max log records per second before rate limit; per pod |
### Redis
Configuration for a Redis instance that is used by Control Plane.
| Property | Type | Description |
| :------- | :----- | :------------------------------------------------------------------------------------------- |
| storage | string | Storage allocation for Redis in kubernetes storage capacity format. examples: `1Gi`, `500Mi` |
### Middlebox
Configuration for Middlebox, required for the [Cloud Wormhole agent](/reference/agent) to work with BYOK location.
| Property | Type | Description |
| :-------------- | :------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| enabled | boolean | Required. `true` or `false` |
| ip | string | Optional. For cloud platform that do not support UDP type Load Balancers |
| port | number | Optional. To change the default (51820) port. |
| ingressReplicas | number | Optional. Required for the agent [reverse HTTP proxy](/reference/agent#bi-directional-functionality). Set greater than `0` to enable inbound access from allowed agents. Defaults to `0`. |
# GVC Settings
Source: https://docs.controlplane.com/byok/settings/gvc
When using a dedicated load balancer on a GVC for a BYOK location, you can add additional GVC tags to provide passthrough annotations on the service that is created.
### Passthrough Annotations
You can add tags to the GVC to pass extra annotations through to the Kubernetes service created for the dedicated load balancer:
| Tag Key | Tag Value |
| ------------------------------ | --------- |
| `cpln/passthruAnnotation:$key` | `$value` |
The annotation applied to the Kubernetes service will be:
```
$key = $value
```
These annotations are merged after the actuator configured `INGRESS_ANNOTATIONS` and `INGRESS_EXTRA_ANNOTATIONS`.
# Volume Set Settings
Source: https://docs.controlplane.com/byok/settings/volumeset
Configure volume set storage class suffixes to use custom CSI-compatible storage solutions in BYOK environments.
When using a volume set in a BYOK environment, there are some additional configuration settings available.
## Storage Class Suffix
You can specify a `spec.storageClassSuffix` in a volume set. When this property is set, Control Plane will look for a storage class including this suffix. Storage classes are constructed by combining `spec.performanceClass`, `spec.fileSystemType`, and (optionally) the `spec.storageClassSuffix`. If a storage class including the suffix cannot be found, Control Plane falls back to the storage class excluding the suffix. This allows BYOK users to utilize any CSI-compatible storage solution they wish.
# Workload Settings
Source: https://docs.controlplane.com/byok/settings/workload
BYOK-specific workload settings including internal firewall configuration for private address ranges and extra Kubernetes options.
When running workloads on a BYOK Location, there are some additional configuration settings that are available.
## Internal Firewall Settings
When a workload is running on the Control Plane cloud platform IP Addresses and CIDR blocks configured for the external firewall of a workload are ignored if they are in any private address ranges. When running in a BYOK location these internal address ranges are allowed and can be used to directly access internal resources in your data center.
## extra k8s options
Some specific k8s options can be configured on workloads.
```yaml YAML theme={null}
spec:
extras:
affinity: ...
tolerations: ...
topologySpreadConstraints: ...
```
* Right now, only `affinity`, `tolerations`, and `topologySpreadConstraints` are supported.
* These options will be **merged** with the default ones.
## Custom Tags
An extra list of Control Plane tags can be used to change the behavior of workloads when they are run in BYOK Locations.
### Disable Service Mesh
`cpln/disableServiceMesh`=`true`
* When this tag is added to a workload the inbound and outbound sidecar is completely disabled. this can be useful in situations where proxying can confuse clients that are expecting direct IP communication without any NAT.
### Disable Service Mesh Inbound Port
`cpln/disableServiceMeshInboundPort`
* A comma delimited list of ports to exclude from being intercepted by the sidecar proxy inbound.
### Disable Service Mesh Outbound Port
`cpln/disableServiceMeshOutboundPort`
* A comma delimited list of ports to exclude from being intercepted by the sidecar proxy outbound.
### Disable Service Mesh Outbound CIDR
`cpln/disableServiceMeshOutboundCIDR`
* A comma delimited list of CIDR IP ranges to exclude from being intercepted by the sidecar proxy outbound.
### ClusterRole
`cpln/k8sClusterRole`
* The ClusterRole that should be bound to the workload
The actuator must be configured to allow this. See [BYOK Actuator settings](/byok/settings/actuator#byok-k8s-api-workloads)
# CI/CD Usage
Source: https://docs.controlplane.com/cli-reference/ci-cd-development/ci-cd
Automate deployments and resource management with the Control Plane CLI in CI/CD pipelines.
Use the Control Plane CLI in CI/CD pipelines to automate resource provisioning, image builds, and deployments.
## Overview
The CLI enables CI/CD workflows for:
* **Resource provisioning** - Apply GVC, workload, and infrastructure configurations
* **Image delivery** - Build and push container images to Control Plane
* **GitOps** - Maintain infrastructure as code in version control
## Quick start
Create a service account with appropriate permissions for your pipeline.
See [Create a Service Account](#service-account-setup) for details.
Generate a key and store these environment variables in your CI/CD platform:
* `CPLN_TOKEN` - The service account key (required)
* `CPLN_ORG` - Your organization name (recommended)
* `CPLN_GVC` - Your target GVC name (recommended)
Setting `CPLN_ORG` and `CPLN_GVC` as environment variables means you don't need to pass `--org` and `--gvc` flags with every command.
Never print `CPLN_TOKEN` in logs or commit it to version control.
Install a pinned version of the CLI in your pipeline:
```bash theme={null}
npm install -g @controlplane/cli@
cpln --version
```
Download and extract the binary for your platform. See [Installation](/cli-reference/installation).
Pin the CLI version for reproducible builds.
Create a default profile in your pipeline:
```bash theme={null}
cpln profile create ci --default
```
When `CPLN_TOKEN` is set as an environment variable, the CLI uses it automatically.
Execute CLI commands to build images and apply resources:
```bash theme={null}
# Build and push image (optional)
cpln image build --name : --push
# Apply resources
cpln apply --file resources.yaml
```
## Service account setup
### Create the service account
1. Navigate to **Org** → **Service Accounts**
2. Click **Create**
3. Enter a name (e.g., `ci-pipeline`)
4. Assign to a group with appropriate permissions (e.g., `superusers` or a custom group)
```bash theme={null}
cpln serviceaccount create --name ci-pipeline --description "CI/CD automation"
```
Add to a group:
```bash theme={null}
cpln group add-member --serviceaccount ci-pipeline
```
### Generate a key
Create an authentication key for the service account:
1. Open the service account you created
2. Click the **Keys** link
3. Enter a key description (e.g., `ci-pipeline-key`) and click **Add**
4. Copy and download the generated key securely
```bash theme={null}
cpln serviceaccount add-key ci-pipeline --description ci-pipeline-key
```
Save the returned key securely.
Store the key in your CI/CD platform's secret manager as `CPLN_TOKEN`.
## Environment variables
Set these variables in your CI/CD platform:
### Required
* `CPLN_TOKEN` - Service account key (keep secret)
### Optional but recommended
* `CPLN_ORG` - Default organization
* `CPLN_GVC` - Default GVC
### Optional
* `CPLN_SKIP_UPDATE_CHECK` - Any non-empty value opts out of the CLI's daily new-version check and the notice it prints
```bash GitHub Actions theme={null}
env:
CPLN_TOKEN: ${{ secrets.CPLN_TOKEN }}
CPLN_ORG: my-org
CPLN_GVC: production
```
```bash GitLab CI theme={null}
variables:
CPLN_ORG: my-org
CPLN_GVC: production
```
```bash CircleCI theme={null}
environment:
CPLN_ORG: my-org
CPLN_GVC: production
```
## Common pipeline workflows
### Build and push images
```bash theme={null}
# Build and push
cpln image build --name : --push
```
`cpln image build --push` runs the build locally through Docker — a Dockerfile build shells out to `docker buildx build`, and a buildpacks build runs the `pack` CLI — so the runner needs a working Docker daemon, and `--push` requires `docker-credential-cpln` on PATH (installed alongside the CLI).
On runners without a daemon (for example, GitLab runners without privileged Docker-in-Docker), build with a daemonless tool such as kaniko or buildah and push directly to the org registry: the registry is `.registry.cpln.io`, the username is the literal string ``, and the password is the service account key.
Building remotely is also available: `cpln image build --name : --remote` uploads the build folder, and the image is built and pushed to the org registry with only `CPLN_TOKEN` and `CPLN_ORG` (or `--org`) — no daemon and no `docker-credential-cpln`, though the local build options (`--dockerfile`, `--builder`, `--buildpack`, `--env`, `--platform`) do not apply. With `--repo `, the remote build clones a GitHub or GitLab repository instead of uploading the folder.
For a private repository, run that command once from your own terminal: the CLI opens the provider's authorization page and continues the build once you grant the org access to the repository. The connection is bound to the org, so from then on pipelines build that repository without any further prompting. A pipeline cannot do this first run itself — with no terminal attached, the CLI prints the connect link and stops.
### Apply resources (GitOps)
```bash theme={null}
# Apply a single file
cpln apply --file gvc.yaml
# Apply multiple files
cpln apply --file workload.yaml --file secret.yaml
# Apply from stdin
cat resource.yaml | cpln apply --file -
```
A single `cpln apply` invocation orders resources automatically — agent, secret, cloudaccount, gvc, identity, volumeset, policy, workload, then all remaining kinds — so a workload and the GVC it references can live in the same file (or directory) in any order.
Ordering only matters across separate `cpln apply` invocations: if you split resources into multiple pipeline steps, apply the referenced resource (e.g., the GVC) before the resource that references it.
Separate multiple resources with `---` in a single file:
```yaml theme={null}
kind: gvc
name: my-gvc
---
kind: workload
name: my-app
```
Apply with:
```bash theme={null}
cpln apply --file resources.yaml
```
Renaming a resource in YAML creates a new resource. The old resource must be deleted manually:
```bash theme={null}
cpln delete
```
### Export existing resources
Export "known good" configurations as templates for GitOps:
Use the **Export** action to download JSON or YAML.
```bash bash theme={null}
cpln gvc get --output yaml-slim > gvc.yaml
cpln workload get --gvc --output yaml-slim > workload.yaml
cpln secret get --output yaml-slim > secret.yaml
```
Use `json-slim` or `yaml-slim` to remove non-essential properties like IDs, versions, and timestamps. This gives you only what's necessary for applying the resource with `cpln apply`.
## Platform-specific examples
Complete working examples for popular CI/CD platforms:
Full workflow with build, push, and apply
Pipeline configuration for GitLab
Bitbucket pipeline with Docker build
CircleCI config with multi-stage workflow
Cloud Build with Secret Manager
## Best practices
Specify an exact CLI version for reproducible builds:
```bash theme={null}
npm install -g @controlplane/cli@x.x.x
```
Update the version explicitly when you want to adopt new features.
Create separate service accounts for different environments:
* `ci-dev` for development
* `ci-staging` for staging
* `ci-production` for production
Assign each to groups with scoped permissions.
* Use your CI/CD platform's secret manager
* Never commit tokens to version control
* Rotate service account keys regularly
* Avoid printing `CPLN_TOKEN` in logs
Apply changes to development or staging environments before production:
```bash theme={null}
# Staging
cpln apply --file resources.yaml --org staging
# Production (after staging succeeds)
cpln apply --file resources.yaml --org production
```
Export resources with `yaml-slim` or `json-slim` to remove metadata:
```bash theme={null}
cpln gvc get my-gvc --output yaml-slim > gvc.yaml
```
This creates clean templates suitable for version control and `cpln apply`.
## Troubleshooting
1. Verify `CPLN_TOKEN` is set correctly in your CI/CD secrets
2. Check the token hasn't expired or been revoked
3. Ensure the service account has the required permissions
Verify that the `CPLN_ORG` and `CPLN_GVC` environment variables are set correctly.
Or explicitly set org and GVC in commands:
```bash theme={null}
cpln apply --file workload.yaml --org my-org --gvc my-gvc
```
Or set in the profile:
```bash theme={null}
cpln profile update ci --org my-org --gvc my-gvc
```
For more troubleshooting help, see the [Troubleshooting](/cli-reference/using-cli/troubleshooting) page.
## Next steps
Use the CLI inside container images
Learn about profile management
GitOps resource management guide
Create and manage service accounts
# Using the CLI in Containers
Source: https://docs.controlplane.com/cli-reference/ci-cd-development/container-image
Install and run the Control Plane CLI inside Docker images for CI/CD and automation.
Install the Control Plane CLI inside container images to use it in CI jobs, Cron Workloads, or custom automation containers.
## When to use this
Install `cpln` in a container image for:
* **CI/CD jobs** - Run `cpln` commands in containerized pipelines
* **Cron Workloads** - Execute automation tasks in Control Plane [cron workloads](/reference/workload/types#cron)
* **Custom automation images** - Bundle `cpln` with your tools and scripts
Never bake credentials into container images. Pass tokens at runtime via environment variables or secret managers.
## Installation methods
Use this method if your base image already includes Node.js (16 or later).
```dockerfile Dockerfile theme={null}
FROM node:20-slim
# Pin the CLI version for reproducible builds
ARG CPLN_CLI_VERSION=3.7.5
# Install the Control Plane CLI
RUN npm install -g @controlplane/cli@${CPLN_CLI_VERSION} && \
cpln --version
WORKDIR /app
# Keep container running for testing (remove in production)
CMD ["tail", "-f", "/dev/null"]
```
**Build and run:**
```bash bash theme={null}
# Build the image
docker build -t cpln-test .
# Run in a container
docker run -d --name cpln-test \
-e CPLN_TOKEN="$CPLN_TOKEN" \
-e CPLN_ORG="my-org" \
-e CPLN_GVC="my-gvc" \
cpln-test
```
**Exec into the container:**
```bash bash theme={null}
docker exec -it cpln-test bash
```
**Test the CLI:**
```bash bash theme={null}
# List all workloads
cpln workload get
```
**Cleanup:**
```bash bash theme={null}
docker stop cpln-test && docker rm cpln-test
```
Use this method for minimal images without Node.js.
```dockerfile Dockerfile theme={null}
# Stage 1: Download and extract the CLI
FROM debian:bookworm-slim AS cpln-downloader
# Pin the CLI version for reproducible builds
ARG CPLN_BINARY_URL=https://storage.googleapis.com/artifacts.cpln-build.appspot.com/binaries/cpln/2754171261-e11832d5/cpln-linux.tgz
# Download and extract cpln binary
RUN apt-get update && apt-get install -y --no-install-recommends curl ca-certificates && \
curl -fsSL "${CPLN_BINARY_URL}" -o /tmp/cpln.tgz && \
tar -xzf /tmp/cpln.tgz -C /usr/local/bin && \
rm -rf /var/lib/apt/lists/*
# Stage 2: Runtime image
FROM debian:bookworm-slim
# Copy binaries from downloader stage
COPY --from=cpln-downloader /usr/local/bin/cpln /usr/local/bin/cpln
COPY --from=cpln-downloader /usr/local/bin/docker-credential-cpln /usr/local/bin/docker-credential-cpln
# Verify installation
RUN cpln --version
WORKDIR /work
# Keep container running for testing (remove in production)
CMD ["tail", "-f", "/dev/null"]
```
**Build and run:**
```bash bash theme={null}
# Build the image (use --platform for Apple Silicon Macs)
docker build --platform linux/amd64 -t cpln-test .
# Run in a container
docker run -d --name cpln-test \
-e CPLN_TOKEN="$CPLN_TOKEN" \
-e CPLN_ORG="my-org" \
-e CPLN_GVC="my-gvc" \
cpln-test
```
The `--platform linux/amd64` flag is required on Apple Silicon Macs because the CLI binary is compiled for x86\_64. On Intel Macs and Linux, you can omit this flag.
**Exec into the container:**
```bash bash theme={null}
docker exec -it cpln-test bash
```
**Test the CLI:**
```bash bash theme={null}
# List all workloads
cpln workload get
```
**Cleanup:**
```bash bash theme={null}
docker stop cpln-test && docker rm cpln-test
```
Multi-stage builds keep the final image small by excluding download tools.
## Pin the CLI version
Always pin the CLI version for reproducible builds:
```dockerfile npm theme={null}
ARG CPLN_CLI_VERSION=3.7.5
RUN npm install -g @controlplane/cli@${CPLN_CLI_VERSION}
```
```dockerfile Binary theme={null}
ARG CPLN_BINARY_URL=https://storage.googleapis.com/artifacts.cpln-build.appspot.com/binaries/cpln/2754171261-e11832d5/cpln-linux.tgz
```
Check available versions:
* npm: [https://www.npmjs.com/package/@controlplane/cli](https://www.npmjs.com/package/@controlplane/cli)
* Binary: See [Installation](/cli-reference/installation)
## Runtime authentication
### Pass secrets via environment variables
Set at minimum `CPLN_TOKEN` when running the container:
```bash theme={null}
docker run --rm \
-e CPLN_TOKEN="$CPLN_TOKEN" \
-e CPLN_ORG="my-org" \
-e CPLN_GVC="my-gvc" \
your-image:tag \
cpln workload get
```
Never print `CPLN_TOKEN` in logs or commit it to version control.
## Using cpln in automation
Once installed, execute CLI commands from your application code:
```javascript theme={null}
import { spawn } from "node:child_process";
const proc = spawn("cpln", ["workload", "get", "--gvc", "my-gvc"], {
stdio: "inherit",
env: process.env,
});
proc.on("exit", (code) => {
process.exit(code ?? 1);
});
```
```python theme={null}
import os
import subprocess
import sys
result = subprocess.run(
["cpln", "workload", "get", "--gvc", "my-gvc"],
env=os.environ,
check=False,
)
sys.exit(result.returncode)
```
```go theme={null}
package main
import (
"os"
"os/exec"
)
func main() {
cmd := exec.Command("cpln", "workload", "get", "--gvc", "my-gvc")
cmd.Env = os.Environ()
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
if err := cmd.Run(); err != nil {
os.Exit(1)
}
}
```
```bash theme={null}
#!/usr/bin/env bash
set -euo pipefail
# Ensure required environment variables are set
for var in CPLN_TOKEN CPLN_ORG CPLN_GVC; do
if [ -z "${!var:-}" ]; then
echo "Error: $var is not set"
exit 1
fi
done
# Create profile
cpln profile create ci --default
# Run commands
cpln workload get
```
## Common workflows
### Build and push images
```bash theme={null}
cpln image build --name : --push
```
This runs the build through a Docker daemon inside the container. For containers without one, see [CI/CD Usage](/cli-reference/ci-cd-development/ci-cd#build-and-push-images).
### Apply resources
```bash theme={null}
# Apply from a file
cpln apply --file resources.yaml
# Apply from stdin
cat resources.yaml | cpln apply --file -
```
### Execute workload commands
```bash theme={null}
cpln workload get --gvc my-gvc
cpln workload exec my-app --gvc my-gvc -- echo hello world
```
## Troubleshooting
Verify the binary is in PATH and executable:
```dockerfile theme={null}
RUN cpln --version
```
Ensure the binary is copied to a directory in PATH (e.g., `/usr/local/bin`).
1. Verify `CPLN_TOKEN` is set at runtime:
```bash theme={null}
docker run --rm -e CPLN_TOKEN="$CPLN_TOKEN" your-image cpln profile get
```
2. Check the token isn't truncated
Re-run Docker login in your container:
```bash theme={null}
cpln image docker-login
```
Ensure the service account has access to the image registry.
For more troubleshooting help, see the [Troubleshooting](/cli-reference/using-cli/troubleshooting) page.
## Best practices
Keep final images small by using multi-stage builds to separate download/build tools from the runtime image.
Always specify an exact CLI version for reproducible builds:
```dockerfile npm theme={null}
ARG CPLN_CLI_VERSION=3.7.5
RUN npm install -g @controlplane/cli@${CPLN_CLI_VERSION}
```
```dockerfile Binary theme={null}
ARG CPLN_BINARY_URL=https://storage.googleapis.com/artifacts.cpln-build.appspot.com/binaries/cpln/2754171261-e11832d5/cpln-linux.tgz
RUN curl -fsSL "${CPLN_BINARY_URL}" -o /tmp/cpln.tgz && \
tar -xzf /tmp/cpln.tgz -C /usr/local/bin
```
Pass tokens at runtime via environment variables or secret managers. Never include them in the image.
Set `CPLN_ORG` and `CPLN_GVC` as environment variables so you don't need to pass `--org` and `--gvc` flags with every command:
```bash theme={null}
docker run --rm \
-e CPLN_TOKEN="$CPLN_TOKEN" \
-e CPLN_ORG="my-org" \
-e CPLN_GVC="my-gvc" \
your-image:tag
```
Add a verification step:
```dockerfile theme={null}
RUN cpln --version
```
This catches installation issues during the build.
## Next steps
Complete CI/CD automation guide
CLI installation methods
Authentication strategies
Profile management
# account
Source: https://docs.controlplane.com/cli-reference/commands/account
cpln account — Manage accounts linked to your organization.
Manage accounts
```none theme={null}
cpln account [SUBCOMMAND]
```
```text theme={null}
Commands:
cpln account get [ref...] Get accounts by id or list accounts
Options:
--help Show help [boolean]
```
***
#### account get
Get accounts by id or list accounts
**Usage**
```none theme={null}
cpln account get [ref...] [OPTIONS]
```
An empty reference will return all references
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [default: []]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
# agent
Source: https://docs.controlplane.com/cli-reference/commands/agent
cpln agent — Manage agents that connect self-hosted infrastructure to Control Plane.
Manage agents
For a detailed overview, please visit the [agent's](/reference/agent) reference page.
```none theme={null}
cpln agent [SUBCOMMAND]
```
```text theme={null}
Commands:
cpln agent access-report Show the access report for the referenced agent
cpln agent audit [ref] Retrieve audit trail events for the referenced agent
cpln agent create Create a new agent
cpln agent delete Delete one or more referenced agents
cpln agent edit Edit the referenced agent, as YAML, within an editor
cpln agent eventlog Show the event log of the referenced agent [aliases: log]
cpln agent get [ref...] Retrieve one or more referenced agents
cpln agent info Get info about an agent
cpln agent manifest Generate a manifest for running an agent in K8S
cpln agent patch Update the referenced agent's metadata using an input file
cpln agent permissions Show the grantable permissions for an agent object type
cpln agent query Find all the agents based on the given query
cpln agent tag Manage the tags belonging to one or more referenced agents
cpln agent up Run an agent within a local Docker instance
cpln agent update Update properties of the referenced agent
Options:
--help Show help [boolean]
```
***
#### agent access-report
Show the access report for the referenced agent
**Usage**
```none theme={null}
cpln agent access-report [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln agent access-report demo-agent --org demo-cpln-organization
```
```text Output theme={null}
+-----------+--------------------------------------------------------+--------+
|PERMISSION |PRINCIPAL |GRANTED |
|-----------|--------------------------------------------------------|--------|
|create |/org/demo-cpln-organization/group/superusers |manage |
|create |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|delete |/org/demo-cpln-organization/group/superusers |manage |
|delete |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|edit |/org/demo-cpln-organization/group/superusers |manage |
|edit |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|manage |/org/demo-cpln-organization/group/superusers |manage |
|manage |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|use |/org/demo-cpln-organization/group/superusers |manage |
|use |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|view |/org/demo-cpln-organization/group/viewers |view |
|view |/org/demo-cpln-organization/group/superusers |manage |
|view |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
+-----------+--------------------------------------------------------+--------+
```
***
#### agent audit
Retrieve audit trail events for the referenced agent
**Usage**
```none theme={null}
cpln agent audit [ref] [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource.
Command options:
--subject Filter by subject (serviceaccount name or user email) [string]
--context Audit context name (the 'cpln' context displays Control Plane actions) [string] [default: "cpln"]
--since Relative lookback window from now (e.g., 1h, 24h, 7d). Mutually exclusive with --from/--to [string] [default: "7d"]
--from Start time for audit events (ISO 8601 format or relative duration, e.g., 2025-10-23T07:00:00Z, 7d, 1h). Cannot be used with --since [string]
--to End time for audit events (ISO 8601 format or relative duration, e.g., 2025-10-23T07:00:00Z, 1d, 30m) [string]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### agent create
Create a new agent
**Usage**
```none theme={null}
cpln agent create --name AGENT_NAME [OPTIONS]
```
```text theme={null}
Command options:
--name Name of the agent [required]
--description, --desc Optional description, defaults to the name if not set
--tag Attach tags (e.g., --tag drink=water)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln agent create --name demo-agent --desc demo-agent --tag drink=water --org demo-cpln-organization
```
```text Output theme={null}
{
"agentId": "83672911-3eba-4572-9942-310ac2701c72",
"agentLink": "/org/demo-cpln-organization/agent/demo-agent",
"hubEndpoint": "https://hub.test.cpln.io",
"registrationToken": "a2HV7eZdEGyhuguGTTXCnIkpuL4lO5b0Rw99ZqGkQc61I6m0PuhquCQA/DDGJYH",
"protocolVersion": "v2"
}
```
***
#### agent delete
Delete one or more referenced agents
**Usage**
```none theme={null}
cpln agent delete [OPTIONS]
```
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [required] [default: []]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln agent delete demo-agent --org demo-cpln-organization
```
```text Output theme={null}
If the delete was successful, a new command prompt will be shown.
```
***
#### agent edit
Edit the referenced agent, as YAML, within an editor
**Usage**
```none theme={null}
cpln agent edit [OPTIONS]
```
The default editor can be set by using the EDITOR environment variable.
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--replace, -r Replace instead of patch/merge [boolean] [default: false]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln agent edit demo-agent --org demo-cpln-organization
```
```text Output theme={null}
Your default editor will be launched.
Once any modifications are saved, the updates will be sent to the API.
```
***
#### agent eventlog
Show the event log of the referenced agent
**Usage**
```none theme={null}
cpln agent eventlog [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln agent eventlog demo-agent --org demo-cpln-organization
```
```text Output theme={null}
The event log for the referenced agent will be shown.
```
***
#### agent get
Retrieve one or more referenced agents
**Usage**
```none theme={null}
cpln agent get [ref...] [OPTIONS]
```
An empty reference will return all references
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [default: []]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Get all agents
```bash Command theme={null}
cpln agent get --org demo-cpln-organization
```
```text Output theme={null}
+-----------------+-----------------+--------+--------------+
|NAME |DESCRIPTION |CREATED |TAGS |
|-----------------|-----------------|--------|--------------|
|demo-agent |demo-agent |Now |drink="water" |
|demo-agent-get-1 |demo-agent-get-1 |Now | |
|demo-agent-get-2 |demo-agent-get-2 |Now | |
+-----------------+-----------------+--------+--------------+
```
* Get one agent
```bash Command theme={null}
cpln agent get demo-agent-get-1 --org demo-cpln-organization
```
```text Output theme={null}
+-----------------+-----------------+--------+-----+
|NAME |DESCRIPTION |CREATED |TAGS |
|-----------------|-----------------|--------|-----|
|demo-agent-get-1 |demo-agent-get-1 |Now | |
+-----------------+-----------------+--------+-----+
```
* Get multiple agents
```bash Command theme={null}
cpln agent get demo-agent-get-1 demo-agent-get-2 --org demo-cpln-organization
```
```text Output theme={null}
+-----------------+-----------------+--------+-----+
|NAME |DESCRIPTION |CREATED |TAGS |
|-----------------|-----------------|--------|-----|
|demo-agent-get-1 |demo-agent-get-1 |Now | |
|demo-agent-get-2 |demo-agent-get-2 |Now | |
+-----------------+-----------------+--------+-----+
```
***
#### agent info
Get info about an agent
**Usage**
```none theme={null}
cpln agent info [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Return the details of a deployed agent. The example below was for an agent deployed at AWS.
```bash Command theme={null}
cpln agent info demo-agent --org demo-cpln-organization
```
```json Output theme={null}
{
"env": {
"cpuPlatform": "x86_64",
"image": "ami-0fff5e2863a768052",
"id": "i-01adfe256a82a2a76",
"machineType": "t2.micro",
"zone": "us-west-2c",
"internalIP": "172.31.13.246",
"hostname": "ip-172-31-13-246.us-west-2.compute.internal",
"vpc": "vpc-29e3c451",
"subnet": "subnet-b11e9dec",
"accountId": "015716931765",
"cloudProvider": "aws"
},
"lastActive": "2021-05-01T00:26:55.945Z",
"serviceCount": 0,
"peerCount": 0
}
```
***
#### agent manifest
Generate a manifest for running an agent in K8S
**Usage**
```none theme={null}
cpln agent manifest --bootstrap-file FILE_NAME --namespace NAME_SPACE [OPTIONS]
```
```text theme={null}
Command options:
--bootstrap-file Path to the bootstrap config file [required]
--namespace, -n Namespace where the agent deployment(s) will live [required]
--image Advanced use: Use a different agent Docker image
--cluster Add metadata to agent's environment, useful to remind you which cluster an agent is running in
--replicas Number of agent deployments to create [default: 1]
--create-namespace Create the namespace [boolean] [default: true]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### agent patch
Update the referenced agent's metadata using an input file
**Usage**
```none theme={null}
cpln agent patch --file FILE_NAME [OPTIONS]
```
Running this command with the option **`--file -`** sets the input to stdin. The input is required to be a valid JSON or YAML string (e.g., `{"description": "My new description"}` or `description: My new description`). To complete the update, press Control-D (or Control-Z if you are using Windows).
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--file, -f File to load the patch from. Use `--file -` to enable input from stdin. [required]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln agent patch demo-agent --file update.json --org demo-cpln-organization
```
```text Output theme={null}
The changes within the JSON file will be performed against the referenced agent.
```
***
#### agent permissions
Show the grantable permissions for an agent object type
**Usage**
```none theme={null}
cpln agent permissions [OPTIONS]
```
```text theme={null}
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln agent permissions --org demo-cpln-organization
```
```text Output theme={null}
+-------+----------------------------+----------------------------------------+
|NAME |DESCRIPTION |IMPLIES |
|-------|----------------------------|----------------------------------------|
|create |Create new agents | |
|delete |Delete service agents | |
|edit |Modify existing agents |view |
|manage |Full access |create, delete, edit, manage, use, view |
|use |Use an agent in an identity |view |
|view |Read-only access | |
+-------+----------------------------+----------------------------------------+
```
***
#### agent query
Find all the agents based on the given query
**Usage**
```none theme={null}
cpln agent query QUERY_OPTIONS [OPTIONS]
```
```text theme={null}
Query options:
--match Query filter type [choices: "all", "none", "any"] [default: "all"]
--property, --prop Property to query
--tag Tag to query
--rel Relation to query
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
Use the `--match` option to display **all**, **none**, or **any** of the results based on a given property or tag
* Search for an agent based on the name property
```bash Command theme={null}
cpln agent query --match any --prop name=demo-agent --org demo-cpln-organization
```
```text Output theme={null}
+-----------+------------+--------+--------------+
|NAME |DESCRIPTION |CREATED |TAGS |
|-----------|------------|--------|--------------|
|demo-agent |demo-agent |Now |drink="water" |
+-----------+------------+--------+--------------+
```
* Search for an agent based on the description property
```bash Command theme={null}
cpln agent query --match any --prop description="demo-agent" --org demo-cpln-organization
```
```text Output theme={null}
+-----------+------------+--------+--------------+
|NAME |DESCRIPTION |CREATED |TAGS |
|-----------|------------|--------|--------------|
|demo-agent |demo-agent |Now |drink="water" |
+-----------+------------+--------+--------------+
```
* Search for an agent based on a tag
```bash Command theme={null}
cpln agent query --match any --tag drink=water --org demo-cpln-organization
```
```text Output theme={null}
+-----------+------------+--------+--------------+
|NAME |DESCRIPTION |CREATED |TAGS |
|-----------|------------|--------|--------------|
|demo-agent |demo-agent |Now |drink="water" |
+-----------+------------+--------+--------------+
```
* Search for an agent based on a property and tag
```bash Command theme={null}
cpln agent query --match any --prop description="demo-agent" --tag drink=water --org demo-cpln-organization
```
```text Output theme={null}
+-----------+------------+--------+--------------+
|NAME |DESCRIPTION |CREATED |TAGS |
|-----------|------------|--------|--------------|
|demo-agent |demo-agent |Now |drink="water" |
+-----------+------------+--------+--------------+
```
***
#### agent tag
Manage the tags belonging to one or more referenced agents
**Usage**
```none theme={null}
cpln agent tag --tag KEY=VALUE [OPTIONS]
```
Built-in tags, which begin with cpln/\*, can't be modified.
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [required] [default: []]
Command options:
--tag Attach tags (e.g., --tag drink=water)
--remove-tag Remove tags (e.g., --remove-tag tagname)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Add a tag
```bash Command theme={null}
cpln agent tag demo-agent --tag drink=water --org demo-cpln-organization
```
```text Output theme={null}
+-----------+------------+--------+--------------+
|NAME |DESCRIPTION |CREATED |TAGS |
|-----------|------------|--------|--------------|
|demo-agent |demo-agent |Now |drink="water" |
+-----------+------------+--------+--------------+
```
* Update same tag (after running the example above)
```bash Command theme={null}
cpln agent tag demo-agent --tag drink=coffee --org demo-cpln-organization
```
```text Output theme={null}
+-----------+------------+--------+---------------+
|NAME |DESCRIPTION |CREATED |TAGS |
|-----------|------------|--------|---------------|
|demo-agent |demo-agent |Now |drink="coffee" |
+-----------+------------+--------+---------------+
```
* Remove tag (after running the example above)
```bash Command theme={null}
cpln agent tag demo-agent --remove drink --org demo-cpln-organization
```
```text Output theme={null}
+-----------+------------+--------+-----+
|NAME |DESCRIPTION |CREATED |TAGS |
|-----------|------------|--------|-----|
|demo-agent |demo-agent |Now | |
+-----------+------------+--------+-----+
```
***
#### agent up
Run an agent within a local Docker instance
**Usage**
```none theme={null}
cpln agent up --bootstrap-file FILE_NAME [--background] [OPTIONS]
```
```text theme={null}
Command options:
--bootstrap-file Path to the bootstrap config file [required]
--background, -b If set, run the agent as a background process [boolean]
--image Advanced use: Use a different agent Docker image
--net Docker network to use [default: "bridge"]
--exposeProxy, -p Expose port 3128 if agent is to be used as forward proxy. Has no effect on v1 agents [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln agent up --bootstrap-file bootstrap.config --org demo-cpln-organization
```
```text Output theme={null}
The Control Plane agent will be executed in a local Docker instance using the referenced bootstrap config file
```
***
#### agent update
Update properties of the referenced agent
**Usage**
```none theme={null}
cpln agent update --set UPDATE_PROPERTY [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Update Properties:
--set Update the following properties (e.g., --set description="Updated Description"):
description string
tags. string
--unset Unset a property (same paths as --set, e.g., --unset description)
Command options:
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* The `--set` option allows the modification of the following agent properties:
* `description`
* Description of the agent
* Type: string
* `tags`
* Tags (key=value) associated with the agent
* Type: string
* For the examples below, the initial agent is configured as:
```
+------------------+------------------+--------+-----+
|NAME |DESCRIPTION |CREATED |TAGS |
|------------------|------------------|--------|-----|
|demo-agent-update |demo-agent-update |Now | |
+------------------+------------------+--------+-----+
```
* Update an agent's description
```bash Command theme={null}
cpln agent update demo-agent-update --set description="new description" --org demo-cpln-organization
```
```text Output theme={null}
+------------------+----------------+--------+-----+
|NAME |DESCRIPTION |CREATED |TAGS |
|------------------|----------------|--------|-----|
|demo-agent-update |new description |Now | |
+------------------+----------------+--------+-----+
```
* Update an agent's tag
```bash Command theme={null}
cpln agent update demo-agent-update --set tags.demo-key=demo-value --org demo-cpln-organization
```
```text Output theme={null}
+------------------+----------------+--------+----------------------+
|NAME |DESCRIPTION |CREATED |TAGS |
|------------------|----------------|--------|----------------------|
|demo-agent-update |new description |Now |demo-key="demo-value" |
+------------------+----------------+--------+----------------------+
```
***
# apply
Source: https://docs.controlplane.com/cli-reference/commands/apply
cpln apply — Create or update resources using an input file.
Create or update a resource using an input file.
Refer to the [cpln apply guide](/guides/cpln-apply) for additional details.
**Usage**
```none theme={null}
cpln apply [OPTIONS]
```
```text theme={null}
Command options:
--file, -f File to load and use for the command. Use `--file -` to enable input from stdin. [required]
--k8s Set this true if input file is k8s config file [boolean]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
--ready Set this true if apply should wait for objects to be ready before exiting [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
--gvc Override the global virtual cloud. The default global virtual cloud can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
--version, -v Show version number [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln apply --file action.json
```
```text Output theme={null}
The actions within the JSON file will be performed against the API.
```
***
# auditctx
Source: https://docs.controlplane.com/cli-reference/commands/auditctx
cpln auditctx — Manage audit contexts for tracking and reviewing organizational activity.
Manage audit contexts
For a detailed overview, please visit the [audit context's](/reference/auditctx) reference page.
```none theme={null}
cpln auditctx [SUBCOMMAND]
```
```text theme={null}
Commands:
cpln auditctx access-report Show the access report for the referenced audit context
cpln auditctx audit [ref] Retrieve audit trail events for the referenced audit context
cpln auditctx clone Create a clone of the referenced audit context; this will only duplicate its spec. [aliases: copy]
cpln auditctx create Create a new audit context
cpln auditctx edit Edit the referenced audit context, as YAML, within an editor
cpln auditctx eventlog Show the event log of the referenced audit context [aliases: log]
cpln auditctx get [ref...] Retrieve one or more referenced audit contexts
cpln auditctx patch Update the referenced audit context's metadata using an input file
cpln auditctx permissions Show the grantable permissions for an audit context object type
cpln auditctx query Find all the audit contexts based on the given query
cpln auditctx tag Manage the tags belonging to one or more referenced audit contexts
cpln auditctx update Update properties of the referenced audit context
Options:
--help Show help [boolean]
```
***
#### auditctx access-report
Show the access report for the referenced audit context
**Usage**
```none theme={null}
cpln auditctx access-report [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln auditctx access-report demo-audit-context --org demo-cpln-organization
```
```text Output theme={null}
+-----------+--------------------------------------------------------+--------+
|PERMISSION |PRINCIPAL |GRANTED |
|-----------|--------------------------------------------------------|--------|
|create |/org/demo-cpln-organization/group/superusers |manage |
|create |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|edit |/org/demo-cpln-organization/group/superusers |manage |
|edit |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|manage |/org/demo-cpln-organization/group/superusers |manage |
|manage |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|readAudit |/org/demo-cpln-organization/group/superusers |manage |
|readAudit |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|view |/org/demo-cpln-organization/group/viewers |view |
|view |/org/demo-cpln-organization/group/superusers |manage |
|view |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|writeAudit |/org/demo-cpln-organization/group/superusers |manage |
|writeAudit |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
+-----------+--------------------------------------------------------+--------+
```
***
#### auditctx audit
Retrieve audit trail events for the referenced audit context
**Usage**
```none theme={null}
cpln auditctx audit [ref] [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource.
Command options:
--subject Filter by subject (serviceaccount name or user email) [string]
--context Audit context name (the 'cpln' context displays Control Plane actions) [string] [default: "cpln"]
--since Relative lookback window from now (e.g., 1h, 24h, 7d). Mutually exclusive with --from/--to [string] [default: "7d"]
--from Start time for audit events (ISO 8601 format or relative duration, e.g., 2025-10-23T07:00:00Z, 7d, 1h). Cannot be used with --since [string]
--to End time for audit events (ISO 8601 format or relative duration, e.g., 2025-10-23T07:00:00Z, 1d, 30m) [string]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### auditctx clone
Create a clone of the referenced audit context; this will only duplicate its spec.
**Usage**
```none theme={null}
cpln auditctx clone --name CLONE_NAME [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--name Set the name for the clone [required]
--description Optional description, defaults to the name if not set
--tag Attach tags (e.g., --tag drink=water)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln auditctx clone demo-audit-context --name demo-audit-context-clone --org demo-cpln-organization
```
```text Output theme={null}
+-------------------------+-----------------------------------------+--------+-----+
|NAME |DESCRIPTION |ORIGIN |TAGS |
|-------------------------|-----------------------------------------|--------|-----|
|demo-audit-context-clone |Clone of demo-audit-context |default | |
+-------------------------+-----------------------------------------+--------+-----+
```
***
#### auditctx create
Create a new audit context
**Usage**
```none theme={null}
cpln auditctx create --name NAME [OPTIONS]
```
```text theme={null}
Command options:
--name Name of the new audit context [required]
--description, --desc Optional description, defaults to the name if not set
--tag Attach tags (e.g., --tag drink=water)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln auditctx create --name demo-audit-context --org demo-cpln-organization
```
```text Output theme={null}
+-------------------+-----------------------------------------+--------+-----+
|NAME |DESCRIPTION |ORIGIN |TAGS |
|-------------------|-----------------------------------------|--------|-----|
|demo-audit-context |demo-audit-context |default | |
+-------------------+-----------------------------------------+--------+-----+
```
***
#### auditctx edit
Edit the referenced audit context, as YAML, within an editor
**Usage**
```none theme={null}
cpln auditctx edit [OPTIONS]
```
The default editor can be set by using the EDITOR environment variable.
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--replace, -r Replace instead of patch/merge [boolean] [default: false]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln auditctx edit demo-audit-context --org demo-cpln-organization
```
```text Output theme={null}
Your default editor will be launched.
Once any modifications are saved, the updates will be sent to the API.
```
***
#### auditctx eventlog
Show the event log of the referenced audit context
**Usage**
```none theme={null}
cpln auditctx eventlog [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln auditctx eventlog demo-audit-context --org demo-cpln-organization
```
```text Output theme={null}
The event log for the referenced audit context will be shown.
```
***
#### auditctx get
Retrieve one or more referenced audit contexts
**Usage**
```none theme={null}
cpln auditctx get [ref...] [OPTIONS]
```
An empty reference will return all references
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [default: []]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Get all audit contexts
```bash Command theme={null}
cpln auditctx get --org demo-cpln-organization
```
```text Output theme={null}
+-------------------------+----------------------------+--------+------------+
|NAME |DESCRIPTION |ORIGIN |TAGS |
|-------------------------|----------------------------|--------|------------|
|cpln |Audit of your CPLN org |builtin | |
|demo-audit-context |demo-audit-context |default |type="demo" |
|demo-audit-context-clone |Clone of demo-audit-context |default | |
+-------------------------+----------------------------+--------+------------+
```
* Get one audit context
```bash Command theme={null}
cpln auditctx get demo-audit-context --org demo-cpln-organization
```
```text Output theme={null}
+-------------------+-------------------+--------+------------+
|NAME |DESCRIPTION |ORIGIN |TAGS |
|-------------------|-------------------|--------|------------|
|demo-audit-context |demo-audit-context |default |type="demo" |
+-------------------+-------------------+--------+------------+
```
* Get multiple audit contexts
```bash Command theme={null}
cpln auditctx get demo-audit-context cpln --org demo-cpln-organization
```
```text Output theme={null}
+-------------------+-----------------------+--------+------------+
|NAME |DESCRIPTION |ORIGIN |TAGS |
|-------------------|-----------------------|--------|------------|
|demo-audit-context |demo-audit-context |default |type="demo" |
|cpln |Audit of your CPLN org |builtin | |
+-------------------+-----------------------+--------+------------+
```
***
#### auditctx patch
Update the referenced audit context's metadata using an input file
**Usage**
```none theme={null}
cpln auditctx patch --file FILE_NAME [OPTIONS]
```
Running this command with the option **`--file -`** sets the input to stdin. The input is required to be a valid JSON or YAML string (e.g., `{"description": "My new description"}` or `description: My new description`). To complete the update, press Control-D (or Control-Z if you are using Windows).
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--file, -f File to load the patch from. Use `--file -` to enable input from stdin. [required]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln auditctx patch demo-audit-context --file update.json --org demo-cpln-organization
```
```text Output theme={null}
The changes within the JSON file will be performed against the referenced audit context.
```
***
#### auditctx permissions
Show the grantable permissions for an audit context object type
**Usage**
```none theme={null}
cpln auditctx permissions [OPTIONS]
```
```text theme={null}
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln auditctx permissions --org demo-cpln-organization
```
```text Output theme={null}
+-----------+-------------------------+--------------------------------------------------+
|NAME |DESCRIPTION |IMPLIES |
|-----------|-------------------------|--------------------------------------------------|
|create |Create new contexts | |
|edit |Modify existing contexts |view |
|manage |Full access |create, edit, manage, readAudit, view, writeAudit |
|readAudit |Read from this context |view |
|view |Read-only view | |
|writeAudit |Write to this context |view |
+-----------+-------------------------+--------------------------------------------------+
```
***
#### auditctx query
Find all the audit contexts based on the given query
**Usage**
```none theme={null}
cpln auditctx query QUERY_OPTIONS [OPTIONS]
```
```text theme={null}
Query options:
--match Query filter type [choices: "all", "none", "any"] [default: "all"]
--property, --prop Property to query
--tag Tag to query
--rel Relation to query
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
Use the `--match` option to display **all**, **none**, or **any** of the results based on a given property or tag
* Search for an audit context based on the name property
```bash Command theme={null}
cpln auditctx query --match any --prop name=demo-audit-context --org demo-cpln-organization
```
```text Output theme={null}
+-------------------+-------------------+--------+------------+
|NAME |DESCRIPTION |ORIGIN |TAGS |
|-------------------|-------------------|--------|------------|
|demo-audit-context |demo-audit-context |default |type="demo" |
+-------------------+-------------------+--------+------------+
```
* Search for an audit context based on the description property
```bash Command theme={null}
cpln auditctx query --match any --prop description="demo-audit-context" --org demo-cpln-organization
```
```text Output theme={null}
+-------------------+-------------------+--------+------------+
|NAME |DESCRIPTION |ORIGIN |TAGS |
|-------------------|-------------------|--------|------------|
|demo-audit-context |demo-audit-context |default |type="demo" |
+-------------------+-------------------+--------+------------+
```
* Search for an audit context based on a tag
```bash Command theme={null}
cpln auditctx query --match any --tag type=demo --org demo-cpln-organization
```
```text Output theme={null}
+-------------------+-------------------+--------+------------+
|NAME |DESCRIPTION |ORIGIN |TAGS |
|-------------------|-------------------|--------|------------|
|demo-audit-context |demo-audit-context |default |type="demo" |
+-------------------+-------------------+--------+------------+
```
* Search for an audit context based on a property and tag
```bash Command theme={null}
cpln auditctx query --match any --prop description="demo-audit-context" --tag type=demo --org demo-cpln-organization
```
```text Output theme={null}
+-------------------+-------------------+--------+------------+
|NAME |DESCRIPTION |ORIGIN |TAGS |
|-------------------|-------------------|--------|------------|
|demo-audit-context |demo-audit-context |default |type="demo" |
+-------------------+-------------------+--------+------------+
```
***
#### auditctx tag
Manage the tags belonging to one or more referenced audit contexts
**Usage**
```none theme={null}
cpln auditctx tag --tag KEY=VALUE [OPTIONS]
```
Built-in tags, which begin with cpln/\*, can't be modified.
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [required] [default: []]
Command options:
--tag Attach tags (e.g., --tag drink=water)
--remove-tag Remove tags (e.g., --remove-tag tagname)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Add a tag
```bash Command theme={null}
cpln auditctx tag demo-audit-context --tag drink=water --org demo-cpln-organization
```
```text Output theme={null}
+-------------------+-------------------+--------+--------------+
|NAME |DESCRIPTION |ORIGIN |TAGS |
|-------------------|-------------------|--------|--------------|
|demo-audit-context |demo-audit-context |default |drink="water" |
| | | |type="demo" |
+-------------------+-------------------+--------+--------------+
```
* Update same tag (after running the example above)
```bash Command theme={null}
cpln auditctx tag demo-audit-context --tag drink=coffee --org demo-cpln-organization
```
```text Output theme={null}
+-------------------+-------------------+--------+---------------+
|NAME |DESCRIPTION |ORIGIN |TAGS |
|-------------------|-------------------|--------|---------------|
|demo-audit-context |demo-audit-context |default |drink="coffee" |
| | | |type="demo" |
+-------------------+-------------------+--------+---------------+
```
* Remove tag (after running the example above)
```bash Command theme={null}
cpln auditctx tag demo-audit-context --remove drink --org demo-cpln-organization
```
```text Output theme={null}
+-------------------+-------------------+--------+------------+
|NAME |DESCRIPTION |ORIGIN |TAGS |
|-------------------|-------------------|--------|------------|
|demo-audit-context |demo-audit-context |default |type="demo" |
+-------------------+-------------------+--------+------------+
```
***
#### auditctx update
Update properties of the referenced audit context
**Usage**
```none theme={null}
cpln auditctx update --set UPDATE_PROPERTY [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Update Properties:
--set Update the following properties (e.g., --set description="Updated Description"):
description string
tags. string
--unset Unset a property (same paths as --set, e.g., --unset description)
Command options:
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* The `--set` option allows the modification of the following audit context properties:
* `description`
* Description of the audit context
* Type: string
* `tags`
* Tags (key=value) associated with the audit context
* Type: string
* For the examples below, the initial audit context is configured as:
```text theme={null}
+-------------------+-------------------+--------+------------+
|NAME |DESCRIPTION |ORIGIN |TAGS |
|-------------------|-------------------|--------|------------|
|demo-audit-context |demo-audit-context |default |type="demo" |
+-------------------+-------------------+--------+------------+
```
* Update an audit context's description
```bash Command theme={null}
cpln auditctx update demo-audit-context --set description="new description" --org demo-cpln-organization
```
```text Output theme={null}
+-------------------+----------------+--------+------------+
|NAME |DESCRIPTION |ORIGIN |TAGS |
|-------------------|----------------|--------|------------|
|demo-audit-context |new description |default |type="demo" |
+-------------------+----------------+--------+------------+
```
* Update an audit context's tag
```bash Command theme={null}
cpln auditctx update demo-audit-context --set tags.type=updated --org demo-cpln-organization
```
```text Output theme={null}
+-------------------+----------------+--------+---------------+
|NAME |DESCRIPTION |ORIGIN |TAGS |
|-------------------|----------------|--------|---------------|
|demo-audit-context |new description |default |type="updated" |
+-------------------+----------------+--------+---------------+
```
***
# cloudaccount
Source: https://docs.controlplane.com/cli-reference/commands/cloudaccount
cpln cloudaccount — Manage cloud accounts that connect external cloud providers to Control Plane.
Manage cloud accounts
For a detailed overview, please visit the [cloud account's](/reference/cloudaccount) reference page.
```none theme={null}
cpln cloudaccount [SUBCOMMAND]
```
```text theme={null}
Commands:
cpln cloudaccount access-report Show the access report for the referenced cloud account
cpln cloudaccount audit [ref] Retrieve audit trail events for the referenced cloud account
cpln cloudaccount create-aws Create an AWS cloud account
cpln cloudaccount create-azure Create an Azure cloud account
cpln cloudaccount create-gcp Create a GCP cloud account
cpln cloudaccount create-ngs Create a NGS cloud account
cpln cloudaccount delete Delete one or more referenced cloud accounts
cpln cloudaccount edit Edit the referenced cloud account, as YAML, within an editor
cpln cloudaccount eventlog Show the event log of the referenced cloud account [aliases: log]
cpln cloudaccount get [ref...] Retrieve one or more referenced cloud accounts
cpln cloudaccount patch Update the referenced cloud account's metadata using an input file
cpln cloudaccount permissions Show the grantable permissions for a cloud account object type
cpln cloudaccount query Find all the cloud accounts based on the given query
cpln cloudaccount tag Manage the tags belonging to one or more referenced cloud accounts
Options:
--help Show help [boolean]
```
***
#### cloudaccount access-report
Show the access report for the referenced cloud account
**Usage**
```none theme={null}
cpln cloudaccount access-report [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln cloudaccount access-report demo-cloud-account-aws --org demo-cpln-organization
```
```text Output theme={null}
+-----------+--------------------------------------------------------+--------+
|PERMISSION |PRINCIPAL |GRANTED |
|-----------|--------------------------------------------------------|--------|
|browse |/org/demo-cpln-organization/group/superusers |manage |
|browse |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|create |/org/demo-cpln-organization/group/superusers |manage |
|create |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|delete |/org/demo-cpln-organization/group/superusers |manage |
|delete |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|edit |/org/demo-cpln-organization/group/superusers |manage |
|edit |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|manage |/org/demo-cpln-organization/group/superusers |manage |
|manage |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|view |/org/demo-cpln-organization/group/viewers |view |
|view |/org/demo-cpln-organization/group/superusers |manage |
|view |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
+-----------+--------------------------------------------------------+--------+
```
***
#### cloudaccount audit
Retrieve audit trail events for the referenced cloud account
**Usage**
```none theme={null}
cpln cloudaccount audit [ref] [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource.
Command options:
--subject Filter by subject (serviceaccount name or user email) [string]
--context Audit context name (the 'cpln' context displays Control Plane actions) [string] [default: "cpln"]
--since Relative lookback window from now (e.g., 1h, 24h, 7d). Mutually exclusive with --from/--to [string] [default: "7d"]
--from Start time for audit events (ISO 8601 format or relative duration, e.g., 2025-10-23T07:00:00Z, 7d, 1h). Cannot be used with --since [string]
--to End time for audit events (ISO 8601 format or relative duration, e.g., 2025-10-23T07:00:00Z, 1d, 30m) [string]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### cloudaccount create-aws
Create an AWS cloud account
**Usage**
```none theme={null}
cpln cloudaccount create-aws --name ACCOUNT_NAME --role-arn ROLE_ARN [OPTIONS]
```
By defining an AWS cloud account, you enable workloads to consume services from a specific AWS account.
The Control Plane CLI (`cpln`) provides account-specific instructions for registering an AWS cloud account
with Control Plane. Simply execute `cpln cloudaccount create-aws --how` to obtain step-by-step instructions.
The instructions emitted are specific to the organization for the currently logged-on cpln user.
To override the organization, pass the `--org ORG_NAME` option.
```text theme={null}
Command options:
--name Name of the new account
--description, --desc Optional description, defaults to the name if not set
--role-arn ARN of the role used by Control Plane to manage the account, in format `arn:aws:iam:::role/`
--how Show the steps on how to create and configure your AWS account [boolean]
--tag Attach tags (e.g., --tag drink=water)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln cloudaccount create-aws --name demo-cloud-account-aws --role-arn arn:aws:iam::123412341234:role/cpln-demo-cpln-organization --org demo-cpln-organization
```
```text Output theme={null}
+-----------------------+-----------------------+---------+-----------------------------------------------------------+--------+-----+
|NAME |DESCRIPTION |PROVIDER |INFO |CREATED |TAGS |
|-----------------------|-----------------------|---------|-----------------------------------------------------------|--------|-----|
|demo-cloud-account-aws |demo-cloud-account-aws |aws |arn:aws:iam::123412341234:role/cpln-demo-cpln-organization |Now | |
+-----------------------+-----------------------+---------+-----------------------------------------------------------+--------+-----+
```
***
#### cloudaccount create-azure
Create an Azure cloud account
**Usage**
```none theme={null}
cpln cloudaccount create-azure --name ACCOUNT_NAME --secret AZURE_SECRET [OPTIONS]
```
By defining an Azure cloud account, you enable workloads to consume services from a specific Azure account. The Control Plane CLI (`cpln`) provides account-specific instructions for registering an Azure cloud account with Control Plane. Simply execute `cpln cloudaccount create-azure --how` to obtain step-by-step instructions. The instructions emitted are specific to the organization for the currently logged-on cpln user. To override the organization, pass the `--org ORG_NAME` option.
```text theme={null}
Command options:
--name Name of the new account
--description, --desc Optional description, defaults to the name if not set
--secret The name of the secret which will be created.
--url The URL of the deployed function app.
--code The URL of the deployed function app.
--how Show the steps on how to create and configure your Azure subscription [boolean]
--tag Attach tags (e.g., --tag drink=water)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln cloudaccount create-azure --name demo-cloud-account-azure --secret azure-secret --url https://function.app.url --code code --org demo-cpln-organization
```
```text Output theme={null}
+-------------------------+-------------------------+---------+-----+--------+-----+
|NAME |DESCRIPTION |PROVIDER |INFO |CREATED |TAGS |
|-------------------------|-------------------------|---------|-----|--------|-----|
|demo-cloud-account-azure |demo-cloud-account-azure |azure | |Now | |
+-------------------------+-------------------------+---------+-----+--------+-----+
```
***
#### cloudaccount create-gcp
Create a GCP cloud account
**Usage**
```none theme={null}
cpln cloudaccount create-gcp --name ACCOUNT_NAME --project-id PROJECT_ID [OPTIONS]
```
By defining a GCP cloud account, you enable workloads to consume services from a specific GCP account.
The Control Plane CLI (`cpln`) provides account-specific instructions for registering a GCP cloud account
with Control Plane. Simply execute `cpln cloudaccount create-gcp --how` to obtain step-by-step instructions.
The instructions emitted are specific to the organization for the currently logged-on cpln user.
To override the organization, pass the `--org ORG_NAME` option.
```text theme={null}
Command options:
--name Name of the new account
--description, --desc Optional description, defaults to the name if not set
--project-id The ID of the project that Control Plane will manage
--how Show the steps on how to create and configure your GCP project [boolean]
--tag Attach tags (e.g., --tag drink=water)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln cloudaccount create-gcp --name demo-cloud-account-gcp --project-id 1234abc --org demo-cpln-organization
```
```text Output theme={null}
+-----------------------+-----------------------+---------+--------+--------+-----+
|NAME |DESCRIPTION |PROVIDER |INFO |CREATED |TAGS |
|-----------------------|-----------------------|---------|--------|--------|-----|
|demo-cloud-account-gcp |demo-cloud-account-gcp |gcp |1234abc |Now | |
+-----------------------+-----------------------+---------+--------+--------+-----+
```
***
#### cloudaccount create-ngs
Create a NGS cloud account
**Usage**
```none theme={null}
cpln cloudaccount create-ngs --name ACCOUNT_NAME --secret SECRET_REFERENCE [OPTIONS]
```
```text theme={null}
Command options:
--name Name of the new account [required]
--description, --desc Optional description, defaults to the name if not set
--secret The secret used to authenticate to NGS [required]
--tag Attach tags (e.g., --tag drink=water)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### cloudaccount delete
Delete one or more referenced cloud accounts
**Usage**
```none theme={null}
cpln cloudaccount delete [OPTIONS]
```
Deleting a cloud account will not remove any configuration at the associated cloud provider
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [required] [default: []]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln cloudaccount delete demo-cloud-account-aws --org demo-cpln-organization
```
```text Output theme={null}
If the delete was successful, a new command prompt will be shown.
```
***
#### cloudaccount edit
Edit the referenced cloud account, as YAML, within an editor
**Usage**
```none theme={null}
cpln cloudaccount edit [OPTIONS]
```
The default editor can be set by using the EDITOR environment variable.
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--replace, -r Replace instead of patch/merge [boolean] [default: false]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln cloudaccount edit demo-cloud-account-aws --org demo-cpln-organization
```
```text Output theme={null}
Your default editor will be launched.
Once any modifications are saved, the updates will be sent to the API.
```
***
#### cloudaccount eventlog
Show the event log of the referenced cloud account
**Usage**
```none theme={null}
cpln cloudaccount eventlog [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln cloudaccount eventlog demo-cloud-account-aws --org demo-cpln-organization
```
```text Output theme={null}
The event log for the referenced cloud account will be shown.
```
***
#### cloudaccount get
Retrieve one or more referenced cloud accounts
**Usage**
```none theme={null}
cpln cloudaccount get [ref...] [OPTIONS]
```
An empty reference will return all references
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [default: []]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Get all cloud accounts
```bash Command theme={null}
cpln cloudaccount get --org demo-cpln-organization
```
```text Output theme={null}
+-----------------------------+-----------------------------+---------+-----------------------------------------------------------+--------+-----+
|NAME |DESCRIPTION |PROVIDER |INFO |CREATED |TAGS |
|-----------------------------|-----------------------------|---------|-----------------------------------------------------------|--------|-----|
|demo-cloud-account-aws |demo-cloud-account-aws |aws |arn:aws:iam::123412341234:role/cpln-demo-cpln-organization |Now | |
|demo-cloud-account-aws-get-1 |demo-cloud-account-aws-get-1 |aws |arn:aws:iam::123412341234:role/cpln-demo-cpln-organization |Now | |
|demo-cloud-account-aws-get-2 |demo-cloud-account-aws-get-2 |aws |arn:aws:iam::123412341234:role/cpln-demo-cpln-organization |Now | |
|demo-cloud-account-azure |demo-cloud-account-azure |azure | |Now | |
|demo-cloud-account-gcp |demo-cloud-account-gcp |gcp |1234abc |Now | |
+-----------------------------+-----------------------------+---------+-----------------------------------------------------------+--------+-----+
```
* Get one cloud account
```bash Command theme={null}
cpln cloudaccount get demo-cloud-account-aws-get-1 --org demo-cpln-organization
```
```text Output theme={null}
+-----------------------------+-----------------------------+---------+-----------------------------------------------------------+--------+-----+
|NAME |DESCRIPTION |PROVIDER |INFO |CREATED |TAGS |
|-----------------------------|-----------------------------|---------|-----------------------------------------------------------|--------|-----|
|demo-cloud-account-aws-get-1 |demo-cloud-account-aws-get-1 |aws |arn:aws:iam::123412341234:role/cpln-demo-cpln-organization |Now | |
+-----------------------------+-----------------------------+---------+-----------------------------------------------------------+--------+-----+
```
* Get multiple cloud accounts
```bash Command theme={null}
cpln cloudaccount get demo-cloud-account-aws-get-1 demo-cloud-account-aws-get-2 --org demo-cpln-organization
```
```text Output theme={null}
+-----------------------------+-----------------------------+---------+-----------------------------------------------------------+--------+-----+
|NAME |DESCRIPTION |PROVIDER |INFO |CREATED |TAGS |
|-----------------------------|-----------------------------|---------|-----------------------------------------------------------|--------|-----|
|demo-cloud-account-aws-get-1 |demo-cloud-account-aws-get-1 |aws |arn:aws:iam::123412341234:role/cpln-demo-cpln-organization |Now | |
|demo-cloud-account-aws-get-2 |demo-cloud-account-aws-get-2 |aws |arn:aws:iam::123412341234:role/cpln-demo-cpln-organization |Now | |
+-----------------------------+-----------------------------+---------+-----------------------------------------------------------+--------+-----+
```
***
#### cloudaccount patch
Update the referenced cloud account's metadata using an input file
**Usage**
```none theme={null}
cpln cloudaccount patch --file FILE_NAME [OPTIONS]
```
Running this command with the option **`--file -`** sets the input to stdin. The input is required to be a valid JSON or YAML string (e.g., `{"description": "My new description"}` or `description: My new description`). To complete the update, press Control-D (or Control-Z if you are using Windows).
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--file, -f File to load the patch from. Use `--file -` to enable input from stdin. [required]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln cloudaccount patch demo-cloud-account-aws --file update.json --org demo-cpln-organization
```
```text Output theme={null}
The changes within the JSON file will be performed against the referenced cloud account.
```
***
#### cloudaccount permissions
Show the grantable permissions for a cloud account object type
**Usage**
```none theme={null}
cpln cloudaccount permissions [OPTIONS]
```
```text theme={null}
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln cloudaccount permissions --org demo-cpln-organization
```
```text Output theme={null}
+-------+-------------------------------+-------------------------------------------+
|NAME |DESCRIPTION |IMPLIES |
|-------|-------------------------------|-------------------------------------------|
|browse |Browse account contents |view |
|create |Create new cloud accounts | |
|delete |Delete existing cloud accounts | |
|edit |Modify existing cloud accounts |view, browse |
|manage |Full access |browse, create, delete, edit, manage, view |
|view |Read-only access | |
+-------+-------------------------------+-------------------------------------------+
```
***
#### cloudaccount query
Find all the cloud accounts based on the given query
**Usage**
```none theme={null}
cpln cloudaccount query QUERY_OPTIONS [OPTIONS]
```
```text theme={null}
Query options:
--match Query filter type [choices: "all", "none", "any"] [default: "all"]
--property, --prop Property to query
--tag Tag to query
--rel Relation to query
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
Use the `--match` option to display **all**, **none**, or **any** of the results based on a given property or tag
* Search for a cloud account based on the name property
```bash Command theme={null}
cpln cloudaccount query --match any --prop name=demo-cloud-account-aws --org demo-cpln-organization
```
```text Output theme={null}
+-----------------------+-----------------------+---------+-----------------------------------------------------------+--------+-----+
|NAME |DESCRIPTION |PROVIDER |INFO |CREATED |TAGS |
|-----------------------|-----------------------|---------|-----------------------------------------------------------|--------|-----|
|demo-cloud-account-aws |demo-cloud-account-aws |aws |arn:aws:iam::123412341234:role/cpln-demo-cpln-organization |Now | |
+-----------------------+-----------------------+---------+-----------------------------------------------------------+--------+-----+
```
* Search for a cloud account based on the description property
```bash Command theme={null}
cpln cloudaccount query --match any --prop description="demo-cloud-account-aws" --org demo-cpln-organization
```
```text Output theme={null}
+-----------------------+-----------------------+---------+-----------------------------------------------------------+--------+-----+
|NAME |DESCRIPTION |PROVIDER |INFO |CREATED |TAGS |
|-----------------------|-----------------------|---------|-----------------------------------------------------------|--------|-----|
|demo-cloud-account-aws |demo-cloud-account-aws |aws |arn:aws:iam::123412341234:role/cpln-demo-cpln-organization |Now | |
+-----------------------+-----------------------+---------+-----------------------------------------------------------+--------+-----+
```
* Search for a cloud account based on a tag
```bash Command theme={null}
cpln cloudaccount query --match any --tag drink=water --org demo-cpln-organization
```
```text Output theme={null}
+-----+------------+---------+-----+--------+-----+
|NAME |DESCRIPTION |PROVIDER |INFO |CREATED |TAGS |
+-----+------------+---------+-----+--------+-----+
```
* Search for a cloud account based on a property and tag
```bash Command theme={null}
cpln cloudaccount query --match any --prop description="demo-cloud-account-aws" --tag drink=water --org demo-cpln-organization
```
```text Output theme={null}
+-----------------------+-----------------------+---------+-----------------------------------------------------------+-------------+-----+
|NAME |DESCRIPTION |PROVIDER |INFO |CREATED |TAGS |
|-----------------------|-----------------------|---------|-----------------------------------------------------------|-------------|-----|
|demo-cloud-account-aws |demo-cloud-account-aws |aws |arn:aws:iam::123412341234:role/cpln-demo-cpln-organization |1 minute ago | |
+-----------------------+-----------------------+---------+-----------------------------------------------------------+-------------+-----+
```
***
#### cloudaccount tag
Manage the tags belonging to one or more referenced cloud accounts
**Usage**
```none theme={null}
cpln cloudaccount tag --tag KEY=VALUE [OPTIONS]
```
Built-in tags, which begin with cpln/\*, can't be modified.
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [required] [default: []]
Command options:
--tag Attach tags (e.g., --tag drink=water)
--remove-tag Remove tags (e.g., --remove-tag tagname)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Add a tag to a cloud account
```bash Command theme={null}
cpln cloudaccount tag demo-cloud-account-azure --tag drink=water --org demo-cpln-organization
```
```text Output theme={null}
+-------------------------+-------------------------+---------+-----+-------------+--------------+
|NAME |DESCRIPTION |PROVIDER |INFO |CREATED |TAGS |
|-------------------------|-------------------------|---------|-----|-------------|--------------|
|demo-cloud-account-azure |demo-cloud-account-azure |azure | |1 minute ago |drink="water" |
+-------------------------+-------------------------+---------+-----+-------------+--------------+
```
* Update same tag (after running the example above)
```bash Command theme={null}
cpln cloudaccount tag demo-cloud-account-azure --tag drink=coffee --org demo-cpln-organization
```
```text Output theme={null}
+-------------------------+-------------------------+---------+-----+-------------+---------------+
|NAME |DESCRIPTION |PROVIDER |INFO |CREATED |TAGS |
|-------------------------|-------------------------|---------|-----|-------------|---------------|
|demo-cloud-account-azure |demo-cloud-account-azure |azure | |1 minute ago |drink="coffee" |
+-------------------------+-------------------------+---------+-----+-------------+---------------+
```
* Remove tag (after running the example above)
```bash Command theme={null}
cpln cloudaccount tag demo-cloud-account-azure --remove drink --org demo-cpln-organization
```
```text Output theme={null}
+-------------------------+-------------------------+---------+-----+-------------+-----+
|NAME |DESCRIPTION |PROVIDER |INFO |CREATED |TAGS |
|-------------------------|-------------------------|---------|-----|-------------|-----|
|demo-cloud-account-azure |demo-cloud-account-azure |azure | |1 minute ago | |
+-------------------------+-------------------------+---------+-----+-------------+-----+
```
* Add same tag to multiple cloud accounts
```bash Command theme={null}
cpln cloudaccount tag demo-cloud-account-azure demo-cloud-account-gcp --tag multiple-cloudaccounts=true --org demo-cpln-organization
```
```text Output theme={null}
+-------------------------+-------------------------+---------+--------+-------------+------------------------------+
|NAME |DESCRIPTION |PROVIDER |INFO |CREATED |TAGS |
|-------------------------|-------------------------|---------|--------|-------------|------------------------------|
|demo-cloud-account-azure |demo-cloud-account-azure |azure | |1 minute ago |multiple-cloudaccounts="true" |
|demo-cloud-account-gcp |demo-cloud-account-gcp |gcp |1234abc |1 minute ago |multiple-cloudaccounts="true" |
+-------------------------+-------------------------+---------+--------+-------------+------------------------------+
```
* Update same tag on multiple cloud accounts (after running the example above)
```bash Command theme={null}
cpln cloudaccount tag demo-cloud-account-azure demo-cloud-account-gcp --tag multiple-cloudaccounts=demo-cloudaccount --org demo-cpln-organization
```
```text Output theme={null}
+-------------------------+-------------------------+---------+--------+-------------+-------------------------------------------+
|NAME |DESCRIPTION |PROVIDER |INFO |CREATED |TAGS |
|-------------------------|-------------------------|---------|--------|-------------|-------------------------------------------|
|demo-cloud-account-azure |demo-cloud-account-azure |azure | |1 minute ago |multiple-cloudaccounts="demo-cloudaccount" |
|demo-cloud-account-gcp |demo-cloud-account-gcp |gcp |1234abc |1 minute ago |multiple-cloudaccounts="demo-cloudaccount" |
+-------------------------+-------------------------+---------+--------+-------------+-------------------------------------------+
```
* Remove same tag from multiple cloud accounts (after running the example above)
```bash Command theme={null}
cpln cloudaccount tag demo-cloud-account-azure demo-cloud-account-gcp --remove multiple-cloudaccounts --org demo-cpln-organization
```
```text Output theme={null}
+-------------------------+-------------------------+---------+--------+-------------+-----+
|NAME |DESCRIPTION |PROVIDER |INFO |CREATED |TAGS |
|-------------------------|-------------------------|---------|--------|-------------|-----|
|demo-cloud-account-azure |demo-cloud-account-azure |azure | |1 minute ago | |
|demo-cloud-account-gcp |demo-cloud-account-gcp |gcp |1234abc |1 minute ago | |
+-------------------------+-------------------------+---------+--------+-------------+-----+
```
***
# convert
Source: https://docs.controlplane.com/cli-reference/commands/convert
cpln convert — Convert Kubernetes resource files to Control Plane resource files.
Convert k8s files to cpln files
Refer to the [cpln convert guide](/guides/cli/cpln-convert) for additional details.
**Usage**
```none theme={null}
cpln convert [OPTIONS]
```
```text theme={null}
Command options:
--file, -f File to load and use for the command. Use `--file -` to enable input from stdin. [required]
--protocol Protocol to use for all container ports [choices: "http", "http2", "grpc", "tcp"]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
--gvc Override the global virtual cloud. The default global virtual cloud can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
--version, -v Show version number [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
# cp
Source: https://docs.controlplane.com/cli-reference/commands/cp
cpln cp — Copy files and directories to and from running workloads.
Copy files and directories to and from workloads.
Refer to the [cpln cp guide](/guides/cli/cpln-cp) for additional details.
**Usage**
```none theme={null}
cpln cp [OPTIONS]
```
```text theme={null}
Positionals:
file-spec-src A path to the source file or directory to copy from. Use a local path or workloadName:path for paths within a workload [string] [required]
file-spec-dest A path to the destination file or directory to copy to. Use a local path or workloadName:path for paths within a workload [string] [required]
Command options:
--location A global virtual cloud location [string]
--container, -c The name of the workload container
--replica The name of the workload deployment replica
--no-preserve The copied file/directory's ownership and permissions will not be preserved in the container [boolean] [default: false]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
--gvc Override the global virtual cloud. The default global virtual cloud can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
--version, -v Show version number [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Copy file from local machine to workload
```bash Command theme={null}
cpln cp ./demo-file.txt demo-workload:path/within/workload/ --org demo-cpln-organization --gvc demo-gvc
```
```text Output theme={null}
If the copy was successful, a new command prompt will be shown.
```
* Copy directory from local machine to workload
```bash Command theme={null}
cpln cp ./demo-directory demo-workload:path/within/workload/ --org demo-cpln-organization --gvc demo-gvc
```
```text Output theme={null}
If the copy was successful, a new command prompt will be shown.
```
* Copy file from workload to local machine
```bash Command theme={null}
cpln cp demo-workload:path/within/workload/demo-file.txt ./demo-file.txt --org demo-cpln-organization --gvc demo-gvc
```
```text Output theme={null}
If the copy was successful, a new command prompt will be shown.
```
* Copy directory from workload to local machine
```bash Command theme={null}
cpln cp demo-workload:path/within/workload/demo-directory ./demo-directory --org demo-cpln-organization --gvc demo-gvc
```
```text Output theme={null}
If the copy was successful, a new command prompt will be shown.
```
***
# delete
Source: https://docs.controlplane.com/cli-reference/commands/delete
cpln delete — Delete resources defined in input files.
Delete resources from files
Refer to the [cpln delete guide](/guides/cpln-delete) for additional details.
**Usage**
```none theme={null}
cpln delete [OPTIONS]
```
```text theme={null}
Command options:
--file, -f File to load and use for the command. Use `--file -` to enable input from stdin. [required]
--k8s Set this true if input file is k8s config file [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
--gvc Override the global virtual cloud. The default global virtual cloud can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
--version, -v Show version number [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
# domain
Source: https://docs.controlplane.com/cli-reference/commands/domain
cpln domain — Manage custom domains for routing traffic to your workloads.
Manage custom domains
For a detailed overview, please visit the [domain's](/reference/domain) reference page.
```none theme={null}
cpln domain [SUBCOMMAND]
```
```text theme={null}
Commands:
cpln domain access-report Show the access report for the referenced domain
cpln domain audit [ref] Retrieve audit trail events for the referenced domain
cpln domain create Create a new domain
cpln domain delete Delete one or more referenced domains
cpln domain edit Edit the referenced domain, as YAML, within an editor
cpln domain eventlog Show the event log of the referenced domain [aliases: log]
cpln domain get [ref...] Retrieve one or more referenced domains
cpln domain patch Update the referenced domain's metadata using an input file
cpln domain permissions Show the grantable permissions for a domain object type
cpln domain query Find all the domains based on the given query
cpln domain tag Manage the tags belonging to one or more referenced domains
Options:
--help Show help [boolean]
```
***
#### domain access-report
Show the access report for the referenced domain
**Usage**
```none theme={null}
cpln domain access-report [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
The domain `demo.globalvirtualcloud.com` has already been added to the `demo-cpln-organization` organization
```bash Command theme={null}
cpln domain access-report demo.globalvirtualcloud.com --org demo-cpln-organization
```
```text Output theme={null}
+-----------+--------------------------------------------------------+--------+
|PERMISSION |PRINCIPAL |GRANTED |
|-----------|--------------------------------------------------------|--------|
|create |/org/demo-cpln-organization/group/superusers |manage |
|create |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|delete |/org/demo-cpln-organization/group/superusers |manage |
|delete |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|edit |/org/demo-cpln-organization/group/superusers |manage |
|edit |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|manage |/org/demo-cpln-organization/group/superusers |manage |
|manage |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|use |/org/demo-cpln-organization/group/superusers |manage |
|use |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|view |/org/demo-cpln-organization/group/superusers |manage |
|view |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|view |/org/demo-cpln-organization/group/viewers |view |
+-----------+--------------------------------------------------------+--------+
```
***
#### domain audit
Retrieve audit trail events for the referenced domain
**Usage**
```none theme={null}
cpln domain audit [ref] [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource.
Command options:
--subject Filter by subject (serviceaccount name or user email) [string]
--context Audit context name (the 'cpln' context displays Control Plane actions) [string] [default: "cpln"]
--since Relative lookback window from now (e.g., 1h, 24h, 7d). Mutually exclusive with --from/--to [string] [default: "7d"]
--from Start time for audit events (ISO 8601 format or relative duration, e.g., 2025-10-23T07:00:00Z, 7d, 1h). Cannot be used with --since [string]
--to End time for audit events (ISO 8601 format or relative duration, e.g., 2025-10-23T07:00:00Z, 1d, 30m) [string]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### domain create
Create a new domain
**Usage**
```none theme={null}
cpln domain create --name DOMAIN_NAME [OPTIONS]
```
Ownership of the referenced domain is required by setting a TXT DNS entry.
Review the [domain configuration instructions](/reference/domain) for details.
```text theme={null}
Command options:
--name Fully qualified domain name (e.g., widgets.example.com) [required]
--description, --desc Optional description, defaults to the name if not set
--tag Attach tags (e.g., --tag drink=water)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln domain create --name demo.globalvirtualcloud.com --org demo-cpln-organization
```
```text Output theme={null}
The ownership of the referenced domain will be validated and if successful, added to the referenced organization.
```
***
#### domain delete
Delete one or more referenced domains
**Usage**
```none theme={null}
cpln domain delete [OPTIONS]
```
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [required] [default: []]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln domain delete demo.globalvirtualcloud.com --org demo-cpln-organization
```
```text Output theme={null}
The referenced domain will be removed from the referenced organization.
```
***
#### domain edit
Edit the referenced domain, as YAML, within an editor
**Usage**
```none theme={null}
cpln domain edit [OPTIONS]
```
The default editor can be set by using the EDITOR environment variable.
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--replace, -r Replace instead of patch/merge [boolean] [default: false]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln domain edit demo.globalvirtualcloud.com --org demo-cpln-organization
```
```text Output theme={null}
Your default editor will be launched.
Once any modifications are saved, the updates will be sent to the API.
```
***
#### domain eventlog
Show the event log of the referenced domain
**Usage**
```none theme={null}
cpln domain eventlog [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln domain eventlog demo.globalvirtualcloud.com --org demo-cpln-organization
```
```text Output theme={null}
The event log for the referenced domain will be shown.
```
***
#### domain get
Retrieve one or more referenced domains
**Usage**
```none theme={null}
cpln domain get [ref...] [OPTIONS]
```
An empty reference will return all references
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [default: []]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Show a domain
```bash Command theme={null}
cpln domain get demo.globalvirtualcloud.com --org demo-cpln-organization
```
```text Output theme={null}
+----------------------------+----------------------------------+----------------------+
|NAME |DESCRIPTION |TAGS |
|----------------------------|----------------------------------|----------------------|
|demo.globalvirtualcloud.com |FQDN: demo.globalvirtualcloud.com |cpln/protected="true" |
| | |drink="coffee" |
+----------------------------+----------------------------------+----------------------+
```
* Show multiple domains
```bash Command theme={null}
cpln domain get demo.globalvirtualcloud.com demo2.globalvirtualcloud.com --org demo-cpln-organization
```
```text Output theme={null}
+-----------------------------+----------------------------------+----------------------+
|NAME |DESCRIPTION |TAGS |
|-----------------------------|----------------------------------|----------------------|
|demo.globalvirtualcloud.com |FQDN: demo.globalvirtualcloud.com |cpln/protected="true" |
| | |drink="coffee" |
|demo2.globalvirtualcloud.com |demo2.globalvirtualcloud.com |cpln/protected="true" |
| | |demo-domain="true" |
+-----------------------------+----------------------------------+----------------------+
```
***
#### domain patch
Update the referenced domain's metadata using an input file
**Usage**
```none theme={null}
cpln domain patch --file FILE_NAME [OPTIONS]
```
Running this command with the option **`--file -`** sets the input to stdin. The input is required to be a valid JSON or YAML string (e.g., `{"description": "My new description"}` or `description: My new description`). To complete the update, press Control-D (or Control-Z if you are using Windows).
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--file, -f File to load the patch from. Use `--file -` to enable input from stdin. [required]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln domain patch demo.globalvirtualcloud.com --file update.json --org demo-cpln-organization
```
```text Output theme={null}
The changes within the JSON file will be performed against the referenced domain.
```
***
#### domain permissions
Show the grantable permissions for a domain object type
**Usage**
```none theme={null}
cpln domain permissions [OPTIONS]
```
```text theme={null}
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln domain permissions --org demo-cpln-organization
```
```text Output theme={null}
+-------+-----------------------------------------+----------------------------------------+
|NAME |DESCRIPTION |IMPLIES |
|-------|-----------------------------------------|----------------------------------------|
|create |Create new domain | |
|delete |Delete a domain | |
|edit |Modify existing domains (only tags ca... |view, use |
|manage |Full access |create, delete, edit, manage, use, view |
|use |Allow a principal to use this domain |view |
|view |Read-only access | |
+-------+-----------------------------------------+----------------------------------------+
```
***
#### domain query
Find all the domains based on the given query
**Usage**
```none theme={null}
cpln domain query QUERY_OPTIONS [OPTIONS]
```
```text theme={null}
Query options:
--match Query filter type [choices: "all", "none", "any"] [default: "all"]
--property, --prop Property to query
--tag Tag to query
--rel Relation to query
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
Use the `--match` option to display **all**, **none**, or **any** of the results based on a given property or tag
* Search for a domain based on the name property
```bash Command theme={null}
cpln domain query --match any --prop name=demo.globalvirtualcloud.com --org demo-cpln-organization
```
```text Output theme={null}
+----------------------------+----------------------------------+----------------------+
|NAME |DESCRIPTION |TAGS |
|----------------------------|----------------------------------|----------------------|
|demo.globalvirtualcloud.com |FQDN: demo.globalvirtualcloud.com |cpln/protected="true" |
| | |drink="coffee" |
+----------------------------+----------------------------------+----------------------+
```
* Search for a domain based on the description property
```bash Command theme={null}
cpln domain query --match any --prop description="FQDN: demo.globalvirtualcloud.com" --org demo-cpln-organization
```
```text Output theme={null}
+----------------------------+----------------------------------+----------------------+
|NAME |DESCRIPTION |TAGS |
|----------------------------|----------------------------------|----------------------|
|demo.globalvirtualcloud.com |FQDN: demo.globalvirtualcloud.com |cpln/protected="true" |
| | |drink="coffee" |
+----------------------------+----------------------------------+----------------------+
```
* Search for a domain based on a tag
```bash Command theme={null}
cpln domain query --match any --tag demo-domain="true" --org demo-cpln-organization
```
```text Output theme={null}
+-----------------------------+-----------------------------+----------------------+
|NAME |DESCRIPTION |TAGS |
|-----------------------------|-----------------------------|----------------------|
|demo2.globalvirtualcloud.com |demo2.globalvirtualcloud.com |cpln/protected="true" |
| | |demo-domain="true" |
+-----------------------------+-----------------------------+----------------------+
```
* Search for a domain based on a property and tag
```bash Command theme={null}
cpln domain query --match any --prop description="FQDN: demo.globalvirtualcloud.com" --tag demo-domain="true" --org demo-cpln-organization
```
```text Output theme={null}
+-----------------------------+----------------------------------+----------------------+
|NAME |DESCRIPTION |TAGS |
|-----------------------------|----------------------------------|----------------------|
|demo.globalvirtualcloud.com |FQDN: demo.globalvirtualcloud.com |cpln/protected="true" |
| | |drink="coffee" |
|demo2.globalvirtualcloud.com |demo2.globalvirtualcloud.com |cpln/protected="true" |
| | |demo-domain="true" |
+-----------------------------+----------------------------------+----------------------+
```
***
#### domain tag
Manage the tags belonging to one or more referenced domains
**Usage**
```none theme={null}
cpln domain tag --tag KEY=VALUE [OPTIONS]
```
Built-in tags, which begin with cpln/\*, can't be modified.
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [required] [default: []]
Command options:
--tag Attach tags (e.g., --tag drink=water)
--remove-tag Remove tags (e.g., --remove-tag tagname)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Add a tag to a domain
```bash Command theme={null}
cpln domain tag demo.globalvirtualcloud.com --tag drink=water --org demo-cpln-organization
```
```text Output theme={null}
+----------------------------+----------------------------------+----------------------+
|NAME |DESCRIPTION |TAGS |
|----------------------------|----------------------------------|----------------------|
|demo.globalvirtualcloud.com |FQDN: demo.globalvirtualcloud.com |cpln/protected="true" |
| | |drink="water" |
+----------------------------+----------------------------------+----------------------+
```
* Update same tag (after running the example above)
```bash Command theme={null}
cpln domain tag demo.globalvirtualcloud.com --tag drink=coffee --org demo-cpln-organization
```
```text Output theme={null}
+----------------------------+----------------------------------+----------------------+
|NAME |DESCRIPTION |TAGS |
|----------------------------|----------------------------------|----------------------|
|demo.globalvirtualcloud.com |FQDN: demo.globalvirtualcloud.com |cpln/protected="true" |
| | |drink="coffee" |
+----------------------------+----------------------------------+----------------------+
```
* Remove tag (after running the example above)
```bash Command theme={null}
cpln domain tag demo.globalvirtualcloud.com --remove name --org demo-cpln-organization
```
```text Output theme={null}
+----------------------------+----------------------------------+----------------------+
|NAME |DESCRIPTION |TAGS |
|----------------------------|----------------------------------|----------------------|
|demo.globalvirtualcloud.com |FQDN: demo.globalvirtualcloud.com |cpln/protected="true" |
| | |drink="coffee" |
+----------------------------+----------------------------------+----------------------+
```
* Add same tag to multiple domain
```bash Command theme={null}
cpln domain tag demo.globalvirtualcloud.com demo2.globalvirtualcloud.com --tag multiple-domains=true --org demo-cpln-organization
```
```text Output theme={null}
+-----------------------------+----------------------------------+------------------------+
|NAME |DESCRIPTION |TAGS |
|-----------------------------|----------------------------------|------------------------|
|demo.globalvirtualcloud.com |FQDN: demo.globalvirtualcloud.com |cpln/protected="true" |
| | |drink="coffee" |
| | |multiple-domains="true" |
|demo2.globalvirtualcloud.com |demo2.globalvirtualcloud.com |cpln/protected="true" |
| | |demo-domain="true" |
| | |multiple-domains="true" |
+-----------------------------+----------------------------------+------------------------+
```
* Update same tag on multiple domain (after running the example above)
```bash Command theme={null}
cpln domain tag demo.globalvirtualcloud.com demo2.globalvirtualcloud.com --tag multiple-domains=demo-domain --org demo-cpln-organization
```
```text Output theme={null}
+-----------------------------+----------------------------------+-------------------------------+
|NAME |DESCRIPTION |TAGS |
|-----------------------------|----------------------------------|-------------------------------|
|demo.globalvirtualcloud.com |FQDN: demo.globalvirtualcloud.com |cpln/protected="true" |
| | |drink="coffee" |
| | |multiple-domains="demo-domain" |
|demo2.globalvirtualcloud.com |demo2.globalvirtualcloud.com |cpln/protected="true" |
| | |demo-domain="true" |
| | |multiple-domains="demo-domain" |
+-----------------------------+----------------------------------+-------------------------------+
```
* Remove same tag from multiple domain (after running the example above)
```bash Command theme={null}
cpln domain tag demo.globalvirtualcloud.com demo2.globalvirtualcloud.com --remove multiple-domains --org demo-cpln-organization
```
```text Output theme={null}
+-----------------------------+----------------------------------+----------------------+
|NAME |DESCRIPTION |TAGS |
|-----------------------------|----------------------------------|----------------------|
|demo.globalvirtualcloud.com |FQDN: demo.globalvirtualcloud.com |cpln/protected="true" |
| | |drink="coffee" |
|demo2.globalvirtualcloud.com |demo2.globalvirtualcloud.com |cpln/protected="true" |
| | |demo-domain="true" |
+-----------------------------+----------------------------------+----------------------+
```
***
# group
Source: https://docs.controlplane.com/cli-reference/commands/group
cpln group — Manage groups for organizing users and service accounts.
Manage groups
For a detailed overview, please visit the [group's](/reference/group) reference page.
```none theme={null}
cpln group [SUBCOMMAND]
```
```text theme={null}
Commands:
cpln group access-report Show the access report for the referenced group
cpln group add-member Add members to the referenced group
cpln group audit [ref] Retrieve audit trail events for the referenced group
cpln group clone Create a clone of the referenced group; this will only duplicate its spec. [aliases: copy]
cpln group create Create a new group
cpln group delete Delete one or more referenced groups
cpln group edit Edit the referenced group, as YAML, within an editor
cpln group eventlog Show the event log of the referenced group [aliases: log]
cpln group get [ref...] Retrieve one or more referenced groups
cpln group patch Update the referenced group's metadata using an input file
cpln group permissions Show the grantable permissions for a group object type
cpln group query Find all the groups based on the given query
cpln group remove-member Remove members from the referenced group
cpln group tag Manage the tags belonging to one or more referenced groups
cpln group update Update properties of the referenced group
Options:
--help Show help [boolean]
```
***
#### group access-report
Show the access report for the referenced group
**Usage**
```none theme={null}
cpln group access-report [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln group access-report demo-group --org demo-cpln-organization
```
```text Output theme={null}
+-----------+--------------------------------------------------------+--------+
|PERMISSION |PRINCIPAL |GRANTED |
|-----------|--------------------------------------------------------|--------|
|create |/org/demo-cpln-organization/group/superusers |manage |
|create |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|delete |/org/demo-cpln-organization/group/superusers |manage |
|delete |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|edit |/org/demo-cpln-organization/group/superusers |manage |
|edit |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|manage |/org/demo-cpln-organization/group/superusers |manage |
|manage |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|view |/org/demo-cpln-organization/group/viewers |view |
|view |/org/demo-cpln-organization/group/superusers |manage |
|view |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
+-----------+--------------------------------------------------------+--------+
```
***
#### group add-member
Add members to the referenced group
**Usage**
```none theme={null}
cpln group add-member --email USER_EMAIL [OPTIONS]
cpln group add-member --serviceaccount SERVICE_ACCOUNT [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--email Email of user to add
--serviceaccount Name of the service account to add
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Add a user to a group
```bash Command theme={null}
cpln group add-member demo-group --email test-128@example.com --org demo-cpln-organization
```
```text Output theme={null}
+-----------+------------+-------------+-------+--------+--------------+
|NAME |DESCRIPTION |CREATED |FILTER |ORIGIN |TAGS |
|-----------|------------|-------------|-------|--------|--------------|
|demo-group |demo-group |1 minute ago |links |default |drink="water" |
+-----------+------------+-------------+-------+--------+--------------+
```
* Add a service account to a group using email
```bash Command theme={null}
cpln group add-member demo-group --serviceaccount controlplane --org demo-cpln-organization
```
```text Output theme={null}
+-----------+------------+-------------+-------+--------+--------------+
|NAME |DESCRIPTION |CREATED |FILTER |ORIGIN |TAGS |
|-----------|------------|-------------|-------|--------|--------------|
|demo-group |demo-group |1 minute ago |links |default |drink="water" |
+-----------+------------+-------------+-------+--------+--------------+
```
***
#### group audit
Retrieve audit trail events for the referenced group
**Usage**
```none theme={null}
cpln group audit [ref] [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource.
Command options:
--subject Filter by subject (serviceaccount name or user email) [string]
--context Audit context name (the 'cpln' context displays Control Plane actions) [string] [default: "cpln"]
--since Relative lookback window from now (e.g., 1h, 24h, 7d). Mutually exclusive with --from/--to [string] [default: "7d"]
--from Start time for audit events (ISO 8601 format or relative duration, e.g., 2025-10-23T07:00:00Z, 7d, 1h). Cannot be used with --since [string]
--to End time for audit events (ISO 8601 format or relative duration, e.g., 2025-10-23T07:00:00Z, 1d, 30m) [string]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### group clone
Create a clone of the referenced group; this will only duplicate its spec.
**Usage**
```none theme={null}
cpln group clone --name CLONE_NAME [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--name Set the name for the clone [required]
--description Optional description, defaults to the name if not set
--tag Attach tags (e.g., --tag drink=water)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln group clone demo-group --name demo-group-clone --org demo-cpln-organization
```
```text Output theme={null}
+-----------------+--------------------+--------+-------+--------+--------------+
|NAME |DESCRIPTION |CREATED |FILTER |ORIGIN |TAGS |
|-----------------|--------------------|--------|-------|--------|--------------|
|demo-group-clone |Clone of demo-group |Now |links |default |drink="water" |
+-----------------+--------------------+--------+-------+--------+--------------+
```
***
#### group create
Create a new group
**Usage**
```none theme={null}
cpln group create --name GROUP_NAME [OPTIONS]
```
After creating a new group, use the subcommand [add-member](#group-add-member) to populate the group with users and/or service accounts.
```text theme={null}
Command options:
--name Name of the new group [required]
--description, --desc Optional description, defaults to the name if not set
--tag Attach tags (e.g., --tag drink=water)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Query spec options:
--query-match Query filter type [choices: "all", "none", "any"] [default: "all"]
--query-property Property to query
--query-tag Tag to query
--query-rel Relation to query
--query-kind Kind to query [choices: "user"]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln group create --name demo-group --desc demo-group --tag drink=water --org demo-cpln-organization
```
```text Output theme={null}
+-----------+------------+--------+-------+--------+--------------+
|NAME |DESCRIPTION |CREATED |FILTER |ORIGIN |TAGS |
|-----------|------------|--------|-------|--------|--------------|
|demo-group |demo-group |Now |links |default |drink="water" |
+-----------+------------+--------+-------+--------+--------------+
```
***
#### group delete
Delete one or more referenced groups
**Usage**
```none theme={null}
cpln group delete [OPTIONS]
```
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [required] [default: []]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln group delete demo-group --org demo-cpln-organization
```
```text Output theme={null}
If the delete was successful, a new command prompt will be shown.
```
***
#### group edit
Edit the referenced group, as YAML, within an editor
**Usage**
```none theme={null}
cpln group edit [OPTIONS]
```
The default editor can be set by using the EDITOR environment variable.
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--replace, -r Replace instead of patch/merge [boolean] [default: false]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln group edit demo-group --org demo-cpln-organization
```
```text Output theme={null}
Your default editor will be launched.
Once any modifications are saved, the updates will be sent to the API.
```
***
#### group eventlog
Show the event log of the referenced group
**Usage**
```none theme={null}
cpln group eventlog [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln group eventlog demo-group --org demo-cpln-organization
```
```text Output theme={null}
The event log for the referenced group will be shown.
```
***
#### group get
Retrieve one or more referenced groups
**Usage**
```none theme={null}
cpln group get [ref...] [OPTIONS]
```
An empty reference will return all references
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [default: []]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Get all groups
```bash Command theme={null}
cpln group get --org demo-cpln-organization
```
```text Output theme={null}
+-----------------+-----------------------------------------+-------------+-------+--------+--------------+
|NAME |DESCRIPTION |CREATED |FILTER |ORIGIN |TAGS |
|-----------------|-----------------------------------------|-------------|-------|--------|--------------|
|demo-group |demo-group |1 minute ago |links |default |drink="water" |
|demo-group-get-1 |demo-group-get-1 |Now |links |default | |
|demo-group-get-2 |demo-group-get-2 |Now |links |default | |
|superusers |Built-in group for all administrators... |5 years ago |links |builtin | |
|viewers |Built-in group for read-only access |5 years ago |links |builtin | |
+-----------------+-----------------------------------------+-------------+-------+--------+--------------+
```
* Get one group
```bash Command theme={null}
cpln group get demo-group-get-1 --org demo-cpln-organization
```
```text Output theme={null}
+-----------------+-----------------+--------+-------+--------+-----+
|NAME |DESCRIPTION |CREATED |FILTER |ORIGIN |TAGS |
|-----------------|-----------------|--------|-------|--------|-----|
|demo-group-get-1 |demo-group-get-1 |Now |links |default | |
+-----------------+-----------------+--------+-------+--------+-----+
```
* Get multiple groups
```bash Command theme={null}
cpln group get demo-group-get-1 demo-group-get-2 --org demo-cpln-organization
```
```text Output theme={null}
+-----------------+-----------------+--------+-------+--------+-----+
|NAME |DESCRIPTION |CREATED |FILTER |ORIGIN |TAGS |
|-----------------|-----------------|--------|-------|--------|-----|
|demo-group-get-1 |demo-group-get-1 |Now |links |default | |
|demo-group-get-2 |demo-group-get-2 |Now |links |default | |
+-----------------+-----------------+--------+-------+--------+-----+
```
***
#### group patch
Update the referenced group's metadata using an input file
**Usage**
```none theme={null}
cpln group patch --file FILE_NAME [OPTIONS]
```
Running this command with the option **`--file -`** sets the input to stdin. The input is required to be a valid JSON or YAML string (e.g., `{"description": "My new description"}` or `description: My new description`). To complete the update, press Control-D (or Control-Z if you are using Windows).
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--file, -f File to load the patch from. Use `--file -` to enable input from stdin. [required]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln group patch demo-group --file update.json --org demo-cpln-organization
```
```text Output theme={null}
The changes within the JSON file will be performed against the referenced group.
```
***
#### group permissions
Show the grantable permissions for a group object type
**Usage**
```none theme={null}
cpln group permissions [OPTIONS]
```
```text theme={null}
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln group permissions --org demo-cpln-organization
```
```text Output theme={null}
+-------+-----------------------+-----------------------------------+
|NAME |DESCRIPTION |IMPLIES |
|-------|-----------------------|-----------------------------------|
|create |Create new groups | |
|delete |Delete a group | |
|edit |Modify existing groups |view |
|manage |Full access |create, delete, edit, manage, view |
|view |Read-only view | |
+-------+-----------------------+-----------------------------------+
```
***
#### group query
Find all the groups based on the given query
**Usage**
```none theme={null}
cpln group query QUERY_OPTIONS [OPTIONS]
```
```text theme={null}
Query options:
--match Query filter type [choices: "all", "none", "any"] [default: "all"]
--property, --prop Property to query
--tag Tag to query
--rel Relation to query
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
Use the `--match` option to display **all**, **none**, or **any** of the results based on a given property or tag
* Search for a group based on the name property
```bash Command theme={null}
cpln group query --match any --prop name=demo-group --org demo-cpln-organization
```
```text Output theme={null}
+-----------+------------+-------------+-------+--------+--------------+
|NAME |DESCRIPTION |CREATED |FILTER |ORIGIN |TAGS |
|-----------|------------|-------------|-------|--------|--------------|
|demo-group |demo-group |1 minute ago |links |default |drink="water" |
+-----------+------------+-------------+-------+--------+--------------+
```
* Search for a group based on the description property
```bash Command theme={null}
cpln group query --match any --prop description="demo-group" --org demo-cpln-organization
```
```text Output theme={null}
+-----------+------------+-------------+-------+--------+--------------+
|NAME |DESCRIPTION |CREATED |FILTER |ORIGIN |TAGS |
|-----------|------------|-------------|-------|--------|--------------|
|demo-group |demo-group |1 minute ago |links |default |drink="water" |
+-----------+------------+-------------+-------+--------+--------------+
```
* Search for a group based on a tag
```bash Command theme={null}
cpln group query --match any --tag drink=water --org demo-cpln-organization
```
```text Output theme={null}
+-----------+------------+-------------+-------+--------+--------------+
|NAME |DESCRIPTION |CREATED |FILTER |ORIGIN |TAGS |
|-----------|------------|-------------|-------|--------|--------------|
|demo-group |demo-group |1 minute ago |links |default |drink="water" |
+-----------+------------+-------------+-------+--------+--------------+
```
* Search for a group based on a property and tag
```bash Command theme={null}
cpln group query --match any --prop description="demo-group" --tag drink=water --org demo-cpln-organization
```
```text Output theme={null}
+-----------+------------+-------------+-------+--------+--------------+
|NAME |DESCRIPTION |CREATED |FILTER |ORIGIN |TAGS |
|-----------|------------|-------------|-------|--------|--------------|
|demo-group |demo-group |1 minute ago |links |default |drink="water" |
+-----------+------------+-------------+-------+--------+--------------+
```
***
#### group remove-member
Remove members from the referenced group
**Usage**
```none theme={null}
cpln group remove-member --email USER_EMAIL [OPTIONS]
cpln group remove-member --serviceaccount SERVICE_ACCOUNT [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--email Email of user to remove
--serviceaccount Name of the service account to remove
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
The user and service account referenced in the examples below were previously added to the group
* Remove a user to a group
```bash Command theme={null}
cpln group remove-member demo-group --email test-128@example.com --org demo-cpln-organization
```
```text Output theme={null}
+-----------+------------+-------------+-------+--------+--------------+
|NAME |DESCRIPTION |CREATED |FILTER |ORIGIN |TAGS |
|-----------|------------|-------------|-------|--------|--------------|
|demo-group |demo-group |1 minute ago |links |default |drink="water" |
+-----------+------------+-------------+-------+--------+--------------+
```
* Remove a service account to a group using email
```bash Command theme={null}
cpln group remove-member demo-group --serviceaccount controlplane --org demo-cpln-organization
```
```text Output theme={null}
+-----------+------------+-------------+-------+--------+--------------+
|NAME |DESCRIPTION |CREATED |FILTER |ORIGIN |TAGS |
|-----------|------------|-------------|-------|--------|--------------|
|demo-group |demo-group |1 minute ago |links |default |drink="water" |
+-----------+------------+-------------+-------+--------+--------------+
```
***
#### group tag
Manage the tags belonging to one or more referenced groups
**Usage**
```none theme={null}
cpln group tag --tag KEY=VALUE [OPTIONS]
```
Built-in tags, which begin with cpln/\*, can't be modified.
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [required] [default: []]
Command options:
--tag Attach tags (e.g., --tag drink=water)
--remove-tag Remove tags (e.g., --remove-tag tagname)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Add a tag to a group
```bash Command theme={null}
cpln group tag demo-group-tag-1 --tag drink=water --org demo-cpln-organization
```
```text Output theme={null}
+-----------------+-----------------+--------+-------+--------+--------------+
|NAME |DESCRIPTION |CREATED |FILTER |ORIGIN |TAGS |
|-----------------|-----------------|--------|-------|--------|--------------|
|demo-group-tag-1 |demo-group-tag-1 |Now |links |default |drink="water" |
+-----------------+-----------------+--------+-------+--------+--------------+
```
* Update same tag (after running the example above)
```bash Command theme={null}
cpln group tag demo-group-tag-1 --tag drink=coffee --org demo-cpln-organization
```
```text Output theme={null}
+-----------------+-----------------+--------+-------+--------+---------------+
|NAME |DESCRIPTION |CREATED |FILTER |ORIGIN |TAGS |
|-----------------|-----------------|--------|-------|--------|---------------|
|demo-group-tag-1 |demo-group-tag-1 |Now |links |default |drink="coffee" |
+-----------------+-----------------+--------+-------+--------+---------------+
```
* Remove tag (after running the example above)
```bash Command theme={null}
cpln group tag demo-group-tag-1 --remove drink --org demo-cpln-organization
```
```text Output theme={null}
+-----------------+-----------------+--------+-------+--------+-----+
|NAME |DESCRIPTION |CREATED |FILTER |ORIGIN |TAGS |
|-----------------|-----------------|--------|-------|--------|-----|
|demo-group-tag-1 |demo-group-tag-1 |Now |links |default | |
+-----------------+-----------------+--------+-------+--------+-----+
```
* Add same tag to multiple groups
```bash Command theme={null}
cpln group tag demo-group-tag-1 demo-group-tag-2 --tag multiple-groups=true --org demo-cpln-organization
```
```text Output theme={null}
+-----------------+-----------------+--------+-------+--------+-----------------------+
|NAME |DESCRIPTION |CREATED |FILTER |ORIGIN |TAGS |
|-----------------|-----------------|--------|-------|--------|-----------------------|
|demo-group-tag-1 |demo-group-tag-1 |Now |links |default |multiple-groups="true" |
|demo-group-tag-2 |demo-group-tag-2 |Now |links |default |multiple-groups="true" |
+-----------------+-----------------+--------+-------+--------+-----------------------+
```
* Update same tag on multiple groups (after running the example above)
```bash Command theme={null}
cpln group tag demo-group-tag-1 demo-group-tag-2 --tag multiple-groups=demo-group --org demo-cpln-organization
```
```text Output theme={null}
+-----------------+-----------------+--------+-------+--------+-----------------------------+
|NAME |DESCRIPTION |CREATED |FILTER |ORIGIN |TAGS |
|-----------------|-----------------|--------|-------|--------|-----------------------------|
|demo-group-tag-1 |demo-group-tag-1 |Now |links |default |multiple-groups="demo-group" |
|demo-group-tag-2 |demo-group-tag-2 |Now |links |default |multiple-groups="demo-group" |
+-----------------+-----------------+--------+-------+--------+-----------------------------+
```
* Remove same tag from multiple groups (after running the example above)
```bash Command theme={null}
cpln group tag demo-group-tag-1 demo-group-tag-2 --remove multiple-groups --org demo-cpln-organization
```
```text Output theme={null}
+-----------------+-----------------+--------+-------+--------+-----+
|NAME |DESCRIPTION |CREATED |FILTER |ORIGIN |TAGS |
|-----------------|-----------------|--------|-------|--------|-----|
|demo-group-tag-1 |demo-group-tag-1 |Now |links |default | |
|demo-group-tag-2 |demo-group-tag-2 |Now |links |default | |
+-----------------+-----------------+--------+-------+--------+-----+
```
***
#### group update
Update properties of the referenced group
**Usage**
```none theme={null}
cpln group update --set UPDATE_PROPERTY [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Update Properties:
--set Update the following properties (e.g., --set description="Updated Description"):
description string
tags. string
memberLinks string[]
Arrays can be appended to, replaced, or removed using the `+=`, `=`, or `-=` operators, respectively.
--unset Unset a property (same paths as --set, e.g., --unset description)
Command options:
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* The `--set` option allows the modification of the following group properties:
* `description`
* Description of the group
* Type: string
* `tags`
* Tags (key=value) associated with the group
* Type: string
* `memberLinks`
* Array of links belonging to members of the group
* Type: string\[]
* For the examples below, the initial group is configured as:
```text theme={null}
+------------------+------------------+--------+-------+--------+-----+
|NAME |DESCRIPTION |CREATED |FILTER |ORIGIN |TAGS |
|------------------|------------------|--------|-------|--------|-----|
|demo-group-update |demo-group-update |Now |links |default | |
+------------------+------------------+--------+-------+--------+-----+
```
* Update a group's description
```bash Command theme={null}
cpln group update demo-group-update --set description="new description" --org demo-cpln-organization
```
```text Output theme={null}
+------------------+----------------+--------+-------+--------+-----+
|NAME |DESCRIPTION |CREATED |FILTER |ORIGIN |TAGS |
|------------------|----------------|--------|-------|--------|-----|
|demo-group-update |new description |Now |links |default | |
+------------------+----------------+--------+-------+--------+-----+
```
* Update a group's tags
```bash Command theme={null}
cpln group update demo-group-update --set tags.demo-key=demo-value --org demo-cpln-organization
```
```text Output theme={null}
+------------------+----------------+--------+-------+--------+----------------------+
|NAME |DESCRIPTION |CREATED |FILTER |ORIGIN |TAGS |
|------------------|----------------|--------|-------|--------|----------------------|
|demo-group-update |new description |Now |links |default |demo-key="demo-value" |
+------------------+----------------+--------+-------+--------+----------------------+
```
* Add to a group's member links. This examples adds the built-in controlplane service account
```bash Command theme={null}
cpln group update demo-group-update --set memberLinks+="/org/demo-cpln-organization/serviceaccount/controlplane" --org demo-cpln-organization
```
```text Output theme={null}
+------------------+----------------+--------+-------+--------+----------------------+
|NAME |DESCRIPTION |CREATED |FILTER |ORIGIN |TAGS |
|------------------|----------------|--------|-------|--------|----------------------|
|demo-group-update |new description |Now |links |default |demo-key="demo-value" |
+------------------+----------------+--------+-------+--------+----------------------+
```
* Remove from a group's member links. This examples removes the built-in controlplane service account
```bash Command theme={null}
cpln group update demo-group-update --set memberLinks-="/org/demo-cpln-organization/serviceaccount/controlplane" --org demo-cpln-organization
```
```text Output theme={null}
+------------------+----------------+--------+-------+--------+----------------------+
|NAME |DESCRIPTION |CREATED |FILTER |ORIGIN |TAGS |
|------------------|----------------|--------|-------|--------|----------------------|
|demo-group-update |new description |Now |links |default |demo-key="demo-value" |
+------------------+----------------+--------+-------+--------+----------------------+
```
***
# gvc
Source: https://docs.controlplane.com/cli-reference/commands/gvc
cpln gvc — Manage Global Virtual Clouds (GVCs) that define multi-cloud deployment environments.
Manage global virtual clouds
For a detailed overview, please visit the [gvc's](/reference/gvc) reference page.
```none theme={null}
cpln gvc [SUBCOMMAND]
```
```text theme={null}
Commands:
cpln gvc access-report Show the access report for the referenced global virtual cloud
cpln gvc add-location Add one or more locations to the referenced global virtual cloud
cpln gvc audit [ref] Retrieve audit trail events for the referenced global virtual cloud
cpln gvc clone Create a clone of the referenced global virtual cloud; this will only duplicate its spec. [aliases: copy]
cpln gvc create Create a new global virtual cloud
cpln gvc delete Delete GVCs by name
cpln gvc delete-all-workloads Delete all workloads for the referenced global virtual cloud
cpln gvc edit Edit the referenced global virtual cloud, as YAML, within an editor
cpln gvc eventlog Show the event log of the referenced global virtual cloud [aliases: log]
cpln gvc get [ref...] Retrieve one or more referenced global virtual clouds
cpln gvc patch Update the referenced global virtual cloud's metadata using an input file
cpln gvc permissions Show the grantable permissions for a global virtual cloud object type
cpln gvc query Find all the global virtual clouds based on the given query
cpln gvc remove-location Remove one or more locations from the referenced global virtual cloud
cpln gvc tag Manage the tags belonging to one or more referenced global virtual clouds
cpln gvc update Update properties of the referenced global virtual cloud
Options:
--help Show help [boolean]
```
***
#### gvc access-report
Show the access report for the referenced global virtual cloud
**Usage**
```none theme={null}
cpln gvc access-report [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Display the user / service account / group permissions for the 'demo-gvc' global virtual cloud within the 'demo-cpln-organization' organization
```bash Command theme={null}
cpln gvc access-report demo-gvc --org demo-cpln-organization
```
```text Output theme={null}
+----------------------+--------------------------------------------------------+--------+
|PERMISSION |PRINCIPAL |GRANTED |
|----------------------|--------------------------------------------------------|--------|
|configureLoadBalancer |/org/demo-cpln-organization/group/superusers |manage |
|configureLoadBalancer |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|create |/org/demo-cpln-organization/group/superusers |manage |
|create |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|delete |/org/demo-cpln-organization/group/superusers |manage |
|delete |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|edit |/org/demo-cpln-organization/group/superusers |manage |
|edit |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|manage |/org/demo-cpln-organization/group/superusers |manage |
|manage |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|view |/org/demo-cpln-organization/group/viewers |view |
|view |/org/demo-cpln-organization/group/superusers |manage |
|view |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
+----------------------+--------------------------------------------------------+--------+
```
***
#### gvc add-location
Add one or more locations to the referenced global virtual cloud
**Usage**
```none theme={null}
cpln gvc add-location --location {aws-eu-central-1|aws-us-west-2|azure-eastus2|gcp-us-east1} [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--location Location to add [required]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
The gvc, named 'demo-gvc', in the examples below was already created with 'aws-eu-central-1' as one of its locations.
* Add one location to a global virtual cloud
```bash Command theme={null}
cpln gvc add-location demo-gvc --location aws-us-west-2 --org demo-cpln-organization
```
```text Output theme={null}
+---------+------------+--------------+--------------+-------+-----------------+--------------+
|NAME |DESCRIPTION |CREATED |ALIAS |DOMAIN |LOCATIONS |TAGS |
|---------|------------|--------------|--------------|-------|-----------------|--------------|
|demo-gvc |demo-gvc |2 minutes ago |sedj919s8jjzr | |aws-eu-central-1 |drink="water" |
| | | | | |aws-us-west-2 | |
+---------+------------+--------------+--------------+-------+-----------------+--------------+
```
* Add multiple locations to a global virtual cloud
```bash Command theme={null}
cpln gvc add-location demo-gvc --location aws-us-west-2 --location gcp-us-east1 --org demo-cpln-organization
```
```text Output theme={null}
+---------+------------+--------------+--------------+-------+-----------------+--------------+
|NAME |DESCRIPTION |CREATED |ALIAS |DOMAIN |LOCATIONS |TAGS |
|---------|------------|--------------|--------------|-------|-----------------|--------------|
|demo-gvc |demo-gvc |2 minutes ago |sedj919s8jjzr | |aws-eu-central-1 |drink="water" |
| | | | | |aws-us-west-2 | |
| | | | | |gcp-us-east1 | |
+---------+------------+--------------+--------------+-------+-----------------+--------------+
```
***
#### gvc audit
Retrieve audit trail events for the referenced global virtual cloud
**Usage**
```none theme={null}
cpln gvc audit [ref] [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource.
Command options:
--subject Filter by subject (serviceaccount name or user email) [string]
--context Audit context name (the 'cpln' context displays Control Plane actions) [string] [default: "cpln"]
--since Relative lookback window from now (e.g., 1h, 24h, 7d). Mutually exclusive with --from/--to [string] [default: "7d"]
--from Start time for audit events (ISO 8601 format or relative duration, e.g., 2025-10-23T07:00:00Z, 7d, 1h). Cannot be used with --since [string]
--to End time for audit events (ISO 8601 format or relative duration, e.g., 2025-10-23T07:00:00Z, 1d, 30m) [string]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### gvc clone
Create a clone of the referenced global virtual cloud; this will only duplicate its spec.
**Usage**
```none theme={null}
cpln gvc clone --name CLONE_NAME [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--name Set the name for the clone [required]
--description Optional description, defaults to the name if not set
--tag Attach tags (e.g., --tag drink=water)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln gvc clone demo-gvc --name demo-gvc-clone --org demo-cpln-organization
```
```text Output theme={null}
+---------------+------------------+--------+--------------+-------+-----------------+--------------+
|NAME |DESCRIPTION |CREATED |ALIAS |DOMAIN |LOCATIONS |TAGS |
|---------------|------------------|--------|--------------|-------|-----------------|--------------|
|demo-gvc-clone |Clone of demo-gvc |Now |g81szqqhfhkep | |aws-eu-central-1 |drink="water" |
| | | | | |aws-us-west-2 | |
| | | | | |gcp-us-east1 | |
+---------------+------------------+--------+--------------+-------+-----------------+--------------+
```
***
#### gvc create
Create a new global virtual cloud
**Usage**
```none theme={null}
cpln gvc create --name GVC_NAME --location {aws-eu-central-1|aws-us-west-2|azure-eastus2|gcp-us-east1} [OPTIONS]
```
```text theme={null}
Command options:
--name Name of the new global virtual cloud [required]
--description, --desc Optional description, defaults to the name if not set
--location One or more locations to associate with this new global virtual cloud [required]
--env Environment variables in KEY=VALUE format
--tag Attach tags (e.g., --tag drink=water)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Query spec options:
--query-match Query filter type [choices: "all", "none", "any"] [default: "all"]
--query-property Property to query
--query-tag Tag to query
--query-rel Relation to query
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* `name`
* Minimum Length: 3
* Maximum Length: 64
* Only lowercase characters
* Must begin with a character
* Allowed special characters: -
* Create an new GVC with a single location
```bash Command theme={null}
cpln gvc create --name demo-gvc --location aws-eu-central-1 --desc demo-gvc --tag drink=water --org demo-cpln-organization
```
```text Output theme={null}
+---------+------------+--------+--------------+-------+-----------------+--------------+
|NAME |DESCRIPTION |CREATED |ALIAS |DOMAIN |LOCATIONS |TAGS |
|---------|------------|--------|--------------|-------|-----------------|--------------|
|demo-gvc |demo-gvc |Now |sedj919s8jjzr | |aws-eu-central-1 |drink="water" |
+---------+------------+--------+--------------+-------+-----------------+--------------+
```
***
#### gvc delete
Delete GVCs by name
**Usage**
```none theme={null}
cpln gvc delete [OPTIONS]
```
Deleting a gvc will remove all associated resources (workloads, etc.)
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [required] [default: []]
Command options:
--force Bypass warnings and/or safety checks [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Delete a gvc
```bash Command theme={null}
cpln gvc delete demo-gvc-delete-1 --org demo-cpln-organization
```
```text Output theme={null}
If the delete was successful, a new command prompt will be shown.
```
* Delete multiple gvcs
```bash Command theme={null}
cpln gvc delete demo-gvc-delete-1 demo-gvc-delete-2 --org demo-cpln-organization
```
```text Output theme={null}
If the delete was successful, a new command prompt will be shown.
```
***
#### gvc delete-all-workloads
Delete all workloads for the referenced global virtual cloud
**Usage**
```none theme={null}
cpln gvc delete-all-workloads [OPTIONS]
```
Deleting all the associated workloads will remove all associated resources (containers, etc.)
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Delete all workloads
```bash Command theme={null}
cpln gvc delete-all-workloads demo-gvc-with-workloads --org demo-cpln-organization
```
```text Output theme={null}
+------------+------------+------------------------+------+--------+-----------------------------------------------------------+-----+
|NAME |DESCRIPTION |GVC |READY |CREATED |ENDPOINT |TAGS |
|------------|------------|------------------------|------|--------|-----------------------------------------------------------|-----|
|workload-01 |workload-01 |demo-gvc-with-workloads | |Now |https://workload-01-fspqqt1wtnxp4.geta3p46gfrsp.t.cpln.app | |
|workload-02 |workload-02 |demo-gvc-with-workloads | |Now |https://workload-02-fspqqt1wtnxp4.geta3p46gfrsp.t.cpln.app | |
+------------+------------+------------------------+------+--------+-----------------------------------------------------------+-----+
```
***
#### gvc edit
Edit the referenced global virtual cloud, as YAML, within an editor
**Usage**
```none theme={null}
cpln gvc edit [OPTIONS]
```
The default editor can be set by using the EDITOR environment variable.
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--replace, -r Replace instead of patch/merge [boolean] [default: false]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln gvc edit demo-gvc --org demo-cpln-organization
```
```text Output theme={null}
Your default editor will be launched.
Once any modifications are saved, the updates will be sent to the API.
```
***
#### gvc eventlog
Show the event log of the referenced global virtual cloud
**Usage**
```none theme={null}
cpln gvc eventlog [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln gvc eventlog demo-gvc --org demo-cpln-organization
```
```text Output theme={null}
The event log for the referenced gvc will be shown.
```
***
#### gvc get
Retrieve one or more referenced global virtual clouds
**Usage**
```none theme={null}
cpln gvc get [ref...] [OPTIONS]
```
An empty reference will return all references
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [default: []]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Get all gvcs
```bash Command theme={null}
cpln gvc get --org demo-cpln-organization
```
```text Output theme={null}
+------------------------+------------------------+--------------+--------------+-------+-----------------+--------------+
|NAME |DESCRIPTION |CREATED |ALIAS |DOMAIN |LOCATIONS |TAGS |
|------------------------|------------------------|--------------|--------------|-------|-----------------|--------------|
|demo-gvc |demo-gvc |2 minutes ago |sedj919s8jjzr | |aws-eu-central-1 |drink="water" |
| | | | | |aws-us-west-2 | |
| | | | | |gcp-us-east1 | |
|demo-gvc-get-1 |demo-gvc-get-1 |Now |zjbsgjakyckhw | |aws-eu-central-1 | |
|demo-gvc-get-2 |demo-gvc-get-2 |Now |ggt9sj3j147dc | |aws-eu-central-1 | |
|demo-gvc-identity |demo-gvc-identity |2 minutes ago |b9acy9sz9a65r | |aws-eu-central-1 | |
|demo-gvc-with-workloads |demo-gvc-with-workloads |Now |fspqqt1wtnxp4 | |aws-eu-central-1 | |
|demo-gvc-workload |demo-gvc-workload |2 minutes ago |2x5qqmrp3zzt6 | |aws-eu-central-1 | |
+------------------------+------------------------+--------------+--------------+-------+-----------------+--------------+
```
* Get one gvc
```bash Command theme={null}
cpln gvc get demo-gvc-get-1 --org demo-cpln-organization
```
```text Output theme={null}
+---------------+---------------+--------+--------------+-------+-----------------+-----+
|NAME |DESCRIPTION |CREATED |ALIAS |DOMAIN |LOCATIONS |TAGS |
|---------------|---------------|--------|--------------|-------|-----------------|-----|
|demo-gvc-get-1 |demo-gvc-get-1 |Now |zjbsgjakyckhw | |aws-eu-central-1 | |
+---------------+---------------+--------+--------------+-------+-----------------+-----+
```
* Get multiple gvcs
```bash Command theme={null}
cpln gvc get demo-gvc-get-1 demo-gvc-get-2 --org demo-cpln-organization
```
```text Output theme={null}
+---------------+---------------+--------+--------------+-------+-----------------+-----+
|NAME |DESCRIPTION |CREATED |ALIAS |DOMAIN |LOCATIONS |TAGS |
|---------------|---------------|--------|--------------|-------|-----------------|-----|
|demo-gvc-get-1 |demo-gvc-get-1 |Now |zjbsgjakyckhw | |aws-eu-central-1 | |
|demo-gvc-get-2 |demo-gvc-get-2 |Now |ggt9sj3j147dc | |aws-eu-central-1 | |
+---------------+---------------+--------+--------------+-------+-----------------+-----+
```
***
#### gvc patch
Update the referenced global virtual cloud's metadata using an input file
**Usage**
```none theme={null}
cpln gvc patch --file FILE_NAME [OPTIONS]
```
Running this command with the option **`--file -`** sets the input to stdin. The input is required to be a valid JSON or YAML string (e.g., `{"description": "My new description"}` or `description: My new description`). To complete the update, press Control-D (or Control-Z if you are using Windows).
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--file, -f File to load the patch from. Use `--file -` to enable input from stdin. [required]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln gvc patch demo-gvc --file update.json --org demo-cpln-organization
```
```text Output theme={null}
The changes within the JSON file will be performed against the referenced gvc.
```
***
#### gvc permissions
Show the grantable permissions for a global virtual cloud object type
**Usage**
```none theme={null}
cpln gvc permissions [OPTIONS]
```
```text theme={null}
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln gvc permissions --org demo-cpln-organization
```
```text Output theme={null}
+----------------------+---------------------------+----------------------------------------------------------+
|NAME |DESCRIPTION |IMPLIES |
|----------------------|---------------------------|----------------------------------------------------------|
|configureLoadBalancer |Principal can configure LB | |
|create |Create new gvcs | |
|delete |Delete existing gvcs | |
|edit |Modify existing gvcs |view |
|manage |Full access |configureLoadBalancer, create, delete, edit, manage, view |
|view |Read-only access | |
+----------------------+---------------------------+----------------------------------------------------------+
```
***
#### gvc query
Find all the global virtual clouds based on the given query
**Usage**
```none theme={null}
cpln gvc query QUERY_OPTIONS [OPTIONS]
```
```text theme={null}
Query options:
--match Query filter type [choices: "all", "none", "any"] [default: "all"]
--property, --prop Property to query
--tag Tag to query
--rel Relation to query
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
Use the `--match` option to display **all**, **none**, or **any** of the results based on a given property or tag
* Search for a gvc based on the name property
```bash Command theme={null}
cpln gvc query --match any --prop name=demo-gvc --org demo-cpln-organization
```
```text Output theme={null}
+---------+------------+--------------+--------------+-------+-----------------+--------------+
|NAME |DESCRIPTION |CREATED |ALIAS |DOMAIN |LOCATIONS |TAGS |
|---------|------------|--------------|--------------|-------|-----------------|--------------|
|demo-gvc |demo-gvc |2 minutes ago |sedj919s8jjzr | |aws-eu-central-1 |drink="water" |
| | | | | |aws-us-west-2 | |
| | | | | |gcp-us-east1 | |
+---------+------------+--------------+--------------+-------+-----------------+--------------+
```
* Search for a gvc based on the description property
```bash Command theme={null}
cpln gvc query --match any --prop description="demo-gvc" --org demo-cpln-organization
```
```text Output theme={null}
+---------+------------+--------------+--------------+-------+-----------------+--------------+
|NAME |DESCRIPTION |CREATED |ALIAS |DOMAIN |LOCATIONS |TAGS |
|---------|------------|--------------|--------------|-------|-----------------|--------------|
|demo-gvc |demo-gvc |2 minutes ago |sedj919s8jjzr | |aws-eu-central-1 |drink="water" |
| | | | | |aws-us-west-2 | |
| | | | | |gcp-us-east1 | |
+---------+------------+--------------+--------------+-------+-----------------+--------------+
```
* Search for a gvc based on a tag
```bash Command theme={null}
cpln gvc query --match any --tag drink=water --org demo-cpln-organization
```
```text Output theme={null}
+---------+------------+--------------+--------------+-------+-----------------+--------------+
|NAME |DESCRIPTION |CREATED |ALIAS |DOMAIN |LOCATIONS |TAGS |
|---------|------------|--------------|--------------|-------|-----------------|--------------|
|demo-gvc |demo-gvc |2 minutes ago |sedj919s8jjzr | |aws-eu-central-1 |drink="water" |
| | | | | |aws-us-west-2 | |
| | | | | |gcp-us-east1 | |
+---------+------------+--------------+--------------+-------+-----------------+--------------+
```
* Search for a gvc based on a property and tag
```bash Command theme={null}
cpln gvc query --match any --prop description="demo-gvc" --tag drink=water --org demo-cpln-organization
```
```text Output theme={null}
+---------+------------+--------------+--------------+-------+-----------------+--------------+
|NAME |DESCRIPTION |CREATED |ALIAS |DOMAIN |LOCATIONS |TAGS |
|---------|------------|--------------|--------------|-------|-----------------|--------------|
|demo-gvc |demo-gvc |2 minutes ago |sedj919s8jjzr | |aws-eu-central-1 |drink="water" |
| | | | | |aws-us-west-2 | |
| | | | | |gcp-us-east1 | |
+---------+------------+--------------+--------------+-------+-----------------+--------------+
```
***
#### gvc remove-location
Remove one or more locations from the referenced global virtual cloud
**Usage**
```none theme={null}
cpln gvc remove-location --location {aws-eu-central-1|aws-us-west-2|azure-eastus2|gcp-us-east1} [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--location Location to remove [required]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
The gvc, named 'demo-gvc-with-locations', in the examples below was already created with four locations. A gvc must have at least one location.
* Remove one location from a global virtual cloud
```bash Command theme={null}
cpln gvc remove-location demo-gvc-with-locations --location azure-eastus2 --org demo-cpln-organization
```
```text Output theme={null}
+------------------------+------------------------+--------+--------------+-------+-----------------+-----+
|NAME |DESCRIPTION |CREATED |ALIAS |DOMAIN |LOCATIONS |TAGS |
|------------------------|------------------------|--------|--------------|-------|-----------------|-----|
|demo-gvc-with-locations |demo-gvc-with-locations |Now |f9mpjzw6wxqmr | |aws-eu-central-1 | |
| | | | | |aws-us-west-2 | |
| | | | | |gcp-us-east1 | |
+------------------------+------------------------+--------+--------------+-------+-----------------+-----+
```
* Remove multiple locations from a global virtual cloud
```bash Command theme={null}
cpln gvc remove-location demo-gvc-with-locations --location aws-us-west-2 --location aws-eu-central-1 --org demo-cpln-organization
```
```text Output theme={null}
+------------------------+------------------------+--------+--------------+-------+-------------+-----+
|NAME |DESCRIPTION |CREATED |ALIAS |DOMAIN |LOCATIONS |TAGS |
|------------------------|------------------------|--------|--------------|-------|-------------|-----|
|demo-gvc-with-locations |demo-gvc-with-locations |Now |f9mpjzw6wxqmr | |gcp-us-east1 | |
+------------------------+------------------------+--------+--------------+-------+-------------+-----+
```
***
#### gvc tag
Manage the tags belonging to one or more referenced global virtual clouds
**Usage**
```none theme={null}
cpln gvc tag --tag KEY=VALUE [OPTIONS]
```
Built-in tags, which begin with cpln/\*, can't be modified.
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [required] [default: []]
Command options:
--tag Attach tags (e.g., --tag drink=water)
--remove-tag Remove tags (e.g., --remove-tag tagname)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Add a tag to a gvc
```bash Command theme={null}
cpln gvc tag demo-gvc-tag-1 --tag drink=water --org demo-cpln-organization
```
```text Output theme={null}
+---------------+---------------+--------+--------------+-------+-----------------+--------------+
|NAME |DESCRIPTION |CREATED |ALIAS |DOMAIN |LOCATIONS |TAGS |
|---------------|---------------|--------|--------------|-------|-----------------|--------------|
|demo-gvc-tag-1 |demo-gvc-tag-1 |Now |mdvcnz97by71w | |aws-eu-central-1 |drink="water" |
+---------------+---------------+--------+--------------+-------+-----------------+--------------+
```
* Update same tag (after running the example above)
```bash Command theme={null}
cpln gvc tag demo-gvc-tag-1 --tag drink=coffee --org demo-cpln-organization
```
```text Output theme={null}
+---------------+---------------+--------+--------------+-------+-----------------+---------------+
|NAME |DESCRIPTION |CREATED |ALIAS |DOMAIN |LOCATIONS |TAGS |
|---------------|---------------|--------|--------------|-------|-----------------|---------------|
|demo-gvc-tag-1 |demo-gvc-tag-1 |Now |mdvcnz97by71w | |aws-eu-central-1 |drink="coffee" |
+---------------+---------------+--------+--------------+-------+-----------------+---------------+
```
* Remove tag (after running the example above)
```bash Command theme={null}
cpln gvc tag demo-gvc-tag-1 --remove drink --org demo-cpln-organization
```
```text Output theme={null}
+---------------+---------------+--------+--------------+-------+-----------------+-----+
|NAME |DESCRIPTION |CREATED |ALIAS |DOMAIN |LOCATIONS |TAGS |
|---------------|---------------|--------|--------------|-------|-----------------|-----|
|demo-gvc-tag-1 |demo-gvc-tag-1 |Now |mdvcnz97by71w | |aws-eu-central-1 | |
+---------------+---------------+--------+--------------+-------+-----------------+-----+
```
* Add same tag to multiple gvcs
```bash Command theme={null}
cpln gvc tag demo-gvc-tag-1 demo-gvc-tag-2 --tag multiple-gvcs=true --org demo-cpln-organization
```
```text Output theme={null}
+---------------+---------------+--------+--------------+-------+-----------------+---------------------+
|NAME |DESCRIPTION |CREATED |ALIAS |DOMAIN |LOCATIONS |TAGS |
|---------------|---------------|--------|--------------|-------|-----------------|---------------------|
|demo-gvc-tag-1 |demo-gvc-tag-1 |Now |mdvcnz97by71w | |aws-eu-central-1 |multiple-gvcs="true" |
|demo-gvc-tag-2 |demo-gvc-tag-2 |Now |qxbmnc6ssqg14 | |aws-eu-central-1 |multiple-gvcs="true" |
+---------------+---------------+--------+--------------+-------+-----------------+---------------------+
```
* Update same tag on multiple gvcs (after running the example above)
```bash Command theme={null}
cpln gvc tag demo-gvc-tag-1 demo-gvc-tag-2 --tag multiple-gvcs=demo-gvc --org demo-cpln-organization
```
```text Output theme={null}
+---------------+---------------+--------+--------------+-------+-----------------+-------------------------+
|NAME |DESCRIPTION |CREATED |ALIAS |DOMAIN |LOCATIONS |TAGS |
|---------------|---------------|--------|--------------|-------|-----------------|-------------------------|
|demo-gvc-tag-1 |demo-gvc-tag-1 |Now |mdvcnz97by71w | |aws-eu-central-1 |multiple-gvcs="demo-gvc" |
|demo-gvc-tag-2 |demo-gvc-tag-2 |Now |qxbmnc6ssqg14 | |aws-eu-central-1 |multiple-gvcs="demo-gvc" |
+---------------+---------------+--------+--------------+-------+-----------------+-------------------------+
```
* Remove same tag from multiple gvcs (after running the example above)
```bash Command theme={null}
cpln gvc tag demo-gvc-tag-1 demo-gvc-tag-2 --remove multiple-gvcs --org demo-cpln-organization
```
```text Output theme={null}
+---------------+---------------+--------+--------------+-------+-----------------+-----+
|NAME |DESCRIPTION |CREATED |ALIAS |DOMAIN |LOCATIONS |TAGS |
|---------------|---------------|--------|--------------|-------|-----------------|-----|
|demo-gvc-tag-1 |demo-gvc-tag-1 |Now |mdvcnz97by71w | |aws-eu-central-1 | |
|demo-gvc-tag-2 |demo-gvc-tag-2 |Now |qxbmnc6ssqg14 | |aws-eu-central-1 | |
+---------------+---------------+--------+--------------+-------+-----------------+-----+
```
***
#### gvc update
Update properties of the referenced global virtual cloud
**Usage**
```none theme={null}
cpln gvc update --set UPDATE_PROPERTY [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Update Properties:
--set Update the following properties (e.g., --set description="Updated Description"):
description string
tags. string
spec.pullSecretLinks string[]
spec.staticPlacement.locationLinks string[]
spec.tracing.sampling number
spec.tracing.lightstep.endpoint string
spec.tracing.lightstep.credentials string[]
spec.env..value string
Arrays can be appended to, replaced, or removed using the `+=`, `=`, or `-=` operators, respectively.
--unset Unset a property (same paths as --set, e.g., --unset description)
Command options:
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* The `--set` option allows the modification of the following global virtual cloud properties:
* `description`
* Description of the global virtual cloud
* Type: string
* `tags`
* Tags (key=value) associated with the global virtual cloud
* Type: string
* `spec.pullSecretLinks`
* Array of pull secret links belonging to the global virtual cloud
* Type: string\[]
* `spec.domain`
* The domain linked to this global virtual cloud
* Type: string
* `spec.staticPlacement.locationLinks`
* Array of location links belonging to the global virtual cloud
* Type: string\[]
* For the examples below, the initial gvc is configured as:
```
+----------------+----------------+--------+--------------+-------+-----------------+-----+
|NAME |DESCRIPTION |CREATED |ALIAS |DOMAIN |LOCATIONS |TAGS |
|----------------|----------------|--------|--------------|-------|-----------------|-----|
|demo-gvc-update |demo-gvc-update |Now |w0f18k5v8beap | |aws-eu-central-1 | |
+----------------+----------------+--------+--------------+-------+-----------------+-----+
```
* Update a gvc's description
```bash Command theme={null}
cpln gvc update demo-gvc-update --set description="new description" --org demo-cpln-organization
```
```text Output theme={null}
+----------------+----------------+--------+--------------+-------+-----------------+-----+
|NAME |DESCRIPTION |CREATED |ALIAS |DOMAIN |LOCATIONS |TAGS |
|----------------|----------------|--------|--------------|-------|-----------------|-----|
|demo-gvc-update |new description |Now |w0f18k5v8beap | |aws-eu-central-1 | |
+----------------+----------------+--------+--------------+-------+-----------------+-----+
```
* Update a gvc's tag
```bash Command theme={null}
cpln gvc update demo-gvc-update --set tags.demo-key=demo-value --org demo-cpln-organization
```
```text Output theme={null}
+----------------+----------------+--------+--------------+-------+-----------------+----------------------+
|NAME |DESCRIPTION |CREATED |ALIAS |DOMAIN |LOCATIONS |TAGS |
|----------------|----------------|--------|--------------|-------|-----------------|----------------------|
|demo-gvc-update |new description |Now |w0f18k5v8beap | |aws-eu-central-1 |demo-key="demo-value" |
+----------------+----------------+--------+--------------+-------+-----------------+----------------------+
```
***
# helm
Source: https://docs.controlplane.com/cli-reference/commands/helm
cpln helm — Install and manage Helm chart releases deployed on Control Plane.
Manage helm releases on cpln
Refer to the [cpln helm guide](/guides/cpln-helm) for additional details.
```none theme={null}
cpln helm [SUBCOMMAND]
```
```text theme={null}
Commands:
cpln helm get Download extended information of a named release
cpln helm history Fetch release history
cpln helm install [release] [chart] Install a release [aliases: apply]
cpln helm list List releases
cpln helm rollback [revision] Roll back a release to a previous revision
cpln helm template [release] [chart] Generate cpln resources from a template
cpln helm uninstall Uninstall a release [aliases: destroy, del, delete, un]
cpln helm upgrade [release] [chart] Upgrade a release
Options:
--help Show help [boolean]
```
***
#### helm get
Download extended information of a named release
```none theme={null}
cpln helm get [SUBCOMMAND]
```
An empty reference will return all references
```text theme={null}
Commands:
cpln helm get all Download all information for a named release
cpln helm get manifest Download the manifest for a named release
cpln helm get notes Download the notes for a named release
cpln helm get values Download the values file for a named release
Options:
--help Show help [boolean]
```
#### helm get all
Download all information for a named release
**Usage**
```none theme={null}
cpln helm get all [OPTIONS]
```
```text theme={null}
Positionals:
release The release name [string] [required]
Command options:
--revision get the named release with revision [number]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### helm get manifest
Download the manifest for a named release
**Usage**
```none theme={null}
cpln helm get manifest [OPTIONS]
```
```text theme={null}
Positionals:
release The release name [string] [required]
Command options:
--revision get the named release with revision [number]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### helm get notes
Download the notes for a named release
**Usage**
```none theme={null}
cpln helm get notes [OPTIONS]
```
```text theme={null}
Positionals:
release The release name [string] [required]
Command options:
--revision get the named release with revision [number]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### helm get values
Download the values file for a named release
**Usage**
```none theme={null}
cpln helm get values [OPTIONS]
```
```text theme={null}
Positionals:
release The release name [string] [required]
Command options:
--all, -a dump all (computed) values [boolean]
--revision get the named release with revision [number]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### helm history
Fetch release history
**Usage**
```none theme={null}
cpln helm history [OPTIONS]
```
```text theme={null}
Positionals:
release The release name [string] [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
--gvc Override the global virtual cloud. The default global virtual cloud can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### helm install
Install a release
**Usage**
```none theme={null}
cpln helm install [release] [chart] [OPTIONS]
```
```text theme={null}
Positionals:
release The release name [string]
chart Path to chart [string]
Command options:
--wait If set, will wait until all Workloads are in a ready state before marking the release as successful. It will wait for as long as --timeout [boolean]
--timeout The amount of seconds to wait for workloads to be ready before timing out. Works only if the "wait" option is set to true. [number] [default: 300]
--dependency-update Update dependencies if they are missing before installing the chart [boolean]
--description, --desc Add a custom description [string]
--generate-name, -g Generate the name (and omit the NAME parameter) [boolean]
--post-renderer The path to an executable to be used for post rendering. If it exists in $PATH, the binary will be used, otherwise it will try to look for the executable at the given path [string]
--post-renderer-args An argument to the post-renderer (can specify multiple or separate values: --post-renderer-args arg1 --post-renderer-args arg2) (default []) [default: []]
--repo Chart repository url where to locate the requested chart [string]
--set Set values on the command line (can specify multiple or separate values: --set key1=val1 --set key2=val2)
--set-string Set STRING values on the command line (can specify multiple or separate values: --set-string key1=val1 --set-string key2=val2)
--set-file Set values from respective files specified via the command line (can specify multiple or separate values: --set-file key1=path1 --set-file key2=path2)
--values, -f Specify values in a YAML file or a URL (can specify multiple or separate values: --values value1.yaml --values values2.yaml) [string]
--verify Verify the package before using it [boolean]
--version Specify a version constraint for the chart version to use. This constraint can be a specific tag (e.g. 1.1.1) or it may reference a valid range (e.g. ^2.0.0). If this is not specified, the latest version is used [string]
--username Chart repository username where to locate the requested chart [string]
--password Chart repository password where to locate the requested chart [string]
--ca-file Verify certificates of HTTPS-enabled servers using this CA bundle [string]
--cert-file Identify HTTPS client using this SSL certificate file [string]
--key-file Identify HTTPS client using this SSL key file [string]
--insecure-skip-tls-verify Skip tls certificate checks for the chart download [boolean]
--render-subchart-notes If set, render subchart notes along with the parent on install/upgrade [boolean]
--tag Attach tags (e.g., --tag drink=water)
--remove-tag Remove tags (e.g., --remove-tag tagname)
--state-tag Attach tags to the Helm secret (e.g., --state-tag drink=water)
--remove-state-tag Remove tags from the Helm secret (e.g., --remove-state-tag tagname)
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
--gvc Override the global virtual cloud. The default global virtual cloud can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### helm list
List releases
**Usage**
```none theme={null}
cpln helm list [OPTIONS]
```
```text theme={null}
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### helm rollback
Roll back a release to a previous revision
**Usage**
```none theme={null}
cpln helm rollback [revision] [OPTIONS]
```
```text theme={null}
Positionals:
release The release name [string] [required]
revision Revision (version) number. If this argument is omitted or set to 0, it will roll back to the previous release. To see revision numbers, run 'cpln helm history RELEASE'. [string]
Command options:
--cleanup-on-fail allow deletion of new resources created in this rollback when rollback fails [boolean] [default: false]
--wait If set, will wait until all Workloads are in a ready state before marking the release as successful. It will wait for as long as --timeout [boolean]
--timeout The amount of seconds to wait for workloads to be ready before timing out. Works only if the "wait" option is set to true. [number] [default: 300]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
--gvc Override the global virtual cloud. The default global virtual cloud can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### helm template
Generate cpln resources from a template
**Usage**
```none theme={null}
cpln helm template [release] [chart] [OPTIONS]
```
```text theme={null}
Positionals:
release The release name [string]
chart Path to chart [string]
Command options:
--dependency-update Update dependencies if they are missing before installing the chart [boolean]
--description, --desc Add a custom description [string]
--generate-name, -g Generate the name (and omit the NAME parameter) [boolean]
--post-renderer The path to an executable to be used for post rendering. If it exists in $PATH, the binary will be used, otherwise it will try to look for the executable at the given path [string]
--post-renderer-args An argument to the post-renderer (can specify multiple or separate values: --post-renderer-args arg1 --post-renderer-args arg2) (default []) [default: []]
--repo Chart repository url where to locate the requested chart [string]
--set Set values on the command line (can specify multiple or separate values: --set key1=val1 --set key2=val2)
--set-string Set STRING values on the command line (can specify multiple or separate values: --set-string key1=val1 --set-string key2=val2)
--set-file Set values from respective files specified via the command line (can specify multiple or separate values: --set-file key1=path1 --set-file key2=path2)
--values, -f Specify values in a YAML file or a URL (can specify multiple or separate values: --values value1.yaml --values values2.yaml) [string]
--verify Verify the package before using it [boolean]
--version Specify a version constraint for the chart version to use. This constraint can be a specific tag (e.g. 1.1.1) or it may reference a valid range (e.g. ^2.0.0). If this is not specified, the latest version is used [string]
--username Chart repository username where to locate the requested chart [string]
--password Chart repository password where to locate the requested chart [string]
--ca-file Verify certificates of HTTPS-enabled servers using this CA bundle [string]
--cert-file Identify HTTPS client using this SSL certificate file [string]
--key-file Identify HTTPS client using this SSL key file [string]
--insecure-skip-tls-verify Skip tls certificate checks for the chart download [boolean]
--render-subchart-notes If set, render subchart notes along with the parent on install/upgrade [boolean]
--namespace, -n Specify the Kubernetes namespace for exporting in CRD format (applicable only with '--output crd').
--keep, -k Prevent deletion of the corresponding Control Plane resource (only when using '--output crd'). [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
--gvc Override the global virtual cloud. The default global virtual cloud can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### helm uninstall
Uninstall a release
**Usage**
```none theme={null}
cpln helm uninstall [OPTIONS]
```
```text theme={null}
Positionals:
release The release name [string] [required]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k, -k Ignore TLS errors [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
--gvc Override the global virtual cloud. The default global virtual cloud can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### helm upgrade
Upgrade a release
**Usage**
```none theme={null}
cpln helm upgrade [release] [chart] [OPTIONS]
```
```text theme={null}
Positionals:
release The release name [string]
chart Path to chart [string]
Command options:
--wait If set, will wait until all Workloads are in a ready state before marking the release as successful. It will wait for as long as --timeout [boolean]
--timeout The amount of seconds to wait for workloads to be ready before timing out. Works only if the "wait" option is set to true. [number] [default: 300]
--history-limit Maximum number of revisions saved per release. Use 0 for no limit [number] [default: 10]
--install If a release by this name doesn't already exist, run an install [boolean]
--dependency-update Update dependencies if they are missing before installing the chart [boolean]
--description, --desc Add a custom description [string]
--generate-name, -g Generate the name (and omit the NAME parameter) [boolean]
--post-renderer The path to an executable to be used for post rendering. If it exists in $PATH, the binary will be used, otherwise it will try to look for the executable at the given path [string]
--post-renderer-args An argument to the post-renderer (can specify multiple or separate values: --post-renderer-args arg1 --post-renderer-args arg2) (default []) [default: []]
--repo Chart repository url where to locate the requested chart [string]
--set Set values on the command line (can specify multiple or separate values: --set key1=val1 --set key2=val2)
--set-string Set STRING values on the command line (can specify multiple or separate values: --set-string key1=val1 --set-string key2=val2)
--set-file Set values from respective files specified via the command line (can specify multiple or separate values: --set-file key1=path1 --set-file key2=path2)
--values, -f Specify values in a YAML file or a URL (can specify multiple or separate values: --values value1.yaml --values values2.yaml) [string]
--verify Verify the package before using it [boolean]
--version Specify a version constraint for the chart version to use. This constraint can be a specific tag (e.g. 1.1.1) or it may reference a valid range (e.g. ^2.0.0). If this is not specified, the latest version is used [string]
--username Chart repository username where to locate the requested chart [string]
--password Chart repository password where to locate the requested chart [string]
--ca-file Verify certificates of HTTPS-enabled servers using this CA bundle [string]
--cert-file Identify HTTPS client using this SSL certificate file [string]
--key-file Identify HTTPS client using this SSL key file [string]
--insecure-skip-tls-verify Skip tls certificate checks for the chart download [boolean]
--render-subchart-notes If set, render subchart notes along with the parent on install/upgrade [boolean]
--tag Attach tags (e.g., --tag drink=water)
--remove-tag Remove tags (e.g., --remove-tag tagname)
--state-tag Attach tags to the Helm secret (e.g., --state-tag drink=water)
--remove-state-tag Remove tags from the Helm secret (e.g., --remove-state-tag tagname)
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
--gvc Override the global virtual cloud. The default global virtual cloud can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
# identity
Source: https://docs.controlplane.com/cli-reference/commands/identity
cpln identity — Manage identities within a GVC to grant workloads access to cloud resources and secrets.
Manage identities within a global virtual cloud
For a detailed overview, please visit the [identity's](/reference/identity) reference page.
```none theme={null}
cpln identity [SUBCOMMAND]
```
```text theme={null}
Commands:
cpln identity access-report Show the access report for the referenced identity
cpln identity audit [ref] Retrieve audit trail events for the referenced identity
cpln identity create Create a new identity
cpln identity delete Delete one or more referenced identities
cpln identity edit Edit the referenced identity, as YAML, within an editor
cpln identity eventlog Show the event log of the referenced identity [aliases: log]
cpln identity get [ref...] Retrieve one or more referenced identities
cpln identity patch Update the referenced identity's metadata using an input file
cpln identity permissions Show the grantable permissions for an identity object type
cpln identity query Find all the identities based on the given query
cpln identity tag Manage the tags belonging to one or more referenced identities
cpln identity update Update properties of the referenced identity
Options:
--help Show help [boolean]
```
***
#### identity access-report
Show the access report for the referenced identity
**Usage**
```none theme={null}
cpln identity access-report [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
--gvc Override the global virtual cloud. The default global virtual cloud can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln identity access-report demo-identity --org demo-cpln-organization --gvc demo-gvc-identity
```
```text Output theme={null}
+-----------+--------------------------------------------------------+--------+
|PERMISSION |PRINCIPAL |GRANTED |
|-----------|--------------------------------------------------------|--------|
|create |/org/demo-cpln-organization/group/superusers |manage |
|create |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|delete |/org/demo-cpln-organization/group/superusers |manage |
|delete |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|edit |/org/demo-cpln-organization/group/superusers |manage |
|edit |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|manage |/org/demo-cpln-organization/group/superusers |manage |
|manage |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|use |/org/demo-cpln-organization/group/superusers |manage |
|use |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|view |/org/demo-cpln-organization/group/superusers |manage |
|view |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|view |/org/demo-cpln-organization/group/viewers |view |
+-----------+--------------------------------------------------------+--------+
```
***
#### identity audit
Retrieve audit trail events for the referenced identity
**Usage**
```none theme={null}
cpln identity audit [ref] [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource.
Command options:
--subject Filter by subject (serviceaccount name or user email) [string]
--context Audit context name (the 'cpln' context displays Control Plane actions) [string] [default: "cpln"]
--since Relative lookback window from now (e.g., 1h, 24h, 7d). Mutually exclusive with --from/--to [string] [default: "7d"]
--from Start time for audit events (ISO 8601 format or relative duration, e.g., 2025-10-23T07:00:00Z, 7d, 1h). Cannot be used with --since [string]
--to End time for audit events (ISO 8601 format or relative duration, e.g., 2025-10-23T07:00:00Z, 1d, 30m) [string]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
--gvc Override the global virtual cloud. The default global virtual cloud can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### identity create
Create a new identity
**Usage**
```none theme={null}
cpln identity create --name IDENTITY_NAME [OPTIONS]
```
```text theme={null}
Command options:
--name Name of the new identity [required]
--description, --desc Optional description, defaults to the name if not set
--tag Attach tags (e.g., --tag drink=water)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
--gvc Override the global virtual cloud. The default global virtual cloud can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln identity create --name demo-identity --desc demo-identity --tag drink=water --org demo-cpln-organization --gvc demo-gvc-identity
```
```text Output theme={null}
+--------------+--------------+------------------+-------------------------------+--------+----------+--------------+
|NAME |DESCRIPTION |GVC |LOCAL NAME |CREATED |PROVIDERS |TAGS |
|--------------|--------------|------------------|-------------------------------|--------|----------|--------------|
|demo-identity |demo-identity |demo-gvc-identity |cpln-demo-cpln-organi-3h7v8edk |Now | |drink="water" |
+--------------+--------------+------------------+-------------------------------+--------+----------+--------------+
```
***
#### identity delete
Delete one or more referenced identities
**Usage**
```none theme={null}
cpln identity delete [OPTIONS]
```
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [required] [default: []]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
--gvc Override the global virtual cloud. The default global virtual cloud can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln identity delete demo-identity --org demo-cpln-organization --gvc demo-gvc-identity
```
```text Output theme={null}
If the delete was successful, a new command prompt will be shown.
```
***
#### identity edit
Edit the referenced identity, as YAML, within an editor
**Usage**
```none theme={null}
cpln identity edit [OPTIONS]
```
The default editor can be set by using the EDITOR environment variable.
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--replace, -r Replace instead of patch/merge [boolean] [default: false]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
--gvc Override the global virtual cloud. The default global virtual cloud can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln identity edit demo-identity --org demo-cpln-organization --gvc demo-gvc-identity
```
```text Output theme={null}
Your default editor will be launched.
Once any modifications are saved, the updates will be sent to the API.
```
***
#### identity eventlog
Show the event log of the referenced identity
**Usage**
```none theme={null}
cpln identity eventlog [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
--gvc Override the global virtual cloud. The default global virtual cloud can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln identity eventlog demo-identity --org demo-cpln-organization --gvc demo-gvc-identity
```
```text Output theme={null}
The event log for the referenced identity will be shown.
```
***
#### identity get
Retrieve one or more referenced identities
**Usage**
```none theme={null}
cpln identity get [ref...] [OPTIONS]
```
An empty reference will return all references
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [default: []]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
--gvc Override the global virtual cloud. The default global virtual cloud can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Command options:
--all-gvcs Show identities from all gvcs in the org [boolean]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Get all identities
```bash Command theme={null}
cpln identity get --org demo-cpln-organization --gvc demo-gvc-identity
```
```text Output theme={null}
+--------------------+--------------------+------------------+-------------------------------+--------------+----------+--------------+
|NAME |DESCRIPTION |GVC |LOCAL NAME |CREATED |PROVIDERS |TAGS |
|--------------------|--------------------|------------------|-------------------------------|--------------|----------|--------------|
|demo-identity |demo-identity |demo-gvc-identity |cpln-demo-cpln-organi-3h7v8edk |2 minutes ago | |drink="water" |
|demo-identity-get-2 |demo-identity-get-2 |demo-gvc-identity |cpln-demo-cpln-organi-1k08e34y |Now | | |
|demo-identity-get-1 |demo-identity-get-1 |demo-gvc-identity |cpln-demo-cpln-organi-e2j3eqrz |Now | | |
+--------------------+--------------------+------------------+-------------------------------+--------------+----------+--------------+
```
* Get one identity
```bash Command theme={null}
cpln identity get demo-identity-get-1 --org demo-cpln-organization --gvc demo-gvc-identity
```
```text Output theme={null}
+--------------------+--------------------+------------------+-------------------------------+--------+----------+-----+
|NAME |DESCRIPTION |GVC |LOCAL NAME |CREATED |PROVIDERS |TAGS |
|--------------------|--------------------|------------------|-------------------------------|--------|----------|-----|
|demo-identity-get-1 |demo-identity-get-1 |demo-gvc-identity |cpln-demo-cpln-organi-e2j3eqrz |Now | | |
+--------------------+--------------------+------------------+-------------------------------+--------+----------+-----+
```
* Get multiple identities
```bash Command theme={null}
cpln identity get demo-identity-get-1 demo-identity-get-2 --org demo-cpln-organization --gvc demo-gvc-identity
```
```text Output theme={null}
+--------------------+--------------------+------------------+-------------------------------+--------+----------+-----+
|NAME |DESCRIPTION |GVC |LOCAL NAME |CREATED |PROVIDERS |TAGS |
|--------------------|--------------------|------------------|-------------------------------|--------|----------|-----|
|demo-identity-get-1 |demo-identity-get-1 |demo-gvc-identity |cpln-demo-cpln-organi-e2j3eqrz |Now | | |
|demo-identity-get-2 |demo-identity-get-2 |demo-gvc-identity |cpln-demo-cpln-organi-1k08e34y |Now | | |
+--------------------+--------------------+------------------+-------------------------------+--------+----------+-----+
```
***
#### identity patch
Update the referenced identity's metadata using an input file
**Usage**
```none theme={null}
cpln identity patch --file FILE_NAME [OPTIONS]
```
Running this command with the option **`--file -`** sets the input to stdin. The input is required to be a valid JSON or YAML string (e.g., `{"description": "My new description"}` or `description: My new description`). To complete the update, press Control-D (or Control-Z if you are using Windows).
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--file, -f File to load the patch from. Use `--file -` to enable input from stdin. [required]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
--gvc Override the global virtual cloud. The default global virtual cloud can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln identity patch demo-identity --file update.json --org demo-cpln-organization --gvc demo-gvc-identity
```
```text Output theme={null}
The changes within the JSON file will be performed against the referenced identity.
```
***
#### identity permissions
Show the grantable permissions for an identity object type
**Usage**
```none theme={null}
cpln identity permissions [OPTIONS]
```
```text theme={null}
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
--gvc Override the global virtual cloud. The default global virtual cloud can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln identity permissions --org demo-cpln-organization --gvc demo-gvc-identity
```
```text Output theme={null}
+-------+-----------------------------------------+----------------------------------------+
|NAME |DESCRIPTION |IMPLIES |
|-------|-----------------------------------------|----------------------------------------|
|create |Create new identities | |
|delete |Delete existing identities | |
|edit |Modify existing identities |view |
|manage |Full access |create, delete, edit, manage, use, view |
|use |Refer to this identity from other ent... |view |
|view |Read-only access | |
+-------+-----------------------------------------+----------------------------------------+
```
***
#### identity query
Find all the identities based on the given query
**Usage**
```none theme={null}
cpln identity query QUERY_OPTIONS [OPTIONS]
```
```text theme={null}
Query options:
--match Query filter type [choices: "all", "none", "any"] [default: "all"]
--property, --prop Property to query
--tag Tag to query
--rel Relation to query
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
--gvc Override the global virtual cloud. The default global virtual cloud can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
Use the `--match` option to display **all**, **none**, or **any** of the results based on a given property or tag
* Search for an identity based on the name property
```bash Command theme={null}
cpln identity query --match any --prop name=demo-identity --org demo-cpln-organization --gvc demo-gvc-identity
```
```text Output theme={null}
+--------------------+--------------------+------------------+-------------------------------+--------------+----------+--------------+
|NAME |DESCRIPTION |GVC |LOCAL NAME |CREATED |PROVIDERS |TAGS |
|--------------------|--------------------|------------------|-------------------------------|--------------|----------|--------------|
|demo-identity |demo-identity |demo-gvc-identity |cpln-demo-cpln-organi-3h7v8edk |2 minutes ago | |drink="water" |
|demo-identity-get-2 |demo-identity-get-2 |demo-gvc-identity |cpln-demo-cpln-organi-1k08e34y |Now | | |
|demo-identity-get-1 |demo-identity-get-1 |demo-gvc-identity |cpln-demo-cpln-organi-e2j3eqrz |Now | | |
+--------------------+--------------------+------------------+-------------------------------+--------------+----------+--------------+
```
* Search for an identity based on the description property
```bash Command theme={null}
cpln identity query --match any --prop description="demo-identity" --org demo-cpln-organization --gvc demo-gvc-identity
```
```text Output theme={null}
+--------------------+--------------------+------------------+-------------------------------+--------------+----------+--------------+
|NAME |DESCRIPTION |GVC |LOCAL NAME |CREATED |PROVIDERS |TAGS |
|--------------------|--------------------|------------------|-------------------------------|--------------|----------|--------------|
|demo-identity |demo-identity |demo-gvc-identity |cpln-demo-cpln-organi-3h7v8edk |2 minutes ago | |drink="water" |
|demo-identity-get-2 |demo-identity-get-2 |demo-gvc-identity |cpln-demo-cpln-organi-1k08e34y |Now | | |
|demo-identity-get-1 |demo-identity-get-1 |demo-gvc-identity |cpln-demo-cpln-organi-e2j3eqrz |Now | | |
+--------------------+--------------------+------------------+-------------------------------+--------------+----------+--------------+
```
* Search for an identity based on a tag
```bash Command theme={null}
cpln identity query --match any --tag drink=water --org demo-cpln-organization --gvc demo-gvc-identity
```
```text Output theme={null}
+--------------------+--------------------+------------------+-------------------------------+--------------+----------+--------------+
|NAME |DESCRIPTION |GVC |LOCAL NAME |CREATED |PROVIDERS |TAGS |
|--------------------|--------------------|------------------|-------------------------------|--------------|----------|--------------|
|demo-identity |demo-identity |demo-gvc-identity |cpln-demo-cpln-organi-3h7v8edk |2 minutes ago | |drink="water" |
|demo-identity-get-2 |demo-identity-get-2 |demo-gvc-identity |cpln-demo-cpln-organi-1k08e34y |Now | | |
|demo-identity-get-1 |demo-identity-get-1 |demo-gvc-identity |cpln-demo-cpln-organi-e2j3eqrz |Now | | |
+--------------------+--------------------+------------------+-------------------------------+--------------+----------+--------------+
```
* Search for an identity based on a property and tag
```bash Command theme={null}
cpln identity query --match any --prop description="demo-identity" --tag drink=water --org demo-cpln-organization --gvc demo-gvc-identity
```
```text Output theme={null}
+--------------------+--------------------+------------------+-------------------------------+--------------+----------+--------------+
|NAME |DESCRIPTION |GVC |LOCAL NAME |CREATED |PROVIDERS |TAGS |
|--------------------|--------------------|------------------|-------------------------------|--------------|----------|--------------|
|demo-identity |demo-identity |demo-gvc-identity |cpln-demo-cpln-organi-3h7v8edk |2 minutes ago | |drink="water" |
|demo-identity-get-2 |demo-identity-get-2 |demo-gvc-identity |cpln-demo-cpln-organi-1k08e34y |Now | | |
|demo-identity-get-1 |demo-identity-get-1 |demo-gvc-identity |cpln-demo-cpln-organi-e2j3eqrz |Now | | |
+--------------------+--------------------+------------------+-------------------------------+--------------+----------+--------------+
```
***
#### identity tag
Manage the tags belonging to one or more referenced identities
**Usage**
```none theme={null}
cpln identity tag --tag KEY=VALUE [OPTIONS]
```
Built-in tags, which begin with cpln/\*, can't be modified.
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [required] [default: []]
Command options:
--tag Attach tags (e.g., --tag drink=water)
--remove-tag Remove tags (e.g., --remove-tag tagname)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
--gvc Override the global virtual cloud. The default global virtual cloud can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Add a tag
```bash Command theme={null}
cpln identity tag demo-identity --tag drink=water --org demo-cpln-organization --gvc demo-gvc-identity
```
```text Output theme={null}
+--------------+--------------+------------------+-------------------------------+--------------+----------+--------------+
|NAME |DESCRIPTION |GVC |LOCAL NAME |CREATED |PROVIDERS |TAGS |
|--------------|--------------|------------------|-------------------------------|--------------|----------|--------------|
|demo-identity |demo-identity |demo-gvc-identity |cpln-demo-cpln-organi-3h7v8edk |2 minutes ago | |drink="water" |
+--------------+--------------+------------------+-------------------------------+--------------+----------+--------------+
```
* Update same tag (after running the example above)
```bash Command theme={null}
cpln identity tag demo-identity --tag drink=coffee --org demo-cpln-organization --gvc demo-gvc-identity
```
```text Output theme={null}
+--------------+--------------+------------------+-------------------------------+--------------+----------+---------------+
|NAME |DESCRIPTION |GVC |LOCAL NAME |CREATED |PROVIDERS |TAGS |
|--------------|--------------|------------------|-------------------------------|--------------|----------|---------------|
|demo-identity |demo-identity |demo-gvc-identity |cpln-demo-cpln-organi-3h7v8edk |2 minutes ago | |drink="coffee" |
+--------------+--------------+------------------+-------------------------------+--------------+----------+---------------+
```
* Remove tag (after running the example above)
```bash Command theme={null}
cpln identity tag demo-identity --remove drink --org demo-cpln-organization --gvc demo-gvc-identity
```
```text Output theme={null}
+--------------+--------------+------------------+-------------------------------+--------------+----------+-----+
|NAME |DESCRIPTION |GVC |LOCAL NAME |CREATED |PROVIDERS |TAGS |
|--------------|--------------|------------------|-------------------------------|--------------|----------|-----|
|demo-identity |demo-identity |demo-gvc-identity |cpln-demo-cpln-organi-3h7v8edk |2 minutes ago | | |
+--------------+--------------+------------------+-------------------------------+--------------+----------+-----+
```
***
#### identity update
Update properties of the referenced identity
**Usage**
```none theme={null}
cpln identity update --set UPDATE_PROPERTY [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Update Properties:
--set Update the following properties (e.g., --set description="Updated Description"):
description string
tags. string
--unset Unset a property (same paths as --set, e.g., --unset description)
Command options:
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
--gvc Override the global virtual cloud. The default global virtual cloud can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* The `--set` option allows the modification of the following identity properties:
* `description`
* Description of the identity
* Type: string
* `tags`
* Tags (key=value) associated with the identity
* Type: string
* For the examples below, the initial identity is configured as:
```
+---------------------+---------------------+------------------+-------------------------------+--------+----------+-----+
|NAME |DESCRIPTION |GVC |LOCAL NAME |CREATED |PROVIDERS |TAGS |
|---------------------|---------------------|------------------|-------------------------------|--------|----------|-----|
|demo-identity-update |demo-identity-update |demo-gvc-identity |cpln-demo-cpln-organi-v6a6b38s |Now | | |
+---------------------+---------------------+------------------+-------------------------------+--------+----------+-----+
```
* Update an identity's description
```bash Command theme={null}
cpln identity update demo-identity-update --set description="new description" --org demo-cpln-organization --gvc demo-gvc-identity
```
```text Output theme={null}
+---------------------+----------------+------------------+-------------------------------+--------+----------+-----+
|NAME |DESCRIPTION |GVC |LOCAL NAME |CREATED |PROVIDERS |TAGS |
|---------------------|----------------|------------------|-------------------------------|--------|----------|-----|
|demo-identity-update |new description |demo-gvc-identity |cpln-demo-cpln-organi-v6a6b38s |Now | | |
+---------------------+----------------+------------------+-------------------------------+--------+----------+-----+
```
* Update an identity's tag
```bash Command theme={null}
cpln identity update demo-identity-update --set tags.demo-key=demo-value --org demo-cpln-organization --gvc demo-gvc-identity
```
```text Output theme={null}
+---------------------+----------------+------------------+-------------------------------+--------+----------+----------------------+
|NAME |DESCRIPTION |GVC |LOCAL NAME |CREATED |PROVIDERS |TAGS |
|---------------------|----------------|------------------|-------------------------------|--------|----------|----------------------|
|demo-identity-update |new description |demo-gvc-identity |cpln-demo-cpln-organi-v6a6b38s |Now | |demo-key="demo-value" |
+---------------------+----------------+------------------+-------------------------------+--------+----------+----------------------+
```
***
# image
Source: https://docs.controlplane.com/cli-reference/commands/image
cpln image — Build, push and manage container images to Control Plane and configure Docker registry authentication.
Manage images and configure Docker login
For a detailed overview, please visit the [image's](/reference/image) reference page.
```none theme={null}
cpln image [SUBCOMMAND]
```
```text theme={null}
Commands:
cpln image access-report Show the access report for the referenced image
cpln image audit [ref] Retrieve audit trail events for the referenced image
cpln image build Build and containerize an application into an image. If using buildpacks, everything after -- will be passed down to the pack executable.
cpln image copy Copy an image from one org to another. This will make sure that docker-login has been run against the source and destination org, then will pull, tag and push the image to the destination org.
cpln image delete Delete one or more referenced images
cpln image docker-login Perform a Docker login to the organization's private registry
cpln image edit Edit the referenced image, as YAML, within an editor
cpln image get [ref...] Retrieve one or more referenced images
cpln image patch Update the referenced image's metadata using an input file
cpln image permissions Show the grantable permissions for an image object type
cpln image query Find all the images based on the given query
cpln image tag Manage the tags belonging to one or more referenced images
Options:
--help Show help [boolean]
```
***
#### image access-report
Show the access report for the referenced image
**Usage**
```none theme={null}
cpln image access-report [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln image access-report demo-image:1 --org demo-cpln-organization
```
```text Output theme={null}
+-----------+--------------------------------------------------------+--------+
|PERMISSION |PRINCIPAL |GRANTED |
|-----------|--------------------------------------------------------|--------|
|create |/org/demo-cpln-organization/group/superusers |manage |
|create |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|delete |/org/demo-cpln-organization/group/superusers |manage |
|delete |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|edit |/org/demo-cpln-organization/group/superusers |manage |
|edit |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|manage |/org/demo-cpln-organization/group/superusers |manage |
|manage |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|pull |/org/demo-cpln-organization/group/superusers |manage |
|pull |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|view |/org/demo-cpln-organization/group/viewers |view |
|view |/org/demo-cpln-organization/group/superusers |manage |
|view |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
+-----------+--------------------------------------------------------+--------+
```
***
#### image audit
Retrieve audit trail events for the referenced image
**Usage**
```none theme={null}
cpln image audit [ref] [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource.
Command options:
--subject Filter by subject (serviceaccount name or user email) [string]
--context Audit context name (the 'cpln' context displays Control Plane actions) [string] [default: "cpln"]
--since Relative lookback window from now (e.g., 1h, 24h, 7d). Mutually exclusive with --from/--to [string] [default: "7d"]
--from Start time for audit events (ISO 8601 format or relative duration, e.g., 2025-10-23T07:00:00Z, 7d, 1h). Cannot be used with --since [string]
--to End time for audit events (ISO 8601 format or relative duration, e.g., 2025-10-23T07:00:00Z, 1d, 30m) [string]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### image build
Build and containerize an application into an image. If using buildpacks, everything after -- will be passed down to the pack executable.
**Usage**
```none theme={null}
cpln image build --name IMAGE_NAME:TAG [OPTIONS]
```
To push an image from a local build, the [docker-credential-cpln](/cli-reference/installation#binary) executable must be installed if the CLI was not installed using npm. A remote build pushes the image itself and does not need it.
The option `--builder` accepts any trusted [buildpacks](https://buildpacks.io/docs/) builder. The default builder is `heroku/builder:24_linux-amd64`.
[Docker](https://www.docker.com/) is required for local builds. Pass `--remote` to build remotely: the `--dir` folder — or a GitHub or GitLab repository given with `--repo` — is built by Control Plane and the image is pushed to the org's private registry. See [Remote builds](/cli-reference/get-started/images#build-options) for details.
```text theme={null}
Command options:
--name, -n Name and tag for the image [string] [required]
--dockerfile Path to Dockerfile (e.g.: PATH/Dockerfile). If set, the builder option is not used
--builder, -B Builder image to use (e.g., heroku/builder:24_linux-amd64, gcr.io/buildpacks/builder:google-22, paketobuildpacks/builder-jammy-full) [default: "heroku/builder:24_linux-amd64"]
--buildpack, -b Buildpack to use. One of: buildpack ID and version (@), path to a buildpack directory (not supported on Windows), path/URL to a .tar or .tgz file, or a packaged buildpack image (/[:]). Repeat for each buildpack in order, or supply once by comma-separated list
--env, -e Build-time environment variable in the form 'VAR=VALUE' or 'VAR' (value taken from current environment). Repeat for each env var. NOTE: These are NOT available at image runtime.
--env-file Build-time environment variables file. One variable per line, of the form 'VAR=VALUE' or 'VAR'. NOTE: These are NOT available at image runtime.
--build-arg Set build-time variables (format: 'NAME=value', or 'NAME' to take the value from the environment). Repeat for each arg. NOTE: Not used by buildpack builds.
--secret Secret to expose to the build in the form 'id=[,src=]'. src takes a local file path, or cpln://secret/[.] for a secret in your org. Local sources (a file path, an env variable) don't work with --remote. Repeat for each secret. Requires a Dockerfile build.
--trust-builder Trust the provided builder. All lifecycle phases will be run in a single container for better performance. [boolean] [default: false]
--trust-extra-buildpacks Trust buildpacks that are provided in addition to the buildpacks on the builder [boolean] [default: false]
--dir Directory containing the application [string] [default: "."]
--no-cache Builds the image without using any cached layers. [boolean] [default: false]
--push Push the new image to the org's private registry [boolean] [default: false]
--platform, -p Target platform(s) for the build (e.g., linux/amd64, linux/amd64,linux/arm64) [default: "linux/amd64"]
--remote Build on the Control Plane build service instead of local Docker, then push the image to the org's private registry. Builds the --dir folder, or a git repository when --repo is set. The folder context honors .dockerignore, or .gitignore when no .dockerignore is present. [boolean] [default: false]
--repo HTTPS URL of a GitHub or GitLab repository to build instead of a local folder. Requires --remote; private repositories build through the org's git connection, which the CLI sets up on first use. [string]
--branch Branch to build. Requires --repo, and defaults to the repository's default branch. [string]
--detach Start the build and return immediately instead of waiting for it to finish. Requires --remote. [boolean] [default: false]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln image build --name demo-image:1 --push --org demo-cpln-organization -- --env CPLN_IMAGE_BUILD=true
```
```bash Remote Build theme={null}
# Build the current folder remotely, no local Docker required
cpln image build --name demo-image:1 --remote --org demo-cpln-organization
# Build a git repository instead of a local folder
cpln image build --name demo-image:1 --remote --repo https://github.com/demo-org/demo-app --branch main --org demo-cpln-organization
# Start the build and return without waiting for it to finish
cpln image build --name demo-image:1 --remote --detach --org demo-cpln-organization
```
```text Output theme={null}
If the build was successful, the newly generated container image will be pushed to the referenced org's private registry.
If using buildpacks, every flag after the -- is passed to the pack binary.
Below are the available flags from the pack build command.
Pack Build uses Cloud Native Buildpacks to create a runnable app image from source code.
Pack Build requires an image name, which will be generated from the source code. Build defaults to the current directory, but you can use \`--path\` to specify another source code directory. Build requires a \`builder\`, which can either be provided directly to build using \`--builder\`, or can be set using the \`set-default-builder\` command. For more on how to use \`pack build\`, see: https://buildpacks.io/docs/app-developer-guide/build-an-app/.
Usage:
pack build [flags]
Examples:
pack build test_img --path apps/test-app --builder cnbs/sample-builder:bionic
Flags:
-B, --builder string Builder image
-b, --buildpack strings Buildpack to use. One of:
a buildpack by id and version in the form of '@',
path to a buildpack directory (not supported on Windows),
path/URL to a buildpack .tar or .tgz file, or
a packaged buildpack image name in the form of '/[:]'
Repeat for each buildpack in order, or supply once by comma-separated list
-r, --buildpack-registry string Buildpack Registry by name
--cache-image string Cache build layers in remote registry. Requires --publish
--clear-cache Clear image's associated cache before building
-D, --default-process string Set the default process type. (default "web")
-d, --descriptor string Path to the project descriptor file
--docker-host string Address to docker daemon that will be exposed to the build container.
If not set (or set to empty string) the standard socket location will be used.
Special value 'inherit' may be used in which case DOCKER_HOST environment variable will be used.
This option may set DOCKER_HOST environment variable for the build container if needed.
-e, --env stringArray Build-time environment variable, in the form 'VAR=VALUE' or 'VAR'.
When using latter value-less form, value will be taken from current
environment at the time this command is executed.
This flag may be specified multiple times and will override
individual values defined by --env-file.
Repeat for each env in order (comma-separated lists not accepted)
NOTE: These are NOT available at image runtime.
--env-file stringArray Build-time environment variables file
One variable per line, of the form 'VAR=VALUE' or 'VAR'
When using latter value-less form, value will be taken from current
environment at the time this command is executed
NOTE: These are NOT available at image runtime."
--gid int Override GID of user's group in the stack's build and run images. The provided value must be a positive number
-h, --help Help for 'build'
--lifecycle-image string Custom lifecycle image to use for analysis, restore, and export when builder is untrusted.
--network string Connect detect and build containers to network
-p, --path string Path to app dir or zip-formatted file (defaults to current working directory)
--previous-image string Set previous image to a particular tag reference, digest reference, or (when performing a daemon build) image ID
--publish Publish to registry
--pull-policy string Pull policy to use. Accepted values are always, never, and if-not-present. (default "always")
--run-image string Run image (defaults to default stack's run image)
-t, --tag strings Additional tags to push the output image to.
Tags should be in the format 'image:tag' or 'repository/image:tag'.
Repeat for each tag in order, or supply once by comma-separated list
--trust-builder Trust the provided builder
All lifecycle phases will be run in a single container (if supported by the lifecycle).
--volume stringArray Mount host volume into the build container, in the form ':[:]'.
- 'host path': Name of the volume or absolute directory path to mount.
- 'target path': The path where the file or directory is available in the container.
- 'options' (default "ro"): An optional comma separated list of mount options.
- "ro", volume contents are read-only.
- "rw", volume contents are readable and writeable.
- "volume-opt==", can be specified more than once, takes a key-value pair consisting of the option name and its value.
Repeat for each volume in order (comma-separated lists not accepted)
--workspace string Location at which to mount the app dir in the build image
Global Flags:
--no-color Disable color output
-q, --quiet Show less output
--timestamps Enable timestamps in output
-v, --verbose Show more output
```
***
#### image copy
Copy an image from one org to another. This will make sure that docker-login has been run against the source and destination org, then will pull, tag and push the image to the destination org.
**Usage**
```none theme={null}
cpln image copy --to-name IMAGE:TAG --to-org TARGET_ORG --to-profile TARGET_ORG_PROFILE [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--to-name Name and tag for the image
--to-org Target org to copy the image to
--to-profile Profile to use for accessing the "to-org" argument
--cleanup Cleans up the pulled and retagged image [boolean] [default: false]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
--gvc Override the global virtual cloud. The default global virtual cloud can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Copying image between orgs within the same profile
```bash theme={null}
cpln image copy SOURCE_IMAGE:TAG --to-name TARGET_IMAGE:NEW_TAG --to-org TARGET_ORG
```
The profile service principal (user/service account) must have the proper permissions to pull/push images in the current and target org.
* Copying image between orgs using different profiles
```bash theme={null}
cpln image copy SOURCE_IMAGE:TAG --to-name TARGET_IMAGE:NEW_TAG --to-org TARGET_ORG --to-profile TARGET_ORG_PROFILE
```
This command will copy an image from the current org to the target org.
The current profile service principal (user/service account) must have the proper permissions to pull images in the current org (default profile).
The referenced --to-profile service principal (user/service account) must have the proper permissions to push images to the target org.
This command allows the copying of images between different orgs using user or service account profiles.
***
#### image delete
Delete one or more referenced images
**Usage**
```none theme={null}
cpln image delete [OPTIONS]
```
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [required] [default: []]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln image delete demo-image:1 --org demo-cpln-organization
```
```text Output theme={null}
If the delete was successful, a new command prompt will be shown.
```
***
#### image docker-login
Perform a Docker login to the organization's private registry
**Usage**
```none theme={null}
cpln image docker-login [OPTIONS]
```
```text theme={null}
Command options:
--ignore-output Ignore the output of this command.
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln image docker-login demo-image:1 --org demo-cpln-organization
```
```text Output theme={null}
If the login was successful, the local Docker instance will have the abiltity to login to the referenced organization's private registry.
```
***
#### image edit
Edit the referenced image, as YAML, within an editor
**Usage**
```none theme={null}
cpln image edit [OPTIONS]
```
The default editor can be set by using the EDITOR environment variable.
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--replace, -r Replace instead of patch/merge [boolean] [default: false]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln image edit demo-image:1 --org demo-cpln-organization
```
```text Output theme={null}
Your default editor will be launched.
Once any modifications are saved, the updates will be sent to the API.
```
***
#### image get
Retrieve one or more referenced images
**Usage**
```none theme={null}
cpln image get [ref...] [OPTIONS]
```
An empty reference will return all references
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [default: []]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Get all images
```bash Command theme={null}
cpln image get --org demo-cpln-organization
```
```text Output theme={null}
+-------------+----------------------------------------------------------+-----------------+------------+----------------------------+
|NAME |PULL |DIGEST |CREATED |TAGS |
|-------------|----------------------------------------------------------|-----------------|------------|----------------------------|
|demo-image:1 |demo-cpln-organization.registry.test.cpln.io/demo-image:1 |sha256:3fe719... |2 years ago | |
|demo-image:2 |demo-cpln-organization.registry.test.cpln.io/demo-image:2 |sha256:3fe719... |5 years ago |description="Demo Image #1" |
+-------------+----------------------------------------------------------+-----------------+------------+----------------------------+
```
* Get one image
```bash Command theme={null}
cpln image get demo-image:1 --org demo-cpln-organization
```
```text Output theme={null}
+-------------+----------------------------------------------------------+-----------------+------------+-----+
|NAME |PULL |DIGEST |CREATED |TAGS |
|-------------|----------------------------------------------------------|-----------------|------------|-----|
|demo-image:1 |demo-cpln-organization.registry.test.cpln.io/demo-image:1 |sha256:3fe719... |2 years ago | |
+-------------+----------------------------------------------------------+-----------------+------------+-----+
```
* Get multiple images
```bash Command theme={null}
cpln image get demo-image:1 demo-image:2 --org demo-cpln-organization
```
```text Output theme={null}
+-------------+----------------------------------------------------------+-----------------+------------+----------------------------+
|NAME |PULL |DIGEST |CREATED |TAGS |
|-------------|----------------------------------------------------------|-----------------|------------|----------------------------|
|demo-image:1 |demo-cpln-organization.registry.test.cpln.io/demo-image:1 |sha256:3fe719... |2 years ago | |
|demo-image:2 |demo-cpln-organization.registry.test.cpln.io/demo-image:2 |sha256:3fe719... |5 years ago |description="Demo Image #1" |
+-------------+----------------------------------------------------------+-----------------+------------+----------------------------+
```
***
#### image patch
Update the referenced image's metadata using an input file
**Usage**
```none theme={null}
cpln image patch --file FILE_NAME [OPTIONS]
```
Running this command with the option **`--file -`** sets the input to stdin. The input is required to be a valid JSON or YAML string (e.g., `{"description": "My new description"}` or `description: My new description`). To complete the update, press Control-D (or Control-Z if you are using Windows).
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--file, -f File to load the patch from. Use `--file -` to enable input from stdin. [required]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln image patch demo-image:1 --file update.json --org demo-cpln-organization
```
```text Output theme={null}
The changes within the JSON file will be performed against the referenced image.
```
***
#### image permissions
Show the grantable permissions for an image object type
**Usage**
```none theme={null}
cpln image permissions [OPTIONS]
```
```text theme={null}
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln image permissions --org demo-cpln-organization
```
```text Output theme={null}
+-------+-----------------------------------------+-----------------------------------------+
|NAME |DESCRIPTION |IMPLIES |
|-------|-----------------------------------------|-----------------------------------------|
|create |Create new image. You can push if you... |pull |
|delete |Delete | |
|edit |Modify existing image (only tags can ... |view |
|manage |Full access |create, delete, edit, manage, pull, view |
|pull |Image can be pulled |view |
|view |Read-only access | |
+-------+-----------------------------------------+-----------------------------------------+
```
***
#### image query
Find all the images based on the given query
**Usage**
```none theme={null}
cpln image query QUERY_OPTIONS [OPTIONS]
```
```text theme={null}
Query options:
--match Query filter type [choices: "all", "none", "any"] [default: "all"]
--property, --prop Property to query
--tag Tag to query
--rel Relation to query
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
Use the `--match` option to display **all**, **none**, or **any** of the results based on a given property or tag
* Search for an image based on the name property
```bash Command theme={null}
cpln image query --match any --prop name=demo-image:1 --org demo-cpln-organization
```
```text Output theme={null}
+-------------+----------------------------------------------------------+-----------------+------------+-----+
|NAME |PULL |DIGEST |CREATED |TAGS |
|-------------|----------------------------------------------------------|-----------------|------------|-----|
|demo-image:1 |demo-cpln-organization.registry.test.cpln.io/demo-image:1 |sha256:3fe719... |2 years ago | |
+-------------+----------------------------------------------------------+-----------------+------------+-----+
```
* Search for an image based on the description property
```bash Command theme={null}
cpln image query --match any --prop tag="2" --org demo-cpln-organization
```
```text Output theme={null}
+-------------+----------------------------------------------------------+-----------------+------------+----------------------------+
|NAME |PULL |DIGEST |CREATED |TAGS |
|-------------|----------------------------------------------------------|-----------------|------------|----------------------------|
|demo-image:2 |demo-cpln-organization.registry.test.cpln.io/demo-image:2 |sha256:3fe719... |5 years ago |description="Demo Image #1" |
+-------------+----------------------------------------------------------+-----------------+------------+----------------------------+
```
* Search for an image based on a tag
```bash Command theme={null}
cpln image query --match any --tag description="Demo Image #1" --org demo-cpln-organization
```
```text Output theme={null}
+-------------+----------------------------------------------------------+-----------------+------------+----------------------------+
|NAME |PULL |DIGEST |CREATED |TAGS |
|-------------|----------------------------------------------------------|-----------------|------------|----------------------------|
|demo-image:2 |demo-cpln-organization.registry.test.cpln.io/demo-image:2 |sha256:3fe719... |5 years ago |description="Demo Image #1" |
+-------------+----------------------------------------------------------+-----------------+------------+----------------------------+
```
* Search for an image based on a property and tag
```bash Command theme={null}
cpln image query --match any --prop name="demo-image" --tag description="Demo Image #1" --org demo-cpln-organization
```
```text Output theme={null}
+-------------+----------------------------------------------------------+-----------------+------------+----------------------------+
|NAME |PULL |DIGEST |CREATED |TAGS |
|-------------|----------------------------------------------------------|-----------------|------------|----------------------------|
|demo-image:2 |demo-cpln-organization.registry.test.cpln.io/demo-image:2 |sha256:3fe719... |5 years ago |description="Demo Image #1" |
+-------------+----------------------------------------------------------+-----------------+------------+----------------------------+
```
***
#### image tag
Manage the tags belonging to one or more referenced images
**Usage**
```none theme={null}
cpln image tag --tag KEY=VALUE [OPTIONS]
```
Built-in tags, which begin with cpln/\*, can't be modified.
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [required] [default: []]
Command options:
--tag Attach tags (e.g., --tag drink=water)
--remove-tag Remove tags (e.g., --remove-tag tagname)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Add a tag
```bash Command theme={null}
cpln image tag demo-image:1 --tag drink=water --org demo-cpln-organization
```
```text Output theme={null}
+-------------+----------------------------------------------------------+-----------------+------------+--------------+
|NAME |PULL |DIGEST |CREATED |TAGS |
|-------------|----------------------------------------------------------|-----------------|------------|--------------|
|demo-image:1 |demo-cpln-organization.registry.test.cpln.io/demo-image:1 |sha256:3fe719... |2 years ago |drink="water" |
+-------------+----------------------------------------------------------+-----------------+------------+--------------+
```
* Update same tag (after running the example above)
```bash Command theme={null}
cpln image tag demo-image:1 --tag drink=coffee --org demo-cpln-organization
```
```text Output theme={null}
+-------------+----------------------------------------------------------+-----------------+------------+---------------+
|NAME |PULL |DIGEST |CREATED |TAGS |
|-------------|----------------------------------------------------------|-----------------|------------|---------------|
|demo-image:1 |demo-cpln-organization.registry.test.cpln.io/demo-image:1 |sha256:3fe719... |2 years ago |drink="coffee" |
+-------------+----------------------------------------------------------+-----------------+------------+---------------+
```
* Remove tag (after running the example above)
```bash Command theme={null}
cpln image tag demo-image:1 --remove drink --org demo-cpln-organization
```
```text Output theme={null}
+-------------+----------------------------------------------------------+-----------------+------------+-----+
|NAME |PULL |DIGEST |CREATED |TAGS |
|-------------|----------------------------------------------------------|-----------------|------------|-----|
|demo-image:1 |demo-cpln-organization.registry.test.cpln.io/demo-image:1 |sha256:3fe719... |2 years ago | |
+-------------+----------------------------------------------------------+-----------------+------------+-----+
```
***
# ipset
Source: https://docs.controlplane.com/cli-reference/commands/ipset
cpln ipset — Reserve and manage static public IP addresses for workloads and GVC load balancers.
Manage IP Sets
```none theme={null}
cpln ipset [SUBCOMMAND]
```
```text theme={null}
Commands:
cpln ipset access-report Show the access report for the referenced ip set
cpln ipset add-location Add one or more locations to the referenced IP set
cpln ipset audit [ref] Retrieve audit trail events for the referenced ip set
cpln ipset clone Create a clone of the referenced ip set; this will only duplicate its spec. [aliases: copy]
cpln ipset create Create a new ip set
cpln ipset delete Delete one or more referenced ip sets
cpln ipset edit Edit the referenced ip set, as YAML, within an editor
cpln ipset eventlog Show the event log of the referenced ip set [aliases: log]
cpln ipset get [ref...] Retrieve one or more referenced ip set
cpln ipset patch Update the referenced ip set's metadata using an input file
cpln ipset permissions Show the grantable permissions for an ip set object type
cpln ipset query Find all the ip sets based on the given query
cpln ipset remove-location Remove one or more locations from the referenced IP set
cpln ipset tag Manage the tags belonging to one or more referenced ip sets
cpln ipset update Update properties of the referenced ip set
cpln ipset update-location Update one or more locations from the referenced IP set
Options:
--help Show help [boolean]
```
***
#### ipset access-report
Show the access report for the referenced ip set
**Usage**
```none theme={null}
cpln ipset access-report [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln ipset access-report demo-ipset --org demo-cpln-organization
```
```text Output theme={null}
+-----------+--------------------------------------------------------+--------+
|PERMISSION |PRINCIPAL |GRANTED |
|-----------|--------------------------------------------------------|--------|
|create |/org/demo-cpln-organization/group/superusers |manage |
|create |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|delete |/org/demo-cpln-organization/group/superusers |manage |
|delete |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|edit |/org/demo-cpln-organization/group/superusers |manage |
|edit |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|manage |/org/demo-cpln-organization/group/superusers |manage |
|manage |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|view |/org/demo-cpln-organization/group/viewers |view |
|view |/org/demo-cpln-organization/group/superusers |manage |
|view |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
+-----------+--------------------------------------------------------+--------+
```
***
#### ipset add-location
Add one or more locations to the referenced IP set
**Usage**
```none theme={null}
cpln ipset add-location [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--location Add a location with an optional retention policy (`keep` or `free`), e.g., aws-eu-central-1,keep. [required]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
{COMMAND}
```
```text Output theme={null}
{CODE}
```
***
#### ipset audit
Retrieve audit trail events for the referenced ip set
**Usage**
```none theme={null}
cpln ipset audit [ref] [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource.
Command options:
--subject Filter by subject (serviceaccount name or user email) [string]
--context Audit context name (the 'cpln' context displays Control Plane actions) [string] [default: "cpln"]
--since Relative lookback window from now (e.g., 1h, 24h, 7d). Mutually exclusive with --from/--to [string] [default: "7d"]
--from Start time for audit events (ISO 8601 format or relative duration, e.g., 2025-10-23T07:00:00Z, 7d, 1h). Cannot be used with --since [string]
--to End time for audit events (ISO 8601 format or relative duration, e.g., 2025-10-23T07:00:00Z, 1d, 30m) [string]
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### ipset clone
Create a clone of the referenced ip set; this will only duplicate its spec.
**Usage**
```none theme={null}
cpln ipset clone --name CLONE_NAME [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--name Set the name for the clone [required]
--description Optional description, defaults to the name if not set
--tag Attach tags (e.g., --tag drink=water)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln ipset clone demo-ipset --name demo-ipset-clone --org demo-cpln-organization
```
```text Output theme={null}
+-----------------+--------------------+-----+----------+--------------+
|NAME |DESCRIPTION |LINK |LOCATIONS |TAGS |
|-----------------|--------------------|-----|----------|--------------|
|demo-ipset-clone |Clone of demo-ipset | | |drink="water" |
+-----------------+--------------------+-----+----------+--------------+
```
***
#### ipset create
Create a new ip set
**Usage**
```none theme={null}
cpln ipset create --name NAME [OPTIONS]
```
```text theme={null}
Command options:
--name Name of the new volume set [required]
--description, --desc Optional description, defaults to the name if not set
--link A link to a workload
--location Specifies a location and optional retention policy (keep or free), e.g., aws-eu-central-1,keep
--tag Attach tags (e.g., --tag drink=water)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln ipset create --name demo-ipset --desc demo-ipset --tag drink=water --org demo-cpln-organization
```
```text Output theme={null}
+-----------+------------+-----+----------+--------------+
|NAME |DESCRIPTION |LINK |LOCATIONS |TAGS |
|-----------|------------|-----|----------|--------------|
|demo-ipset |demo-ipset | | |drink="water" |
+-----------+------------+-----+----------+--------------+
```
***
#### ipset delete
Delete one or more referenced ip sets
**Usage**
```none theme={null}
cpln ipset delete [OPTIONS]
```
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [required] [default: []]
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln ipset delete demo-ipset --org demo-cpln-organization
```
```text Output theme={null}
If the delete was successful, a new command prompt will be shown.
```
***
#### ipset edit
Edit the referenced ip set, as YAML, within an editor
**Usage**
```none theme={null}
cpln ipset edit [OPTIONS]
```
The default editor can be set by using the EDITOR environment variable.
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--replace, -r Replace instead of patch/merge [boolean] [default: false]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln ipset edit demo-ipset --org demo-cpln-organization
```
```text Output theme={null}
Your default editor will be launched.
Once any modifications are saved, the updates will be sent to the API.
```
***
#### ipset eventlog
Show the event log of the referenced ip set
**Usage**
```none theme={null}
cpln ipset eventlog [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln ipset eventlog demo-ipset --org demo-cpln-organization
```
```text Output theme={null}
The event log for the referenced ipset will be shown.
```
***
#### ipset get
Retrieve one or more referenced ip set
**Usage**
```none theme={null}
cpln ipset get [ref...] [OPTIONS]
```
An empty reference will return all references
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [default: []]
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Get all ipsets
```bash Command theme={null}
cpln ipset get --org demo-cpln-organization
```
```text Output theme={null}
+-----------------+-----------------+-----+----------+--------------+
|NAME |DESCRIPTION |LINK |LOCATIONS |TAGS |
|-----------------|-----------------|-----|----------|--------------|
|demo-ipset |demo-ipset | | |drink="water" |
|demo-ipset-get-1 |demo-ipset-get-1 | | | |
|demo-ipset-get-2 |demo-ipset-get-2 | | | |
+-----------------+-----------------+-----+----------+--------------+
```
* Get one ipset
```bash Command theme={null}
cpln ipset get demo-ipset-get-1 --org demo-cpln-organization
```
```text Output theme={null}
+-----------------+-----------------+-----+----------+-----+
|NAME |DESCRIPTION |LINK |LOCATIONS |TAGS |
|-----------------|-----------------|-----|----------|-----|
|demo-ipset-get-1 |demo-ipset-get-1 | | | |
+-----------------+-----------------+-----+----------+-----+
```
* Get multiple ipsets
```bash Command theme={null}
cpln ipset get demo-ipset-get-1 demo-ipset-get-2 --org demo-cpln-organization
```
```text Output theme={null}
+-----------------+-----------------+-----+----------+-----+
|NAME |DESCRIPTION |LINK |LOCATIONS |TAGS |
|-----------------|-----------------|-----|----------|-----|
|demo-ipset-get-1 |demo-ipset-get-1 | | | |
|demo-ipset-get-2 |demo-ipset-get-2 | | | |
+-----------------+-----------------+-----+----------+-----+
```
***
#### ipset patch
Update the referenced ip set's metadata using an input file
**Usage**
```none theme={null}
cpln ipset patch --file FILE_NAME [OPTIONS]
```
Running this command with the option **`--file -`** sets the input to stdin. The input is required to be a valid JSON or YAML string (e.g., `{"description": "My new description"}` or `description: My new description`). To complete the update, press Control-D (or Control-Z if you are using Windows).
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--file, -f File to load the patch from. Use `--file -` to enable input from stdin. [required]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln ipset patch demo-ipset --file update.json --org demo-cpln-organization
```
```text Output theme={null}
The changes within the JSON file will be performed against the referenced ipset.
```
***
#### ipset permissions
Show the grantable permissions for an ip set object type
**Usage**
```none theme={null}
cpln ipset permissions [OPTIONS]
```
```text theme={null}
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln ipset permissions --org demo-cpln-organization
```
```text Output theme={null}
+-------+--------------------------+-----------------------------------+
|NAME |DESCRIPTION |IMPLIES |
|-------|--------------------------|-----------------------------------|
|create |Create new ip sets | |
|delete |Delete ip sets | |
|edit |Modify existing resources |view |
|manage |Full access |create, delete, edit, manage, view |
|view |Read-only access | |
+-------+--------------------------+-----------------------------------+
```
***
#### ipset query
Find all the ip sets based on the given query
**Usage**
```none theme={null}
cpln ipset query QUERY_OPTIONS [OPTIONS]
```
```text theme={null}
Query options:
--match Query filter type [choices: "all", "none", "any"] [default: "all"]
--property, --prop Property to query
--tag Tag to query
--rel Relation to query
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
Use the `--match` option to display **all**, **none**, or **any** of the results based on a given property or tag
* Search for an ipset based on the name property
```bash Command theme={null}
cpln ipset query --match any --prop name=demo-ipset --org demo-cpln-organization
```
```text Output theme={null}
+-----------+------------+-----+----------+--------------+
|NAME |DESCRIPTION |LINK |LOCATIONS |TAGS |
|-----------|------------|-----|----------|--------------|
|demo-ipset |demo-ipset | | |drink="water" |
+-----------+------------+-----+----------+--------------+
```
* Search for an ipset based on the description property
```bash Command theme={null}
cpln ipset query --match any --prop description="demo-ipset" --org demo-cpln-organization
```
```text Output theme={null}
+-----------+------------+-----+----------+--------------+
|NAME |DESCRIPTION |LINK |LOCATIONS |TAGS |
|-----------|------------|-----|----------|--------------|
|demo-ipset |demo-ipset | | |drink="water" |
+-----------+------------+-----+----------+--------------+
```
* Search for an ipset based on a tag
```bash Command theme={null}
cpln ipset query --match any --tag drink=water --org demo-cpln-organization
```
```text Output theme={null}
+-----------+------------+-----+----------+--------------+
|NAME |DESCRIPTION |LINK |LOCATIONS |TAGS |
|-----------|------------|-----|----------|--------------|
|demo-ipset |demo-ipset | | |drink="water" |
+-----------+------------+-----+----------+--------------+
```
* Search for an ipset based on a property and tag
```bash Command theme={null}
cpln ipset query --match any --prop description="demo-ipset" --tag drink=water --org demo-cpln-organization
```
```text Output theme={null}
+-----------+------------+-----+----------+--------------+
|NAME |DESCRIPTION |LINK |LOCATIONS |TAGS |
|-----------|------------|-----|----------|--------------|
|demo-ipset |demo-ipset | | |drink="water" |
+-----------+------------+-----+----------+--------------+
```
***
#### ipset remove-location
Remove one or more locations from the referenced IP set
**Usage**
```none theme={null}
cpln ipset remove-location [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--location Remove a location by name, e.g., aws-eu-central-1. [required]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
{COMMAND}
```
```text Output theme={null}
{CODE}
```
***
#### ipset tag
Manage the tags belonging to one or more referenced ip sets
**Usage**
```none theme={null}
cpln ipset tag --tag KEY=VALUE [OPTIONS]
```
Built-in tags, which begin with cpln/\*, can't be modified.
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [required] [default: []]
Command options:
--tag Attach tags (e.g., --tag drink=water)
--remove-tag Remove tags (e.g., --remove-tag tagname)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Add a tag to an IP Set
```bash Command theme={null}
{ADD_TAG_COMMAND}
```
```text Output theme={null}
{ADD_TAG_CODE}
```
* Update same tag (after running the example above)
```bash Command theme={null}
{UPDATE_TAG_COMMAND}
```
```text Output theme={null}
{UPDATE_TAG_CODE}
```
* Remove tag (after running the example above)
```bash Command theme={null}
{REMOVE_TAG_COMMAND}
```
```text Output theme={null}
{REMOVE_TAG_CODE}
```
* Add same tag to multiple IP Sets
```bash Command theme={null}
{ADD_TAG_MULTIPLE_COMMAND}
```
```text Output theme={null}
{ADD_TAG_MULTIPLE_CODE}
```
* Update same tag on multiple IP Sets (after running the example above)
```bash Command theme={null}
{UPDATE_TAG_MULTIPLE_COMMAND}
```
```text Output theme={null}
{UPDATE_TAG_MULTIPLE_CODE}
```
* Remove same tag from multiple IP Sets (after running the example above)
```bash Command theme={null}
{REMOVE_TAG_MULTIPLE_COMMAND}
```
```text Output theme={null}
{REMOVE_TAG_MULTIPLE_CODE}
```
***
#### ipset update
Update properties of the referenced ip set
**Usage**
```none theme={null}
cpln ipset update --set UPDATE_PROPERTY [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Update Properties:
--set Update the following properties (e.g., --set description="Updated Description"):
description string
tags. string
spec.link string
--unset Unset a property (same paths as --set, e.g., --unset description)
Command options:
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* For the examples below, the initial IP Set is configured as:
```text theme={null}
{RESOURCE_CODE}
```
* Update an IP Set's description
```bash Command theme={null}
{UPDATE_DESCRIPTION_COMMAND}
```
```text Output theme={null}
{UPDATE_DESCRIPTION_CODE}
```
* Update an IP Set's tags
```bash Command theme={null}
{UPDATE_TAGS_COMMAND}
```
```text Output theme={null}
{UPDATE_TAGS_CODE}
```
* Update an IP Set's link
```bash Command theme={null}
{UPDATE_LINK_COMMAND}
```
```text Output theme={null}
{UPDATE_LINK_CODE}
```
***
#### ipset update-location
Update one or more locations from the referenced IP set
**Usage**
```none theme={null}
cpln ipset update-location [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--location Add a location with an optional retention policy (`keep` or `free`), e.g., aws-eu-central-1,keep. [required]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* For the examples below, the initial IP Set is configured as:
```text theme={null}
{IPSET}
```
* Update one or more locations from the referenced IP set wtih an optional retention policy (one of `keep` or `free`).
```bash Command theme={null}
{UPDATE_LOCATION_COMMAND}
```
```text Output theme={null}
{UPDATE_LOCATION_CODE}
```
***
# location
Source: https://docs.controlplane.com/cli-reference/commands/location
cpln location — Manage cloud provider regions and custom BYOK locations available for workload deployment.
Manage locations
For a detailed overview, please visit the [location's](/reference/location) reference page.
```none theme={null}
cpln location [SUBCOMMAND]
```
```text theme={null}
Commands:
cpln location access-report Show the access report for the referenced location
cpln location audit [ref] Retrieve audit trail events for the referenced location
cpln location create Create a new BYOK location
cpln location delete Delete one or more referenced locations
cpln location edit Edit the referenced location, as YAML, within an editor
cpln location get [ref...] Retrieve one or more referenced locations
cpln location install Get instructions for obtaining the installation script for a BYOK location
cpln location patch Update the referenced location's metadata using an input file
cpln location permissions Show the grantable permissions for a location object type
cpln location query Find all the locations based on the given query
cpln location tag Manage the tags belonging to one or more referenced locations
cpln location uninstall Get instructions for obtaining the uninstallation script for a BYOK location
Options:
--help Show help [boolean]
```
***
#### location access-report
Show the access report for the referenced location
**Usage**
```none theme={null}
cpln location access-report [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln location access-report aws-eu-central-1 --org demo-cpln-organization
```
```text Output theme={null}
+-----------+--------------------------------------------------------+--------+
|PERMISSION |PRINCIPAL |GRANTED |
|-----------|--------------------------------------------------------|--------|
|create |/org/demo-cpln-organization/group/superusers |manage |
|create |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|delete |/org/demo-cpln-organization/group/superusers |manage |
|delete |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|edit |/org/demo-cpln-organization/group/superusers |manage |
|edit |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|manage |/org/demo-cpln-organization/group/superusers |manage |
|manage |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|use |/org/demo-cpln-organization/group/superusers |manage |
|use |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|view |/org/demo-cpln-organization/group/viewers |view |
|view |/org/demo-cpln-organization/group/superusers |manage |
|view |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
+-----------+--------------------------------------------------------+--------+
```
***
#### location audit
Retrieve audit trail events for the referenced location
**Usage**
```none theme={null}
cpln location audit [ref] [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource.
Command options:
--subject Filter by subject (serviceaccount name or user email) [string]
--context Audit context name (the 'cpln' context displays Control Plane actions) [string] [default: "cpln"]
--since Relative lookback window from now (e.g., 1h, 24h, 7d). Mutually exclusive with --from/--to [string] [default: "7d"]
--from Start time for audit events (ISO 8601 format or relative duration, e.g., 2025-10-23T07:00:00Z, 7d, 1h). Cannot be used with --since [string]
--to End time for audit events (ISO 8601 format or relative duration, e.g., 2025-10-23T07:00:00Z, 1d, 30m) [string]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### location create
Create a new BYOK location
**Usage**
```none theme={null}
cpln location create --name NAME [OPTIONS]
```
```text theme={null}
Command options:
--name Name of the new BYOK location [required]
--description, --desc Optional description, defaults to the name if not set
--tag Attach tags (e.g., --tag drink=water)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Create a new [BYOK](/byok/overview) location.
```bash Command theme={null}
cpln location create --name demo-byok-location --org demo-cpln-organization
```
```text Output theme={null}
+-------------------+-------------------+---------+--------+-------------------+-------+-----+
|NAME |DESCRIPTION |PROVIDER |ENABLED |REGION |ORIGIN |TAGS |
|-------------------|-------------------|---------|--------|-------------------|-------|-----|
|demo-byok-location |demo-byok-location |byok |true |demo-byok-location |custom | |
+-------------------+-------------------+---------+--------+-------------------+-------+-----+
```
***
#### location delete
Delete one or more referenced locations
**Usage**
```none theme={null}
cpln location delete [OPTIONS]
```
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [required] [default: []]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Delete a [BYOK](/byok/overview) location.
```bash Command theme={null}
cpln location delete demo-byok-location-tbd --org demo-cpln-organization
```
```text Output theme={null}
If the delete was successful, a new command prompt will be shown.
```
***
#### location edit
Edit the referenced location, as YAML, within an editor
**Usage**
```none theme={null}
cpln location edit [OPTIONS]
```
The default editor can be set by using the EDITOR environment variable.
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--replace, -r Replace instead of patch/merge [boolean] [default: false]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln location edit aws-eu-central-1 --org demo-cpln-organization
```
```text Output theme={null}
Your default editor will be launched.
Once any modifications are saved, the updates will be sent to the API.
```
***
#### location get
Retrieve one or more referenced locations
**Usage**
```none theme={null}
cpln location get [ref...] [OPTIONS]
```
An empty reference will return all references
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [default: []]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Get all locations
```bash Command theme={null}
cpln location get --org demo-cpln-organization
```
```text Output theme={null}
+----------------------------+----------------------------------------+---------+--------+------------------------+--------+-------------------------------+
|NAME |DESCRIPTION |PROVIDER |ENABLED |REGION |ORIGIN |TAGS |
|----------------------------|----------------------------------------|---------|--------|------------------------|--------|-------------------------------|
|aws-ap-northeast-1 |AWS, Asia Pacific (Tokyo) |aws |true |ap-northeast-1 |builtin |cpln/city="Tokyo" |
| | | | | | |cpln/continent="Asia" |
| | | | | | |cpln/country="Japan" |
|aws-ap-northeast-2 |AWS, Asia Pacific (Seoul) |aws |true |ap-northeast-2 |builtin |cpln/city="Seoul" |
| | | | | | |cpln/continent="Asia" |
| | | | | | |cpln/country="South Korea" |
|aws-ap-northeast-3 |AWS, Asia Pacific (Osaka) |aws |true |ap-northeast-3 |builtin |cpln/city="Osaka" |
| | | | | | |cpln/continent="Asia" |
| | | | | | |cpln/country="Japan" |
|aws-ap-south-1 |AWS, Asia Pacific (Mumbai) |aws |true |ap-south-1 |builtin |cpln/city="Mumbai" |
| | | | | | |cpln/continent="Asia" |
| | | | | | |cpln/country="India" |
|aws-ap-southeast-1 |AWS, Asia Pacific (Singapore) |aws |true |ap-southeast-1 |builtin |cpln/city="Singapore" |
| | | | | | |cpln/continent="Asia" |
| | | | | | |cpln/country="Singapore" |
|aws-ap-southeast-2 |AWS, Asia Pacific (Sydney) |aws |true |ap-southeast-2 |builtin |cpln/city="Sydney" |
| | | | | | |cpln/continent="Australia" |
| | | | | | |cpln/country="Australia" |
|aws-ca-central-1 |AWS, Canada (Central) |aws |true |ca-central-1 |builtin |cpln/city="Montréal" |
| | | | | | |cpln/continent="North America" |
| | | | | | |cpln/country="Canada" |
|aws-eu-central-1 |AWS, Europe (Frankfurt) |aws |true |eu-central-1 |builtin |cpln/city="Frankfurt" |
| | | | | | |cpln/continent="Europe" |
| | | | | | |cpln/country="Germany" |
|aws-eu-north-1 |AWS, Europe (Stockholm) |aws |true |eu-north-1 |builtin |cpln/city="Stockholm" |
| | | | | | |cpln/continent="Europe" |
| | | | | | |cpln/country="Sweden" |
|aws-eu-west-1 |AWS, Europe (Ireland) |aws |true |eu-west-1 |builtin |cpln/continent="Europe" |
| | | | | | |cpln/country="Ireland" |
|aws-eu-west-2 |AWS, Europe (London) |aws |true |eu-west-2 |builtin |cpln/city="London" |
| | | | | | |cpln/continent="Europe" |
| | | | | | |cpln/country="United Kingdom" |
|aws-eu-west-3 |AWS, Europe (Paris) |aws |true |eu-west-3 |builtin |cpln/city="Paris" |
| | | | | | |cpln/continent="Europe" |
| | | | | | |cpln/country="France" |
|aws-il-central-1 |AWS, Israel (Tel Aviv) |aws |true |il-central-1 |builtin |cpln/city="Tel Aviv" |
| | | | | | |cpln/continent="Middle East" |
| | | | | | |cpln/country="Israel" |
|aws-sa-east-1 |AWS, South America (São Paulo) |aws |true |sa-east-1 |builtin |cpln/city="São Paulo" |
| | | | | | |cpln/continent="South America" |
| | | | | | |cpln/country="Brazil" |
|aws-us-east-1 |AWS, US East (N. Virginia) |aws |true |us-east-1 |builtin |cpln/continent="North America" |
| | | | | | |cpln/country="USA" |
| | | | | | |cpln/state="VA" |
|aws-us-east-2 |AWS, US East (Ohio) |aws |true |us-east-2 |builtin |cpln/continent="North America" |
| | | | | | |cpln/country="USA" |
| | | | | | |cpln/state="OH" |
|aws-us-west-1 |AWS, US West (N. California) |aws |true |us-west-1 |builtin |cpln/continent="North America" |
| | | | | | |cpln/country="USA" |
| | | | | | |cpln/state="CA" |
|aws-us-west-2 |AWS, US West (Oregon) |aws |true |us-west-2 |builtin |cpln/continent="North America" |
| | | | | | |cpln/country="USA" |
| | | | | | |cpln/state="OR" |
|azure-eastus |Azure, East US |azure |true |eastus |builtin |cpln/continent="North America" |
| | | | | | |cpln/country="USA" |
| | | | | | |cpln/state="VA" |
|azure-eastus2 |Azure, East US 2 |azure |true |eastus2 |builtin |cpln/continent="North America" |
| | | | | | |cpln/country="USA" |
| | | | | | |cpln/state="VA" |
|azure-southcentralus |Azure, South Central US |azure |true |southcentralus |builtin |cpln/continent="North America" |
| | | | | | |cpln/country="USA" |
| | | | | | |cpln/state="TX" |
|demo-byok-location |demo-byok-location |byok |true |demo-byok-location |custom | |
|gcp-asia-east1 |GCP, Changhua County, Taiwan |gcp |true |asia-east1 |builtin |cpln/continent="Asia" |
| | | | | | |cpln/country="Taiwan" |
|gcp-asia-east2 |GCP, Hong Kong, China |gcp |true |asia-east2 |builtin |cpln/city="Hong Kong" |
| | | | | | |cpln/continent="Asia" |
| | | | | | |cpln/country="China" |
|gcp-asia-northeast1 |GCP, Tokyo, Japan |gcp |true |asia-northeast1 |builtin |cpln/city="Tokyo" |
| | | | | | |cpln/continent="Asia" |
| | | | | | |cpln/country="Japan" |
|gcp-asia-northeast2 |GCP, Osaka, Japan |gcp |true |asia-northeast2 |builtin |cpln/city="Osaka" |
| | | | | | |cpln/continent="Asia" |
| | | | | | |cpln/country="Japan" |
|gcp-asia-northeast3 |GCP, Seoul, South Korea |gcp |true |asia-northeast3 |builtin |cpln/city="Seoul" |
| | | | | | |cpln/continent="Asia" |
| | | | | | |cpln/country="South Korea" |
|gcp-asia-south1 |GCP, Mumbai, India |gcp |true |asia-south1 |builtin |cpln/city="Mumbai" |
| | | | | | |cpln/continent="Asia" |
| | | | | | |cpln/country="India" |
|gcp-asia-south2 |GCP, Delhi, India |gcp |true |asia-south2 |builtin |cpln/city="Delhi" |
| | | | | | |cpln/continent="Asia" |
| | | | | | |cpln/country="India" |
|gcp-asia-southeast1 |GCP, Jurong West, Singapore |gcp |true |asia-southeast1 |builtin |cpln/city="Jurong West" |
| | | | | | |cpln/continent="Asia" |
| | | | | | |cpln/country="Singapore" |
|gcp-asia-southeast2 |GCP, Jakarta, Indonesia |gcp |true |asia-southeast2 |builtin |cpln/city="Jakarta" |
| | | | | | |cpln/continent="Asia" |
| | | | | | |cpln/country="Indonesia" |
|gcp-australia-southeast1 |GCP, Sydney, Australia |gcp |true |australia-southeast1 |builtin |cpln/city="Sydney" |
| | | | | | |cpln/continent="Australia" |
| | | | | | |cpln/country="Australia" |
|gcp-australia-southeast2 |GCP, Melbourne, Australia |gcp |true |australia-southeast2 |builtin |cpln/city="Melbourne" |
| | | | | | |cpln/continent="Australia" |
| | | | | | |cpln/country="Australia" |
|gcp-europe-central2 |GCP, Warsaw, Poland, Europe |gcp |true |europe-central2 |builtin |cpln/city="Warsaw" |
| | | | | | |cpln/continent="Europe" |
| | | | | | |cpln/country="Poland" |
|gcp-europe-north1 |GCP, Hamina, Finland, Europe |gcp |true |europe-north1 |builtin |cpln/city="Hamina" |
| | | | | | |cpln/continent="Europe" |
| | | | | | |cpln/country="Finland" |
|gcp-europe-west1 |GCP, St. Ghislain, Belgium, Europe |gcp |true |europe-west1 |builtin |cpln/city="St. Ghislain" |
| | | | | | |cpln/continent="Europe" |
| | | | | | |cpln/country="Belgium" |
|gcp-europe-west2 |GCP, London, England, Europe |gcp |true |europe-west2 |builtin |cpln/city="London" |
| | | | | | |cpln/continent="Europe" |
| | | | | | |cpln/country="England" |
|gcp-europe-west3 |GCP, Frankfurt, Germany, Europe |gcp |true |europe-west3 |builtin |cpln/city="Frankfurt" |
| | | | | | |cpln/continent="Europe" |
| | | | | | |cpln/country="Germany" |
|gcp-europe-west4 |GCP, Eemshaven, Netherlands, Europe |gcp |true |europe-west4 |builtin |cpln/city="Eemshaven" |
| | | | | | |cpln/continent="Europe" |
| | | | | | |cpln/country="Netherlands" |
|gcp-europe-west6 |GCP, Zurich, Switzerland, Europe |gcp |true |europe-west6 |builtin |cpln/city="Zurich" |
| | | | | | |cpln/continent="Europe" |
| | | | | | |cpln/country="Switzerland" |
|gcp-me-west1 |GCP, Tel Aviv, Israel, Middle East |gcp |true |me-west1 |builtin |cpln/city="Tel Aviv" |
| | | | | | |cpln/continent="Middle East" |
| | | | | | |cpln/country="Israel" |
|gcp-northamerica-northeast1 |GCP, Montréal, Québec, Canada |gcp |true |northamerica-northeast1 |builtin |cpln/city="Montréal" |
| | | | | | |cpln/continent="North America" |
| | | | | | |cpln/country="Canada" |
|gcp-northamerica-northeast2 |GCP, Toronto, Ontario, Canada |gcp |true |northamerica-northeast2 |builtin |cpln/city="Toronto" |
| | | | | | |cpln/continent="North America" |
| | | | | | |cpln/country="Canada" |
|gcp-southamerica-east1 |GCP, Osasco, São Paulo, Brazil |gcp |true |southamerica-east1 |builtin |cpln/city="Osasco" |
| | | | | | |cpln/continent="South America" |
| | | | | | |cpln/country="Brazil" |
|gcp-us-central1 |GCP, Council Bluffs, Iowa, USA |gcp |true |us-central1 |builtin |cpln/city="Council Bluffs" |
| | | | | | |cpln/continent="North America" |
| | | | | | |cpln/country="USA" |
| | | | | | |cpln/state="IA" |
|gcp-us-east1 |GCP, Moncks Corner, South Carolina, USA |gcp |true |us-east1 |builtin |cpln/continent="North America" |
| | | | | | |cpln/country="USA" |
| | | | | | |cpln/state="SC" |
|gcp-us-east4 |GCP, Ashburn, Northern Virginia, USA |gcp |true |us-east4 |builtin |cpln/city="Ashburn" |
| | | | | | |cpln/continent="North America" |
| | | | | | |cpln/country="USA" |
| | | | | | |cpln/state="VA" |
|gcp-us-west1 |GCP, The Dalles, Oregon, USA |gcp |true |us-west1 |builtin |cpln/city="The Dalles" |
| | | | | | |cpln/continent="North America" |
| | | | | | |cpln/country="USA" |
| | | | | | |cpln/state="OR" |
|gcp-us-west2 |GCP, Los Angeles, California, USA |gcp |true |us-west2 |builtin |cpln/city="Los Angeles" |
| | | | | | |cpln/continent="North America" |
| | | | | | |cpln/country="USA" |
| | | | | | |cpln/state="CA" |
|gcp-us-west3 |GCP, Salt Lake City, Utah, USA |gcp |true |us-west3 |builtin |cpln/city="Salt Lake City" |
| | | | | | |cpln/continent="North America" |
| | | | | | |cpln/country="USA" |
| | | | | | |cpln/state="UT" |
+----------------------------+----------------------------------------+---------+--------+------------------------+--------+-------------------------------+
```
* Get one location
```bash Command theme={null}
cpln location get aws-eu-central-1 --org demo-cpln-organization
```
```text Output theme={null}
+-----------------+------------------------+---------+--------+-------------+--------+------------------------+
|NAME |DESCRIPTION |PROVIDER |ENABLED |REGION |ORIGIN |TAGS |
|-----------------|------------------------|---------|--------|-------------|--------|------------------------|
|aws-eu-central-1 |AWS, Europe (Frankfurt) |aws |true |eu-central-1 |builtin |cpln/city="Frankfurt" |
| | | | | | |cpln/continent="Europe" |
| | | | | | |cpln/country="Germany" |
+-----------------+------------------------+---------+--------+-------------+--------+------------------------+
```
* Get multiple locations
```bash Command theme={null}
cpln location get gcp-us-east1 --org demo-cpln-organization
```
```text Output theme={null}
+-------------+----------------------------------------+---------+--------+---------+--------+-------------------------------+
|NAME |DESCRIPTION |PROVIDER |ENABLED |REGION |ORIGIN |TAGS |
|-------------|----------------------------------------|---------|--------|---------|--------|-------------------------------|
|gcp-us-east1 |GCP, Moncks Corner, South Carolina, USA |gcp |true |us-east1 |builtin |cpln/continent="North America" |
| | | | | | |cpln/country="USA" |
| | | | | | |cpln/state="SC" |
+-------------+----------------------------------------+---------+--------+---------+--------+-------------------------------+
```
***
#### location install
Get instructions for obtaining the installation script for a BYOK location
**Usage**
```none theme={null}
cpln location install [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Obtain instructions to install a [BYOK](/byok/overview) location.
```bash Command theme={null}
cpln location install demo-byok-location --org demo-cpln-organization
```
```text Output theme={null}
# this commmand must be performed before 2024-7-16 22:42:00
kubectl apply -f 'https://byok-api.cpln.io/install/download/xxxxxxxxxx/byok-agent.k8s.yaml'
```
***
#### location patch
Update the referenced location's metadata using an input file
**Usage**
```none theme={null}
cpln location patch --file FILE_NAME [OPTIONS]
```
Running this command with the option **`--file -`** sets the input to stdin. The input is required to be a valid JSON or YAML string (e.g., `{"description": "My new description"}` or `description: My new description`). To complete the update, press Control-D (or Control-Z if you are using Windows).
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--file, -f File to load the patch from. Use `--file -` to enable input from stdin. [required]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln location patch aws-eu-central-1 --file update.json --org demo-cpln-organization
```
```text Output theme={null}
The changes within the JSON file will be performed against the referenced location.
```
***
#### location permissions
Show the grantable permissions for a location object type
**Usage**
```none theme={null}
cpln location permissions [OPTIONS]
```
```text theme={null}
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln location permissions --org demo-cpln-organization
```
```text Output theme={null}
+-------+-----------------------------------------+----------------------------------------+
|NAME |DESCRIPTION |IMPLIES |
|-------|-----------------------------------------|----------------------------------------|
|create |Create new locations | |
|delete |Delete byok locations | |
|edit |Modify existing locations |view |
|manage |Full access |create, delete, edit, manage, use, view |
|use |Use this location for workload placement |view |
|view |Read-only access | |
+-------+-----------------------------------------+----------------------------------------+
```
***
#### location query
Find all the locations based on the given query
**Usage**
```none theme={null}
cpln location query QUERY_OPTIONS [OPTIONS]
```
```text theme={null}
Query options:
--match Query filter type [choices: "all", "none", "any"] [default: "all"]
--property, --prop Property to query
--tag Tag to query
--rel Relation to query
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
Use the `--match` option to display **all**, **none**, or **any** of the results based on a given property or tag
* Search for a location based on the name property
```bash Command theme={null}
cpln location query --match any --prop name=aws-eu-central-1 --org demo-cpln-organization
```
```text Output theme={null}
+-----------------+------------------------+---------+--------+-------------+--------+------------------------+
|NAME |DESCRIPTION |PROVIDER |ENABLED |REGION |ORIGIN |TAGS |
|-----------------|------------------------|---------|--------|-------------|--------|------------------------|
|aws-eu-central-1 |AWS, Europe (Frankfurt) |aws |true |eu-central-1 |builtin |cpln/city="Frankfurt" |
| | | | | | |cpln/continent="Europe" |
| | | | | | |cpln/country="Germany" |
+-----------------+------------------------+---------+--------+-------------+--------+------------------------+
```
* Search for a location based on the description property
```bash Command theme={null}
cpln location query --match any --prop description="Azure, East US 2" --org demo-cpln-organization
```
```text Output theme={null}
+--------------+-----------------+---------+--------+--------+--------+-------------------------------+
|NAME |DESCRIPTION |PROVIDER |ENABLED |REGION |ORIGIN |TAGS |
|--------------|-----------------|---------|--------|--------|--------|-------------------------------|
|azure-eastus2 |Azure, East US 2 |azure |true |eastus2 |builtin |cpln/continent="North America" |
| | | | | | |cpln/country="USA" |
| | | | | | |cpln/state="VA" |
+--------------+-----------------+---------+--------+--------+--------+-------------------------------+
```
* Search for a location based on a tag
```bash Command theme={null}
cpln location query --match any --tag cpln/city="Frankfurt" --org demo-cpln-organization
```
```text Output theme={null}
+-----------------+--------------------------------+---------+--------+-------------+--------+------------------------+
|NAME |DESCRIPTION |PROVIDER |ENABLED |REGION |ORIGIN |TAGS |
|-----------------|--------------------------------|---------|--------|-------------|--------|------------------------|
|aws-eu-central-1 |AWS, Europe (Frankfurt) |aws |true |eu-central-1 |builtin |cpln/city="Frankfurt" |
| | | | | | |cpln/continent="Europe" |
| | | | | | |cpln/country="Germany" |
|gcp-europe-west3 |GCP, Frankfurt, Germany, Europe |gcp |true |europe-west3 |builtin |cpln/city="Frankfurt" |
| | | | | | |cpln/continent="Europe" |
| | | | | | |cpln/country="Germany" |
+-----------------+--------------------------------+---------+--------+-------------+--------+------------------------+
```
* Search for a location based on a property and tag
```bash Command theme={null}
cpln location query --match any --prop description="Azure, East US 2" --tag cpln/city="Frankfurt" --org demo-cpln-organization
```
```text Output theme={null}
+-----------------+--------------------------------+---------+--------+-------------+--------+-------------------------------+
|NAME |DESCRIPTION |PROVIDER |ENABLED |REGION |ORIGIN |TAGS |
|-----------------|--------------------------------|---------|--------|-------------|--------|-------------------------------|
|aws-eu-central-1 |AWS, Europe (Frankfurt) |aws |true |eu-central-1 |builtin |cpln/city="Frankfurt" |
| | | | | | |cpln/continent="Europe" |
| | | | | | |cpln/country="Germany" |
|azure-eastus2 |Azure, East US 2 |azure |true |eastus2 |builtin |cpln/continent="North America" |
| | | | | | |cpln/country="USA" |
| | | | | | |cpln/state="VA" |
|gcp-europe-west3 |GCP, Frankfurt, Germany, Europe |gcp |true |europe-west3 |builtin |cpln/city="Frankfurt" |
| | | | | | |cpln/continent="Europe" |
| | | | | | |cpln/country="Germany" |
+-----------------+--------------------------------+---------+--------+-------------+--------+-------------------------------+
```
***
#### location tag
Manage the tags belonging to one or more referenced locations
**Usage**
```none theme={null}
cpln location tag --tag KEY=VALUE [OPTIONS]
```
Built-in tags, which begin with cpln/\*, can't be modified.
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [required] [default: []]
Command options:
--tag Attach tags (e.g., --tag drink=water)
--remove-tag Remove tags (e.g., --remove-tag tagname)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Add a tag to a location
```bash Command theme={null}
cpln location tag aws-eu-central-1 --tag drink=water --org demo-cpln-organization
```
```text Output theme={null}
+-----------------+------------------------+---------+--------+-------------+--------+------------------------+
|NAME |DESCRIPTION |PROVIDER |ENABLED |REGION |ORIGIN |TAGS |
|-----------------|------------------------|---------|--------|-------------|--------|------------------------|
|aws-eu-central-1 |AWS, Europe (Frankfurt) |aws |true |eu-central-1 |builtin |cpln/city="Frankfurt" |
| | | | | | |cpln/continent="Europe" |
| | | | | | |cpln/country="Germany" |
| | | | | | |drink="water" |
+-----------------+------------------------+---------+--------+-------------+--------+------------------------+
```
* Update same tag (after running the example above)
```bash Command theme={null}
cpln location tag aws-eu-central-1 --tag drink=coffee --org demo-cpln-organization
```
```text Output theme={null}
+-----------------+------------------------+---------+--------+-------------+--------+------------------------+
|NAME |DESCRIPTION |PROVIDER |ENABLED |REGION |ORIGIN |TAGS |
|-----------------|------------------------|---------|--------|-------------|--------|------------------------|
|aws-eu-central-1 |AWS, Europe (Frankfurt) |aws |true |eu-central-1 |builtin |cpln/city="Frankfurt" |
| | | | | | |cpln/continent="Europe" |
| | | | | | |cpln/country="Germany" |
| | | | | | |drink="coffee" |
+-----------------+------------------------+---------+--------+-------------+--------+------------------------+
```
* Remove tag (after running the example above)
```bash Command theme={null}
cpln location tag aws-eu-central-1 --remove drink --org demo-cpln-organization
```
```text Output theme={null}
+-----------------+------------------------+---------+--------+-------------+--------+------------------------+
|NAME |DESCRIPTION |PROVIDER |ENABLED |REGION |ORIGIN |TAGS |
|-----------------|------------------------|---------|--------|-------------|--------|------------------------|
|aws-eu-central-1 |AWS, Europe (Frankfurt) |aws |true |eu-central-1 |builtin |cpln/city="Frankfurt" |
| | | | | | |cpln/continent="Europe" |
| | | | | | |cpln/country="Germany" |
+-----------------+------------------------+---------+--------+-------------+--------+------------------------+
```
* Add same tag to multiple locations
```bash Command theme={null}
cpln location tag aws-eu-central-1 azure-eastus2 --tag multiple-locations=true --org demo-cpln-organization
```
```text Output theme={null}
+-----------------+------------------------+---------+--------+-------------+--------+-------------------------------+
|NAME |DESCRIPTION |PROVIDER |ENABLED |REGION |ORIGIN |TAGS |
|-----------------|------------------------|---------|--------|-------------|--------|-------------------------------|
|aws-eu-central-1 |AWS, Europe (Frankfurt) |aws |true |eu-central-1 |builtin |cpln/city="Frankfurt" |
| | | | | | |cpln/continent="Europe" |
| | | | | | |cpln/country="Germany" |
| | | | | | |multiple-locations="true" |
|azure-eastus2 |Azure, East US 2 |azure |true |eastus2 |builtin |cpln/continent="North America" |
| | | | | | |cpln/country="USA" |
| | | | | | |cpln/state="VA" |
| | | | | | |multiple-locations="true" |
+-----------------+------------------------+---------+--------+-------------+--------+-------------------------------+
```
* Update same tag on multiple locations (after running the example above)
```bash Command theme={null}
cpln location tag aws-eu-central-1 azure-eastus2 --tag multiple-locations=demo-location --org demo-cpln-organization
```
```text Output theme={null}
+-----------------+------------------------+---------+--------+-------------+--------+-----------------------------------+
|NAME |DESCRIPTION |PROVIDER |ENABLED |REGION |ORIGIN |TAGS |
|-----------------|------------------------|---------|--------|-------------|--------|-----------------------------------|
|aws-eu-central-1 |AWS, Europe (Frankfurt) |aws |true |eu-central-1 |builtin |cpln/city="Frankfurt" |
| | | | | | |cpln/continent="Europe" |
| | | | | | |cpln/country="Germany" |
| | | | | | |multiple-locations="demo-location" |
|azure-eastus2 |Azure, East US 2 |azure |true |eastus2 |builtin |cpln/continent="North America" |
| | | | | | |cpln/country="USA" |
| | | | | | |cpln/state="VA" |
| | | | | | |multiple-locations="demo-location" |
+-----------------+------------------------+---------+--------+-------------+--------+-----------------------------------+
```
* Remove same tag from multiple locations (after running the example above)
```bash Command theme={null}
cpln location tag aws-eu-central-1 azure-eastus2 --remove multiple-locations --org demo-cpln-organization
```
```text Output theme={null}
+-----------------+------------------------+---------+--------+-------------+--------+-------------------------------+
|NAME |DESCRIPTION |PROVIDER |ENABLED |REGION |ORIGIN |TAGS |
|-----------------|------------------------|---------|--------|-------------|--------|-------------------------------|
|aws-eu-central-1 |AWS, Europe (Frankfurt) |aws |true |eu-central-1 |builtin |cpln/city="Frankfurt" |
| | | | | | |cpln/continent="Europe" |
| | | | | | |cpln/country="Germany" |
|azure-eastus2 |Azure, East US 2 |azure |true |eastus2 |builtin |cpln/continent="North America" |
| | | | | | |cpln/country="USA" |
| | | | | | |cpln/state="VA" |
+-----------------+------------------------+---------+--------+-------------+--------+-------------------------------+
```
***
#### location uninstall
Get instructions for obtaining the uninstallation script for a BYOK location
**Usage**
```none theme={null}
cpln location uninstall [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Obtain instructions to uninstall a [BYOK](/byok/overview) location.
```bash Command theme={null}
cpln location uninstall demo-byok-location --org demo-cpln-organization
```
```text Output theme={null}
# this commmand must be performed before 2024-7-16 22:41:00
kubectl apply -f 'https://byok-api.cpln.io/install/download/xxxxxxxxxx/byok-agent-uninstall.k8s.yaml'
```
***
# login
Source: https://docs.controlplane.com/cli-reference/commands/login
cpln login — Create a default profile and authenticate with Control Plane using a login URL and confirmation code.
Create a profile named "default" and print a URL and a confirmation code to complete sign-in in any browser
**Usage**
```none theme={null}
cpln login [ref] [OPTIONS]
```
```text theme={null}
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Positionals:
ref The resource reference. Usually it is the name of the resource.
Options:
--help Show help [boolean]
--version, -v Show version number [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln login
```
```text Output theme={null}
First, copy your confirmation code: 960619
Opening your browser to log in. Browser didn't open? Use the URL below:
https://auth.cpln.io/cli-login?id=A1b2C3d4E5f6G7h8I9j0KlMnOpQrStUvWxYz
Waiting for login to complete... (code expires in ~10 minutes)
```
***
# logs
Source: https://docs.controlplane.com/cli-reference/commands/logs
cpln logs — Query and display logs from workloads and other Control Plane resources.
Show logs
For a detailed overview, please visit the [logs'](/reference/logs) reference page.
**Usage**
```none theme={null}
cpln logs [OPTIONS]
```
The `` positional requires a valid [LogQL](https://grafana.com/docs/loki/latest/logql/) string enclosed within single quotes.
Available query labels: `gvc`, `workload`, `container`, `location`, `provider`, `replica`, `stream`
```text theme={null}
Command options:
--tail, -t, -f Tail the logs (follow) [boolean]
--limit Maximum number of log entries to return. Use 0 for unlimited (auto-paginates through the full time range) [number] [default: 30]
--delay-for Delay in tailing by number of seconds to accumulate logs for re-ordering [number] [default: 0]
--since Lookback window [default: "1h"]
--from Start looking for logs at this time, inclusive (ISO 8601 or relative duration, e.g., 2025-10-23T07:00:00Z, 7d, now-1M)
--to Stop looking for logs at this time, exclusive (ISO 8601 or relative duration, e.g., 2025-10-23T07:00:00Z, 1d, now-30m)
--output, -o Specify output mode. raw suppresses log labels and timestamp [choices: "default", "raw", "jsonl"] [default: "default"]
--direction Sort order of logs [choices: "forward", "backward"] [default: "forward"]
Positionals:
query LogQL query [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
--version, -v Show version number [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln logs '{gvc="demo-gvc-logs",workload="demo-workload-logs"}'
```
```text Output theme={null}
2021-02-23T18:45:03.411Z {workload="demo-workload-logs", container="main", gvc="demo-gvc-logs", location="aws-eu-central-1", provider="aws", replica="712438d4-aee8-44aa-b7a9-c9ed62b6ea69", stream="stderr"} 2021/02/23 18:45:03 Hello world sample started.
2021-02-23T18:45:06.177Z {workload="demo-workload-logs", container="main", gvc="demo-gvc-logs", location="aws-eu-central-1", provider="aws", replica="712438d4-aee8-44aa-b7a9-c9ed62b6ea69", stream="stderr"} 2021/02/23 18:45:06 Hello world received a request.
```
```bash Command theme={null}
cpln logs '{provider="aws"}'
```
```text Output theme={null}
2021-02-23T18:45:03.411Z {container="main", gvc="demo-gvc-logs", location="aws-eu-central-1", provider="aws", replica="712438d4-aee8-44aa-b7a9-c9ed62b6ea69", stream="stderr", workload="demo-workload-logs"} 2021/02/23 18:45:03 Hello world sample started.
2021-02-23T18:45:06.177Z {container="main", gvc="demo-gvc-logs", location="aws-eu-central-1", provider="aws", replica="712438d4-aee8-44aa-b7a9-c9ed62b6ea69", stream="stderr", workload="demo-workload-logs"} 2021/02/23 18:45:06 Hello world received a request.
```
***
# metrics
Source: https://docs.controlplane.com/cli-reference/commands/metrics
cpln metrics — Run PromQL queries against your organization's metrics.
Query metrics
```none theme={null}
cpln metrics [SUBCOMMAND]
```
```text theme={null}
Commands:
cpln metrics query [expr] Execute a PromQL query
Options:
--help Show help [boolean]
```
***
#### metrics query
Execute a PromQL query
**Usage**
```none theme={null}
cpln metrics query [OPTIONS]
```
The PromQL expression can be passed as the positional argument or through the `--expr` option. Enclose it in single quotes so the shell does not expand it.
```text theme={null}
Query options:
--expr PromQL expression (alternative to the positional argument)
--from Range start (ISO 8601, Unix timestamp, or relative duration, e.g., 2025-10-23T07:00:00Z, 7d, now-1h)
--to Range end (ISO 8601, Unix timestamp, or relative duration; defaults to now)
--since Lookback window before --to (or now); mutually exclusive with --from (default 1h when a range is requested)
--step Range query resolution step, e.g., 15s, 1m, 5m (default 60s)
--time Evaluation time for an instant query (ISO 8601, Unix timestamp, or relative like now-5m); mutually exclusive with --from/--to/--since
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Instant query
```bash Command theme={null}
cpln metrics query 'up' --org demo-cpln-organization
```
```text Output theme={null}
+-------+--------------------------------------------+--------------------------+-------+
|METRIC |LABELS |TIMESTAMP |VALUE |
|-------|--------------------------------------------|--------------------------|-------|
|up |{workload="api", location="aws-us-west-2"} |2026-07-17T12:00:00.000Z |1 |
|up |{workload="web", location="aws-us-west-2"} |2026-07-17T12:00:00.000Z |1 |
+-------+--------------------------------------------+--------------------------+-------+
```
* Range query over the last hour, sampled every five minutes
```bash Command theme={null}
cpln metrics query 'sum(rate(http_requests_total[5m]))' --since 1h --step 5m --org demo-cpln-organization
```
```text Output theme={null}
+-------+--------+--------------------------+-------+
|METRIC |LABELS |TIMESTAMP |VALUE |
|-------|--------|--------------------------|-------|
| | |2026-07-17T11:00:00.000Z |42.7 |
| | |2026-07-17T11:05:00.000Z |45.1 |
| | |2026-07-17T11:10:00.000Z |39.8 |
+-------+--------+--------------------------+-------+
```
***
# misc
Source: https://docs.controlplane.com/cli-reference/commands/misc
cpln misc — Miscellaneous helper commands including shell completion and utility operations.
Miscellaneous helper commands
For a detailed guide on setting up shell completion, see [Shell Completion](/cli-reference/using-cli/shell-completion).
```none theme={null}
cpln misc [SUBCOMMAND]
```
```text theme={null}
Commands:
cpln misc install-completion Install shell completion to your local profile
cpln misc uninstall-completion Uninstall shell completion from your local profile
Options:
--help Show help [boolean]
--version, -v Show version number [boolean]
```
***
#### misc install-completion
Install shell completion to your local profile. Supports Bash, Zsh, and Fish shells
**Usage**
```none theme={null}
cpln misc install-completion [OPTIONS]
```
```text theme={null}
Command options:
--batch, -b Non-interactive (batch) mode [boolean]
--shell Shell to install completion for (bash, zsh, fish). Only used with --batch [string] [choices: "bash", "zsh", "fish"]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
--version, -v Show version number [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln misc install-completion
```
```text Output theme={null}
Running the command will prompt the user with a few questions. Once compelete, the completion functionality
will be installed. The shell will need to be restarted.
```
***
#### misc uninstall-completion
Uninstall shell completion from your local profile
**Usage**
```none theme={null}
cpln misc uninstall-completion [OPTIONS]
```
```text theme={null}
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
--version, -v Show version number [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln misc uninstall-completion
```
```text Output theme={null}
The completion functionality will be removed.
```
***
# mk8s
Source: https://docs.controlplane.com/cli-reference/commands/mk8s
cpln mk8s — Manage mk8s clusters for running managed Kubernetes on Control Plane.
Manage an mk8s cluster
```none theme={null}
cpln mk8s [SUBCOMMAND]
```
```text theme={null}
Commands:
cpln mk8s access-report Show the access report for the referenced mk8s cluster
cpln mk8s audit [ref] Retrieve audit trail events for the referenced mk8s cluster
cpln mk8s clone Create a clone of the referenced mk8s cluster; this will only duplicate its spec. [aliases: copy]
cpln mk8s dashboard Open the k8s dashboard for an mk8s cluster
cpln mk8s delete Delete one or more referenced mk8s clusters
cpln mk8s edit Edit the referenced mk8s cluster, as YAML, within an editor
cpln mk8s eventlog Show the event log of the referenced mk8s cluster [aliases: log]
cpln mk8s get [ref...] Retrieve one or more referenced mk8s cluster
cpln mk8s health Show the readiness status of an mk8s cluster
cpln mk8s join Join compute nodes to a cluster
cpln mk8s kubeconfig Create a kubeconfig for a cluster.
cpln mk8s patch Update the referenced mk8s cluster's metadata using an input file
cpln mk8s permissions Show the grantable permissions for an mk8s cluster object type
cpln mk8s query Find all the mk8s clusters based on the given query
cpln mk8s tag Manage the tags belonging to one or more referenced mk8s clusters
cpln mk8s update Update properties of the referenced mk8s cluster
Options:
--help Show help [boolean]
```
***
#### mk8s access-report
Show the access report for the referenced mk8s cluster
**Usage**
```none theme={null}
cpln mk8s access-report [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### mk8s audit
Retrieve audit trail events for the referenced mk8s cluster
**Usage**
```none theme={null}
cpln mk8s audit [ref] [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource.
Command options:
--subject Filter by subject (serviceaccount name or user email) [string]
--context Audit context name (the 'cpln' context displays Control Plane actions) [string] [default: "cpln"]
--since Relative lookback window from now (e.g., 1h, 24h, 7d). Mutually exclusive with --from/--to [string] [default: "7d"]
--from Start time for audit events (ISO 8601 format or relative duration, e.g., 2025-10-23T07:00:00Z, 7d, 1h). Cannot be used with --since [string]
--to End time for audit events (ISO 8601 format or relative duration, e.g., 2025-10-23T07:00:00Z, 1d, 30m) [string]
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### mk8s clone
Create a clone of the referenced mk8s cluster; this will only duplicate its spec.
**Usage**
```none theme={null}
cpln mk8s clone --name CLONE_NAME [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--name Set the name for the clone [required]
--description Optional description, defaults to the name if not set
--tag Attach tags (e.g., --tag drink=water)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### mk8s dashboard
Open the k8s dashboard for an mk8s cluster
**Usage**
```none theme={null}
cpln mk8s dashboard [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--tag Attach tags (e.g., --tag drink=water)
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
--gvc Override the global virtual cloud. The default global virtual cloud can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### mk8s delete
Delete one or more referenced mk8s clusters
**Usage**
```none theme={null}
cpln mk8s delete [OPTIONS]
```
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [required] [default: []]
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### mk8s edit
Edit the referenced mk8s cluster, as YAML, within an editor
**Usage**
```none theme={null}
cpln mk8s edit [OPTIONS]
```
The default editor can be set by using the EDITOR environment variable.
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--replace, -r Replace instead of patch/merge [boolean] [default: false]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### mk8s eventlog
Show the event log of the referenced mk8s cluster
**Usage**
```none theme={null}
cpln mk8s eventlog [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### mk8s get
Retrieve one or more referenced mk8s cluster
**Usage**
```none theme={null}
cpln mk8s get [ref...] [OPTIONS]
```
An empty reference will return all references
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [default: []]
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### mk8s health
Show the readiness status of an mk8s cluster
**Usage**
```none theme={null}
cpln mk8s health [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### mk8s join
Join compute nodes to a cluster
**Usage**
```none theme={null}
cpln mk8s join [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Command options:
--type Type of join configuration to produce:
* cloud-init: produces a cloud-init script suitable for cloud deployments.
* join-script: results in a simple script that can be evaluated as root on a node [required] [choices: "cloud-init", "join-script"]
--options Some providers support extra options (e.g., --options nodepool=ingress)
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### mk8s kubeconfig
Create a kubeconfig for a cluster.
**Usage**
```none theme={null}
cpln mk8s kubeconfig [OPTIONS]
```
```text theme={null}
Command options:
--file, -f file to save kubeconfig to, default is $KUBECONFIG if set, otherwise ~/.kube/config. Use `--file -` to dump to stdout. New kubeconfig will be merged into the existing one
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
--gvc Override the global virtual cloud. The default global virtual cloud can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### mk8s patch
Update the referenced mk8s cluster's metadata using an input file
**Usage**
```none theme={null}
cpln mk8s patch --file FILE_NAME [OPTIONS]
```
Running this command with the option **`--file -`** sets the input to stdin. The input is required to be a valid JSON or YAML string (e.g., `{"description": "My new description"}` or `description: My new description`). To complete the update, press Control-D (or Control-Z if you are using Windows).
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--file, -f File to load the patch from. Use `--file -` to enable input from stdin. [required]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### mk8s permissions
Show the grantable permissions for an mk8s cluster object type
**Usage**
```none theme={null}
cpln mk8s permissions [OPTIONS]
```
```text theme={null}
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### mk8s query
Find all the mk8s clusters based on the given query
**Usage**
```none theme={null}
cpln mk8s query QUERY_OPTIONS [OPTIONS]
```
```text theme={null}
Query options:
--match Query filter type [choices: "all", "none", "any"] [default: "all"]
--property, --prop Property to query
--tag Tag to query
--rel Relation to query
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### mk8s tag
Manage the tags belonging to one or more referenced mk8s clusters
**Usage**
```none theme={null}
cpln mk8s tag --tag KEY=VALUE [OPTIONS]
```
Built-in tags, which begin with cpln/\*, can't be modified.
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [required] [default: []]
Command options:
--tag Attach tags (e.g., --tag drink=water)
--remove-tag Remove tags (e.g., --remove-tag tagname)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### mk8s update
Update properties of the referenced mk8s cluster
**Usage**
```none theme={null}
cpln mk8s update --set UPDATE_PROPERTY [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Update Properties:
--set Update the following properties (e.g., --set description="Updated Description"):
description string
tags. string
spec.version string
--unset Unset a property (same paths as --set, e.g., --unset description)
Command options:
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
# operator
Source: https://docs.controlplane.com/cli-reference/commands/operator
cpln operator — Manage the Kubernetes operator that syncs Control Plane resources with a cluster.
A Kubernetes operator for Control Plane
Refer to the [cpln operator guide](/guides/cli/cpln-operator) for additional details.
```none theme={null}
cpln operator [SUBCOMMAND]
```
```text theme={null}
Commands:
cpln operator install Install the Kubernetes operator to your cluster
cpln operator uninstall Uninstall the Kubernetes operator from your cluster
Options:
--help Show help [boolean]
```
***
#### operator install
Install the Kubernetes operator to your cluster
**Usage**
```none theme={null}
cpln operator install [OPTIONS]
```
Use `--export` to review or store the Kubernetes resources before applying:
```bash theme={null}
# Export to a file for review or GitOps
cpln operator install \
--serviceaccount k8s-operator \
--org YOUR_ORG_NAME \
--export > operator-secret.yaml
# Apply later
kubectl apply -f operator-secret.yaml
```
For production, assign the service account to a group with limited permissions:
```bash theme={null}
cpln operator install \
--serviceaccount k8s-operator \
--serviceaccount-group operators \
--org YOUR_ORG_NAME
```
```text theme={null}
Command options:
--serviceaccount, -s The service account name for the operator. If the service account does not exist, a new one will be created [required]
--serviceaccount-group, -g The group to assign to the service account if it will be created. [default: "superusers"]
--export Export the Kubernetes resources to a file instead of applying them to the cluster. [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### operator uninstall
Uninstall the Kubernetes operator from your cluster
**Usage**
```none theme={null}
cpln operator uninstall [OPTIONS]
```
```text theme={null}
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
# org
Source: https://docs.controlplane.com/cli-reference/commands/org
cpln org — Manage organizations, which are the top-level resource for grouping all other resources.
Manage organizations
For a detailed overview, please visit the [org's](/reference/org) reference page.
```none theme={null}
cpln org [SUBCOMMAND]
```
```text theme={null}
Commands:
cpln org access-report Show the access report for the referenced organization
cpln org audit [ref] Retrieve audit trail events for the referenced organization
cpln org create Create a new organization
cpln org edit Edit the referenced organization, as YAML, within an editor
cpln org eventlog Show the event log of the referenced organization [aliases: log]
cpln org get [ref...] Retrieve one or more referenced organizations
cpln org patch Update the referenced organization's metadata using an input file
cpln org permissions Show the grantable permissions for an organization object type
cpln org query Find all the organizations based on the given query
cpln org tag Manage the tags belonging to one or more referenced organizations
cpln org update Update properties of the referenced organization
Options:
--help Show help [boolean]
```
***
#### org access-report
Show the access report for the referenced organization
**Usage**
```none theme={null}
cpln org access-report [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln org access-report demo-cpln-organization
```
```text Output theme={null}
+-----------------+--------------------------------------------------------+--------+
|PERMISSION |PRINCIPAL |GRANTED |
|-----------------|--------------------------------------------------------|--------|
|edit |/org/demo-cpln-organization/group/superusers |manage |
|edit |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|exec |/org/demo-cpln-organization/group/superusers |manage |
|exec |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|exec.echo |/org/demo-cpln-organization/group/superusers |manage |
|exec.echo |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|grafanaAdmin |/org/demo-cpln-organization/group/superusers |manage |
|grafanaAdmin |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|manage |/org/demo-cpln-organization/group/superusers |manage |
|manage |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|readLogs |/org/demo-cpln-organization/group/superusers |manage |
|readLogs |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|readMetrics |/org/demo-cpln-organization/group/superusers |manage |
|readMetrics |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|readUsage |/org/demo-cpln-organization/group/superusers |manage |
|readUsage |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|view |/org/demo-cpln-organization/group/superusers |manage |
|view |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|view |/org/demo-cpln-organization/group/-allmembers |view |
|viewAccessReport |/org/demo-cpln-organization/group/superusers |manage |
|viewAccessReport |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
+-----------------+--------------------------------------------------------+--------+
```
***
#### org audit
Retrieve audit trail events for the referenced organization
**Usage**
```none theme={null}
cpln org audit [ref] [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource.
Command options:
--subject Filter by subject (serviceaccount name or user email) [string]
--context Audit context name (the 'cpln' context displays Control Plane actions) [string] [default: "cpln"]
--since Relative lookback window from now (e.g., 1h, 24h, 7d). Mutually exclusive with --from/--to [string] [default: "7d"]
--from Start time for audit events (ISO 8601 format or relative duration, e.g., 2025-10-23T07:00:00Z, 7d, 1h). Cannot be used with --since [string]
--to End time for audit events (ISO 8601 format or relative duration, e.g., 2025-10-23T07:00:00Z, 1d, 30m) [string]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### org create
Create a new organization
**Usage**
```none theme={null}
cpln org create --name ORG_NAME [OPTIONS]
```
```text theme={null}
Command options:
--accountId Id of the billing account [required]
--name Name of the new organization [required]
--description, --desc Optional description, defaults to the name if not set
--invitee Emails of users to invite to the org as superuser(admin) [required]
--tag Attach tags (e.g., --tag drink=water)
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* `name`
* Minimum Length: 3
* Maximum Length: 64
* Only lowercase characters
* Must begin with a character
* Allowed special characters: -
```bash Command theme={null}
cpln org create --name demo-cpln-organization --acountId ACCOUNT_ID --invitee EMAIL
```
```text Output theme={null}
If successful, the new organization will be created.
```
***
#### org edit
Edit the referenced organization, as YAML, within an editor
**Usage**
```none theme={null}
cpln org edit [OPTIONS]
```
The default editor can be set by using the EDITOR environment variable.
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--replace, -r Replace instead of patch/merge [boolean] [default: false]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln org edit demo-cpln-organization
```
```text Output theme={null}
Your default editor will be launched.
Once any modifications are saved, the updates will be sent to the API.
```
***
#### org eventlog
Show the event log of the referenced organization
**Usage**
```none theme={null}
cpln org eventlog [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln org eventlog demo-cpln-organization
```
```text Output theme={null}
The event log for the referenced organization will be shown.
```
***
#### org get
Retrieve one or more referenced organizations
**Usage**
```none theme={null}
cpln org get [ref...] [OPTIONS]
```
An empty reference will return all references
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [default: []]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Get all organizations
```bash Command theme={null}
cpln org get
```
```text Output theme={null}
+-----------------------+------------------+----------------------------+----------------------+
|NAME |DESCRIPTION |LINK |TAGS |
|-----------------------|------------------|----------------------------|----------------------|
|demo-cpln-organization |Demo Organization |/org/demo-cpln-organization |demo-key="demo-value" |
| | | |type="demo" |
+-----------------------+------------------+----------------------------+----------------------+
```
* Get one organization
```bash Command theme={null}
cpln org get demo-cpln-organization
```
```text Output theme={null}
+-----------------------+------------------+----------------------------+----------------------+
|NAME |DESCRIPTION |LINK |TAGS |
|-----------------------|------------------|----------------------------|----------------------|
|demo-cpln-organization |Demo Organization |/org/demo-cpln-organization |demo-key="demo-value" |
| | | |type="demo" |
+-----------------------+------------------+----------------------------+----------------------+
```
***
#### org patch
Update the referenced organization's metadata using an input file
**Usage**
```none theme={null}
cpln org patch --file FILE_NAME [OPTIONS]
```
Running this command with the option **`--file -`** sets the input to stdin. The input is required to be a valid JSON or YAML string (e.g., `{"description": "My new description"}` or `description: My new description`). To complete the update, press Control-D (or Control-Z if you are using Windows).
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--file, -f File to load the patch from. Use `--file -` to enable input from stdin. [required]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln org patch demo-cpln-organization --file update.json
```
```text Output theme={null}
The changes within the JSON file will be performed against the referenced organization.
```
***
#### org permissions
Show the grantable permissions for an organization object type
**Usage**
```none theme={null}
cpln org permissions [OPTIONS]
```
```text theme={null}
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln org permissions
```
```text Output theme={null}
+-----------------+-----------------------------------------+------------------------------------------------------------------------------------------------------+
|NAME |DESCRIPTION |IMPLIES |
|-----------------|-----------------------------------------|------------------------------------------------------------------------------------------------------|
|edit |Modify org |view |
|exec |Grantees can execute all commands on ... |exec.echo |
|exec.echo |Grantees can execute the echo command | |
|grafanaAdmin |Grantees are made Admin in Grafana, o... | |
|manage |Full access |edit, exec, exec.echo, grafanaAdmin, manage, readLogs, readMetrics, readUsage, view, viewAccessReport |
|readLogs |Grantees can read logs from all workl... |view |
|readMetrics |Grantees can access usage and perform... | |
|readUsage |Grantees can access usage and billing... | |
|view |Read-only view: every org member can ... | |
|viewAccessReport |Grantees can inspect the granted acce... | |
+-----------------+-----------------------------------------+------------------------------------------------------------------------------------------------------+
```
***
#### org query
Find all the organizations based on the given query
**Usage**
```none theme={null}
cpln org query QUERY_OPTIONS [OPTIONS]
```
```text theme={null}
Query options:
--match Query filter type [choices: "all", "none", "any"] [default: "all"]
--property, --prop Property to query
--tag Tag to query
--rel Relation to query
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
Use the `--match` option to display **all**, **none**, or **any** of the results based on a given property or tag
* Search for an organization based on the name property
```bash Command theme={null}
cpln org query --match any --prop name=demo-cpln-organization
```
```text Output theme={null}
+-----------------------+------------------+----------------------------+----------------------+
|NAME |DESCRIPTION |LINK |TAGS |
|-----------------------|------------------|----------------------------|----------------------|
|demo-cpln-organization |Demo Organization |/org/demo-cpln-organization |demo-key="demo-value" |
| | | |type="demo" |
+-----------------------+------------------+----------------------------+----------------------+
```
* Search for an organization based on the description property
```bash Command theme={null}
cpln org query --match any --prop description="Demo Organization"
```
```text Output theme={null}
+-----------------------+------------------+----------------------------+----------------------+
|NAME |DESCRIPTION |LINK |TAGS |
|-----------------------|------------------|----------------------------|----------------------|
|demo-cpln-organization |Demo Organization |/org/demo-cpln-organization |demo-key="demo-value" |
| | | |type="demo" |
+-----------------------+------------------+----------------------------+----------------------+
```
* Search for an organization based on a tag
```bash Command theme={null}
cpln org query --match any --tag type=demo
```
```text Output theme={null}
+-----------------------+------------------+----------------------------+----------------------+
|NAME |DESCRIPTION |LINK |TAGS |
|-----------------------|------------------|----------------------------|----------------------|
|demo-cpln-organization |Demo Organization |/org/demo-cpln-organization |demo-key="demo-value" |
| | | |type="demo" |
+-----------------------+------------------+----------------------------+----------------------+
```
* Search for an organization based on a property and tag
```bash Command theme={null}
cpln org query --match any --prop description="Demo Organization" --tag type=demo
```
```text Output theme={null}
+-----------------------+------------------+----------------------------+----------------------+
|NAME |DESCRIPTION |LINK |TAGS |
|-----------------------|------------------|----------------------------|----------------------|
|demo-cpln-organization |Demo Organization |/org/demo-cpln-organization |demo-key="demo-value" |
| | | |type="demo" |
+-----------------------+------------------+----------------------------+----------------------+
```
***
#### org tag
Manage the tags belonging to one or more referenced organizations
**Usage**
```none theme={null}
cpln org tag --tag KEY=VALUE [OPTIONS]
```
Built-in tags, which begin with cpln/\*, can't be modified.
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [required] [default: []]
Command options:
--tag Attach tags (e.g., --tag drink=water)
--remove-tag Remove tags (e.g., --remove-tag tagname)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Add a tag
```bash Command theme={null}
cpln org tag demo-cpln-organization --tag drink=water
```
```text Output theme={null}
+-----------------------+------------------+----------------------------+----------------------+
|NAME |DESCRIPTION |LINK |TAGS |
|-----------------------|------------------|----------------------------|----------------------|
|demo-cpln-organization |Demo Organization |/org/demo-cpln-organization |demo-key="demo-value" |
| | | |drink="water" |
| | | |type="demo" |
+-----------------------+------------------+----------------------------+----------------------+
```
* Update same tag (after running the example above)
```bash Command theme={null}
cpln org tag demo-cpln-organization --tag drink=coffee
```
```text Output theme={null}
+-----------------------+------------------+----------------------------+----------------------+
|NAME |DESCRIPTION |LINK |TAGS |
|-----------------------|------------------|----------------------------|----------------------|
|demo-cpln-organization |Demo Organization |/org/demo-cpln-organization |demo-key="demo-value" |
| | | |drink="coffee" |
| | | |type="demo" |
+-----------------------+------------------+----------------------------+----------------------+
```
* Remove tag (after running the example above)
```bash Command theme={null}
cpln org tag demo-cpln-organization --remove drink
```
```text Output theme={null}
+-----------------------+------------------+----------------------------+----------------------+
|NAME |DESCRIPTION |LINK |TAGS |
|-----------------------|------------------|----------------------------|----------------------|
|demo-cpln-organization |Demo Organization |/org/demo-cpln-organization |demo-key="demo-value" |
| | | |type="demo" |
+-----------------------+------------------+----------------------------+----------------------+
```
***
#### org update
Update properties of the referenced organization
**Usage**
```none theme={null}
cpln org update --set UPDATE_PROPERTY [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Update Properties:
--set Update the following properties (e.g., --set description="Updated Description"):
description string
tags. string
--unset Unset a property (same paths as --set, e.g., --unset description)
Command options:
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* The `--set` option allows the modification of the following organization properties:
* `description`
* Description of the organization
* Type: string
* `tags`
* Tags (key=value) associated with the organization
* Type: string
* For the examples below, the initial organization is configured as:
```
+-----------------------+------------------+----------------------------+----------------------+
|NAME |DESCRIPTION |LINK |TAGS |
|-----------------------|------------------|----------------------------|----------------------|
|demo-cpln-organization |Demo Organization |/org/demo-cpln-organization |demo-key="demo-value" |
| | | |type="demo" |
+-----------------------+------------------+----------------------------+----------------------+
```
* Update an organization's description
```bash Command theme={null}
cpln org update demo-cpln-organization --set description="new description"
```
```text Output theme={null}
+-----------------------+----------------+----------------------------+----------------------+
|NAME |DESCRIPTION |LINK |TAGS |
|-----------------------|----------------|----------------------------|----------------------|
|demo-cpln-organization |new description |/org/demo-cpln-organization |demo-key="demo-value" |
| | | |type="demo" |
+-----------------------+----------------+----------------------------+----------------------+
```
* Update an organization's tag
```bash Command theme={null}
cpln org update demo-cpln-organization --set tags.demo-key=demo-value
```
```text Output theme={null}
+-----------------------+----------------+----------------------------+----------------------+
|NAME |DESCRIPTION |LINK |TAGS |
|-----------------------|----------------|----------------------------|----------------------|
|demo-cpln-organization |new description |/org/demo-cpln-organization |demo-key="demo-value" |
| | | |type="demo" |
+-----------------------+----------------+----------------------------+----------------------+
```
***
# policy
Source: https://docs.controlplane.com/cli-reference/commands/policy
cpln policy — Manage access policies to resource that control permissions for users, groups, and service accounts.
Manage access policies
For a detailed overview, please visit the [policy's](/reference/policy) reference page.
```none theme={null}
cpln policy [SUBCOMMAND]
```
```text theme={null}
Commands:
cpln policy access-report Show the access report for the referenced policy
cpln policy add-binding Bind one or more permissions to the referenced policy and associate it with one or more users / service accounts / groups / identities
cpln policy audit [ref] Retrieve audit trail events for the referenced policy
cpln policy clone Clone a policy [aliases: copy]
cpln policy create Create a new policy
cpln policy delete Delete one or more referenced policies
cpln policy edit Edit the referenced policy, as YAML, within an editor
cpln policy eventlog Show the event log of the referenced policy [aliases: log]
cpln policy get [ref...] Retrieve one or more referenced policies
cpln policy patch Update the referenced policy's metadata using an input file
cpln policy permissions Show the grantable permissions for a policy object type
cpln policy query Find all the policies based on the given query
cpln policy remove-binding Remove the bindings of one or more permissions from the referenced policy and disassociate it from one or more users / service accounts / groups / identities
cpln policy tag Manage the tags belonging to one or more referenced policies
cpln policy update Update properties of the referenced policy
Options:
--help Show help [boolean]
```
***
#### policy access-report
Show the access report for the referenced policy
**Usage**
```none theme={null}
cpln policy access-report [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln policy access-report demo-policy --org demo-cpln-organization
```
```text Output theme={null}
+-----------+--------------------------------------------------------+--------+
|PERMISSION |PRINCIPAL |GRANTED |
|-----------|--------------------------------------------------------|--------|
|create |/org/demo-cpln-organization/group/superusers |manage |
|create |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|delete |/org/demo-cpln-organization/group/superusers |manage |
|delete |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|edit |/org/demo-cpln-organization/group/superusers |manage |
|edit |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|manage |/org/demo-cpln-organization/group/superusers |manage |
|manage |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
|view |/org/demo-cpln-organization/group/viewers |view |
|view |/org/demo-cpln-organization/group/superusers |manage |
|view |/org/demo-cpln-organization/serviceaccount/controlplane |manage |
+-----------+--------------------------------------------------------+--------+
```
***
#### policy add-binding
Bind one or more permissions to the referenced policy and associate it with one or more users / service accounts / groups / identities
**Usage**
```none theme={null}
cpln policy add-binding --permission PERMISSION_NAME COMMAND_OPTIONS [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--email User email to add permission
--serviceaccount Service account name to add permission
--group Group name to add permission
--identity Identity name OR link to add permission
--permission Permission to add [required]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
--gvc Override the global virtual cloud. The default global virtual cloud can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Bind the view permission to the referenced policy named \`demo-policy-add-binding\` and associate it with the built-in controlplane service account
```bash Command theme={null}
cpln policy add-binding demo-policy --permission view --serviceaccount controlplane --org demo-cpln-organization
```
```text Output theme={null}
+------------+------------+--------------+------------+--------+--------+--------------+
|NAME |DESCRIPTION |CREATED |TARGET KIND |MATCHES |ORIGIN |TAGS |
|------------|------------|--------------|------------|--------|--------|--------------|
|demo-policy |demo-policy |3 minutes ago |org |all |default |drink="water" |
+------------+------------+--------------+------------+--------+--------+--------------+
```
***
#### policy audit
Retrieve audit trail events for the referenced policy
**Usage**
```none theme={null}
cpln policy audit [ref] [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource.
Command options:
--subject Filter by subject (serviceaccount name or user email) [string]
--context Audit context name (the 'cpln' context displays Control Plane actions) [string] [default: "cpln"]
--since Relative lookback window from now (e.g., 1h, 24h, 7d). Mutually exclusive with --from/--to [string] [default: "7d"]
--from Start time for audit events (ISO 8601 format or relative duration, e.g., 2025-10-23T07:00:00Z, 7d, 1h). Cannot be used with --since [string]
--to End time for audit events (ISO 8601 format or relative duration, e.g., 2025-10-23T07:00:00Z, 1d, 30m) [string]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
***
#### policy clone
Clone a policy
**Usage**
```none theme={null}
cpln policy clone --name CLONE_NAME [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--name Set the name for the clone [required]
--description Optional description, defaults to the name if not set
--tag Attach tags (e.g., --tag drink=water)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln policy clone demo-policy --name demo-policy-clone --org demo-cpln-organization
```
```text Output theme={null}
+------------------+---------------------+--------+------------+--------+--------+--------------+
|NAME |DESCRIPTION |CREATED |TARGET KIND |MATCHES |ORIGIN |TAGS |
|------------------|---------------------|--------|------------|--------|--------|--------------|
|demo-policy-clone |Clone of demo-policy |Now |org |all |default |drink="water" |
+------------------+---------------------+--------+------------+--------+--------+--------------+
```
***
#### policy create
Create a new policy
**Usage**
```none theme={null}
cpln policy create --name POLICY_NAME --target-kind TARGET [OPTIONS]
```
```text theme={null}
Command options:
--name Name of the new policy, type - to generate a valid name [required]
--description, --desc Optional description, defaults to the name if not set
--target-kind Select a target kind for this policy [required] [choices: "account", "agent", "auditctx", "cloudaccount", "domain", "dbcluster", "group", "gvc", "identity", "image", "location", "memcachecluster", "org", "policy", "quota", "secret", "serviceaccount", "spicedbcluster", "task", "user", "volumeset", "workload"]
--all Apply policy to all instances of the kind [boolean]
--resource Enumerate resource names to add to the policy
--tag Attach tags (e.g., --tag drink=water)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Query spec options:
--query-match Query filter type [choices: "all", "none", "any"] [default: "all"]
--query-property Property to query
--query-tag Tag to query
--query-rel Relation to query
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln policy create --name demo-policy --target-kind org --all --desc demo-policy --tag drink=water --org demo-cpln-organization
```
```text Output theme={null}
+------------+------------+--------+------------+--------+--------+--------------+
|NAME |DESCRIPTION |CREATED |TARGET KIND |MATCHES |ORIGIN |TAGS |
|------------|------------|--------|------------|--------|--------|--------------|
|demo-policy |demo-policy |Now |org |all |default |drink="water" |
+------------+------------+--------+------------+--------+--------+--------------+
```
***
#### policy delete
Delete one or more referenced policies
**Usage**
```none theme={null}
cpln policy delete [OPTIONS]
```
Deleting a policy will remove all associated resources (targets, bindings, etc.)
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [required] [default: []]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln policy delete demo-policy --org demo-cpln-organization
```
```text Output theme={null}
If the delete was successful, a new command prompt will be shown.
```
***
#### policy edit
Edit the referenced policy, as YAML, within an editor
**Usage**
```none theme={null}
cpln policy edit [OPTIONS]
```
The default editor can be set by using the EDITOR environment variable.
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--replace, -r Replace instead of patch/merge [boolean] [default: false]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln policy edit demo-policy --org demo-cpln-organization
```
```text Output theme={null}
Your default editor will be launched.
Once any modifications are saved, the updates will be sent to the API.
```
***
#### policy eventlog
Show the event log of the referenced policy
**Usage**
```none theme={null}
cpln policy eventlog [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln policy eventlog demo-policy --org demo-cpln-organization
```
```text Output theme={null}
The event log for the referenced policy will be shown.
```
***
#### policy get
Retrieve one or more referenced policies
**Usage**
```none theme={null}
cpln policy get [ref...] [OPTIONS]
```
An empty reference will return all references
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [default: []]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Get all policies
```bash Command theme={null}
cpln policy get --org demo-cpln-organization
```
```text Output theme={null}
+---------------------------+-----------------------------------------+--------------+----------------+--------+--------+--------------+
|NAME |DESCRIPTION |CREATED |TARGET KIND |MATCHES |ORIGIN |TAGS |
|---------------------------|-----------------------------------------|--------------|----------------|--------|--------|--------------|
|demo-policy |demo-policy |3 minutes ago |org |all |default |drink="water" |
|demo-policy-get-1 |demo-policy-get-1 |Now |org |all |default | |
|demo-policy-get-2 |demo-policy-get-2 |Now |org |all |default | |
|superusers-agent |Built-in policy granting full access ... |5 years ago |agent |all |builtin | |
|superusers-auditctx |Built-in policy granting full access ... |5 years ago |auditctx |all |builtin | |
|superusers-cloudaccount |Built-in policy granting full access ... |5 years ago |cloudaccount |all |builtin | |
|superusers-domain |Built-in policy granting full access ... |5 years ago |domain |all |builtin | |
|superusers-group |Built-in policy granting full access ... |5 years ago |group |all |builtin | |
|superusers-gvc |Built-in policy granting full access ... |5 years ago |gvc |all |builtin | |
|superusers-identity |Built-in policy granting full access ... |5 years ago |identity |all |builtin | |
|superusers-image |Built-in policy granting full access ... |5 years ago |image |all |builtin | |
|superusers-ipset |Built-in policy granting full access ... |1 year ago |ipset |all |builtin | |
|superusers-location |Built-in policy granting full access ... |5 years ago |location |all |builtin | |
|superusers-memcachecluster |Built-in policy granting full access ... |3 years ago |memcachecluster |all |builtin | |
|superusers-mk8s |Built-in policy granting full access ... |3 years ago |mk8s |all |builtin | |
|superusers-org |Built-in policy granting full access ... |5 years ago |org |all |builtin | |
|superusers-policy |Built-in policy granting full access ... |5 years ago |policy |all |builtin | |
|superusers-quota |Built-in policy granting full access ... |5 years ago |quota |all |builtin | |
|superusers-secret |Built-in policy granting full access ... |5 years ago |secret |all |builtin | |
|superusers-serviceaccount |Built-in policy granting full access ... |5 years ago |serviceaccount |all |builtin | |
|superusers-spicedbcluster |Built-in policy granting full access ... |2 years ago |spicedbcluster |all |builtin | |
|superusers-task |Built-in policy granting full access ... |5 years ago |task |all |builtin | |
|superusers-user |Built-in policy granting full access ... |5 years ago |user |all |builtin | |
|superusers-volumeset |Built-in policy granting full access ... |3 years ago |volumeset |all |builtin | |
|superusers-workload |Built-in policy granting full access ... |5 years ago |workload |all |builtin | |
|viewers-agent |Built-in policy granting read-only ac... |5 years ago |agent |all |builtin | |
|viewers-auditctx |Built-in policy granting read-only ac... |5 years ago |auditctx |all |builtin | |
|viewers-cloudaccount |Built-in policy granting read-only ac... |5 years ago |cloudaccount |all |builtin | |
|viewers-domain |Built-in policy granting read-only ac... |5 years ago |domain |all |builtin | |
|viewers-group |Built-in policy granting read-only ac... |5 years ago |group |all |builtin | |
|viewers-gvc |Built-in policy granting read-only ac... |5 years ago |gvc |all |builtin | |
|viewers-identity |Built-in policy granting read-only ac... |5 years ago |identity |all |builtin | |
|viewers-image |Built-in policy granting read-only ac... |5 years ago |image |all |builtin | |
|viewers-ipset |Built-in policy granting read-only ac... |1 year ago |ipset |all |builtin | |
|viewers-location |Built-in policy granting read-only ac... |5 years ago |location |all |builtin | |
|viewers-memcachecluster |Built-in policy granting read-only ac... |3 years ago |memcachecluster |all |builtin | |
|viewers-mk8s |Built-in policy granting read-only ac... |3 years ago |mk8s |all |builtin | |
|viewers-policy |Built-in policy granting read-only ac... |5 years ago |policy |all |builtin | |
|viewers-quota |Built-in policy granting read-only ac... |5 years ago |quota |all |builtin | |
|viewers-secret |Built-in policy granting read-only ac... |5 years ago |secret |all |builtin | |
|viewers-serviceaccount |Built-in policy granting read-only ac... |5 years ago |serviceaccount |all |builtin | |
|viewers-spicedbcluster |Built-in policy granting read-only ac... |2 years ago |spicedbcluster |all |builtin | |
|viewers-task |Built-in policy granting read-only ac... |5 years ago |task |all |builtin | |
|viewers-user |Built-in policy granting read-only ac... |5 years ago |user |all |builtin | |
|viewers-volumeset |Built-in policy granting read-only ac... |3 years ago |volumeset |all |builtin | |
|viewers-workload |Built-in policy granting read-only ac... |5 years ago |workload |all |builtin | |
+---------------------------+-----------------------------------------+--------------+----------------+--------+--------+--------------+
```
* Get one policy
```bash Command theme={null}
cpln policy get demo-policy-get-1 --org demo-cpln-organization
```
```text Output theme={null}
+------------------+------------------+--------+------------+--------+--------+-----+
|NAME |DESCRIPTION |CREATED |TARGET KIND |MATCHES |ORIGIN |TAGS |
|------------------|------------------|--------|------------|--------|--------|-----|
|demo-policy-get-1 |demo-policy-get-1 |Now |org |all |default | |
+------------------+------------------+--------+------------+--------+--------+-----+
```
* Get multiple policies
```bash Command theme={null}
cpln policy get demo-policy-get-1 demo-policy-get-2 --org demo-cpln-organization
```
```text Output theme={null}
+------------------+------------------+--------+------------+--------+--------+-----+
|NAME |DESCRIPTION |CREATED |TARGET KIND |MATCHES |ORIGIN |TAGS |
|------------------|------------------|--------|------------|--------|--------|-----|
|demo-policy-get-1 |demo-policy-get-1 |Now |org |all |default | |
|demo-policy-get-2 |demo-policy-get-2 |Now |org |all |default | |
+------------------+------------------+--------+------------+--------+--------+-----+
```
***
#### policy patch
Update the referenced policy's metadata using an input file
**Usage**
```none theme={null}
cpln policy patch --file FILE_NAME [OPTIONS]
```
Running this command with the option **`--file -`** sets the input to stdin. The input is required to be a valid JSON or YAML string (e.g., `{"description": "My new description"}` or `description: My new description`). To complete the update, press Control-D (or Control-Z if you are using Windows).
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--file, -f File to load the patch from. Use `--file -` to enable input from stdin. [required]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln policy patch demo-policy --file update.json --org demo-cpln-organization
```
```text Output theme={null}
The changes within the JSON file will be performed against the referenced policy.
```
***
#### policy permissions
Show the grantable permissions for a policy object type
**Usage**
```none theme={null}
cpln policy permissions [OPTIONS]
```
```text theme={null}
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln policy permissions --org demo-cpln-organization
```
```text Output theme={null}
+-------+-------------------------+-----------------------------------+
|NAME |DESCRIPTION |IMPLIES |
|-------|-------------------------|-----------------------------------|
|create |Create new policies | |
|delete |Delete existing policies | |
|edit |Modify existing policies |view |
|manage |Full access |create, delete, edit, manage, view |
|view |Read-only view | |
+-------+-------------------------+-----------------------------------+
```
***
#### policy query
Find all the policies based on the given query
**Usage**
```none theme={null}
cpln policy query QUERY_OPTIONS [OPTIONS]
```
```text theme={null}
Query options:
--match Query filter type [choices: "all", "none", "any"] [default: "all"]
--property, --prop Property to query
--tag Tag to query
--rel Relation to query
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
Use the `--match` option to display **all**, **none**, or **any** of the results based on a given property or tag
* Search for a policy based on the name property
```bash Command theme={null}
cpln policy query --match any --prop name=demo-policy --org demo-cpln-organization
```
```text Output theme={null}
+------------+------------+--------------+------------+--------+--------+--------------+
|NAME |DESCRIPTION |CREATED |TARGET KIND |MATCHES |ORIGIN |TAGS |
|------------|------------|--------------|------------|--------|--------|--------------|
|demo-policy |demo-policy |3 minutes ago |org |all |default |drink="water" |
+------------+------------+--------------+------------+--------+--------+--------------+
```
* Search for a policy based on the description property
```bash Command theme={null}
cpln policy query --match any --prop description="demo-policy" --org demo-cpln-organization
```
```text Output theme={null}
+------------+------------+--------------+------------+--------+--------+--------------+
|NAME |DESCRIPTION |CREATED |TARGET KIND |MATCHES |ORIGIN |TAGS |
|------------|------------|--------------|------------|--------|--------|--------------|
|demo-policy |demo-policy |4 minutes ago |org |all |default |drink="water" |
+------------+------------+--------------+------------+--------+--------+--------------+
```
* Search for a policy based on a tag
```bash Command theme={null}
cpln policy query --match any --tag drink=water --org demo-cpln-organization
```
```text Output theme={null}
+------------+------------+--------------+------------+--------+--------+--------------+
|NAME |DESCRIPTION |CREATED |TARGET KIND |MATCHES |ORIGIN |TAGS |
|------------|------------|--------------|------------|--------|--------|--------------|
|demo-policy |demo-policy |4 minutes ago |org |all |default |drink="water" |
+------------+------------+--------------+------------+--------+--------+--------------+
```
* Search for a policy based on a property and tag
```bash Command theme={null}
cpln policy query --match any --prop description="demo-policy" --tag drink=water --org demo-cpln-organization
```
```text Output theme={null}
+------------+------------+--------------+------------+--------+--------+--------------+
|NAME |DESCRIPTION |CREATED |TARGET KIND |MATCHES |ORIGIN |TAGS |
|------------|------------|--------------|------------|--------|--------|--------------|
|demo-policy |demo-policy |4 minutes ago |org |all |default |drink="water" |
+------------+------------+--------------+------------+--------+--------+--------------+
```
***
#### policy remove-binding
Remove the bindings of one or more permissions from the referenced policy and disassociate it from one or more users / service accounts / groups / identities
**Usage**
```none theme={null}
cpln policy remove-binding --permission PERMISSION_NAME COMMAND_OPTIONS [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Command options:
--email User email to remove permission
--serviceaccount Service account name to remove permission
--group Group name to remove permission
--identity Identity name OR link to remove permission
--permission Permission to remove [required]
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
--gvc Override the global virtual cloud. The default global virtual cloud can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Remove the binding of the view permission from the policy named `demo-policy` and disassociate it with the built-in controlplane service account.
```bash Command theme={null}
cpln policy remove-binding demo-policy --permission manage --serviceaccount controlplane --org demo-cpln-organization
```
```text Output theme={null}
+------------+------------+--------------+------------+--------+--------+--------------+
|NAME |DESCRIPTION |CREATED |TARGET KIND |MATCHES |ORIGIN |TAGS |
|------------|------------|--------------|------------|--------|--------|--------------|
|demo-policy |demo-policy |4 minutes ago |org |all |default |drink="water" |
+------------+------------+--------------+------------+--------+--------+--------------+
```
***
#### policy tag
Manage the tags belonging to one or more referenced policies
**Usage**
```none theme={null}
cpln policy tag --tag KEY=VALUE [OPTIONS]
```
Built-in tags, which begin with cpln/\*, can't be modified.
```text theme={null}
Positionals:
ref One or more resource references. Usually it is the name of the resource. [array] [required] [default: []]
Command options:
--tag Attach tags (e.g., --tag drink=water)
--remove-tag Remove tags (e.g., --remove-tag tagname)
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Add a tag to a policy
```bash Command theme={null}
cpln policy tag demo-policy-tag-1 --tag drink=water --org demo-cpln-organization
```
```text Output theme={null}
+------------------+------------------+--------+------------+--------+--------+--------------+
|NAME |DESCRIPTION |CREATED |TARGET KIND |MATCHES |ORIGIN |TAGS |
|------------------|------------------|--------|------------|--------|--------|--------------|
|demo-policy-tag-1 |demo-policy-tag-1 |Now |org |all |default |drink="water" |
+------------------+------------------+--------+------------+--------+--------+--------------+
```
* Update same tag (after running the example above)
```bash Command theme={null}
cpln policy tag demo-policy-tag-1 --tag drink=coffee --org demo-cpln-organization
```
```text Output theme={null}
+------------------+------------------+--------+------------+--------+--------+---------------+
|NAME |DESCRIPTION |CREATED |TARGET KIND |MATCHES |ORIGIN |TAGS |
|------------------|------------------|--------|------------|--------|--------|---------------|
|demo-policy-tag-1 |demo-policy-tag-1 |Now |org |all |default |drink="coffee" |
+------------------+------------------+--------+------------+--------+--------+---------------+
```
* Remove tag (after running the example above)
```bash Command theme={null}
cpln policy tag demo-policy-tag-1 --remove drink --org demo-cpln-organization
```
```text Output theme={null}
+------------------+------------------+--------+------------+--------+--------+-----+
|NAME |DESCRIPTION |CREATED |TARGET KIND |MATCHES |ORIGIN |TAGS |
|------------------|------------------|--------|------------|--------|--------|-----|
|demo-policy-tag-1 |demo-policy-tag-1 |Now |org |all |default | |
+------------------+------------------+--------+------------+--------+--------+-----+
```
* Add same tag to multiple policies
```bash Command theme={null}
cpln policy tag demo-policy-tag-1 demo-policy-tag-2 --tag multiple-policies=true --org demo-cpln-organization
```
```text Output theme={null}
+------------------+------------------+--------+------------+--------+--------+-------------------------+
|NAME |DESCRIPTION |CREATED |TARGET KIND |MATCHES |ORIGIN |TAGS |
|------------------|------------------|--------|------------|--------|--------|-------------------------|
|demo-policy-tag-1 |demo-policy-tag-1 |Now |org |all |default |multiple-policies="true" |
|demo-policy-tag-2 |demo-policy-tag-2 |Now |org |all |default |multiple-policies="true" |
+------------------+------------------+--------+------------+--------+--------+-------------------------+
```
* Update same tag on multiple policies (after running the example above)
```bash Command theme={null}
cpln policy tag demo-policy-tag-1 demo-policy-tag-2 --tag multiple-policies=demo-policy --org demo-cpln-organization
```
```text Output theme={null}
+------------------+------------------+--------+------------+--------+--------+--------------------------------+
|NAME |DESCRIPTION |CREATED |TARGET KIND |MATCHES |ORIGIN |TAGS |
|------------------|------------------|--------|------------|--------|--------|--------------------------------|
|demo-policy-tag-1 |demo-policy-tag-1 |Now |org |all |default |multiple-policies="demo-policy" |
|demo-policy-tag-2 |demo-policy-tag-2 |Now |org |all |default |multiple-policies="demo-policy" |
+------------------+------------------+--------+------------+--------+--------+--------------------------------+
```
* Remove same tag from multiple policies (after running the example above)
```bash Command theme={null}
cpln policy tag demo-policy-tag-1 demo-policy-tag-2 --remove multiple-policies --org demo-cpln-organization
```
```text Output theme={null}
+------------------+------------------+--------+------------+--------+--------+-----+
|NAME |DESCRIPTION |CREATED |TARGET KIND |MATCHES |ORIGIN |TAGS |
|------------------|------------------|--------|------------|--------|--------|-----|
|demo-policy-tag-1 |demo-policy-tag-1 |Now |org |all |default | |
|demo-policy-tag-2 |demo-policy-tag-2 |Now |org |all |default | |
+------------------+------------------+--------+------------+--------+--------+-----+
```
***
#### policy update
Update properties of the referenced policy
**Usage**
```none theme={null}
cpln policy update --set UPDATE_PROPERTY [OPTIONS]
```
```text theme={null}
Positionals:
ref The resource reference. Usually it is the name of the resource. [required]
Update Properties:
--set Update the following properties (e.g., --set description="Updated Description"):
description string
tags. string
targetLinks string[]
target { 'all' }
Arrays can be appended to, replaced, or removed using the `+=`, `=`, or `-=` operators, respectively.
--unset Unset a property (same paths as --set, e.g., --unset description)
Command options:
--dry-run Validate the request and print the resource that would be written, without writing it. Defaults the output format to yaml-slim [boolean]
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* The `--set` option allows the modification of the following policy properties:
* `description`
* Description of the policy
* Type: string
* `tags`
* Tags (key=value) associated with the policy
* Type: string
* `targetLinks`
* Array of target links belonging to the policy
* Type: string
* `target`
* The target of the policy
* Type: string
* Allowed values: 'all'
* For the examples below, the initial policy is configured as:
```
+------------+------------+--------+------------+--------+--------+--------------+
|NAME |DESCRIPTION |CREATED |TARGET KIND |MATCHES |ORIGIN |TAGS |
|------------|------------|--------|------------|--------|--------|--------------|
|demo-policy |demo-policy |Now |org |all |default |drink="water" |
+------------+------------+--------+------------+--------+--------+--------------+
```
* Update a policy's description
```bash Command theme={null}
cpln policy update demo-policy --set description="new description" --org demo-cpln-organization
```
```text Output theme={null}
+------------+----------------+--------------+------------+--------+--------+--------------+
|NAME |DESCRIPTION |CREATED |TARGET KIND |MATCHES |ORIGIN |TAGS |
|------------|----------------|--------------|------------|--------|--------|--------------|
|demo-policy |new description |4 minutes ago |org |all |default |drink="water" |
+------------+----------------+--------------+------------+--------+--------+--------------+
```
* Update a policy's tags
```bash Command theme={null}
cpln policy update demo-policy --set tags.demo-key=demo-value --org demo-cpln-organization
```
```text Output theme={null}
+------------+----------------+--------------+------------+--------+--------+----------------------+
|NAME |DESCRIPTION |CREATED |TARGET KIND |MATCHES |ORIGIN |TAGS |
|------------|----------------|--------------|------------|--------|--------|----------------------|
|demo-policy |new description |4 minutes ago |org |all |default |demo-key="demo-value" |
| | | | | | |drink="water" |
+------------+----------------+--------------+------------+--------+--------+----------------------+
```
* Add to a policy's target links.
```bash Command theme={null}
cpln policy update demo-policy --set targetLinks+="/org/demo-cpln-organization/gvc/demo-gvc-policy" --org demo-cpln-organization
```
```text Output theme={null}
+------------+----------------+--------------+------------+--------+--------+----------------------+
|NAME |DESCRIPTION |CREATED |TARGET KIND |MATCHES |ORIGIN |TAGS |
|------------|----------------|--------------|------------|--------|--------|----------------------|
|demo-policy |new description |4 minutes ago |org |all |default |demo-key="demo-value" |
| | | | | | |drink="water" |
+------------+----------------+--------------+------------+--------+--------+----------------------+
```
* Remove from a policy's target links.
```bash Command theme={null}
cpln policy update demo-policy --set targetLinks-="/org/demo-cpln-organization/gvc/demo-gvc-policy" --org demo-cpln-organization
```
```text Output theme={null}
+------------+----------------+--------------+------------+--------+--------+----------------------+
|NAME |DESCRIPTION |CREATED |TARGET KIND |MATCHES |ORIGIN |TAGS |
|------------|----------------|--------------|------------|--------|--------|----------------------|
|demo-policy |new description |4 minutes ago |org |all |default |demo-key="demo-value" |
| | | | | | |drink="water" |
+------------+----------------+--------------+------------+--------+--------+----------------------+
```
* Update a policy's target to all
```bash Command theme={null}
cpln policy update demo-policy --set target=all --org demo-cpln-organization
```
```text Output theme={null}
+------------+----------------+--------------+------------+--------+--------+----------------------+
|NAME |DESCRIPTION |CREATED |TARGET KIND |MATCHES |ORIGIN |TAGS |
|------------|----------------|--------------|------------|--------|--------|----------------------|
|demo-policy |new description |4 minutes ago |org |all |default |demo-key="demo-value" |
| | | | | | |drink="water" |
+------------+----------------+--------------+------------+--------+--------+----------------------+
```
***
# port-forward
Source: https://docs.controlplane.com/cli-reference/commands/port-forward
cpln port-forward — Establish secure local port forwarding to a running workload.
Establish secure local access to your workload.
Refer to the [cpln port-forward](/guides/cli/cpln-port-forward) guide for additional details.
**Usage**
```none theme={null}
cpln port-forward [OPTIONS]
```
```text theme={null}
Positionals:
ref The name of the workload to forward traffic to. [string] [required]
ports Port mappings in the format [LOCAL_PORT:]REMOTE_PORT (e.g. 8080:80). [array] [required] [default: []]
Command options:
--location A global virtual cloud location [string]
--address Addresses to listen on (comma separated). Only accepts IP addresses or localhost as a value. When localhost is supplied, cpln will try to bind on both 127.0.0.1 and ::1 and will fail if neither of these addresses are available to bind. [default: "localhost"]
--replica The name of the workload deployment replica
Context options:
--profile Override the profile. The default profile can be set using the `cpln profile set-default` command or by setting the CPLN_PROFILE environment variable
--org Override the organization. The default organization can be set in your profile by using the `cpln profile update` command
--gvc Override the global virtual cloud. The default global virtual cloud can be set in your profile by using the `cpln profile update` command
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--help Show help [boolean]
--version, -v Show version number [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Forward a single port from workload to local machine
```bash Command theme={null}
cpln port-forward db-workload 5432:5432 --location aws-us-west-1 --org demo-org --gvc demo-gvc
```
```text Output theme={null}
Forwarding from 127.0.0.1:5432 -> 5432
```
* Forward multiple ports from workload to local machine
```bash Command theme={null}
cpln port-forward db-workload 8080:80 8443:443 --location aws-us-west-1 --org demo-org --gvc demo-gvc
```
```text Output theme={null}
Forwarding from 127.0.0.1:8080 -> 80
Forwarding from 127.0.0.1:8443 -> 443
```
* Forward workload ports to multiple addresses
```bash Command theme={null}
cpln port-forward db-workload 5432:5432 --address 0.0.0.0,127.0.0.1 --location aws-us-west-1 --org demo-org --gvc demo-gvc
```
```text Output theme={null}
Forwarding from 0.0.0.0:5432 -> 5432
Forwarding from 127.0.0.1:5432 -> 5432
```
* Assign an ephemeral local port
```bash Command theme={null}
cpln port-forward db-workload :80 --location aws-us-west-1 --org demo-org --gvc demo-gvc
```
```text Output theme={null}
Forwarding from 127.0.0.1:56421 -> 80
```
* Assign the same local and remote port
```bash Command theme={null}
cpln port-forward db-workload 80 --location aws-us-west-1 --org demo-org --gvc demo-gvc
```
```text Output theme={null}
Forwarding from 127.0.0.1:80 -> 80
```
***
# profile
Source: https://docs.controlplane.com/cli-reference/commands/profile
cpln profile — Manage local CLI profiles for storing authentication and context settings.
Manage local profiles
For a detailed overview, please visit the [manage CLI profiles](/cli-reference/get-started/profiles) guide.
```none theme={null}
cpln profile [SUBCOMMAND]
```
```text theme={null}
Commands:
cpln profile delete Delete one or more referenced profiles
cpln profile get [profiles...] Retrieve one or more profiles
cpln profile login [ref] Create a profile named "default" and print a URL and a confirmation code to complete sign-in in any browser
cpln profile set-default Set the referenced profile as the default
cpln profile token [profile] Show the JWT token of the referenced profile
cpln profile update Manage the referenced profile [aliases: create]
Options:
--version, -v Show version number [boolean]
--help Show help [boolean]
```
***
#### profile delete
Delete one or more referenced profiles
**Usage**
```none theme={null}
cpln profile delete [OPTIONS]
```
```text theme={null}
Positionals:
profile One or more profile names to delete
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--version, -v Show version number [boolean]
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Delete one profile
```bash Command theme={null}
cpln profile delete default
```
```text Command theme={null}
A table showing the profile details will return if the delete was successful. Otherwise, an empty table will be displayed.
```
* Delete multiple profiles
```bash Command theme={null}
cpln profile delete demo-profile@example.com default
```
```text Output theme={null}
A table showing the profile details will return if the delete was successful. Otherwise, an empty table will be displayed.
```
***
#### profile get
Retrieve one or more profiles
**Usage**
```none theme={null}
cpln profile get [profiles...] [OPTIONS]
```
An empty reference will return all references
```text theme={null}
Positionals:
profiles One or more profiles to show [array] [default: []]
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--version, -v Show version number [boolean]
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln profile get default
```
```text Output theme={null}
+--------+---------------------+--------+-------+-------------------------+----+----+-------+-----------+
|PROFILE |EMAIL |DEFAULT |ACTIVE |ENDPOINT |ORG |GVC |OUTPUT |TIMESTAMPS |
|--------|---------------------|--------|-------|-------------------------|----|----|-------|-----------|
|default |test-128@example.com |* |* |https://api.test.cpln.io | | |text |age |
+--------+---------------------+--------+-------+-------------------------+----+----+-------+-----------+
```
***
#### profile login
Create a profile named "default" and print a URL and a confirmation code to complete sign-in in any browser
**Usage**
```none theme={null}
cpln profile login [ref] [OPTIONS]
```
```text theme={null}
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Positionals:
ref The resource reference. Usually it is the name of the resource.
Options:
--version, -v Show version number [boolean]
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln profile login
```
```text Output theme={null}
A new browser will open displaying the Control Plane login page.
If the login was successful, the browser will indicate that it can be closed. The CLI will display the login results. Press
Control-C to exit the CLI login.
If the login failed, the browser and be closed and the CLI will return to the command prompt. Run \`cpln profile login\` again to
restart the login.
```
***
#### profile set-default
Set the referenced profile as the default
**Usage**
```none theme={null}
cpln profile set-default [OPTIONS]
```
```text theme={null}
Positionals:
profile Profile name to be set as the default [required]
Options:
--version, -v Show version number [boolean]
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln profile set-default demo-profile
```
```text Output theme={null}
The referenced profile will be set as the default for all future executions of the CLI commands.
If the set was successful, the command prompt will return. Otherwise, the error will be shown.
```
***
#### profile token
Show the JWT token of the referenced profile
**Usage**
```none theme={null}
cpln profile token [profile] [OPTIONS]
```
An empty reference will return the token for the default profile
```text theme={null}
Positionals:
profile Profile to retrieve the token for
Command options:
--serve Serve token on a local server [boolean]
--port Port for the local server [number] [default: 43200]
--jwt View your jwt for the token server [boolean]
--generateToken Generate a new jwt token for the token server [boolean]
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--version, -v Show version number [boolean]
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
```bash Command theme={null}
cpln profile token demo-profile
```
```text Output theme={null}
A valid JWT token for the referenced profile "demo-profile" will be shown.
```
```text Token Server Usage theme={null}
- 'cpln profile token --serve': Create a server (default port of 43200) instead of outputting the token directly.
This command generates a profile specific token to authenticate against this token server.
- 'cpln profile token --serve --port PORT': Sets the port of the token server.
- 'cpln profile token --jwt': Outputs the token server token for the profile.
- 'cpln profile token --generateToken': Regenerates a token for the profile, for the token server.
An example use case is to integrate the server to a Postman collection. The collection can then make requests to the Control Plane API
without needing to manually copy the token. After the server is running, by executing the 'cpln profile token --serve' command , the user
can utilize the Pre-request script below in Postman:
------------------------
const postRequest = {
url: "http://localhost:" + pm.environment.get("cplnTokenServerPort") + "/" + pm.environment.get("profile") + "/token",
method: 'GET',
header: {
'authorization': "Bearer " + pm.environment.get("cplnTokenServerToken")
},
};
pm.sendRequest(postRequest, (err, response) => {
pm.environment.set("token", response.text());
})
------------------------
```
***
#### profile update
Manage the referenced profile
**Usage**
```none theme={null}
cpln profile update COMMAND_OPTIONS [OPTIONS]
```
```text theme={null}
Positionals:
profile Name of the profile to update. If it does not exist, a new profile with that name will be created [required]
Command options:
--login Begin the login process using the referenced profile. Prints a URL and a confirmation code to complete sign-in in any browser
--default Set the given profile as the default
--org Set the given organization as the default organization of the referenced profile
--gvc Set the given GVC as the default GVC of the referenced profile
Format options:
--output, -o Set the output format [choices: "text", "json", "yaml", "json-slim", "yaml-slim", "tf", "crd", "names"]
--color Colorize the output [boolean] [default: true]
--ts Timestamp format if the output format is text (e.g., --output=text) [choices: "iso", "local", "age"]
--max Maximum number of records to show. A value less than 1 will return all records. [number] [default: 50]
Request options:
--token Override the authorization token
--endpoint Override the API URL
--insecure, -k Ignore TLS errors [boolean]
Debug options:
--verbose, -v Enable verbose output to stderr [boolean] [default: false]
--debug, -d Show all HTTP communications [boolean] [default: false]
Options:
--version, -v Show version number [boolean]
--help Show help [boolean]
```
[Common Options Reference](/cli-reference/using-cli/common-options)
* Create a new profile
```bash Command theme={null}
cpln profile update new-profile
```
```text Output theme={null}
If the referenced profile name doesn't exist, a new one will be created.
```
* Perform an interactive login using a custom profile
```bash Command theme={null}
cpln profile update new-profile --login
```
```text Output theme={null}
A browser will open displaying the Control Plane login page.
If the login was successful, a new profile with the given name will be created
(if it doesn't already exist) and the browser will indicate that it can be closed.
This profile will be marked as the default and used by any future CLI command.
The CLI will display the login results. Press Control-C to exit the CLI login.
If the login failed, the CLI will return to the command prompt.
Run the command again to restart the login flow.
```
* Set the referenced profile as the default profile
```bash Command theme={null}
cpln profile update new-profile --default
```
```text Output theme={null}
If the update was successful, the referenced profile will be set as the default for all future cpln commands.
```
* Set a default organization and GVC on the referenced profile
```bash Command theme={null}
cpln profile update new-profile --org demo-cpln-organization --gvc demo-gvc
```
```text Output theme={null}
The referenced organization and GVC will be set as the default on the referenced profile.
Any future execution of a cpln command will use those values.
```
* Remove default organization and GVC on the referenced profile
```bash Command theme={null}
cpln profile update new-profile --org "" --gvc ""
```
```text Output theme={null}
The specified default organization and GVC will be removed from the referenced profile.
Future executions of any CPLN command will require the --org and the --gvc options.
```
***
# quota
Source: https://docs.controlplane.com/cli-reference/commands/quota
cpln quota — Display resource quotas and current usage for your organization.
Show quotas
For a detailed overview, please visit the [quota's](/reference/quota) reference page.
```none theme={null}
cpln quota [SUBCOMMAND]
```
```text theme={null}
Commands:
cpln quota edit Edit the referenced quota, as YAML, within an editor
cpln quota get [ref...] Retrieve one or more referenced quotas
cpln quota patch Update the referenced quota's metadata using an input file
cpln quota permissions Show the grantable permissions for a quota object type
cpln quota query Find all the quotas based on the given query
cpln quota request Manage quota increase requests
Options:
--help Show help [boolean]
```
***
#### quota edit
Edit the referenced quota, as YAML, within an editor
**Usage**
```none theme={null}
cpln quota edit [OPTIONS]
```