kinlane
10/22/2015 - 11:47 PM

3Scale Account Management API

3Scale Account Management API

{
  "apis": [
    {
      "path": "/admin/api/features.xml",
      "responseClass": "List[feature]",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Account Feature List",
          "description": "Returns the list of the features available to accounts. Account features are globally scoped.",
          "group": "account_feature",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            }
          ]
        },
        {
          "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 Feature List",
          "description": "Returns the list of the features associated to an account plan.",
          "group": "account_plan_feature",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            }
          ]
        },
        {
          "httpMethod": "POST",
          "summary": "Account Plan Create",
          "description": "Creates an account plan.",
          "group": "account_plan",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 and account plan.",
          "group": "account_plan",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 will be used unless passed explicitly, for instance on the signup express.",
          "group": "account_plan",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 the buyer accounts (the accounts that consume your API). Filters by state are available. The results can be paginated.",
          "group": "account",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "name": "username",
              "description": "username of the user of the account",
              "dataType": "string",
              "paramType": "query"
            },
            {
              "name": "email",
              "description": "email of the user of the account",
              "dataType": "string",
              "paramType": "query"
            },
            {
              "name": "user_id",
              "description": "id of the user of the account",
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 object account, including custom fields defined in the fields definition section of your admin portal.",
          "group": "account",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 name and value i.e &name=value. You can add as many as you want. Additional fields cover for the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', 'janrain_token', etc. Please check your Fields Definitions to get the list of all your required fields."
            }
          ]
        },
        {
          "httpMethod": "DELETE",
          "summary": "Account Delete ",
          "description": "Deletes a buyer account. Deleting an account removes all users, applications, service subscriptions to the account.",
          "group": "account",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 of the buyer account.",
          "group": "account",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 explictly via the API after creation. The state can also be updated by PUT on /admin/api/accounts/{id}.xml",
          "group": "account",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 of the account creation can have a validation process that ends up 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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 again approved or rejected.",
          "group": "account",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "name": "id",
              "description": "id of the account.",
              "dataType": "int",
              "required": true,
              "paramType": "path",
              "threescale_name": "account_ids"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/active_docs/{id}.xml",
      "responseClass": "active_doc",
      "operations": [
        {
          "httpMethod": "PUT",
          "summary": "ActiveDocs JSON Spec Update",
          "description": "Updates the JSON spec of the ActiveDoc by id. To create, delete and update description and state of Active Docs you must use the Admin Portal. This request only allows to update the JSON spec (body) service, useful when the JSON spec is generated programmatically (for instance using source2swagger). Once you have the JSON spec you can updload to be live straight away, for instance: 'curl -v -X PUT -F \"body= YOUR_JSON_SPEC_FILE\" https://YOUR-API_PORTAL.3scale.net/admin/api/active_docs/ID.xml?provider_key=YOUR_PROVIDER_KEY'",
          "group": "active_docs",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "name": "id",
              "description": "id of the active doc.",
              "dataType": "int",
              "required": true,
              "paramType": "path"
            },
            {
              "name": "body",
              "description": "JSON Spec of the ActiveDocs (based on the spec of Swagger).",
              "dataType": "string",
              "required": true,
              "paramType": "query"
            }
          ]
        }
      ]
    },
    {
      "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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"
            }
          ]
        }
      ]
    },
    {
      "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            }
          ]
        }
      ]
    },
    {
      "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 application 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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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. Results can be paginated.",
          "group": "application",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 id (no need to know the account_id).",
          "group": "application",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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"
            }
          ]
        }
      ]
    },
    {
      "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 an key of an application (valid only on the authentication mode app_id/app_key or oauth). There is a maximum of 5 app_keys for application.",
          "group": "application",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 an key of an application (valid only on the authentication mode app_id/app_key or oauth). An application might have to have at leat one app_key (controlled by settings).",
          "group": "application",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 the API requests by domain or IP ranges.",
          "group": "application",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 the API requests by domain or IP ranges.",
          "group": "application",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 on the Fields Definitions in the Admin Portal. You can add/remove the object's fields, for instance token (string), age (int), third name (string optional), etc.",
          "group": "application",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "additional_fields",
              "dataType": "custom",
              "paramType": "query",
              "allowMultiple": true,
              "description": "Additional fields have to be name and value i.e &name=value. You can add as many as you want. Additional fields cover for the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', 'janrain_token', etc. Please check your Fields Definitions to get the list of all your required 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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 (in case of authentication mode oauth or app_id/app_key).",
          "group": "application",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "additional_fields",
              "dataType": "custom",
              "paramType": "query",
              "allowMultiple": true,
              "description": "Additional fields have to be name and value i.e &name=value. You can add as many as you want. Additional fields cover for the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', 'janrain_token', etc. Please check your Fields Definitions to get the list of all your required 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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 costumization the application will be constrained by the original application plan.",
          "group": "application",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 to be authorized on API requests.",
          "group": "application",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 the role of the users.",
          "group": "user",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 it otherwise he 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 on the Fields Definitions in the Admin Portal. You can add/remove the object's fields, for instance token (string), age (int), third name (string optional), etc. ",
          "group": "user",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 name and value i.e &name=value. You can add as many as you want. Additional fields cover for the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', 'janrain_token', etc. Please check your Fields Definitions to get the list of all your required 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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 you custom fields on your Admin Portal.",
          "group": "user",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 name and value i.e &name=value. You can add as many as you want. Additional fields cover for the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', 'janrain_token', etc. Please check your Fields Definitions to get the list of all your required 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. Last user can't be deleted",
          "group": "user",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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. When a user is created is on the pending state. It needs to be activated before he is able to sign-in.",
          "group": "user",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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. Those tokens are the ones required by Authorize.net, ogone, braintree, payment express, merchant e solutions",
          "group": "account",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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. Unused for other payment gateways"
            },
            {
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "name": "credit_card_expiration_year",
              "description": "Year of expiration of credit card. 2digit number"
            },
            {
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "name": "credit_card_expiration_month",
              "description": "Month of expiration of credit card. 2digit 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": "4 last numbers of the credit card"
            }
          ]
        },
        {
          "httpMethod": "DELETE",
          "summary": "Account Delete Credit Card",
          "description": "Removes all credit card info of an account.",
          "group": "account",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            }
          ]
        }
      ]
    },
    {
      "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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/nginx.zip",
      "responseClass": "nginx",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Nginx configuration files",
          "description": "Returns the Nginx configuration files in a zip archive.",
          "group": "nginx",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/provider.xml",
      "responseClass": "account",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Account Read",
          "description": "Returns your account.",
          "group": "account"
        }
      ]
    },
    {
      "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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, account plans is a different their own since account plans are not scoped by service.",
          "group": "service_feature",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services/{id}/service_plans.xml",
      "responseClass": "List[service_plan]",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Service Plan List",
          "description": "Returns a list of service plans for a service.",
          "group": "service_plan",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 and end user plan.",
          "group": "end_user_plan",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 user 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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 a end user.",
          "group": "end_user",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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.xml",
      "responseClass": "List[services]",
      "operations": [
        {
          "httpMethod": "GET",
          "summary": "Service List",
          "description": "Returns the list of all services.",
          "group": "service",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/services.xml",
      "responseClass": "service",
      "operations": [
        {
          "httpMethod": "POST",
          "summary": "Service Create",
          "description": "Creates a new service.",
          "group": "service",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "",
              "dataType": "custom",
              "paramType": "query",
              "allowMultiple": true,
              "description": "Extra parameters"
            }
          ]
        }
      ]
    },
    {
      "path": "/admin/api/signup.xml",
      "responseClass": "account",
      "operations": [
        {
          "httpMethod": "POST",
          "summary": "Signup Express",
          "description": "This request allows 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 one Application with its keys. If the plan_id are not passed the default plans will be used instead. You can add additional custome parameters that you define in Fields Definition on your Admin Portal.",
          "group": "signup",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 name and value i.e &name=value. You can add as many as you want. Additional fields cover for the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', 'janrain_token', etc. Please check your Fields Definitions to get the list of all your required 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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 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 on the Fields Definitions in the Admin Portal. You can add/remove the object's fields, for instance token (string), age (int), third name (string optional), etc.",
          "group": "user_provider_account",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 name and value i.e &name=value. You can add as many as you want. Additional fields cover for the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', 'janrain_token', etc. Please check your Fields Definitions to get the list of all your required 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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 all the fields that belong to the User object, remember that you can define you custom fields on your Admin Portal.",
          "group": "user_provider_account",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 name and value i.e &name=value. You can add as many as you want. Additional fields cover for the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', 'janrain_token', etc. Please check your Fields Definitions to get the list of all your required fields."
            }
          ]
        },
        {
          "httpMethod": "DELETE",
          "summary": "User Delete (provider account)",
          "description": "Deletes the user of the provider account by id",
          "group": "user_provider_account",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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, remove the user's ability to sign-in. You can also do this operation with a PUT on /admin/api/users/{id}.xml setting up the state parameter.",
          "group": "user_provider_account",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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 (of provider account)",
          "description": "Revokes the suspension of a user of the provider account. You can also do this operation with a PUT on /admin/api/users/{id}.xml setting up the state parameter.",
          "group": "user_provider_account",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "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, to be done after sign-up. You can also do this operation with a PUT on /admin/api/users/{id}.xml setting up the state parameter.",
          "group": "user_provider_account",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "name": "id",
              "description": "id of the user.",
              "dataType": "int",
              "allowMultiple": false,
              "required": true,
              "paramType": "path",
              "threescale_name": "admin_ids"
            }
          ]
        }
      ]
    },
    {
      "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 with a 60 seconds gap.",
          "group": "webhooks",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            }
          ]
        },
        {
          "httpMethod": "DELETE",
          "summary": "Webhooks Delete Failed Deliveries",
          "description": "Deletes failed deliveries records. It is advisible to delete the records passing the time of the last webhook failure that was received instead of deleting them all. Between the GET and the DELETE other webhooks failures might have arrived.",
          "group": "webhooks",
          "parameters": [
            {
              "name": "provider_key",
              "description": "Your api key with 3scale (also known as provider key).",
              "dataType": "string",
              "required": true,
              "paramType": "query",
              "threescale_name": "api_keys"
            },
            {
              "name": "time",
              "description": "Only failed webhook deliveries whose time is less or equal than the passed time are destroyed (if used).",
              "dataType": "time",
              "required": false,
              "paramType": "query"
            }
          ]
        }
      ]
    }
  ],
  "basePath": "",
  "swaggerVersion": "0.1a",
  "apiVersion": "1.0"
}