{
  "id": "aiven-client",
  "name": "Aiven CLI",
  "homepage": "https://github.com/aiven/aiven-client",
  "description": "aiven-client (avn) is the official command-line client for Aiven.",
  "executables": [
    "avn"
  ],
  "dotfiles": {
    "paths": [
      "~/.config/aiven/aiven-client.json"
    ],
    "secret": [
      "~/.config/aiven/aiven-credentials.json"
    ]
  },
  "commands": {
    "format": 1,
    "label": "Aiven CLI",
    "description": "Query Aiven services. Only listing services is covered; create, update, user and project management commands are left out.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": false,
      "short_attached": false,
      "short_bundles": false
    },
    "subcommand": [
      {
        "path": [
          "service",
          "list"
        ],
        "label": "List services",
        "description": "List the services in a project, or show one service, optionally as raw JSON or with a custom format.",
        "source": [
          {
            "id": "readme",
            "kind": "manual",
            "url": "https://github.com/aiven/aiven-client#readme",
            "revision": "main 2026-10",
            "evidence": "$ avn service list\nList services in a specific project:\n$ avn service list --project proj2\nList only a specific service:\n$ avn service list db1\nVerbose list (includes connection information, etc.):\n$ avn service list db1 -v\nFull service information in JSON, as it is returned by the Aiven REST API:\n$ avn service list db1 --json\nOnly a specific field in the output, custom formatting:\n$ avn service list db1 --format \"The service is at {service_uri}\"\n"
          }
        ],
        "field": [
          {
            "id": "service",
            "label": "Service name",
            "description": "Leave empty to list every service in the project.",
            "type": "string",
            "position": 0,
            "sources": [
              "readme"
            ]
          },
          {
            "id": "project",
            "label": "Project",
            "type": "string",
            "option": [
              "--project"
            ],
            "sources": [
              "readme"
            ]
          },
          {
            "id": "verbose",
            "label": "Verbose",
            "type": "boolean",
            "option": [
              "-v"
            ],
            "sources": [
              "readme"
            ]
          },
          {
            "id": "json",
            "label": "Raw JSON",
            "type": "boolean",
            "option": [
              "--json"
            ],
            "sources": [
              "readme"
            ]
          },
          {
            "id": "format",
            "label": "Output format",
            "description": "A template such as: The service is at {service_uri}",
            "type": "string",
            "option": [
              "--format"
            ],
            "sources": [
              "readme"
            ]
          }
        ],
        "task": [
          {
            "id": "list_all",
            "label": "List all services",
            "fields": [
              "project",
              "verbose"
            ],
            "required": []
          },
          {
            "id": "show_json",
            "label": "Show one service as JSON",
            "fields": [
              "service",
              "project",
              "json"
            ],
            "required": [
              "service",
              "json"
            ],
            "set": {
              "json": [
                true
              ]
            }
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "service",
              "project",
              "verbose"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "json",
              "format"
            ]
          }
        ]
      }
    ]
  }
}
