Skip to content

overlane operator discounts revoke

Take a workspace's discount away (Overlane staff)

Updated View as MarkdownOpen in ChatGPTOpen in Claude

Removes the workspace’s discount. The next checkout and invoice use the full price. A workspace with no discount is refused with not_found. Each revoke is written to the audit log. Only the Overlane staff team can call it; without a terminal it needs –force.

Usage

overlane operator discounts revoke [--team TEAM_ID] [--service URL] [--dry-run] [--force]

Flags

Flag Type Required Default Description
--team string no The workspace whose discount is removed (required)
--service string no The service address (default: OVERLANE_SERVICE_URL, then the project’s binding, then the hosted service)
--dry-run boolean no Print the requests and file changes this command would make, then stop. Needs no credentials.
--force boolean no Confirm a destructive action when there is no terminal to ask on. Without it, exit 2.

Examples

overlane operator discounts revoke --team tm-1234 --force
overlane operator discounts revoke --team tm-1234 --dry-run

Behavior

  • Effect: destructive (deletes or reverts; needs --force without a terminal).
  • Needs credentials: yes. Uses the network: yes.
  • Supports --dry-run: yes. Accepts --force: yes.
  • Machine-readable description: overlane schema operator discounts revoke.

Result

With --json (the default when stdout is not a terminal) the command prints this JSON Schema’s shape on stdout.

{
  "anyOf": [
    {
      "type": "object",
      "properties": {
        "tenantId": {
          "type": "string"
        },
        "revoked": {
          "type": "boolean",
          "const": true
        }
      },
      "required": [
        "tenantId",
        "revoked"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "dryRun": {
          "type": "boolean",
          "const": true
        },
        "service": {
          "type": "string"
        },
        "requests": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "method": {
                "type": "string"
              },
              "path": {
                "type": "string"
              },
              "body": {},
              "note": {
                "type": "string"
              }
            },
            "required": [
              "method",
              "path"
            ],
            "additionalProperties": false
          }
        },
        "commands": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "writes": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string"
              },
              "action": {
                "type": "string",
                "enum": [
                  "write",
                  "append",
                  "delete"
                ]
              },
              "description": {
                "type": "string"
              }
            },
            "required": [
              "path",
              "action",
              "description"
            ],
            "additionalProperties": false
          }
        },
        "notes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "dryRun",
        "requests",
        "commands",
        "writes",
        "notes"
      ],
      "additionalProperties": false
    }
  ]
}

See exit codes for the status the process returns.

Navigation

Type to search…

↑↓ navigate↵ selectEsc close

Overlane Agent

Ask about the docs. Answers are quoted from the pages, with links. This panel cannot change anything.

    Questions are answered in your browser from the docs index. Nothing you type here is stored or sent anywhere.