WSO2 · Schema

Subscription Throttling Policy

SubscriptionPolicy schema from WSO2 API Manager

API ManagementGatewaysOpen SourceAPI LifecycleGraphQLSOAPREST
View JSON Schema on GitHub

JSON Schema

publisher-api-subscription-policy-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/wso2/refs/heads/main/json-schema/publisher-api-subscription-policy-schema.json",
  "title": "Subscription Throttling Policy",
  "description": "SubscriptionPolicy schema from WSO2 API Manager",
  "allOf": [
    {
      "required": [
        "defaultLimit"
      ],
      "type": "object",
      "properties": {
        "policyId": {
          "type": "integer",
          "description": "Id of policy",
          "example": 1
        },
        "uuid": {
          "type": "string",
          "description": "policy uuid",
          "example": "0c6439fd-9b16-3c2e-be6e-1086e0b9aa93"
        },
        "policyName": {
          "maxLength": 60,
          "minLength": 1,
          "type": "string",
          "description": "Name of policy",
          "example": "30PerMin"
        },
        "displayName": {
          "type": "string",
          "description": "Display name of the policy",
          "example": "30PerMin",
          "maxLength": 512
        },
        "description": {
          "maxLength": 1024,
          "type": "string",
          "description": "Description of the policy",
          "example": "Allows 30 request per minute"
        },
        "isDeployed": {
          "type": "boolean",
          "description": "Indicates whether the policy is deployed successfully or not.",
          "default": false
        },
        "tenantId": {
          "type": "integer",
          "description": "Throttling policy tenant domain id",
          "example": -1234
        },
        "tenantDomain": {
          "type": "string",
          "description": "Throttling policy tenant domain",
          "example": "carbon.super"
        },
        "defaultLimit": {
          "$ref": "#/components/schemas/ThrottleLimit"
        },
        "rateLimitCount": {
          "type": "integer",
          "description": "Burst control request count",
          "example": 10
        },
        "rateLimitTimeUnit": {
          "type": "string",
          "description": "Burst control time unit",
          "example": "min"
        },
        "subscriberCount": {
          "type": "integer",
          "description": "Number of subscriptions allowed",
          "example": 10
        },
        "customAttributes": {
          "type": "array",
          "description": "Custom attributes added to the Subscription Throttling Policy\n",
          "example": [],
          "items": {
            "$ref": "#/components/schemas/CustomAttribute"
          }
        },
        "stopOnQuotaReach": {
          "type": "boolean",
          "description": "This indicates the action to be taken when a user goes beyond the allocated quota. If checked, the user's requests will be dropped. If unchecked, the requests will be allowed to pass through.\n",
          "default": false
        },
        "billingPlan": {
          "type": "string",
          "description": "define whether this is Paid or a Free plan. Allowed values are FREE or COMMERCIAL.\n",
          "example": "FREE"
        },
        "permissions": {
          "$ref": "#/components/schemas/SubscriptionThrottlePolicyPermission"
        }
      }
    }
  ]
}