---
title: Command structure
description: Ping CLI commands use a consistent multipart structure that must be specified in order.
component: pingcli
version: 1.0
page_id: pingcli:using_pingcli:command-structure
canonical_url: https://developer.pingidentity.com/pingcli/1.0/using_pingcli/command-structure.html
section_ids:
  parts-of-a-command: Parts of a command
  product-commands: Product commands
  resource-actions: Resource action commands
  examples: Examples
  list-configuration-keys: List configuration keys
  list-pingone-environments: List PingOne environments
  learn-more: Learn more
---

# Command structure

Ping CLI commands use a consistent multipart structure that must be specified in order.

## Parts of a command

```
pingcli <command> <subcommand> [options and parameters]
```

| ***Part***                 | ***Description***                                                                                                                                                                                                        |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `pingcli`                  | The base call to the Ping CLI binary.                                                                                                                                                                                    |
| `<command>`                | The top-level command. This is either a core CLI capability (such as `config` or `auth`) or the root of a product namespace (such as `pingone` or `pingfederate`). Refer to [Product commands](#product-commands) below. |
| `<subcommand>`             | The operation to perform within the command. Product commands often have multiple levels of subcommand (for example, `pingcli pingone environments list`).                                                               |
| `[options and parameters]` | Flags and values accepted by the operation. These can be specified in any order after the first three parts. If a flag is specified more than once, only the last value applies.                                         |

## Product commands

Some top-level commands are the root of a product namespace: they group all operations for a specific Ping Identity product or service. A product command by itself does nothing; you must follow it with one or more subcommands that name the resource type and operation.

Product commands available in Ping CLI:

| ***Command*** | ***Product or service***                |
| ------------- | --------------------------------------- |
| `pingone`     | PingOne platform and universal services |
| `davinci`     | DaVinci universal service               |

|   |                                                                                                                                                    |
| - | -------------------------------------------------------------------------------------------------------------------------------------------------- |
|   | Some core commands, such as `auth` and `config`, are not product-specific. They operate at the CLI level and apply across any configured products. |

## Resource action commands

Every resource type exposes a consistent set of action commands. For example, `pingcli pingone applications` supports:

| ***Action*** | ***Aliases***              | ***Description***                                                                                                                                                    |
| ------------ | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `list`       | `ls`, `get-all`, `all`     | Returns all resources of this type in the environment.                                                                                                               |
| `get`        | `read`, `show`, `describe` | Returns a specific resource by ID.                                                                                                                                   |
| `create`     | `new`                      | Creates a new resource from a JSON body supplied using `--from-file`.                                                                                                |
| `replace`    | `update`                   | Replaces an existing resource (HTTP PUT) from a JSON body supplied using `--from-file`. Requires the resource ID.                                                    |
| `delete`     | `remove`, `rm`, `del`      | Deletes a specific resource by ID.                                                                                                                                   |
| `template`   | —                          | Generates a JSON body skeleton to use as the starting point for `create` or `replace`. Refer to [Generating resource templates](generating-resource-templates.html). |

## Examples

### List configuration keys

The following example lists all available Ping CLI configuration keys.

```bash
pingcli config list-keys
```

For more information, refer to [pingcli config list-keys](../command_reference/pingcli_config_list-keys.html).

### List PingOne environments

The following example lists all environments in your PingOne organization.

```bash
pingcli pingone environments list
```

For more information, refer to [pingcli pingone environments list](../command_reference/pingcli_pingone_environments_list.html).

## Learn more

* [Configuration settings reference](../settings_reference/configuration-settings-reference.html)

* [pingcli](../command_reference/pingcli.html)
