{
  "id": "velero",
  "name": "Velero",
  "homepage": "https://velero.io",
  "description": "A tool to back up and restore Kubernetes cluster resources and persistent volumes.",
  "executables": [
    "velero"
  ],
  "dotfiles": {
    "paths": [
      "[configHome]/velero/config.json"
    ],
    "secret": []
  },
  "commands": {
    "format": 1,
    "label": "Velero",
    "description": "Back up Kubernetes cluster resources and volumes.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": true,
      "short_bundles": false
    },
    "subcommand": [
      {
        "path": [
          "backup",
          "create"
        ],
        "label": "Create a backup",
        "description": "Create a backup of cluster resources. Resource-type filters, hooks and snapshot options are left out.",
        "source": [
          {
            "id": "src",
            "kind": "help",
            "url": "https://github.com/vmware-tanzu/velero/blob/main/pkg/cmd/cli/backup/create.go",
            "revision": "main 2026-10-27",
            "evidence": "--ttl  How long before the backup can be garbage collected.\n--include-namespaces  Namespaces to include in the backup (use '*' for all namespaces).\n--exclude-namespaces  Namespaces to exclude from the backup.\n--labels  Labels to apply to the backup.\n--storage-location  Location in which to store the backup.\n-l, --selector  Only back up resources matching this label selector.\n--from-schedule  Create a backup from the template of an existing schedule.\n--parallel-files-upload  Number of files uploads simultaneously when running a backup.\n-w, --wait  Wait for the operation to complete.\nvelero backup create backupName --include-cluster-resources=true --include-namespaces=ns1"
          }
        ],
        "field": [
          {
            "id": "name",
            "label": "Backup name",
            "description": "Optional when --from-schedule is used.",
            "type": "string",
            "position": 0,
            "sources": [
              "src"
            ]
          },
          {
            "id": "include_namespaces",
            "label": "Include namespaces",
            "description": "Comma-separated; * for all.",
            "type": "string",
            "option": [
              "--include-namespaces"
            ],
            "sources": [
              "src"
            ]
          },
          {
            "id": "exclude_namespaces",
            "label": "Exclude namespaces",
            "type": "string",
            "option": [
              "--exclude-namespaces"
            ],
            "sources": [
              "src"
            ]
          },
          {
            "id": "selector",
            "label": "Label selector",
            "type": "string",
            "option": [
              "--selector",
              "-l"
            ],
            "sources": [
              "src"
            ]
          },
          {
            "id": "include_cluster_resources",
            "label": "Include cluster resources",
            "type": "string",
            "option": [
              "--include-cluster-resources"
            ],
            "suggestions": [
              {
                "value": "true",
                "label": "Yes"
              },
              {
                "value": "false",
                "label": "No"
              }
            ],
            "sources": [
              "src"
            ]
          },
          {
            "id": "ttl",
            "label": "TTL",
            "description": "How long before the backup can be garbage collected, e.g. 720h.",
            "type": "string",
            "option": [
              "--ttl"
            ],
            "sources": [
              "src"
            ]
          },
          {
            "id": "storage_location",
            "label": "Storage location",
            "type": "string",
            "option": [
              "--storage-location"
            ],
            "sources": [
              "src"
            ]
          },
          {
            "id": "labels",
            "label": "Labels",
            "type": "string",
            "option": [
              "--labels"
            ],
            "sources": [
              "src"
            ]
          },
          {
            "id": "from_schedule",
            "label": "From schedule",
            "description": "Create from an existing schedule's template; cannot be combined with filters.",
            "type": "string",
            "option": [
              "--from-schedule"
            ],
            "sources": [
              "src"
            ]
          },
          {
            "id": "parallel_files_upload",
            "label": "Parallel file uploads",
            "type": "integer",
            "option": [
              "--parallel-files-upload"
            ],
            "sources": [
              "src"
            ]
          },
          {
            "id": "wait",
            "label": "Wait for completion",
            "type": "boolean",
            "option": [
              "--wait",
              "-w"
            ],
            "sources": [
              "src"
            ]
          }
        ],
        "task": [
          {
            "id": "namespace_backup",
            "label": "Back up namespaces",
            "fields": [
              "name",
              "include_namespaces",
              "wait"
            ],
            "required": [
              "name",
              "include_namespaces"
            ]
          },
          {
            "id": "from_schedule",
            "label": "Back up from a schedule",
            "fields": [
              "name",
              "from_schedule",
              "wait"
            ],
            "required": [
              "from_schedule"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "name",
              "include_namespaces",
              "exclude_namespaces",
              "selector",
              "wait"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "include_cluster_resources",
              "ttl",
              "storage_location",
              "labels",
              "from_schedule",
              "parallel_files_upload"
            ]
          }
        ]
      }
    ]
  }
}
