{
  "apis": [
    {
      "path": "/admin/api/features.xml",
      "responseClass": "List[feature]",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Account Features List",
          "description": "Returns the list of the features available to accounts. Account features are globally scoped.",
          "group": "account_feature",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            }
          ]
        },
        {
          "httpMethod": "POST",
          "summary": "Account Feature Create",
          "description": "Create an account feature. The features of the account are globally scoped. Creating a feature does not associate the feature with an account plan.",
          "group": "account_feature",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "name",
              "description": "Name of the feature.",
              "dataType": "string",
              "allowMultiple": false,
              "required": true,
              "paramType": "query"
            },
            {
              "name": "system_name",
              "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.",
              "dataType": "string",
              "paramType": "query"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/features/{id}.xml",
      "responseClass": "feature",
      "description": "Returns an account feature.",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Account Feature Read",
          "description": "Returns an account feature.",
          "group": "account_feature",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the feature.",
              "dataType": "int",
              "required": true,
              "paramType": "path"
            }
          ]
        },
        {
          "httpMethod": "PUT",
          "summary": "Account Feature Update",
          "description": "Updates an account feature.",
          "group": "account_feature",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the feature.",
              "dataType": "int",
              "required": true,
              "paramType": "path"
            },
            {
              "name": "name",
              "description": "Name of the feature.",
              "dataType": "string",
              "allowMultiple": false,
              "required": true,
              "paramType": "query"
            }
          ]
        },
        {
          "httpMethod": "DELETE",
          "summary": "Account Feature Delete",
          "description": "Deletes an account feature.",
          "group": "account_feature",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the feature.",
              "dataType": "int",
              "required": true,
              "paramType": "path"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/account_plans/{account_plan_id}/features.xml",
      "responseClass": "List[feature]",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Account Plan Features List",
          "description": "Returns the list of the features associated to an account plan.",
          "group": "account_plan_feature",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_plan_id",
              "description": "ID of the account plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_plan_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/account_plans/{account_plan_id}/features/{id}.xml",
      "responseClass": "List[feature]",
      "operations": [
        {
          "httpMethod": "POST",
          "summary": "Account Plan Features Create",
          "description": "Associate an account feature to an account plan.",
          "group": "account_plan_feature",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_plan_id",
              "description": "ID of the account plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_plan_ids"
            },
            {
              "name": "id",
              "description": "ID of the feature.",
              "dataType": "int",
              "required": true,
              "paramType": "path"
            }
          ]
        },
        {
          "httpMethod": "DELETE",
          "summary": "Account Plan Features Delete",
          "description": "Deletes the association of an account feature to an account plan.",
          "group": "account_plan_feature",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_plan_id",
              "description": "ID of the account plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_plan_ids"
            },
            {
              "name": "id",
              "description": "ID of the feature.",
              "dataType": "int",
              "required": true,
              "paramType": "path"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/account_plans.xml",
      "responseClass": "List[account_plan]",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Account Plan List",
          "description": "Returns the list of all available account plans.",
          "group": "account_plan",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            }
          ]
        },
        {
          "httpMethod": "POST",
          "summary": "Account Plan Create",
          "description": "Creates an account plan.",
          "group": "account_plan",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "name",
              "description": "Name of the account plan.",
              "dataType": "string",
              "required": true,
              "paramType": "query"
            },
            {
              "name": "system_name",
              "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.",
              "dataType": "string",
              "paramType": "query"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/account_plans/{id}.xml",
      "responseClass": "account_plan",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Account Plan Read",
          "description": "Returns the account plan by ID.",
          "group": "account_plan",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the account plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_plan_ids"
            }
          ]
        },
        {
          "httpMethod": "PUT",
          "summary": "Account Plan Update",
          "description": "Updates an account plan.",
          "group": "account_plan",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the account plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_plan_ids"
            },
            {
              "name": "name",
              "description": "Name of the account plan.",
              "dataType": "string",
              "required": true,
              "paramType": "query"
            }
          ]
        },
        {
          "httpMethod": "DELETE",
          "summary": "Account Plan Delete",
          "description": "Deletes an account plan.",
          "group": "account_plan",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the account plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_plan_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/account_plans/{id}/default.xml",
      "responseClass": "account_plan",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "Account Plan set to Default",
          "description": "Set the account plan to be the default one. The default account plan is used unless another account plan is passed explicitly, for instance on the signup express.",
          "group": "account_plan",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the account plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_plan_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts.xml",
      "responseClass": "List[account]",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Account List",
          "description": "Returns the list of buyer accounts (the accounts that consume your API). Filters by state are available and the results can be paginated.",
          "group": "account",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "state",
              "description": "Account state. ",
              "dataType": "string",
              "paramType": "query",
              "required": false,
              "defaultValue": "",
              "allowableValues": {
                "values": [
                  "pending",
                  "approved",
                  "rejected"
                ],
                "valueType": "LIST"
              }
            },
            {
              "name": "page",
              "description": "Page in the paginated list. Defaults to 1.",
              "dataType": "int",
              "paramType": "query",
              "defaultValue": "1"
            },
            {
              "name": "per_page",
              "description": "Number of results per page. Default and max is 500.",
              "dataType": "int",
              "paramType": "query",
              "defaultValue": "500"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/find.xml",
      "responseClass": "account",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Account Find",
          "description": "Find an account by the username or email of its users (username takes precendence over email).",
          "group": "account",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "username",
              "description": "Username of the account user.",
              "dataType": "string",
              "paramType": "query"
            },
            {
              "name": "email",
              "description": "Email of the account user.",
              "dataType": "string",
              "paramType": "query"
            },
            {
              "name": "user_id",
              "description": "ID of the account user.",
              "dataType": "integer",
              "paramType": "query"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{id}.xml",
      "responseClass": "account",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Account Read",
          "description": "Returns a buyer account.",
          "group": "account",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            }
          ]
        },
        {
          "httpMethod": "PUT",
          "summary": "Account Update",
          "description": "Updates a buyer account by ID. You can modify all the fields on the account, including custom fields defined in the fields definition section of your admin portal.",
          "group": "account",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "name": "org_name",
              "description": "Organization name of the account.",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query"
            },
            {
              "name": "additional_fields",
              "dataType": "custom",
              "paramType": "query",
              "allowMultiple": true,
              "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields."
            }
          ]
        },
        {
          "httpMethod": "DELETE",
          "summary": "Account Delete ",
          "description": "Deletes a buyer account. Deleting an account removes all users, applications and service subscriptions to the account.",
          "group": "account",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{id}/change_plan.xml",
      "responseClass": "account",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "Account Change Plan",
          "description": "Changes the account plan for the buyer account.",
          "group": "account",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "name": "plan_id",
              "description": "ID of the target account plan",
              "dataType": "int",
              "allowMultiple": false,
              "required": true,
              "paramType": "query",
              "threescale_name": "account_plan_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{id}/approve.xml",
      "responseClass": "account",
      "description": "Approves a partner account.",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "Account Approve",
          "description": "Approves the account (changes the state to live). Accounts need to be approved explicitly via this API after creation. The state can also be updated by PUT on /admin/api/accounts/{id}.xml",
          "group": "account",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{id}/reject.xml",
      "responseClass": "account",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "Account Reject",
          "description": "Rejects the account (changes the state to rejected). An account can be rejected after creation, the workflow for account creation can have a validation process that ends in approving or rejecting the account submission. The state can also be updated by PUT on /admin/api/accounts/{id}.xml",
          "group": "account",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{id}/make_pending.xml",
      "responseClass": "account",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "Account Reset to Pending",
          "description": "Resets the state of the account to pending so that it can be approved or rejected again.",
          "group": "account",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/active_docs.json",
      "responseClass": "active_doc",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "ActiveDocs Spec List",
          "description": "Lists all ActiveDocs specs",
          "group": "active_docs",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/active_docs.json",
      "responseClass": "active_doc",
      "operations": [
        {
          "httpMethod": "POST",
          "summary": "ActiveDocs Spec Create",
          "description": "Creates a new ActiveDocs spec",
          "group": "active_docs",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "name",
              "description": "Name of the ActiveDocs spec",
              "required": true,
              "dataType": "string",
              "paramType": "query"
            },
            {
              "name": "system_name",
              "description": "System Name of the ActiveDocs spec. Only ASCII letters, numbers, dashes and underscores are allowed. If blank, 'system_name' will be generated from the 'name' parameter",
              "required": false,
              "dataType": "string",
              "paramType": "query"
            },
            {
              "name": "body",
              "description": "ActiveDocs specification in JSON format (based on Swagger)",
              "dataType": "string",
              "required": true,
              "paramType": "query"
            },
            {
              "name": "description",
              "description": "Description of the ActiveDocs spec",
              "dataType": "string",
              "paramType": "query"
            },
            {
              "name": "published",
              "description": "Set to 'true' to publish the spec on the developer portal, or 'false' to hide it. The default value is 'false'",
              "dataType": "boolean",
              "paramType": "query"
            },
            {
              "name": "skip_swagger_validations",
              "description": "Set to 'true' to skip validation of the Swagger specification, or 'false' to validate the spec. The default value is 'false'",
              "dataType": "boolean",
              "paramType": "query"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/active_docs/{id}.json",
      "responseClass": "active_doc",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "ActiveDocs Spec Update",
          "description": "Updates the ActiveDocs spec by ID",
          "group": "active_docs",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the ActiveDocs spec",
              "dataType": "int",
              "required": true,
              "paramType": "path"
            },
            {
              "name": "name",
              "description": "Name of the ActiveDocs spec",
              "required": false,
              "dataType": "string",
              "paramType": "query"
            },
            {
              "name": "body",
              "description": "ActiveDocs specification in JSON format (based on Swagger)",
              "dataType": "string",
              "paramType": "query"
            },
            {
              "name": "description",
              "description": "Description of the ActiveDocs spec",
              "dataType": "string",
              "paramType": "query"
            },
            {
              "name": "published",
              "description": "Set to 'true' to publish the spec on the developer portal, or 'false' to hide it",
              "dataType": "boolean",
              "paramType": "query"
            },
            {
              "name": "skip_swagger_validations",
              "description": "Set to 'true' to skip validation of the Swagger specification, or 'false' to validate the spec",
              "dataType": "boolean",
              "paramType": "query"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/active_docs/{id}.json",
      "responseClass": "active_doc",
      "operations": [
        {
          "httpMethod": "DELETE",
          "summary": "ActiveDocs Spec Delete",
          "description": "Deletes the ActiveDocs spec by ID",
          "group": "active_docs",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the ActiveDocs spec",
              "dataType": "int",
              "required": true,
              "paramType": "path"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/application_plans/{application_plan_id}/features.xml",
      "responseClass": "List[feature]",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Application Plan Feature List",
          "description": "Returns the list of features of the application plan.",
          "group": "application_plan_feature",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "application_plan_id",
              "description": "ID of the application plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_plan_ids"
            }
          ]
        },
        {
          "httpMethod": "POST",
          "summary": "Application Plan Feature Create",
          "description": "Associates a feature to an application plan.",
          "group": "application_plan_feature",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "application_plan_id",
              "description": "ID of the application plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_plan_ids"
            },
            {
              "name": "feature_id",
              "description": "ID of the feature.",
              "dataType": "int",
              "required": true,
              "paramType": "query"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/application_plans/{application_plan_id}/features/{id}.xml",
      "operations": [
        {
          "httpMethod": "DELETE",
          "summary": "Application Plan Feature Delete",
          "descripttion": "Removes the association of a feature to an application plan.",
          "group": "application_plan_feature",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "application_plan_id",
              "description": "ID of the application plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_plan_ids"
            },
            {
              "name": "id",
              "description": "ID of the feature.",
              "dataType": "int",
              "required": true,
              "paramType": "path"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/application_plans/{application_plan_id}/limits.xml",
      "responseClass": "List[limit]",
      "operations": [
        {
          "nickname": "plan_limits",
          "httpMethod": "GET",
          "summary": "Limits List per Application Plan",
          "description": "Returns the list of all limits associated to an application plan.",
          "group": "application_plan_limits",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "application_plan_id",
              "description": "ID of the application plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_plan_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/limits.xml",
      "responseClass": "List[limit]",
      "operations": [
        {
          "nickname": "limits",
          "httpMethod": "GET",
          "summary": "Limit List per Metric",
          "description": "Returns the list of all limits associated to a metric of an application plan.",
          "group": "application_plan_limit",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "application_plan_id",
              "description": "ID of the application plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_plan_ids"
            },
            {
              "name": "metric_id",
              "description": "ID of the metric.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "metric_ids"
            }
          ]
        },
        {
          "httpMethod": "POST",
          "summary": "Limit Create",
          "description": "Adds a limit to a metric of an application plan. All applications with the application plan (application_plan_id) will be constrained by this new limit on the metric (metric_id).",
          "group": "application_plan_limit",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "application_plan_id",
              "description": "ID of the application plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_plan_ids"
            },
            {
              "name": "metric_id",
              "description": "ID of the metric.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "metric_ids"
            },
            {
              "name": "period",
              "description": "Period of the limit.",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "defaultValue": "minute",
              "allowableValues": {
                "values": [
                  "eternity",
                  "year",
                  "month",
                  "week",
                  "day",
                  "hour",
                  "minute"
                ],
                "valueType": "LIST"
              }
            },
            {
              "name": "value",
              "description": "Value of the limit.",
              "dataType": "int",
              "required": true,
              "paramType": "query",
              "allowMultiple": false
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/limits/{id}.xml",
      "responseClass": "application_plan_limit",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Limit Read",
          "description": "Returns a limit on a metric of an application plan.",
          "group": "application_plan_limit",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "application_plan_id",
              "description": "ID of the application plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_plan_ids"
            },
            {
              "name": "metric_id",
              "description": "ID of the metric.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "metric_ids"
            },
            {
              "name": "id",
              "description": "ID of the limit.",
              "dataType": "int",
              "required": true,
              "paramType": "path"
            }
          ]
        },
        {
          "httpMethod": "PUT",
          "summary": "Limit Update",
          "description": "Updates a limit on a metric of an application plan.",
          "group": "application_plan_limit",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "application_plan_id",
              "description": "ID of the application plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_plan_ids"
            },
            {
              "name": "metric_id",
              "description": "ID of the metric.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "metric_ids"
            },
            {
              "name": "id",
              "description": "ID of the limit.",
              "dataType": "int",
              "required": true,
              "paramType": "path"
            },
            {
              "name": "period",
              "description": "Period of the limit.",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "defaultValue": "minute",
              "allowableValues": {
                "values": [
                  "eternity",
                  "year",
                  "month",
                  "week",
                  "day",
                  "hour",
                  "minute"
                ],
                "valueType": "LIST"
              }
            },
            {
              "name": "value",
              "description": "Value of the limit.",
              "dataType": "int",
              "required": false,
              "paramType": "query",
              "allowMultiple": false
            }
          ]
        },
        {
          "httpMethod": "DELETE",
          "summary": "Limit Delete",
          "description": "Deletes a limit on a metric of an application plan.",
          "group": "application_plan_limit",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "application_plan_id",
              "description": "ID of the application plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_plan_ids"
            },
            {
              "name": "metric_id",
              "description": "ID of the metric.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "metric_ids"
            },
            {
              "name": "id",
              "description": "ID of the limit.",
              "dataType": "int",
              "required": true,
              "paramType": "path"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/pricing_rules.xml",
      "responseClass": "List[pricing_rule]",
      "operations": [
        {
          "nickname": "metric_pricing_rules",
          "httpMethod": "GET",
          "summary": "Pricing Rules List per Metric",
          "description": "Returns the list of all pricing rules associated to a metric of an application plan.",
          "group": "application_plan_pricing_rules",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "application_plan_id",
              "description": "ID of the application plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_plan_ids"
            },
            {
              "name": "metric_id",
              "description": "ID of the metric.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "metric_ids"
            }
          ]
        },
        {
          "httpMethod": "POST",
          "summary": "Pricing Rule Create",
          "description": "Creates a pricing rule for an associated application plan.",
          "group": "application_plan_pricing_rules",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "application_plan_id",
              "description": "ID of the application plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_plan_ids"
            },
            {
              "name": "metric_id",
              "description": "ID of the metric.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "metric_ids"
            },
            {
              "name": "min",
              "dataType": "int",
              "paramType": "query",
              "description": "From (min) hit"
            },
            {
              "name": "max",
              "dataType": "int",
              "paramType": "query",
              "description": "To (max) hit"
            },
            {
              "name": "cost_per_unit",
              "dataType": "decimal",
              "paramType": "query",
              "description": "Cost per unit"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/application_plans/{application_plan_id}/pricing_rules.xml",
      "responseClass": "List[pricing_rule]",
      "operations": [
        {
          "nickname": "pricing_rules",
          "httpMethod": "GET",
          "summary": "Pricing Rules List per Application Plan",
          "description": "Returns the list of all pricing rules associated to an application plan.",
          "group": "application_plan_pricing_rules",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "application_plan_id",
              "description": "ID of the application plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_plan_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/application_plans.xml",
      "responseClass": "List[application_plan]",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Application Plan List (all services)",
          "description": "Returns the list of all application plans across services. Note that application plans are scoped by service.",
          "group": "application_plan",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/application_plans.xml",
      "responseClass": "List[application_plan]",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Application Plan List",
          "description": "Returns the list of all application plans of a service.",
          "group": "application_plan",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            }
          ]
        },
        {
          "httpMethod": "POST",
          "summary": "Application Plan Create",
          "description": "Creates an application plan.",
          "group": "application_plan",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "name",
              "description": "Name of the application plan.",
              "dataType": "string",
              "required": true,
              "paramType": "query"
            },
            {
              "name": "system_name",
              "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.",
              "dataType": "string",
              "paramType": "query"
            },
            {
              "name": " ",
              "dataType": "custom",
              "paramType": "query",
              "allowMultiple": true,
              "description": "Extra parameters"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/application_plans/{id}.xml",
      "responseClass": "application_plan",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Application Plan Read",
          "description": "Returns and application plan.",
          "group": "application_plan",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "id",
              "description": "ID of the application plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_plan_ids"
            }
          ]
        },
        {
          "httpMethod": "PUT",
          "summary": "Application Plan Update",
          "description": "Updates an application plan.",
          "group": "application_plan",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "id",
              "description": "ID of the application plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_plan_ids"
            },
            {
              "name": "name",
              "description": "Name of the application plan.",
              "dataType": "string",
              "paramType": "query"
            },
            {
              "name": " ",
              "dataType": "custom",
              "paramType": "query",
              "allowMultiple": true,
              "description": "Extra parameters"
            }
          ]
        },
        {
          "httpMethod": "DELETE",
          "summary": "Application Plan Delete",
          "description": "Deletes an application plan.",
          "group": "application_plan",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "id",
              "description": "ID of the application plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_plan_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/application_plans/{id}/default.xml",
      "responseClass": "application_plan",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "Application Plan Set to Default",
          "description": "Makes the application plan the default one. New applications will be assigned to the default plan unless an application_plan_id is explicity passed (e.g. on the signup express operation).",
          "group": "application_plan",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "id",
              "description": "ID of the application plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_plan_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/applications.xml",
      "responseClass": "List[applications]",
      "operations": [
        {
          "nickname": "applications",
          "httpMethod": "GET",
          "summary": "Application List (all services)",
          "description": "Returns the list of applications across all services. Note that applications are scoped by service and can be paginated.",
          "group": "application",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "page",
              "description": "Page in the paginated list. Defaults to 1.",
              "dataType": "int",
              "paramType": "query",
              "defaultValue": "1"
            },
            {
              "name": "per_page",
              "description": "Number of results per page. Default and max is 500.",
              "dataType": "int",
              "paramType": "query",
              "defaultValue": "500"
            },
            {
              "name": "active_since",
              "description": "Filter date",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query",
              "threescale_name": "active_since"
            },
            {
              "name": "inactive_since",
              "description": "Filter date",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query",
              "threescale_name": "inactive_since"
            },
            {
              "name": "service_id",
              "description": "Filter by service",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query",
              "threescale_name": "service_id"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/applications/find.xml",
      "responseClass": "application",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Application Find",
          "description": "Finds an application by keys used on the integration of your API and 3scale's Service Management API or by application ID.",
          "group": "application",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "application_id",
              "description": "ID of the application.",
              "dataType": "int",
              "required": false,
              "paramType": "query",
              "threescale_name": "application_ids"
            },
            {
              "name": "user_key",
              "description": "user_key of the application (for user_key authentication mode).",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query",
              "threescale_name": "user_keys"
            },
            {
              "name": "app_id",
              "description": "app_id of the application (for app_id/app_key and oauth authentication modes).",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query",
              "threescale_name": "app_ids"
            },
            {
              "name": "service_id",
              "description": "Filter by service",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query",
              "threescale_name": "service_id"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{account_id}/plan.xml",
      "responseClass": "account_plan",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Account Fetch Account Plan",
          "description": "Returns the account plan associated to an account.",
          "group": "account",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{account_id}/applications/{application_id}/keys.xml",
      "responseClass": "application",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Application Key List",
          "description": "Lists app keys of the application.",
          "group": "application",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "name": "application_id",
              "description": "ID of the application.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_ids"
            }
          ]
        },
        {
          "nickname": "key_create",
          "httpMethod": "POST",
          "summary": "Application Key Create",
          "description": "Adds a key of an application (valid only on the authentication mode app_id/app_key or oauth). There are maximum 5 app_keys per application.",
          "group": "application",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "name": "application_id",
              "description": "ID of the application.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_ids"
            },
            {
              "name": "key",
              "description": "app_key to be added",
              "dataType": "string",
              "required": true,
              "paramType": "query"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{account_id}/applications/{application_id}/keys/{key}.xml",
      "responseClass": "application",
      "operations": [
        {
          "httpMethod": "DELETE",
          "summary": "Application Key Delete",
          "description": "Deletes a key of an application (valid only on the authentication mode app_id/app_key or oauth). An application may have to have at least one app_key (controlled by settings).",
          "group": "application",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "name": "application_id",
              "description": "ID of the application.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_ids"
            },
            {
              "name": "key",
              "description": "app_key to be deleted.",
              "dataType": "string",
              "required": true,
              "paramType": "path"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{account_id}/applications/{application_id}/referrer_filters.xml",
      "responseClass": "application",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Application Referrer Filter List",
          "description": "Lists referrer filters of the application.",
          "group": "application",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "name": "application_id",
              "description": "ID of the application.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_ids"
            }
          ]
        },
        {
          "httpMethod": "POST",
          "summary": "Application Referrer Filter Create",
          "description": "Adds a referrer filter to an application. Referrer filters limit API requests by domain or IP ranges.",
          "group": "application",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "name": "application_id",
              "description": "ID of the application.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_ids"
            },
            {
              "name": "referrer_filter",
              "description": "Referrer filter to be created.",
              "dataType": "string",
              "required": true,
              "paramType": "query"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{account_id}/applications/{application_id}/referrer_filters/{id}.xml",
      "responseClass": "application",
      "operations": [
        {
          "httpMethod": "DELETE",
          "summary": "Application Referrer Filter Delete",
          "description": "Deletes a referrer filter of an application. Referrer filters limit API requests by domain or IP ranges.",
          "group": "application",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "name": "application_id",
              "description": "ID of the application.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_ids"
            },
            {
              "name": "id",
              "description": "ID of referrer filter to be deleted.",
              "dataType": "int",
              "required": true,
              "paramType": "path"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{account_id}/applications.xml",
      "responseClass": "List[applications]",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Application List",
          "description": "Returns the list of application of an account.",
          "group": "application",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            }
          ]
        },
        {
          "httpMethod": "POST",
          "summary": "Application Create",
          "description": "Create an application. The application object can be extended with Fields Definitions in the Admin Portal where you can add/remove fields, for instance token (string), age (int), third name (string optional), etc.",
          "group": "application",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "name": "plan_id",
              "description": "ID of the application plan.",
              "dataType": "int",
              "required": true,
              "paramType": "query",
              "threescale_name": "application_plan_ids"
            },
            {
              "name": "name",
              "description": "Name of the application to be created.",
              "dataType": "string",
              "allowMultiple": false,
              "required": true,
              "paramType": "query"
            },
            {
              "name": "description",
              "description": "Description of the application to be created.",
              "dataType": "string",
              "allowMultiple": false,
              "required": true,
              "paramType": "query"
            },
            {
              "name": "user_key",
              "description": "User Key (API Key) of the application to be created.",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query"
            },
            {
              "name": "application_id",
              "description": "App ID of the application to be created.",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query"
            },
            {
              "name": "application_key",
              "description": "App Key(s) of the application to be created.",
              "dataType": "string",
              "allowMultiple": true,
              "required": false,
              "paramType": "query"
            },
            {
              "name": "redirect_url",
              "description": "Redirect URL for the OAuth request.",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query"
            },
            {
              "name": "additional_fields",
              "dataType": "custom",
              "paramType": "query",
              "allowMultiple": true,
              "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields."
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{account_id}/applications/{id}.xml",
      "responseClass": "application",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Application Read",
          "description": "Returns the application by id.",
          "group": "application",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "name": "id",
              "description": "ID of the application.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_ids"
            }
          ]
        },
        {
          "httpMethod": "PUT",
          "summary": "Application Update",
          "description": "Updates an application. All fields of the application object can be updated except the id and the app_id (when using OAuth or app_id/app_key authentication pattern).",
          "group": "application",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "name": "id",
              "description": "ID of the application.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_ids"
            },
            {
              "name": "name",
              "description": "Name of the application.",
              "dataType": "string",
              "required": false,
              "paramType": "query"
            },
            {
              "name": "description",
              "description": "Description of the application.",
              "dataType": "string",
              "required": false,
              "paramType": "query"
            },
            {
              "name": "redirect_url",
              "description": "Redirect URL for the OAuth request.",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query"
            },
            {
              "name": "additional_fields",
              "dataType": "custom",
              "paramType": "query",
              "allowMultiple": true,
              "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields."
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{account_id}/applications/{id}/change_plan.xml",
      "responseClass": "application",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "Application Change Plan",
          "description": "Changes the application plan of an application.",
          "group": "application",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "name": "id",
              "description": "ID of the application.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_ids"
            },
            {
              "name": "plan_id",
              "description": "ID of the new application plan.",
              "dataType": "int",
              "paramType": "query",
              "required": true,
              "threescale_name": "application_plan_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{account_id}/applications/{id}/customize_plan.xml",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "Application Create Plan Customization",
          "description": "Creates a customized application plan for the application.",
          "group": "application",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "name": "id",
              "description": "ID of the application.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{account_id}/applications/{id}/decustomize_plan.xml",
      "responseClass": "application",
      "description": "Decustomizes the plan of an application.",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "Application Delete Plan Customization",
          "description": "Deletes the customized application plan of the application. After removing the customization the application will be constrained by the original application plan.",
          "group": "application",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "name": "id",
              "description": "ID of the application.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{account_id}/applications/{id}/accept.xml",
      "responseClass": "application",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "Application Accept",
          "description": "Accepts an application (changes the state to live). Once the state is live the application can be used on API requests.",
          "group": "application",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "name": "id",
              "description": "ID of the application.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{account_id}/applications/{id}/suspend.xml",
      "responseClass": "application",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "Application Suspend",
          "description": "Suspends an application (changes the state to suspended). Suspending an application will stop the application from authorizing API requests.",
          "group": "application",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "name": "id",
              "description": "ID of the application.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{account_id}/applications/{id}/resume.xml",
      "responseClass": "application",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "Application Resume",
          "description": "Resume a suspended application. Once a suspended application is resumed it will be authorized on API requests.",
          "group": "application",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "name": "id",
              "description": "ID of the application.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "application_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{account_id}/users.xml",
      "responseClass": "List[users]",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "User List",
          "description": "Returns the list of users of an account. The list can be filtered by the state or role of the users.",
          "group": "user",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "name": "state",
              "description": "Filter users by State.",
              "dataType": "string",
              "paramType": "query",
              "required": false,
              "defaultValue": "",
              "allowableValues": {
                "values": [
                  "pending",
                  "suspended",
                  "active"
                ],
                "valueType": "LIST"
              }
            },
            {
              "name": "role",
              "description": "Filter users by Role.",
              "dataType": "string",
              "paramType": "query",
              "required": false,
              "defaultValue": "",
              "allowableValues": {
                "values": [
                  "member",
                  "admin"
                ],
                "valueType": "LIST"
              }
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{account_id}/users.xml",
      "responseClass": "user",
      "operations": [
        {
          "httpMethod": "POST",
          "summary": "User Create",
          "description": "Creates a new user of the account (account_id). Do not forget to activate the user otherwise he/she will be unable to sign-in. After creation the default state is pending and the default role is member. The user object can be extended using Fields Definitions in the Admin Portal. You can add/remove fields, for instance token (string), age (int), third name (string optional), etc. ",
          "group": "user",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "name": "username",
              "description": "Username of the user.",
              "dataType": "string",
              "allowMultiple": false,
              "required": true,
              "paramType": "query"
            },
            {
              "name": "email",
              "description": "Email of the user.",
              "dataType": "string",
              "allowMultiple": false,
              "required": true,
              "paramType": "query"
            },
            {
              "name": "password",
              "description": "Password of the user.",
              "dataType": "string",
              "allowMultiple": false,
              "required": true,
              "paramType": "query"
            },
            {
              "name": "additional_fields",
              "dataType": "custom",
              "paramType": "query",
              "allowMultiple": true,
              "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields."
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{account_id}/users/{id}.xml",
      "responseClass": "user",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "User Read",
          "description": "Returns the user of an account.",
          "group": "user",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "name": "id",
              "description": "ID of the user.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "user_ids"
            }
          ]
        },
        {
          "httpMethod": "PUT",
          "summary": "User Update",
          "description": "Updates the user of an account. You can update any field, not only those in the form of the ActiveDocs but all the fields that belong to the User object. Remember that you can define custom fields on your Admin Portal.",
          "group": "user",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "name": "id",
              "description": "ID of the user.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "user_ids"
            },
            {
              "name": "username",
              "description": "Username of the user.",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query"
            },
            {
              "name": "email",
              "description": "Email of the user.",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query"
            },
            {
              "name": "password",
              "description": "Password of the user.",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query"
            },
            {
              "name": "additional_fields",
              "dataType": "custom",
              "paramType": "query",
              "allowMultiple": true,
              "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields."
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{account_id}/users/{id}.xml",
      "responseClass": "user",
      "operations": [
        {
          "httpMethod": "DELETE",
          "summary": "User Delete",
          "description": "Deletes a user of an account. The last user can't be deleted",
          "group": "user",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "name": "id",
              "description": "ID of the user.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "user_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{account_id}/users/{id}/member.xml",
      "responseClass": "user",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "User Change Role to Member",
          "description": "Changes the role of the user to member.",
          "group": "user",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "name": "id",
              "description": "ID of the user.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "user_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{account_id}/users/{id}/admin.xml",
      "responseClass": "user",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "User change Role to Admin",
          "description": "Changes the role of the user to admin.",
          "group": "user",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "name": "id",
              "description": "ID of the user.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "user_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{account_id}/users/{id}/suspend.xml",
      "responseClass": "user",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "User Suspend",
          "description": "Changes the state of the user to suspended. A suspended user cannot sign-in.",
          "group": "user",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "name": "id",
              "description": "ID of the user.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "user_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{account_id}/users/{id}/unsuspend.xml",
      "responseClass": "user",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "User Unsuspend",
          "description": "Change the state of the user back to active.",
          "group": "user",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "name": "id",
              "description": "ID of the user.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "user_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{account_id}/users/{id}/activate.xml",
      "responseClass": "user",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "User Activate",
          "description": "Activate the user of an account. A user is created in the pending state and needs to be activated before he/she is able to sign-in.",
          "group": "user",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "name": "id",
              "description": "ID of the user.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "user_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{id}/credit_card.xml",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "Account Set Credit Card",
          "description": "Associates credit card tokens and billing address to an account. This operation is only required if you use your own credit card capture method. These tokens are the ones required by Authorize.net, ogone, braintree, payment express and merchant e solutions",
          "group": "account",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "name": "credit_card_token",
              "description": "The token returned by the payment gateway. client_id if you're using braintree (In that case, the first credit card will be used)."
            },
            {
              "dataType": "string",
              "required": false,
              "paramType": "query",
              "name": "credit_card_authorize_net_payment_profile_token",
              "description": "Authorize.net payment profile token. Not used for other payment gateways"
            },
            {
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "name": "credit_card_expiration_year",
              "description": "Year of expiration of credit card. Two digit number"
            },
            {
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "name": "credit_card_expiration_month",
              "description": "Month of expiration of credit card. Two digit number"
            },
            {
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "name": "billing_address_name",
              "description": "Name of the person/company to bill"
            },
            {
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "name": "billing_address_address",
              "description": "Address associated to the credit card"
            },
            {
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "name": "billing_address_city",
              "description": "Billing address city"
            },
            {
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "name": "billing_address_country",
              "description": "Billing address country"
            },
            {
              "dataType": "string",
              "paramType": "query",
              "name": "billing_address_state",
              "description": "Billing address state",
              "required": false
            },
            {
              "dataType": "string",
              "paramType": "query",
              "name": "billing_address_phone",
              "description": "Billing address phone",
              "required": false
            },
            {
              "dataType": "string",
              "paramType": "query",
              "name": "billing_address_zip",
              "description": "Billing address ZIP Code",
              "required": false
            },
            {
              "dataType": "string",
              "paramType": "query",
              "name": "credit_card_partial_number",
              "description": "Last four digits on the credit card"
            }
          ]
        },
        {
          "httpMethod": "DELETE",
          "summary": "Account Delete Credit Card",
          "description": "Removes all credit card info of an account.",
          "group": "account",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/end_user_plans/{end_user_plan_id}/metrics/{metric_id}/limits.xml",
      "responseClass": "List[limit]",
      "operations": [
        {
          "nickname": "limits",
          "httpMethod": "GET",
          "summary": "Limit List for End User Plans ",
          "description": "Returns the list of all limits associated to a metric of an end user plan.",
          "group": "end_user_plan_limit",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "end_user_plan_id",
              "description": "ID of the end user plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "end_user_plan_ids"
            },
            {
              "name": "metric_id",
              "description": "ID of the metric.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "metric_ids"
            }
          ]
        },
        {
          "httpMethod": "POST",
          "summary": "Limit Create for End User Plans",
          "description": "Adds a limit to a metric of an end user plan. All end users with the end user plan (end_user_plan_id) will be constrained by this new limit on the metric (metric_id).",
          "group": "end_user_plan_limit",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "end_user_plan_id",
              "description": "ID of the end user plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "end_user_plan_ids"
            },
            {
              "name": "metric_id",
              "description": "ID of the metric.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "metric_ids"
            },
            {
              "name": "period",
              "description": "Period of the limit.",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "defaultValue": "minute",
              "allowableValues": {
                "values": [
                  "eternity",
                  "year",
                  "month",
                  "week",
                  "day",
                  "hour",
                  "minute"
                ],
                "valueType": "LIST"
              }
            },
            {
              "name": "value",
              "description": "value of the limit.",
              "dataType": "int",
              "required": true,
              "paramType": "query",
              "allowMultiple": false
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/end_user_plans/{end_user_plan_id}/metrics/{metric_id}/limits/{id}.xml",
      "responseClass": "end_user_plan_limit",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Limit Read for End User Plans",
          "description": "Returns a limit on a metric of an end user plan.",
          "group": "end_user_plan_limit",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "end_user_plan_id",
              "description": "ID of the end user plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "end_user_plan_ids"
            },
            {
              "name": "metric_id",
              "description": "ID of the metric.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "metric_ids"
            },
            {
              "name": "id",
              "description": "ID of the limit.",
              "dataType": "int",
              "required": true,
              "paramType": "path"
            }
          ]
        },
        {
          "httpMethod": "PUT",
          "summary": "Limit Update for End User Plans",
          "description": "Updates a limit on a metric of an end user plan.",
          "group": "end_user_plan_limit",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "end_user_plan_id",
              "description": "ID of the end user plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "end_user_plan_ids"
            },
            {
              "name": "metric_id",
              "description": "ID of the metric.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "metric_ids"
            },
            {
              "name": "id",
              "description": "ID of the limit.",
              "dataType": "int",
              "required": true,
              "paramType": "path"
            },
            {
              "name": "period",
              "description": "Period of the limit.",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "defaultValue": "minute",
              "allowableValues": {
                "values": [
                  "eternity",
                  "year",
                  "month",
                  "week",
                  "day",
                  "hour",
                  "minute"
                ],
                "valueType": "LIST"
              }
            },
            {
              "name": "value",
              "description": "value of the limit.",
              "dataType": "int",
              "required": false,
              "paramType": "query",
              "allowMultiple": false
            }
          ]
        },
        {
          "httpMethod": "DELETE",
          "summary": "Limit Delete for End User Plans",
          "description": "Deletes a limit on a metric of an end user plan.",
          "group": "end_user_plan_limit",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "end_user_plan_id",
              "description": "ID of the end user plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "end_user_plan_ids"
            },
            {
              "name": "metric_id",
              "description": "ID of the metric.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "metric_ids"
            },
            {
              "name": "id",
              "description": "ID of the limit.",
              "dataType": "int",
              "required": true,
              "paramType": "path"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/end_user_plans.xml",
      "responseClass": "List[end_user_plan]",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "End User Plan List (all services)",
          "description": "Returns the list of all end user plans across services. Note that end user plans are scoped by service.",
          "group": "end_user_plan",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/accounts/{account_id}/messages.xml",
      "operations": [
        {
          "httpMethod": "POST",
          "summary": "Account Message",
          "description": "Sends a message to the account.",
          "group": "account",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "account_id",
              "description": "ID of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            },
            {
              "name": "body",
              "description": "Text to send",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "allowMultiple": false
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/metrics/{metric_id}/methods.xml",
      "responseClass": "List[methods]",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Method List",
          "description": "List the methods of a metric. Methods are metrics that are children of a parent metric.",
          "group": "metric_method",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "metric_id",
              "description": "ID of the metric.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "metric_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/metrics/{metric_id}/methods.xml",
      "responseClass": "method",
      "operations": [
        {
          "httpMethod": "POST",
          "summary": "Method Create",
          "description": "Creates a method under a metric.",
          "group": "metric_method",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "metric_id",
              "description": "ID of the metric.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "metric_ids"
            },
            {
              "name": "friendly_name",
              "description": "Name of the method.",
              "dataType": "string",
              "allowMultiple": false,
              "required": true,
              "paramType": "query"
            },
            {
              "name": "system_name",
              "description": "System Name of the metric. This is the name used to report API requests with the Service Management API. If blank, a system_name will be generated for you from the friendly_name parameter",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query"
            },
            {
              "name": "unit",
              "description": "Measure unit of the method.",
              "dataType": "string",
              "allowMultiple": false,
              "required": true,
              "paramType": "query"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/metrics/{metric_id}/methods/{id}.xml",
      "responseClass": "method",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Method Read",
          "description": "Returns the method of a metric.",
          "group": "metric_method",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "metric_id",
              "description": "ID of the metric.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "metric_ids"
            },
            {
              "name": "id",
              "description": "ID of the method.",
              "dataType": "int",
              "required": true,
              "paramType": "path"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/metrics/{metric_id}/methods/{id}.xml",
      "responseClass": "method",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "Method Update",
          "description": "Updates a method of a metric.",
          "group": "metric_method",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "metric_id",
              "description": "ID of the metric.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "metric_ids"
            },
            {
              "name": "id",
              "description": "ID of the method.",
              "dataType": "int",
              "required": true,
              "paramType": "path"
            },
            {
              "name": "friendly_name",
              "description": "Name of the method.",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query"
            },
            {
              "name": "unit",
              "description": "Measure unit of the method.",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/metrics/{metric_id}/methods/{id}.xml",
      "operations": [
        {
          "httpMethod": "DELETE",
          "summary": "Method Delete",
          "description": "Deletes the method of a metric.",
          "group": "metric_method",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "metric_id",
              "description": "ID of the metric.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "metric_ids"
            },
            {
              "name": "id",
              "description": "ID of the method.",
              "dataType": "int",
              "required": true,
              "paramType": "path"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/metrics.xml",
      "responseClass": "List[metric]",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Metric List",
          "description": "Returns the list of metrics of a service.",
          "group": "metric",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            }
          ]
        },
        {
          "httpMethod": "POST",
          "summary": "Metric Create",
          "description": "Creates a metric on a service. All metrics are scoped by service.",
          "group": "metric",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "friendly_name",
              "description": "Descriptive Name of the metric.",
              "dataType": "string",
              "allowMultiple": false,
              "required": true,
              "paramType": "query"
            },
            {
              "name": "system_name",
              "description": "System Name of the metric. This is the name used to report API requests with the Service Management API. If blank a system_name will be generated for you from the friendly_name parameter",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query"
            },
            {
              "name": "name",
              "description": "DEPRECATED: Please use system_name parameter",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query"
            },
            {
              "name": "unit",
              "description": "Measure unit of the metric.",
              "dataType": "string",
              "allowMultiple": false,
              "required": true,
              "paramType": "query"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/metrics/{id}.xml",
      "responseClass": "metric",
      "operations": [
        {
          "nickname": "service_metric",
          "httpMethod": "GET",
          "summary": "Metric Read",
          "description": "Returns the metric of a service.",
          "group": "metric",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "id",
              "description": "ID of the metric.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "metric_ids"
            }
          ]
        },
        {
          "httpMethod": "PUT",
          "summary": "Metric Update",
          "description": "Updates the metric of a service.",
          "group": "metric",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "id",
              "description": "ID of the metric.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "metric_ids"
            },
            {
              "name": "friendly_name",
              "description": "Name of the metric.",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query"
            },
            {
              "name": "unit",
              "description": "Measure unit of the metric.",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query"
            }
          ]
        },
        {
          "httpMethod": "DELETE",
          "summary": "Metric Delete",
          "description": "Deletes the metric of a service. When you delete a metric or a method, it will also remove all the associated limits across application plans.",
          "group": "metric",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "id",
              "description": "ID of the metric.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "metric_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/provider.xml",
      "responseClass": "account",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Provider Account Read",
          "description": "Returns your account.",
          "group": "provider",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/provider.xml",
      "responseClass": "provider",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "Provider Account Update",
          "description": "Updates email addresses used to deliver email notifications to customers.",
          "group": "account",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "from_email",
              "description": "New outgoing email.",
              "dataType": "string",
              "paramType": "query"
            },
            {
              "name": "support_email",
              "description": "New support email.",
              "dataType": "string",
              "paramType": "query"
            },
            {
              "name": "finance_support_email",
              "description": "New finance support email.",
              "dataType": "string",
              "paramType": "query"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/features.xml",
      "responseClass": "List[feature]",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Service Feature List",
          "description": "Returns the list of all features of a service.",
          "group": "service_feature",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/features.xml",
      "responseClass": "feature",
      "operations": [
        {
          "httpMethod": "POST",
          "summary": "Service Feature Create",
          "description": "Creates a feature on a service. Features are usually associated to a particular type of plan; you can associate the plan on the scope parameter. Note that account plans are not scoped by service.",
          "group": "service_feature",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "name",
              "description": "Name of the feature.",
              "dataType": "string",
              "required": true,
              "paramType": "query"
            },
            {
              "name": "system_name",
              "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.",
              "dataType": "string",
              "paramType": "query"
            },
            {
              "name": "scope",
              "description": "Type of plan that the feature will be available for.",
              "dataType": "string",
              "allowMultiple": true,
              "required": false,
              "paramType": "query",
              "defaultValue": "ApplicationPlan",
              "allowableValues": {
                "values": [
                  "ApplicationPlan",
                  "ServicePlan"
                ],
                "valueType": "LIST"
              }
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/features/{id}.xml",
      "responseClass": "feature",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Service Feature Read",
          "description": "Returns a feature of a service.",
          "group": "service_feature",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "id",
              "description": "ID of the feature.",
              "dataType": "int",
              "required": true,
              "paramType": "path"
            }
          ]
        },
        {
          "httpMethod": "PUT",
          "summary": "Service Feature Update",
          "description": "Updates a feature of a service.",
          "group": "service_feature",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "id",
              "description": "ID of the feature.",
              "dataType": "int",
              "required": true,
              "paramType": "path"
            },
            {
              "name": "name",
              "description": "Name of the feature.",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query"
            }
          ]
        },
        {
          "httpMethod": "DELETE",
          "summary": "Service Feature Delete",
          "description": "Deletes a feature of a service.",
          "group": "service_feature",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "id",
              "description": "ID of the feature.",
              "dataType": "int",
              "required": true,
              "paramType": "path"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/service_plans/{service_plan_id}/features.xml",
      "responseClass": "List[feature]",
      "description": "Returns a list of features of an service plan.",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Service Plan Feature List",
          "description": "Returns the list of features of a service plan.",
          "group": "service_plan_feature",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_plan_id",
              "description": "ID of the service plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_plan_ids"
            }
          ]
        },
        {
          "httpMethod": "POST",
          "summary": "Service Plan Feature Add",
          "description": "Associates an existing feature to a service plan.",
          "group": "service_plan_feature",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_plan_id",
              "description": "ID of the service plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_plan_ids"
            },
            {
              "name": "feature_id",
              "description": "ID of the feature.",
              "dataType": "int",
              "required": true,
              "paramType": "query"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/service_plans.xml",
      "responseClass": "List[service_plan]",
      "description": "Returns a list of all your service plans.",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Service Plan List (all services)",
          "description": "Returns a list of all service plans for all services. Note that service plans are scoped by service.",
          "group": "service_plan",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{id}/service_plans.xml",
      "responseClass": "List[service_plan]",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Service Plan List",
          "description": "Returns a list of all service plans for a service.",
          "group": "service_plan",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            }
          ]
        },
        {
          "httpMethod": "POST",
          "summary": "Service Plan Create",
          "description": "Creates a new service plan in a service.",
          "group": "service_plan",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "name",
              "description": "Name of the service plan.",
              "dataType": "string",
              "required": true,
              "paramType": "query"
            },
            {
              "name": "system_name",
              "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.",
              "dataType": "string",
              "paramType": "query"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/service_plans/{id}.xml",
      "responseClass": "service_plan",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Service Plan Read",
          "description": "Returns a service plan by ID.",
          "group": "service_plan",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "id",
              "description": "ID of the service plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_plan_ids"
            }
          ]
        },
        {
          "httpMethod": "PUT",
          "summary": "Service Plan Update",
          "description": "Updates a service plan by ID.",
          "group": "service_plan",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "id",
              "description": "ID of the service plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_plan_ids"
            },
            {
              "name": "name",
              "description": "Name of the service plan.",
              "dataType": "string",
              "required": false,
              "paramType": "query"
            }
          ]
        },
        {
          "httpMethod": "DELETE",
          "summary": "Service Plan Delete",
          "description": "Deletes a service plan by ID.",
          "group": "service_plan",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "id",
              "description": "ID of the service plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_plan_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/service_plans/{id}/default.xml",
      "responseClass": "service_plan",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "Service Plan Set to Default",
          "description": "Sets the service plan as default. The default service plan is used when no explicit service plan is used.",
          "group": "service_plan",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "id",
              "description": "ID of the service plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_plan_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/end_user_plans.xml",
      "responseClass": "List[end_user_plan]",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "End User Plan List",
          "description": "Returns the list of all end user plans of a service.",
          "group": "end_user_plan",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            }
          ]
        },
        {
          "httpMethod": "POST",
          "summary": "End User Plan Create",
          "description": "Creates an end user plan.",
          "group": "end_user_plan",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "name",
              "description": "Name of the end user plan.",
              "dataType": "string",
              "required": true,
              "paramType": "query"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/end_user_plans/{id}.xml",
      "responseClass": "end_user_plan",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "End User Plan Read",
          "description": "Returns an end user plan.",
          "group": "end_user_plan",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "id",
              "description": "ID of the end user plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "end_user_plan_ids"
            }
          ]
        },
        {
          "httpMethod": "PUT",
          "summary": "End User Plan Update",
          "description": "Updates an end user plan.",
          "group": "end_user_plan",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "id",
              "description": "ID of the end user plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "end_user_plan_ids"
            },
            {
              "name": "name",
              "description": "Name of the end user plan.",
              "dataType": "string",
              "required": true,
              "paramType": "query"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/end_user_plans/{id}/default.xml",
      "responseClass": "end_user_plan",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "End User Plan Set to Default",
          "description": "Makes the end user plan the default one. New end users will be assigned to the default plan unless an end_user_plan_id is explicity passed on end user creation.",
          "group": "end_user_plan",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "id",
              "description": "ID of the end user plan.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "end_user_plan_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/end_users/{username}.xml",
      "responseClass": "end_user",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "End User Read",
          "description": "Returns the end user by ID.",
          "group": "end_user",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "username",
              "description": "Username (unique identifier) of the end user.",
              "dataType": "string",
              "required": true,
              "paramType": "path"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/end_users.xml",
      "operations": [
        {
          "httpMethod": "POST",
          "summary": "End User Create",
          "description": "Create an end user.",
          "group": "end_user",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "username",
              "description": "Username (unique identifier) of the end user.",
              "dataType": "string",
              "required": true,
              "paramType": "query"
            },
            {
              "name": "plan_id",
              "description": "ID of the end user plan. If not passed, the default end user plan will be used.",
              "dataType": "int",
              "paramType": "query"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/end_users/{username}.xml",
      "responseClass": "end_user",
      "operations": [
        {
          "httpMethod": "DELETE",
          "summary": "End User Delete",
          "description": "Deletes an end user.",
          "group": "end_user",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "username",
              "description": "Username (unique identifier) of the end user.",
              "dataType": "string",
              "required": true,
              "paramType": "path"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/end_users/{username}/change_plan.xml",
      "responseClass": "end_user",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "End User Change Plan",
          "description": "Changes the end user plan of an end user.",
          "group": "end_user",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "username",
              "description": "Username (unique identifier) of the end user.",
              "dataType": "string",
              "required": true,
              "paramType": "path"
            },
            {
              "name": "plan_id",
              "description": "id of the new end user plan.",
              "dataType": "int",
              "paramType": "query",
              "required": true,
              "threescale_name": "end_user_plan_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/proxy/mapping_rules.xml",
      "responseClass": "mapping_rule",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Mapping Rules List",
          "description": "Returns the Mapping Rules of a Proxy.",
          "group": "mapping_rule",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/proxy/mapping_rules/{id}.xml",
      "responseClass": "mapping_rule",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Mapping Rules Show",
          "description": "Returns the Mapping Rule.",
          "group": "mapping_rule",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "id",
              "description": "Mapping Rule ID.",
              "dataType": "int",
              "paramType": "path",
              "required": true
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/proxy/mapping_rules.xml",
      "responseClass": "mapping_rule",
      "operations": [
        {
          "httpMethod": "POST",
          "summary": "Mapping Rule Create",
          "description": "Creates a Proxy Mapping Rule.",
          "group": "mapping_rule",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "http_method",
              "description": "HTTP method.",
              "dataType": "string",
              "paramType": "query",
              "required": true
            },
            {
              "name": "pattern",
              "description": "Mapping Rule pattern.",
              "dataType": "string",
              "paramType": "query",
              "required": true
            },
            {
              "name": "delta",
              "description": "Increase the metric by this delta.",
              "dataType": "int",
              "paramType": "query",
              "required": true
            },
            {
              "name": "metric_id",
              "description": "Metric ID.",
              "dataType": "int",
              "paramType": "query",
              "required": true,
              "threescale_name": "metric_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/proxy/mapping_rules/{id}.xml",
      "responseClass": "mapping_rule",
      "operations": [
        {
          "httpMethod": "PATCH",
          "summary": "Mapping Rule Update",
          "description": "Creates a Proxy Mapping Rule.",
          "group": "mapping_rule",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "id",
              "description": "Mapping Rule ID.",
              "dataType": "int",
              "paramType": "path",
              "required": true
            },
            {
              "name": "http_method",
              "description": "HTTP method.",
              "dataType": "string",
              "paramType": "query"
            },
            {
              "name": "pattern",
              "description": "Mapping Rule pattern.",
              "dataType": "string",
              "paramType": "query"
            },
            {
              "name": "delta",
              "description": "Increase the metric by this delta.",
              "dataType": "int",
              "paramType": "query"
            },
            {
              "name": "metric_id",
              "description": "Metric ID.",
              "dataType": "int",
              "paramType": "query",
              "threescale_name": "metric_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/proxy/mapping_rules/{id}.xml",
      "responseClass": "mapping_rule",
      "operations": [
        {
          "httpMethod": "DELETE",
          "summary": "Mapping Rule Delete",
          "description": "Deletes a Proxy Mapping Rule.",
          "group": "mapping_rule",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "id",
              "description": "Mapping Rule ID.",
              "dataType": "int",
              "paramType": "path",
              "required": true
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/proxy.xml",
      "responseClass": "proxy",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Proxy Read",
          "description": "Returns the Proxy of a Service.",
          "group": "proxy",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/proxy.xml",
      "responseClass": "proxy",
      "operations": [
        {
          "httpMethod": "PATCH",
          "summary": "Proxy Update",
          "description": "Changes the Proxy settings.",
          "group": "proxy",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "endpoint",
              "description": "Proxy Endpoint.",
              "dataType": "string",
              "paramType": "query",
              "required": false
            },
            {
              "name": "credentials_location",
              "description": "Credentials Location. Either headers or query.",
              "dataType": "string",
              "paramType": "query",
              "required": false
            },
            {
              "name": "auth_app_key",
              "description": "Parameter/Header where App Key is expected.",
              "dataType": "string",
              "paramType": "query",
              "required": false
            },
            {
              "name": "auth_app_id",
              "description": "Parameter/Header where App ID is expected.",
              "dataType": "string",
              "paramType": "query",
              "required": false
            },
            {
              "name": "auth_user_key",
              "description": "Parameter/Header where User Key is expected.",
              "dataType": "string",
              "paramType": "query",
              "required": false
            },
            {
              "name": "error_auth_failed",
              "description": "Error message on failed authentication.",
              "dataType": "string",
              "paramType": "query",
              "required": false
            },
            {
              "name": "error_status_auth_failed",
              "description": "Status code on failed authentication.",
              "dataType": "int",
              "paramType": "query",
              "required": false
            },
            {
              "name": "error_headers_auth_failed",
              "description": "Content-Type header on failed authentication.",
              "dataType": "string",
              "paramType": "query",
              "required": false
            },
            {
              "name": "error_auth_missing",
              "description": "Error message on missing authentication.",
              "dataType": "string",
              "paramType": "query",
              "required": false
            },
            {
              "name": "error_status_auth_missing",
              "description": "Status code on missing authentication.",
              "dataType": "int",
              "paramType": "query",
              "required": false
            },
            {
              "name": "error_headers_auth_missing",
              "description": "Content-Type header on missing authentication.",
              "dataType": "string",
              "paramType": "query",
              "required": false
            },
            {
              "name": "error_no_match",
              "description": "Error message when no mapping rule is matched.",
              "dataType": "string",
              "paramType": "query",
              "required": false
            },
            {
              "name": "error_status_no_match",
              "description": "Status code when no mapping rule is matched.",
              "dataType": "int",
              "paramType": "query",
              "required": false
            },
            {
              "name": "error_headers_no_match",
              "description": "Content-Type header when no mapping rule is matched.",
              "dataType": "string",
              "paramType": "query",
              "required": false
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/proxy/configs/{environment}.json",
      "responseClass": "proxy_config",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Proxy Configs List",
          "description": "Returns the Proxy Configs of a Service",
          "group": "proxy_config",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "environment",
              "description": "Gateway environment. Must be 'sandbox' or 'production'",
              "dataType": "string",
              "required": true,
              "paramType": "path",
              "threescale_name": "environment"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/proxy/configs/{environment}/latest.json",
      "responseClass": "proxy_config",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Proxy Config Show Latest",
          "description": "Returns the latest Proxy Config.",
          "group": "proxy_config",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "environment",
              "description": "Gateway environment. Must be 'sandbox' or 'production'",
              "dataType": "string",
              "required": true,
              "paramType": "path",
              "threescale_name": "environment"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/proxy/configs/{environment}/{version}.json",
      "responseClass": "proxy_config",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Proxy Config Show",
          "description": "Returns a Proxy Config.",
          "group": "proxy_config",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "environment",
              "description": "Gateway environment. Must be 'sandbox' or 'production'",
              "dataType": "string",
              "required": true,
              "paramType": "path",
              "threescale_name": "environment"
            },
            {
              "name": "version",
              "description": "Version of the Proxy config.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "proxy_config_version"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{service_id}/proxy/configs/{environment}/{version}/promote.json",
      "responseClass": "proxy_config",
      "operations": [
        {
          "httpMethod": "POST",
          "summary": "Proxy Config Promote",
          "description": "Promotes a Proxy Config from one environment to another environment.",
          "group": "proxy_config",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "service_id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "environment",
              "description": "Gateway environment. Must be 'sandbox' or 'production'",
              "dataType": "string",
              "required": true,
              "paramType": "path",
              "threescale_name": "environment"
            },
            {
              "name": "version",
              "description": "Version of the Proxy config.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "proxy_config_version"
            },
            {
              "name": "to",
              "description": "the name of the destination environment",
              "dataType": "string",
              "paramType": "query",
              "required": true
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services.xml",
      "responseClass": "List[services]",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Service List",
          "description": "Returns the list of all services.",
          "group": "service",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services.xml",
      "responseClass": "service",
      "operations": [
        {
          "httpMethod": "POST",
          "summary": "Service Create",
          "description": "Creates a new service.",
          "group": "service",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "name",
              "description": "Name of the service to be created.",
              "dataType": "string",
              "required": true,
              "paramType": "query"
            },
            {
              "name": "system_name",
              "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.",
              "dataType": "string",
              "paramType": "query"
            },
            {
              "name": " ",
              "dataType": "custom",
              "paramType": "query",
              "allowMultiple": true,
              "description": "Extra parameters"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{id}.xml",
      "responseClass": "service",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Service Read",
          "description": "Returns the service by id.",
          "group": "service",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            }
          ]
        },
        {
          "httpMethod": "PUT",
          "summary": "Service Update",
          "description": "Update the service.",
          "group": "service",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            },
            {
              "name": "name",
              "description": "New name for the service.",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query"
            },
            {
              "name": "support_email",
              "description": "New support email.",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query"
            },
            {
              "name": "tech_support_email",
              "description": "New technical support email.",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query"
            },
            {
              "name": "admin_support_email",
              "description": "New admin support email.",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query"
            },
            {
              "name": " ",
              "dataType": "custom",
              "paramType": "query",
              "allowMultiple": true,
              "description": "Extra parameters"
            }
          ]
        },
        {
          "httpMethod": "DELETE",
          "summary": "Service Delete",
          "description": "Delete the service. Deleting a service removes all applications and service subscriptions.",
          "group": "service",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the service.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "service_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/settings.json",
      "responseClass": "settings",
      "operations": [
        {
          "nickname": "service_metric",
          "httpMethod": "GET",
          "summary": "Settings Read",
          "description": "Returns the general settings of an account.",
          "group": "settings",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/settings.json",
      "responseClass": "settings",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "Settings Update",
          "description": "Updates general settings.",
          "group": "settings",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "useraccountarea_enabled",
              "description": "Allow the user to edit their submitted details, change passwords, etc",
              "dataType": "boolean",
              "paramType": "query"
            },
            {
              "name": "hide_service",
              "description": "Used a default service plan",
              "dataType": "boolean",
              "paramType": "query"
            },
            {
              "name": "signups_enabled",
              "description": "Developers are allowed sign up themselves.",
              "dataType": "boolean",
              "paramType": "query"
            },
            {
              "name": "account_approval_required",
              "description": "Approval is required by you before developer accounts are activated.",
              "dataType": "boolean",
              "paramType": "query"
            },
            {
              "name": "strong_passwords_enabled",
              "description": "Require strong passwords from your users: Password must be at least 8 characters long, and contain both upper and lowercase letters, a digit and one special character of -+=><_$#.:;!?@&*()~][}{|. Existing passwords will still work. ",
              "dataType": "boolean",
              "paramType": "query"
            },
            {
              "name": "public_search",
              "description": "Enables public search on Developer Portal",
              "dataType": "boolean",
              "paramType": "query"
            },
            {
              "name": "account_plans_ui_visible",
              "description": "Enables visibility of Account Plans",
              "dataType": "boolean",
              "paramType": "query"
            },
            {
              "name": "change_account_plan_permission",
              "description": "Account Plans changing",
              "dataType": "string",
              "paramType": "query"
            },
            {
              "name": "service_plans_ui_visible",
              "description": "Enables visibility of Service Plans",
              "dataType": "boolean",
              "paramType": "query"
            },
            {
              "name": "change_service_plan_permission",
              "description": "Service Plans changing",
              "dataType": "string",
              "paramType": "query"
            },
            {
              "name": "end_user_plans_ui_visible",
              "description": "Enables visibility of End User Plans",
              "dataType": "boolean",
              "paramType": "query"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/signup.xml",
      "responseClass": "account",
      "operations": [
        {
          "httpMethod": "POST",
          "summary": "Signup Express",
          "description": "This request allows you to reproduce a sign-up from a buyer in a single API call. It will create an Account, an Admin User for the account, and optionally an Application with its keys. If the plan_id is not passed, the default plan will be used instead. You can add additional custom parameters in Fields Definition on your Admin Portal.",
          "group": "signup",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "org_name",
              "description": "Organization Name of the buyer account.",
              "dataType": "string",
              "allowMultiple": false,
              "required": true,
              "paramType": "query"
            },
            {
              "name": "username",
              "description": "Username of the admin user (on the new buyer account).",
              "dataType": "string",
              "allowMultiple": false,
              "required": true,
              "paramType": "query"
            },
            {
              "name": "email",
              "description": "Email of the admin user.",
              "dataType": "string",
              "allowMultiple": false,
              "required": true,
              "paramType": "query"
            },
            {
              "name": "password",
              "description": "Password of the admin user.",
              "dataType": "string",
              "allowMultiple": false,
              "required": true,
              "paramType": "query"
            },
            {
              "name": "account_plan_id",
              "description": "ID of the account plan (if not assigned default will be used instead).",
              "dataType": "int",
              "required": false,
              "paramType": "query",
              "threescale_name": "account_plan_ids"
            },
            {
              "name": "service_plan_id",
              "description": "ID of the service plan (if not assigned default will be used instead).",
              "dataType": "int",
              "required": false,
              "paramType": "query",
              "threescale_name": "service_plan_ids"
            },
            {
              "name": "application_plan_id",
              "description": "ID of the application plan (if not assigned default will be used instead).",
              "dataType": "int",
              "required": false,
              "paramType": "query",
              "threescale_name": "application_plan_ids"
            },
            {
              "name": "additional_fields",
              "dataType": "custom",
              "paramType": "query",
              "allowMultiple": true,
              "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields."
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/users.xml",
      "responseClass": "List[users]",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "User List (provider account)",
          "description": "Lists the users of the provider account. You can apply filters by state and/or role.",
          "group": "user_provider_account",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "state",
              "description": "Filter users by State.",
              "dataType": "string",
              "paramType": "query",
              "required": false,
              "defaultValue": "",
              "allowableValues": {
                "values": [
                  "pending",
                  "suspended",
                  "active"
                ],
                "valueType": "LIST"
              }
            },
            {
              "name": "role",
              "description": "Filter users by Role.",
              "dataType": "string",
              "paramType": "query",
              "required": false,
              "defaultValue": "",
              "allowableValues": {
                "values": [
                  "member",
                  "admin"
                ],
                "valueType": "LIST"
              }
            }
          ]
        },
        {
          "httpMethod": "POST",
          "summary": "User Create (provider account)",
          "description": "Creates a new user in the provider account. Do not forget to activate it, otherwise he/she will not be able to sign-in. After creation the default state is pending and the default role is member. The user object can be extended using Fields Definitions in the Admin Portal where you can add/remove fields, for instance token (string), age (int), third name (string optional), etc.",
          "group": "user_provider_account",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "username",
              "description": "Username of the user.",
              "dataType": "string",
              "allowMultiple": false,
              "required": true,
              "paramType": "query"
            },
            {
              "name": "email",
              "description": "Email of the user.",
              "dataType": "string",
              "allowMultiple": false,
              "required": true,
              "paramType": "query"
            },
            {
              "name": "password",
              "description": "Password of the user.",
              "dataType": "string",
              "allowMultiple": false,
              "required": true,
              "paramType": "query"
            },
            {
              "name": "additional_fields",
              "dataType": "custom",
              "paramType": "query",
              "allowMultiple": true,
              "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields."
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/users/{id}.xml",
      "responseClass": "user",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "User Read (provider account)",
          "description": "Gets the user of the provider account by ID.",
          "group": "user_provider_account",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the user.",
              "dataType": "int",
              "allowMultiple": false,
              "required": true,
              "paramType": "path",
              "threescale_name": "admin_ids"
            }
          ]
        },
        {
          "httpMethod": "PUT",
          "summary": "User Update (provider account)",
          "description": "Modifies the user of the provider account by ID. You can update any field, not only those in the form of the ActiveDocs but also fields that belong to the User object. Remember that you can define custom fields on your Admin Portal.",
          "group": "user_provider_account",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the user.",
              "dataType": "int",
              "allowMultiple": false,
              "required": true,
              "paramType": "path",
              "threescale_name": "admin_ids"
            },
            {
              "name": "username",
              "description": "Username of the user.",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query"
            },
            {
              "name": "email",
              "description": "Email of the user.",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query"
            },
            {
              "name": "password",
              "description": "Password of the user.",
              "dataType": "string",
              "allowMultiple": false,
              "required": false,
              "paramType": "query"
            },
            {
              "name": "additional_fields",
              "dataType": "custom",
              "paramType": "query",
              "allowMultiple": true,
              "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields."
            }
          ]
        },
        {
          "httpMethod": "DELETE",
          "summary": "User Delete (provider account)",
          "description": "Deletes the user of the provider account by ID.",
          "group": "user_provider_account",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the user.",
              "dataType": "int",
              "allowMultiple": false,
              "required": true,
              "paramType": "path",
              "threescale_name": "admin_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/users/{id}/member.xml",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "User Change Role to Member (provider account)",
          "description": "Changes the role of the user of the provider account to member.",
          "group": "user_provider_account",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the user.",
              "dataType": "int",
              "allowMultiple": false,
              "required": true,
              "paramType": "path",
              "threescale_name": "admin_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/users/{id}/admin.xml",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "User Change Role to Admin (provider account)",
          "description": "Changes the role of the provider account to admin (full rights and privileges).",
          "group": "user_provider_account",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the user.",
              "dataType": "int",
              "allowMultiple": false,
              "required": true,
              "paramType": "path",
              "threescale_name": "admin_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/users/{id}/suspend.xml",
      "responseClass": "user",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "User Suspend (provider account)",
          "description": "Changes the state of the user of the provider account to suspended, which removes the user's ability to sign-in. You can also perform this operation with a PUT on /admin/api/users/{id}.xml to change the state parameter.",
          "group": "user_provider_account",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the user.",
              "dataType": "int",
              "allowMultiple": false,
              "required": true,
              "paramType": "path",
              "threescale_name": "admin_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/users/{id}/unsuspend.xml",
      "responseClass": "user",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "User Unsuspend (provider account)",
          "description": "Revokes the suspension of a user of the provider account. You can also perform this operation with a PUT on /admin/api/users/{id}.xml to change the state parameter.",
          "group": "user_provider_account",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the user.",
              "dataType": "int",
              "allowMultiple": false,
              "required": true,
              "paramType": "path",
              "threescale_name": "admin_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/users/{id}/activate.xml",
      "responseClass": "user",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "User Activate (provider account)",
          "description": "Changes the state of the user of the provider account to active (after sign-up). You can also perform this operation with a PUT on /admin/api/users/{id}.xml to change the state parameter.",
          "group": "user_provider_account",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "id",
              "description": "ID of the user.",
              "dataType": "int",
              "allowMultiple": false,
              "required": true,
              "paramType": "path",
              "threescale_name": "admin_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/webhooks.json",
      "responseClass": "webhook",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "WebHooks Update",
          "description": "Updates webhooks.",
          "group": "webhook",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "url",
              "description": "URL that will be notified about all the events",
              "dataType": "string",
              "paramType": "query"
            },
            {
              "name": "active",
              "description": "Activate/Disable WebHooks",
              "dataType": "boolean",
              "paramType": "query"
            },
            {
              "name": "provider_actions",
              "description": "Dashboard actions fire web hooks. If false, only user actions in the portal trigger events.",
              "dataType": "boolean",
              "paramType": "query"
            },
            {
              "name": "account_created_on",
              "dataType": "boolean",
              "paramType": "query"
            },
            {
              "name": "account_updated_on",
              "dataType": "boolean",
              "paramType": "query"
            },
            {
              "name": "account_deleted_on",
              "dataType": "boolean",
              "paramType": "query"
            },
            {
              "name": "user_created_on",
              "dataType": "boolean",
              "paramType": "query"
            },
            {
              "name": "user_updated_on",
              "dataType": "boolean",
              "paramType": "query"
            },
            {
              "name": "user_deleted_on",
              "dataType": "boolean",
              "paramType": "query"
            },
            {
              "name": "application_created_on",
              "dataType": "boolean",
              "paramType": "query"
            },
            {
              "name": "application_updated_on",
              "dataType": "boolean",
              "paramType": "query"
            },
            {
              "name": "application_deleted_on",
              "dataType": "boolean",
              "paramType": "query"
            },
            {
              "name": "account_plan_changed_on",
              "dataType": "boolean",
              "paramType": "query"
            },
            {
              "name": "application_plan_changed_on",
              "dataType": "boolean",
              "paramType": "query"
            },
            {
              "name": "application_user_key_updated_on",
              "dataType": "boolean",
              "paramType": "query"
            },
            {
              "name": "application_key_created_on",
              "dataType": "boolean",
              "paramType": "query"
            },
            {
              "name": "application_key_deleted_on",
              "dataType": "boolean",
              "paramType": "query"
            },
            {
              "name": "application_suspended_on",
              "dataType": "boolean",
              "paramType": "query"
            },
            {
              "name": "application_key_updated_on",
              "dataType": "boolean",
              "paramType": "query"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/webhooks/failures.xml",
      "responseClass": "List[webhook_failures]",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Webhooks List Failed Deliveries",
          "description": "Lists of webhooks that could not be delivered to your end-point after 5 trials. A webhook is considered delivered if your end-point responds with a 200, otherwise it retries 5 times at 60 second intervals.",
          "group": "webhooks",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            }
          ]
        },
        {
          "httpMethod": "DELETE",
          "summary": "Webhooks Delete Failed Deliveries",
          "description": "Deletes failed delivery records. It is advisible to delete the records past the time of the last webhook failure that was received instead of deleting them all. Between the GET and the DELETE other webhooks failures may have arrived.",
          "group": "webhooks",
          "parameters": [
            {
              "name": "access_token",
              "description": "A personal Access Token",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "access_token"
            },
            {
              "name": "time",
              "description": "Only failed webhook deliveries whose time is less than or equal to the passed time are destroyed (if used).",
              "dataType": "time",
              "required": false,
              "paramType": "query"
            }
          ]
        }
      ]
    }
  ],
  "basePath": "",
  "swaggerVersion": "0.1a",
  "apiVersion": "1.0"
}
