{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/agentaos-ai/json-schema/agentaos-ai-plan-change-response-schema.json",
  "title": "PlanChangeResponse",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/agentaos-ai-subscriptions-api-openapi.yml#/components/schemas/PlanChangeResponse",
  "oneOf": [
    {
      "type": "object",
      "title": "Upgrade applied",
      "properties": {
        "direction": {
          "type": "string",
          "enum": [
            "upgrade"
          ]
        },
        "applied": {
          "type": "boolean",
          "enum": [
            true
          ]
        },
        "status": {
          "type": "string",
          "description": "Subscription status after the change."
        },
        "unitAmountMinor": {
          "type": "integer",
          "description": "New per-cycle amount."
        },
        "currency": {
          "type": "string"
        }
      },
      "required": [
        "direction",
        "applied",
        "status",
        "unitAmountMinor",
        "currency"
      ]
    },
    {
      "type": "object",
      "title": "Downgrade scheduled",
      "properties": {
        "direction": {
          "type": "string",
          "enum": [
            "downgrade"
          ]
        },
        "applied": {
          "type": "boolean",
          "enum": [
            true
          ]
        },
        "effectiveAt": {
          "type": "string",
          "format": "date-time",
          "description": "When the new plan starts: the current period end. Until then the subscription keeps its current plan and reports the change as `pendingPlanChange`."
        },
        "unitAmountMinor": {
          "type": "integer",
          "description": "Per-cycle amount from `effectiveAt` on."
        },
        "currency": {
          "type": "string"
        }
      },
      "required": [
        "direction",
        "applied",
        "effectiveAt",
        "unitAmountMinor",
        "currency"
      ]
    },
    {
      "type": "object",
      "title": "Pending downgrade reverted",
      "properties": {
        "direction": {
          "type": "string",
          "enum": [
            "revert"
          ]
        },
        "applied": {
          "type": "boolean",
          "enum": [
            true
          ]
        },
        "unitAmountMinor": {
          "type": "integer",
          "description": "The current plan's per-cycle amount, unchanged."
        },
        "currency": {
          "type": "string"
        }
      },
      "required": [
        "direction",
        "applied",
        "unitAmountMinor",
        "currency"
      ]
    }
  ]
}