From 64317139796de29f82d6244375be488446345e3e Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Wed, 9 Nov 2022 17:24:03 +0530 Subject: [PATCH 01/85] THREESCALE-3927 Added rswag gem --- Gemfile | 2 ++ Gemfile.lock | 20 ++++++++++++--- config/initializers/rswag_api.rb | 14 +++++++++++ config/initializers/rswag_ui.rb | 16 ++++++++++++ config/routes.rb | 2 ++ spec/swagger_helper.rb | 43 ++++++++++++++++++++++++++++++++ 6 files changed, 94 insertions(+), 3 deletions(-) create mode 100644 config/initializers/rswag_api.rb create mode 100644 config/initializers/rswag_ui.rb create mode 100644 spec/swagger_helper.rb diff --git a/Gemfile b/Gemfile index 5719d88ad2..8ea84d6316 100644 --- a/Gemfile +++ b/Gemfile @@ -249,6 +249,8 @@ group :development, :test do # for `rake doc:liquid:generate` and similar gem 'source2swagger', git: 'https://github.com/3scale/source2swagger' gem 'unicorn-rails' + + gem 'rswag' end gem 'webpacker', '5.4.4' diff --git a/Gemfile.lock b/Gemfile.lock index 0f146b9b83..1a551ed65c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -685,8 +685,21 @@ GEM rspec (~> 3.0) rspec_junit_formatter (0.4.1) rspec-core (>= 2, < 4, != 2.12.0) - rubocop (1.39.0) - json (~> 2.3) + rswag (2.7.0) + rswag-api (= 2.7.0) + rswag-specs (= 2.7.0) + rswag-ui (= 2.7.0) + rswag-api (2.7.0) + railties (>= 3.1, < 7.1) + rswag-specs (2.7.0) + activesupport (>= 3.1, < 7.1) + json-schema (>= 2.2, < 4.0) + railties (>= 3.1, < 7.1) + rspec-core (>= 2.14) + rswag-ui (2.7.0) + actionpack (>= 3.1, < 7.1) + railties (>= 3.1, < 7.1) + rubocop (1.31.0) parallel (~> 1.10) parser (>= 3.1.2.1) rainbow (>= 2.2.2, < 4.0) @@ -1015,7 +1028,8 @@ DEPENDENCIES rspec-rails (~> 4.1) rspec_api_documentation rspec_junit_formatter - rubocop (= 1.39) + rswag + rubocop (= 1.31) rubocop-performance rubocop-rails ruby-oci8 diff --git a/config/initializers/rswag_api.rb b/config/initializers/rswag_api.rb new file mode 100644 index 0000000000..4d72f68760 --- /dev/null +++ b/config/initializers/rswag_api.rb @@ -0,0 +1,14 @@ +Rswag::Api.configure do |c| + + # Specify a root folder where Swagger JSON files are located + # This is used by the Swagger middleware to serve requests for API descriptions + # NOTE: If you're using rswag-specs to generate Swagger, you'll need to ensure + # that it's configured to generate files in the same folder + c.swagger_root = Rails.root.to_s + '/swagger' + + # Inject a lambda function to alter the returned Swagger prior to serialization + # The function will have access to the rack env for the current request + # For example, you could leverage this to dynamically assign the "host" property + # + #c.swagger_filter = lambda { |swagger, env| swagger['host'] = env['HTTP_HOST'] } +end diff --git a/config/initializers/rswag_ui.rb b/config/initializers/rswag_ui.rb new file mode 100644 index 0000000000..0a768c17bc --- /dev/null +++ b/config/initializers/rswag_ui.rb @@ -0,0 +1,16 @@ +Rswag::Ui.configure do |c| + + # List the Swagger endpoints that you want to be documented through the + # swagger-ui. The first parameter is the path (absolute or relative to the UI + # host) to the corresponding endpoint and the second is a title that will be + # displayed in the document selector. + # NOTE: If you're using rspec-api to expose Swagger files + # (under swagger_root) as JSON or YAML endpoints, then the list below should + # correspond to the relative paths for those endpoints. + + c.swagger_endpoint '/api-docs/v1/swagger.yaml', 'API V1 Docs' + + # Add Basic Auth in case your API is private + # c.basic_auth_enabled = true + # c.basic_auth_credentials 'username', 'password' +end diff --git a/config/routes.rb b/config/routes.rb index aa2fba078f..3b45f80d07 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -16,6 +16,8 @@ def call(env) Rails.application.routes.draw do + mount Rswag::Ui::Engine => '/api-docs' + mount Rswag::Api::Engine => '/api-docs' constraints PortConstraint.new(PrometheusExporterPort.call) do require 'sidekiq/prometheus/exporter' require 'yabeda/prometheus/mmap' diff --git a/spec/swagger_helper.rb b/spec/swagger_helper.rb new file mode 100644 index 0000000000..8f715605da --- /dev/null +++ b/spec/swagger_helper.rb @@ -0,0 +1,43 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.configure do |config| + # Specify a root folder where Swagger JSON files are generated + # NOTE: If you're using the rswag-api to serve API descriptions, you'll need + # to ensure that it's configured to serve Swagger from the same folder + config.swagger_root = Rails.root.join('swagger').to_s + + # Define one or more Swagger documents and provide global metadata for each one + # When you run the 'rswag:specs:swaggerize' rake task, the complete Swagger will + # be generated at the provided relative path under swagger_root + # By default, the operations defined in spec files are added to the first + # document below. You can override this behavior by adding a swagger_doc tag to the + # the root example_group in your specs, e.g. describe '...', swagger_doc: 'v2/swagger.json' + config.swagger_docs = { + 'v1/swagger.yaml' => { + openapi: '3.0.1', + info: { + title: 'API V1', + version: 'v1' + }, + paths: {}, + servers: [ + { + url: 'https://{defaultHost}', + variables: { + defaultHost: { + default: 'www.example.com' + } + } + } + ] + } + } + + # Specify the format of the output Swagger file when running 'rswag:specs:swaggerize'. + # The swagger_docs configuration option has the filename including format in + # the key, this may want to be changed to avoid putting yaml in json files. + # Defaults to json. Accepts ':json' and ':yaml'. + config.swagger_format = :yaml +end From 917c5c69e9e74aaf8efa5174df8abe0ee66ac087 Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Thu, 10 Nov 2022 16:05:00 +0530 Subject: [PATCH 02/85] THREESCALE-3927 update config to generate json file --- spec/swagger_helper.rb | 4 ++-- swagger/v1/swagger.json | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 swagger/v1/swagger.json diff --git a/spec/swagger_helper.rb b/spec/swagger_helper.rb index 8f715605da..3b4aa10d51 100644 --- a/spec/swagger_helper.rb +++ b/spec/swagger_helper.rb @@ -15,7 +15,7 @@ # document below. You can override this behavior by adding a swagger_doc tag to the # the root example_group in your specs, e.g. describe '...', swagger_doc: 'v2/swagger.json' config.swagger_docs = { - 'v1/swagger.yaml' => { + 'v1/swagger.json' => { openapi: '3.0.1', info: { title: 'API V1', @@ -39,5 +39,5 @@ # The swagger_docs configuration option has the filename including format in # the key, this may want to be changed to avoid putting yaml in json files. # Defaults to json. Accepts ':json' and ':yaml'. - config.swagger_format = :yaml + config.swagger_format = :json end diff --git a/swagger/v1/swagger.json b/swagger/v1/swagger.json new file mode 100644 index 0000000000..5175d04ec0 --- /dev/null +++ b/swagger/v1/swagger.json @@ -0,0 +1,19 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "API V1", + "version": "v1" + }, + "paths": { + }, + "servers": [ + { + "url": "https://{defaultHost}", + "variables": { + "defaultHost": { + "default": "www.example.com" + } + } + } + ] +} \ No newline at end of file From f6c8f27097943a4071e6cda9456d76c7f2eacddd Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Wed, 16 Nov 2022 21:49:28 +0530 Subject: [PATCH 03/85] THREESCALE-3927 converted to openapi 3.0 --- .../api_docs/services_controller.rb | 2 +- app/javascript/packs/provider_active_docs.js | 16 + .../provider/admin/api_docs/show.html.erb | 16 +- doc/active_docs/Account Management API.json | 18312 ++++++++-------- doc/active_docs/Analytics API.json | 1750 +- doc/active_docs/Billing API.json | 1060 +- .../Developer Portal API (Tech Preview).json | 931 +- doc/active_docs/Master API.json | 565 +- .../Service Management API (on-premises).json | 983 +- doc/active_docs/Service Management API.json | 1185 +- doc/active_docs/accounts-s20.json | 10775 ++++++--- doc/active_docs/analytics-s20.json | 249 +- doc/active_docs/finance-s20.json | 277 +- 13 files changed, 21216 insertions(+), 14905 deletions(-) create mode 100644 app/javascript/packs/provider_active_docs.js diff --git a/app/controllers/api_docs/services_controller.rb b/app/controllers/api_docs/services_controller.rb index 12c5ecf1d8..11135701dc 100644 --- a/app/controllers/api_docs/services_controller.rb +++ b/app/controllers/api_docs/services_controller.rb @@ -115,7 +115,7 @@ def index def show system_name = params[:id].to_sym api_file = (api_files.fetch(system_name) { raise ActiveRecord::RecordNotFound }).dup - api_file['apis'] = exclude_forbidden_endpoints(api_file['apis']) + # api_file['apis'] = exclude_forbidden_endpoints(api_file['apis']) render json: api_file end diff --git a/app/javascript/packs/provider_active_docs.js b/app/javascript/packs/provider_active_docs.js new file mode 100644 index 0000000000..475158ea65 --- /dev/null +++ b/app/javascript/packs/provider_active_docs.js @@ -0,0 +1,16 @@ +// We can define the 3scale plugins here and export the modified bundle +import SwaggerUI from 'swagger-ui' +import { autocompleteOAS3 } from './OAS3Autocomplete' +import 'swagger-ui/dist/swagger-ui.css' +import 'ActiveDocs/swagger-ui-3-patch.scss' + +const accountDataUrl = '/p/admin/api_docs/account_data.json' + +window.SwaggerUI = (args, serviceEndpoint) => { + const responseInterceptor = (response) => autocompleteOAS3(response, accountDataUrl, serviceEndpoint) + + SwaggerUI({ + ...args, + responseInterceptor + }) +} diff --git a/app/views/provider/admin/api_docs/show.html.erb b/app/views/provider/admin/api_docs/show.html.erb index 6fe949776c..dd3a3c8afe 100644 --- a/app/views/provider/admin/api_docs/show.html.erb +++ b/app/views/provider/admin/api_docs/show.html.erb @@ -4,6 +4,7 @@ <% end %> <%= javascript_include_tag 'active-docs/application.js' %> +<%= javascript_pack_tag 'provider_active_docs.js' %> <% content_for :title do %> 3scale API Documentation <% end %> @@ -12,11 +13,12 @@

<%= link_to 'Create an access token', provider_admin_user_access_tokens_path %> to authenticate against the Account Management API, the Analytics API and the Billing API.

<% end %> -
- diff --git a/doc/active_docs/Account Management API.json b/doc/active_docs/Account Management API.json index a73df47202..fb8d86ec15 100644 --- a/doc/active_docs/Account Management API.json +++ b/doc/active_docs/Account Management API.json @@ -1,8604 +1,9742 @@ { - "apis": [ + "openapi": "3.0.1", + "info": { + "version": "1.0" + }, + "servers": [ { - "path": "/admin/api/users/{user_id}/access_tokens.json", - "responseClass": "access_token", - "operations": [ - { - "deprecated": true, - "httpMethod": "POST", - "summary": "Access Token Create", - "description": "[Deprecated API] Use \"Personal Access Tokens Create\". Creates an access token. Make sure to copy your new personal access token now. You will not be able to see it again as it is not stored for security reasons.", - "group": "access_token", - "parameters": [ - { - "name": "user_id", - "description": "ID of the user.", - "dataType": "integer", - "paramType": "path", - "required": true - }, - { - "name": "name", - "description": "Name of the access token.", - "dataType": "string", - "required": true, - "paramType": "query" - }, - { - "name": "permission", - "description": "Permission of the access token. It must be either 'ro' (read only) or 'rw' (read and write).", - "dataType": "string", - "required": true, - "paramType": "query" - }, - { - "name": "scopes", - "defaultName": "scopes[]", - "description": "Scope of the access token. URL-encoded array containing one or more of the possible values. The possible values are, for a master user [\"account_management\", \"stats\"], and for a tenant user [\"finance\", \"account_management\", \"stats\"]", - "dataType": "custom", - "allowMultiple": true, - "required": true, - "paramType": "query" - }, - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - } - ] - } - ] - }, - { - "path": "/admin/api/account/authentication_providers.xml", - "responseClass": "authentication_provider", - "operations": [ - { - "httpMethod": "POST", - "summary": "Authentication Provider Admin Portal Create", - "description": "Creates an authentication provider for the admin portal.", - "group": "authentication_provider", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "kind", - "description": "The kind of authentication provider which can be either 'auth0' or 'keycloak'. Use 'keycloak' for Red Hat Single Sign-On.", - "dataType": "string", - "required": true, - "paramType": "query" - }, - { - "name": "name", - "description": "Name of the authentication provider.", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "system_name", - "description": "System Name of the authentication provider.", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "client_id", - "description": "Client ID of the authentication provider.", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "client_secret", - "description": "Client Secret of the authentication provider.", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "site", - "description": "Site o Realm of the authentication provider.", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "skip_ssl_certificate_verification", - "description": "Skip SSL certificate verification. False by default.", - "dataType": "boolean", - "required": false, - "paramType": "query" - }, - { - "name": "published", - "description": "Published authentication provider. False by default", - "dataType": "boolean", - "required": false, - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/account/authentication_providers/{id}.xml", - "responseClass": "authentication_provider", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Authentication Provider Admin Portal Update", - "description": "Updates an authentication provider for the admin portal.", - "group": "authentication_provider", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the authentication provider.", - "dataType": "string", - "required": true, - "paramType": "path" - }, - { - "name": "client_id", - "description": "Client ID of the authentication provider.", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "client_secret", - "description": "Client Secret of the authentication provider.", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "site", - "description": "Site o Realm of the authentication provider.", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "skip_ssl_certificate_verification", - "description": "Skip SSL certificate verification. False by default.", - "dataType": "boolean", - "required": false, - "paramType": "query" - }, - { - "name": "published", - "description": "Published authentication provider. False by default", - "dataType": "boolean", - "required": false, - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/account/authentication_providers.xml", - "responseClass": "List[authentication_provider]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Authentication Providers Admin Portal List", - "description": "Returns the list of all the authentication providers for the admin portal.", - "group": "authentication_provider", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - } - ] - } - ] - }, - { - "path": "/admin/api/account/authentication_providers/{id}.xml", - "responseClass": "authentication_provider", - "operations": [ - { - "httpMethod": "GET", - "summary": "Authentication Provider Admin Portal Read", - "description": "Read an authentication provider for the admin portal.", - "group": "authentication_provider", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the authentication provider.", - "dataType": "string", - "required": true, - "paramType": "path" - } - ] - } - ] - }, - { - "path": "/admin/api/account/proxy_configs/{environment}.json", - "responseClass": "proxy_config", - "operations": [ - { - "httpMethod": "GET", - "summary": "Proxy Configs List (Provider)", - "description": "Returns the Proxy Configs of the provider", - "group": "proxy_config", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "environment", - "description": "Gateway environment. Must be 'sandbox' or 'production'", - "dataType": "string", - "required": true, - "paramType": "path", - "threescale_name": "environment" - }, - { - "name": "host", - "description": "Filter by host", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "version", - "description": "Filter by version", - "dataType": "string", - "required": false, - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/features.xml", - "responseClass": "List[feature]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Account Features List", - "description": "Returns the list of the features available to accounts. Account features are globally scoped.", - "group": "account_feature", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - } - ] - }, - { - "httpMethod": "POST", - "summary": "Account Feature Create", - "description": "Create an account feature. The features of the account are globally scoped. Creating a feature does not associate the feature with an account plan.", - "group": "account_feature", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "name", - "description": "Name of the feature.", - "dataType": "string", - "allowMultiple": false, - "required": true, - "paramType": "query" - }, - { - "name": "system_name", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "dataType": "string", - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/features/{id}.xml", - "responseClass": "feature", - "description": "Returns an account feature.", - "operations": [ - { - "httpMethod": "GET", - "summary": "Account Feature Read", - "description": "Returns an account feature.", - "group": "account_feature", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the feature.", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] - }, - { - "httpMethod": "PUT", - "summary": "Account Feature Update", - "description": "Updates an account feature.", - "group": "account_feature", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the feature.", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "name": "name", - "description": "Name of the feature.", - "dataType": "string", - "allowMultiple": false, - "required": true, - "paramType": "query" - } - ] - }, - { - "httpMethod": "DELETE", - "summary": "Account Feature Delete", - "description": "Deletes an account feature.", - "group": "account_feature", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the feature.", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] - } - ] - }, - { - "path": "/admin/api/account_plans/{account_plan_id}/features.xml", - "responseClass": "List[feature]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Account Plan Features List", - "description": "Returns the list of the features associated to an account plan.", - "group": "account_plan_feature", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_plan_id", - "description": "ID of the account plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_plan_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/account_plans/{account_plan_id}/features/{id}.xml", - "responseClass": "List[feature]", - "operations": [ - { - "httpMethod": "POST", - "summary": "Account Plan Features Create", - "description": "Associate an account feature to an account plan.", - "group": "account_plan_feature", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_plan_id", - "description": "ID of the account plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_plan_ids" - }, - { - "name": "id", - "description": "ID of the feature.", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] - }, - { - "httpMethod": "DELETE", - "summary": "Account Plan Features Delete", - "description": "Deletes the association of an account feature to an account plan.", - "group": "account_plan_feature", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_plan_id", - "description": "ID of the account plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_plan_ids" - }, - { - "name": "id", - "description": "ID of the feature.", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] - } - ] - }, - { - "path": "/admin/api/account_plans.xml", - "responseClass": "List[account_plan]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Account Plan List", - "description": "Returns the list of all available account plans.", - "group": "account_plan", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - } - ] - }, - { - "httpMethod": "POST", - "summary": "Account Plan Create", - "description": "Creates an account plan.", - "group": "account_plan", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "name", - "description": "Name of the account plan.", - "dataType": "string", - "required": true, - "paramType": "query" - }, - { - "name": "approval_required", - "description": "Set the 'Accounts require approval?' to 'true' or 'false'", - "dataType": "boolean", - "required": false, - "paramType": "query" - }, - { - "name": "system_name", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "dataType": "string", - "paramType": "query" - }, - { - "name": "state_event", - "description": "State event of the account plan. It can be 'publish' or 'hide'", - "dataType": "string", - "required": false, - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/account_plans/{id}.xml", - "responseClass": "account_plan", - "operations": [ - { - "httpMethod": "GET", - "summary": "Account Plan Read", - "description": "Returns the account plan by ID.", - "group": "account_plan", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the account plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_plan_ids" - } - ] - }, - { - "httpMethod": "PUT", - "summary": "Account Plan Update", - "description": "Updates an account plan.", - "group": "account_plan", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the account plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_plan_ids" - }, - { - "name": "name", - "description": "Name of the account plan.", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "approval_required", - "description": "Set the 'Accounts require approval?' to 'true' or 'false'", - "dataType": "boolean", - "required": false, - "paramType": "query" - }, - { - "name": "state_event", - "description": "State event of the account plan. It can be 'publish' or 'hide'", - "dataType": "string", - "required": false, - "paramType": "query" - } - ] - }, - { - "httpMethod": "DELETE", - "summary": "Account Plan Delete", - "description": "Deletes an account plan.", - "group": "account_plan", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the account plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_plan_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/account_plans/{id}/default.xml", - "responseClass": "account_plan", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Account Plan set to Default", - "description": "Set the account plan to be the default one. The default account plan is used unless another account plan is passed explicitly, for instance on the signup express.", - "group": "account_plan", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the account plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_plan_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts.xml", - "responseClass": "List[account]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Account List", - "description": "Returns the list of buyer accounts (the accounts that consume your API). Filters by state are available and the results can be paginated.", - "group": "account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "state", - "description": "Account state.", - "dataType": "string", - "paramType": "query", - "required": false, - "defaultValue": "", - "allowableValues": { - "values": [ - "pending", - "approved", - "rejected" - ], - "valueType": "LIST" + "url": "/" + } + ], + "paths": { + "/admin/api/services/{service_id}/features.xml": { + "get": { + "summary": "Service Feature List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Service Feature Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the feature.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the feature.", + "schema": { + "type": "ref" + } + }, + { + "name": "scope", + "in": "query", + "description": "Type of plan that the feature will be available for.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "enum": [ + "ApplicationPlan", + "ServicePlan" + ] + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/backend_apis/{backend_api_id}/mapping_rules/{id}.json": { + "get": { + "summary": "Backend Mapping Rules Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "Mapping Rule ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Backend Mapping Rule Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "Mapping Rule ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "http_method", + "in": "query", + "description": "HTTP method.", + "schema": { + "type": "string" + } + }, + { + "name": "pattern", + "in": "query", + "description": "Mapping Rule pattern.", + "schema": { + "type": "string" + } + }, + { + "name": "delta", + "in": "query", + "description": "Increase the metric by this delta.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "query", + "description": "Metric ID.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "position", + "in": "query", + "description": "Mapping Rule position", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "last", + "in": "query", + "description": "Last matched Mapping Rule to process", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Backend Mapping Rule Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "Mapping Rule ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/application_plans/{application_plan_id}/features/{id}.xml": { + "delete": { + "summary": "Application Plan Feature Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/personal/access_tokens/{id}.json": { + "get": { + "summary": "Personal Access Token Read", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "ID or value of the access token.", + "required": true, + "schema": { + "type": "ref" + } + }, + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Personal Access Token Delete", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "ID or value of the access token.", + "required": true, + "schema": { + "type": "ref" + } + }, + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/users/{id}/admin.xml": { + "put": { + "summary": "User Change Role to Admin (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/users/{user_id}/access_tokens.json": { + "post": { + "summary": "Access Token Create", + "parameters": [ + { + "name": "user_id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "ref" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the access token.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "permission", + "in": "query", + "description": "Permission of the access token. It must be either 'ro' (read only) or 'rw' (read and write).", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "scopes", + "in": "query", + "description": "Scope of the access token. URL-encoded array containing one or more of the possible values. The possible values are, for a master user [\"account_management\", \"stats\"], and for a tenant user [\"finance\", \"account_management\", \"stats\"]", + "required": true, + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" } - }, - { - "name": "page", - "description": "Page in the paginated list. Defaults to 1.", - "dataType": "int", - "paramType": "query", - "defaultValue": "1" - }, - { - "name": "per_page", - "description": "Number of results per page. Default and max is 500.", - "dataType": "int", - "paramType": "query", - "defaultValue": "500" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/find.xml", - "responseClass": "account", - "operations": [ - { - "httpMethod": "GET", - "summary": "Account Find", - "description": "Find an account by the username or email of its users (username takes precendence over email).", - "group": "account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "username", - "description": "Username of the account user.", - "dataType": "string", - "paramType": "query" - }, - { - "name": "email", - "description": "Email of the account user.", - "dataType": "string", - "paramType": "query" - }, - { - "name": "user_id", - "description": "ID of the account user.", - "dataType": "integer", - "paramType": "query" - }, - { - "name": "buyer_provider_key", - "description": "[Master API] Provider key of the account.", - "dataType": "string", - "paramType": "query" - }, - { - "name": "buyer_service_token", - "description": "[Master API] Service token of the account service.", - "dataType": "string", - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{id}.xml", - "responseClass": "account", - "operations": [ - { - "httpMethod": "GET", - "summary": "Account Read", - "description": "Returns a buyer account.", - "group": "account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - } - ] - }, - { - "httpMethod": "PUT", - "summary": "Account Update", - "description": "Updates a buyer account by ID. You can modify all the fields on the account, including custom fields defined in the fields definition section of your admin portal.", - "group": "account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "org_name", - "description": "Organization name of the account.", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query" - }, - { - "name": "monthly_billing_enabled", - "description": "Updates monthly billing status.", - "dataType": "boolean", - "required": false, - "paramType": "query" - }, - { - "name": "monthly_charging_enabled", - "description": "Updates monthly charging status.", - "dataType": "boolean", - "required": false, - "paramType": "query" - }, - { - "name": "additional_fields", - "dataType": "custom", - "paramType": "query", - "allowMultiple": true, - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields." - } - ] - }, - { - "httpMethod": "DELETE", - "summary": "Account Delete ", - "description": "Deletes a buyer account. Deleting an account removes all users, applications and service subscriptions to the account.", - "group": "account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{id}/change_plan.xml", - "responseClass": "account", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Account Change Plan", - "description": "Changes the account plan for the buyer account.", - "group": "account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "plan_id", - "description": "ID of the target account plan", - "dataType": "int", - "allowMultiple": false, - "required": true, - "paramType": "query", - "threescale_name": "account_plan_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{id}/approve.xml", - "responseClass": "account", - "description": "Approves a partner account.", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Account Approve", - "description": "Approves the account (changes the state to live). Accounts need to be approved explicitly via this API after creation. The state can also be updated by PUT on /admin/api/accounts/{id}.xml", - "group": "account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{id}/reject.xml", - "responseClass": "account", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Account Reject", - "description": "Rejects the account (changes the state to rejected). An account can be rejected after creation, the workflow for account creation can have a validation process that ends in approving or rejecting the account submission. The state can also be updated by PUT on /admin/api/accounts/{id}.xml", - "group": "account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{id}/make_pending.xml", - "responseClass": "account", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Account Reset to Pending", - "description": "Resets the state of the account to pending so that it can be approved or rejected again.", - "group": "account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/active_docs.json", - "responseClass": "active_doc", - "operations": [ - { - "httpMethod": "GET", - "summary": "ActiveDocs Spec List", - "description": "Lists all ActiveDocs specs", - "group": "active_docs", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - } - ] - } - ] - }, - { - "path": "/admin/api/active_docs.json", - "responseClass": "active_doc", - "operations": [ - { - "httpMethod": "POST", - "summary": "ActiveDocs Spec Create", - "description": "Creates a new ActiveDocs spec", - "group": "active_docs", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "name", - "description": "Name of the ActiveDocs spec", - "required": true, - "dataType": "string", - "paramType": "query" - }, - { - "name": "system_name", - "description": "System Name of the ActiveDocs spec. Only ASCII letters, numbers, dashes and underscores are allowed. If blank, 'system_name' will be generated from the 'name' parameter", - "required": false, - "dataType": "string", - "paramType": "query" - }, - { - "name": "service_id", - "description": "Service ID of the ActiveDocs spec", - "dataType": "int", - "paramType": "query", - "required": false - }, - { - "name": "body", - "description": "ActiveDocs specification in JSON format (based on Swagger)", - "dataType": "string", - "required": true, - "paramType": "query" - }, - { - "name": "description", - "description": "Description of the ActiveDocs spec", - "dataType": "string", - "paramType": "query" - }, - { - "name": "published", - "description": "Set to 'true' to publish the spec on the developer portal, or 'false' to hide it. The default value is 'false'", - "dataType": "boolean", - "paramType": "query" - }, - { - "name": "skip_swagger_validations", - "description": "Set to 'true' to skip validation of the Swagger specification, or 'false' to validate the spec. The default value is 'false'", - "dataType": "boolean", - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/active_docs/{id}.json", - "responseClass": "active_doc", - "operations": [ - { - "httpMethod": "GET", - "summary": "ActiveDocs Spec Read", - "description": "Returns the ActiveDocs spec by ID", - "group": "active_docs", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the ActiveDocs spec", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] - } - ] - }, - { - "path": "/admin/api/active_docs/{id}.json", - "responseClass": "active_doc", - "operations": [ - { - "httpMethod": "PUT", - "summary": "ActiveDocs Spec Update", - "description": "Updates the ActiveDocs spec by ID", - "group": "active_docs", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the ActiveDocs spec", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "name": "name", - "description": "Name of the ActiveDocs spec", - "required": false, - "dataType": "string", - "paramType": "query" - }, - { - "name": "service_id", - "description": "Service ID of the ActiveDocs spec", - "dataType": "int", - "paramType": "query", - "required": false - }, - { - "name": "body", - "description": "ActiveDocs specification in JSON format (based on Swagger)", - "dataType": "string", - "paramType": "query" - }, - { - "name": "description", - "description": "Description of the ActiveDocs spec", - "dataType": "string", - "paramType": "query" - }, - { - "name": "published", - "description": "Set to 'true' to publish the spec on the developer portal, or 'false' to hide it", - "dataType": "boolean", - "paramType": "query" - }, - { - "name": "skip_swagger_validations", - "description": "Set to 'true' to skip validation of the Swagger specification, or 'false' to validate the spec", - "dataType": "boolean", - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/active_docs/{id}.json", - "responseClass": "active_doc", - "operations": [ - { - "httpMethod": "DELETE", - "summary": "ActiveDocs Spec Delete", - "description": "Deletes the ActiveDocs spec by ID", - "group": "active_docs", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the ActiveDocs spec", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] - } - ] - }, - { - "path": "/admin/api/application_plans/{application_plan_id}/features.xml", - "responseClass": "List[feature]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Application Plan Feature List", - "description": "Returns the list of features of the application plan.", - "group": "application_plan_feature", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "application_plan_id", - "description": "ID of the application plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_plan_ids" - } - ] - }, - { - "httpMethod": "POST", - "summary": "Application Plan Feature Create", - "description": "Associates a feature to an application plan.", - "group": "application_plan_feature", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "application_plan_id", - "description": "ID of the application plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_plan_ids" - }, - { - "name": "feature_id", - "description": "ID of the feature.", - "dataType": "int", - "required": true, - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/application_plans/{application_plan_id}/features/{id}.xml", - "operations": [ - { - "httpMethod": "DELETE", - "summary": "Application Plan Feature Delete", - "descripttion": "Removes the association of a feature to an application plan.", - "group": "application_plan_feature", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "application_plan_id", - "description": "ID of the application plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_plan_ids" - }, - { - "name": "id", - "description": "ID of the feature.", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] - } - ] - }, - { - "path": "/admin/api/application_plans/{application_plan_id}/limits.xml", - "responseClass": "List[limit]", - "operations": [ - { - "nickname": "plan_limits", - "httpMethod": "GET", - "summary": "Limits List per Application Plan", - "description": "Returns the list of all limits associated to an application plan.", - "group": "application_plan_limits", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "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 50.", - "dataType": "int", - "paramType": "query", - "defaultValue": "50" - }, - { - "name": "application_plan_id", - "description": "ID of the application plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_plan_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/limits.xml", - "responseClass": "List[limit]", - "operations": [ - { - "nickname": "limits", - "httpMethod": "GET", - "summary": "Limit List per Metric", - "description": "Returns the list of all limits associated to a metric of an application plan.", - "group": "application_plan_limit", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "application_plan_id", - "description": "ID of the application plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_plan_ids" - }, - { - "name": "metric_id", - "description": "ID of the metric.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "metric_ids" - } - ] - }, - { - "httpMethod": "POST", - "summary": "Limit Create", - "description": "Adds a limit to a metric of an application plan. All applications with the application plan (application_plan_id) will be constrained by this new limit on the metric (metric_id).", - "group": "application_plan_limit", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "application_plan_id", - "description": "ID of the application plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_plan_ids" - }, - { - "name": "metric_id", - "description": "ID of the metric.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "metric_ids" - }, - { - "name": "period", - "description": "Period of the limit.", - "dataType": "string", - "required": true, - "paramType": "query", - "defaultValue": "minute", - "allowableValues": { - "values": [ - "eternity", - "year", - "month", - "week", - "day", - "hour", - "minute" - ], - "valueType": "LIST" + } + }, + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/users/{id}/unsuspend.xml": { + "put": { + "summary": "User Unsuspend", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{id}/credit_card.xml": { + "put": { + "summary": "Account Set Credit Card", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "credit_card_token", + "in": "query", + "description": "Token used by the payment gateway to identify the buyer, customer profile ID (Authorize.net), customer ID (Braintree and Stripe), customer alias (Ogone-Ingenico). Some payment gateways may store more than one card under the same buyer reference and/or require an additional identifier for recurring payment. If you are using Braintree, there is no need for additional identifier -- the first credit card available will always be charged. For Authorize.net, see `credit_card_authorize_net_payment_profile_token`.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "credit_card_authorize_net_payment_profile_token", + "in": "query", + "description": "Additional reference provided by the payment gateway to identify a specific card under the same buyer reference. For Authorize.net, you MUST fill with the 'Payment profile token'", + "schema": { + "type": "string" + } + }, + { + "name": "credit_card_expiration_year", + "in": "query", + "description": "Year of expiration of credit card. Two digit number", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "credit_card_expiration_month", + "in": "query", + "description": "Month of expiration of credit card. Two digit number", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "billing_address_name", + "in": "query", + "description": "Name of the person/company to bill", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "billing_address_address", + "in": "query", + "description": "Address associated to the credit card", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "billing_address_city", + "in": "query", + "description": "Billing address city", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "billing_address_country", + "in": "query", + "description": "Billing address country", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "billing_address_state", + "in": "query", + "description": "Billing address state", + "schema": { + "type": "string" + } + }, + { + "name": "billing_address_phone", + "in": "query", + "description": "Billing address phone", + "schema": { + "type": "string" + } + }, + { + "name": "billing_address_zip", + "in": "query", + "description": "Billing address ZIP Code", + "schema": { + "type": "string" + } + }, + { + "name": "credit_card_partial_number", + "in": "query", + "description": "Last four digits on the credit card", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Account Delete Credit Card", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/limits/{id}.xml": { + "get": { + "summary": "Limit Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the limit.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Limit Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the limit.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "period", + "in": "query", + "description": "Period of the limit.", + "required": true, + "schema": { + "type": "string", + "default": "minute", + "enum": [ + "eternity", + "year", + "month", + "week", + "day", + "hour", + "minute" + ] + } + }, + { + "name": "value", + "in": "query", + "description": "Value of the limit.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Limit Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the limit.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts.xml": { + "get": { + "summary": "Account List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "state", + "in": "query", + "description": "Account state.", + "schema": { + "type": "string", + "enum": [ + "pending", + "approved", + "rejected" + ] + } + }, + { + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 500.", + "schema": { + "type": "integer", + "format": "int32", + "default": 500 + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{id}/reject.xml": { + "put": { + "summary": "Account Reject", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/account_plans/{id}/default.xml": { + "put": { + "summary": "Account Plan set to Default", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/webhooks/failures.xml": { + "get": { + "summary": "Webhooks List Failed Deliveries", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Webhooks Delete Failed Deliveries", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "time", + "in": "query", + "description": "Only failed webhook deliveries whose time is less than or equal to the passed time are destroyed (if used).", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/proxy/configs/{environment}/{version}.json": { + "get": { + "summary": "Proxy Config Show", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "environment", + "in": "path", + "description": "Gateway environment. Must be 'sandbox' or 'production'", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "version", + "in": "path", + "description": "Version of the Proxy config.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/webhooks.json": { + "put": { + "summary": "WebHooks Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "url", + "in": "query", + "description": "URL that will be notified about all the events", + "schema": { + "type": "string" + } + }, + { + "name": "active", + "in": "query", + "description": "Activate/Disable WebHooks", + "schema": { + "type": "boolean" + } + }, + { + "name": "provider_actions", + "in": "query", + "description": "Dashboard actions fire webhooks. If false, only user actions in the portal trigger events.", + "schema": { + "type": "boolean" + } + }, + { + "name": "account_created_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "account_updated_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "account_deleted_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "user_created_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "user_updated_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "user_deleted_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_created_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_updated_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_deleted_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "account_plan_changed_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_plan_changed_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_user_key_updated_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_key_created_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_key_deleted_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_suspended_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_key_updated_on", + "in": "query", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/proxy/configs/{environment}.json": { + "get": { + "summary": "Proxy Configs List (Service)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "environment", + "in": "path", + "description": "Gateway environment. Must be 'sandbox' or 'production'", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/users/{id}/suspend.xml": { + "put": { + "summary": "User Suspend (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{id}.xml": { + "get": { + "summary": "Service Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Service Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "New name for the service.", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "New description for the service.", + "schema": { + "type": "string" + } + }, + { + "name": "support_email", + "in": "query", + "description": "New support email.", + "schema": { + "type": "string" + } + }, + { + "name": "deployment_option", + "in": "query", + "description": "Deployment option for the gateway: 'hosted' for APIcast hosted, 'self_managed' for APIcast Self-managed, 'service_mesh_istio' for Istio service mesh option", + "schema": { + "type": "string" + } + }, + { + "name": "backend_version", + "in": "query", + "description": "Authentication mode: '1' for API key, '2' for App Id / App Key, 'oidc' for OpenID Connect", + "schema": { + "type": "string" + } + }, + { + "name": " ", + "in": "query", + "description": "Extra parameters", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" } - }, - { - "name": "value", - "description": "Value of the limit.", - "dataType": "int", - "required": true, - "paramType": "query", - "allowMultiple": false - } - ] - } - ] - }, - { - "path": "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/limits/{id}.xml", - "responseClass": "application_plan_limit", - "operations": [ - { - "httpMethod": "GET", - "summary": "Limit Read", - "description": "Returns a limit on a metric of an application plan.", - "group": "application_plan_limit", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "application_plan_id", - "description": "ID of the application plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_plan_ids" - }, - { - "name": "metric_id", - "description": "ID of the metric.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "metric_ids" - }, - { - "name": "id", - "description": "ID of the limit.", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] - }, - { - "httpMethod": "PUT", - "summary": "Limit Update", - "description": "Updates a limit on a metric of an application plan.", - "group": "application_plan_limit", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "application_plan_id", - "description": "ID of the application plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_plan_ids" - }, - { - "name": "metric_id", - "description": "ID of the metric.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "metric_ids" - }, - { - "name": "id", - "description": "ID of the limit.", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "name": "period", - "description": "Period of the limit.", - "dataType": "string", - "required": true, - "paramType": "query", - "defaultValue": "minute", - "allowableValues": { - "values": [ - "eternity", - "year", - "month", - "week", - "day", - "hour", - "minute" - ], - "valueType": "LIST" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Service Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{application_id}/referrer_filters/{id}.xml": { + "delete": { + "summary": "Application Referrer Filter Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "application_id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of referrer filter to be deleted.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/metrics/{metric_id}/methods/{id}.xml": { + "get": { + "summary": "Service Method Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the method.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Service Method Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the method.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "friendly_name", + "in": "query", + "description": "Name of the method.", + "schema": { + "type": "string" + } + }, + { + "name": "unit", + "in": "query", + "description": "Measure unit of the method.", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the method.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Service Method Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the method.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/settings.json": { + "get": { + "summary": "Settings Read", + "operationId": "service_metric", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Settings Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "useraccountarea_enabled", + "in": "query", + "description": "Allow the user to edit their submitted details, change passwords, etc", + "schema": { + "type": "boolean" + } + }, + { + "name": "hide_service", + "in": "query", + "description": "Used a default service plan", + "schema": { + "type": "boolean" + } + }, + { + "name": "signups_enabled", + "in": "query", + "description": "Developers are allowed sign up themselves.", + "schema": { + "type": "boolean" + } + }, + { + "name": "account_approval_required", + "in": "query", + "description": "Approval is required by you before developer accounts are activated.", + "schema": { + "type": "boolean" + } + }, + { + "name": "strong_passwords_enabled", + "in": "query", + "description": "Require strong passwords from your users: Password must be at least 8 characters long, and contain both upper and lowercase letters, a digit and one special character of -+=><_$#.:;!?@&*()~][}{|. Existing passwords will still work. ", + "schema": { + "type": "boolean" + } + }, + { + "name": "public_search", + "in": "query", + "description": "Enables public search on Developer Portal", + "schema": { + "type": "boolean" + } + }, + { + "name": "account_plans_ui_visible", + "in": "query", + "description": "Enables visibility of Account Plans", + "schema": { + "type": "boolean" + } + }, + { + "name": "change_account_plan_permission", + "in": "query", + "description": "Account Plans changing", + "schema": { + "type": "string" + } + }, + { + "name": "service_plans_ui_visible", + "in": "query", + "description": "Enables visibility of Service Plans", + "schema": { + "type": "boolean" + } + }, + { + "name": "change_service_plan_permission", + "in": "query", + "description": "Service Plans changing", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/backend_apis/{id}.json": { + "get": { + "summary": "Backend Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Backend Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the Backend", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the Backend", + "schema": { + "type": "string" + } + }, + { + "name": "private_endpoint", + "in": "query", + "description": "Private Base URL (your API)", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Backend Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/account_plans/{account_plan_id}/features/{id}.xml": { + "post": { + "summary": "Account Plan Features Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_plan_id", + "in": "path", + "description": "ID of the account plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Account Plan Features Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_plan_id", + "in": "path", + "description": "ID of the account plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/backend_apis/{backend_api_id}/metrics/{id}.json": { + "get": { + "summary": "Backend Metric Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Backend Metric Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "friendly_name", + "in": "query", + "description": "Name of the metric.", + "schema": { + "type": "string" + } + }, + { + "name": "unit", + "in": "query", + "description": "Measure unit of the metric.", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the metric.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Backend Metric Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/backend_usages/{id}.json": { + "get": { + "summary": "Backend Usage Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the Backend Usage.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Backend Usage Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the Backend Usage.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "path", + "in": "query", + "description": "Path of the Backend for this product.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Backend Usage Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the Backend Usage.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/users/{id}.xml": { + "get": { + "summary": "User Read (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "User Update (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "username", + "in": "query", + "description": "Username of the user.", + "schema": { + "type": "string" + } + }, + { + "name": "email", + "in": "query", + "description": "Email of the user.", + "schema": { + "type": "string" + } + }, + { + "name": "password", + "in": "query", + "description": "Password of the user.", + "schema": { + "type": "string" + } + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). Additional fields are the custom fields declared for your tenant, you can find them in 'Settings >> Personal Details' for the account and in 'Settings >> Account >> Users >> Personal Details' for users. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" } - }, - { - "name": "value", - "description": "Value of the limit.", - "dataType": "int", - "required": false, - "paramType": "query", - "allowMultiple": false - } - ] - }, - { - "httpMethod": "DELETE", - "summary": "Limit Delete", - "description": "Deletes a limit on a metric of an application plan.", - "group": "application_plan_limit", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "application_plan_id", - "description": "ID of the application plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_plan_ids" - }, - { - "name": "metric_id", - "description": "ID of the metric.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "metric_ids" - }, - { - "name": "id", - "description": "ID of the limit.", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] - } - ] - }, - { - "path": "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/pricing_rules.xml", - "responseClass": "List[pricing_rule]", - "operations": [ - { - "nickname": "metric_pricing_rules", - "httpMethod": "GET", - "summary": "Pricing Rules List per Metric", - "description": "Returns the list of all pricing rules associated to a metric of an application plan.", - "group": "application_plan_pricing_rules", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "application_plan_id", - "description": "ID of the application plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_plan_ids" - }, - { - "name": "metric_id", - "description": "ID of the metric.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "metric_ids" - } - ] - }, - { - "httpMethod": "POST", - "summary": "Pricing Rule Create", - "description": "Creates a pricing rule for an associated application plan.", - "group": "application_plan_pricing_rules", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "application_plan_id", - "description": "ID of the application plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_plan_ids" - }, - { - "name": "metric_id", - "description": "ID of the metric.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "metric_ids" - }, - { - "name": "min", - "dataType": "int", - "paramType": "query", - "description": "From (min) hit" - }, - { - "name": "max", - "dataType": "int", - "paramType": "query", - "description": "To (max) hit" - }, - { - "name": "cost_per_unit", - "dataType": "decimal", - "paramType": "query", - "description": "Cost per unit" - } - ] - } - ] - }, - { - "path": "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/pricing_rules/{id}.json", - "responseClass": "pricing_rule", - "operations": [ - { - "httpMethod": "DELETE", - "summary": "Pricing Rule Delete", - "description": "Deletes a pricing rule for a given application plan and metric.", - "group": "application_plan_pricing_rules", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "application_plan_id", - "description": "ID of the application plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_plan_ids" - }, - { - "name": "metric_id", - "description": "ID of the metric.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "metric_ids" - }, - { - "name": "id", - "description": "ID of the pricing rule.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "pricing_rule_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": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "application_plan_id", - "description": "ID of the application plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_plan_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/application_plans.xml", - "responseClass": "List[application_plan]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Application Plan List (all services)", - "description": "Returns the list of all application plans across services. Note that application plans are scoped by service.", - "group": "application_plan", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/application_plans.xml", - "responseClass": "List[application_plan]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Application Plan List", - "description": "Returns the list of all application plans of a service.", - "group": "application_plan", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - } - ] - }, - { - "httpMethod": "POST", - "summary": "Application Plan Create", - "description": "Creates an application plan.", - "group": "application_plan", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "name", - "description": "Name of the application plan.", - "dataType": "string", - "required": true, - "paramType": "query" - }, - { - "name": "approval_required", - "description": "Set the 'Applications require approval?' to 'true' or 'false'", - "dataType": "boolean", - "required": false, - "paramType": "query" - }, - { - "name": "cost_per_month", - "description": "Cost per month", - "dataType": "decimal", - "required": false, - "paramType": "query" - }, - { - "name": "setup_fee", - "description": "Setup fee", - "dataType": "decimal", - "required": false, - "paramType": "query" - }, - { - "name": "trial_period_days", - "description": "Trial period days", - "dataType": "integer", - "required": false, - "paramType": "query" - }, - { - "name": "system_name", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "dataType": "string", - "paramType": "query" - }, - { - "name": "state_event", - "description": "State event of the application plan. It can be 'publish' or 'hide'", - "dataType": "string", - "required": false, - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/application_plans/{id}.xml", - "responseClass": "application_plan", - "operations": [ - { - "httpMethod": "GET", - "summary": "Application Plan Read", - "description": "Returns and application plan.", - "group": "application_plan", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "id", - "description": "ID of the application plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_plan_ids" - } - ] - }, - { - "httpMethod": "PUT", - "summary": "Application Plan Update", - "description": "Updates an application plan.", - "group": "application_plan", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "id", - "description": "ID of the application plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_plan_ids" - }, - { - "name": "name", - "description": "Name of the application plan.", - "dataType": "string", - "paramType": "query" - }, - { - "name": "approval_required", - "description": "Set the 'Applications require approval?' to 'true' or 'false'", - "dataType": "boolean", - "required": false, - "paramType": "query" - }, - { - "name": "cost_per_month", - "description": "Cost per month", - "dataType": "decimal", - "required": false, - "paramType": "query" - }, - { - "name": "setup_fee", - "description": "Setup fee", - "dataType": "decimal", - "required": false, - "paramType": "query" - }, - { - "name": "trial_period_days", - "description": "Trial period days", - "dataType": "integer", - "required": false, - "paramType": "query" - }, - { - "name": "state_event", - "description": "State event of the application plan. It can be 'publish' or 'hide'", - "dataType": "string", - "required": false, - "paramType": "query" - } - ] - }, - { - "httpMethod": "DELETE", - "summary": "Application Plan Delete", - "description": "Deletes an application plan.", - "group": "application_plan", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "id", - "description": "ID of the application plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_plan_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/application_plans/{id}/default.xml", - "responseClass": "application_plan", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Application Plan Set to Default", - "description": "Makes the application plan the default one. New applications will be assigned to the default plan unless an application_plan_id is explicity passed (e.g. on the signup express operation).", - "group": "application_plan", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "id", - "description": "ID of the application plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_plan_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/applications.xml", - "responseClass": "List[applications]", - "operations": [ - { - "nickname": "applications", - "httpMethod": "GET", - "summary": "Application List (all services)", - "description": "Returns the list of applications across all services. Note that applications are scoped by service and can be paginated.", - "group": "application", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "page", - "description": "Page in the paginated list. Defaults to 1.", - "dataType": "int", - "paramType": "query", - "defaultValue": "1" - }, - { - "name": "per_page", - "description": "Number of results per page. Default and max is 500.", - "dataType": "int", - "paramType": "query", - "defaultValue": "500" - }, - { - "name": "active_since", - "description": "Filter date", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query", - "threescale_name": "active_since" - }, - { - "name": "inactive_since", - "description": "Filter date", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query", - "threescale_name": "inactive_since" - }, - { - "name": "service_id", - "description": "Filter by service", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query", - "threescale_name": "service_id" - }, - { - "name": "plan_id", - "description": "Filter by plan", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query", - "threescale_name": "plan_id" - }, - { - "name": "plan_type", - "description": "Filter by plan type", - "dataType": "string", - "allowableValues": { - "values": [ - "free", - "paid" - ], - "valueType": "LIST" - }, - "allowMultiple": false, - "required": false, - "paramType": "query", - "threescale_name": "plan_type" } - ] - } - ] - }, - { - "path": "/admin/api/applications/find.xml", - "responseClass": "application", - "operations": [ - { - "httpMethod": "GET", - "summary": "Application Find", - "description": "Finds an application by keys used on the integration of your API and 3scale's Service Management API or by application ID.", - "group": "application", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "application_id", - "description": "ID of the application.", - "dataType": "int", - "required": false, - "paramType": "query", - "threescale_name": "application_ids" - }, - { - "name": "user_key", - "description": "user_key of the application (for user_key authentication mode).", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query", - "threescale_name": "user_keys" - }, - { - "name": "app_id", - "description": "app_id of the application (for app_id/app_key and oauth authentication modes).", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query", - "threescale_name": "app_ids" - }, - { - "name": "service_id", - "description": "Filter by service", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query", - "threescale_name": "service_id" - } - ] - } - ] - }, - { - "path": "/admin/api/authentication_providers.xml", - "responseClass": "authentication_provider", - "operations": [ - { - "httpMethod": "POST", - "summary": "Authentication Provider Developer Portal Create", - "description": "Creates an authentication provider for the developer portal.", - "group": "authentication_provider", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "kind", - "description": "The kind of authentication provider which can be either 'github', 'auth0', 'keycloak' or a custom one. Use 'keycloak' for Red Hat Single Sign-On.", - "dataType": "string", - "required": true, - "paramType": "query" - }, - { - "name": "name", - "description": "Name of the authentication provider.", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "system_name", - "description": "System Name of the authentication provider.", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "client_id", - "description": "Client ID of the authentication provider.", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "client_secret", - "description": "Client Secret of the authentication provider.", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "site", - "description": "Site o Realm of the authentication provider.", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "token_url", - "description": "Token URL of the authentication provider.", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "user_info_url", - "description": "User info URL of the authentication provider.", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "authorize_url", - "description": "Authorize URL of the authentication provider.", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "identifier_key", - "description": "Identifier key. 'id' by default.", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "username_key", - "description": "Username key. 'login' by default.", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "trust_email", - "description": "Trust emails automatically. False by default", - "dataType": "boolean", - "required": false, - "paramType": "query" - }, - { - "name": "published", - "description": "Published authentication provider. False by default", - "dataType": "boolean", - "required": false, - "paramType": "query" - }, - { - "name": "branding_state_event", - "description": "Branding state event of the authentication provider. Only available for Github. It can be either 'brand_as_threescale' (the default one) or 'custom_brand'", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "skip_ssl_certificate_verification", - "description": "Skip SSL certificate verification. False by default.", - "dataType": "boolean", - "required": false, - "paramType": "query" - }, - { - "name": "automatically_approve_accounts", - "description": "Automatically approve accounts. False by default.", - "dataType": "boolean", - "required": false, - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/authentication_providers/{id}.xml", - "responseClass": "authentication_provider", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Authentication Provider Developer Portal Update", - "description": "Updates an authentication provider for the developer portal.", - "group": "authentication_provider", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the authentication provider.", - "dataType": "string", - "required": true, - "paramType": "path" - }, - { - "name": "client_id", - "description": "Client ID of the authentication provider.", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "client_secret", - "description": "Client Secret of the authentication provider.", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "site", - "description": "Site o Realm of the authentication provider.", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "published", - "description": "Published authentication provider. False by default", - "dataType": "boolean", - "required": false, - "paramType": "query" - }, - { - "name": "skip_ssl_certificate_verification", - "description": "Skip SSL certificate verification. False by default.", - "dataType": "boolean", - "required": false, - "paramType": "query" - }, - { - "name": "automatically_approve_accounts", - "description": "Automatically approve accounts. False by default.", - "dataType": "boolean", - "required": false, - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/authentication_providers.xml", - "responseClass": "List[authentication_provider]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Authentication Providers Developer Portal List", - "description": "Returns the list of all the authentication providers for the developer portal.", - "group": "authentication_provider", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - } - ] - } - ] - }, - { - "path": "/admin/api/authentication_providers/{id}.xml", - "responseClass": "authentication_provider", - "operations": [ - { - "httpMethod": "GET", - "summary": "Authentication Provider Read", - "description": "Returns an authentication provider.", - "group": "authentication_provider", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the authentication provider.", - "dataType": "string", - "required": true, - "paramType": "path" - } - ] - } - ] - }, - { - "path": "/admin/api/backend_apis/{backend_api_id}/mapping_rules.json", - "responseClass": "List[mapping_rule]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Backend Mapping Rules List", - "description": "Returns the Mapping Rules of a Backend.", - "group": "mapping_rule", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "backend_api_id", - "description": "ID of the Backend.", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "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/backend_apis/{backend_api_id}/mapping_rules/{id}.json", - "responseClass": "mapping_rule", - "operations": [ - { - "httpMethod": "GET", - "summary": "Backend Mapping Rules Read", - "description": "Returns the Mapping Rule of a Backend.", - "group": "mapping_rule", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "backend_api_id", - "description": "ID of the Backend.", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "name": "id", - "description": "Mapping Rule ID.", - "dataType": "int", - "paramType": "path", - "required": true - } - ] - } - ] - }, - { - "path": "/admin/api/backend_apis/{backend_api_id}/mapping_rules.json", - "responseClass": "mapping_rule", - "operations": [ - { - "httpMethod": "POST", - "summary": "Backend Mapping Rule Create", - "description": "Creates a Mapping Rule of a Backend.", - "group": "mapping_rule", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "backend_api_id", - "description": "ID of the Backend.", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "name": "http_method", - "description": "HTTP method.", - "dataType": "string", - "paramType": "query", - "required": true - }, - { - "name": "pattern", - "description": "Mapping Rule pattern.", - "dataType": "string", - "paramType": "query", - "required": true - }, - { - "name": "delta", - "description": "Increase the metric by this delta.", - "dataType": "int", - "paramType": "query", - "required": true - }, - { - "name": "metric_id", - "description": "Metric ID.", - "dataType": "int", - "paramType": "query", - "required": true, - "threescale_name": "metric_ids" - }, - { - "name": "position", - "description": "Mapping Rule position", - "dataType": "int", - "paramType": "query" - }, - { - "name": "last", - "description": "Last matched Mapping Rule to process", - "dataType": "bool", - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/backend_apis/{backend_api_id}/mapping_rules/{id}.json", - "responseClass": "mapping_rule", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Backend Mapping Rule Update", - "description": "Updates a Mapping Rule of a Backend.", - "group": "mapping_rule", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "backend_api_id", - "description": "ID of the Backend.", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "name": "id", - "description": "Mapping Rule ID.", - "dataType": "int", - "paramType": "path", - "required": true - }, - { - "name": "http_method", - "description": "HTTP method.", - "dataType": "string", - "paramType": "query" - }, - { - "name": "pattern", - "description": "Mapping Rule pattern.", - "dataType": "string", - "paramType": "query" - }, - { - "name": "delta", - "description": "Increase the metric by this delta.", - "dataType": "int", - "paramType": "query" - }, - { - "name": "metric_id", - "description": "Metric ID.", - "dataType": "int", - "paramType": "query", - "threescale_name": "metric_ids" - }, - { - "name": "position", - "description": "Mapping Rule position", - "dataType": "int", - "paramType": "query" - }, - { - "name": "last", - "description": "Last matched Mapping Rule to process", - "dataType": "bool", - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/backend_apis/{backend_api_id}/mapping_rules/{id}.json", - "responseClass": "mapping_rule", - "operations": [ - { - "httpMethod": "DELETE", - "summary": "Backend Mapping Rule Delete", - "description": "Deletes a Mapping Rule of a Backend.", - "group": "mapping_rule", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "backend_api_id", - "description": "ID of the Backend.", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "name": "id", - "description": "Mapping Rule ID.", - "dataType": "int", - "paramType": "path", - "required": true - } - ] - } - ] - }, - { - "path": "/admin/api/backend_apis/{backend_api_id}/metrics/{metric_id}/methods.json", - "responseClass": "List[methods]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Backend Method List", - "description": "List the methods of a metric that belongs to a backend api. Methods are metrics that are children of a parent metric.", - "group": "metric_method", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "backend_api_id", - "description": "ID of the Backend.", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "name": "metric_id", - "description": "ID of the metric.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "metric_ids" - }, - { - "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/backend_apis/{backend_api_id}/metrics/{metric_id}/methods.json", - "responseClass": "method", - "operations": [ - { - "httpMethod": "POST", - "summary": "Backend Method Create", - "description": "Creates a method under a metric that belongs to a backend api.", - "group": "metric_method", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "backend_api_id", - "description": "ID of the Backend.", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "name": "metric_id", - "description": "ID of the metric.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "metric_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. 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 metric.", - "dataType": "string", - "allowMultiple": false, - "required": true, - "paramType": "query" - }, - { - "name": "description", - "description": "Description of the metric.", - "dataType": "text", - "allowMultiple": false, - "required": false, - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/backend_apis/{backend_api_id}/metrics/{metric_id}/methods/{id}.json", - "responseClass": "method", - "operations": [ - { - "httpMethod": "GET", - "summary": "Backend Method Read", - "description": "Returns the method of a metric that belongs to a backend api.", - "group": "metric_method", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "backend_api_id", - "description": "ID of the Backend.", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "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/backend_apis/{backend_api_id}/metrics/{metric_id}/methods/{id}.json", - "responseClass": "method", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Backend Method Update", - "description": "Updates a method of a metric that belongs to a backend api.", - "group": "metric_method", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "backend_api_id", - "description": "ID of the Backend.", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "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" - }, - { - "name": "description", - "description": "Description of the method.", - "dataType": "text", - "allowMultiple": false, - "required": false, - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/backend_apis/{backend_api_id}/metrics/{metric_id}/methods/{id}.json", - "operations": [ - { - "httpMethod": "DELETE", - "summary": "Backend Method Delete", - "description": "Deletes the method of a metric that belongs to a backend api.", - "group": "metric_method", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "backend_api_id", - "description": "ID of the Backend.", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "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/backend_apis/{backend_api_id}/metrics.json", - "responseClass": "List[metric]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Backend Metric List", - "description": "Returns the list of metrics of a backend api.", - "group": "metric", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "backend_api_id", - "description": "ID of the Backend.", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "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/backend_apis/{backend_api_id}/metrics/{id}.json", - "responseClass": "metric", - "operations": [ - { - "httpMethod": "GET", - "summary": "Backend Metric Read", - "description": "Returns the metric of a backend api.", - "group": "metric", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "backend_api_id", - "description": "ID of the Backend.", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "name": "id", - "description": "ID of the metric.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "metric_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/backend_apis/{backend_api_id}/metrics.json", - "responseClass": "metric", - "operations": [ - { - "httpMethod": "POST", - "summary": "Backend Metric Create", - "description": "Creates a metric on a backend api.", - "group": "metric", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "backend_api_id", - "description": "ID of the Backend.", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "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. 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 metric.", - "dataType": "string", - "allowMultiple": false, - "required": true, - "paramType": "query" - }, - { - "name": "description", - "description": "Description of the metric.", - "dataType": "text", - "allowMultiple": false, - "required": false, - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/backend_apis/{backend_api_id}/metrics/{id}.json", - "responseClass": "metric", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Backend Metric Update", - "description": "Updates the metric of a backend api.", - "group": "metric", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "backend_api_id", - "description": "ID of the Backend.", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "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" - }, - { - "name": "description", - "description": "Description of the metric.", - "dataType": "text", - "allowMultiple": false, - "required": false, - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/backend_apis/{backend_api_id}/metrics/{id}.json", - "operations": [ - { - "httpMethod": "DELETE", - "summary": "Backend Metric Delete", - "description": "Deletes the metric of a backend api. When you delete a metric or a method, it will also remove all the associated limits.", - "group": "metric", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "backend_api_id", - "description": "ID of the Backend.", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "name": "id", - "description": "ID of the metric.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "metric_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/backend_apis.json", - "responseClass": "List[backend_api]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Backend List", - "description": "Returns the list of backend apis. The results can be paginated.", - "group": "backend_api", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "page", - "description": "Page in the paginated list. Defaults to 1.", - "dataType": "int", - "paramType": "query", - "defaultValue": "1" - }, - { - "name": "per_page", - "description": "Number of results per page. Default and max is 500.", - "dataType": "int", - "paramType": "query", - "defaultValue": "500" - } - ] - } - ] - }, - { - "path": "/admin/api/backend_apis.json", - "responseClass": "backend_api", - "operations": [ - { - "httpMethod": "POST", - "summary": "Backend Create", - "description": "Creates a Backend.", - "group": "backend_api", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "name", - "description": "Name of the Backend", - "dataType": "string", - "required": true, - "paramType": "query" - }, - { - "name": "system_name", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "dataType": "string", - "paramType": "query" - }, - { - "name": "description", - "description": "Description of the Backend", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "private_endpoint", - "description": "Private Base URL (your API)", - "dataType": "string", - "required": true, - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/backend_apis/{id}.json", - "responseClass": "backend_api", - "operations": [ - { - "httpMethod": "GET", - "summary": "Backend Read", - "description": "Returns a backend.", - "group": "backend_api", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the Backend.", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] - } - ] - }, - { - "path": "/admin/api/backend_apis/{id}.json", - "responseClass": "backend_api", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Backend Update", - "description": "Updates a backend.", - "group": "backend_api", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the Backend.", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "name": "name", - "description": "Name of the Backend", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "description", - "description": "Description of the Backend", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "private_endpoint", - "description": "Private Base URL (your API)", - "dataType": "string", - "required": false, - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/backend_apis/{id}.json", - "responseClass": "backend_api", - "operations": [ - { - "httpMethod": "DELETE", - "summary": "Backend Delete", - "description": "Deletes a backend.", - "group": "backend_api", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the Backend.", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{account_id}/plan.xml", - "responseClass": "account_plan", - "operations": [ - { - "httpMethod": "GET", - "summary": "Account Fetch Account Plan", - "description": "Returns the account plan associated to an account.", - "group": "account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{account_id}/applications/{application_id}/keys.xml", - "responseClass": "application", - "operations": [ - { - "httpMethod": "GET", - "summary": "Application Key List", - "description": "Lists the Application Keys (or the Client Secret for OAuth or OpenID Connect modes) of the application.", - "group": "application", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "application_id", - "description": "ID of the application.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_ids" - } - ] - }, - { - "nickname": "key_create", - "httpMethod": "POST", - "summary": "Application Key Create", - "description": "Adds an application key for App Id/App Key mode (until a maximum of 5 keys) or the Client Secret for OAuth or OpenID Connect modes (only one).", - "group": "application", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "application_id", - "description": "ID of the application.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_ids" - }, - { - "name": "key", - "description": "app_key to be added", - "dataType": "string", - "required": true, - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{account_id}/applications/{application_id}/keys/{key}.xml", - "responseClass": "application", - "operations": [ - { - "httpMethod": "DELETE", - "summary": "Application Key Delete", - "description": "Deletes an application key for App Id/App Key mode or the Client Secret for OAuth or OpenID Connect modes. An application may have to have at least one App Key (controlled by settings).", - "group": "application", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "application_id", - "description": "ID of the application.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_ids" - }, - { - "name": "key", - "description": "app_key to be deleted.", - "dataType": "string", - "required": true, - "paramType": "path" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{account_id}/applications/{application_id}/referrer_filters.xml", - "responseClass": "application", - "operations": [ - { - "httpMethod": "GET", - "summary": "Application Referrer Filter List", - "description": "Lists referrer filters of the application.", - "group": "application", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "application_id", - "description": "ID of the application.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_ids" - } - ] - }, - { - "httpMethod": "POST", - "summary": "Application Referrer Filter Create", - "description": "Adds a referrer filter to an application. Referrer filters limit API requests by domain or IP ranges.", - "group": "application", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "application_id", - "description": "ID of the application.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_ids" - }, - { - "name": "referrer_filter", - "description": "Referrer filter to be created.", - "dataType": "string", - "required": true, - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{account_id}/applications/{application_id}/referrer_filters/{id}.xml", - "responseClass": "application", - "operations": [ - { - "httpMethod": "DELETE", - "summary": "Application Referrer Filter Delete", - "description": "Deletes a referrer filter of an application. Referrer filters limit API requests by domain or IP ranges.", - "group": "application", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "application_id", - "description": "ID of the application.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_ids" - }, - { - "name": "id", - "description": "ID of referrer filter to be deleted.", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{account_id}/applications.xml", - "responseClass": "List[applications]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Application List", - "description": "Returns the list of application of an account.", - "group": "application", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - } - ] - }, - { - "httpMethod": "POST", - "summary": "Application Create", - "description": "Create an application. The application object can be extended with Fields Definitions in the Admin Portal where you can add/remove fields, for instance token (string), age (int), third name (string optional), etc.", - "group": "application", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "plan_id", - "description": "ID of the application plan.", - "dataType": "int", - "required": true, - "paramType": "query", - "threescale_name": "application_plan_ids" - }, - { - "name": "name", - "description": "Name of the application to be created.", - "dataType": "string", - "allowMultiple": false, - "required": true, - "paramType": "query" - }, - { - "name": "description", - "description": "Description of the application to be created.", - "dataType": "string", - "allowMultiple": false, - "required": true, - "paramType": "query" - }, - { - "name": "user_key", - "description": "User Key (API Key) of the application to be created.", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query" - }, - { - "name": "application_id", - "description": "App ID or Client ID (for OAuth and OpenID Connect authentication modes) of the application to be created.", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query" - }, - { - "name": "application_key", - "description": "App Key(s) or Client Secret (for OAuth and OpenID Connect authentication modes) of the application to be created.", - "dataType": "string", - "allowMultiple": true, - "required": false, - "paramType": "query" - }, - { - "name": "redirect_url", - "description": "Redirect URL for the OAuth request.", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query" - }, - { - "name": "first_traffic_at", - "description": "Timestamp of the first call made by the application.", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query" - }, - { - "name": "first_daily_traffic_at", - "description": "Timestamp of the first call on the last day when traffic was registered for the application ('Traffic On').", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query" - }, - { - "name": "additional_fields", - "dataType": "custom", - "paramType": "query", - "allowMultiple": true, - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields." - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{account_id}/applications/{id}.xml", - "responseClass": "application", - "operations": [ - { - "httpMethod": "GET", - "summary": "Application Read", - "description": "Returns the application by id.", - "group": "application", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "id", - "description": "ID of the application.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_ids" - } - ] - }, - { - "httpMethod": "PUT", - "summary": "Application Update", - "description": "Updates an application. All fields of the application object can be updated except the id and the app_id (when using OAuth or app_id/app_key authentication pattern).", - "group": "application", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "id", - "description": "ID of the application.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_ids" - }, - { - "name": "name", - "description": "Name of the application.", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "description", - "description": "Description of the application.", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "redirect_url", - "description": "Redirect URL for the OAuth request.", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query" - }, - { - "name": "first_traffic_at", - "description": "Timestamp of the first call made by the application.", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query" - }, - { - "name": "first_daily_traffic_at", - "description": "Timestamp of the first call on the last day when traffic was registered for the application ('Traffic On').", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query" - }, - { - "name": "additional_fields", - "dataType": "custom", - "paramType": "query", - "allowMultiple": true, - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields." - } - ] - }, - { - "httpMethod": "DELETE", - "summary": "Application Delete", - "description": "Deletes the application.", - "group": "application", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "id", - "description": "ID of the application.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{account_id}/applications/{id}/change_plan.xml", - "responseClass": "application", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Application Change Plan", - "description": "Changes the application plan of an application.", - "group": "application", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "id", - "description": "ID of the application.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_ids" - }, - { - "name": "plan_id", - "description": "ID of the new application plan.", - "dataType": "int", - "paramType": "query", - "required": true, - "threescale_name": "application_plan_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{account_id}/applications/{id}/customize_plan.xml", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Application Create Plan Customization", - "description": "Creates a customized application plan for the application.", - "group": "application", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "id", - "description": "ID of the application.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{account_id}/applications/{id}/decustomize_plan.xml", - "responseClass": "application", - "description": "Decustomizes the plan of an application.", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Application Delete Plan Customization", - "description": "Deletes the customized application plan of the application. After removing the customization the application will be constrained by the original application plan.", - "group": "application", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "id", - "description": "ID of the application.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{account_id}/applications/{id}/accept.xml", - "responseClass": "application", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Application Accept", - "description": "Accepts an application (changes the state to live). Once the state is live the application can be used on API requests.", - "group": "application", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "id", - "description": "ID of the application.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{account_id}/applications/{id}/suspend.xml", - "responseClass": "application", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Application Suspend", - "description": "Suspends an application (changes the state to suspended). Suspending an application will stop the application from authorizing API requests.", - "group": "application", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "id", - "description": "ID of the application.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{account_id}/applications/{id}/resume.xml", - "responseClass": "application", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Application Resume", - "description": "Resume a suspended application. Once a suspended application is resumed it will be authorized on API requests.", - "group": "application", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "id", - "description": "ID of the application.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{account_id}/users.xml", - "responseClass": "List[users]", - "operations": [ - { - "httpMethod": "GET", - "summary": "User List", - "description": "Returns the list of users of an account. The list can be filtered by the state or role of the users.", - "group": "user", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "state", - "description": "Filter users by State.", - "dataType": "string", - "paramType": "query", - "required": false, - "defaultValue": "", - "allowableValues": { - "values": [ - "pending", - "suspended", - "active" - ], - "valueType": "LIST" + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "User Delete (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/fields_definitions/{id}.json": { + "get": { + "summary": "Fields Definition Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the fields definition.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Fields Definition Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the fields definition.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "target", + "in": "query", + "description": "Target entity of fields definition.", + "required": true, + "schema": { + "type": "string", + "default": "account", + "enum": [ + "Account", + "User", + "Cinstance" + ] + } + }, + { + "name": "label", + "in": "query", + "description": "The field title your developers will see.", + "schema": { + "type": "string" + } + }, + { + "name": "required", + "in": "query", + "description": "If 'true' the field will be required for developers.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hidden", + "in": "query", + "description": "If 'true' the developers won't be able to see this field.", + "schema": { + "type": "boolean" + } + }, + { + "name": "read_only", + "in": "query", + "description": "If 'true' the developers won't be able to change this field.", + "schema": { + "type": "boolean" + } + }, + { + "name": "position", + "in": "query", + "description": "Position of the fields definition.", + "schema": { + "type": "ref" + } + }, + { + "name": "choices", + "in": "query", + "description": "The list of predefined options for this field, URL-encoded array.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" } - }, - { - "name": "role", - "description": "Filter users by Role.", - "dataType": "string", - "paramType": "query", - "required": false, - "defaultValue": "", - "allowableValues": { - "values": [ - "member", - "admin" - ], - "valueType": "LIST" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Fields Definition Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the fields definition.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/application_plans/{application_plan_id}/limits.xml": { + "get": { + "summary": "Limits List per Application Plan", + "operationId": "plan_limits", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 50.", + "schema": { + "type": "integer", + "format": "int32", + "default": 50 + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{id}/accept.xml": { + "put": { + "summary": "Application Accept", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/users/{id}/permissions.xml": { + "get": { + "summary": "User Permissions Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "User Permissions Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "allowed_service_ids", + "in": "query", + "description": "IDs of the services that need to be enabled, URL-encoded array. To disable all services, set the value to '[]'. To enable all services, add parameter 'allowed_service_ids[]' with no value to the 'curl' command (can't be done in ActiveDocs)", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" } } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{account_id}/users.xml", - "responseClass": "user", - "operations": [ - { - "httpMethod": "POST", - "summary": "User Create", - "description": "Creates a new user of the account (account_id). Do not forget to activate the user otherwise he/she will be unable to sign-in. After creation the default state is pending and the default role is member. The user object can be extended using Fields Definitions in the Admin Portal. You can add/remove fields, for instance token (string), age (int), third name (string optional), etc. ", - "group": "user", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "username", - "description": "Username of the user.", - "dataType": "string", - "allowMultiple": false, - "required": true, - "paramType": "query" - }, - { - "name": "email", - "description": "Email of the user.", - "dataType": "string", - "allowMultiple": false, - "required": true, - "paramType": "query" - }, - { - "name": "password", - "description": "Password of the user.", - "dataType": "string", - "allowMultiple": false, - "required": true, - "paramType": "query" - }, - { - "name": "additional_fields", - "dataType": "custom", - "paramType": "query", - "allowMultiple": true, - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields." - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{account_id}/users/{id}.xml", - "responseClass": "user", - "operations": [ - { - "httpMethod": "GET", - "summary": "User Read", - "description": "Returns the user of an account.", - "group": "user", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "id", - "description": "ID of the user.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "user_ids" - } - ] - }, - { - "httpMethod": "PUT", - "summary": "User Update", - "description": "Updates the user of an account. You can update any field, not only those in the form of the ActiveDocs but all the fields that belong to the User object. Remember that you can define custom fields on your Admin Portal.", - "group": "user", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "id", - "description": "ID of the user.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "user_ids" - }, - { - "name": "username", - "description": "Username of the user.", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query" - }, - { - "name": "email", - "description": "Email of the user.", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query" - }, - { - "name": "password", - "description": "Password of the user.", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query" - }, - { - "name": "additional_fields", - "dataType": "custom", - "paramType": "query", - "allowMultiple": true, - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields." - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{account_id}/users/{id}.xml", - "responseClass": "user", - "operations": [ - { - "httpMethod": "DELETE", - "summary": "User Delete", - "description": "Deletes a user of an account. The last user can't be deleted", - "group": "user", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "id", - "description": "ID of the user.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "user_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{account_id}/users/{id}/member.xml", - "responseClass": "user", - "operations": [ - { - "httpMethod": "PUT", - "summary": "User Change Role to Member", - "description": "Changes the role of the user to member.", - "group": "user", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "id", - "description": "ID of the user.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "user_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{account_id}/users/{id}/admin.xml", - "responseClass": "user", - "operations": [ - { - "httpMethod": "PUT", - "summary": "User change Role to Admin", - "description": "Changes the role of the user to admin.", - "group": "user", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "id", - "description": "ID of the user.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "user_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{account_id}/users/{id}/suspend.xml", - "responseClass": "user", - "operations": [ - { - "httpMethod": "PUT", - "summary": "User Suspend", - "description": "Changes the state of the user to suspended. A suspended user cannot sign-in.", - "group": "user", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "id", - "description": "ID of the user.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "user_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{account_id}/users/{id}/unsuspend.xml", - "responseClass": "user", - "operations": [ - { - "httpMethod": "PUT", - "summary": "User Unsuspend", - "description": "Change the state of the user back to active.", - "group": "user", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "id", - "description": "ID of the user.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "user_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{account_id}/users/{id}/activate.xml", - "responseClass": "user", - "operations": [ - { - "httpMethod": "PUT", - "summary": "User Activate", - "description": "Activate the user of an account. A user is created in the pending state and needs to be activated before he/she is able to sign-in.", - "group": "user", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "id", - "description": "ID of the user.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "user_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{id}/credit_card.xml", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Account Set Credit Card", - "description": "Associates credit card tokens and billing address to an account. This operation is only required if you use your own credit card capture method. These tokens are the ones required by Authorize.net, ogone, braintree, payment express and merchant e solutions", - "group": "account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "dataType": "string", - "required": true, - "paramType": "query", - "name": "credit_card_token", - "description": "Token used by the payment gateway to identify the buyer, customer profile ID (Authorize.net), customer ID (Braintree and Stripe), customer alias (Ogone-Ingenico). Some payment gateways may store more than one card under the same buyer reference and/or require an additional identifier for recurring payment. If you are using Braintree, there is no need for additional identifier -- the first credit card available will always be charged. For Authorize.net, see `credit_card_authorize_net_payment_profile_token`." - }, - { - "dataType": "string", - "required": false, - "paramType": "query", - "name": "credit_card_authorize_net_payment_profile_token", - "description": "Additional reference provided by the payment gateway to identify a specific card under the same buyer reference. For Authorize.net, you MUST fill with the 'Payment profile token'" - }, - { - "dataType": "string", - "required": true, - "paramType": "query", - "name": "credit_card_expiration_year", - "description": "Year of expiration of credit card. Two digit number" - }, - { - "dataType": "string", - "required": true, - "paramType": "query", - "name": "credit_card_expiration_month", - "description": "Month of expiration of credit card. Two digit number" - }, - { - "dataType": "string", - "required": true, - "paramType": "query", - "name": "billing_address_name", - "description": "Name of the person/company to bill" - }, - { - "dataType": "string", - "required": true, - "paramType": "query", - "name": "billing_address_address", - "description": "Address associated to the credit card" - }, - { - "dataType": "string", - "required": true, - "paramType": "query", - "name": "billing_address_city", - "description": "Billing address city" - }, - { - "dataType": "string", - "required": true, - "paramType": "query", - "name": "billing_address_country", - "description": "Billing address country" - }, - { - "dataType": "string", - "paramType": "query", - "name": "billing_address_state", - "description": "Billing address state", - "required": false - }, - { - "dataType": "string", - "paramType": "query", - "name": "billing_address_phone", - "description": "Billing address phone", - "required": false - }, - { - "dataType": "string", - "paramType": "query", - "name": "billing_address_zip", - "description": "Billing address ZIP Code", - "required": false - }, - { - "dataType": "string", - "paramType": "query", - "name": "credit_card_partial_number", - "description": "Last four digits on the credit card" - } - ] - }, - { - "httpMethod": "DELETE", - "summary": "Account Delete Credit Card", - "description": "Removes all credit card info of an account.", - "group": "account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/fields_definitions.json", - "responseClass": "List[fields_definition]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Fields Definitions List", - "description": "Returns the list of all fields definitions.", - "group": "fields_definition", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - } - ] - } - ] - }, - { - "path": "/admin/api/fields_definitions.json", - "responseClass": "FieldsDefinition", - "operations": [ - { - "httpMethod": "POST", - "summary": "Fields Definition Create", - "description": "Creates a new fields definition.", - "group": "fields_definition", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "target", - "description": "Target entity of fields definition.", - "dataType": "string", - "required": true, - "paramType": "query", - "defaultValue": "account", - "allowableValues": { - "values": [ - "Account", - "User", - "Cinstance" - ], - "valueType": "LIST" + }, + { + "name": "allowed_sections", + "in": "query", + "description": "The list of sections in the admin portal that the user can access, URL-encoded array. Possible values: 'portal' (Developer Portal), 'finance' (Billing), 'settings', 'partners' (Accounts -- Applications), 'monitoring' (Analytics), 'plans' (Integration & Application Plans), 'policy_registry'. To disable all sections, set the value to '[]'.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" } - }, - { - "name": "name", - "description": "Name of the fields definition to be created.", - "dataType": "string", - "required": true, - "paramType": "query" - }, - { - "name": "label", - "description": "The field title your developers will see.", - "dataType": "string", - "required": true, - "paramType": "query" - }, - { - "name": "required", - "description": "If 'true' the field will be required for developers.", - "dataType": "boolean", - "required": false, - "paramType": "query" - }, - { - "name": "hidden", - "description": "If 'true' the developers won't be able to see this field.", - "dataType": "boolean", - "required": false, - "paramType": "query" - }, - { - "name": "read_only", - "description": "If 'true' the developers won't be able to change this field.", - "dataType": "boolean", - "required": false, - "paramType": "query" - }, - { - "name": "choices", - "defaultName": "choices[]", - "description": "The list of predefined options for this field, URL-encoded array.", - "dataType": "custom", - "allowMultiple": true, - "required": false, - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/fields_definitions/{id}.json", - "responseClass": "service", - "operations": [ - { - "httpMethod": "GET", - "summary": "Fields Definition Read", - "description": "Returns the fields definition by id.", - "group": "fields_definition", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the fields definition.", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] - }, - { - "httpMethod": "PUT", - "summary": "Fields Definition Update", - "description": "Updates the fields definition.", - "group": "fields_definition", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the fields definition.", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "name": "target", - "description": "Target entity of fields definition.", - "dataType": "string", - "required": true, - "paramType": "query", - "defaultValue": "account", - "allowableValues": { - "values": [ - "Account", - "User", - "Cinstance" - ], - "valueType": "LIST" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/messages.xml": { + "post": { + "summary": "Account Message", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "body", + "in": "query", + "description": "Text to send", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "subject", + "in": "query", + "description": "Subject of the message", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/proxy/configs/{environment}/latest.json": { + "get": { + "summary": "Proxy Config Show Latest", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "environment", + "in": "path", + "description": "Gateway environment. Must be 'sandbox' or 'production'", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/users.xml": { + "get": { + "summary": "User List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "state", + "in": "query", + "description": "Filter users by State.", + "schema": { + "type": "string", + "enum": [ + "pending", + "suspended", + "active" + ] + } + }, + { + "name": "role", + "in": "query", + "description": "Filter users by Role.", + "schema": { + "type": "string", + "enum": [ + "member", + "admin" + ] + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "User Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "username", + "in": "query", + "description": "Username of the user.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "email", + "in": "query", + "description": "Email of the user.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "password", + "in": "query", + "description": "Password of the user.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" } - }, - { - "name": "label", - "description": "The field title your developers will see.", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "required", - "description": "If 'true' the field will be required for developers.", - "dataType": "boolean", - "required": false, - "paramType": "query" - }, - { - "name": "hidden", - "description": "If 'true' the developers won't be able to see this field.", - "dataType": "boolean", - "required": false, - "paramType": "query" - }, - { - "name": "read_only", - "description": "If 'true' the developers won't be able to change this field.", - "dataType": "boolean", - "required": false, - "paramType": "query" - }, - { - "name": "position", - "description": "Position of the fields definition.", - "dataType": "integer", - "required": false, - "paramType": "query" - }, - { - "name": "choices", - "defaultName": "choices[]", - "description": "The list of predefined options for this field, URL-encoded array.", - "dataType": "custom", - "allowMultiple": true, - "required": false, - "paramType": "query" - } - ] - }, - { - "httpMethod": "DELETE", - "summary": "Fields Definition Delete", - "description": "Deletes the fields definition.", - "group": "fields_definition", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the fields definition.", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] - } - ] - }, - { - "path": "/admin/api/users/{id}/permissions.xml", - "operations": [ - { - "httpMethod": "GET", - "summary": "User Permissions Read", - "description": "Shows the permissions of the user of the provider account.", - "group": "user_provider_account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the user.", - "dataType": "int", - "allowMultiple": false, - "required": true, - "paramType": "path", - "threescale_name": "admin_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/users/{id}/permissions.xml", - "operations": [ - { - "httpMethod": "PUT", - "summary": "User Permissions Update", - "description": "Updates the permissions of member user of the provider account.", - "group": "user_provider_account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the user.", - "dataType": "int", - "allowMultiple": false, - "required": true, - "paramType": "path", - "threescale_name": "admin_ids" - }, - { - "name": "allowed_service_ids", - "defaultName": "allowed_service_ids[]", - "description": "IDs of the services that need to be enabled, URL-encoded array. To disable all services, set the value to '[]'. To enable all services, add parameter 'allowed_service_ids[]' with no value to the 'curl' command (can't be done in ActiveDocs)", - "dataType": "custom", - "allowMultiple": true, - "required": false, - "paramType": "query" - }, - { - "name": "allowed_sections", - "defaultName": "allowed_sections[]", - "description": "The list of sections in the admin portal that the user can access, URL-encoded array. Possible values: 'portal' (Developer Portal), 'finance' (Billing), 'settings', 'partners' (Accounts -- Applications), 'monitoring' (Analytics), 'plans' (Integration & Application Plans), 'policy_registry'. To disable all sections, set the value to '[]'.", - "dataType": "custom", - "allowMultiple": true, - "required": false, - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{account_id}/messages.xml", - "operations": [ - { - "httpMethod": "POST", - "summary": "Account Message", - "description": "Sends a message to the account.", - "group": "account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "body", - "description": "Text to send", - "dataType": "string", - "required": true, - "paramType": "query", - "allowMultiple": false - }, - { - "name": "subject", - "description": "Subject of the message", - "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": "Service Method List", - "description": "List the methods of a metric that belongs to a service. Methods are metrics that are children of a parent metric.", - "group": "metric_method", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "metric_id", - "description": "ID of the metric.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "metric_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/metrics/{metric_id}/methods.xml", - "responseClass": "method", - "operations": [ - { - "httpMethod": "POST", - "summary": "Service Method Create", - "description": "Creates a method under a metric that belongs to a service.", - "group": "metric_method", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "metric_id", - "description": "ID of the metric.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "metric_ids" - }, - { - "name": "friendly_name", - "description": "Name of the method.", - "dataType": "string", - "allowMultiple": false, - "required": true, - "paramType": "query" - }, - { - "name": "system_name", - "description": "System Name of the metric. This is the name used to report API requests with the Service Management API. If blank, a system_name will be generated for you from the friendly_name parameter", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query" - }, - { - "name": "unit", - "description": "Measure unit of the method.", - "dataType": "string", - "allowMultiple": false, - "required": true, - "paramType": "query" - }, - { - "name": "description", - "description": "Description of the method.", - "dataType": "text", - "allowMultiple": false, - "required": false, - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/metrics/{metric_id}/methods/{id}.xml", - "responseClass": "method", - "operations": [ - { - "httpMethod": "GET", - "summary": "Service Method Read", - "description": "Returns the method of a metric that belongs to a service.", - "group": "metric_method", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "metric_id", - "description": "ID of the metric.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "metric_ids" - }, - { - "name": "id", - "description": "ID of the method.", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/metrics/{metric_id}/methods/{id}.xml", - "responseClass": "method", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Service Method Update", - "description": "Updates a method of a metric that belongs to a service.", - "group": "metric_method", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "metric_id", - "description": "ID of the metric.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "metric_ids" - }, - { - "name": "id", - "description": "ID of the method.", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "name": "friendly_name", - "description": "Name of the method.", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query" - }, - { - "name": "unit", - "description": "Measure unit of the method.", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query" - }, - { - "name": "description", - "description": "Description of the method.", - "dataType": "text", - "allowMultiple": false, - "required": false, - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/metrics/{metric_id}/methods/{id}.xml", - "operations": [ - { - "httpMethod": "DELETE", - "summary": "Service Method Delete", - "description": "Deletes the method of a metric that belongs to a service.", - "group": "metric_method", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "metric_id", - "description": "ID of the metric.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "metric_ids" - }, - { - "name": "id", - "description": "ID of the method.", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/metrics.xml", - "responseClass": "List[metric]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Service Metric List", - "description": "Returns the list of metrics of a service.", - "group": "metric", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - } - ] - }, - { - "httpMethod": "POST", - "summary": "Service Metric Create", - "description": "Creates a metric on a service.", - "group": "metric", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "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" - }, - { - "name": "description", - "description": "Description of the metric.", - "dataType": "text", - "allowMultiple": false, - "required": false, - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/metrics/{id}.xml", - "responseClass": "metric", - "operations": [ - { - "nickname": "service_metric", - "httpMethod": "GET", - "summary": "Service Metric Read", - "description": "Returns the metric of a service.", - "group": "metric", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "id", - "description": "ID of the metric.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "metric_ids" - } - ] - }, - { - "httpMethod": "PUT", - "summary": "Service Metric Update", - "description": "Updates the metric of a service.", - "group": "metric", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "id", - "description": "ID of the metric.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "metric_ids" - }, - { - "name": "friendly_name", - "description": "Name of the metric.", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query" - }, - { - "name": "unit", - "description": "Measure unit of the metric.", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query" - }, - { - "name": "description", - "description": "Description of the metric.", - "dataType": "text", - "allowMultiple": false, - "required": false, - "paramType": "query" - } - ] - }, - { - "httpMethod": "DELETE", - "summary": "Service Metric Delete", - "description": "Deletes the metric of a service. When you delete a metric or a method, it will also remove all the associated limits across application plans.", - "group": "metric", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "id", - "description": "ID of the metric.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "metric_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/objects/status.json", - "operations": [ - { - "httpMethod": "GET", - "summary": "Object deletion status for objects that are deleted asynchronously", - "description": "Returns an object status. (200/404). Useful for those objects that deleted asynchronously in order to know if the deletion has been completed(404) or not(200)", - "group": "objects", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "dataType": "string", - "required": true, - "paramType": "query", - "name": "object_type", - "description": "Object type has to be service, account, proxy or backend_api." - }, - { - "dataType": "string", - "required": true, - "paramType": "query", - "name": "object_id", - "description": "Object ID." - } - ] - } - ] - }, - { - "path": "/admin/api/personal/access_tokens.json", - "responseClass": "access_token", - "operations": [ - { - "httpMethod": "POST", - "summary": "Personal Access Token Create", - "description": "Creates an access token. Make sure to copy your new personal access token now. You will not be able to see it again as it is not stored for security reasons.", - "group": "access_token", - "parameters": [ - { - "name": "name", - "description": "Name of the access token.", - "dataType": "string", - "required": true, - "paramType": "query" - }, - { - "name": "permission", - "description": "Permission of the access token. It must be either 'ro' (read only) or 'rw' (read and write).", - "dataType": "string", - "required": true, - "paramType": "query" - }, - { - "name": "scopes", - "defaultName": "scopes[]", - "description": "Scope of the access token. URL-encoded array containing one or more of the possible values. The possible values are, for a master user [\"account_management\", \"stats\", \"policy_registry\"], and for a tenant user [\"finance\", \"account_management\", \"stats\", \"policy_registry\"]", - "dataType": "custom", - "allowMultiple": true, - "required": true, - "paramType": "query" - }, - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - } - ] - } - ] - }, - { - "path": "/admin/api/personal/access_tokens.json", - "responseClass": "List[access_token]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Personal Access Token List", - "description": "Returns the list of access tokens of the user. If the parameter name is sent, it returns only those whose name contain the string of the param", - "group": "access_token", - "parameters": [ - { - "name": "name", - "description": "Part of the name of the access token.", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - } - ] - } - ] - }, - { - "path": "/admin/api/personal/access_tokens/{id}.json", - "responseClass": "access_token", - "operations": [ - { - "httpMethod": "DELETE", - "summary": "Personal Access Token Delete", - "description": "Deletes an access token.", - "group": "access_token", - "parameters": [ - { - "name": "id", - "description": "ID or value of the access token.", - "dataType": "integer", - "paramType": "path", - "required": true - }, - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - } - ] - } - ] - }, - { - "path": "/admin/api/personal/access_tokens/{id}.json", - "responseClass": "access_token", - "operations": [ - { - "httpMethod": "GET", - "summary": "Personal Access Token Read", - "description": "Shows an access token.", - "group": "access_token", - "parameters": [ - { - "name": "id", - "description": "ID or value of the access token.", - "dataType": "integer", - "paramType": "path", - "required": true - }, - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - } - ] - } - ] - }, - { - "path": "/admin/api/policies.json", - "responseClass": "json", - "operations": [ - { - "httpMethod": "GET", - "summary": "APIcast Policy Registry", - "description": "Returns APIcast Policy Registry", - "group": "apicast_policies", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - } - ] - } - ] - }, - { - "path": "/admin/api/provider.xml", - "responseClass": "account", - "operations": [ - { - "httpMethod": "GET", - "summary": "Provider Account Read", - "description": "Returns your account.", - "group": "provider", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - } - ] - } - ] - }, - { - "path": "/admin/api/provider.xml", - "responseClass": "provider", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Provider Account Update", - "description": "Updates email addresses used to deliver email notifications to customers.", - "group": "account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "from_email", - "description": "New outgoing email.", - "dataType": "string", - "paramType": "query" - }, - { - "name": "support_email", - "description": "New support email.", - "dataType": "string", - "paramType": "query" - }, - { - "name": "finance_support_email", - "description": "New finance support email.", - "dataType": "string", - "paramType": "query" - }, - { - "name": "site_access_code", - "description": "Developer Portal Access Code.", - "dataType": "string", - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{account_id}/service_contracts.xml", - "responseClass": "service_contract", - "operations": [ - { - "httpMethod": "GET", - "summary": "Service Subscription List", - "description": "List all the service_contracts of an account", - "group": "service_contract", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/accounts/{account_id}/service_contracts/{id}.xml", - "responseClass": "service_contract", - "operations": [ - { - "httpMethod": "DELETE", - "summary": "Service Subscription Delete", - "description": "Unsubscribe from a service. This endpoint will delete all the applications that are under the subscribed service.", - "group": "service_contract", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "id", - "description": "ID of the service contract.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_contract_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/features.xml", - "responseClass": "List[feature]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Service Feature List", - "description": "Returns the list of all features of a service.", - "group": "service_feature", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/features.xml", - "responseClass": "feature", - "operations": [ - { - "httpMethod": "POST", - "summary": "Service Feature Create", - "description": "Creates a feature on a service. Features are usually associated to a particular type of plan; you can associate the plan on the scope parameter. Note that account plans are not scoped by service.", - "group": "service_feature", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "name", - "description": "Name of the feature.", - "dataType": "string", - "required": true, - "paramType": "query" - }, - { - "name": "system_name", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "dataType": "string", - "paramType": "query" - }, - { - "name": "description", - "description": "Description of the feature.", - "dataType": "text", - "allowMultiple": false, - "required": false, - "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" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/objects/status.json": { + "get": { + "summary": "Object deletion status for objects that are deleted asynchronously", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "object_type", + "in": "query", + "description": "Object type has to be service, account, proxy or backend_api.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "object_id", + "in": "query", + "description": "Object ID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/service_contracts.xml": { + "get": { + "summary": "Service Subscription List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/users/{id}/member.xml": { + "put": { + "summary": "User Change Role to Member", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/backend_apis/{backend_api_id}/metrics/{metric_id}/methods/{id}.json": { + "get": { + "summary": "Backend Method Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the method.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Backend Method Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the method.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "friendly_name", + "in": "query", + "description": "Name of the method.", + "schema": { + "type": "string" + } + }, + { + "name": "unit", + "in": "query", + "description": "Measure unit of the method.", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the method.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Backend Method Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the method.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/proxy/oidc_configuration.xml": { + "get": { + "summary": "OIDC Configuration Show", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "patch": { + "summary": "OIDC Configuration Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "standard_flow_enabled", + "in": "query", + "description": "Enable Authorization Code Flow (Standard Flow)", + "schema": { + "type": "boolean" + } + }, + { + "name": "implicit_flow_enabled", + "in": "query", + "description": "Enable Implicit Flow", + "schema": { + "type": "boolean" + } + }, + { + "name": "service_accounts_enabled", + "in": "query", + "description": "Enable Service Account Flow (Standard Flow)", + "schema": { + "type": "boolean" + } + }, + { + "name": "direct_access_grants_enabled", + "in": "query", + "description": "Enable Direct Access Grant Flow", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/users/{id}/activate.xml": { + "put": { + "summary": "User Activate (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/users/{id}/admin.xml": { + "put": { + "summary": "User change Role to Admin", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/account_plans.xml": { + "get": { + "summary": "Account Plan List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Account Plan Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the account plan.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "approval_required", + "in": "query", + "description": "Set the 'Accounts require approval?' to 'true' or 'false'", + "schema": { + "type": "boolean" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "schema": { + "type": "string" + } + }, + { + "name": "state_event", + "in": "query", + "description": "State event of the account plan. It can be 'publish' or 'hide'", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/backend_apis/{backend_api_id}/metrics.json": { + "get": { + "summary": "Backend Metric List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 500.", + "schema": { + "type": "integer", + "format": "int32", + "default": 500 + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Backend Metric Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "friendly_name", + "in": "query", + "description": "Descriptive Name of the metric.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the metric. If blank a system_name will be generated for you from the friendly_name parameter", + "schema": { + "type": "string" + } + }, + { + "name": "unit", + "in": "query", + "description": "Measure unit of the metric.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the metric.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/service_plans/{id}/default.xml": { + "put": { + "summary": "Service Plan Set to Default", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the service plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{id}/customize_plan.xml": { + "put": { + "summary": "Application Create Plan Customization", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/metrics.xml": { + "get": { + "summary": "Service Metric List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Service Metric Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "friendly_name", + "in": "query", + "description": "Descriptive Name of the metric.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "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", + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "query", + "description": "DEPRECATED: Please use system_name parameter", + "schema": { + "type": "string" + } + }, + { + "name": "unit", + "in": "query", + "description": "Measure unit of the metric.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the metric.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/features/{id}.xml": { + "get": { + "summary": "Service Feature Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Service Feature Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the feature.", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the feature.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Service Feature Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/application_plans.xml": { + "get": { + "summary": "Application Plan List (all services)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/proxy.xml": { + "get": { + "summary": "Proxy Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "patch": { + "summary": "Proxy Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "endpoint", + "in": "query", + "description": "Public Base URL for production environment.", + "schema": { + "type": "string" + } + }, + { + "name": "api_backend", + "in": "query", + "description": "Private Base URL. Caution! Do not use it if the account has API as a Product enabled. It may cause API backend usages to be removed from the Product.", + "schema": { + "type": "string" + } + }, + { + "name": "credentials_location", + "in": "query", + "description": "Credentials Location. Either headers, query or authorization for the Basic Authorization.", + "schema": { + "type": "string" + } + }, + { + "name": "auth_app_key", + "in": "query", + "description": "Parameter/Header where App Key is expected.", + "schema": { + "type": "string" + } + }, + { + "name": "auth_app_id", + "in": "query", + "description": "Parameter/Header where App ID is expected.", + "schema": { + "type": "string" + } + }, + { + "name": "auth_user_key", + "in": "query", + "description": "Parameter/Header where User Key is expected.", + "schema": { + "type": "string" + } + }, + { + "name": "error_auth_failed", + "in": "query", + "description": "Error message on failed authentication.", + "schema": { + "type": "string" + } + }, + { + "name": "error_status_auth_failed", + "in": "query", + "description": "Status code on failed authentication.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "error_headers_auth_failed", + "in": "query", + "description": "Content-Type header on failed authentication.", + "schema": { + "type": "string" + } + }, + { + "name": "error_auth_missing", + "in": "query", + "description": "Error message on missing authentication.", + "schema": { + "type": "string" + } + }, + { + "name": "error_status_auth_missing", + "in": "query", + "description": "Status code on missing authentication.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "error_headers_auth_missing", + "in": "query", + "description": "Content-Type header on missing authentication.", + "schema": { + "type": "string" + } + }, + { + "name": "error_no_match", + "in": "query", + "description": "Error message when no mapping rule is matched.", + "schema": { + "type": "string" + } + }, + { + "name": "error_status_no_match", + "in": "query", + "description": "Status code when no mapping rule is matched.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "error_headers_no_match", + "in": "query", + "description": "Content-Type header when no mapping rule is matched.", + "schema": { + "type": "string" + } + }, + { + "name": "error_status_limits_exceeded", + "in": "query", + "description": "Status code when usage limit exceeded.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "error_headers_limits_exceeded", + "in": "query", + "description": "Content-Type header when usage limit exceeded.", + "schema": { + "type": "string" + } + }, + { + "name": "error_limits_exceeded", + "in": "query", + "description": "Error message on usage limit exceeded.", + "schema": { + "type": "string" + } + }, + { + "name": "oidc_issuer_endpoint", + "in": "query", + "description": "Location of your OpenID Provider.", + "schema": { + "type": "string" + } + }, + { + "name": "oidc_issuer_type", + "in": "query", + "description": "Type of your OpenID Provider.", + "schema": { + "type": "string" + } + }, + { + "name": "sandbox_endpoint", + "in": "query", + "description": "Sandbox endpoint.", + "schema": { + "type": "string" + } + }, + { + "name": "jwt_claim_with_client_id", + "in": "query", + "description": "JWT Claim With ClientId Location.", + "schema": { + "type": "string" + } + }, + { + "name": "jwt_claim_with_client_id_type", + "in": "query", + "description": "JWT Claim With ClientId Type. Either `plain` or `liquid`", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{application_id}/referrer_filters.xml": { + "get": { + "summary": "Application Referrer Filter List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "application_id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Application Referrer Filter Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "application_id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "referrer_filter", + "in": "query", + "description": "Referrer filter to be created.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/users.xml": { + "get": { + "summary": "User List (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "state", + "in": "query", + "description": "Filter users by State.", + "schema": { + "type": "string", + "enum": [ + "pending", + "suspended", + "active" + ] + } + }, + { + "name": "role", + "in": "query", + "description": "Filter users by Role.", + "schema": { + "type": "string", + "enum": [ + "member", + "admin" + ] + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "User Create (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "username", + "in": "query", + "description": "Username of the user.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "email", + "in": "query", + "description": "Email of the user.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "password", + "in": "query", + "description": "Password of the user.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). Additional fields are the custom fields declared for your tenant, you can find them in 'Settings >> Personal Details' for the account and in 'Settings >> Account >> Users >> Personal Details' for users. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" } } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/features/{id}.xml", - "responseClass": "feature", - "operations": [ - { - "httpMethod": "GET", - "summary": "Service Feature Read", - "description": "Returns a feature of a service.", - "group": "service_feature", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "id", - "description": "ID of the feature.", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] - }, - { - "httpMethod": "PUT", - "summary": "Service Feature Update", - "description": "Updates a feature of a service.", - "group": "service_feature", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "id", - "description": "ID of the feature.", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "name": "name", - "description": "Name of the feature.", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query" - }, - { - "name": "description", - "description": "Description of the feature.", - "dataType": "text", - "allowMultiple": false, - "required": false, - "paramType": "query" - } - ] - }, - { - "httpMethod": "DELETE", - "summary": "Service Feature Delete", - "description": "Deletes a feature of a service.", - "group": "service_feature", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "id", - "description": "ID of the feature.", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] - } - ] - }, - { - "path": "/admin/api/service_plans/{service_plan_id}/features.xml", - "responseClass": "List[feature]", - "description": "Returns a list of features of an service plan.", - "operations": [ - { - "httpMethod": "GET", - "summary": "Service Plan Feature List", - "description": "Returns the list of features of a service plan.", - "group": "service_plan_feature", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_plan_id", - "description": "ID of the service plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_plan_ids" - } - ] - }, - { - "httpMethod": "POST", - "summary": "Service Plan Feature Add", - "description": "Associates an existing feature to a service plan.", - "group": "service_plan_feature", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_plan_id", - "description": "ID of the service plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_plan_ids" - }, - { - "name": "feature_id", - "description": "ID of the feature.", - "dataType": "int", - "required": true, - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/service_plans/{service_plan_id}/features/{id}.xml", - "operations": [ - { - "httpMethod": "DELETE", - "summary": "Service Plan Features Delete", - "description": "Removes the association of a feature to a service plan.", - "group": "service_plan_feature", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_plan_id", - "description": "ID of the service plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_plan_ids" - }, - { - "name": "id", - "description": "ID of the feature.", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] - } - ] - }, - { - "path": "/admin/api/service_plans.xml", - "responseClass": "List[service_plan]", - "description": "Returns a list of all your service plans.", - "operations": [ - { - "httpMethod": "GET", - "summary": "Service Plan List (all services)", - "description": "Returns a list of all service plans for all services. Note that service plans are scoped by service.", - "group": "service_plan", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{id}/service_plans.xml", - "responseClass": "List[service_plan]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Service Plan List", - "description": "Returns a list of all service plans for a service.", - "group": "service_plan", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - } - ] - }, - { - "httpMethod": "POST", - "summary": "Service Plan Create", - "description": "Creates a new service plan in a service.", - "group": "service_plan", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "name", - "description": "Name of the service plan.", - "dataType": "string", - "required": true, - "paramType": "query" - }, - { - "name": "approval_required", - "description": "Set the 'Service subscriptions require approval?' to 'true' or 'false'", - "dataType": "boolean", - "required": false, - "paramType": "query" - }, - { - "name": "system_name", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "dataType": "string", - "paramType": "query" - }, - { - "name": "state_event", - "description": "State event of the service plan. It can be 'publish' or 'hide'", - "dataType": "string", - "required": false, - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/service_plans/{id}.xml", - "responseClass": "service_plan", - "operations": [ - { - "httpMethod": "GET", - "summary": "Service Plan Read", - "description": "Returns a service plan by ID.", - "group": "service_plan", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "id", - "description": "ID of the service plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_plan_ids" - } - ] - }, - { - "httpMethod": "PUT", - "summary": "Service Plan Update", - "description": "Updates a service plan by ID.", - "group": "service_plan", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "id", - "description": "ID of the service plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_plan_ids" - }, - { - "name": "name", - "description": "Name of the service plan.", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "approval_required", - "description": "Set the 'Service subscriptions require approval?' to 'true' or 'false'", - "dataType": "boolean", - "required": false, - "paramType": "query" - }, - { - "name": "state_event", - "description": "State event of the service plan. It can be 'publish' or 'hide'", - "dataType": "string", - "required": false, - "paramType": "query" - } - ] - }, - { - "httpMethod": "DELETE", - "summary": "Service Plan Delete", - "description": "Deletes a service plan by ID.", - "group": "service_plan", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "id", - "description": "ID of the service plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_plan_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/service_plans/{id}/default.xml", - "responseClass": "service_plan", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Service Plan Set to Default", - "description": "Sets the service plan as default. The default service plan is used when no explicit service plan is used.", - "group": "service_plan", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "id", - "description": "ID of the service plan.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_plan_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/backend_usages.json", - "responseClass": "List[backend_api_config]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Backend Usage List", - "description": "Returns the list of all Backend being used by a Service (Product) with the corresponding path.", - "group": "backend_api_config", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/backend_usages.json", - "responseClass": "backend_api_config", - "operations": [ - { - "httpMethod": "POST", - "summary": "Backend Usage Create", - "description": "Adds a Backend to a Service (Product).", - "group": "backend_api_config", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "backend_api_id", - "description": "Backend to be added to the Service (Product).", - "dataType": "string", - "required": true, - "paramType": "query" - }, - { - "name": "path", - "description": "Path of the Backend for this product.", - "dataType": "int", - "required": false, - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/backend_usages/{id}.json", - "operations": [ - { - "httpMethod": "DELETE", - "summary": "Backend Usage Delete", - "description": "Removes the backend from a Service (Product).", - "group": "backend_api_config", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "id", - "description": "ID of the Backend Usage.", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/backend_usages/{id}.json", - "responseClass": "backend_api_config", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Backend Usage Update", - "description": "Updates the path of a Backend within the scope of the Service (Product).", - "group": "backend_api_config", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "id", - "description": "ID of the Backend Usage.", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "name": "path", - "description": "Path of the Backend for this product.", - "dataType": "int", - "required": false, - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/backend_usages/{id}.json", - "responseClass": "backend_api_config", - "operations": [ - { - "httpMethod": "GET", - "summary": "Backend Usage Read", - "description": "Show the usage of a Backend within the scope of the Service (Product).", - "group": "backend_api_config", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "id", - "description": "ID of the Backend Usage.", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/proxy/mapping_rules.xml", - "responseClass": "List[mapping_rule]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Proxy Mapping Rules List", - "description": "Returns the Mapping Rules of a Proxy.", - "group": "mapping_rule", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/proxy/mapping_rules/{id}.xml", - "responseClass": "mapping_rule", - "operations": [ - { - "httpMethod": "GET", - "summary": "Proxy Mapping Rules Show", - "description": "Returns the Mapping Rule.", - "group": "mapping_rule", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "id", - "description": "Mapping Rule ID.", - "dataType": "int", - "paramType": "path", - "required": true - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/proxy/mapping_rules.xml", - "responseClass": "mapping_rule", - "operations": [ - { - "httpMethod": "POST", - "summary": "Proxy Mapping Rule Create", - "description": "Creates a Proxy Mapping Rule. The proxy object needs to be updated after a mapping rule is added to apply the change to the APIcast configuration. If adding multiple mapping rules then only one call to the Proxy Update endpoint is necessary after all mapping rules have been created.", - "group": "mapping_rule", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "http_method", - "description": "HTTP method.", - "dataType": "string", - "paramType": "query", - "required": true - }, - { - "name": "pattern", - "description": "Mapping Rule pattern.", - "dataType": "string", - "paramType": "query", - "required": true - }, - { - "name": "delta", - "description": "Increase the metric by this delta.", - "dataType": "int", - "paramType": "query", - "required": true - }, - { - "name": "metric_id", - "description": "Metric ID.", - "dataType": "int", - "paramType": "query", - "required": true, - "threescale_name": "metric_ids" - }, - { - "name": "position", - "description": "Mapping Rule position", - "dataType": "int", - "paramType": "query" - }, - { - "name": "last", - "description": "Last matched Mapping Rule to process", - "dataType": "bool", - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/proxy/mapping_rules/{id}.xml", - "responseClass": "mapping_rule", - "operations": [ - { - "httpMethod": "PATCH", - "summary": "Proxy Mapping Rule Update", - "description": "Updates a Proxy Mapping Rule. The proxy object needs to be updated after a mapping rule is updated to apply the change to the APIcast configuration. If updating multiple mapping rules then only one call to the Proxy Update endpoint is necessary after all mapping rules have been updated.", - "group": "mapping_rule", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "id", - "description": "Mapping Rule ID.", - "dataType": "int", - "paramType": "path", - "required": true - }, - { - "name": "http_method", - "description": "HTTP method.", - "dataType": "string", - "paramType": "query" - }, - { - "name": "pattern", - "description": "Mapping Rule pattern.", - "dataType": "string", - "paramType": "query" - }, - { - "name": "delta", - "description": "Increase the metric by this delta.", - "dataType": "int", - "paramType": "query" - }, - { - "name": "metric_id", - "description": "Metric ID.", - "dataType": "int", - "paramType": "query", - "threescale_name": "metric_ids" - }, - { - "name": "position", - "description": "Mapping Rule position", - "dataType": "int", - "paramType": "query" - }, - { - "name": "last", - "description": "Last matched Mapping Rule to process", - "dataType": "bool", - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/proxy/mapping_rules/{id}.xml", - "responseClass": "mapping_rule", - "operations": [ - { - "httpMethod": "DELETE", - "summary": "Proxy Mapping Rule Delete", - "description": "Deletes a Proxy Mapping Rule. The proxy object needs to be updated after a mapping rule is deleted to apply the change to the APIcast configuration. If deleting multiple mapping rules then only one call to the Proxy Update endpoint is necessary after all desired mapping rules have been deleted.", - "group": "mapping_rule", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "id", - "description": "Mapping Rule ID.", - "dataType": "int", - "paramType": "path", - "required": true - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/proxy.xml", - "responseClass": "proxy", - "operations": [ - { - "httpMethod": "GET", - "summary": "Proxy Read", - "description": "Returns the Proxy of a Service.", - "group": "proxy", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/proxy.xml", - "responseClass": "proxy", - "operations": [ - { - "httpMethod": "PATCH", - "summary": "Proxy Update", - "description": "Changes the Proxy settings. This will create a new APIcast configuration version for the Staging environment with the updated settings.", - "group": "proxy", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "endpoint", - "description": "Public Base URL for production environment.", - "dataType": "string", - "paramType": "query", - "required": false - }, - { - "name": "api_backend", - "description": "Private Base URL. Caution! Do not use it if the account has API as a Product enabled. It may cause API backend usages to be removed from the Product.", - "dataType": "string", - "paramType": "query", - "required": false - }, - { - "name": "credentials_location", - "description": "Credentials Location. Either headers, query or authorization for the Basic Authorization.", - "dataType": "string", - "paramType": "query", - "required": false - }, - { - "name": "auth_app_key", - "description": "Parameter/Header where App Key is expected.", - "dataType": "string", - "paramType": "query", - "required": false - }, - { - "name": "auth_app_id", - "description": "Parameter/Header where App ID is expected.", - "dataType": "string", - "paramType": "query", - "required": false - }, - { - "name": "auth_user_key", - "description": "Parameter/Header where User Key is expected.", - "dataType": "string", - "paramType": "query", - "required": false - }, - { - "name": "error_auth_failed", - "description": "Error message on failed authentication.", - "dataType": "string", - "paramType": "query", - "required": false - }, - { - "name": "error_status_auth_failed", - "description": "Status code on failed authentication.", - "dataType": "int", - "paramType": "query", - "required": false - }, - { - "name": "error_headers_auth_failed", - "description": "Content-Type header on failed authentication.", - "dataType": "string", - "paramType": "query", - "required": false - }, - { - "name": "error_auth_missing", - "description": "Error message on missing authentication.", - "dataType": "string", - "paramType": "query", - "required": false - }, - { - "name": "error_status_auth_missing", - "description": "Status code on missing authentication.", - "dataType": "int", - "paramType": "query", - "required": false - }, - { - "name": "error_headers_auth_missing", - "description": "Content-Type header on missing authentication.", - "dataType": "string", - "paramType": "query", - "required": false - }, - { - "name": "error_no_match", - "description": "Error message when no mapping rule is matched.", - "dataType": "string", - "paramType": "query", - "required": false - }, - { - "name": "error_status_no_match", - "description": "Status code when no mapping rule is matched.", - "dataType": "int", - "paramType": "query", - "required": false - }, - { - "name": "error_headers_no_match", - "description": "Content-Type header when no mapping rule is matched.", - "dataType": "string", - "paramType": "query", - "required": false - }, - { - "name": "error_status_limits_exceeded", - "description": "Status code when usage limit exceeded.", - "dataType": "int", - "paramType": "query", - "required": false - }, - { - "name": "error_headers_limits_exceeded", - "description": "Content-Type header when usage limit exceeded.", - "dataType": "string", - "paramType": "query", - "required": false - }, - { - "name": "error_limits_exceeded", - "description": "Error message on usage limit exceeded.", - "dataType": "string", - "paramType": "query", - "required": false - }, - { - "name": "oidc_issuer_endpoint", - "description": "Location of your OpenID Provider.", - "dataType": "string", - "paramType": "query", - "required": false - }, - { - "name": "oidc_issuer_type", - "description": "Type of your OpenID Provider.", - "dataType": "string", - "paramType": "query", - "required": false - }, - { - "name": "sandbox_endpoint", - "description": "Sandbox endpoint.", - "dataType": "string", - "paramType": "query", - "required": false - }, - { - "name": "jwt_claim_with_client_id", - "description": "JWT Claim With ClientId Location.", - "dataType": "string", - "paramType": "query", - "required": false - }, - { - "name": "jwt_claim_with_client_id_type", - "description": "JWT Claim With ClientId Type. Either `plain` or `liquid`", - "dataType": "string", - "paramType": "query", - "required": false - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/proxy/deploy.xml", - "responseClass": "proxy", - "operations": [ - { - "httpMethod": "POST", - "summary": "Proxy Deploy", - "description": "Promotes the APIcast configuration to the Staging Environment (Production Environment in case of Service Mesh).", - "group": "proxy", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/proxy/configs/{environment}.json", - "responseClass": "proxy_config", - "operations": [ - { - "httpMethod": "GET", - "summary": "Proxy Configs List (Service)", - "description": "Returns the Proxy Configs of a Service", - "group": "proxy_config", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "environment", - "description": "Gateway environment. Must be 'sandbox' or 'production'", - "dataType": "string", - "required": true, - "paramType": "path", - "threescale_name": "environment" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/proxy/configs/{environment}/latest.json", - "responseClass": "proxy_config", - "operations": [ - { - "httpMethod": "GET", - "summary": "Proxy Config Show Latest", - "description": "Returns the latest Proxy Config.", - "group": "proxy_config", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "environment", - "description": "Gateway environment. Must be 'sandbox' or 'production'", - "dataType": "string", - "required": true, - "paramType": "path", - "threescale_name": "environment" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/proxy/configs/{environment}/{version}.json", - "responseClass": "proxy_config", - "operations": [ - { - "httpMethod": "GET", - "summary": "Proxy Config Show", - "description": "Returns a Proxy Config.", - "group": "proxy_config", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "environment", - "description": "Gateway environment. Must be 'sandbox' or 'production'", - "dataType": "string", - "required": true, - "paramType": "path", - "threescale_name": "environment" - }, - { - "name": "version", - "description": "Version of the Proxy config.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "proxy_config_version" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/proxy/configs/{environment}/{version}/promote.json", - "responseClass": "proxy_config", - "operations": [ - { - "httpMethod": "POST", - "summary": "Proxy Config Promote", - "description": "Promotes a Proxy Config from one environment to another environment.", - "group": "proxy_config", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "environment", - "description": "Gateway environment. Must be 'sandbox' or 'production'", - "dataType": "string", - "required": true, - "paramType": "path", - "threescale_name": "environment" - }, - { - "name": "version", - "description": "Version of the Proxy config.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "proxy_config_version" - }, - { - "name": "to", - "description": "the name of the destination environment", - "dataType": "string", - "paramType": "query", - "required": true - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/proxy/oidc_configuration.xml", - "responseClass": "oidc_configuration", - "operations": [ - { - "httpMethod": "GET", - "summary": "OIDC Configuration Show", - "description": "Get the Proxy OIDC configuration.", - "group": "oidc_configuration", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/proxy/oidc_configuration.xml", - "responseClass": "oidc_configuration", - "operations": [ - { - "httpMethod": "PATCH", - "summary": "OIDC Configuration Update", - "description": "Changes the Proxy OIDC configuration.", - "group": "oidc_configuration", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "standard_flow_enabled", - "description": "Enable Authorization Code Flow (Standard Flow)", - "dataType": "boolean", - "paramType": "query", - "required": false - }, - { - "name": "implicit_flow_enabled", - "description": "Enable Implicit Flow", - "dataType": "boolean", - "paramType": "query", - "required": false - }, - { - "name": "service_accounts_enabled", - "description": "Enable Service Account Flow (Standard Flow)", - "dataType": "boolean", - "paramType": "query", - "required": false - }, - { - "name": "direct_access_grants_enabled", - "description": "Enable Direct Access Grant Flow", - "dataType": "boolean", - "paramType": "query", - "required": false - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/proxy/policies.json", - "responseClass": "json", - "operations": [ - { - "httpMethod": "GET", - "summary": "Proxy Policies Chain Show", - "description": "Returns a Proxy Policies Chain.", - "group": "proxy_policy", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{service_id}/proxy/policies.json", - "responseClass": "json", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Proxy Policies Chain Update", - "description": "Updates a Proxy Policies Chain.", - "group": "proxy_policy", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "policies_config", - "description": "Proxy policies chain", - "dataType": "string", - "paramType": "query", - "required": true - } - ] - } - ] - }, - { - "path": "/admin/api/services.xml", - "responseClass": "List[services]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Service List", - "description": "Returns the list of all services.", - "group": "service", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "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/services.xml", - "responseClass": "service", - "operations": [ - { - "httpMethod": "POST", - "summary": "Service Create", - "description": "Creates a new service.", - "group": "service", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "name", - "description": "Name of the service to be created.", - "dataType": "string", - "required": true, - "paramType": "query" - }, - { - "name": "description", - "description": "Description of the service to be created.", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "deployment_option", - "description": "Deployment option for the gateway: 'hosted' for APIcast hosted, 'self_managed' for APIcast Self-managed, 'service_mesh_istio' for Istio service mesh option", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query" - }, - { - "name": "backend_version", - "description": "Authentication mode: '1' for API key, '2' for App Id / App Key, 'oidc' for OpenID Connect", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query" - }, - { - "name": "system_name", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "dataType": "string", - "paramType": "query" - }, - { - "name": " ", - "dataType": "custom", - "paramType": "query", - "allowMultiple": true, - "description": "Extra parameters" - } - ] - } - ] - }, - { - "path": "/admin/api/services/{id}.xml", - "responseClass": "service", - "operations": [ - { - "httpMethod": "GET", - "summary": "Service Read", - "description": "Returns the service by id.", - "group": "service", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - } - ] - }, - { - "httpMethod": "PUT", - "summary": "Service Update", - "description": "Update the service.", - "group": "service", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "name", - "description": "New name for the service.", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query" - }, - { - "name": "description", - "description": "New description for the service.", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query" - }, - { - "name": "support_email", - "description": "New support email.", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query" - }, - { - "name": "deployment_option", - "description": "Deployment option for the gateway: 'hosted' for APIcast hosted, 'self_managed' for APIcast Self-managed, 'service_mesh_istio' for Istio service mesh option", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query" - }, - { - "name": "backend_version", - "description": "Authentication mode: '1' for API key, '2' for App Id / App Key, 'oidc' for OpenID Connect", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query" - }, - { - "name": " ", - "dataType": "custom", - "paramType": "query", - "allowMultiple": true, - "description": "Extra parameters" - } - ] - }, - { - "httpMethod": "DELETE", - "summary": "Service Delete", - "description": "Delete the service. Deleting a service removes all applications and service subscriptions.", - "group": "service", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/settings.json", - "responseClass": "settings", - "operations": [ - { - "nickname": "service_metric", - "httpMethod": "GET", - "summary": "Settings Read", - "description": "Returns the general settings of an account.", - "group": "settings", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - } - ] - } - ] - }, - { - "path": "/admin/api/settings.json", - "responseClass": "settings", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Settings Update", - "description": "Updates general settings.", - "group": "settings", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "useraccountarea_enabled", - "description": "Allow the user to edit their submitted details, change passwords, etc", - "dataType": "boolean", - "paramType": "query" - }, - { - "name": "hide_service", - "description": "Used a default service plan", - "dataType": "boolean", - "paramType": "query" - }, - { - "name": "signups_enabled", - "description": "Developers are allowed sign up themselves.", - "dataType": "boolean", - "paramType": "query" - }, - { - "name": "account_approval_required", - "description": "Approval is required by you before developer accounts are activated.", - "dataType": "boolean", - "paramType": "query" - }, - { - "name": "strong_passwords_enabled", - "description": "Require strong passwords from your users: Password must be at least 8 characters long, and contain both upper and lowercase letters, a digit and one special character of -+=><_$#.:;!?@&*()~][}{|. Existing passwords will still work. ", - "dataType": "boolean", - "paramType": "query" - }, - { - "name": "public_search", - "description": "Enables public search on Developer Portal", - "dataType": "boolean", - "paramType": "query" - }, - { - "name": "account_plans_ui_visible", - "description": "Enables visibility of Account Plans", - "dataType": "boolean", - "paramType": "query" - }, - { - "name": "change_account_plan_permission", - "description": "Account Plans changing", - "dataType": "string", - "paramType": "query" - }, - { - "name": "service_plans_ui_visible", - "description": "Enables visibility of Service Plans", - "dataType": "boolean", - "paramType": "query" - }, - { - "name": "change_service_plan_permission", - "description": "Service Plans changing", - "dataType": "string", - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/signup.xml", - "responseClass": "account", - "operations": [ - { - "httpMethod": "POST", - "summary": "Signup Express (Account Create)", - "description": "This request allows you to reproduce a developer sign-up in a single API call. It will create an Account, an Admin User for the account, and optionally an Application with its keys. If the plan_id is not passed, the default plan will be used instead. You can add additional custom parameters in Fields Definition on your Admin Portal.", - "group": "signup", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "org_name", - "description": "Organization Name of the developer account.", - "dataType": "string", - "allowMultiple": false, - "required": true, - "paramType": "query" - }, - { - "name": "username", - "description": "Username of the admin user (on the new developer account).", - "dataType": "string", - "allowMultiple": false, - "required": true, - "paramType": "query" - }, - { - "name": "email", - "description": "Email of the admin user.", - "dataType": "string", - "allowMultiple": false, - "required": true, - "paramType": "query" - }, - { - "name": "password", - "description": "Password of the admin user.", - "dataType": "string", - "allowMultiple": false, - "required": true, - "paramType": "query" - }, - { - "name": "account_plan_id", - "description": "ID of the account plan (if not assigned default will be used instead).", - "dataType": "int", - "required": false, - "paramType": "query", - "threescale_name": "account_plan_ids" - }, - { - "name": "service_plan_id", - "description": "ID of the service plan (if not assigned default will be used instead).", - "dataType": "int", - "required": false, - "paramType": "query", - "threescale_name": "service_plan_ids" - }, - { - "name": "application_plan_id", - "description": "ID of the application plan (if not assigned default will be used instead).", - "dataType": "int", - "required": false, - "paramType": "query", - "threescale_name": "application_plan_ids" - }, - { - "name": "additional_fields", - "dataType": "custom", - "paramType": "query", - "allowMultiple": true, - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields." - } - ] - } - ] - }, - { - "path": "/admin/api/users.xml", - "responseClass": "List[users]", - "operations": [ - { - "httpMethod": "GET", - "summary": "User List (provider account)", - "description": "Lists the users of the provider account. You can apply filters by state and/or role.", - "group": "user_provider_account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "state", - "description": "Filter users by State.", - "dataType": "string", - "paramType": "query", - "required": false, - "defaultValue": "", - "allowableValues": { - "values": [ - "pending", - "suspended", - "active" - ], - "valueType": "LIST" + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/users/{id}/member.xml": { + "put": { + "summary": "User Change Role to Member (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/users/{id}/unsuspend.xml": { + "put": { + "summary": "User Unsuspend (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/provider.xml": { + "get": { + "summary": "Provider Account Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Provider Account Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "from_email", + "in": "query", + "description": "New outgoing email.", + "schema": { + "type": "string" + } + }, + { + "name": "support_email", + "in": "query", + "description": "New support email.", + "schema": { + "type": "string" + } + }, + { + "name": "finance_support_email", + "in": "query", + "description": "New finance support email.", + "schema": { + "type": "string" + } + }, + { + "name": "site_access_code", + "in": "query", + "description": "Developer Portal Access Code.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/find.xml": { + "get": { + "summary": "Account Find", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "username", + "in": "query", + "description": "Username of the account user.", + "schema": { + "type": "string" + } + }, + { + "name": "email", + "in": "query", + "description": "Email of the account user.", + "schema": { + "type": "string" + } + }, + { + "name": "user_id", + "in": "query", + "description": "ID of the account user.", + "schema": { + "type": "ref" + } + }, + { + "name": "buyer_provider_key", + "in": "query", + "description": "[Master API] Provider key of the account.", + "schema": { + "type": "string" + } + }, + { + "name": "buyer_service_token", + "in": "query", + "description": "[Master API] Service token of the account service.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/service_plans/{id}.xml": { + "get": { + "summary": "Service Plan Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the service plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Service Plan Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the service plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the service plan.", + "schema": { + "type": "string" + } + }, + { + "name": "approval_required", + "in": "query", + "description": "Set the 'Service subscriptions require approval?' to 'true' or 'false'", + "schema": { + "type": "boolean" + } + }, + { + "name": "state_event", + "in": "query", + "description": "State event of the service plan. It can be 'publish' or 'hide'", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Service Plan Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the service plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/account/proxy_configs/{environment}.json": { + "get": { + "summary": "Proxy Configs List (Provider)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "environment", + "in": "path", + "description": "Gateway environment. Must be 'sandbox' or 'production'", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "host", + "in": "query", + "description": "Filter by host", + "schema": { + "type": "string" + } + }, + { + "name": "version", + "in": "query", + "description": "Filter by version", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/service_plans/{service_plan_id}/features.xml": { + "get": { + "summary": "Service Plan Feature List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_plan_id", + "in": "path", + "description": "ID of the service plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Service Plan Feature Add", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_plan_id", + "in": "path", + "description": "ID of the service plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "feature_id", + "in": "query", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/policies.json": { + "get": { + "summary": "APIcast Policy Registry", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{application_id}/keys/{key}.xml": { + "delete": { + "summary": "Application Key Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "application_id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "key", + "in": "path", + "description": "app_key to be deleted.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/authentication_providers.xml": { + "get": { + "summary": "Authentication Providers Developer Portal List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Authentication Provider Developer Portal Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "kind", + "in": "query", + "description": "The kind of authentication provider which can be either 'github', 'auth0', 'keycloak' or a custom one. Use 'keycloak' for Red Hat Single Sign-On.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "client_id", + "in": "query", + "description": "Client ID of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "client_secret", + "in": "query", + "description": "Client Secret of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "site", + "in": "query", + "description": "Site o Realm of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "token_url", + "in": "query", + "description": "Token URL of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "user_info_url", + "in": "query", + "description": "User info URL of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "authorize_url", + "in": "query", + "description": "Authorize URL of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "identifier_key", + "in": "query", + "description": "Identifier key. 'id' by default.", + "schema": { + "type": "string" + } + }, + { + "name": "username_key", + "in": "query", + "description": "Username key. 'login' by default.", + "schema": { + "type": "string" + } + }, + { + "name": "trust_email", + "in": "query", + "description": "Trust emails automatically. False by default", + "schema": { + "type": "boolean" + } + }, + { + "name": "published", + "in": "query", + "description": "Published authentication provider. False by default", + "schema": { + "type": "boolean" + } + }, + { + "name": "branding_state_event", + "in": "query", + "description": "Branding state event of the authentication provider. Only available for Github. It can be either 'brand_as_threescale' (the default one) or 'custom_brand'", + "schema": { + "type": "string" + } + }, + { + "name": "skip_ssl_certificate_verification", + "in": "query", + "description": "Skip SSL certificate verification. False by default.", + "schema": { + "type": "boolean" + } + }, + { + "name": "automatically_approve_accounts", + "in": "query", + "description": "Automatically approve accounts. False by default.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/proxy/deploy.xml": { + "post": { + "summary": "Proxy Deploy", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/account/authentication_providers/{id}.xml": { + "get": { + "summary": "Authentication Provider Admin Portal Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the authentication provider.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Authentication Provider Admin Portal Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the authentication provider.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "client_id", + "in": "query", + "description": "Client ID of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "client_secret", + "in": "query", + "description": "Client Secret of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "site", + "in": "query", + "description": "Site o Realm of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "skip_ssl_certificate_verification", + "in": "query", + "description": "Skip SSL certificate verification. False by default.", + "schema": { + "type": "boolean" + } + }, + { + "name": "published", + "in": "query", + "description": "Published authentication provider. False by default", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{id}/resume.xml": { + "put": { + "summary": "Application Resume", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/proxy/policies.json": { + "get": { + "summary": "Proxy Policies Chain Show", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Proxy Policies Chain Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "policies_config", + "in": "query", + "description": "Proxy policies chain", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{id}/make_pending.xml": { + "put": { + "summary": "Account Reset to Pending", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/metrics/{metric_id}/methods.xml": { + "get": { + "summary": "Service Method List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Service Method Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "friendly_name", + "in": "query", + "description": "Name of the method.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "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", + "schema": { + "type": "string" + } + }, + { + "name": "unit", + "in": "query", + "description": "Measure unit of the method.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the method.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{id}/decustomize_plan.xml": { + "put": { + "summary": "Application Delete Plan Customization", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/users/{id}.xml": { + "get": { + "summary": "User Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "User Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "username", + "in": "query", + "description": "Username of the user.", + "schema": { + "type": "string" + } + }, + { + "name": "email", + "in": "query", + "description": "Email of the user.", + "schema": { + "type": "string" + } + }, + { + "name": "password", + "in": "query", + "description": "Password of the user.", + "schema": { + "type": "string" + } + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" } - }, - { - "name": "role", - "description": "Filter users by Role.", - "dataType": "string", - "paramType": "query", - "required": false, - "defaultValue": "", - "allowableValues": { - "values": [ - "member", - "admin" - ], - "valueType": "LIST" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "User Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/users/{id}/activate.xml": { + "put": { + "summary": "User Activate", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/fields_definitions.json": { + "get": { + "summary": "Fields Definitions List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Fields Definition Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "target", + "in": "query", + "description": "Target entity of fields definition.", + "required": true, + "schema": { + "type": "string", + "default": "account", + "enum": [ + "Account", + "User", + "Cinstance" + ] + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the fields definition to be created.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "label", + "in": "query", + "description": "The field title your developers will see.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "required", + "in": "query", + "description": "If 'true' the field will be required for developers.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hidden", + "in": "query", + "description": "If 'true' the developers won't be able to see this field.", + "schema": { + "type": "boolean" + } + }, + { + "name": "read_only", + "in": "query", + "description": "If 'true' the developers won't be able to change this field.", + "schema": { + "type": "boolean" + } + }, + { + "name": "choices", + "in": "query", + "description": "The list of predefined options for this field, URL-encoded array.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" } } - ] - }, - { - "httpMethod": "POST", - "summary": "User Create (provider account)", - "description": "Creates a new user in the provider account. Do not forget to activate it, otherwise he/she will not be able to sign-in. After creation the default state is pending and the default role is member. The user object can be extended using Fields Definitions in the Admin Portal where you can add/remove fields, for instance token (string), age (int), third name (string optional), etc.", - "group": "user_provider_account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "username", - "description": "Username of the user.", - "dataType": "string", - "allowMultiple": false, - "required": true, - "paramType": "query" - }, - { - "name": "email", - "description": "Email of the user.", - "dataType": "string", - "allowMultiple": false, - "required": true, - "paramType": "query" - }, - { - "name": "password", - "description": "Password of the user.", - "dataType": "string", - "allowMultiple": false, - "required": true, - "paramType": "query" - }, - { - "name": "additional_fields", - "dataType": "custom", - "paramType": "query", - "allowMultiple": true, - "description": "Additional fields have to be defined by name and value (i.e &name=value). Additional fields are the custom fields declared for your tenant, you can find them in 'Settings >> Personal Details' for the account and in 'Settings >> Account >> Users >> Personal Details' for users. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields." - } - ] - } - ] - }, - { - "path": "/admin/api/users/{id}.xml", - "responseClass": "user", - "operations": [ - { - "httpMethod": "GET", - "summary": "User Read (provider account)", - "description": "Gets the user of the provider account by ID.", - "group": "user_provider_account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the user.", - "dataType": "int", - "allowMultiple": false, - "required": true, - "paramType": "path", - "threescale_name": "admin_ids" - } - ] - }, - { - "httpMethod": "PUT", - "summary": "User Update (provider account)", - "description": "Modifies the user of the provider account by ID. You can update any field, not only those in the form of the ActiveDocs but also fields that belong to the User object. Remember that you can define custom fields on your Admin Portal.", - "group": "user_provider_account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the user.", - "dataType": "int", - "allowMultiple": false, - "required": true, - "paramType": "path", - "threescale_name": "admin_ids" - }, - { - "name": "username", - "description": "Username of the user.", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query" - }, - { - "name": "email", - "description": "Email of the user.", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query" - }, - { - "name": "password", - "description": "Password of the user.", - "dataType": "string", - "allowMultiple": false, - "required": false, - "paramType": "query" - }, - { - "name": "additional_fields", - "dataType": "custom", - "paramType": "query", - "allowMultiple": true, - "description": "Additional fields have to be defined by name and value (i.e &name=value). Additional fields are the custom fields declared for your tenant, you can find them in 'Settings >> Personal Details' for the account and in 'Settings >> Account >> Users >> Personal Details' for users. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields." - } - ] - }, - { - "httpMethod": "DELETE", - "summary": "User Delete (provider account)", - "description": "Deletes the user of the provider account by ID.", - "group": "user_provider_account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the user.", - "dataType": "int", - "allowMultiple": false, - "required": true, - "paramType": "path", - "threescale_name": "admin_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/users/{id}/member.xml", - "operations": [ - { - "httpMethod": "PUT", - "summary": "User Change Role to Member (provider account)", - "description": "Changes the role of the user of the provider account to member.", - "group": "user_provider_account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the user.", - "dataType": "int", - "allowMultiple": false, - "required": true, - "paramType": "path", - "threescale_name": "admin_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/users/{id}/admin.xml", - "operations": [ - { - "httpMethod": "PUT", - "summary": "User Change Role to Admin (provider account)", - "description": "Changes the role of the provider account to admin (full rights and privileges).", - "group": "user_provider_account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the user.", - "dataType": "int", - "allowMultiple": false, - "required": true, - "paramType": "path", - "threescale_name": "admin_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/users/{id}/suspend.xml", - "responseClass": "user", - "operations": [ - { - "httpMethod": "PUT", - "summary": "User Suspend (provider account)", - "description": "Changes the state of the user of the provider account to suspended, which removes the user's ability to sign-in. You can also perform this operation with a PUT on /admin/api/users/{id}.xml to change the state parameter.", - "group": "user_provider_account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the user.", - "dataType": "int", - "allowMultiple": false, - "required": true, - "paramType": "path", - "threescale_name": "admin_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/users/{id}/unsuspend.xml", - "responseClass": "user", - "operations": [ - { - "httpMethod": "PUT", - "summary": "User Unsuspend (provider account)", - "description": "Revokes the suspension of a user of the provider account. You can also perform this operation with a PUT on /admin/api/users/{id}.xml to change the state parameter.", - "group": "user_provider_account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the user.", - "dataType": "int", - "allowMultiple": false, - "required": true, - "paramType": "path", - "threescale_name": "admin_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/users/{id}/activate.xml", - "responseClass": "user", - "operations": [ - { - "httpMethod": "PUT", - "summary": "User Activate (provider account)", - "description": "Changes the state of the user of the provider account to active (after sign-up). You can also perform this operation with a PUT on /admin/api/users/{id}.xml to change the state parameter.", - "group": "user_provider_account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the user.", - "dataType": "int", - "allowMultiple": false, - "required": true, - "paramType": "path", - "threescale_name": "admin_ids" - } - ] - } - ] - }, - { - "path": "/admin/api/webhooks.json", - "responseClass": "webhook", - "operations": [ - { - "httpMethod": "PUT", - "summary": "WebHooks Update", - "description": "Updates webhooks.", - "group": "webhook", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "url", - "description": "URL that will be notified about all the events", - "dataType": "string", - "paramType": "query" - }, - { - "name": "active", - "description": "Activate/Disable WebHooks", - "dataType": "boolean", - "paramType": "query" - }, - { - "name": "provider_actions", - "description": "Dashboard actions fire webhooks. If false, only user actions in the portal trigger events.", - "dataType": "boolean", - "paramType": "query" - }, - { - "name": "account_created_on", - "dataType": "boolean", - "paramType": "query" - }, - { - "name": "account_updated_on", - "dataType": "boolean", - "paramType": "query" - }, - { - "name": "account_deleted_on", - "dataType": "boolean", - "paramType": "query" - }, - { - "name": "user_created_on", - "dataType": "boolean", - "paramType": "query" - }, - { - "name": "user_updated_on", - "dataType": "boolean", - "paramType": "query" - }, - { - "name": "user_deleted_on", - "dataType": "boolean", - "paramType": "query" - }, - { - "name": "application_created_on", - "dataType": "boolean", - "paramType": "query" - }, - { - "name": "application_updated_on", - "dataType": "boolean", - "paramType": "query" - }, - { - "name": "application_deleted_on", - "dataType": "boolean", - "paramType": "query" - }, - { - "name": "account_plan_changed_on", - "dataType": "boolean", - "paramType": "query" - }, - { - "name": "application_plan_changed_on", - "dataType": "boolean", - "paramType": "query" - }, - { - "name": "application_user_key_updated_on", - "dataType": "boolean", - "paramType": "query" - }, - { - "name": "application_key_created_on", - "dataType": "boolean", - "paramType": "query" - }, - { - "name": "application_key_deleted_on", - "dataType": "boolean", - "paramType": "query" - }, - { - "name": "application_suspended_on", - "dataType": "boolean", - "paramType": "query" - }, - { - "name": "application_key_updated_on", - "dataType": "boolean", - "paramType": "query" - } - ] - } - ] - }, - { - "path": "/admin/api/webhooks/failures.xml", - "responseClass": "List[webhook_failures]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Webhooks List Failed Deliveries", - "description": "Lists of webhooks that could not be delivered to your end-point after 5 trials. A webhook is considered delivered if your end-point responds with a 200, otherwise it retries 5 times at 60 second intervals.", - "group": "webhooks", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - } - ] - }, - { - "httpMethod": "DELETE", - "summary": "Webhooks Delete Failed Deliveries", - "description": "Deletes failed delivery records. It is advisible to delete the records past the time of the last webhook failure that was received instead of deleting them all. Between the GET and the DELETE other webhooks failures may have arrived.", - "group": "webhooks", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "time", - "description": "Only failed webhook deliveries whose time is less than or equal to the passed time are destroyed (if used).", - "dataType": "time", - "required": false, - "paramType": "query" - } - ] - } - ] + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{id}/approve.xml": { + "put": { + "summary": "Account Approve", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/limits.xml": { + "get": { + "summary": "Limit List per Metric", + "operationId": "limits", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Limit Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "period", + "in": "query", + "description": "Period of the limit.", + "required": true, + "schema": { + "type": "string", + "default": "minute", + "enum": [ + "eternity", + "year", + "month", + "week", + "day", + "hour", + "minute" + ] + } + }, + { + "name": "value", + "in": "query", + "description": "Value of the limit.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/signup.xml": { + "post": { + "summary": "Signup Express (Account Create)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "org_name", + "in": "query", + "description": "Organization Name of the developer account.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "username", + "in": "query", + "description": "Username of the admin user (on the new developer account).", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "email", + "in": "query", + "description": "Email of the admin user.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "password", + "in": "query", + "description": "Password of the admin user.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_plan_id", + "in": "query", + "description": "ID of the account plan (if not assigned default will be used instead).", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "service_plan_id", + "in": "query", + "description": "ID of the service plan (if not assigned default will be used instead).", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "application_plan_id", + "in": "query", + "description": "ID of the application plan (if not assigned default will be used instead).", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/account_plans/{account_plan_id}/features.xml": { + "get": { + "summary": "Account Plan Features List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_plan_id", + "in": "path", + "description": "ID of the account plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/applications/find.xml": { + "get": { + "summary": "Application Find", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_id", + "in": "query", + "description": "ID of the application.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "user_key", + "in": "query", + "description": "user_key of the application (for user_key authentication mode).", + "schema": { + "type": "string" + } + }, + { + "name": "app_id", + "in": "query", + "description": "app_id of the application (for app_id/app_key and oauth authentication modes).", + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "query", + "description": "Filter by service", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/metrics/{id}.xml": { + "get": { + "summary": "Service Metric Read", + "operationId": "service_metric", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Service Metric Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "friendly_name", + "in": "query", + "description": "Name of the metric.", + "schema": { + "type": "string" + } + }, + { + "name": "unit", + "in": "query", + "description": "Measure unit of the metric.", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the metric.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Service Metric Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/application_plans/{id}/default.xml": { + "put": { + "summary": "Application Plan Set to Default", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/service_plans/{service_plan_id}/features/{id}.xml": { + "delete": { + "summary": "Service Plan Features Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_plan_id", + "in": "path", + "description": "ID of the service plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/application_plans/{id}.xml": { + "get": { + "summary": "Application Plan Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Application Plan Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the application plan.", + "schema": { + "type": "string" + } + }, + { + "name": "approval_required", + "in": "query", + "description": "Set the 'Applications require approval?' to 'true' or 'false'", + "schema": { + "type": "boolean" + } + }, + { + "name": "cost_per_month", + "in": "query", + "description": "Cost per month", + "schema": { + "type": "ref" + } + }, + { + "name": "setup_fee", + "in": "query", + "description": "Setup fee", + "schema": { + "type": "ref" + } + }, + { + "name": "trial_period_days", + "in": "query", + "description": "Trial period days", + "schema": { + "type": "ref" + } + }, + { + "name": "state_event", + "in": "query", + "description": "State event of the application plan. It can be 'publish' or 'hide'", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Application Plan Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/features/{id}.xml": { + "get": { + "summary": "Account Feature Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Account Feature Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the feature.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Account Feature Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/service_contracts/{id}.xml": { + "delete": { + "summary": "Service Subscription Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the service contract.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/account_plans/{id}.xml": { + "get": { + "summary": "Account Plan Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Account Plan Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the account plan.", + "schema": { + "type": "string" + } + }, + { + "name": "approval_required", + "in": "query", + "description": "Set the 'Accounts require approval?' to 'true' or 'false'", + "schema": { + "type": "boolean" + } + }, + { + "name": "state_event", + "in": "query", + "description": "State event of the account plan. It can be 'publish' or 'hide'", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Account Plan Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/application_plans.xml": { + "get": { + "summary": "Application Plan List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Application Plan Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the application plan.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "approval_required", + "in": "query", + "description": "Set the 'Applications require approval?' to 'true' or 'false'", + "schema": { + "type": "boolean" + } + }, + { + "name": "cost_per_month", + "in": "query", + "description": "Cost per month", + "schema": { + "type": "ref" + } + }, + { + "name": "setup_fee", + "in": "query", + "description": "Setup fee", + "schema": { + "type": "ref" + } + }, + { + "name": "trial_period_days", + "in": "query", + "description": "Trial period days", + "schema": { + "type": "ref" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "schema": { + "type": "string" + } + }, + { + "name": "state_event", + "in": "query", + "description": "State event of the application plan. It can be 'publish' or 'hide'", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/personal/access_tokens.json": { + "get": { + "summary": "Personal Access Token List", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "Part of the name of the access token.", + "schema": { + "type": "string" + } + }, + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Personal Access Token Create", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "Name of the access token.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "permission", + "in": "query", + "description": "Permission of the access token. It must be either 'ro' (read only) or 'rw' (read and write).", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "scopes", + "in": "query", + "description": "Scope of the access token. URL-encoded array containing one or more of the possible values. The possible values are, for a master user [\"account_management\", \"stats\", \"policy_registry\"], and for a tenant user [\"finance\", \"account_management\", \"stats\", \"policy_registry\"]", + "required": true, + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + }, + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/application_plans/{application_plan_id}/features.xml": { + "get": { + "summary": "Application Plan Feature List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Application Plan Feature Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "feature_id", + "in": "query", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/authentication_providers/{id}.xml": { + "get": { + "summary": "Authentication Provider Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the authentication provider.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Authentication Provider Developer Portal Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the authentication provider.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "client_id", + "in": "query", + "description": "Client ID of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "client_secret", + "in": "query", + "description": "Client Secret of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "site", + "in": "query", + "description": "Site o Realm of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "published", + "in": "query", + "description": "Published authentication provider. False by default", + "schema": { + "type": "boolean" + } + }, + { + "name": "skip_ssl_certificate_verification", + "in": "query", + "description": "Skip SSL certificate verification. False by default.", + "schema": { + "type": "boolean" + } + }, + { + "name": "automatically_approve_accounts", + "in": "query", + "description": "Automatically approve accounts. False by default.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/backend_apis/{backend_api_id}/metrics/{metric_id}/methods.json": { + "get": { + "summary": "Backend Method List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 500.", + "schema": { + "type": "integer", + "format": "int32", + "default": 500 + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Backend Method Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "friendly_name", + "in": "query", + "description": "Descriptive Name of the metric.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the metric. If blank a system_name will be generated for you from the friendly_name parameter", + "schema": { + "type": "string" + } + }, + { + "name": "unit", + "in": "query", + "description": "Measure unit of the metric.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the metric.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{id}/change_plan.xml": { + "put": { + "summary": "Account Change Plan", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "plan_id", + "in": "query", + "description": "ID of the target account plan", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{id}/change_plan.xml": { + "put": { + "summary": "Application Change Plan", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "plan_id", + "in": "query", + "description": "ID of the new application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/backend_usages.json": { + "get": { + "summary": "Backend Usage List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Backend Usage Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backend_api_id", + "in": "query", + "description": "Backend to be added to the Service (Product).", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "path", + "in": "query", + "description": "Path of the Backend for this product.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/backend_apis/{backend_api_id}/mapping_rules.json": { + "get": { + "summary": "Backend Mapping Rules List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 500.", + "schema": { + "type": "integer", + "format": "int32", + "default": 500 + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Backend Mapping Rule Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "http_method", + "in": "query", + "description": "HTTP method.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "pattern", + "in": "query", + "description": "Mapping Rule pattern.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "delta", + "in": "query", + "description": "Increase the metric by this delta.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "query", + "description": "Metric ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "position", + "in": "query", + "description": "Mapping Rule position", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "last", + "in": "query", + "description": "Last matched Mapping Rule to process", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/users/{id}/suspend.xml": { + "put": { + "summary": "User Suspend", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{id}/suspend.xml": { + "put": { + "summary": "Application Suspend", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{application_id}/keys.xml": { + "get": { + "summary": "Application Key List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "application_id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Application Key Create", + "operationId": "key_create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "application_id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "key", + "in": "query", + "description": "app_key to be added", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/active_docs/{id}.json": { + "get": { + "summary": "ActiveDocs Spec Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the ActiveDocs spec", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "ActiveDocs Spec Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the ActiveDocs spec", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the ActiveDocs spec", + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "query", + "description": "Service ID of the ActiveDocs spec", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "body", + "in": "query", + "description": "ActiveDocs specification in JSON format (based on Swagger)", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the ActiveDocs spec", + "schema": { + "type": "string" + } + }, + { + "name": "published", + "in": "query", + "description": "Set to 'true' to publish the spec on the developer portal, or 'false' to hide it", + "schema": { + "type": "boolean" + } + }, + { + "name": "skip_swagger_validations", + "in": "query", + "description": "Set to 'true' to skip validation of the Swagger specification, or 'false' to validate the spec", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "ActiveDocs Spec Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the ActiveDocs spec", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/plan.xml": { + "get": { + "summary": "Account Fetch Account Plan", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications.xml": { + "get": { + "summary": "Application List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Application Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "plan_id", + "in": "query", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the application to be created.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the application to be created.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "user_key", + "in": "query", + "description": "User Key (API Key) of the application to be created.", + "schema": { + "type": "string" + } + }, + { + "name": "application_id", + "in": "query", + "description": "App ID or Client ID (for OAuth and OpenID Connect authentication modes) of the application to be created.", + "schema": { + "type": "string" + } + }, + { + "name": "application_key", + "in": "query", + "description": "App Key(s) or Client Secret (for OAuth and OpenID Connect authentication modes) of the application to be created.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "redirect_url", + "in": "query", + "description": "Redirect URL for the OAuth request.", + "schema": { + "type": "string" + } + }, + { + "name": "first_traffic_at", + "in": "query", + "description": "Timestamp of the first call made by the application.", + "schema": { + "type": "string" + } + }, + { + "name": "first_daily_traffic_at", + "in": "query", + "description": "Timestamp of the first call on the last day when traffic was registered for the application ('Traffic On').", + "schema": { + "type": "string" + } + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/applications.xml": { + "get": { + "summary": "Application List (all services)", + "operationId": "applications", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 500.", + "schema": { + "type": "integer", + "format": "int32", + "default": 500 + } + }, + { + "name": "active_since", + "in": "query", + "description": "Filter date", + "schema": { + "type": "string" + } + }, + { + "name": "inactive_since", + "in": "query", + "description": "Filter date", + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "query", + "description": "Filter by service", + "schema": { + "type": "string" + } + }, + { + "name": "plan_id", + "in": "query", + "description": "Filter by plan", + "schema": { + "type": "string" + } + }, + { + "name": "plan_type", + "in": "query", + "description": "Filter by plan type", + "schema": { + "type": "string", + "enum": [ + "free", + "paid" + ] + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{id}.xml": { + "get": { + "summary": "Application Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Application Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the application.", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the application.", + "schema": { + "type": "string" + } + }, + { + "name": "redirect_url", + "in": "query", + "description": "Redirect URL for the OAuth request.", + "schema": { + "type": "string" + } + }, + { + "name": "first_traffic_at", + "in": "query", + "description": "Timestamp of the first call made by the application.", + "schema": { + "type": "string" + } + }, + { + "name": "first_daily_traffic_at", + "in": "query", + "description": "Timestamp of the first call on the last day when traffic was registered for the application ('Traffic On').", + "schema": { + "type": "string" + } + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Application Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/pricing_rules.xml": { + "get": { + "summary": "Pricing Rules List per Metric", + "operationId": "metric_pricing_rules", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Pricing Rule Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "min", + "in": "query", + "description": "From (min) hit", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "max", + "in": "query", + "description": "To (max) hit", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cost_per_unit", + "in": "query", + "description": "Cost per unit", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services.xml": { + "get": { + "summary": "Service List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 500.", + "schema": { + "type": "integer", + "format": "int32", + "default": 500 + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Service Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the service to be created.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the service to be created.", + "schema": { + "type": "string" + } + }, + { + "name": "deployment_option", + "in": "query", + "description": "Deployment option for the gateway: 'hosted' for APIcast hosted, 'self_managed' for APIcast Self-managed, 'service_mesh_istio' for Istio service mesh option", + "schema": { + "type": "string" + } + }, + { + "name": "backend_version", + "in": "query", + "description": "Authentication mode: '1' for API key, '2' for App Id / App Key, 'oidc' for OpenID Connect", + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "schema": { + "type": "string" + } + }, + { + "name": " ", + "in": "query", + "description": "Extra parameters", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/proxy/mapping_rules.xml": { + "get": { + "summary": "Proxy Mapping Rules List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Proxy Mapping Rule Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "http_method", + "in": "query", + "description": "HTTP method.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "pattern", + "in": "query", + "description": "Mapping Rule pattern.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "delta", + "in": "query", + "description": "Increase the metric by this delta.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "query", + "description": "Metric ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "position", + "in": "query", + "description": "Mapping Rule position", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "last", + "in": "query", + "description": "Last matched Mapping Rule to process", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/active_docs.json": { + "get": { + "summary": "ActiveDocs Spec List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "ActiveDocs Spec Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the ActiveDocs spec", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the ActiveDocs spec. Only ASCII letters, numbers, dashes and underscores are allowed. If blank, 'system_name' will be generated from the 'name' parameter", + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "query", + "description": "Service ID of the ActiveDocs spec", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "body", + "in": "query", + "description": "ActiveDocs specification in JSON format (based on Swagger)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the ActiveDocs spec", + "schema": { + "type": "string" + } + }, + { + "name": "published", + "in": "query", + "description": "Set to 'true' to publish the spec on the developer portal, or 'false' to hide it. The default value is 'false'", + "schema": { + "type": "boolean" + } + }, + { + "name": "skip_swagger_validations", + "in": "query", + "description": "Set to 'true' to skip validation of the Swagger specification, or 'false' to validate the spec. The default value is 'false'", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/backend_apis.json": { + "get": { + "summary": "Backend List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 500.", + "schema": { + "type": "integer", + "format": "int32", + "default": 500 + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Backend Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the Backend", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the Backend", + "schema": { + "type": "string" + } + }, + { + "name": "private_endpoint", + "in": "query", + "description": "Private Base URL (your API)", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/features.xml": { + "get": { + "summary": "Account Features List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Account Feature Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the feature.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{id}.xml": { + "get": { + "summary": "Account Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Account Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "org_name", + "in": "query", + "description": "Organization name of the account.", + "schema": { + "type": "string" + } + }, + { + "name": "monthly_billing_enabled", + "in": "query", + "description": "Updates monthly billing status.", + "schema": { + "type": "boolean" + } + }, + { + "name": "monthly_charging_enabled", + "in": "query", + "description": "Updates monthly charging status.", + "schema": { + "type": "boolean" + } + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Account Delete ", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/pricing_rules/{id}.json": { + "delete": { + "summary": "Pricing Rule Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the pricing rule.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/application_plans/{application_plan_id}/pricing_rules.xml": { + "get": { + "summary": "Pricing Rules List per Application Plan", + "operationId": "pricing_rules", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/proxy/mapping_rules/{id}.xml": { + "get": { + "summary": "Proxy Mapping Rules Show", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "Mapping Rule ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Proxy Mapping Rule Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "Mapping Rule ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "patch": { + "summary": "Proxy Mapping Rule Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "Mapping Rule ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "http_method", + "in": "query", + "description": "HTTP method.", + "schema": { + "type": "string" + } + }, + { + "name": "pattern", + "in": "query", + "description": "Mapping Rule pattern.", + "schema": { + "type": "string" + } + }, + { + "name": "delta", + "in": "query", + "description": "Increase the metric by this delta.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "query", + "description": "Metric ID.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "position", + "in": "query", + "description": "Mapping Rule position", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "last", + "in": "query", + "description": "Last matched Mapping Rule to process", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/service_plans.xml": { + "get": { + "summary": "Service Plan List (all services)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/proxy/configs/{environment}/{version}/promote.json": { + "post": { + "summary": "Proxy Config Promote", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "environment", + "in": "path", + "description": "Gateway environment. Must be 'sandbox' or 'production'", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "version", + "in": "path", + "description": "Version of the Proxy config.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "to", + "in": "query", + "description": "the name of the destination environment", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{id}/service_plans.xml": { + "get": { + "summary": "Service Plan List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Service Plan Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the service plan.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "approval_required", + "in": "query", + "description": "Set the 'Service subscriptions require approval?' to 'true' or 'false'", + "schema": { + "type": "boolean" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "schema": { + "type": "string" + } + }, + { + "name": "state_event", + "in": "query", + "description": "State event of the service plan. It can be 'publish' or 'hide'", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/account/authentication_providers.xml": { + "get": { + "summary": "Authentication Providers Admin Portal List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Authentication Provider Admin Portal Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "kind", + "in": "query", + "description": "The kind of authentication provider which can be either 'auth0' or 'keycloak'. Use 'keycloak' for Red Hat Single Sign-On.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "client_id", + "in": "query", + "description": "Client ID of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "client_secret", + "in": "query", + "description": "Client Secret of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "site", + "in": "query", + "description": "Site o Realm of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "skip_ssl_certificate_verification", + "in": "query", + "description": "Skip SSL certificate verification. False by default.", + "schema": { + "type": "boolean" + } + }, + { + "name": "published", + "in": "query", + "description": "Published authentication provider. False by default", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } } - ], - "basePath": "", - "swaggerVersion": "0.1a", - "apiVersion": "1.0" -} + }, + "components": {} +} \ No newline at end of file diff --git a/doc/active_docs/Analytics API.json b/doc/active_docs/Analytics API.json index cc8581042b..9fb7b39529 100644 --- a/doc/active_docs/Analytics API.json +++ b/doc/active_docs/Analytics API.json @@ -1,880 +1,890 @@ { - "apis": [ + "openapi": "3.0.1", + "info": { + "version": "1.0" + }, + "servers": [ { - "path": "/stats/applications/{application_id}/usage.{format}", - "operations": [ - { - "httpMethod": "GET", - "summary": "Application Traffic by Metric", - "description": "Returns the usage data for a given metric (or method) of an application.", - "group": "application_ops", - "parameters": [ - { - "description": "Response format.", - "name": "format", - "dataType": "string", - "defaultValue": "json", - "required": true, - "paramType": "path", - "allowableValues": { - "values": [ - "json", - "xml" - ], - "valueType": "LIST" - } - }, - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "application_id", - "description": "ID of the application", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "application_ids" - }, - { - "description": "System name of metric to get data for.", - "name": "metric_name", - "dataType": "string", - "defaultValue": "hits", - "required": true, - "paramType": "query", - "threescale_name": "metric_names" - }, - { - "name": "since", - "description": "Time range start. Format YYYY-MM-DD HH:MM:SS, '2012-02-22', '2012-02-22 23:49:00'.", - "dataType": "string", - "required": true, - "paramType": "query" - }, - { - "name": "period", - "description": "Period combined with since time gives stats for the time range [since .. since + period]. It is required if until time is not passed.", - "dataType": "string", - "required": false, - "paramType": "query", - "defaultValue": "", - "allowableValues": { - "values": [ - "year", - "month", - "week", - "day" - ], - "valueType": "LIST" - } - }, - { - "name": "until", - "description": "Time range end. Format YYYY-MM-DD HH:MM:SS", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "granularity", - "description": "Granularity of results, each period has an associated granularity.", - "dataType": "string", - "required": true, - "paramType": "query", - "defaultValue": "month", - "allowableValues": { - "values": [ - "month", - "day", - "hour" - ], - "valueType": "LIST" - } - }, - { - "description": "Time zone for calculations.", - "name": "timezone", - "dataType": "string", - "defaultValue": "UTC", - "required": false, - "paramType": "query", - "allowableValues": { - "values": [ - "International Date Line West", - "Midway Island", - "American Samoa", - "Hawaii", - "Alaska", - "Pacific Time (US & Canada)", - "Tijuana", - "Mountain Time (US & Canada)", - "Arizona", - "Chihuahua", - "Mazatlan", - "Central Time (US & Canada)", - "Saskatchewan", - "Guadalajara", - "Mexico City", - "Monterrey", - "Central America", - "Eastern Time (US & Canada)", - "Indiana (East)", - "Bogota", - "Lima", - "Quito", - "Atlantic Time (Canada)", - "Caracas", - "La Paz", - "Santiago", - "Newfoundland", - "Brasilia", - "Buenos Aires", - "Georgetown", - "Greenland", - "Mid-Atlantic", - "Azores", - "Cape Verde Is.", - "Dublin", - "Edinburgh", - "Lisbon", - "London", - "Casablanca", - "Monrovia", - "UTC", - "Belgrade", - "Bratislava", - "Budapest", - "Ljubljana", - "Prague", - "Sarajevo", - "Skopje", - "Warsaw", - "Zagreb", - "Brussels", - "Copenhagen", - "Madrid", - "Paris", - "Amsterdam", - "Berlin", - "Bern", - "Rome", - "Stockholm", - "Vienna", - "West Central Africa", - "Bucharest", - "Cairo", - "Helsinki", - "Kyiv", - "Riga", - "Sofia", - "Tallinn", - "Vilnius", - "Athens", - "Istanbul", - "Minsk", - "Jerusalem", - "Harare", - "Pretoria", - "Moscow", - "St. Petersburg", - "Volgograd", - "Kuwait", - "Riyadh", - "Nairobi", - "Baghdad", - "Tehran", - "Abu Dhabi", - "Muscat", - "Baku", - "Tbilisi", - "Yerevan", - "Kabul", - "Ekaterinburg", - "Islamabad", - "Karachi", - "Tashkent", - "Chennai", - "Kolkata", - "Mumbai", - "New Delhi", - "Kathmandu", - "Astana", - "Dhaka", - "Sri Jayawardenepura", - "Almaty", - "Novosibirsk", - "Rangoon", - "Bangkok", - "Hanoi", - "Jakarta", - "Krasnoyarsk", - "Beijing", - "Chongqing", - "Hong Kong", - "Urumqi", - "Kuala Lumpur", - "Singapore", - "Taipei", - "Perth", - "Irkutsk", - "Ulaan Bataar", - "Seoul", - "Osaka", - "Sapporo", - "Tokyo", - "Yakutsk", - "Darwin", - "Adelaide", - "Canberra", - "Melbourne", - "Sydney", - "Brisbane", - "Hobart", - "Vladivostok", - "Guam", - "Port Moresby", - "Magadan", - "Solomon Is.", - "New Caledonia", - "Fiji", - "Kamchatka", - "Marshall Is.", - "Auckland", - "Wellington", - "Nuku'alofa", - "Tokelau Is.", - "Samoa" - ], - "valueType": "LIST" - } - }, - { - "description": "Skip period over period calculations (defaults to true).", - "name": "skip_change", - "dataType": "boolean", - "allowMultiple": "false", - "defaultValue": "true", - "required": false, - "paramType": "query" - } - ] + "url": "http://localhost:3000" + } + ], + "paths": { + "/stats/backend_apis/{backend_api_id}/usage.json": { + "get": { + "summary": "Backend Traffic by Metric", + "parameters": [ + { + "name": "format", + "in": "path", + "description": "Response format.", + "required": true, + "schema": { + "type": "string", + "default": "json", + "enum": [ + "json", + "xml" + ] + } + }, + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_name", + "in": "query", + "description": "System name of metric to get data for.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "since", + "in": "query", + "description": "Time range start. Format YYYY-MM-DD HH:MM:SS, '2012-02-22', '2012-02-22 23:49:00'.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "period", + "in": "query", + "description": "Period combined with since time gives stats for the time range [since .. since + period]. It is required if until time is not passed.", + "schema": { + "type": "string", + "enum": [ + "year", + "month", + "week", + "day" + ] + } + }, + { + "name": "until", + "in": "query", + "description": "Time range end. Format YYYY-MM-DD HH:MM:SS", + "schema": { + "type": "string" + } + }, + { + "name": "granularity", + "in": "query", + "description": "Granularity of results, each period has an associated granularity.", + "required": true, + "schema": { + "type": "string", + "default": "month", + "enum": [ + "month", + "day", + "hour" + ] + } + }, + { + "name": "timezone", + "in": "query", + "description": "Time zone for calculations.", + "schema": { + "type": "string", + "default": "UTC", + "enum": [ + "International Date Line West", + "Midway Island", + "American Samoa", + "Hawaii", + "Alaska", + "Pacific Time (US & Canada)", + "Tijuana", + "Mountain Time (US & Canada)", + "Arizona", + "Chihuahua", + "Mazatlan", + "Central Time (US & Canada)", + "Saskatchewan", + "Guadalajara", + "Mexico City", + "Monterrey", + "Central America", + "Eastern Time (US & Canada)", + "Indiana (East)", + "Bogota", + "Lima", + "Quito", + "Atlantic Time (Canada)", + "Caracas", + "La Paz", + "Santiago", + "Newfoundland", + "Brasilia", + "Buenos Aires", + "Georgetown", + "Greenland", + "Mid-Atlantic", + "Azores", + "Cape Verde Is.", + "Dublin", + "Edinburgh", + "Lisbon", + "London", + "Casablanca", + "Monrovia", + "UTC", + "Belgrade", + "Bratislava", + "Budapest", + "Ljubljana", + "Prague", + "Sarajevo", + "Skopje", + "Warsaw", + "Zagreb", + "Brussels", + "Copenhagen", + "Madrid", + "Paris", + "Amsterdam", + "Berlin", + "Bern", + "Rome", + "Stockholm", + "Vienna", + "West Central Africa", + "Bucharest", + "Cairo", + "Helsinki", + "Kyiv", + "Riga", + "Sofia", + "Tallinn", + "Vilnius", + "Athens", + "Istanbul", + "Minsk", + "Jerusalem", + "Harare", + "Pretoria", + "Moscow", + "St. Petersburg", + "Volgograd", + "Kuwait", + "Riyadh", + "Nairobi", + "Baghdad", + "Tehran", + "Abu Dhabi", + "Muscat", + "Baku", + "Tbilisi", + "Yerevan", + "Kabul", + "Ekaterinburg", + "Islamabad", + "Karachi", + "Tashkent", + "Chennai", + "Kolkata", + "Mumbai", + "New Delhi", + "Kathmandu", + "Astana", + "Dhaka", + "Sri Jayawardenepura", + "Almaty", + "Novosibirsk", + "Rangoon", + "Bangkok", + "Hanoi", + "Jakarta", + "Krasnoyarsk", + "Beijing", + "Chongqing", + "Hong Kong", + "Urumqi", + "Kuala Lumpur", + "Singapore", + "Taipei", + "Perth", + "Irkutsk", + "Ulaan Bataar", + "Seoul", + "Osaka", + "Sapporo", + "Tokyo", + "Yakutsk", + "Darwin", + "Adelaide", + "Canberra", + "Melbourne", + "Sydney", + "Brisbane", + "Hobart", + "Vladivostok", + "Guam", + "Port Moresby", + "Magadan", + "Solomon Is.", + "New Caledonia", + "Fiji", + "Kamchatka", + "Marshall Is.", + "Auckland", + "Wellington", + "Nuku'alofa", + "Tokelau Is.", + "Samoa" + ] + } + }, + { + "name": "skip_change", + "in": "query", + "description": "Skip period over period calculations (defaults to true).", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } }, - { - "path": "/stats/backend_apis/{backend_api_id}/usage.json", - "operations": [ - { - "httpMethod": "GET", - "summary": "Backend Traffic by Metric", - "description": "Returns the traffic data of a given metric (or method) of a backend.", - "group": "backend_api_ops", - "parameters": [ - { - "description": "Response format.", - "name": "format", - "dataType": "string", - "defaultValue": "json", - "required": true, - "paramType": "path", - "allowableValues": { - "values": [ - "json", - "xml" - ], - "valueType": "LIST" - } - }, - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "backend_api_id", - "description": "ID of the Backend.", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "description": "System name of metric to get data for.", - "name": "metric_name", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "backend_api_metric_names" - }, - { - "name": "since", - "description": "Time range start. Format YYYY-MM-DD HH:MM:SS, '2012-02-22', '2012-02-22 23:49:00'.", - "dataType": "string", - "required": true, - "paramType": "query" - }, - { - "name": "period", - "description": "Period combined with since time gives stats for the time range [since .. since + period]. It is required if until time is not passed.", - "dataType": "string", - "required": false, - "paramType": "query", - "defaultValue": "", - "allowableValues": { - "values": [ - "year", - "month", - "week", - "day" - ], - "valueType": "LIST" - } - }, - { - "name": "until", - "description": "Time range end. Format YYYY-MM-DD HH:MM:SS", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "granularity", - "description": "Granularity of results, each period has an associated granularity.", - "dataType": "string", - "required": true, - "paramType": "query", - "defaultValue": "month", - "allowableValues": { - "values": [ - "month", - "day", - "hour" - ], - "valueType": "LIST" - } - }, - { - "description": "Time zone for calculations.", - "name": "timezone", - "dataType": "string", - "defaultValue": "UTC", - "required": false, - "paramType": "query", - "allowableValues": { - "values": [ - "International Date Line West", - "Midway Island", - "American Samoa", - "Hawaii", - "Alaska", - "Pacific Time (US & Canada)", - "Tijuana", - "Mountain Time (US & Canada)", - "Arizona", - "Chihuahua", - "Mazatlan", - "Central Time (US & Canada)", - "Saskatchewan", - "Guadalajara", - "Mexico City", - "Monterrey", - "Central America", - "Eastern Time (US & Canada)", - "Indiana (East)", - "Bogota", - "Lima", - "Quito", - "Atlantic Time (Canada)", - "Caracas", - "La Paz", - "Santiago", - "Newfoundland", - "Brasilia", - "Buenos Aires", - "Georgetown", - "Greenland", - "Mid-Atlantic", - "Azores", - "Cape Verde Is.", - "Dublin", - "Edinburgh", - "Lisbon", - "London", - "Casablanca", - "Monrovia", - "UTC", - "Belgrade", - "Bratislava", - "Budapest", - "Ljubljana", - "Prague", - "Sarajevo", - "Skopje", - "Warsaw", - "Zagreb", - "Brussels", - "Copenhagen", - "Madrid", - "Paris", - "Amsterdam", - "Berlin", - "Bern", - "Rome", - "Stockholm", - "Vienna", - "West Central Africa", - "Bucharest", - "Cairo", - "Helsinki", - "Kyiv", - "Riga", - "Sofia", - "Tallinn", - "Vilnius", - "Athens", - "Istanbul", - "Minsk", - "Jerusalem", - "Harare", - "Pretoria", - "Moscow", - "St. Petersburg", - "Volgograd", - "Kuwait", - "Riyadh", - "Nairobi", - "Baghdad", - "Tehran", - "Abu Dhabi", - "Muscat", - "Baku", - "Tbilisi", - "Yerevan", - "Kabul", - "Ekaterinburg", - "Islamabad", - "Karachi", - "Tashkent", - "Chennai", - "Kolkata", - "Mumbai", - "New Delhi", - "Kathmandu", - "Astana", - "Dhaka", - "Sri Jayawardenepura", - "Almaty", - "Novosibirsk", - "Rangoon", - "Bangkok", - "Hanoi", - "Jakarta", - "Krasnoyarsk", - "Beijing", - "Chongqing", - "Hong Kong", - "Urumqi", - "Kuala Lumpur", - "Singapore", - "Taipei", - "Perth", - "Irkutsk", - "Ulaan Bataar", - "Seoul", - "Osaka", - "Sapporo", - "Tokyo", - "Yakutsk", - "Darwin", - "Adelaide", - "Canberra", - "Melbourne", - "Sydney", - "Brisbane", - "Hobart", - "Vladivostok", - "Guam", - "Port Moresby", - "Magadan", - "Solomon Is.", - "New Caledonia", - "Fiji", - "Kamchatka", - "Marshall Is.", - "Auckland", - "Wellington", - "Nuku'alofa", - "Tokelau Is.", - "Samoa" - ], - "valueType": "LIST" - } - }, - { - "description": "Skip period over period calculations (defaults to true).", - "name": "skip_change", - "dataType": "boolean", - "allowMultiple": "false", - "defaultValue": "true", - "required": false, - "paramType": "query" - } - ] + "/stats/services/{service_id}/usage.{format}": { + "get": { + "summary": "Service Traffic by Metric", + "parameters": [ + { + "name": "format", + "in": "path", + "description": "Response format.", + "required": true, + "schema": { + "type": "string", + "default": "json", + "enum": [ + "json", + "xml" + ] + } + }, + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_name", + "in": "query", + "description": "System name of metric to get data for.", + "required": true, + "schema": { + "type": "string", + "default": "hits" + } + }, + { + "name": "since", + "in": "query", + "description": "Time range start. Format YYYY-MM-DD HH:MM:SS, '2012-02-22', '2012-02-22 23:49:00'.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "period", + "in": "query", + "description": "Period combined with since time gives stats for the time range [since .. since + period]. It is required if until time is not passed.", + "schema": { + "type": "string", + "enum": [ + "year", + "month", + "week", + "day" + ] + } + }, + { + "name": "until", + "in": "query", + "description": "Time range end. Format YYYY-MM-DD HH:MM:SS", + "schema": { + "type": "string" + } + }, + { + "name": "granularity", + "in": "query", + "description": "Granularity of results, each period has an associated granularity.", + "required": true, + "schema": { + "type": "string", + "default": "month", + "enum": [ + "month", + "day", + "hour" + ] + } + }, + { + "name": "timezone", + "in": "query", + "description": "Time zone for calculations.", + "schema": { + "type": "string", + "default": "UTC", + "enum": [ + "International Date Line West", + "Midway Island", + "American Samoa", + "Hawaii", + "Alaska", + "Pacific Time (US & Canada)", + "Tijuana", + "Mountain Time (US & Canada)", + "Arizona", + "Chihuahua", + "Mazatlan", + "Central Time (US & Canada)", + "Saskatchewan", + "Guadalajara", + "Mexico City", + "Monterrey", + "Central America", + "Eastern Time (US & Canada)", + "Indiana (East)", + "Bogota", + "Lima", + "Quito", + "Atlantic Time (Canada)", + "Caracas", + "La Paz", + "Santiago", + "Newfoundland", + "Brasilia", + "Buenos Aires", + "Georgetown", + "Greenland", + "Mid-Atlantic", + "Azores", + "Cape Verde Is.", + "Dublin", + "Edinburgh", + "Lisbon", + "London", + "Casablanca", + "Monrovia", + "UTC", + "Belgrade", + "Bratislava", + "Budapest", + "Ljubljana", + "Prague", + "Sarajevo", + "Skopje", + "Warsaw", + "Zagreb", + "Brussels", + "Copenhagen", + "Madrid", + "Paris", + "Amsterdam", + "Berlin", + "Bern", + "Rome", + "Stockholm", + "Vienna", + "West Central Africa", + "Bucharest", + "Cairo", + "Helsinki", + "Kyiv", + "Riga", + "Sofia", + "Tallinn", + "Vilnius", + "Athens", + "Istanbul", + "Minsk", + "Jerusalem", + "Harare", + "Pretoria", + "Moscow", + "St. Petersburg", + "Volgograd", + "Kuwait", + "Riyadh", + "Nairobi", + "Baghdad", + "Tehran", + "Abu Dhabi", + "Muscat", + "Baku", + "Tbilisi", + "Yerevan", + "Kabul", + "Ekaterinburg", + "Islamabad", + "Karachi", + "Tashkent", + "Chennai", + "Kolkata", + "Mumbai", + "New Delhi", + "Kathmandu", + "Astana", + "Dhaka", + "Sri Jayawardenepura", + "Almaty", + "Novosibirsk", + "Rangoon", + "Bangkok", + "Hanoi", + "Jakarta", + "Krasnoyarsk", + "Beijing", + "Chongqing", + "Hong Kong", + "Urumqi", + "Kuala Lumpur", + "Singapore", + "Taipei", + "Perth", + "Irkutsk", + "Ulaan Bataar", + "Seoul", + "Osaka", + "Sapporo", + "Tokyo", + "Yakutsk", + "Darwin", + "Adelaide", + "Canberra", + "Melbourne", + "Sydney", + "Brisbane", + "Hobart", + "Vladivostok", + "Guam", + "Port Moresby", + "Magadan", + "Solomon Is.", + "New Caledonia", + "Fiji", + "Kamchatka", + "Marshall Is.", + "Auckland", + "Wellington", + "Nuku'alofa", + "Tokelau Is.", + "Samoa" + ] + } + }, + { + "name": "skip_change", + "in": "query", + "description": "Skip period over period calculations (defaults to true).", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } }, - { - "path": "/stats/services/{service_id}/usage.{format}", - "operations": [ - { - "httpMethod": "GET", - "summary": "Service Traffic by Metric", - "description": "Returns the usage data of a given metric (or method) of a service.", - "group": "service_ops", - "parameters": [ - { - "description": "Response format.", - "name": "format", - "dataType": "string", - "defaultValue": "json", - "required": true, - "paramType": "path", - "allowableValues": { - "values": [ - "json", - "xml" - ], - "valueType": "LIST" - } - }, - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "description": "System name of metric to get data for.", - "name": "metric_name", - "dataType": "string", - "defaultValue": "hits", - "required": true, - "paramType": "query", - "threescale_name": "metric_names" - }, - { - "name": "since", - "description": "Time range start. Format YYYY-MM-DD HH:MM:SS, '2012-02-22', '2012-02-22 23:49:00'.", - "dataType": "string", - "required": true, - "paramType": "query" - }, - { - "name": "period", - "description": "Period combined with since time gives stats for the time range [since .. since + period]. It is required if until time is not passed.", - "dataType": "string", - "required": false, - "paramType": "query", - "defaultValue": "", - "allowableValues": { - "values": [ - "year", - "month", - "week", - "day" - ], - "valueType": "LIST" - } - }, - { - "name": "until", - "description": "Time range end. Format YYYY-MM-DD HH:MM:SS", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "granularity", - "description": "Granularity of results, each period has an associated granularity.", - "dataType": "string", - "required": true, - "paramType": "query", - "defaultValue": "month", - "allowableValues": { - "values": [ - "month", - "day", - "hour" - ], - "valueType": "LIST" - } - }, - { - "description": "Time zone for calculations.", - "name": "timezone", - "dataType": "string", - "defaultValue": "UTC", - "required": false, - "paramType": "query", - "allowableValues": { - "values": [ - "International Date Line West", - "Midway Island", - "American Samoa", - "Hawaii", - "Alaska", - "Pacific Time (US & Canada)", - "Tijuana", - "Mountain Time (US & Canada)", - "Arizona", - "Chihuahua", - "Mazatlan", - "Central Time (US & Canada)", - "Saskatchewan", - "Guadalajara", - "Mexico City", - "Monterrey", - "Central America", - "Eastern Time (US & Canada)", - "Indiana (East)", - "Bogota", - "Lima", - "Quito", - "Atlantic Time (Canada)", - "Caracas", - "La Paz", - "Santiago", - "Newfoundland", - "Brasilia", - "Buenos Aires", - "Georgetown", - "Greenland", - "Mid-Atlantic", - "Azores", - "Cape Verde Is.", - "Dublin", - "Edinburgh", - "Lisbon", - "London", - "Casablanca", - "Monrovia", - "UTC", - "Belgrade", - "Bratislava", - "Budapest", - "Ljubljana", - "Prague", - "Sarajevo", - "Skopje", - "Warsaw", - "Zagreb", - "Brussels", - "Copenhagen", - "Madrid", - "Paris", - "Amsterdam", - "Berlin", - "Bern", - "Rome", - "Stockholm", - "Vienna", - "West Central Africa", - "Bucharest", - "Cairo", - "Helsinki", - "Kyiv", - "Riga", - "Sofia", - "Tallinn", - "Vilnius", - "Athens", - "Istanbul", - "Minsk", - "Jerusalem", - "Harare", - "Pretoria", - "Moscow", - "St. Petersburg", - "Volgograd", - "Kuwait", - "Riyadh", - "Nairobi", - "Baghdad", - "Tehran", - "Abu Dhabi", - "Muscat", - "Baku", - "Tbilisi", - "Yerevan", - "Kabul", - "Ekaterinburg", - "Islamabad", - "Karachi", - "Tashkent", - "Chennai", - "Kolkata", - "Mumbai", - "New Delhi", - "Kathmandu", - "Astana", - "Dhaka", - "Sri Jayawardenepura", - "Almaty", - "Novosibirsk", - "Rangoon", - "Bangkok", - "Hanoi", - "Jakarta", - "Krasnoyarsk", - "Beijing", - "Chongqing", - "Hong Kong", - "Urumqi", - "Kuala Lumpur", - "Singapore", - "Taipei", - "Perth", - "Irkutsk", - "Ulaan Bataar", - "Seoul", - "Osaka", - "Sapporo", - "Tokyo", - "Yakutsk", - "Darwin", - "Adelaide", - "Canberra", - "Melbourne", - "Sydney", - "Brisbane", - "Hobart", - "Vladivostok", - "Guam", - "Port Moresby", - "Magadan", - "Solomon Is.", - "New Caledonia", - "Fiji", - "Kamchatka", - "Marshall Is.", - "Auckland", - "Wellington", - "Nuku'alofa", - "Tokelau Is.", - "Samoa" - ], - "valueType": "LIST" - } - }, - { - "description": "Skip period over period calculations (defaults to true).", - "name": "skip_change", - "dataType": "boolean", - "allowMultiple": "false", - "defaultValue": "true", - "required": false, - "paramType": "query" - } - ] + "/stats/services/{service_id}/top_applications.{format}": { + "get": { + "summary": "Service Top Applications", + "parameters": [ + { + "name": "format", + "in": "path", + "description": "Response format.", + "required": true, + "schema": { + "type": "string", + "default": "json", + "enum": [ + "json", + "xml" + ] + } + }, + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "since", + "in": "query", + "description": "Time range start. Format YYYY-MM-DD HH:MM:SS, '2012-02-22', '2012-02-22 23:49:00'.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "period", + "in": "query", + "description": "Period combined with since time gives stats for the time range [since .. since + period]. It is required if until time is not passed.", + "schema": { + "type": "string", + "enum": [ + "year", + "month", + "week", + "day" + ] + } + }, + { + "name": "metric_name", + "in": "query", + "description": "System name of metric to get data for.", + "required": true, + "schema": { + "type": "string", + "default": "hits" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } }, - { - "path": "/stats/services/{service_id}/top_applications.{format}", - "operations": [ - { - "httpMethod": "GET", - "summary": "Service Top Applications", - "description": "Returns usage and application data for the top 10 most active applications of a service.", - "group": "service_ops", - "parameters": [ - { - "description": "Response format.", - "name": "format", - "dataType": "string", - "defaultValue": "json", - "required": true, - "paramType": "path", - "allowableValues": { - "values": [ - "json", - "xml" - ], - "valueType": "LIST" - } - }, - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "service_id", - "description": "ID of the service.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "service_ids" - }, - { - "name": "since", - "description": "Time range start. Format YYYY-MM-DD HH:MM:SS, '2012-02-22', '2012-02-22 23:49:00'.", - "dataType": "string", - "required": true, - "paramType": "query" - }, - { - "name": "period", - "description": "Period combined with since time gives stats for the time range [since .. since + period]. It is required if until time is not passed.", - "dataType": "string", - "required": false, - "paramType": "query", - "defaultValue": "", - "allowableValues": { - "values": [ - "year", - "month", - "week", - "day" - ], - "valueType": "LIST" - } - }, - { - "description": "System name of metric to get data for.", - "name": "metric_name", - "dataType": "string", - "defaultValue": "hits", - "required": true, - "paramType": "query", - "threescale_name": "metric_names" - } - ] + "/stats/applications/{application_id}/usage.{format}": { + "get": { + "summary": "Application Traffic by Metric", + "parameters": [ + { + "name": "format", + "in": "path", + "description": "Response format.", + "required": true, + "schema": { + "type": "string", + "default": "json", + "enum": [ + "json", + "xml" + ] + } + }, + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_id", + "in": "path", + "description": "ID of the application", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_name", + "in": "query", + "description": "System name of metric to get data for.", + "required": true, + "schema": { + "type": "string", + "default": "hits" + } + }, + { + "name": "since", + "in": "query", + "description": "Time range start. Format YYYY-MM-DD HH:MM:SS, '2012-02-22', '2012-02-22 23:49:00'.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "period", + "in": "query", + "description": "Period combined with since time gives stats for the time range [since .. since + period]. It is required if until time is not passed.", + "schema": { + "type": "string", + "enum": [ + "year", + "month", + "week", + "day" + ] + } + }, + { + "name": "until", + "in": "query", + "description": "Time range end. Format YYYY-MM-DD HH:MM:SS", + "schema": { + "type": "string" + } + }, + { + "name": "granularity", + "in": "query", + "description": "Granularity of results, each period has an associated granularity.", + "required": true, + "schema": { + "type": "string", + "default": "month", + "enum": [ + "month", + "day", + "hour" + ] + } + }, + { + "name": "timezone", + "in": "query", + "description": "Time zone for calculations.", + "schema": { + "type": "string", + "default": "UTC", + "enum": [ + "International Date Line West", + "Midway Island", + "American Samoa", + "Hawaii", + "Alaska", + "Pacific Time (US & Canada)", + "Tijuana", + "Mountain Time (US & Canada)", + "Arizona", + "Chihuahua", + "Mazatlan", + "Central Time (US & Canada)", + "Saskatchewan", + "Guadalajara", + "Mexico City", + "Monterrey", + "Central America", + "Eastern Time (US & Canada)", + "Indiana (East)", + "Bogota", + "Lima", + "Quito", + "Atlantic Time (Canada)", + "Caracas", + "La Paz", + "Santiago", + "Newfoundland", + "Brasilia", + "Buenos Aires", + "Georgetown", + "Greenland", + "Mid-Atlantic", + "Azores", + "Cape Verde Is.", + "Dublin", + "Edinburgh", + "Lisbon", + "London", + "Casablanca", + "Monrovia", + "UTC", + "Belgrade", + "Bratislava", + "Budapest", + "Ljubljana", + "Prague", + "Sarajevo", + "Skopje", + "Warsaw", + "Zagreb", + "Brussels", + "Copenhagen", + "Madrid", + "Paris", + "Amsterdam", + "Berlin", + "Bern", + "Rome", + "Stockholm", + "Vienna", + "West Central Africa", + "Bucharest", + "Cairo", + "Helsinki", + "Kyiv", + "Riga", + "Sofia", + "Tallinn", + "Vilnius", + "Athens", + "Istanbul", + "Minsk", + "Jerusalem", + "Harare", + "Pretoria", + "Moscow", + "St. Petersburg", + "Volgograd", + "Kuwait", + "Riyadh", + "Nairobi", + "Baghdad", + "Tehran", + "Abu Dhabi", + "Muscat", + "Baku", + "Tbilisi", + "Yerevan", + "Kabul", + "Ekaterinburg", + "Islamabad", + "Karachi", + "Tashkent", + "Chennai", + "Kolkata", + "Mumbai", + "New Delhi", + "Kathmandu", + "Astana", + "Dhaka", + "Sri Jayawardenepura", + "Almaty", + "Novosibirsk", + "Rangoon", + "Bangkok", + "Hanoi", + "Jakarta", + "Krasnoyarsk", + "Beijing", + "Chongqing", + "Hong Kong", + "Urumqi", + "Kuala Lumpur", + "Singapore", + "Taipei", + "Perth", + "Irkutsk", + "Ulaan Bataar", + "Seoul", + "Osaka", + "Sapporo", + "Tokyo", + "Yakutsk", + "Darwin", + "Adelaide", + "Canberra", + "Melbourne", + "Sydney", + "Brisbane", + "Hobart", + "Vladivostok", + "Guam", + "Port Moresby", + "Magadan", + "Solomon Is.", + "New Caledonia", + "Fiji", + "Kamchatka", + "Marshall Is.", + "Auckland", + "Wellington", + "Nuku'alofa", + "Tokelau Is.", + "Samoa" + ] + } + }, + { + "name": "skip_change", + "in": "query", + "description": "Skip period over period calculations (defaults to true).", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } } - ], - "basePath": "", - "swaggerVersion": "0.1a", - "apiVersion": "1.0" -} + }, + "components": {} +} \ No newline at end of file diff --git a/doc/active_docs/Billing API.json b/doc/active_docs/Billing API.json index 084adf1217..b3904203a7 100644 --- a/doc/active_docs/Billing API.json +++ b/doc/active_docs/Billing API.json @@ -1,521 +1,585 @@ { - "basePath": "", - "swaggerVersion": "0.1a", - "apiVersion": "1.0", - "apis": [ + "openapi": "3.0.1", + "info": { + "version": "1.0" + }, + "servers": [ { - "path": "/api/accounts/{account_id}/invoices.xml", - "responseClass": "List[invoice]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Invoice List by Account", - "description": "Returns the list of all Invoices by account. Note that results can be paginated and you can apply filters by month and state.", - "group": "finance", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "state", - "description": "Filter Invoices by state. 'open': line items can be added (via web interface). 'pending': the Invoice has been issued, no items can be added, the PDF has been generated and the Invoice is waiting to be charged. 'paid': sucessfully paid. 'unpaid': charging failed at least once. 'cancelled': the Invoice was explicitly cancelled and is out of the normal life-cycle.", - "dataType": "string", - "paramType": "query", - "required": false, - "defaultValue": "", - "allowableValues": { - "values": [ - "open", - "pending", - "paid", - "unpaid", - "cancelled" - ], - "valueType": "LIST" - } - }, - { - "name": "month", - "description": "Filter Invoices by month. Format YYYY-MM, e.g. '2012-03'.", - "dataType": "string", - "paramType": "query" - }, - { - "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 20.", - "dataType": "int", - "paramType": "query", - "defaultValue": "20" - } - ] + "url": "/" + } + ], + "paths": { + "/api/accounts/{account_id}/invoices/{id}.xml": { + "get": { + "summary": "Invoice by Account", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the Invoice.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } }, - { - "path": "/api/accounts/{account_id}/invoices/{id}.xml", - "responseClass": "invoice", - "operations": [ - { - "httpMethod": "GET", - "summary": "Invoice by Account", - "description": "Returns an Invoice by id.", - "group": "finance", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "id", - "description": "ID of the Invoice.", - "dataType": "int", - "allowMultiple": false, - "required": true, - "paramType": "path" - } - ] + "/api/invoices/{invoice_id}/line_items.xml": { + "get": { + "summary": "Invoice Line Items List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "invoice_id", + "in": "path", + "description": "ID of the invoice.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] - }, - { - "path": "/api/invoices.xml", - "responseClass": "List[invoice]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Invoice List", - "description": "Returns the list of all Invoices. Note that results can be paginated and you can apply filters by month and state.", - "group": "finance", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "state", - "description": "Filter Invoices by state. 'open': line items can be added (via web interface). 'pending': the Invoice has been issued, no items can be added, the PDF has been generated and the Invoice is waiting to be charged. 'paid': sucessfully paid. 'unpaid': charging failed at least once. 'cancelled': the Invoice was explicitly cancelled and is out of the normal life-cycle.", - "dataType": "string", - "paramType": "query", - "required": false, - "defaultValue": "", - "allowableValues": { - "values": [ - "open", - "pending", - "paid", - "unpaid", - "cancelled" - ], - "valueType": "LIST" - } - }, - { - "name": "month", - "description": "Filter Invoices by month. Format YYYY-MM, e.g. '2012-03'.", - "dataType": "string", - "paramType": "query" - }, - { - "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 20.", - "dataType": "int", - "paramType": "query", - "defaultValue": "20" - } - ] + }, + "post": { + "summary": "Create Line Item for an Invoice", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "invoice_id", + "in": "path", + "description": "ID of the invoice.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the Line Item", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the Line Item", + "schema": { + "type": "string" + } + }, + { + "name": "quantity", + "in": "query", + "description": "Quantity of the Line Item", + "schema": { + "type": "string" + } + }, + { + "name": "cost", + "in": "query", + "description": "Total cost/price of the Line Item considering the quantity", + "schema": { + "type": "string" + } + }, + { + "name": "metric_id", + "in": "query", + "description": "Metric that have generated this Line Item", + "schema": { + "type": "string" + } + }, + { + "name": "contract_id", + "in": "query", + "description": "Contract that have generated this Line Item", + "schema": { + "type": "string" + } + }, + { + "name": "type", + "in": "query", + "description": "Type of cost. Can be [LineItem::PlanCost, LineItem::VariableCost]", + "schema": { + "type": "string" + } + }, + { + "name": "plan_id", + "in": "query", + "description": "The ID of the plan.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } }, - { - "path": "/api/invoices/{id}.xml", - "responseClass": "Invoice", - "operations": [ - { - "httpMethod": "GET", - "summary": "Invoice Read", - "description": "Returns an Invoice by ID.", - "group": "finance", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the Invoice.", - "dataType": "int", - "allowMultiple": false, - "required": true, - "paramType": "path" - } - ] + "/api/invoices/{invoice_id}/payment_transactions.xml": { + "get": { + "summary": "Invoice Payment Transactions List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "invoice_id", + "in": "path", + "description": "ID of the invoice.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } }, - { - "path": "/api/invoices/{id}/state.xml", - "responseClass": "invoice", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Invoice Update state", - "description": "Modifies the state of the Invoice.", - "group": "finance", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the Invoice.", - "dataType": "int", - "allowMultiple": false, - "required": true, - "paramType": "path" - }, - { - "name": "state", - "description": "State of the Invoice to set. Values allowed (depend on the previous state): cancelled, failed, paid, unpaid, pending, finalized", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "state" - } - ] + "/api/invoices/{id}.xml": { + "get": { + "summary": "Invoice Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the Invoice.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] - }, - { - "path": "/api/invoices/{id}/charge.xml", - "responseClass": "invoice", - "operations": [ - { - "httpMethod": "POST", - "summary": "Invoice Charge", - "description": "Charge an Invoice.", - "group": "finance", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the Invoice.", - "dataType": "int", - "allowMultiple": false, - "required": true, - "paramType": "path" - } - ] + }, + "put": { + "summary": "Invoice Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the Invoice.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "period", + "in": "query", + "description": "Billing period of the Invoice. The format should be YYYY-MM.", + "schema": { + "type": "string" + } + }, + { + "name": "friendly_id", + "in": "query", + "description": "Friendly ID of the Invoice. The format should be YYYY-MM-XXXXXXXX or YYYY-XXXXXXXX.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } }, - { - "path": "/api/invoices/{id}.xml", - "responseClass": "invoice", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Invoice Update", - "description": "Updates an Invoice.", - "group": "finance", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the Invoice.", - "dataType": "int", - "allowMultiple": false, - "required": true, - "paramType": "path" - }, - { - "name": "period", - "description": "Billing period of the Invoice. The format should be YYYY-MM.", - "required": false, - "paramType": "query" - }, - { - "name": "friendly_id", - "description": "Friendly ID of the Invoice. The format should be YYYY-MM-XXXXXXXX or YYYY-XXXXXXXX.", - "required": false, - "paramType": "query" - } - ] + "/api/invoices/{id}/state.xml": { + "put": { + "summary": "Invoice Update state", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the Invoice.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "state", + "in": "query", + "description": "State of the Invoice to set. Values allowed (depend on the previous state): cancelled, failed, paid, unpaid, pending, finalized", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } }, - { - "path": "/api/invoices.xml", - "responseClass": "invoice", - "operations": [ - { - "httpMethod": "POST", - "summary": "Invoice Create", - "description": "Creates a new Invoice.", - "group": "finance", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "account_id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "query", - "threescale_name": "account_ids" - }, - { - "name": "period", - "description": "Billing period of the Invoice. The format should be YYYY-MM.", - "required": false, - "paramType": "query" - } - ] + "/api/invoices/{invoice_id}/line_items/{id}.xml": { + "delete": { + "summary": "Delete Line Item of an Invoice", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "invoice_id", + "in": "path", + "description": "ID of the invoice.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the Line Item.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } }, - { - "path": "/api/invoices/{invoice_id}/line_items.xml", - "responseClass": "List[line_items]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Invoice Line Items List", - "description": "Returns the list of all Line Items of an Invoice.", - "group": "finance", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "invoice_id", - "description": "ID of the invoice.", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] + "/api/invoices.xml": { + "get": { + "summary": "Invoice List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "state", + "in": "query", + "description": "Filter Invoices by state. 'open': line items can be added (via web interface). 'pending': the Invoice has been issued, no items can be added, the PDF has been generated and the Invoice is waiting to be charged. 'paid': sucessfully paid. 'unpaid': charging failed at least once. 'cancelled': the Invoice was explicitly cancelled and is out of the normal life-cycle.", + "schema": { + "type": "string", + "enum": [ + "open", + "pending", + "paid", + "unpaid", + "cancelled" + ] + } + }, + { + "name": "month", + "in": "query", + "description": "Filter Invoices by month. Format YYYY-MM, e.g. '2012-03'.", + "schema": { + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 20.", + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] - }, - { - "path": "/api/invoices/{invoice_id}/line_items.xml", - "responseClass": "line_item", - "operations": [ - { - "httpMethod": "POST", - "summary": "Create Line Item for an Invoice", - "description": "Creates a new Line Item for an Invoice.", - "group": "finance", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "invoice_id", - "description": "ID of the invoice.", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "name": "name", - "description": "Name of the Line Item", - "required": false, - "paramType": "query" - }, - { - "name": "description", - "description": "Description of the Line Item", - "required": false, - "paramType": "query" - }, - { - "name": "quantity", - "description": "Quantity of the Line Item", - "required": false, - "paramType": "query" - }, - { - "name": "cost", - "description": "Total cost/price of the Line Item considering the quantity", - "required": false, - "paramType": "query" - }, - { - "name": "metric_id", - "description": "Metric that have generated this Line Item", - "required": false, - "paramType": "query" - }, - { - "name": "contract_id", - "description": "Contract that have generated this Line Item", - "required": false, - "paramType": "query" - }, - { - "name": "type", - "description": "Type of cost. Can be [LineItem::PlanCost, LineItem::VariableCost]", - "required": false, - "paramType": "query" - }, - { - "name": "plan_id", - "description": "The ID of the plan.", - "required": false, - "paramType": "query" - } - ] + }, + "post": { + "summary": "Invoice Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "query", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "period", + "in": "query", + "description": "Billing period of the Invoice. The format should be YYYY-MM.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } }, - { - "path": "/api/invoices/{invoice_id}/line_items/{id}.xml", - "responseClass": "line_item", - "operations": [ - { - "httpMethod": "DELETE", - "summary": "Delete Line Item of an Invoice", - "description": "Deletes a Line Item of an Invoice.", - "group": "finance", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "invoice_id", - "description": "ID of the invoice.", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "name": "id", - "description": "ID of the Line Item.", - "dataType": "int", - "allowMultiple": false, - "required": true, - "paramType": "path" - } - ] + "/api/accounts/{account_id}/invoices.xml": { + "get": { + "summary": "Invoice List by Account", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "state", + "in": "query", + "description": "Filter Invoices by state. 'open': line items can be added (via web interface). 'pending': the Invoice has been issued, no items can be added, the PDF has been generated and the Invoice is waiting to be charged. 'paid': sucessfully paid. 'unpaid': charging failed at least once. 'cancelled': the Invoice was explicitly cancelled and is out of the normal life-cycle.", + "schema": { + "type": "string", + "enum": [ + "open", + "pending", + "paid", + "unpaid", + "cancelled" + ] + } + }, + { + "name": "month", + "in": "query", + "description": "Filter Invoices by month. Format YYYY-MM, e.g. '2012-03'.", + "schema": { + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 20.", + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } }, - { - "path": "/api/invoices/{invoice_id}/payment_transactions.xml", - "responseClass": "List[payment_transactions]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Invoice Payment Transactions List", - "description": "Returns the list of all payment transactions of an invoice.", - "group": "finance", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "invoice_id", - "description": "ID of the invoice.", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] + "/api/invoices/{id}/charge.xml": { + "post": { + "summary": "Invoice Charge", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the Invoice.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } } - ] -} + }, + "components": {} +} \ No newline at end of file diff --git a/doc/active_docs/Developer Portal API (Tech Preview).json b/doc/active_docs/Developer Portal API (Tech Preview).json index aff042d577..35bf23e30d 100644 --- a/doc/active_docs/Developer Portal API (Tech Preview).json +++ b/doc/active_docs/Developer Portal API (Tech Preview).json @@ -1,4 +1,5 @@ { +<<<<<<< HEAD:doc/active_docs/Developer Portal API (Tech Preview).json "basePath": "", "resourcePath": "/admin/api/cms/templates", "swaggerVersion": "1.1", @@ -661,6 +662,932 @@ ] } ] +======= + "openapi": "3.0.1", + "info": { + "version": "1.0" + }, + "servers": [ + { + "url": "/" +>>>>>>> 593be7e27 (THREESCALE-3927 converted to openapi 3.0):doc/active_docs/CMS API.json + } + ], + "paths": { + "/admin/api/cms/templates/{id}/publish.xml": { + "put": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Template Publish", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the template", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/cms/files.xml": { + "get": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "File List", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "Current page of the list", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "per_page", + "in": "query", + "description": "Total number of records per one page (maximum 100)", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "File Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "path", + "in": "query", + "description": "URI of the file", + "schema": { + "type": "string" + } + }, + { + "name": "section_id", + "in": "query", + "description": "ID of a section (valid only for pages)", + "schema": { + "type": "ref" + } + }, + { + "name": "tag_list", + "in": "query", + "description": "List of the tags", + "schema": { + "type": "string" + } + }, + { + "name": "attachment", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "downloadable", + "in": "query", + "description": "Checked sets the content-disposition to attachment", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/cms/files/{id}.xml": { + "get": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "File Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the file", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "File Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the file", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "path", + "in": "query", + "description": "URI of the file", + "schema": { + "type": "string" + } + }, + { + "name": "section_id", + "in": "query", + "description": "ID of a section (valid only for pages)", + "schema": { + "type": "ref" + } + }, + { + "name": "tag_list", + "in": "query", + "description": "List of the tags", + "schema": { + "type": "string" + } + }, + { + "name": "attachment", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "downloadable", + "in": "query", + "description": "Checked sets the content-disposition to attachment", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "File Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the file", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "path", + "in": "query", + "description": "URI of the file", + "schema": { + "type": "string" + } + }, + { + "name": "section_id", + "in": "query", + "description": "ID of a section (valid only for pages)", + "schema": { + "type": "ref" + } + }, + { + "name": "tag_list", + "in": "query", + "description": "List of the tags", + "schema": { + "type": "string" + } + }, + { + "name": "attachment", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "downloadable", + "in": "query", + "description": "Checked sets the content-disposition to attachment", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/cms/templates.xml": { + "get": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Template List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "description": "Current page of the list", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "per_page", + "in": "query", + "description": "Total number of records per one page (maximum 100)", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Template Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "type", + "in": "query", + "required": true, + "schema": { + "type": "string", + "enum": [ + "page", + "layout", + "partial" + ] + } + }, + { + "name": "system_name", + "in": "query", + "description": "Human readable and unique identifier", + "schema": { + "type": "string" + } + }, + { + "name": "title", + "in": "query", + "description": "Title of the template", + "schema": { + "type": "string" + } + }, + { + "name": "path", + "in": "query", + "description": "URI of the page", + "schema": { + "type": "string" + } + }, + { + "name": "draft", + "in": "query", + "description": "Text content of the template (you have to publish the template)", + "schema": { + "type": "string" + } + }, + { + "name": "section_name", + "in": "query", + "description": "system name of a section", + "schema": { + "type": "string" + } + }, + { + "name": "section_id", + "in": "query", + "description": "ID of a section (valid only for pages)", + "schema": { + "type": "ref" + } + }, + { + "name": "layout_name", + "in": "query", + "description": "system name of a layout (valid only for pages)", + "schema": { + "type": "string" + } + }, + { + "name": "layout_id", + "in": "query", + "description": "ID of a layout - overrides layout_name", + "schema": { + "type": "ref" + } + }, + { + "name": "liquid_enabled", + "in": "query", + "description": "liquid processing of the template content on/off", + "schema": { + "type": "boolean" + } + }, + { + "name": "handler", + "in": "query", + "description": "text will be processed by the handler before rendering", + "schema": { + "type": "string", + "enum": [ + "textile", + "markdown" + ] + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/cms/sections.xml": { + "get": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Section List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "description": "Current page of the list", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "per_page", + "in": "query", + "description": "Total number of records per one page (maximum 100)", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Section Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "description": "Human readable and unique identifier", + "schema": { + "type": "string" + } + }, + { + "name": "title", + "in": "query", + "description": "Title of the section", + "schema": { + "type": "string" + } + }, + { + "name": "public", + "in": "query", + "description": "Public or not", + "schema": { + "type": "boolean" + } + }, + { + "name": "parent_id", + "in": "query", + "description": "ID of a parent section", + "schema": { + "type": "ref" + } + }, + { + "name": "partial_path", + "in": "query", + "description": "Path of the section", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/cms/templates/{id}.xml": { + "get": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Template Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the template", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Template Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the template", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "system_name", + "in": "query", + "description": "Human readable and unique identifier", + "schema": { + "type": "string" + } + }, + { + "name": "title", + "in": "query", + "description": "Title of the template", + "schema": { + "type": "string" + } + }, + { + "name": "path", + "in": "query", + "description": "URI of the page", + "schema": { + "type": "string" + } + }, + { + "name": "draft", + "in": "query", + "description": "Text content of the template (you have to publish the template)", + "schema": { + "type": "string" + } + }, + { + "name": "section_name", + "in": "query", + "description": "system name of a section", + "schema": { + "type": "string" + } + }, + { + "name": "section_id", + "in": "query", + "description": "ID of a section (valid only for pages)", + "schema": { + "type": "ref" + } + }, + { + "name": "layout_name", + "in": "query", + "description": "system name of a layout (valid only for pages)", + "schema": { + "type": "string" + } + }, + { + "name": "layout_id", + "in": "query", + "description": "ID of a layout - overrides layout_name", + "schema": { + "type": "ref" + } + }, + { + "name": "liquid_enabled", + "in": "query", + "description": "liquid processing of the template content on/off", + "schema": { + "type": "boolean" + } + }, + { + "name": "handler", + "in": "query", + "description": "text will be processed by the handler before rendering", + "schema": { + "type": "string", + "enum": [ + "textile", + "markdown" + ] + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Template Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the template", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/cms/sections/{id}.xml": { + "get": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Section Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the section", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Section Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the section", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "system_name", + "in": "query", + "description": "Human readable and unique identifier", + "schema": { + "type": "string" + } + }, + { + "name": "title", + "in": "query", + "description": "Title of the section", + "schema": { + "type": "string" + } + }, + { + "name": "public", + "in": "query", + "description": "Public or not", + "schema": { + "type": "boolean" + } + }, + { + "name": "parent_id", + "in": "query", + "description": "ID of a parent section", + "schema": { + "type": "ref" + } + }, + { + "name": "partial_path", + "in": "query", + "description": "Path of the section", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Section Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the section", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } } - ] -} + }, + "components": {} +} \ No newline at end of file diff --git a/doc/active_docs/Master API.json b/doc/active_docs/Master API.json index 621e575e77..5372d58272 100644 --- a/doc/active_docs/Master API.json +++ b/doc/active_docs/Master API.json @@ -1,277 +1,324 @@ { - "basePath": "", - "swaggerVersion": "0.1a", - "apiVersion": "1.0", - "apis": [ + "openapi": "3.0.1", + "info": { + "version": "1.0" + }, + "servers": [ { - "path": "/master/api/providers/{provider_id}/accounts/{account_id}/billing_jobs.xml", - "operations": [ - { - "httpMethod": "POST", - "summary": "Trigger Billing by Account", - "description": "Triggers billing process for a specific developer account.", - "nickname": "trigger_developer_billing", - "group": "finance", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "provider_id", - "description": "ID of the tenant account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "account_id", - "description": "ID of the developer account.", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "name": "date", - "description": "Base date for the billing process. Format YYYY-MM-DD (UTC).", - "dataType": "string", - "required": true, - "paramType": "query" + "url": "/" + } + ], + "paths": { + "/master/api/providers/{provider_id}/accounts/{account_id}/billing_jobs.xml": { + "post": { + "summary": "Trigger Billing by Account", + "operationId": "trigger_developer_billing", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "provider_id", + "in": "path", + "description": "ID of the tenant account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the developer account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "date", + "in": "query", + "description": "Base date for the billing process. Format YYYY-MM-DD (UTC).", + "required": true, + "schema": { + "type": "string" } - ] + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } }, - { - "path": "/master/api/providers/{provider_id}/billing_jobs.xml", - "operations": [ - { - "httpMethod": "POST", - "summary": "Trigger Billing", - "description": "Triggers billing process for all developer accounts.", - "nickname": "trigger_tenant_billing", - "group": "finance", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "provider_id", - "description": "ID of the tenant account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "date", - "description": "Base date for the billing process. Format YYYY-MM-DD (UTC).", - "dataType": "string", - "required": true, - "paramType": "query" + "/master/api/providers/{id}.xml": { + "get": { + "summary": "Tenant Show", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" } - ] + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] - }, - { - "path": "/master/api/providers.xml", - "responseClass": "signup", - "operations": [ - { - "httpMethod": "POST", - "summary": "Tenant Create", - "description": "This request allows you to reproduce a sign-up from a tenant in a single API call. It will create an Account, an Admin User for the account, and optionally an Application with its keys. If the plan_id is not passed, the default plan will be used instead. You can add additional custom parameters in Fields Definition on your Admin Portal.", - "group": "signup", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "org_name", - "description": "Organization Name of the tenant account.", - "dataType": "string", - "allowMultiple": false, - "required": true, - "paramType": "query" - }, - { - "name": "username", - "description": "Username of the admin user (on the new tenant 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": "additional_fields", - "dataType": "custom", - "paramType": "query", - "allowMultiple": true, - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields." + }, + "put": { + "summary": "Tenant Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "from_email", + "in": "query", + "description": "New outgoing email.", + "schema": { + "type": "string" + } + }, + { + "name": "support_email", + "in": "query", + "description": "New support email.", + "schema": { + "type": "string" + } + }, + { + "name": "finance_support_email", + "in": "query", + "description": "New finance support email.", + "schema": { + "type": "string" + } + }, + { + "name": "site_access_code", + "in": "query", + "description": "Developer Portal Access Code.", + "schema": { + "type": "string" + } + }, + { + "name": "state_event", + "in": "query", + "description": "Change the state of the tenant. It can be either 'make_pending', 'approve', 'reject', 'suspend', or 'resume' depending on the current state", + "schema": { + "type": "string" } - ] + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] - }, - { - "path": "/master/api/providers/{id}.xml", - "responseClass": "provider", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Tenant Update", - "description": "Updates email addresses used to deliver email notifications to customers.", - "group": "account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" - }, - { - "name": "from_email", - "description": "New outgoing email.", - "dataType": "string", - "paramType": "query" - }, - { - "name": "support_email", - "description": "New support email.", - "dataType": "string", - "paramType": "query" - }, - { - "name": "finance_support_email", - "description": "New finance support email.", - "dataType": "string", - "paramType": "query" - }, - { - "name": "site_access_code", - "description": "Developer Portal Access Code.", - "dataType": "string", - "paramType": "query" - }, - { - "name": "state_event", - "description": "Change the state of the tenant. It can be either 'make_pending', 'approve', 'reject', 'suspend', or 'resume' depending on the current state", - "dataType": "string", - "required": false, - "paramType": "query" - }, - { - "name": "additional_fields", - "dataType": "custom", - "paramType": "query", - "allowMultiple": true, - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields." + }, + "delete": { + "summary": "Tenant Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" } - ] + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } }, - { - "path": "/master/api/providers/{id}.xml", - "responseClass": "provider", - "operations": [ - { - "httpMethod": "DELETE", - "summary": "Tenant Delete", - "description": "Schedules a tenant account to be permanently deleted in 15 days. At that time all its users, services, plans and developer accounts subscribed to it will be deleted too. When a tenant account is scheduled for deletion it can no longer be edited (except except its state) and its admin portal and developer portal cannot be accessible. Update with 'resume' state event to unschedule a tenant for deletion.", - "group": "account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" + "/master/api/providers.xml": { + "post": { + "summary": "Tenant Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "org_name", + "in": "query", + "description": "Organization Name of the tenant account.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "username", + "in": "query", + "description": "Username of the admin user (on the new tenant account).", + "required": true, + "schema": { + "type": "string" } - ] + }, + { + "name": "email", + "in": "query", + "description": "Email of the admin user.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "password", + "in": "query", + "description": "Password of the admin user.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } }, - { - "path": "/master/api/providers/{id}.xml", - "responseClass": "provider", - "operations": [ - { - "httpMethod": "GET", - "summary": "Tenant Show", - "description": "Show a tenant account.", - "group": "account", - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the account.", - "dataType": "int", - "required": true, - "paramType": "path", - "threescale_name": "account_ids" + "/master/api/providers/{provider_id}/billing_jobs.xml": { + "post": { + "summary": "Trigger Billing", + "operationId": "trigger_tenant_billing", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "provider_id", + "in": "path", + "description": "ID of the tenant account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "date", + "in": "query", + "description": "Base date for the billing process. Format YYYY-MM-DD (UTC).", + "required": true, + "schema": { + "type": "string" } - ] + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } } - ] -} + }, + "components": {} +} \ No newline at end of file diff --git a/doc/active_docs/Service Management API (on-premises).json b/doc/active_docs/Service Management API (on-premises).json index 9af8ef8c0c..ca3ba57eab 100644 --- a/doc/active_docs/Service Management API (on-premises).json +++ b/doc/active_docs/Service Management API (on-premises).json @@ -1,693 +1,332 @@ { - "basePath": "https://su1.3scale.net", - "swaggerVersion": "0.1a", - "apiVersion": "1.0", - "apis": [ + "openapi": "3.0.1", + "info": { + "version": "1.0" + }, + "servers": [ { - "path": "/transactions/authorize.xml", - "format": "xml", - "operations": [ - { - "httpMethod": "GET", - "summary": "Authorize (App Id authentication pattern)", - "description": "

Read-only operation to authorize an application in the App Id authentication pattern.

It is used to check if a particular application exists, is active and is within its usage limits. It can be optionally used to authenticate a call using an application key. It's possible to pass a 'predicted usage' to the authorize call. This can serve two purposes:

1) To make sure an API call won't go over the limits before the call is made, if the usage of the call is known in advance. In this case, the estimated usage can be passed to the authorize call, and it will respond whether the actual API call is still within limit. And,

2) To limit the authorization only to a subset of metrics. If usage is passed in, only the metrics listed in it will be checked against the limits. For example: There are two metrics defined: searches and updates. updates are already over limit, but searches are not. In this case, the user should still be allowed to do a search call, but not an update one.

Note: Even if the predicted usage is passed in, authorize is still a read-only operation. You have to make the report call to report the usage.

The response can have an http response code: 200 OK (if authorization is granted), 409 (if it's not granted, typically application over limits or keys missing, check 'reason' tag), or 403 (for authentication errors, check 'error' tag) and 404 (not found).", - "group": "authorize", - "parameters": [ - { - "name": "service_token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_tokens", - "description": "Your service api key with 3scale (also known as service token)." - }, - { - "name": "service_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_ids", - "description": "Service id. Required." - }, - { - "name": "app_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "app_ids", - "description": "App Id (identifier of the application if the auth. pattern is App Id)" - }, - { - "name": "app_key", - "dataType": "string", - "required": false, - "paramType": "query", - "threescale_name": "app_keys", - "description": "App Key (shared secret of the application if the authentication pattern is App Id). The app key is required if the application has one or more keys defined." - }, - { - "name": "referrer", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed." - }, - { - "name": "usage", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.", - "parameters": [ - { - "name": "metric", - "dataType": "custom", - "required": false, - "paramType": "query", - "allowMultiple": true, - "threescale_name": "metric_names", - "description": "Metric to be reported" - } - ] + "url": "https://su1.3scale.net/" + } + ], + "paths": { + "/transactions/oauth_authorize.xml": { + "get": { + "summary": "Authorize (OAuth authentication mode pattern)", + "operationId": "oauth_authorize", + "parameters": [ + { + "name": "service_token", + "in": "query", + "description": "Your service api key with 3scale (also known as service token).", + "required": true, + "schema": { + "type": "string" } - ] - } - ] - }, - { - "path": "/transactions/authorize.xml", - "format": "xml", - "operations": [ - { - "httpMethod": "GET", - "tags": [ - "authorize", - "user_key" - ], - "nickname": "authorize_user_key", - "deprecated": false, - "summary": "Authorize (API Key authentication pattern)", - "description": "Read-only operation to authorize an application in the App Key authentication pattern.

It is used to check if a particular application exists, is active and is within its usage limits. It can be optionally used to authenticate a call using an application key. It's possible to pass a 'predicted usage' to the authorize call. This can serve two purposes:

1) To make sure an API call won't go over the limits before the call is made, if the usage of the call is known in advance. In this case, the estimated usage can be passed to the authorize call, and it will respond whether the actual API call is still within limit. And,

2) To limit the authorization only to a subset of metrics. If usage is passed in, only the metrics listed in it will be checked against the limits. For example: There are two metrics defined: searches and updates. updates are already over limit, but searches are not. In this case, the user should still be allowed to do a search call, but not an update one.

Note: Even if the predicted usage is passed in, authorize is still a read-only operation. You have to make the report call to report the usage.

The response can have an http response code: 200 OK (if authorization is granted), 409 (if it's not granted, typically application over limits or keys missing, check 'reason' tag), or 403 (for authentication errors, check 'error' tag) and 404 (not found).", - "group": "authorize", - "parameters": [ - { - "name": "service_token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_tokens", - "description": "Your service api key with 3scale (also known as service token)." - }, - { - "name": "service_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_ids", - "description": "Service id. Required." - }, - { - "name": "user_key", - "dataType": "string", - "required": true, - "paramType": "query", - "theescale_name": "user_keys", - "description": "User Key (identifier and shared secret of the application if the auth. pattern is Api Key)" - }, - { - "name": "referrer", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed." - }, - { - "name": "usage", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.", - "parameters": [ - { - "name": "metric", - "dataType": "custom", - "required": false, - "paramType": "query", - "allowMultiple": true, - "threescale_name": "metric_names", - "description": "Metric to be reported" - } - ] + }, + { + "name": "service_id", + "in": "query", + "description": "Service id. Required.", + "required": true, + "schema": { + "type": "string" } - ] - } - ] - }, - { - "path": "/transactions/oauth_authorize.xml", - "format": "xml", - "operations": [ - { - "httpMethod": "GET", - "tags": [ - "authorize", - "user_key" - ], - "nickname": "oauth_authorize", - "deprecated": false, - "summary": "Authorize (OAuth authentication mode pattern)", - "description": "

Read-only operation to authorize an application in the OAuth authentication pattern.

This calls returns extra data (secret and redirect_url) needed to power OAuth APIs. It's only available for users with OAuth enabled APIs.

It is used to check if a particular application exists, is active and is within its usage limits. It can be optionally used to authenticate a call using an application key. It's possible to pass a 'predicted usage' to the authorize call. This can serve two purposes:

1) To make sure an API call won't go over the limits before the call is made, if the usage of the call is known in advance. In this case, the estimated usage can be passed to the authorize call, and it will respond whether the actual API call is still within limit. And,

2) To limit the authorization only to a subset of metrics. If usage is passed in, only the metrics listed in it will be checked against the limits. For example: There are two metrics defined: searches and updates. updates are already over limit, but searches are not. In this case, the user should still be allowed to do a search call, but not an update one.

Note: Even if the predicted usage is passed in, authorize is still a read-only operation. You have to make the report call to report the usage.

The response can have an http response code: 200 OK (if authorization is granted), 409 (if it's not granted, typically application over limits or keys missing, check 'reason' tag), or 403 (for authentication errors, check 'error' tag) and 404 (not found).", - "group": "authorize", - "parameters": [ - { - "name": "service_token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_tokens", - "description": "Your service api key with 3scale (also known as service token)." - }, - { - "name": "service_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_ids", - "description": "Service id. Required." - }, - { - "name": "access_token", - "dataType": "string", - "required": false, - "paramType": "query", - "threescale_name": "access_tokens", - "description": "OAuth token used for authorizing if you don't use client_id with client_secret." - }, - { - "name": "app_id", - "dataType": "string", - "required": false, - "paramType": "query", - "threescale_name": "app_ids", - "description": "Client Id (identifier of the application if the auth. pattern is OAuth, note that client_id == app_id)" - }, - { - "name": "referrer", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed." - }, - { - "name": "usage", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.", - "parameters": [ - { - "name": "metric", - "dataType": "custom", - "required": false, - "paramType": "query", - "allowMultiple": true, - "threescale_name": "metric_names", - "description": "Metric to be reported" - } - ] - }, - { - "name": "redirect_url", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Optional redirect URL for OAuth. Will be validated if sent." - }, - { - "name": "redirect_uri", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Optional redirect URI for OAuth. This is the same as 'redirect_url', but if used you should expect a matching 'redirect_uri' response field." + }, + { + "name": "access_token", + "in": "query", + "description": "OAuth token used for authorizing if you don't use client_id with client_secret.", + "schema": { + "type": "string" } - ] - } - ] - }, - { - "path": "/transactions/authrep.xml", - "format": "xml", - "operations": [ - { - "httpMethod": "GET", - "summary": "AuthRep (Authorize + Report for the App Id authentication pattern)", - "description": "

Authrep is a 'one-shot' operation to authorize an application and report the associated transaction at the same time.

The main difference between this call and the regular authorize call is that usage will be reported if the authorization is successful. Authrep is the most convenient way to integrate your API with the 3scale's Service Manangement API since it does a 1:1 mapping between a request to your API and a request to 3scale's API.

If you do not want to do a request to 3scale for each request to your API or batch the reports you should use the Authorize and Report methods instead.

Authrep is not a read-only operation and will increment the values if the authorization step is a success.", - "group": "authrep", - "parameters": [ - { - "name": "service_token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_tokens", - "description": "Your service api key with 3scale (also known as service token)." - }, - { - "name": "service_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_ids", - "description": "Service id. Required." - }, - { - "name": "app_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "app_ids", - "description": "App Id (identifier of the application if the auth. pattern is App Id)" - }, - { - "name": "app_key", - "dataType": "string", - "required": false, - "paramType": "query", - "threescale_name": "app_keys", - "description": "App Key (shared secret of the application if the authentication pattern is App Id). The app key is required if the application has one or more keys defined." - }, - { - "name": "referrer", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed." - }, - { - "name": "usage", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", - "parameters": [ - { - "name": "metric", - "dataType": "custom", - "required": false, - "paramType": "query", - "allowMultiple": true, - "threescale_name": "metric_names", - "description": "Metric to be reported" - } - ] + }, + { + "name": "app_id", + "in": "query", + "description": "Client Id (identifier of the application if the auth. pattern is OAuth, note that client_id == app_id)", + "schema": { + "type": "string" } - ] - } - ] - }, - { - "path": "/transactions/authrep.xml", - "format": "xml", - "operations": [ - { - "httpMethod": "GET", - "summary": "AuthRep (Authorize + Report for the API Key authentication pattern)", - "description": "

Authrep is a 'one-shot' operation to authorize an application and report the associated transaction at the same time.

The main difference between this call and the regular authorize call is that usage will be reported if the authorization is successful. Authrep is the most convenient way to integrate your API with the 3scale's Service Manangement API since it does a 1:1 mapping between a request to your API and a request to 3scale's API.

If you do not want to do a request to 3scale for each request to your API or batch the reports you should use the Authorize and Report methods instead.

Authrep is not a read-only operation and will increment the values if the authorization step is a success.", - "group": "authrep", - "parameters": [ - { - "name": "service_token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_tokens", - "description": "Your service api key with 3scale (also known as service token)." - }, - { - "name": "service_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_ids", - "description": "Service id. Required." - }, - { - "name": "user_key", - "dataType": "string", - "required": true, - "paramType": "query", - "theescale_name": "user_keys", - "description": "User Key (identifier and shared secret of the application if the auth. pattern is Api Key)" - }, - { - "name": "referrer", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed." - }, - { - "name": "usage", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", - "parameters": [ - { - "name": "metric", - "dataType": "custom", - "required": false, - "paramType": "query", - "allowMultiple": true, - "threescale_name": "metric_names", - "description": "Metric to be reported" - } - ] + }, + { + "name": "referrer", + "in": "query", + "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed.", + "schema": { + "type": "string" + } + }, + { + "name": "usage", + "in": "query", + "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.", + "schema": { + "type": "ref" + } + }, + { + "name": "redirect_url", + "in": "query", + "description": "Optional redirect URL for OAuth. Will be validated if sent.", + "schema": { + "type": "string" } - ] + }, + { + "name": "redirect_uri", + "in": "query", + "description": "Optional redirect URI for OAuth. This is the same as 'redirect_url', but if used you should expect a matching 'redirect_uri' response field.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } }, - { - "path": "/transactions/oauth_authrep.xml", - "format": "xml", - "operations": [ - { - "httpMethod": "GET", - "nickname": "oauth_authrep", - "deprecated": false, - "summary": "AuthRep (OAuth authentication mode pattern)", - "description": "

Authrep is a 'one-shot' operation to authorize an application and report the associated transaction at the same time in the OAuth authentication pattern.

The main difference between this call and the regular authorize call is that usage will be reported if the authorization is successful. Authrep is the most convenient way to integrate your API with the 3scale's Service Manangement API since it does a 1:1 mapping between a request to your API and a request to 3scale's API.

If you do not want to do a request to 3scale for each request to your API or batch the reports you should use the Authorize and Report methods instead.

Authrep is not a read-only operation and will increment the values if the authorization step is a success.

This calls returns extra data (secret and redirect_url) needed to power OAuth APIs. It's only available for users with OAuth enabled APIs.", - "group": "authrep", - "parameters": [ - { - "name": "service_token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_tokens", - "description": "Your service api key with 3scale (also known as service token)." - }, - { - "name": "service_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_ids", - "description": "Service id. Required." - }, - { - "name": "access_token", - "dataType": "string", - "required": false, - "paramType": "query", - "threescale_name": "access_tokens", - "description": "OAuth token used for authorizing if you don't use client_id with client_secret." - }, - { - "name": "app_id", - "dataType": "string", - "required": false, - "paramType": "query", - "threescale_name": "app_ids", - "description": "Client Id (identifier of the application if the auth. pattern is OAuth, note that client_id == app_id)" - }, - { - "name": "referrer", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed." - }, - { - "name": "usage", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", - "parameters": [ - { - "name": "metric", - "dataType": "custom", - "required": false, - "paramType": "query", - "allowMultiple": true, - "threescale_name": "metric_names", - "description": "Metric to be reported" - } - ] - }, - { - "name": "redirect_url", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Optional redirect URL for OAuth. Will be validated if sent." - }, - { - "name": "redirect_uri", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Optional redirect URI for OAuth. This is the same as 'redirect_url', but if used you should expect a matching 'redirect_uri' response field." + "/transactions/authrep.xml": { + "get": { + "summary": "AuthRep (Authorize + Report for the API Key authentication pattern)", + "parameters": [ + { + "name": "service_token", + "in": "query", + "description": "Your service api key with 3scale (also known as service token).", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "query", + "description": "Service id. Required.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "user_key", + "in": "query", + "description": "User Key (identifier and shared secret of the application if the auth. pattern is Api Key)", + "required": true, + "schema": { + "type": "string" } - ] + }, + { + "name": "referrer", + "in": "query", + "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed.", + "schema": { + "type": "string" + } + }, + { + "name": "usage", + "in": "query", + "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } }, - { - "path": "/transactions.xml", - "format": "xml", - "operations": [ - { - "httpMethod": "POST", - "summary": "Report (App Id authentication pattern)", - "description": "

Report the transactions to 3scale backend.

This operation updates the metrics passed in the usage parameter. You can send up to 1K transactions in a single POST request. Transactions are processed asynchronously by the 3scale's backend.

Transactions from a single batch are reported only if all of them are valid. If there is an error in processing of at least one of them, none is reported.

Note that a batch can only report transactions to the same service, service_id is at the same level that service_token. Multiple report calls will have to be issued to report transactions to different services.

Be aware that reporting metrics that are limited at the time of reporting will have no effect.

Supported Content-Type values for this POST call are: application/x-www-form-urlencoded.", - "group": "report", - "parameters": [ - { - "name": "service_token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_tokens", - "description": "Your service api key with 3scale (also known as service token)." - }, - { - "name": "service_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_ids", - "description": "Service id. Required." - }, - { - "name": "transactions", - "dataType": "array", - "required": true, - "paramType": "query", - "allowMultiple": true, - "description": "Transactions to be reported. There is a limit of 1000 transactions to be reported on a single request.", - "parameters": [ - { - "name": "app_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "app_ids", - "description": "App Id (identifier of the application if the auth. pattern is App Id)", - "description_inline": true - }, - { - "name": "timestamp", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "If passed, it should be the time when the transaction took place. Format: YYYY-MM-DD HH:MM:SS for UTC, add -HH:MM or +HH:MM for time offset. For instance, 2011-12-30 22:15:31 -08:00", - "description_inline": true - }, - { - "name": "usage", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", - "parameters": [ - { - "name": "metric", - "dataType": "custom", - "required": false, - "paramType": "query", - "allowMultiple": true, - "threescale_name": "metric_names", - "description": "Metric to be reported" - } - ] - } - ] + "/transactions/oauth_authrep.xml": { + "get": { + "summary": "AuthRep (OAuth authentication mode pattern)", + "operationId": "oauth_authrep", + "parameters": [ + { + "name": "service_token", + "in": "query", + "description": "Your service api key with 3scale (also known as service token).", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "query", + "description": "Service id. Required.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "access_token", + "in": "query", + "description": "OAuth token used for authorizing if you don't use client_id with client_secret.", + "schema": { + "type": "string" + } + }, + { + "name": "app_id", + "in": "query", + "description": "Client Id (identifier of the application if the auth. pattern is OAuth, note that client_id == app_id)", + "schema": { + "type": "string" + } + }, + { + "name": "referrer", + "in": "query", + "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed.", + "schema": { + "type": "string" + } + }, + { + "name": "usage", + "in": "query", + "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", + "schema": { + "type": "ref" + } + }, + { + "name": "redirect_url", + "in": "query", + "description": "Optional redirect URL for OAuth. Will be validated if sent.", + "schema": { + "type": "string" } - ] + }, + { + "name": "redirect_uri", + "in": "query", + "description": "Optional redirect URI for OAuth. This is the same as 'redirect_url', but if used you should expect a matching 'redirect_uri' response field.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } }, - { - "path": "/transactions.xml", - "format": "xml", - "operations": [ - { - "httpMethod": "POST", - "summary": "Report (API Key authentication pattern)", - "description": "

Report the transactions to 3scale backend.

This operation updates the metrics passed in the usage parameter. You can send up to 1K transactions in a single POST request. Transactions are processed asynchronously by the 3scale's backend.

Transactions from a single batch are reported only if all of them are valid. If there is an error in processing of at least one of them, none is reported.

Note that a batch can only report transactions to the same service, service_id is at the same level that service_token. Multiple report calls will have to be issued to report transactions to different services.

Be aware that reporting metrics that are limited at the time of reporting will have no effect.

Supported Content-Type values for this POST call are: application/x-www-form-urlencoded.", - "group": "report", - "parameters": [ - { - "name": "service_token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_tokens", - "description": "Your service api key with 3scale (also known as service token)." - }, - { - "name": "service_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_ids", - "description": "Service id. Required." - }, - { - "name": "transactions", - "dataType": "array", - "required": true, - "paramType": "query", - "allowMultiple": true, - "description": "Transactions to be reported. There is a limit of 1000 transactions to be reported on a single request.", - "parameters": [ - { - "name": "user_key", - "dataType": "string", - "required": true, - "paramType": "query", - "theescale_name": "user_keys", - "description": "User Key (identifier and shared secret of the application if the auth. pattern is Api Key)", - "description_inline": true - }, - { - "name": "timestamp", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "If passed, it should be the time when the transaction took place. Format: YYYY-MM-DD HH:MM:SS for UTC, add -HH:MM or +HH:MM for time offset. For instance, 2011-12-30 22:15:31 -08:00", - "description_inline": true - }, - { - "name": "usage", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", - "parameters": [ - { - "name": "metric", - "dataType": "custom", - "required": false, - "paramType": "query", - "allowMultiple": true, - "threescale_name": "metric_names", - "description": "Metric to be reported" - } - ] - } - ] + "/transactions/authorize.xml": { + "get": { + "summary": "Authorize (API Key authentication pattern)", + "operationId": "authorize_user_key", + "parameters": [ + { + "name": "service_token", + "in": "query", + "description": "Your service api key with 3scale (also known as service token).", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "query", + "description": "Service id. Required.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "user_key", + "in": "query", + "description": "User Key (identifier and shared secret of the application if the auth. pattern is Api Key)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "referrer", + "in": "query", + "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed.", + "schema": { + "type": "string" } - ] + }, + { + "name": "usage", + "in": "query", + "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } }, - { - "path": "/transactions.xml", - "format": "xml", - "operations": [ - { - "httpMethod": "POST", - "summary": "Report (OAuth authentication pattern)", - "description": "

Report the transactions to 3scale backend.

This operation updates the metrics passed in the usage parameter. You can send up to 1K transactions in a single POST request. Transactions are processed asynchronously by the 3scale's backend.

Transactions from a single batch are reported only if all of them are valid. If there is an error in processing of at least one of them, none is reported.

Note that a batch can only report transactions to the same service, service_id is at the same level that service_token. Multiple report calls will have to be issued to report transactions to different services.

Be aware that reporting metrics that are limited at the time of reporting will have no effect.

Supported Content-Type values for this POST call are: application/x-www-form-urlencoded.", - "group": "report", - "parameters": [ - { - "name": "service_token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_tokens", - "description": "Your service api key with 3scale (also known as service token)." - }, - { - "name": "service_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_ids", - "description": "Service id. Required." - }, - { - "name": "transactions", - "dataType": "array", - "required": true, - "paramType": "query", - "allowMultiple": true, - "description": "Transactions to be reported. There is a limit of 1000 transactions to be reported on a single request.", - "parameters": [ - { - "name": "app_id", - "dataType": "string", - "required": false, - "paramType": "query", - "threescale_name": "app_ids", - "description": "Client Id (identifier of the application if the auth. pattern is OAuth, note that client_id == app_id)", - "description_inline": true - }, - { - "name": "timestamp", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "If passed, it should be the time when the transaction took place. Format: YYYY-MM-DD HH:MM:SS for UTC, add -HH:MM or +HH:MM for time offset. For instance, 2011-12-30 22:15:31 -08:00", - "description_inline": true - }, - { - "name": "usage", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", - "parameters": [ - { - "name": "metric", - "dataType": "custom", - "required": false, - "paramType": "query", - "allowMultiple": true, - "threescale_name": "metric_names", - "description": "Metric to be reported" - } - ] - } - ] + "/transactions.xml": { + "post": { + "summary": "Report (OAuth authentication pattern)", + "parameters": [ + { + "name": "service_token", + "in": "query", + "description": "Your service api key with 3scale (also known as service token).", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "query", + "description": "Service id. Required.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "transactions", + "in": "query", + "description": "Transactions to be reported. There is a limit of 1000 transactions to be reported on a single request.", + "required": true, + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } } - ] + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } } - ] -} + }, + "components": {} +} \ No newline at end of file diff --git a/doc/active_docs/Service Management API.json b/doc/active_docs/Service Management API.json index 552127aa7a..7e2c7138aa 100644 --- a/doc/active_docs/Service Management API.json +++ b/doc/active_docs/Service Management API.json @@ -1,879 +1,348 @@ { - "basePath": "", - "swaggerVersion": "0.1a", - "apiVersion": "1.0", - "apis": [ + "openapi": "3.0.1", + "info": { + "version": "1.0" + }, + "servers": [ { - "path": "/transactions/authorize.xml", - "format": "xml", - "operations": [ - { - "httpMethod": "GET", - "summary": "Authorize (App Id authentication pattern)", - "description": "

Read-only operation to authorize an application in the App Id authentication pattern.

It is used to check if a particular application exists, is active and is within its usage limits. It can be optionally used to authenticate a call using an application key. It's possible to pass a 'predicted usage' to the authorize call. This can serve two purposes:

1) To make sure an API call won't go over the limits before the call is made, if the usage of the call is known in advance. In this case, the estimated usage can be passed to the authorize call, and it will respond whether the actual API call is still within limit. And,

2) To limit the authorization only to a subset of metrics. If usage is passed in, only the metrics listed in it will be checked against the limits. For example: There are two metrics defined: searches and updates. updates are already over limit, but searches are not. In this case, the user should still be allowed to do a search call, but not an update one.

Note: Even if the predicted usage is passed in, authorize is still a read-only operation. You have to make the report call to report the usage.

The response can have an http response code: 200 OK (if authorization is granted), 409 (if it's not granted, typically application over limits or keys missing, check 'reason' tag), or 403 (for authentication errors, check 'error' tag) and 404 (not found).", - "group": "authorize", - "parameters": [ - { - "name": "service_token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_tokens", - "description": "Your service api key with 3scale (also known as service token)." - }, - { - "name": "service_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_ids", - "description": "Service id. Required." - }, - { - "name": "app_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "app_ids", - "description": "App Id (identifier of the application if the auth. pattern is App Id)" - }, - { - "name": "app_key", - "dataType": "string", - "required": false, - "paramType": "query", - "threescale_name": "app_keys", - "description": "App Key (shared secret of the application if the authentication pattern is App Id). The app key is required if the application has one or more keys defined." - }, - { - "name": "referrer", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed." - }, - { - "name": "usage", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.", - "parameters": [ - { - "name": "metric", - "dataType": "custom", - "required": false, - "paramType": "query", - "allowMultiple": true, - "threescale_name": "metric_names", - "description": "Metric to be reported" - } - ] + "url": "/" + } + ], + "paths": { + "/transactions/oauth_authorize.xml": { + "get": { + "summary": "Authorize (OAuth authentication mode pattern)", + "operationId": "oauth_authorize", + "parameters": [ + { + "name": "service_token", + "in": "query", + "description": "Your service api key with 3scale (also known as service token).", + "required": true, + "schema": { + "type": "string" } - ] - } - ] - }, - { - "path": "/transactions/authorize.xml", - "format": "xml", - "operations": [ - { - "httpMethod": "GET", - "tags": [ - "authorize", - "user_key" - ], - "nickname": "authorize_user_key", - "deprecated": false, - "summary": "Authorize (API Key authentication pattern)", - "description": "Read-only operation to authorize an application in the App Key authentication pattern.

It is used to check if a particular application exists, is active and is within its usage limits. It can be optionally used to authenticate a call using an application key. It's possible to pass a 'predicted usage' to the authorize call. This can serve two purposes:

1) To make sure an API call won't go over the limits before the call is made, if the usage of the call is known in advance. In this case, the estimated usage can be passed to the authorize call, and it will respond whether the actual API call is still within limit. And,

2) To limit the authorization only to a subset of metrics. If usage is passed in, only the metrics listed in it will be checked against the limits. For example: There are two metrics defined: searches and updates. updates are already over limit, but searches are not. In this case, the user should still be allowed to do a search call, but not an update one.

Note: Even if the predicted usage is passed in, authorize is still a read-only operation. You have to make the report call to report the usage.

The response can have an http response code: 200 OK (if authorization is granted), 409 (if it's not granted, typically application over limits or keys missing, check 'reason' tag), or 403 (for authentication errors, check 'error' tag) and 404 (not found).", - "group": "authorize", - "parameters": [ - { - "name": "service_token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_tokens", - "description": "Your service api key with 3scale (also known as service token)." - }, - { - "name": "service_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_ids", - "description": "Service id. Required." - }, - { - "name": "user_key", - "dataType": "string", - "required": true, - "paramType": "query", - "theescale_name": "user_keys", - "description": "User Key (identifier and shared secret of the application if the auth. pattern is Api Key)" - }, - { - "name": "referrer", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed." - }, - { - "name": "usage", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.", - "parameters": [ - { - "name": "metric", - "dataType": "custom", - "required": false, - "paramType": "query", - "allowMultiple": true, - "threescale_name": "metric_names", - "description": "Metric to be reported" - } - ] + }, + { + "name": "service_id", + "in": "query", + "description": "Service id. Required.", + "required": true, + "schema": { + "type": "string" } - ] - } - ] - }, - { - "path": "/transactions/oauth_authorize.xml", - "format": "xml", - "operations": [ - { - "httpMethod": "GET", - "tags": [ - "authorize", - "user_key" - ], - "nickname": "oauth_authorize", - "deprecated": false, - "summary": "Authorize (OAuth authentication mode pattern)", - "description": "

Read-only operation to authorize an application in the OAuth authentication pattern.

This calls returns extra data (secret and redirect_url) needed to power OAuth APIs. It's only available for users with OAuth enabled APIs.

It is used to check if a particular application exists, is active and is within its usage limits. It can be optionally used to authenticate a call using an application key. It's possible to pass a 'predicted usage' to the authorize call. This can serve two purposes:

1) To make sure an API call won't go over the limits before the call is made, if the usage of the call is known in advance. In this case, the estimated usage can be passed to the authorize call, and it will respond whether the actual API call is still within limit. And,

2) To limit the authorization only to a subset of metrics. If usage is passed in, only the metrics listed in it will be checked against the limits. For example: There are two metrics defined: searches and updates. updates are already over limit, but searches are not. In this case, the user should still be allowed to do a search call, but not an update one.

Note: Even if the predicted usage is passed in, authorize is still a read-only operation. You have to make the report call to report the usage.

The response can have an http response code: 200 OK (if authorization is granted), 409 (if it's not granted, typically application over limits or keys missing, check 'reason' tag), or 403 (for authentication errors, check 'error' tag) and 404 (not found).", - "group": "authorize", - "parameters": [ - { - "name": "service_token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_tokens", - "description": "Your service api key with 3scale (also known as service token)." - }, - { - "name": "service_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_ids", - "description": "Service id. Required." - }, - { - "name": "access_token", - "dataType": "string", - "required": false, - "paramType": "query", - "threescale_name": "access_tokens", - "description": "OAuth token used for authorizing if you don't use client_id with client_secret." - }, - { - "name": "app_id", - "dataType": "string", - "required": false, - "paramType": "query", - "threescale_name": "app_ids", - "description": "Client Id (identifier of the application if the auth. pattern is OAuth, note that client_id == app_id)" - }, - { - "name": "referrer", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed." - }, - { - "name": "usage", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.", - "parameters": [ - { - "name": "metric", - "dataType": "custom", - "required": false, - "paramType": "query", - "allowMultiple": true, - "threescale_name": "metric_names", - "description": "Metric to be reported" - } - ] - }, - { - "name": "redirect_url", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Optional redirect URL for OAuth. Will be validated if sent." - }, - { - "name": "redirect_uri", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Optional redirect URI for OAuth. This is the same as 'redirect_url', but if used you should expect a matching 'redirect_uri' response field." + }, + { + "name": "access_token", + "in": "query", + "description": "OAuth token used for authorizing if you don't use client_id with client_secret.", + "schema": { + "type": "string" } - ] - } - ] - }, - { - "path": "/transactions/authrep.xml", - "format": "xml", - "operations": [ - { - "httpMethod": "GET", - "summary": "AuthRep (Authorize + Report for the App Id authentication pattern)", - "description": "

Authrep is a 'one-shot' operation to authorize an application and report the associated transaction at the same time.

The main difference between this call and the regular authorize call is that usage will be reported if the authorization is successful. Authrep is the most convenient way to integrate your API with the 3scale's Service Manangement API since it does a 1:1 mapping between a request to your API and a request to 3scale's API.

If you do not want to do a request to 3scale for each request to your API or batch the reports you should use the Authorize and Report methods instead.

Authrep is not a read-only operation and will increment the values if the authorization step is a success.", - "group": "authrep", - "parameters": [ - { - "name": "service_token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_tokens", - "description": "Your service api key with 3scale (also known as service token)." - }, - { - "name": "service_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_ids", - "description": "Service id. Required." - }, - { - "name": "app_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "app_ids", - "description": "App Id (identifier of the application if the auth. pattern is App Id)" - }, - { - "name": "app_key", - "dataType": "string", - "required": false, - "paramType": "query", - "threescale_name": "app_keys", - "description": "App Key (shared secret of the application if the authentication pattern is App Id). The app key is required if the application has one or more keys defined." - }, - { - "name": "referrer", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed." - }, - { - "name": "usage", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", - "parameters": [ - { - "name": "metric", - "dataType": "custom", - "required": false, - "paramType": "query", - "allowMultiple": true, - "threescale_name": "metric_names", - "description": "Metric to be reported" - } - ] - }, - { - "name": "log", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Request Log allows to log the requests/responses/status_codes of your API back to 3scale to maintain a log of the latest activity on your API. Request Logs are optional and not available in all 3scale plans.", - "parameters": [ - { - "name": "request", - "dataType": "string", - "paramType": "query", - "description_inline": true, - "description": "Body of the request to your API (needs to be URL encoded). Mandatory if log is not empty. Truncated after 1KB." - }, - { - "name": "response", - "dataType": "string", - "paramType": "query", - "description_inline": true, - "description": "Body of the response from your API (needs to be URL encoded). Optional. Truncated after 4KB." - }, - { - "name": "code", - "dataType": "string", - "paramType": "query", - "description_inline": true, - "description": "Response code of the response from your API (needs to be URL encoded). Optional. Truncated after 32bytes." - } - ] + }, + { + "name": "app_id", + "in": "query", + "description": "Client Id (identifier of the application if the auth. pattern is OAuth, note that client_id == app_id)", + "schema": { + "type": "string" } - ] - } - ] - }, - { - "path": "/transactions/authrep.xml", - "format": "xml", - "operations": [ - { - "httpMethod": "GET", - "summary": "AuthRep (Authorize + Report for the API Key authentication pattern)", - "description": "

Authrep is a 'one-shot' operation to authorize an application and report the associated transaction at the same time.

The main difference between this call and the regular authorize call is that usage will be reported if the authorization is successful. Authrep is the most convenient way to integrate your API with the 3scale's Service Manangement API since it does a 1:1 mapping between a request to your API and a request to 3scale's API.

If you do not want to do a request to 3scale for each request to your API or batch the reports you should use the Authorize and Report methods instead.

Authrep is not a read-only operation and will increment the values if the authorization step is a success.", - "group": "authrep", - "parameters": [ - { - "name": "service_token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_tokens", - "description": "Your service api key with 3scale (also known as service token)." - }, - { - "name": "service_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_ids", - "description": "Service id. Required." - }, - { - "name": "user_key", - "dataType": "string", - "required": true, - "paramType": "query", - "theescale_name": "user_keys", - "description": "User Key (identifier and shared secret of the application if the auth. pattern is Api Key)" - }, - { - "name": "referrer", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed." - }, - { - "name": "usage", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", - "parameters": [ - { - "name": "metric", - "dataType": "custom", - "required": false, - "paramType": "query", - "allowMultiple": true, - "threescale_name": "metric_names", - "description": "Metric to be reported" - } - ] - }, - { - "name": "log", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Request Log allows to log the requests/responses/status_codes of your API back to 3scale to maintain a log of the latest activity on your API. Request Logs are optional and not available in all 3scale plans.", - "parameters": [ - { - "name": "request", - "dataType": "string", - "paramType": "query", - "description_inline": true, - "description": "Body of the request to your API (needs to be URL encoded). Mandatory if log is not empty. Truncated after 1KB." - }, - { - "name": "response", - "dataType": "string", - "paramType": "query", - "description_inline": true, - "description": "Body of the response from your API (needs to be URL encoded). Optional. Truncated after 4KB." - }, - { - "name": "code", - "dataType": "string", - "paramType": "query", - "description_inline": true, - "description": "Response code of the response from your API (needs to be URL encoded). Optional. Truncated after 32bytes." - } - ] + }, + { + "name": "referrer", + "in": "query", + "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed.", + "schema": { + "type": "string" + } + }, + { + "name": "usage", + "in": "query", + "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.", + "schema": { + "type": "ref" + } + }, + { + "name": "redirect_url", + "in": "query", + "description": "Optional redirect URL for OAuth. Will be validated if sent.", + "schema": { + "type": "string" } - ] + }, + { + "name": "redirect_uri", + "in": "query", + "description": "Optional redirect URI for OAuth. This is the same as 'redirect_url', but if used you should expect a matching 'redirect_uri' response field.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } }, - { - "path": "/transactions/oauth_authrep.xml", - "format": "xml", - "operations": [ - { - "httpMethod": "GET", - "nickname": "oauth_authrep", - "deprecated": false, - "summary": "AuthRep (OAuth authentication mode pattern)", - "description": "

Authrep is a 'one-shot' operation to authorize an application and report the associated transaction at the same time in the OAuth authentication pattern.

The main difference between this call and the regular authorize call is that usage will be reported if the authorization is successful. Authrep is the most convenient way to integrate your API with the 3scale's Service Manangement API since it does a 1:1 mapping between a request to your API and a request to 3scale's API.

If you do not want to do a request to 3scale for each request to your API or batch the reports you should use the Authorize and Report methods instead.

Authrep is not a read-only operation and will increment the values if the authorization step is a success.

This calls returns extra data (secret and redirect_url) needed to power OAuth APIs. It's only available for users with OAuth enabled APIs.", - "group": "authrep", - "parameters": [ - { - "name": "service_token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_tokens", - "description": "Your service api key with 3scale (also known as service token)." - }, - { - "name": "service_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_ids", - "description": "Service id. Required." - }, - { - "name": "access_token", - "dataType": "string", - "required": false, - "paramType": "query", - "threescale_name": "access_tokens", - "description": "OAuth token used for authorizing if you don't use client_id with client_secret." - }, - { - "name": "app_id", - "dataType": "string", - "required": false, - "paramType": "query", - "threescale_name": "app_ids", - "description": "Client Id (identifier of the application if the auth. pattern is OAuth, note that client_id == app_id)" - }, - { - "name": "referrer", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed." - }, - { - "name": "usage", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", - "parameters": [ - { - "name": "metric", - "dataType": "custom", - "required": false, - "paramType": "query", - "allowMultiple": true, - "threescale_name": "metric_names", - "description": "Metric to be reported" - } - ] - }, - { - "name": "log", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Request Log allows to log the requests/responses/status_codes of your API back to 3scale to maintain a log of the latest activity on your API. Request Logs are optional and not available in all 3scale plans.", - "parameters": [ - { - "name": "request", - "dataType": "string", - "paramType": "query", - "description_inline": true, - "description": "Body of the request to your API (needs to be URL encoded). Mandatory if log is not empty. Truncated after 1KB." - }, - { - "name": "response", - "dataType": "string", - "paramType": "query", - "description_inline": true, - "description": "Body of the response from your API (needs to be URL encoded). Optional. Truncated after 4KB." - }, - { - "name": "code", - "dataType": "string", - "paramType": "query", - "description_inline": true, - "description": "Response code of the response from your API (needs to be URL encoded). Optional. Truncated after 32bytes." - } - ] - }, - { - "name": "redirect_url", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Optional redirect URL for OAuth. Will be validated if sent." - }, - { - "name": "redirect_uri", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Optional redirect URI for OAuth. This is the same as 'redirect_url', but if used you should expect a matching 'redirect_uri' response field." + "/transactions/authrep.xml": { + "get": { + "summary": "AuthRep (Authorize + Report for the API Key authentication pattern)", + "parameters": [ + { + "name": "service_token", + "in": "query", + "description": "Your service api key with 3scale (also known as service token).", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "query", + "description": "Service id. Required.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "user_key", + "in": "query", + "description": "User Key (identifier and shared secret of the application if the auth. pattern is Api Key)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "referrer", + "in": "query", + "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed.", + "schema": { + "type": "string" } - ] + }, + { + "name": "usage", + "in": "query", + "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", + "schema": { + "type": "ref" + } + }, + { + "name": "log", + "in": "query", + "description": "Request Log allows to log the requests/responses/status_codes of your API back to 3scale to maintain a log of the latest activity on your API. Request Logs are optional and not available in all 3scale plans.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } }, - { - "path": "/transactions.xml", - "format": "xml", - "operations": [ - { - "httpMethod": "POST", - "summary": "Report (App Id authentication pattern)", - "description": "

Report the transactions to 3scale backend.

This operation updates the metrics passed in the usage parameter. You can send up to 1K transactions in a single POST request. Transactions are processed asynchronously by the 3scale's backend.

Transactions from a single batch are reported only if all of them are valid. If there is an error in processing of at least one of them, none is reported.

Note that a batch can only report transactions to the same service, service_id is at the same level that service_token. Multiple report calls will have to be issued to report transactions to different services.

Be aware that reporting metrics that are limited at the time of reporting will have no effect.

Supported Content-Type values for this POST call are: application/x-www-form-urlencoded.", - "group": "report", - "parameters": [ - { - "name": "service_token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_tokens", - "description": "Your service api key with 3scale (also known as service token)." - }, - { - "name": "service_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_ids", - "description": "Service id. Required." - }, - { - "name": "transactions", - "dataType": "array", - "required": true, - "paramType": "query", - "allowMultiple": true, - "description": "Transactions to be reported. There is a limit of 1000 transactions to be reported on a single request.", - "parameters": [ - { - "name": "app_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "app_ids", - "description": "App Id (identifier of the application if the auth. pattern is App Id)", - "description_inline": true - }, - { - "name": "timestamp", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "If passed, it should be the time when the transaction took place. Format: YYYY-MM-DD HH:MM:SS for UTC, add -HH:MM or +HH:MM for time offset. For instance, 2011-12-30 22:15:31 -08:00", - "description_inline": true - }, - { - "name": "usage", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", - "parameters": [ - { - "name": "metric", - "dataType": "custom", - "required": false, - "paramType": "query", - "allowMultiple": true, - "threescale_name": "metric_names", - "description": "Metric to be reported" - } - ] - }, - { - "name": "log", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Request Log allows to log the requests/responses/status_codes of your API back to 3scale to maintain a log of the latest activity on your API. Request Logs are optional and not available in all 3scale plans.", - "parameters": [ - { - "name": "request", - "dataType": "string", - "paramType": "query", - "description_inline": true, - "description": "Body of the request to your API (needs to be URL encoded). Mandatory if log is not empty. Truncated after 1KB." - }, - { - "name": "response", - "dataType": "string", - "paramType": "query", - "description_inline": true, - "description": "Body of the response from your API (needs to be URL encoded). Optional. Truncated after 4KB." - }, - { - "name": "code", - "dataType": "string", - "paramType": "query", - "description_inline": true, - "description": "Response code of the response from your API (needs to be URL encoded). Optional. Truncated after 32bytes." - } - ] - } - ] + "/transactions/oauth_authrep.xml": { + "get": { + "summary": "AuthRep (OAuth authentication mode pattern)", + "operationId": "oauth_authrep", + "parameters": [ + { + "name": "service_token", + "in": "query", + "description": "Your service api key with 3scale (also known as service token).", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "query", + "description": "Service id. Required.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "access_token", + "in": "query", + "description": "OAuth token used for authorizing if you don't use client_id with client_secret.", + "schema": { + "type": "string" + } + }, + { + "name": "app_id", + "in": "query", + "description": "Client Id (identifier of the application if the auth. pattern is OAuth, note that client_id == app_id)", + "schema": { + "type": "string" + } + }, + { + "name": "referrer", + "in": "query", + "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed.", + "schema": { + "type": "string" + } + }, + { + "name": "usage", + "in": "query", + "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", + "schema": { + "type": "ref" + } + }, + { + "name": "log", + "in": "query", + "description": "Request Log allows to log the requests/responses/status_codes of your API back to 3scale to maintain a log of the latest activity on your API. Request Logs are optional and not available in all 3scale plans.", + "schema": { + "type": "ref" + } + }, + { + "name": "redirect_url", + "in": "query", + "description": "Optional redirect URL for OAuth. Will be validated if sent.", + "schema": { + "type": "string" } - ] + }, + { + "name": "redirect_uri", + "in": "query", + "description": "Optional redirect URI for OAuth. This is the same as 'redirect_url', but if used you should expect a matching 'redirect_uri' response field.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } }, - { - "path": "/transactions.xml", - "format": "xml", - "operations": [ - { - "httpMethod": "POST", - "summary": "Report (API Key authentication pattern)", - "description": "

Report the transactions to 3scale backend.

This operation updates the metrics passed in the usage parameter. You can send up to 1K transactions in a single POST request. Transactions are processed asynchronously by the 3scale's backend.

Transactions from a single batch are reported only if all of them are valid. If there is an error in processing of at least one of them, none is reported.

Note that a batch can only report transactions to the same service, service_id is at the same level that service_token. Multiple report calls will have to be issued to report transactions to different services.

Be aware that reporting metrics that are limited at the time of reporting will have no effect.

Supported Content-Type values for this POST call are: application/x-www-form-urlencoded.", - "group": "report", - "parameters": [ - { - "name": "service_token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_tokens", - "description": "Your service api key with 3scale (also known as service token)." - }, - { - "name": "service_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_ids", - "description": "Service id. Required." - }, - { - "name": "transactions", - "dataType": "array", - "required": true, - "paramType": "query", - "allowMultiple": true, - "description": "Transactions to be reported. There is a limit of 1000 transactions to be reported on a single request.", - "parameters": [ - { - "name": "user_key", - "dataType": "string", - "required": true, - "paramType": "query", - "theescale_name": "user_keys", - "description": "User Key (identifier and shared secret of the application if the auth. pattern is Api Key)", - "description_inline": true - }, - { - "name": "timestamp", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "If passed, it should be the time when the transaction took place. Format: YYYY-MM-DD HH:MM:SS for UTC, add -HH:MM or +HH:MM for time offset. For instance, 2011-12-30 22:15:31 -08:00", - "description_inline": true - }, - { - "name": "usage", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", - "parameters": [ - { - "name": "metric", - "dataType": "custom", - "required": false, - "paramType": "query", - "allowMultiple": true, - "threescale_name": "metric_names", - "description": "Metric to be reported" - } - ] - }, - { - "name": "log", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Request Log allows to log the requests/responses/status_codes of your API back to 3scale to maintain a log of the latest activity on your API. Request Logs are optional and not available in all 3scale plans.", - "parameters": [ - { - "name": "request", - "dataType": "string", - "paramType": "query", - "description_inline": true, - "description": "Body of the request to your API (needs to be URL encoded). Mandatory if log is not empty. Truncated after 1KB." - }, - { - "name": "response", - "dataType": "string", - "paramType": "query", - "description_inline": true, - "description": "Body of the response from your API (needs to be URL encoded). Optional. Truncated after 4KB." - }, - { - "name": "code", - "dataType": "string", - "paramType": "query", - "description_inline": true, - "description": "Response code of the response from your API (needs to be URL encoded). Optional. Truncated after 32bytes." - } - ] - } - ] + "/transactions/authorize.xml": { + "get": { + "summary": "Authorize (API Key authentication pattern)", + "operationId": "authorize_user_key", + "parameters": [ + { + "name": "service_token", + "in": "query", + "description": "Your service api key with 3scale (also known as service token).", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "query", + "description": "Service id. Required.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "user_key", + "in": "query", + "description": "User Key (identifier and shared secret of the application if the auth. pattern is Api Key)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "referrer", + "in": "query", + "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed.", + "schema": { + "type": "string" } - ] + }, + { + "name": "usage", + "in": "query", + "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } }, - { - "path": "/transactions.xml", - "format": "xml", - "operations": [ - { - "httpMethod": "POST", - "summary": "Report (OAuth authentication pattern)", - "description": "

Report the transactions to 3scale backend.

This operation updates the metrics passed in the usage parameter. You can send up to 1K transactions in a single POST request. Transactions are processed asynchronously by the 3scale's backend.

Transactions from a single batch are reported only if all of them are valid. If there is an error in processing of at least one of them, none is reported.

Note that a batch can only report transactions to the same service, service_id is at the same level that service_token. Multiple report calls will have to be issued to report transactions to different services.

Be aware that reporting metrics that are limited at the time of reporting will have no effect.

Supported Content-Type values for this POST call are: application/x-www-form-urlencoded.", - "group": "report", - "parameters": [ - { - "name": "service_token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_tokens", - "description": "Your service api key with 3scale (also known as service token)." - }, - { - "name": "service_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_ids", - "description": "Service id. Required." - }, - { - "name": "transactions", - "dataType": "array", - "required": true, - "paramType": "query", - "allowMultiple": true, - "description": "Transactions to be reported. There is a limit of 1000 transactions to be reported on a single request.", - "parameters": [ - { - "name": "app_id", - "dataType": "string", - "required": false, - "paramType": "query", - "threescale_name": "app_ids", - "description": "Client Id (identifier of the application if the auth. pattern is OAuth, note that client_id == app_id)", - "description_inline": true - }, - { - "name": "timestamp", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "If passed, it should be the time when the transaction took place. Format: YYYY-MM-DD HH:MM:SS for UTC, add -HH:MM or +HH:MM for time offset. For instance, 2011-12-30 22:15:31 -08:00", - "description_inline": true - }, - { - "name": "usage", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", - "parameters": [ - { - "name": "metric", - "dataType": "custom", - "required": false, - "paramType": "query", - "allowMultiple": true, - "threescale_name": "metric_names", - "description": "Metric to be reported" - } - ] - }, - { - "name": "log", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Request Log allows to log the requests/responses/status_codes of your API back to 3scale to maintain a log of the latest activity on your API. Request Logs are optional and not available in all 3scale plans.", - "parameters": [ - { - "name": "request", - "dataType": "string", - "paramType": "query", - "description_inline": true, - "description": "Body of the request to your API (needs to be URL encoded). Mandatory if log is not empty. Truncated after 1KB." - }, - { - "name": "response", - "dataType": "string", - "paramType": "query", - "description_inline": true, - "description": "Body of the response from your API (needs to be URL encoded). Optional. Truncated after 4KB." - }, - { - "name": "code", - "dataType": "string", - "paramType": "query", - "description_inline": true, - "description": "Response code of the response from your API (needs to be URL encoded). Optional. Truncated after 32bytes." - } - ] - } - ] + "/transactions.xml": { + "post": { + "summary": "Report (OAuth authentication pattern)", + "parameters": [ + { + "name": "service_token", + "in": "query", + "description": "Your service api key with 3scale (also known as service token).", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "query", + "description": "Service id. Required.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "transactions", + "in": "query", + "description": "Transactions to be reported. There is a limit of 1000 transactions to be reported on a single request.", + "required": true, + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } } - ] + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } } - ] -} + }, + "components": {} +} \ No newline at end of file diff --git a/doc/active_docs/accounts-s20.json b/doc/active_docs/accounts-s20.json index 53806a3e68..fb8d86ec15 100644 --- a/doc/active_docs/accounts-s20.json +++ b/doc/active_docs/accounts-s20.json @@ -1,4841 +1,9742 @@ - { - "host": "example.com", - "basePath": "/", - "schemes": [ - "https" - ], - "swagger": "2.0", + "openapi": "3.0.1", "info": { - "title": "Account Management API", "version": "1.0" }, + "servers": [ + { + "url": "/" + } + ], "paths": { - "/admin/api/features.xml": { + "/admin/api/services/{service_id}/features.xml": { "get": { - "operationId": "account_feature_list", - "summary": "Account Feature List", - "description": "Returns the list of the features available to accounts. Account features are globally scoped.", - "tags": [ - "Account Features" - ], + "summary": "Service Feature List", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, "post": { - "operationId": "account_feature_create", - "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.", - "tags": [ - "Account Features" - ], + "summary": "Service Feature Create", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "name", "in": "query", "description": "Name of the feature.", - "name": "name", "required": true, - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "query", - "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.", "name": "system_name", - "type": "string" + "in": "query", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the feature.", + "schema": { + "type": "ref" + } + }, + { + "name": "scope", + "in": "query", + "description": "Type of plan that the feature will be available for.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "enum": [ + "ApplicationPlan", + "ServicePlan" + ] + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/features/{id}.xml": { + "/admin/api/backend_apis/{backend_api_id}/mapping_rules/{id}.json": { "get": { - "operationId": "account_feature_read", - "summary": "Account Feature Read", - "description": "Returns an account feature.", - "tags": [ - "Account Features" - ], + "summary": "Backend Mapping Rules Read", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "backend_api_id", "in": "path", - "description": "id of the feature.", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { "name": "id", + "in": "path", + "description": "Mapping Rule ID.", "required": true, - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, "put": { - "operationId": "account_feature_update", - "summary": "Account Feature Update", - "description": "Updates an account feature.", - "tags": [ - "Account Features" - ], + "summary": "Backend Mapping Rule Update", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "backend_api_id", "in": "path", - "description": "id of the feature.", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { "name": "id", + "in": "path", + "description": "Mapping Rule ID.", "required": true, - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "http_method", "in": "query", - "description": "Name of the feature.", - "name": "name", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "No response was specified" - } - } - }, - "delete": { - "operationId": "account_feature_delete", - "summary": "Account Feature Delete", - "description": "Deletes an account feature.", - "tags": [ - "Account Features" - ], - "parameters": [ + "description": "HTTP method.", + "schema": { + "type": "string" + } + }, { + "name": "pattern", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", - "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "description": "Mapping Rule pattern.", + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the feature.", - "name": "id", - "required": true, - "type": "integer" - } - ], - "responses": { - "200": { - "description": "No response was specified" - } - } - } - }, - "/admin/api/account_plans/{account_plan_id}/features.xml": { - "get": { - "operationId": "account_plan_feature_list", - "summary": "Account Plan Feature List", - "description": "Returns the list of the features associated to an account plan.", - "tags": [ - "Account Plan Features" - ], - "parameters": [ + "name": "delta", + "in": "query", + "description": "Increase the metric by this delta.", + "schema": { + "type": "integer", + "format": "int32" + } + }, { + "name": "metric_id", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", - "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "description": "Metric ID.", + "schema": { + "type": "integer", + "format": "int32" + } }, { - "in": "path", - "description": "id of the account plan.", - "name": "account_plan_id", - "required": true, - "x-data-threescale-name": "account_plan_ids", - "type": "integer" + "name": "position", + "in": "query", + "description": "Mapping Rule position", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "last", + "in": "query", + "description": "Last matched Mapping Rule to process", + "schema": { + "type": "ref" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } - } - }, - "/admin/api/account_plans/{account_plan_id}/features/{id}.xml": { - "post": { - "operationId": "account_plan_feature_create", - "summary": "Account Plan Features Create", - "description": "Associate an account feature to an account plan.", - "tags": [ - "Account Plan Features" - ], + }, + "delete": { + "summary": "Backend Mapping Rule Delete", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "backend_api_id", "in": "path", - "description": "id of the account plan.", - "name": "account_plan_id", + "description": "ID of the Backend.", "required": true, - "x-data-threescale-name": "account_plan_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { - "in": "path", - "description": "id of the feature.", "name": "id", + "in": "path", + "description": "Mapping Rule ID.", "required": true, - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } - }, + } + }, + "/admin/api/application_plans/{application_plan_id}/features/{id}.xml": { "delete": { - "operationId": "account_plan_feature_delete", - "summary": "Account Plan Features Delete", - "description": "Deletes the association of an account feature to an account plan.", - "tags": [ - "Account Plan Features" - ], + "summary": "Application Plan Feature Delete", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "application_plan_id", "in": "path", - "description": "id of the account plan.", - "name": "account_plan_id", + "description": "ID of the application plan.", "required": true, - "x-data-threescale-name": "account_plan_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { - "in": "path", - "description": "id of the feature.", "name": "id", + "in": "path", + "description": "ID of the feature.", "required": true, - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/account_plans.xml": { + "/admin/api/personal/access_tokens/{id}.json": { "get": { - "operationId": "account_plan_list", - "summary": "Account Plan List", - "description": "Returns the list of all available account plans.", - "tags": [ - "Account Plans" - ], + "summary": "Personal Access Token Read", "parameters": [ { + "name": "id", + "in": "path", + "description": "ID or value of the access token.", + "required": true, + "schema": { + "type": "ref" + } + }, + { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, - "post": { - "operationId": "account_plan_create", - "summary": "Account Plan Create", - "description": "Creates an account plan.", - "tags": [ - "Account Plans" - ], + "delete": { + "summary": "Personal Access Token Delete", "parameters": [ { - "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "name": "id", + "in": "path", + "description": "ID or value of the access token.", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "ref" + } }, { + "name": "access_token", "in": "query", - "description": "Name of the account plan.", - "name": "name", + "description": "A personal Access Token", "required": true, - "type": "string" - }, - { - "in": "query", - "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.", - "name": "system_name", - "type": "string" + "schema": { + "type": "string" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/account_plans/{id}.xml": { - "get": { - "operationId": "account_plan_read", - "summary": "Account Plan Read", - "description": "Returns the account plan by id.", - "tags": [ - "Account Plans" - ], + "/admin/api/users/{id}/admin.xml": { + "put": { + "summary": "User Change Role to Admin (provider account)", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the account plan.", "name": "id", + "in": "path", + "description": "ID of the user.", "required": true, - "x-data-threescale-name": "account_plan_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } - }, - "put": { - "operationId": "account_plan_update", - "summary": "Account Plan Update", - "description": "Updates an account plan.", - "tags": [ - "Account Plans" - ], + } + }, + "/admin/api/users/{user_id}/access_tokens.json": { + "post": { + "summary": "Access Token Create", "parameters": [ { - "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "name": "user_id", + "in": "path", + "description": "ID of the user.", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "ref" + } }, { - "in": "path", - "description": "id of the account plan.", - "name": "id", + "name": "name", + "in": "query", + "description": "Name of the access token.", "required": true, - "x-data-threescale-name": "account_plan_ids", - "type": "integer" + "schema": { + "type": "string" + } }, { + "name": "permission", "in": "query", - "description": "Name of the account plan.", - "name": "name", + "description": "Permission of the access token. It must be either 'ro' (read only) or 'rw' (read and write).", "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "No response was specified" - } - } - }, - "delete": { - "operationId": "account_plan_delete", - "summary": "Account Plan Delete", - "description": "Deletes and account plan.", - "tags": [ - "Account Plans" - ], - "parameters": [ + "schema": { + "type": "string" + } + }, { + "name": "scopes", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "Scope of the access token. URL-encoded array containing one or more of the possible values. The possible values are, for a master user [\"account_management\", \"stats\"], and for a tenant user [\"finance\", \"account_management\", \"stats\"]", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } }, { - "in": "path", - "description": "id of the account plan.", - "name": "id", + "name": "access_token", + "in": "query", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "account_plan_ids", - "type": "integer" + "schema": { + "type": "string" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/account_plans/{id}/default.xml": { + "/admin/api/accounts/{account_id}/users/{id}/unsuspend.xml": { "put": { - "operationId": "account_plan_set_to_default", - "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.", - "tags": [ - "Account Plans" - ], + "summary": "User Unsuspend", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "account_id", "in": "path", - "description": "id of the account plan.", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { "name": "id", + "in": "path", + "description": "ID of the user.", "required": true, - "x-data-threescale-name": "account_plan_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/accounts.xml": { - "get": { - "operationId": "account_list", - "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.", - "tags": [ - "Accounts" - ], + "/admin/api/accounts/{id}/credit_card.xml": { + "put": { + "summary": "Account Set Credit Card", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "query", - "description": "Account state. ", - "name": "state", - "required": false, - "type": "string" + "name": "id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "credit_card_token", "in": "query", - "description": "Page in the paginated list. Defaults to 1.", - "name": "page", - "type": "integer", - "default": 1 + "description": "Token used by the payment gateway to identify the buyer, customer profile ID (Authorize.net), customer ID (Braintree and Stripe), customer alias (Ogone-Ingenico). Some payment gateways may store more than one card under the same buyer reference and/or require an additional identifier for recurring payment. If you are using Braintree, there is no need for additional identifier -- the first credit card available will always be charged. For Authorize.net, see `credit_card_authorize_net_payment_profile_token`.", + "required": true, + "schema": { + "type": "string" + } }, { + "name": "credit_card_authorize_net_payment_profile_token", "in": "query", - "description": "Number of results per page. Default and max is 500.", + "description": "Additional reference provided by the payment gateway to identify a specific card under the same buyer reference. For Authorize.net, you MUST fill with the 'Payment profile token'", + "schema": { + "type": "string" + } + }, + { + "name": "credit_card_expiration_year", + "in": "query", + "description": "Year of expiration of credit card. Two digit number", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "credit_card_expiration_month", + "in": "query", + "description": "Month of expiration of credit card. Two digit number", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "billing_address_name", + "in": "query", + "description": "Name of the person/company to bill", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "billing_address_address", + "in": "query", + "description": "Address associated to the credit card", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "billing_address_city", + "in": "query", + "description": "Billing address city", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "billing_address_country", + "in": "query", + "description": "Billing address country", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "billing_address_state", + "in": "query", + "description": "Billing address state", + "schema": { + "type": "string" + } + }, + { + "name": "billing_address_phone", + "in": "query", + "description": "Billing address phone", + "schema": { + "type": "string" + } + }, + { + "name": "billing_address_zip", + "in": "query", + "description": "Billing address ZIP Code", + "schema": { + "type": "string" + } + }, + { + "name": "credit_card_partial_number", + "in": "query", + "description": "Last four digits on the credit card", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Account Delete Credit Card", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/limits/{id}.xml": { + "get": { + "summary": "Limit Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the limit.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Limit Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the limit.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "period", + "in": "query", + "description": "Period of the limit.", + "required": true, + "schema": { + "type": "string", + "default": "minute", + "enum": [ + "eternity", + "year", + "month", + "week", + "day", + "hour", + "minute" + ] + } + }, + { + "name": "value", + "in": "query", + "description": "Value of the limit.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Limit Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the limit.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts.xml": { + "get": { + "summary": "Account List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "state", + "in": "query", + "description": "Account state.", + "schema": { + "type": "string", + "enum": [ + "pending", + "approved", + "rejected" + ] + } + }, + { + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { "name": "per_page", - "type": "integer", - "default": 500 + "in": "query", + "description": "Number of results per page. Default and max is 500.", + "schema": { + "type": "integer", + "format": "int32", + "default": 500 + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{id}/reject.xml": { + "put": { + "summary": "Account Reject", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/account_plans/{id}/default.xml": { + "put": { + "summary": "Account Plan set to Default", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/webhooks/failures.xml": { + "get": { + "summary": "Webhooks List Failed Deliveries", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Webhooks Delete Failed Deliveries", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "time", + "in": "query", + "description": "Only failed webhook deliveries whose time is less than or equal to the passed time are destroyed (if used).", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/proxy/configs/{environment}/{version}.json": { + "get": { + "summary": "Proxy Config Show", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "environment", + "in": "path", + "description": "Gateway environment. Must be 'sandbox' or 'production'", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "version", + "in": "path", + "description": "Version of the Proxy config.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/webhooks.json": { + "put": { + "summary": "WebHooks Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "url", + "in": "query", + "description": "URL that will be notified about all the events", + "schema": { + "type": "string" + } + }, + { + "name": "active", + "in": "query", + "description": "Activate/Disable WebHooks", + "schema": { + "type": "boolean" + } + }, + { + "name": "provider_actions", + "in": "query", + "description": "Dashboard actions fire webhooks. If false, only user actions in the portal trigger events.", + "schema": { + "type": "boolean" + } + }, + { + "name": "account_created_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "account_updated_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "account_deleted_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "user_created_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "user_updated_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "user_deleted_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_created_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_updated_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_deleted_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "account_plan_changed_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_plan_changed_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_user_key_updated_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_key_created_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_key_deleted_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_suspended_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_key_updated_on", + "in": "query", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/proxy/configs/{environment}.json": { + "get": { + "summary": "Proxy Configs List (Service)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "environment", + "in": "path", + "description": "Gateway environment. Must be 'sandbox' or 'production'", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/users/{id}/suspend.xml": { + "put": { + "summary": "User Suspend (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{id}.xml": { + "get": { + "summary": "Service Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Service Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "New name for the service.", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "New description for the service.", + "schema": { + "type": "string" + } + }, + { + "name": "support_email", + "in": "query", + "description": "New support email.", + "schema": { + "type": "string" + } + }, + { + "name": "deployment_option", + "in": "query", + "description": "Deployment option for the gateway: 'hosted' for APIcast hosted, 'self_managed' for APIcast Self-managed, 'service_mesh_istio' for Istio service mesh option", + "schema": { + "type": "string" + } + }, + { + "name": "backend_version", + "in": "query", + "description": "Authentication mode: '1' for API key, '2' for App Id / App Key, 'oidc' for OpenID Connect", + "schema": { + "type": "string" + } + }, + { + "name": " ", + "in": "query", + "description": "Extra parameters", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Service Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{application_id}/referrer_filters/{id}.xml": { + "delete": { + "summary": "Application Referrer Filter Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "application_id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of referrer filter to be deleted.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/metrics/{metric_id}/methods/{id}.xml": { + "get": { + "summary": "Service Method Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the method.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Service Method Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the method.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "friendly_name", + "in": "query", + "description": "Name of the method.", + "schema": { + "type": "string" + } + }, + { + "name": "unit", + "in": "query", + "description": "Measure unit of the method.", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the method.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Service Method Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the method.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/settings.json": { + "get": { + "summary": "Settings Read", + "operationId": "service_metric", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Settings Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "useraccountarea_enabled", + "in": "query", + "description": "Allow the user to edit their submitted details, change passwords, etc", + "schema": { + "type": "boolean" + } + }, + { + "name": "hide_service", + "in": "query", + "description": "Used a default service plan", + "schema": { + "type": "boolean" + } + }, + { + "name": "signups_enabled", + "in": "query", + "description": "Developers are allowed sign up themselves.", + "schema": { + "type": "boolean" + } + }, + { + "name": "account_approval_required", + "in": "query", + "description": "Approval is required by you before developer accounts are activated.", + "schema": { + "type": "boolean" + } + }, + { + "name": "strong_passwords_enabled", + "in": "query", + "description": "Require strong passwords from your users: Password must be at least 8 characters long, and contain both upper and lowercase letters, a digit and one special character of -+=><_$#.:;!?@&*()~][}{|. Existing passwords will still work. ", + "schema": { + "type": "boolean" + } + }, + { + "name": "public_search", + "in": "query", + "description": "Enables public search on Developer Portal", + "schema": { + "type": "boolean" + } + }, + { + "name": "account_plans_ui_visible", + "in": "query", + "description": "Enables visibility of Account Plans", + "schema": { + "type": "boolean" + } + }, + { + "name": "change_account_plan_permission", + "in": "query", + "description": "Account Plans changing", + "schema": { + "type": "string" + } + }, + { + "name": "service_plans_ui_visible", + "in": "query", + "description": "Enables visibility of Service Plans", + "schema": { + "type": "boolean" + } + }, + { + "name": "change_service_plan_permission", + "in": "query", + "description": "Service Plans changing", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/backend_apis/{id}.json": { + "get": { + "summary": "Backend Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Backend Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the Backend", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the Backend", + "schema": { + "type": "string" + } + }, + { + "name": "private_endpoint", + "in": "query", + "description": "Private Base URL (your API)", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Backend Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/account_plans/{account_plan_id}/features/{id}.xml": { + "post": { + "summary": "Account Plan Features Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_plan_id", + "in": "path", + "description": "ID of the account plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Account Plan Features Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_plan_id", + "in": "path", + "description": "ID of the account plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/backend_apis/{backend_api_id}/metrics/{id}.json": { + "get": { + "summary": "Backend Metric Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Backend Metric Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "friendly_name", + "in": "query", + "description": "Name of the metric.", + "schema": { + "type": "string" + } + }, + { + "name": "unit", + "in": "query", + "description": "Measure unit of the metric.", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the metric.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Backend Metric Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/backend_usages/{id}.json": { + "get": { + "summary": "Backend Usage Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the Backend Usage.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Backend Usage Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the Backend Usage.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "path", + "in": "query", + "description": "Path of the Backend for this product.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Backend Usage Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the Backend Usage.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/users/{id}.xml": { + "get": { + "summary": "User Read (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "User Update (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "username", + "in": "query", + "description": "Username of the user.", + "schema": { + "type": "string" + } + }, + { + "name": "email", + "in": "query", + "description": "Email of the user.", + "schema": { + "type": "string" + } + }, + { + "name": "password", + "in": "query", + "description": "Password of the user.", + "schema": { + "type": "string" + } + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). Additional fields are the custom fields declared for your tenant, you can find them in 'Settings >> Personal Details' for the account and in 'Settings >> Account >> Users >> Personal Details' for users. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "User Delete (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/fields_definitions/{id}.json": { + "get": { + "summary": "Fields Definition Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the fields definition.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Fields Definition Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the fields definition.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "target", + "in": "query", + "description": "Target entity of fields definition.", + "required": true, + "schema": { + "type": "string", + "default": "account", + "enum": [ + "Account", + "User", + "Cinstance" + ] + } + }, + { + "name": "label", + "in": "query", + "description": "The field title your developers will see.", + "schema": { + "type": "string" + } + }, + { + "name": "required", + "in": "query", + "description": "If 'true' the field will be required for developers.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hidden", + "in": "query", + "description": "If 'true' the developers won't be able to see this field.", + "schema": { + "type": "boolean" + } + }, + { + "name": "read_only", + "in": "query", + "description": "If 'true' the developers won't be able to change this field.", + "schema": { + "type": "boolean" + } + }, + { + "name": "position", + "in": "query", + "description": "Position of the fields definition.", + "schema": { + "type": "ref" + } + }, + { + "name": "choices", + "in": "query", + "description": "The list of predefined options for this field, URL-encoded array.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Fields Definition Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the fields definition.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/application_plans/{application_plan_id}/limits.xml": { + "get": { + "summary": "Limits List per Application Plan", + "operationId": "plan_limits", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 50.", + "schema": { + "type": "integer", + "format": "int32", + "default": 50 + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{id}/accept.xml": { + "put": { + "summary": "Application Accept", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/users/{id}/permissions.xml": { + "get": { + "summary": "User Permissions Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "User Permissions Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "allowed_service_ids", + "in": "query", + "description": "IDs of the services that need to be enabled, URL-encoded array. To disable all services, set the value to '[]'. To enable all services, add parameter 'allowed_service_ids[]' with no value to the 'curl' command (can't be done in ActiveDocs)", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + }, + { + "name": "allowed_sections", + "in": "query", + "description": "The list of sections in the admin portal that the user can access, URL-encoded array. Possible values: 'portal' (Developer Portal), 'finance' (Billing), 'settings', 'partners' (Accounts -- Applications), 'monitoring' (Analytics), 'plans' (Integration & Application Plans), 'policy_registry'. To disable all sections, set the value to '[]'.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/messages.xml": { + "post": { + "summary": "Account Message", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "body", + "in": "query", + "description": "Text to send", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "subject", + "in": "query", + "description": "Subject of the message", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/proxy/configs/{environment}/latest.json": { + "get": { + "summary": "Proxy Config Show Latest", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "environment", + "in": "path", + "description": "Gateway environment. Must be 'sandbox' or 'production'", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/users.xml": { + "get": { + "summary": "User List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "state", + "in": "query", + "description": "Filter users by State.", + "schema": { + "type": "string", + "enum": [ + "pending", + "suspended", + "active" + ] + } + }, + { + "name": "role", + "in": "query", + "description": "Filter users by Role.", + "schema": { + "type": "string", + "enum": [ + "member", + "admin" + ] + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "User Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "username", + "in": "query", + "description": "Username of the user.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "email", + "in": "query", + "description": "Email of the user.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "password", + "in": "query", + "description": "Password of the user.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/objects/status.json": { + "get": { + "summary": "Object deletion status for objects that are deleted asynchronously", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "object_type", + "in": "query", + "description": "Object type has to be service, account, proxy or backend_api.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "object_id", + "in": "query", + "description": "Object ID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/service_contracts.xml": { + "get": { + "summary": "Service Subscription List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/users/{id}/member.xml": { + "put": { + "summary": "User Change Role to Member", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/backend_apis/{backend_api_id}/metrics/{metric_id}/methods/{id}.json": { + "get": { + "summary": "Backend Method Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the method.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Backend Method Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the method.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "friendly_name", + "in": "query", + "description": "Name of the method.", + "schema": { + "type": "string" + } + }, + { + "name": "unit", + "in": "query", + "description": "Measure unit of the method.", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the method.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Backend Method Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the method.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/proxy/oidc_configuration.xml": { + "get": { + "summary": "OIDC Configuration Show", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "patch": { + "summary": "OIDC Configuration Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "standard_flow_enabled", + "in": "query", + "description": "Enable Authorization Code Flow (Standard Flow)", + "schema": { + "type": "boolean" + } + }, + { + "name": "implicit_flow_enabled", + "in": "query", + "description": "Enable Implicit Flow", + "schema": { + "type": "boolean" + } + }, + { + "name": "service_accounts_enabled", + "in": "query", + "description": "Enable Service Account Flow (Standard Flow)", + "schema": { + "type": "boolean" + } + }, + { + "name": "direct_access_grants_enabled", + "in": "query", + "description": "Enable Direct Access Grant Flow", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/users/{id}/activate.xml": { + "put": { + "summary": "User Activate (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/users/{id}/admin.xml": { + "put": { + "summary": "User change Role to Admin", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/account_plans.xml": { + "get": { + "summary": "Account Plan List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Account Plan Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the account plan.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "approval_required", + "in": "query", + "description": "Set the 'Accounts require approval?' to 'true' or 'false'", + "schema": { + "type": "boolean" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "schema": { + "type": "string" + } + }, + { + "name": "state_event", + "in": "query", + "description": "State event of the account plan. It can be 'publish' or 'hide'", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/backend_apis/{backend_api_id}/metrics.json": { + "get": { + "summary": "Backend Metric List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 500.", + "schema": { + "type": "integer", + "format": "int32", + "default": 500 + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Backend Metric Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "friendly_name", + "in": "query", + "description": "Descriptive Name of the metric.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the metric. If blank a system_name will be generated for you from the friendly_name parameter", + "schema": { + "type": "string" + } + }, + { + "name": "unit", + "in": "query", + "description": "Measure unit of the metric.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the metric.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/service_plans/{id}/default.xml": { + "put": { + "summary": "Service Plan Set to Default", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the service plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{id}/customize_plan.xml": { + "put": { + "summary": "Application Create Plan Customization", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/metrics.xml": { + "get": { + "summary": "Service Metric List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Service Metric Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "friendly_name", + "in": "query", + "description": "Descriptive Name of the metric.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "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", + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "query", + "description": "DEPRECATED: Please use system_name parameter", + "schema": { + "type": "string" + } + }, + { + "name": "unit", + "in": "query", + "description": "Measure unit of the metric.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the metric.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/features/{id}.xml": { + "get": { + "summary": "Service Feature Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Service Feature Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the feature.", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the feature.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Service Feature Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/application_plans.xml": { + "get": { + "summary": "Application Plan List (all services)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/proxy.xml": { + "get": { + "summary": "Proxy Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "patch": { + "summary": "Proxy Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "endpoint", + "in": "query", + "description": "Public Base URL for production environment.", + "schema": { + "type": "string" + } + }, + { + "name": "api_backend", + "in": "query", + "description": "Private Base URL. Caution! Do not use it if the account has API as a Product enabled. It may cause API backend usages to be removed from the Product.", + "schema": { + "type": "string" + } + }, + { + "name": "credentials_location", + "in": "query", + "description": "Credentials Location. Either headers, query or authorization for the Basic Authorization.", + "schema": { + "type": "string" + } + }, + { + "name": "auth_app_key", + "in": "query", + "description": "Parameter/Header where App Key is expected.", + "schema": { + "type": "string" + } + }, + { + "name": "auth_app_id", + "in": "query", + "description": "Parameter/Header where App ID is expected.", + "schema": { + "type": "string" + } + }, + { + "name": "auth_user_key", + "in": "query", + "description": "Parameter/Header where User Key is expected.", + "schema": { + "type": "string" + } + }, + { + "name": "error_auth_failed", + "in": "query", + "description": "Error message on failed authentication.", + "schema": { + "type": "string" + } + }, + { + "name": "error_status_auth_failed", + "in": "query", + "description": "Status code on failed authentication.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "error_headers_auth_failed", + "in": "query", + "description": "Content-Type header on failed authentication.", + "schema": { + "type": "string" + } + }, + { + "name": "error_auth_missing", + "in": "query", + "description": "Error message on missing authentication.", + "schema": { + "type": "string" + } + }, + { + "name": "error_status_auth_missing", + "in": "query", + "description": "Status code on missing authentication.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "error_headers_auth_missing", + "in": "query", + "description": "Content-Type header on missing authentication.", + "schema": { + "type": "string" + } + }, + { + "name": "error_no_match", + "in": "query", + "description": "Error message when no mapping rule is matched.", + "schema": { + "type": "string" + } + }, + { + "name": "error_status_no_match", + "in": "query", + "description": "Status code when no mapping rule is matched.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "error_headers_no_match", + "in": "query", + "description": "Content-Type header when no mapping rule is matched.", + "schema": { + "type": "string" + } + }, + { + "name": "error_status_limits_exceeded", + "in": "query", + "description": "Status code when usage limit exceeded.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "error_headers_limits_exceeded", + "in": "query", + "description": "Content-Type header when usage limit exceeded.", + "schema": { + "type": "string" + } + }, + { + "name": "error_limits_exceeded", + "in": "query", + "description": "Error message on usage limit exceeded.", + "schema": { + "type": "string" + } + }, + { + "name": "oidc_issuer_endpoint", + "in": "query", + "description": "Location of your OpenID Provider.", + "schema": { + "type": "string" + } + }, + { + "name": "oidc_issuer_type", + "in": "query", + "description": "Type of your OpenID Provider.", + "schema": { + "type": "string" + } + }, + { + "name": "sandbox_endpoint", + "in": "query", + "description": "Sandbox endpoint.", + "schema": { + "type": "string" + } + }, + { + "name": "jwt_claim_with_client_id", + "in": "query", + "description": "JWT Claim With ClientId Location.", + "schema": { + "type": "string" + } + }, + { + "name": "jwt_claim_with_client_id_type", + "in": "query", + "description": "JWT Claim With ClientId Type. Either `plain` or `liquid`", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{application_id}/referrer_filters.xml": { + "get": { + "summary": "Application Referrer Filter List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "application_id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Application Referrer Filter Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "application_id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "referrer_filter", + "in": "query", + "description": "Referrer filter to be created.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/users.xml": { + "get": { + "summary": "User List (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "state", + "in": "query", + "description": "Filter users by State.", + "schema": { + "type": "string", + "enum": [ + "pending", + "suspended", + "active" + ] + } + }, + { + "name": "role", + "in": "query", + "description": "Filter users by Role.", + "schema": { + "type": "string", + "enum": [ + "member", + "admin" + ] + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "User Create (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "username", + "in": "query", + "description": "Username of the user.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "email", + "in": "query", + "description": "Email of the user.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "password", + "in": "query", + "description": "Password of the user.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). Additional fields are the custom fields declared for your tenant, you can find them in 'Settings >> Personal Details' for the account and in 'Settings >> Account >> Users >> Personal Details' for users. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/users/{id}/member.xml": { + "put": { + "summary": "User Change Role to Member (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/users/{id}/unsuspend.xml": { + "put": { + "summary": "User Unsuspend (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/provider.xml": { + "get": { + "summary": "Provider Account Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Provider Account Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "from_email", + "in": "query", + "description": "New outgoing email.", + "schema": { + "type": "string" + } + }, + { + "name": "support_email", + "in": "query", + "description": "New support email.", + "schema": { + "type": "string" + } + }, + { + "name": "finance_support_email", + "in": "query", + "description": "New finance support email.", + "schema": { + "type": "string" + } + }, + { + "name": "site_access_code", + "in": "query", + "description": "Developer Portal Access Code.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/find.xml": { + "get": { + "summary": "Account Find", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "username", + "in": "query", + "description": "Username of the account user.", + "schema": { + "type": "string" + } + }, + { + "name": "email", + "in": "query", + "description": "Email of the account user.", + "schema": { + "type": "string" + } + }, + { + "name": "user_id", + "in": "query", + "description": "ID of the account user.", + "schema": { + "type": "ref" + } + }, + { + "name": "buyer_provider_key", + "in": "query", + "description": "[Master API] Provider key of the account.", + "schema": { + "type": "string" + } + }, + { + "name": "buyer_service_token", + "in": "query", + "description": "[Master API] Service token of the account service.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/service_plans/{id}.xml": { + "get": { + "summary": "Service Plan Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the service plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Service Plan Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the service plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the service plan.", + "schema": { + "type": "string" + } + }, + { + "name": "approval_required", + "in": "query", + "description": "Set the 'Service subscriptions require approval?' to 'true' or 'false'", + "schema": { + "type": "boolean" + } + }, + { + "name": "state_event", + "in": "query", + "description": "State event of the service plan. It can be 'publish' or 'hide'", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Service Plan Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the service plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/accounts/find.xml": { + "/admin/api/account/proxy_configs/{environment}.json": { "get": { - "operationId": "account_find", - "summary": "Account Find", - "description": "Find an account by the username or email of its users (username takes precendence over email).", - "tags": [ - "Accounts" - ], + "summary": "Proxy Configs List (Provider)", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "query", - "description": "username of the user of the account", - "name": "username", - "type": "string" + "name": "environment", + "in": "path", + "description": "Gateway environment. Must be 'sandbox' or 'production'", + "required": true, + "schema": { + "type": "string" + } }, { + "name": "host", "in": "query", - "description": "email of the user of the account", - "name": "email", - "type": "string" + "description": "Filter by host", + "schema": { + "type": "string" + } }, { + "name": "version", "in": "query", - "description": "id of the user of the account", - "name": "user_id", - "type": "integer" + "description": "Filter by version", + "schema": { + "type": "string" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/accounts/{id}.xml": { + "/admin/api/service_plans/{service_plan_id}/features.xml": { "get": { - "operationId": "account_read", - "summary": "Account Read", - "description": "Returns a buyer account.", - "tags": [ - "Accounts" - ], + "summary": "Service Plan Feature List", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "service_plan_id", "in": "path", - "description": "id of the account.", - "name": "id", + "description": "ID of the service plan.", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, - "put": { - "operationId": "account_update", - "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.", - "tags": [ - "Accounts" - ], + "post": { + "summary": "Service Plan Feature Add", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "service_plan_id", "in": "path", - "description": "id of the account.", - "name": "id", + "description": "ID of the service plan.", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "feature_id", "in": "query", - "description": "Organization name of the account.", - "name": "org_name", - "required": false, - "type": "string" - }, + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/policies.json": { + "get": { + "summary": "APIcast Policy Registry", + "parameters": [ { + "name": "access_token", "in": "query", - "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.", - "name": "additional_fields", - "type": "array", - "items": { + "description": "A personal Access Token", + "required": true, + "schema": { "type": "string" } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } - }, + } + }, + "/admin/api/accounts/{account_id}/applications/{application_id}/keys/{key}.xml": { "delete": { - "operationId": "account_delete", - "summary": "Account Delete ", - "description": "Deletes a buyer account. Deleting an account removes all users, applications, service subscriptions to the account.", - "tags": [ - "Accounts" + "summary": "Application Key Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "application_id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "key", + "in": "path", + "description": "app_key to be deleted.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/authentication_providers.xml": { + "get": { + "summary": "Authentication Providers Developer Portal List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Authentication Provider Developer Portal Create", "parameters": [ { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "kind", + "in": "query", + "description": "The kind of authentication provider which can be either 'github', 'auth0', 'keycloak' or a custom one. Use 'keycloak' for Red Hat Single Sign-On.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "client_id", + "in": "query", + "description": "Client ID of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "client_secret", + "in": "query", + "description": "Client Secret of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "site", + "in": "query", + "description": "Site o Realm of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "token_url", + "in": "query", + "description": "Token URL of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "user_info_url", + "in": "query", + "description": "User info URL of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "authorize_url", + "in": "query", + "description": "Authorize URL of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "identifier_key", + "in": "query", + "description": "Identifier key. 'id' by default.", + "schema": { + "type": "string" + } + }, + { + "name": "username_key", + "in": "query", + "description": "Username key. 'login' by default.", + "schema": { + "type": "string" + } + }, + { + "name": "trust_email", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", - "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "description": "Trust emails automatically. False by default", + "schema": { + "type": "boolean" + } }, { - "in": "path", - "description": "id of the account.", - "name": "id", - "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" - } - ], - "responses": { - "200": { - "description": "No response was specified" - } - } - } - }, - "/admin/api/accounts/{id}/change_plan.xml": { - "put": { - "operationId": "account_change_plan", - "summary": "Account Change Plan", - "description": "Changes the account plan of the buyer account.", - "tags": [ - "Accounts" - ], - "parameters": [ + "name": "published", + "in": "query", + "description": "Published authentication provider. False by default", + "schema": { + "type": "boolean" + } + }, { + "name": "branding_state_event", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", - "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "description": "Branding state event of the authentication provider. Only available for Github. It can be either 'brand_as_threescale' (the default one) or 'custom_brand'", + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the account.", - "name": "id", - "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "name": "skip_ssl_certificate_verification", + "in": "query", + "description": "Skip SSL certificate verification. False by default.", + "schema": { + "type": "boolean" + } }, { + "name": "automatically_approve_accounts", "in": "query", - "description": "id of the target account plan", - "name": "plan_id", - "required": true, - "x-data-threescale-name": "account_plan_ids", - "type": "integer" + "description": "Automatically approve accounts. False by default.", + "schema": { + "type": "boolean" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/accounts/{id}/approve.xml": { - "put": { - "operationId": "account_approve", - "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", - "tags": [ - "Accounts" - ], + "/admin/api/services/{service_id}/proxy/deploy.xml": { + "post": { + "summary": "Proxy Deploy", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "service_id", "in": "path", - "description": "id of the account.", - "name": "id", + "description": "ID of the service.", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/accounts/{id}/reject.xml": { - "put": { - "operationId": "account_reject", - "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", - "tags": [ - "Accounts" - ], + "/admin/api/account/authentication_providers/{id}.xml": { + "get": { + "summary": "Authentication Provider Admin Portal Read", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the account.", "name": "id", + "in": "path", + "description": "ID of the authentication provider.", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "string" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } - } - }, - "/admin/api/accounts/{id}/make_pending.xml": { + }, "put": { - "operationId": "account_reset_to_pending", - "summary": "Account Reset to Pending", - "description": "Resets the state of the account to pending. So that it can be again approved or rejected.", - "tags": [ - "Accounts" - ], + "summary": "Authentication Provider Admin Portal Update", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the account.", "name": "id", + "in": "path", + "description": "ID of the authentication provider.", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "string" + } + }, + { + "name": "client_id", + "in": "query", + "description": "Client ID of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "client_secret", + "in": "query", + "description": "Client Secret of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "site", + "in": "query", + "description": "Site o Realm of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "skip_ssl_certificate_verification", + "in": "query", + "description": "Skip SSL certificate verification. False by default.", + "schema": { + "type": "boolean" + } + }, + { + "name": "published", + "in": "query", + "description": "Published authentication provider. False by default", + "schema": { + "type": "boolean" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/active_docs/{id}.xml": { + "/admin/api/accounts/{account_id}/applications/{id}/resume.xml": { "put": { - "operationId": "active_docs_json_spec_update", - "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'", - "tags": [ - "active_docs" - ], + "summary": "Application Resume", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "account_id", "in": "path", - "description": "id of the active doc.", - "name": "id", + "description": "ID of the account.", "required": true, - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { - "in": "query", - "description": "JSON Spec of the ActiveDocs (based on the spec of Swagger).", - "name": "body", + "name": "id", + "in": "path", + "description": "ID of the application.", "required": true, - "type": "string" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/application_plans/{application_plan_id}/features.xml": { + "/admin/api/services/{service_id}/proxy/policies.json": { "get": { - "operationId": "application_plan_feature_list", - "summary": "Application Plan Feature List", - "description": "Returns the list of features of the application plan.", - "tags": [ - "Application Plan Features" - ], + "summary": "Proxy Policies Chain Show", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "service_id", "in": "path", - "description": "id of the application plan.", - "name": "application_plan_id", + "description": "ID of the service.", "required": true, - "x-data-threescale-name": "application_plan_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, - "post": { - "operationId": "application_plan_feature_create", - "summary": "Application Plan Feature Create", - "description": "Associates a feature to an application plan.", - "tags": [ - "Application Plan Features" - ], + "put": { + "summary": "Proxy Policies Chain Update", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "service_id", "in": "path", - "description": "id of the application plan.", - "name": "application_plan_id", + "description": "ID of the service.", "required": true, - "x-data-threescale-name": "application_plan_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "policies_config", "in": "query", - "description": "id of the feature.", - "name": "feature_id", + "description": "Proxy policies chain", "required": true, - "type": "integer" + "schema": { + "type": "string" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/application_plans/{application_plan_id}/features/{id}.xml": { - "delete": { - "operationId": "application_plan_feature_delete", - "summary": "Application Plan Feature Delete", - "tags": [ - "Application Plan Features" - ], + "/admin/api/accounts/{id}/make_pending.xml": { + "put": { + "summary": "Account Reset to Pending", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", - "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" - }, - { - "in": "path", - "description": "id of the application plan.", - "name": "application_plan_id", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "application_plan_ids", - "type": "integer" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the feature.", "name": "id", - "required": true, - "type": "integer" - } - ], - "responses": { - "200": { - "description": "No response was specified" - } - } - } - }, - "/admin/api/application_plans/{application_plan_id}/limits.xml": { - "get": { - "operationId": "plan_limits", - "summary": "Limits List per Application Plan", - "description": "Returns the list of all limits associated to an application plan.", - "tags": [ - "Application Plan Limits" - ], - "parameters": [ - { - "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", - "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" - }, - { "in": "path", - "description": "id of the application plan.", - "name": "application_plan_id", + "description": "ID of the account.", "required": true, - "x-data-threescale-name": "application_plan_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/limits.xml": { + "/admin/api/services/{service_id}/metrics/{metric_id}/methods.xml": { "get": { - "operationId": "limits_list", - "summary": "Limit List per Metric", - "description": "Returns the list of all limits associated to a metric of an application plan.", - "tags": [ - "Application Plan Limits by Metric" - ], + "summary": "Service Method List", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "service_id", "in": "path", - "description": "id of the application plan.", - "name": "application_plan_id", + "description": "ID of the service.", "required": true, - "x-data-threescale-name": "application_plan_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { - "in": "path", - "description": "id of the metric.", "name": "metric_id", + "in": "path", + "description": "ID of the metric.", "required": true, - "x-data-threescale-name": "metric_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, "post": { - "operationId": "limit_create", - "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).", - "tags": [ - "Application Plan Limits by Metric" - ], + "summary": "Service Method Create", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "service_id", "in": "path", - "description": "id of the application plan.", - "name": "application_plan_id", + "description": "ID of the service.", "required": true, - "x-data-threescale-name": "application_plan_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { - "in": "path", - "description": "id of the metric.", "name": "metric_id", + "in": "path", + "description": "ID of the metric.", "required": true, - "x-data-threescale-name": "metric_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "friendly_name", "in": "query", - "description": "period of the limit.", - "name": "period", + "description": "Name of the method.", "required": true, - "type": "string", - "default": "minute" + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "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", + "schema": { + "type": "string" + } }, { + "name": "unit", "in": "query", - "description": "value of the limit.", - "name": "value", + "description": "Measure unit of the method.", "required": true, - "type": "integer" + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the method.", + "schema": { + "type": "ref" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/limits/{id}.xml": { - "get": { - "operationId": "limit_read", - "summary": "Limit Read", - "description": "Returns a limit on a metric of an application plan.", - "tags": [ - "Application Plan Limits by Metric" - ], + "/admin/api/accounts/{account_id}/applications/{id}/decustomize_plan.xml": { + "put": { + "summary": "Application Delete Plan Customization", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "account_id", "in": "path", - "description": "id of the application plan.", - "name": "application_plan_id", + "description": "ID of the account.", "required": true, - "x-data-threescale-name": "application_plan_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "id", "in": "path", - "description": "id of the metric.", - "name": "metric_id", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/users/{id}.xml": { + "get": { + "summary": "User Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "metric_ids", - "type": "integer" + "schema": { + "type": "string" + } }, { + "name": "account_id", "in": "path", - "description": "id of the limit.", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { "name": "id", + "in": "path", + "description": "ID of the user.", "required": true, - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, "put": { - "operationId": "limit_update", - "summary": "Limit Update", - "description": "Updates a limit on a metric of an application plan.", - "tags": [ - "Application Plan Limits by Metric" - ], + "summary": "User Update", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "account_id", "in": "path", - "description": "id of the application plan.", - "name": "application_plan_id", + "description": "ID of the account.", "required": true, - "x-data-threescale-name": "application_plan_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "id", "in": "path", - "description": "id of the metric.", - "name": "metric_id", + "description": "ID of the user.", "required": true, - "x-data-threescale-name": "metric_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { - "in": "path", - "description": "id of the limit.", - "name": "id", - "required": true, - "type": "integer" + "name": "username", + "in": "query", + "description": "Username of the user.", + "schema": { + "type": "string" + } }, { + "name": "email", "in": "query", - "description": "period of the limit.", - "name": "period", - "required": true, - "type": "string", - "default": "minute" + "description": "Email of the user.", + "schema": { + "type": "string" + } }, { + "name": "password", "in": "query", - "description": "value of the limit.", - "name": "value", - "required": false, - "type": "integer" + "description": "Password of the user.", + "schema": { + "type": "string" + } + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, "delete": { - "operationId": "limit_delete", - "summary": "Limit Delete", - "description": "Deletes a limit on a metric of an application plan", - "tags": [ - "Application Plan Limits by Metric" - ], + "summary": "User Delete", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", - "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" - }, - { - "in": "path", - "description": "id of the application plan.", - "name": "application_plan_id", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "application_plan_ids", - "type": "integer" + "schema": { + "type": "string" + } }, { + "name": "account_id", "in": "path", - "description": "id of the metric.", - "name": "metric_id", + "description": "ID of the account.", "required": true, - "x-data-threescale-name": "metric_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { - "in": "path", - "description": "id of the limit.", "name": "id", + "in": "path", + "description": "ID of the user.", "required": true, - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/pricing_rules.xml": { - "get": { - "operationId": "metric_pricing_rules", - "summary": "Pricing Rules List per Metric", - "description": "Returns the list of all pricing rules associated to a metric of an application plan.", - "tags": [ - "Application Plan Pricing Rules" - ], + "/admin/api/accounts/{account_id}/users/{id}/activate.xml": { + "put": { + "summary": "User Activate", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "account_id", "in": "path", - "description": "id of the application plan.", - "name": "application_plan_id", + "description": "ID of the account.", "required": true, - "x-data-threescale-name": "application_plan_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "id", "in": "path", - "description": "id of the metric.", - "name": "metric_id", + "description": "ID of the user.", "required": true, - "x-data-threescale-name": "metric_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/application_plans/{application_plan_id}/pricing_rules.xml": { + "/admin/api/fields_definitions.json": { "get": { - "operationId": "pricing_rules", - "summary": "Pricing Rules List per Application Plan", - "description": "Returns the list of all pricing rules associated to an application plan.", - "tags": [ - "Application Plan Pricing Rules" - ], + "summary": "Fields Definitions List", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", - "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" - }, - { - "in": "path", - "description": "id of the application plan.", - "name": "application_plan_id", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "application_plan_ids", - "type": "integer" + "schema": { + "type": "string" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } - } - }, - "/admin/api/application_plans.xml": { - "get": { - "operationId": "application_plan_list_all_services", - "summary": "Application Plan List (all services)", - "description": "Returns the list of all application plans across services. Note that application plans are scoped by service.", - "tags": [ - "Application Plans" - ], + }, + "post": { + "summary": "Fields Definition Create", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" - } - ], - "responses": { - "200": { - "description": "No response was specified" - } - } - } - }, - "/admin/api/services/{service_id}/application_plans.xml": { - "get": { - "operationId": "application_plan_list", - "summary": "Application Plan List", - "description": "Returns the list of all application plans of a service.", - "tags": [ - "Application Plans" - ], - "parameters": [ + "schema": { + "type": "string" + } + }, { + "name": "target", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "Target entity of fields definition.", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string", + "default": "account", + "enum": [ + "Account", + "User", + "Cinstance" + ] + } }, { - "in": "path", - "description": "id of the service.", - "name": "service_id", + "name": "name", + "in": "query", + "description": "Name of the fields definition to be created.", "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" - } - ], - "responses": { - "200": { - "description": "No response was specified" - } - } - }, - "post": { - "operationId": "application_plan_create", - "summary": "Application Plan Create", - "description": "Creates an application plan.", - "tags": [ - "Application Plans" - ], - "parameters": [ + "schema": { + "type": "string" + } + }, { + "name": "label", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "The field title your developers will see.", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the service.", - "name": "service_id", - "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" + "name": "required", + "in": "query", + "description": "If 'true' the field will be required for developers.", + "schema": { + "type": "boolean" + } }, { + "name": "hidden", "in": "query", - "description": "Name of the application plan.", - "name": "name", - "required": true, - "type": "string" + "description": "If 'true' the developers won't be able to see this field.", + "schema": { + "type": "boolean" + } }, { + "name": "read_only", "in": "query", - "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.", - "name": "system_name", - "type": "string" + "description": "If 'true' the developers won't be able to change this field.", + "schema": { + "type": "boolean" + } + }, + { + "name": "choices", + "in": "query", + "description": "The list of predefined options for this field, URL-encoded array.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/services/{service_id}/application_plans/{id}.xml": { - "get": { - "operationId": "application_plan_read", - "summary": "Application Plan Read", - "description": "Returns and application plan.", - "tags": [ - "Application Plans" - ], + "/admin/api/accounts/{id}/approve.xml": { + "put": { + "summary": "Account Approve", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", - "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" - }, - { - "in": "path", - "description": "id of the service.", - "name": "service_id", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the application plan.", "name": "id", + "in": "path", + "description": "ID of the account.", "required": true, - "x-data-threescale-name": "application_plan_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } - }, - "put": { - "operationId": "application_plan_update", - "summary": "Application Plan Update", - "description": "Updates an application plan.", - "tags": [ - "Application Plans" - ], + } + }, + "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/limits.xml": { + "get": { + "summary": "Limit List per Metric", + "operationId": "limits", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "application_plan_id", "in": "path", - "description": "id of the service.", - "name": "service_id", + "description": "ID of the application plan.", "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "metric_id", "in": "path", - "description": "id of the application plan.", - "name": "id", + "description": "ID of the metric.", "required": true, - "x-data-threescale-name": "application_plan_ids", - "type": "integer" - }, - { - "in": "query", - "description": "Name of the application plan.", - "name": "name", - "type": "string" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, - "delete": { - "operationId": "application_plan_delete", - "summary": "Application Plan Delete", - "description": "Deletes an application plan.", - "tags": [ - "Application Plans" - ], + "post": { + "summary": "Limit Create", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "application_plan_id", "in": "path", - "description": "id of the service.", - "name": "service_id", + "description": "ID of the application plan.", "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "metric_id", "in": "path", - "description": "id of the application plan.", - "name": "id", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "period", + "in": "query", + "description": "Period of the limit.", + "required": true, + "schema": { + "type": "string", + "default": "minute", + "enum": [ + "eternity", + "year", + "month", + "week", + "day", + "hour", + "minute" + ] + } + }, + { + "name": "value", + "in": "query", + "description": "Value of the limit.", "required": true, - "x-data-threescale-name": "application_plan_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/services/{service_id}/application_plans/{id}/default.xml": { - "put": { - "operationId": "application_plan_set_to_default", - "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).", - "tags": [ - "Application Plans" - ], + "/admin/api/signup.xml": { + "post": { + "summary": "Signup Express (Account Create)", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the service.", - "name": "service_id", + "name": "org_name", + "in": "query", + "description": "Organization Name of the developer account.", "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the application plan.", - "name": "id", + "name": "username", + "in": "query", + "description": "Username of the admin user (on the new developer account).", "required": true, - "x-data-threescale-name": "application_plan_ids", - "type": "integer" - } - ], - "responses": { - "200": { - "description": "No response was specified" - } - } - } - }, - "/admin/api/applications.xml": { - "get": { - "operationId": "applications_list_all_service", - "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.", - "tags": [ - "Applications" - ], - "parameters": [ + "schema": { + "type": "string" + } + }, { + "name": "email", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "Email of the admin user.", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "password", "in": "query", - "description": "Page in the paginated list. Defaults to 1.", - "name": "page", - "type": "integer", - "default": 1 + "description": "Password of the admin user.", + "required": true, + "schema": { + "type": "string" + } }, { + "name": "account_plan_id", "in": "query", - "description": "Number of results per page. Default and max is 500.", - "name": "per_page", - "type": "integer", - "default": 500 + "description": "ID of the account plan (if not assigned default will be used instead).", + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "service_plan_id", "in": "query", - "description": "filter date", - "name": "active_since", - "required": false, - "x-data-threescale-name": "active_since", - "type": "string" + "description": "ID of the service plan (if not assigned default will be used instead).", + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "application_plan_id", "in": "query", - "description": "filter date", - "name": "inactive_since", - "required": false, - "x-data-threescale-name": "inactive_since", - "type": "string" + "description": "ID of the application plan (if not assigned default will be used instead).", + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "additional_fields", "in": "query", - "description": "filter by service", - "name": "service_id", - "required": false, - "x-data-threescale-name": "service_id", - "type": "string" + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/account_plans/{account_plan_id}/features.xml": { + "get": { + "summary": "Account Plan Features List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_plan_id", + "in": "path", + "description": "ID of the account plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, "/admin/api/applications/find.xml": { "get": { - "operationId": "applications_find", "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).", - "tags": [ - "Applications" - ], "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "query", - "description": "id of the application.", "name": "application_id", - "required": false, - "x-data-threescale-name": "application_ids", - "type": "integer" + "in": "query", + "description": "ID of the application.", + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "user_key", "in": "query", "description": "user_key of the application (for user_key authentication mode).", - "name": "user_key", - "required": false, - "x-data-threescale-name": "user_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "app_id", "in": "query", "description": "app_id of the application (for app_id/app_key and oauth authentication modes).", - "name": "app_id", - "required": false, - "x-data-threescale-name": "app_ids", - "type": "string" + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "query", + "description": "Filter by service", + "schema": { + "type": "string" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/accounts/{account_id}/plan.xml": { + "/admin/api/services/{service_id}/metrics/{id}.xml": { "get": { - "operationId": "account_fetch_account_plan", - "summary": "Account Fetch Account Plan", - "description": "Returns the account plan associated to an account.", - "tags": [ - "Accounts" - ], + "summary": "Service Metric Read", + "operationId": "service_metric", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "id", "in": "path", - "description": "id of the account.", - "name": "account_id", + "description": "ID of the metric.", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } - } - }, - "/admin/api/accounts/{account_id}/applications/{application_id}/keys.xml": { - "get": { - "operationId": "application_key_list", - "summary": "Application Key List", - "description": "Lists app keys of the application.", - "tags": [ - "Applications" - ], + }, + "put": { + "summary": "Service Metric Update", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "service_id", "in": "path", - "description": "id of the account.", - "name": "account_id", + "description": "ID of the service.", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "id", "in": "path", - "description": "id of the application.", - "name": "application_id", + "description": "ID of the metric.", "required": true, - "x-data-threescale-name": "application_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "friendly_name", + "in": "query", + "description": "Name of the metric.", + "schema": { + "type": "string" + } + }, + { + "name": "unit", + "in": "query", + "description": "Measure unit of the metric.", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the metric.", + "schema": { + "type": "ref" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, - "post": { - "operationId": "key_create", - "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.", - "tags": [ - "Applications" - ], + "delete": { + "summary": "Service Metric Delete", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "service_id", "in": "path", - "description": "id of the account.", - "name": "account_id", + "description": "ID of the service.", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "id", "in": "path", - "description": "id of the application.", - "name": "application_id", - "required": true, - "x-data-threescale-name": "application_ids", - "type": "integer" - }, - { - "in": "query", - "description": "app_key to be added", - "name": "key", + "description": "ID of the metric.", "required": true, - "type": "string" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/accounts/{account_id}/applications/{application_id}/keys/{key}.xml": { - "delete": { - "operationId": "application_key_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).", - "tags": [ - "Applications" - ], + "/admin/api/services/{service_id}/application_plans/{id}/default.xml": { + "put": { + "summary": "Application Plan Set to Default", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "service_id", "in": "path", - "description": "id of the account.", - "name": "account_id", + "description": "ID of the service.", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "id", "in": "path", - "description": "id of the application.", - "name": "application_id", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/service_plans/{service_plan_id}/features/{id}.xml": { + "delete": { + "summary": "Service Plan Features Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "application_ids", - "type": "integer" + "schema": { + "type": "string" + } }, { + "name": "service_plan_id", "in": "path", - "description": "app_key to be deleted.", - "name": "key", + "description": "ID of the service plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", "required": true, - "type": "string" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/accounts/{account_id}/applications/{application_id}/referrer_filters.xml": { + "/admin/api/services/{service_id}/application_plans/{id}.xml": { "get": { - "operationId": "application_referrer_filter_list", - "summary": "Application Referrer Filter List", - "description": "Lists referrer filters of the application.", - "tags": [ - "Applications" - ], + "summary": "Application Plan Read", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "service_id", "in": "path", - "description": "id of the account.", - "name": "account_id", + "description": "ID of the service.", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "id", "in": "path", - "description": "id of the application.", - "name": "application_id", + "description": "ID of the application plan.", "required": true, - "x-data-threescale-name": "application_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, - "post": { - "operationId": "application_referrer_filter_create", - "summary": "Application referrer filter Create", - "description": "Adds a referrer filter to an application. Referrer filters limit the API requests by domain or IP ranges.", - "tags": [ - "Applications" - ], + "put": { + "summary": "Application Plan Update", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "service_id", "in": "path", - "description": "id of the account.", - "name": "account_id", + "description": "ID of the service.", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "id", "in": "path", - "description": "id of the application.", - "name": "application_id", + "description": "ID of the application plan.", "required": true, - "x-data-threescale-name": "application_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "name", "in": "query", - "description": "referrer filter to be created.", - "name": "referrer_filter", - "required": true, - "type": "string" + "description": "Name of the application plan.", + "schema": { + "type": "string" + } + }, + { + "name": "approval_required", + "in": "query", + "description": "Set the 'Applications require approval?' to 'true' or 'false'", + "schema": { + "type": "boolean" + } + }, + { + "name": "cost_per_month", + "in": "query", + "description": "Cost per month", + "schema": { + "type": "ref" + } + }, + { + "name": "setup_fee", + "in": "query", + "description": "Setup fee", + "schema": { + "type": "ref" + } + }, + { + "name": "trial_period_days", + "in": "query", + "description": "Trial period days", + "schema": { + "type": "ref" + } + }, + { + "name": "state_event", + "in": "query", + "description": "State event of the application plan. It can be 'publish' or 'hide'", + "schema": { + "type": "string" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } - } - }, - "/admin/api/accounts/{account_id}/applications/{application_id}/referrer_filters/{id}.xml": { + }, "delete": { - "operationId": "application_referrer_filter_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.", - "tags": [ - "Applications" - ], + "summary": "Application Plan Delete", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", - "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" - }, - { - "in": "path", - "description": "id of the account.", - "name": "account_id", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "string" + } }, { + "name": "service_id", "in": "path", - "description": "id of the application.", - "name": "application_id", + "description": "ID of the service.", "required": true, - "x-data-threescale-name": "application_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { - "in": "path", - "description": "id of referrer filter to be deleted.", "name": "id", + "in": "path", + "description": "ID of the application plan.", "required": true, - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/accounts/{account_id}/applications.xml": { + "/admin/api/features/{id}.xml": { "get": { - "operationId": "application_list", - "summary": "Application List", - "description": "Returns the list of application of an account.", - "tags": [ - "Applications" - ], + "summary": "Account Feature Read", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "id", "in": "path", - "description": "id of the account.", - "name": "account_id", + "description": "ID of the feature.", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, - "post": { - "operationId": "application_create", - "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.", - "tags": [ - "Applications" - ], + "put": { + "summary": "Account Feature Update", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "id", "in": "path", - "description": "id of the account.", - "name": "account_id", + "description": "ID of the feature.", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "name", "in": "query", - "description": "id of the application plan.", - "name": "plan_id", + "description": "Name of the feature.", "required": true, - "x-data-threescale-name": "application_plan_ids", - "type": "integer" + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Account Feature Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } }, { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/service_contracts/{id}.xml": { + "delete": { + "summary": "Service Subscription Delete", + "parameters": [ + { + "name": "access_token", "in": "query", - "description": "Name of the application to be created.", - "name": "name", + "description": "A personal Access Token", "required": true, - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "query", - "description": "Description of the application to be created.", - "name": "description", + "name": "account_id", + "in": "path", + "description": "ID of the account.", "required": true, - "type": "string" + "schema": { + "type": "integer", + "format": "int32" + } }, { - "in": "query", - "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.", - "name": "additional_fields", - "type": "array", - "items": { - "type": "string" + "name": "id", + "in": "path", + "description": "ID of the service contract.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/accounts/{account_id}/applications/{id}.xml": { + "/admin/api/account_plans/{id}.xml": { "get": { - "operationId": "application_read", - "summary": "Application Read", - "description": "Returns the application by id.", - "tags": [ - "Applications" - ], + "summary": "Account Plan Read", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", - "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" - }, - { - "in": "path", - "description": "id of the account.", - "name": "account_id", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the application.", "name": "id", + "in": "path", + "description": "ID of the account plan.", "required": true, - "x-data-threescale-name": "application_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, "put": { - "operationId": "application_update", - "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).", - "tags": [ - "Applications" - ], + "summary": "Account Plan Update", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" - }, - { - "in": "path", - "description": "id of the account.", - "name": "account_id", - "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the application.", "name": "id", + "in": "path", + "description": "ID of the account plan.", "required": true, - "x-data-threescale-name": "application_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { - "in": "query", - "description": "Name of the application.", "name": "name", - "required": false, - "type": "string" + "in": "query", + "description": "Name of the account plan.", + "schema": { + "type": "string" + } }, { + "name": "approval_required", "in": "query", - "description": "Description of the application.", - "name": "description", - "required": false, - "type": "string" + "description": "Set the 'Accounts require approval?' to 'true' or 'false'", + "schema": { + "type": "boolean" + } }, { + "name": "state_event", "in": "query", - "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.", - "name": "additional_fields", - "type": "array", - "items": { + "description": "State event of the account plan. It can be 'publish' or 'hide'", + "schema": { "type": "string" } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } - } - }, - "/admin/api/accounts/{account_id}/applications/{id}/change_plan.xml": { - "put": { - "operationId": "application_change_plan", - "summary": "Application Change Plan", - "description": "Changes the application plan of an application.", - "tags": [ - "Applications" - ], + }, + "delete": { + "summary": "Account Plan Delete", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", - "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" - }, - { - "in": "path", - "description": "id of the account.", - "name": "account_id", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the application.", "name": "id", + "in": "path", + "description": "ID of the account plan.", "required": true, - "x-data-threescale-name": "application_ids", - "type": "integer" - }, - { - "in": "query", - "description": "id of the new application plan.", - "name": "plan_id", - "required": true, - "x-data-threescale-name": "application_plan_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/accounts/{account_id}/applications/{id}/customize_plan.xml": { - "put": { - "operationId": "application_create_plan_customization", - "summary": "Application Create Plan Customization", - "description": "Creates a customized application plan for the application.", - "tags": [ - "Applications" - ], + "/admin/api/services/{service_id}/application_plans.xml": { + "get": { + "summary": "Application Plan List", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", - "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" - }, - { - "in": "path", - "description": "id of the account.", - "name": "account_id", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "string" + } }, { + "name": "service_id", "in": "path", - "description": "id of the application.", - "name": "id", + "description": "ID of the service.", "required": true, - "x-data-threescale-name": "application_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } - } - }, - "/admin/api/accounts/{account_id}/applications/{id}/decustomize_plan.xml": { - "put": { - "operationId": "application_delete_plan_customization", - "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.", - "tags": [ - "Applications" - ], + }, + "post": { + "summary": "Application Plan Create", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "service_id", "in": "path", - "description": "id of the account.", - "name": "account_id", + "description": "ID of the service.", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { - "in": "path", - "description": "id of the application.", - "name": "id", + "name": "name", + "in": "query", + "description": "Name of the application plan.", "required": true, - "x-data-threescale-name": "application_ids", - "type": "integer" - } - ], - "responses": { - "200": { - "description": "No response was specified" - } - } - } - }, - "/admin/api/accounts/{account_id}/applications/{id}/accept.xml": { - "put": { - "operationId": "application_accept", - "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.", - "tags": [ - "Applications" - ], - "parameters": [ + "schema": { + "type": "string" + } + }, { + "name": "approval_required", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", - "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "description": "Set the 'Applications require approval?' to 'true' or 'false'", + "schema": { + "type": "boolean" + } }, { - "in": "path", - "description": "id of the account.", - "name": "account_id", - "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "name": "cost_per_month", + "in": "query", + "description": "Cost per month", + "schema": { + "type": "ref" + } }, { - "in": "path", - "description": "id of the application.", - "name": "id", - "required": true, - "x-data-threescale-name": "application_ids", - "type": "integer" + "name": "setup_fee", + "in": "query", + "description": "Setup fee", + "schema": { + "type": "ref" + } + }, + { + "name": "trial_period_days", + "in": "query", + "description": "Trial period days", + "schema": { + "type": "ref" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "schema": { + "type": "string" + } + }, + { + "name": "state_event", + "in": "query", + "description": "State event of the application plan. It can be 'publish' or 'hide'", + "schema": { + "type": "string" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/accounts/{account_id}/applications/{id}/suspend.xml": { - "put": { - "operationId": "application_suspend", - "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.", - "tags": [ - "Applications" - ], + "/admin/api/personal/access_tokens.json": { + "get": { + "summary": "Personal Access Token List", "parameters": [ { + "name": "name", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", - "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" - }, - { - "in": "path", - "description": "id of the account.", - "name": "account_id", - "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "description": "Part of the name of the access token.", + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the application.", - "name": "id", + "name": "access_token", + "in": "query", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "application_ids", - "type": "integer" + "schema": { + "type": "string" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } - } - }, - "/admin/api/accounts/{account_id}/applications/{id}/resume.xml": { - "put": { - "operationId": "application_resume", - "summary": "Application Resume", - "description": "Resume a suspended application. Once a suspended application is resumed it will be authorized on API requests.", - "tags": [ - "Applications" - ], + }, + "post": { + "summary": "Personal Access Token Create", "parameters": [ { + "name": "name", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "Name of the access token.", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the account.", - "name": "account_id", + "name": "permission", + "in": "query", + "description": "Permission of the access token. It must be either 'ro' (read only) or 'rw' (read and write).", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the application.", - "name": "id", + "name": "scopes", + "in": "query", + "description": "Scope of the access token. URL-encoded array containing one or more of the possible values. The possible values are, for a master user [\"account_management\", \"stats\", \"policy_registry\"], and for a tenant user [\"finance\", \"account_management\", \"stats\", \"policy_registry\"]", "required": true, - "x-data-threescale-name": "application_ids", - "type": "integer" + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + }, + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/accounts/{account_id}/users.xml": { + "/admin/api/application_plans/{application_plan_id}/features.xml": { "get": { - "operationId": "user_list", - "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.", - "tags": [ - "Users" - ], + "summary": "Application Plan Feature List", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "application_plan_id", "in": "path", - "description": "id of the account.", - "name": "account_id", + "description": "ID of the application plan.", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" - }, - { - "in": "query", - "description": "Filter users by State.", - "name": "state", - "required": false, - "type": "string" - }, - { - "in": "query", - "description": "Filter users by Role.", - "name": "role", - "required": false, - "type": "string" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, "post": { - "operationId": "user_create", - "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. ", - "tags": [ - "Users" - ], + "summary": "Application Plan Feature Create", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "application_plan_id", "in": "path", - "description": "id of the account.", - "name": "account_id", - "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" - }, - { - "in": "query", - "description": "Username of the user.", - "name": "username", + "description": "ID of the application plan.", "required": true, - "type": "string" - }, - { - "in": "query", - "description": "Email of the user.", - "name": "email", - "required": true, - "type": "string" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "feature_id", "in": "query", - "description": "Password of the user.", - "name": "password", + "description": "ID of the feature.", "required": true, - "type": "string" - }, - { - "in": "query", - "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.", - "name": "additional_fields", - "type": "array", - "items": { - "type": "string" + "schema": { + "type": "integer", + "format": "int32" } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/accounts/{account_id}/users/{id}.xml": { + "/admin/api/authentication_providers/{id}.xml": { "get": { - "operationId": "user_read", - "summary": "User Read", - "description": "Returns the user of an account.", - "tags": [ - "Users" - ], + "summary": "Authentication Provider Read", "parameters": [ { - "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", - "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" - }, - { - "in": "path", - "description": "id of the account.", - "name": "account_id", + "name": "access_token", + "in": "query", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the user.", "name": "id", + "in": "path", + "description": "ID of the authentication provider.", "required": true, - "x-data-threescale-name": "user_ids", - "type": "integer" + "schema": { + "type": "string" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, "put": { - "operationId": "user_update", - "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.", - "tags": [ - "Users" - ], + "summary": "Authentication Provider Developer Portal Update", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "id", "in": "path", - "description": "id of the account.", - "name": "account_id", + "description": "ID of the authentication provider.", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the user.", - "name": "id", - "required": true, - "x-data-threescale-name": "user_ids", - "type": "integer" + "name": "client_id", + "in": "query", + "description": "Client ID of the authentication provider.", + "schema": { + "type": "string" + } }, { + "name": "client_secret", "in": "query", - "description": "Username of the user.", - "name": "username", - "required": false, - "type": "string" + "description": "Client Secret of the authentication provider.", + "schema": { + "type": "string" + } }, { + "name": "site", "in": "query", - "description": "Email of the user.", - "name": "email", - "required": false, - "type": "string" + "description": "Site o Realm of the authentication provider.", + "schema": { + "type": "string" + } }, { + "name": "published", "in": "query", - "description": "Password of the user.", - "name": "password", - "required": false, - "type": "string" + "description": "Published authentication provider. False by default", + "schema": { + "type": "boolean" + } }, { + "name": "skip_ssl_certificate_verification", "in": "query", - "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.", - "name": "additional_fields", - "type": "array", - "items": { - "type": "string" + "description": "Skip SSL certificate verification. False by default.", + "schema": { + "type": "boolean" + } + }, + { + "name": "automatically_approve_accounts", + "in": "query", + "description": "Automatically approve accounts. False by default.", + "schema": { + "type": "boolean" } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } - }, - "delete": { - "operationId": "user_delete", - "summary": "User Delete", - "description": "Deletes a user of an account. Last user can't be deleted", - "tags": [ - "Users" - ], + } + }, + "/admin/api/backend_apis/{backend_api_id}/metrics/{metric_id}/methods.json": { + "get": { + "summary": "Backend Method List", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "backend_api_id", "in": "path", - "description": "id of the account.", - "name": "account_id", + "description": "ID of the Backend.", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "metric_id", "in": "path", - "description": "id of the user.", - "name": "id", + "description": "ID of the metric.", "required": true, - "x-data-threescale-name": "user_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 500.", + "schema": { + "type": "integer", + "format": "int32", + "default": 500 + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } - } - }, - "/admin/api/accounts/{account_id}/users/{id}/member.xml": { - "put": { - "operationId": "user_change_role_to_member", - "summary": "User change Role to Member", - "description": "Changes the role of the user to member.", - "tags": [ - "Users" - ], + }, + "post": { + "summary": "Backend Method Create", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "backend_api_id", "in": "path", - "description": "id of the account.", - "name": "account_id", + "description": "ID of the Backend.", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "metric_id", "in": "path", - "description": "id of the user.", - "name": "id", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "friendly_name", + "in": "query", + "description": "Descriptive Name of the metric.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the metric. If blank a system_name will be generated for you from the friendly_name parameter", + "schema": { + "type": "string" + } + }, + { + "name": "unit", + "in": "query", + "description": "Measure unit of the metric.", "required": true, - "x-data-threescale-name": "user_ids", - "type": "integer" + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the metric.", + "schema": { + "type": "ref" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/accounts/{account_id}/users/{id}/admin.xml": { + "/admin/api/accounts/{id}/change_plan.xml": { "put": { - "operationId": "user_change_role_to_admin", - "summary": "User change Role to Admin", - "description": "Changes the role of the user to admin.", - "tags": [ - "Users" - ], + "summary": "Account Change Plan", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "id", "in": "path", - "description": "id of the account.", - "name": "account_id", + "description": "ID of the account.", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { - "in": "path", - "description": "id of the user.", - "name": "id", + "name": "plan_id", + "in": "query", + "description": "ID of the target account plan", "required": true, - "x-data-threescale-name": "user_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/accounts/{account_id}/users/{id}/suspend.xml": { + "/admin/api/accounts/{account_id}/applications/{id}/change_plan.xml": { "put": { - "operationId": "user_suspend", - "summary": "User Suspend", - "description": "Changes the state of the user to suspended. A suspended user cannot sign-in.", - "tags": [ - "Users" - ], + "summary": "Application Change Plan", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the account.", "name": "account_id", + "in": "path", + "description": "ID of the account.", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { - "in": "path", - "description": "id of the user.", "name": "id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "plan_id", + "in": "query", + "description": "ID of the new application plan.", "required": true, - "x-data-threescale-name": "user_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/accounts/{account_id}/users/{id}/unsuspend.xml": { - "put": { - "operationId": "user_unsuspend", - "summary": "User Unsuspend", - "description": "Change the state of the user back to active.", - "tags": [ - "Users" - ], + "/admin/api/services/{service_id}/backend_usages.json": { + "get": { + "summary": "Backend Usage List", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" - }, - { - "in": "path", - "description": "id of the account.", - "name": "account_id", - "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "string" + } }, { + "name": "service_id", "in": "path", - "description": "id of the user.", - "name": "id", + "description": "ID of the service.", "required": true, - "x-data-threescale-name": "user_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } - } - }, - "/admin/api/accounts/{account_id}/users/{id}/activate.xml": { - "put": { - "operationId": "user_activate", - "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.", - "tags": [ - "Users" - ], + }, + "post": { + "summary": "Backend Usage Create", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "service_id", "in": "path", - "description": "id of the account.", - "name": "account_id", + "description": "ID of the service.", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { - "in": "path", - "description": "id of the user.", - "name": "id", + "name": "backend_api_id", + "in": "query", + "description": "Backend to be added to the Service (Product).", "required": true, - "x-data-threescale-name": "user_ids", - "type": "integer" + "schema": { + "type": "string" + } + }, + { + "name": "path", + "in": "query", + "description": "Path of the Backend for this product.", + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/accounts/{id}/credit_card.xml": { - "put": { - "operationId": "account_set_credit_card", - "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", - "tags": [ - "Accounts" - ], + "/admin/api/backend_apis/{backend_api_id}/mapping_rules.json": { + "get": { + "summary": "Backend Mapping Rules List", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "backend_api_id", "in": "path", - "description": "id of the account.", - "name": "id", + "description": "ID of the Backend.", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "page", "in": "query", - "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)", - "name": "credit_card_token", - "required": true, - "type": "string" + "description": "Page in the paginated list. Defaults to 1.", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } }, { + "name": "per_page", "in": "query", - "description": "Authorize.net payment profile token. Unused for other payment gateways", - "name": "credit_card_authorize_net_payment_profile_token", - "required": false, - "type": "string" - }, + "description": "Number of results per page. Default and max is 500.", + "schema": { + "type": "integer", + "format": "int32", + "default": 500 + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Backend Mapping Rule Create", + "parameters": [ { + "name": "access_token", "in": "query", - "description": "Year of expiration of credit card. 2digit number", - "name": "credit_card_expiration_year", + "description": "A personal Access Token", "required": true, - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "query", - "description": "Month of expiration of credit card. 2digit number", - "name": "credit_card_expiration_month", + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", "required": true, - "type": "string" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "http_method", "in": "query", - "description": "Name of the person/company to bill", - "name": "billing_address_name", + "description": "HTTP method.", "required": true, - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "pattern", "in": "query", - "description": "Address associated to the credit card", - "name": "billing_address_address", + "description": "Mapping Rule pattern.", "required": true, - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "delta", "in": "query", - "description": "Billing address city", - "name": "billing_address_city", + "description": "Increase the metric by this delta.", "required": true, - "type": "string" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "metric_id", "in": "query", - "description": "Billing address country", - "name": "billing_address_country", + "description": "Metric ID.", "required": true, - "type": "string" - }, - { - "in": "query", - "description": "Billing address state", - "name": "billing_address_state", - "required": false, - "type": "string" - }, - { - "in": "query", - "description": "Billing address phone", - "name": "billing_address_phone", - "required": false, - "type": "string" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "position", "in": "query", - "description": "Billing address ZIP code", - "name": "billing_address_zip", - "required": false, - "type": "string" + "description": "Mapping Rule position", + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "last", "in": "query", - "description": "4 last numbers of the credit card", - "name": "credit_card_partial_number", - "type": "string" + "description": "Last matched Mapping Rule to process", + "schema": { + "type": "ref" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } - }, - "delete": { - "operationId": "account_delete_credit_card", - "summary": "Account Delete Credit Card", - "description": "Removes all credit card info of an account.", - "tags": [ - "Accounts" - ], + } + }, + "/admin/api/accounts/{account_id}/users/{id}/suspend.xml": { + "put": { + "summary": "User Suspend", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } }, { - "in": "path", - "description": "id of the account.", "name": "id", + "in": "path", + "description": "ID of the user.", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/accounts/{account_id}/messages.xml": { - "post": { - "operationId": "account_message", - "summary": "Account Message", - "description": "Sends a message to the account.", - "tags": [ - "Accounts" - ], + "/admin/api/accounts/{account_id}/applications/{id}/suspend.xml": { + "put": { + "summary": "Application Suspend", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the account.", "name": "account_id", + "in": "path", + "description": "ID of the account.", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { - "in": "query", - "description": "Text to send", - "name": "body", + "name": "id", + "in": "path", + "description": "ID of the application.", "required": true, - "type": "string" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/services/{service_id}/metrics/{metric_id}/methods.xml": { + "/admin/api/accounts/{account_id}/applications/{application_id}/keys.xml": { "get": { - "operationId": "method_list", - "summary": "Method List", - "description": "List the methods of a metric. Methods are metrics that are children of a parent metric.", - "tags": [ - "Metric Methods" - ], + "summary": "Application Key List", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "account_id", "in": "path", - "description": "id of the service.", - "name": "service_id", + "description": "ID of the account.", "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "application_id", "in": "path", - "description": "id of the metric.", - "name": "metric_id", + "description": "ID of the application.", "required": true, - "x-data-threescale-name": "metric_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, "post": { - "operationId": "method_create", - "summary": "Method Create", - "description": "Creates a method under a metric.", - "tags": [ - "Metric Methods" - ], + "summary": "Application Key Create", + "operationId": "key_create", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "account_id", "in": "path", - "description": "id of the service.", - "name": "service_id", + "description": "ID of the account.", "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "application_id", "in": "path", - "description": "id of the metric.", - "name": "metric_id", - "required": true, - "x-data-threescale-name": "metric_ids", - "type": "integer" - }, - { - "in": "query", - "description": "Name of the method.", - "name": "friendly_name", + "description": "ID of the application.", "required": true, - "type": "string" - }, - { - "in": "query", - "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", - "name": "system_name", - "required": false, - "type": "string" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "key", "in": "query", - "description": "Measure unit of the method.", - "name": "unit", + "description": "app_key to be added", "required": true, - "type": "string" + "schema": { + "type": "string" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/services/{service_id}/metrics/{metric_id}/methods/{id}.xml": { + "/admin/api/active_docs/{id}.json": { "get": { - "operationId": "method_read", - "summary": "Method Read", - "description": "Returns the method of a metric.", - "tags": [ - "Metric Methods" - ], + "summary": "ActiveDocs Spec Read", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", - "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" - }, - { - "in": "path", - "description": "id of the service.", - "name": "service_id", - "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" - }, - { - "in": "path", - "description": "id of the metric.", - "name": "metric_id", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "metric_ids", - "type": "integer" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the method.", "name": "id", + "in": "path", + "description": "ID of the ActiveDocs spec", "required": true, - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, "put": { - "operationId": "method_update", - "summary": "Method Update", - "description": "Updates a method of a metric.", - "tags": [ - "Metric Methods" - ], + "summary": "ActiveDocs Spec Update", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "id", "in": "path", - "description": "id of the service.", - "name": "service_id", + "description": "ID of the ActiveDocs spec", "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { - "in": "path", - "description": "id of the metric.", - "name": "metric_id", - "required": true, - "x-data-threescale-name": "metric_ids", - "type": "integer" + "name": "name", + "in": "query", + "description": "Name of the ActiveDocs spec", + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the method.", - "name": "id", - "required": true, - "type": "integer" + "name": "service_id", + "in": "query", + "description": "Service ID of the ActiveDocs spec", + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "body", "in": "query", - "description": "Name of the method.", - "name": "friendly_name", - "required": false, - "type": "string" + "description": "ActiveDocs specification in JSON format (based on Swagger)", + "schema": { + "type": "string" + } }, { + "name": "description", "in": "query", - "description": "Measure unit of the method.", - "name": "unit", - "required": false, - "type": "string" + "description": "Description of the ActiveDocs spec", + "schema": { + "type": "string" + } + }, + { + "name": "published", + "in": "query", + "description": "Set to 'true' to publish the spec on the developer portal, or 'false' to hide it", + "schema": { + "type": "boolean" + } + }, + { + "name": "skip_swagger_validations", + "in": "query", + "description": "Set to 'true' to skip validation of the Swagger specification, or 'false' to validate the spec", + "schema": { + "type": "boolean" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, "delete": { - "operationId": "method_delete", - "summary": "Method Delete", - "description": "Deletes the method of a metric.", - "tags": [ - "Metric Methods" - ], + "summary": "ActiveDocs Spec Delete", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "id", "in": "path", - "description": "id of the service.", - "name": "service_id", + "description": "ID of the ActiveDocs spec", "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" - }, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/plan.xml": { + "get": { + "summary": "Account Fetch Account Plan", + "parameters": [ { - "in": "path", - "description": "id of the metric.", - "name": "metric_id", + "name": "access_token", + "in": "query", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "metric_ids", - "type": "integer" + "schema": { + "type": "string" + } }, { + "name": "account_id", "in": "path", - "description": "id of the method.", - "name": "id", + "description": "ID of the account.", "required": true, - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/services/{service_id}/metrics.xml": { + "/admin/api/accounts/{account_id}/applications.xml": { "get": { - "operationId": "metric_list", - "summary": "Metric List", - "description": "Returns the list of metrics of a service.", - "tags": [ - "Metrics" - ], + "summary": "Application List", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "account_id", "in": "path", - "description": "id of the service.", - "name": "service_id", + "description": "ID of the account.", "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, "post": { - "operationId": "metric_create", - "summary": "Metric Create", - "description": "Creates a metric on a service. All metrics are scoped by service.", - "tags": [ - "Metrics" - ], + "summary": "Application Create", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "account_id", "in": "path", - "description": "id of the service.", - "name": "service_id", + "description": "ID of the account.", "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "plan_id", "in": "query", - "description": "Descriptive Name of the metric.", - "name": "friendly_name", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the application to be created.", "required": true, - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "description", "in": "query", - "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", - "name": "system_name", - "required": false, - "type": "string" + "description": "Description of the application to be created.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "user_key", + "in": "query", + "description": "User Key (API Key) of the application to be created.", + "schema": { + "type": "string" + } + }, + { + "name": "application_id", + "in": "query", + "description": "App ID or Client ID (for OAuth and OpenID Connect authentication modes) of the application to be created.", + "schema": { + "type": "string" + } + }, + { + "name": "application_key", + "in": "query", + "description": "App Key(s) or Client Secret (for OAuth and OpenID Connect authentication modes) of the application to be created.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "redirect_url", + "in": "query", + "description": "Redirect URL for the OAuth request.", + "schema": { + "type": "string" + } + }, + { + "name": "first_traffic_at", + "in": "query", + "description": "Timestamp of the first call made by the application.", + "schema": { + "type": "string" + } + }, + { + "name": "first_daily_traffic_at", + "in": "query", + "description": "Timestamp of the first call on the last day when traffic was registered for the application ('Traffic On').", + "schema": { + "type": "string" + } + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/applications.xml": { + "get": { + "summary": "Application List (all services)", + "operationId": "applications", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 500.", + "schema": { + "type": "integer", + "format": "int32", + "default": 500 + } + }, + { + "name": "active_since", + "in": "query", + "description": "Filter date", + "schema": { + "type": "string" + } + }, + { + "name": "inactive_since", + "in": "query", + "description": "Filter date", + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "query", + "description": "Filter by service", + "schema": { + "type": "string" + } }, { + "name": "plan_id", "in": "query", - "description": "DEPRECATED: Please use system_name parameter", - "name": "name", - "required": false, - "type": "string" + "description": "Filter by plan", + "schema": { + "type": "string" + } }, { + "name": "plan_type", "in": "query", - "description": "Measure unit of the metric.", - "name": "unit", - "required": true, - "type": "string" + "description": "Filter by plan type", + "schema": { + "type": "string", + "enum": [ + "free", + "paid" + ] + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/services/{service_id}/metrics/{id}.xml": { + "/admin/api/accounts/{account_id}/applications/{id}.xml": { "get": { - "operationId": "service_metric", - "summary": "Metric Read", - "description": "Returns the metric of a service.", - "tags": [ - "Metrics" - ], + "summary": "Application Read", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "account_id", "in": "path", - "description": "id of the service.", - "name": "service_id", + "description": "ID of the account.", "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { - "in": "path", - "description": "id of the metric.", "name": "id", + "in": "path", + "description": "ID of the application.", "required": true, - "x-data-threescale-name": "metric_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, "put": { - "operationId": "metric_update", - "summary": "Metric Update", - "description": "Updates the metric of a service.", - "tags": [ - "Metrics" - ], + "summary": "Application Update", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "account_id", "in": "path", - "description": "id of the service.", - "name": "service_id", + "description": "ID of the account.", "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { - "in": "path", - "description": "id of the metric.", "name": "id", + "in": "path", + "description": "ID of the application.", "required": true, - "x-data-threescale-name": "metric_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "name", "in": "query", - "description": "Name of the metric.", - "name": "friendly_name", - "required": false, - "type": "string" + "description": "Name of the application.", + "schema": { + "type": "string" + } }, { + "name": "description", "in": "query", - "description": "Measure unit of the metric.", - "name": "unit", - "required": false, - "type": "string" + "description": "Description of the application.", + "schema": { + "type": "string" + } + }, + { + "name": "redirect_url", + "in": "query", + "description": "Redirect URL for the OAuth request.", + "schema": { + "type": "string" + } + }, + { + "name": "first_traffic_at", + "in": "query", + "description": "Timestamp of the first call made by the application.", + "schema": { + "type": "string" + } + }, + { + "name": "first_daily_traffic_at", + "in": "query", + "description": "Timestamp of the first call on the last day when traffic was registered for the application ('Traffic On').", + "schema": { + "type": "string" + } + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, "delete": { - "operationId": "metric_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.", - "tags": [ - "Metrics" - ], + "summary": "Application Delete", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "account_id", "in": "path", - "description": "id of the service.", - "name": "service_id", + "description": "ID of the account.", "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { - "in": "path", - "description": "id of the metric.", "name": "id", + "in": "path", + "description": "ID of the application.", "required": true, - "x-data-threescale-name": "metric_ids", - "type": "integer" - } - ], - "responses": { - "200": { - "description": "No response was specified" - } - } - } - }, - "/admin/api/nginx.zip": { - "get": { - "operationId": "nginx_configuration_files", - "summary": "Nginx configuration files", - "description": "Returns the Nginx configuration files in a zip archive.", - "tags": [ - "nginx" - ], - "parameters": [ - { - "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", - "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/provider.xml": { + "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/pricing_rules.xml": { "get": { - "operationId": "account_read", - "summary": "Account Read", - "description": "Returns your account.", - "tags": [ - "Accounts" - ], + "summary": "Pricing Rules List per Metric", + "operationId": "metric_pricing_rules", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" - } - ], - "responses": { - "200": { - "description": "No response was specified" - } - } - } - }, - "/admin/api/services/{service_id}/features.xml": { - "get": { - "operationId": "service_feature_list", - "summary": "Service Feature List", - "description": "Returns the list of all features of a service.", - "tags": [ - "Service Features" - ], - "parameters": [ + "schema": { + "type": "string" + } + }, { - "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "metric_id", "in": "path", - "description": "id of the service.", - "name": "service_id", + "description": "ID of the metric.", "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, "post": { - "operationId": "service_feature_create", - "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.", - "tags": [ - "Service Features" - ], + "summary": "Pricing Rule Create", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "application_plan_id", "in": "path", - "description": "id of the service.", - "name": "service_id", + "description": "ID of the application plan.", "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { - "in": "query", - "description": "Name of the feature.", - "name": "name", + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", "required": true, - "type": "string" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "min", "in": "query", - "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.", - "name": "system_name", - "type": "string" + "description": "From (min) hit", + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "max", "in": "query", - "description": "Type of plan that the feature will be available for.", - "name": "scope", - "required": false, - "type": "array", - "items": { - "type": "string", - "default": "ApplicationPlan" + "description": "To (max) hit", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cost_per_unit", + "in": "query", + "description": "Cost per unit", + "schema": { + "type": "ref" } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/services/{service_id}/features/{id}.xml": { + "/admin/api/services.xml": { "get": { - "operationId": "service_feature_read", - "summary": "Service Feature Read", - "description": "Returns a feature of a service.", - "tags": [ - "Service Features" - ], + "summary": "Service List", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the service.", - "name": "service_id", - "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } }, { - "in": "path", - "description": "id of the feature.", - "name": "id", - "required": true, - "type": "integer" + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 500.", + "schema": { + "type": "integer", + "format": "int32", + "default": 500 + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, - "put": { - "operationId": "service_feature_update", - "summary": "Service Feature Update", - "description": "Updates a feature of a service.", - "tags": [ - "Service Features" - ], + "post": { + "summary": "Service Create", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the service.", - "name": "service_id", + "name": "name", + "in": "query", + "description": "Name of the service to be created.", "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the feature.", - "name": "id", - "required": true, - "type": "integer" + "name": "description", + "in": "query", + "description": "Description of the service to be created.", + "schema": { + "type": "string" + } }, { + "name": "deployment_option", "in": "query", - "description": "Name of the feature.", - "name": "name", - "required": false, - "type": "string" - } - ], - "responses": { - "200": { - "description": "No response was specified" - } - } - }, - "delete": { - "operationId": "service_feature_delete", - "summary": "Service Feature Delete", - "description": "Deletes a feature of a service.", - "tags": [ - "Service Features" - ], - "parameters": [ + "description": "Deployment option for the gateway: 'hosted' for APIcast hosted, 'self_managed' for APIcast Self-managed, 'service_mesh_istio' for Istio service mesh option", + "schema": { + "type": "string" + } + }, { + "name": "backend_version", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", - "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "description": "Authentication mode: '1' for API key, '2' for App Id / App Key, 'oidc' for OpenID Connect", + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the service.", - "name": "service_id", - "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" + "name": "system_name", + "in": "query", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the feature.", - "name": "id", - "required": true, - "type": "integer" + "name": " ", + "in": "query", + "description": "Extra parameters", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/service_plans/{service_plan_id}/features.xml": { + "/admin/api/services/{service_id}/proxy/mapping_rules.xml": { "get": { - "operationId": "service_plan_feature_list", - "summary": "Service Plan Feature List", - "description": "Returns the list of features of a service plan.", - "tags": [ - "Service Plan Features" - ], + "summary": "Proxy Mapping Rules List", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "service_id", "in": "path", - "description": "id of the service plan.", - "name": "service_plan_id", + "description": "ID of the service.", "required": true, - "x-data-threescale-name": "service_plan_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, "post": { - "operationId": "service_plan_feature_add", - "summary": "Service Plan Feature Add", - "description": "Associates an existing feature to a service plan.", - "tags": [ - "Service Plan Features" - ], + "summary": "Proxy Mapping Rule Create", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "service_id", "in": "path", - "description": "id of the service plan.", - "name": "service_plan_id", + "description": "ID of the service.", "required": true, - "x-data-threescale-name": "service_plan_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "http_method", "in": "query", - "description": "id of the feature.", - "name": "feature_id", + "description": "HTTP method.", "required": true, - "type": "integer" - } - ], - "responses": { - "200": { - "description": "No response was specified" - } - } - } - }, - "/admin/api/service_plans.xml": { - "get": { - "operationId": "service_plan_list_all_services", - "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.", - "tags": [ - "Service Plans" - ], - "parameters": [ + "schema": { + "type": "string" + } + }, + { + "name": "pattern", + "in": "query", + "description": "Mapping Rule pattern.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "delta", + "in": "query", + "description": "Increase the metric by this delta.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "query", + "description": "Metric ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, { + "name": "position", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", - "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "description": "Mapping Rule position", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "last", + "in": "query", + "description": "Last matched Mapping Rule to process", + "schema": { + "type": "ref" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/services/{id}/service_plans.xml": { + "/admin/api/active_docs.json": { "get": { - "operationId": "service_plan_list", - "summary": "Service Plan List", - "description": "Returns a list of service plans for a service.", - "tags": [ - "Service Plans" - ], + "summary": "ActiveDocs Spec List", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", - "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" - }, - { - "in": "path", - "description": "id of the service.", - "name": "id", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" + "schema": { + "type": "string" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, "post": { - "operationId": "service_plan_create", - "summary": "Service Plan Create", - "description": "Creates a new service plan in a service.", - "tags": [ - "Service Plans" - ], + "summary": "ActiveDocs Spec Create", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the service.", - "name": "id", + "name": "name", + "in": "query", + "description": "Name of the ActiveDocs spec", "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" + "schema": { + "type": "string" + } }, { + "name": "system_name", "in": "query", - "description": "Name of the service plan.", - "name": "name", - "required": true, - "type": "string" + "description": "System Name of the ActiveDocs spec. Only ASCII letters, numbers, dashes and underscores are allowed. If blank, 'system_name' will be generated from the 'name' parameter", + "schema": { + "type": "string" + } }, { + "name": "service_id", "in": "query", - "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.", - "name": "system_name", - "type": "string" - } - ], - "responses": { - "200": { - "description": "No response was specified" - } - } - } - }, - "/admin/api/services/{service_id}/service_plans/{id}.xml": { - "get": { - "operationId": "service_plan_read", - "summary": "Service Plan Read", - "description": "Returns a service plan by id.", - "tags": [ - "Service Plans" - ], - "parameters": [ + "description": "Service ID of the ActiveDocs spec", + "schema": { + "type": "integer", + "format": "int32" + } + }, { + "name": "body", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "ActiveDocs specification in JSON format (based on Swagger)", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the service.", - "name": "service_id", - "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" + "name": "description", + "in": "query", + "description": "Description of the ActiveDocs spec", + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the service plan.", - "name": "id", - "required": true, - "x-data-threescale-name": "service_plan_ids", - "type": "integer" + "name": "published", + "in": "query", + "description": "Set to 'true' to publish the spec on the developer portal, or 'false' to hide it. The default value is 'false'", + "schema": { + "type": "boolean" + } + }, + { + "name": "skip_swagger_validations", + "in": "query", + "description": "Set to 'true' to skip validation of the Swagger specification, or 'false' to validate the spec. The default value is 'false'", + "schema": { + "type": "boolean" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } - }, - "put": { - "operationId": "service_plan_update", - "summary": "Service Plan Update", - "description": "Updates a service plan by id.", - "tags": [ - "Service Plans" - ], + } + }, + "/admin/api/backend_apis.json": { + "get": { + "summary": "Backend List", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", - "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" - }, - { - "in": "path", - "description": "id of the service.", - "name": "service_id", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the service plan.", - "name": "id", - "required": true, - "x-data-threescale-name": "service_plan_ids", - "type": "integer" + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } }, { + "name": "per_page", "in": "query", - "description": "Name of the service plan.", - "name": "name", - "required": false, - "type": "string" + "description": "Number of results per page. Default and max is 500.", + "schema": { + "type": "integer", + "format": "int32", + "default": 500 + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, - "delete": { - "operationId": "service_plan_delete", - "summary": "Service Plan Delete", - "description": "Deletes a service plan by id.", - "tags": [ - "Service Plans" - ], + "post": { + "summary": "Backend Create", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the service.", - "name": "service_id", + "name": "name", + "in": "query", + "description": "Name of the Backend", "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the service plan.", - "name": "id", - "required": true, - "x-data-threescale-name": "service_plan_ids", - "type": "integer" - } - ], - "responses": { - "200": { - "description": "No response was specified" - } - } - } - }, - "/admin/api/services/{service_id}/service_plans/{id}/default.xml": { - "put": { - "operationId": "service_plan_set_to_default", - "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.", - "tags": [ - "Service Plans" - ], - "parameters": [ - { + "name": "system_name", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", - "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the service.", - "name": "service_id", - "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" + "name": "description", + "in": "query", + "description": "Description of the Backend", + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the service plan.", - "name": "id", + "name": "private_endpoint", + "in": "query", + "description": "Private Base URL (your API)", "required": true, - "x-data-threescale-name": "service_plan_ids", - "type": "integer" + "schema": { + "type": "string" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/services.xml": { + "/admin/api/features.xml": { "get": { - "operationId": "service_list", - "summary": "Service List", - "description": "Returns the list of all services.", - "tags": [ - "Services" - ], + "summary": "Account Features List", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, "post": { - "operationId": "service_create", - "summary": "Service Create", - "description": "Creates a new service.", - "tags": [ - "Services" - ], + "summary": "Account Feature Create", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "query", - "description": "Name of the service to be created.", "name": "name", + "in": "query", + "description": "Name of the feature.", "required": true, - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "query", - "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.", "name": "system_name", - "type": "string" + "in": "query", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "schema": { + "type": "string" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/services/{id}.xml": { + "/admin/api/accounts/{id}.xml": { "get": { - "operationId": "service_read", - "summary": "Service Read", - "description": "Returns the service by id.", - "tags": [ - "Services" - ], + "summary": "Account Read", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the service.", "name": "id", + "in": "path", + "description": "ID of the account.", "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, "put": { - "operationId": "service_update", - "summary": "Service Update", - "description": "Update the service.", - "tags": [ - "Services" - ], + "summary": "Account Update", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the service.", "name": "id", + "in": "path", + "description": "ID of the account.", "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "org_name", "in": "query", - "description": "New name for the service.", - "name": "name", - "required": false, - "type": "string" + "description": "Organization name of the account.", + "schema": { + "type": "string" + } + }, + { + "name": "monthly_billing_enabled", + "in": "query", + "description": "Updates monthly billing status.", + "schema": { + "type": "boolean" + } + }, + { + "name": "monthly_charging_enabled", + "in": "query", + "description": "Updates monthly charging status.", + "schema": { + "type": "boolean" + } + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } - } - }, - "/admin/api/signup.xml": { - "post": { - "operationId": "signup_express", - "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.", - "tags": [ - "Signup" - ], + }, + "delete": { + "summary": "Account Delete ", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "query", - "description": "Organization Name of the buyer account.", - "name": "org_name", + "name": "id", + "in": "path", + "description": "ID of the account.", "required": true, - "type": "string" - }, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/pricing_rules/{id}.json": { + "delete": { + "summary": "Pricing Rule Delete", + "parameters": [ { + "name": "access_token", "in": "query", - "description": "Username of the admin user (on the new buyer account).", - "name": "username", + "description": "A personal Access Token", "required": true, - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "query", - "description": "Email of the admin user.", - "name": "email", + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", "required": true, - "type": "string" + "schema": { + "type": "integer", + "format": "int32" + } }, { - "in": "query", - "description": "Password of the admin user.", - "name": "password", + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", "required": true, - "type": "string" - }, - { - "in": "query", - "description": "id of the account plan (if not assigned default will be used instead).", - "name": "account_plan_id", - "required": false, - "x-data-threescale-name": "account_plan_ids", - "type": "integer" - }, - { - "in": "query", - "description": "id of the service plan (if not assigned default will be used instead).", - "name": "service_plan_id", - "required": false, - "x-data-threescale-name": "service_plan_ids", - "type": "integer" - }, - { - "in": "query", - "description": "id of the application plan (if not assigned default will be used instead).", - "name": "application_plan_id", - "required": false, - "x-data-threescale-name": "application_plan_ids", - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { - "in": "query", - "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.", - "name": "additional_fields", - "type": "array", - "items": { - "type": "string" + "name": "id", + "in": "path", + "description": "ID of the pricing rule.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/users.xml": { + "/admin/api/application_plans/{application_plan_id}/pricing_rules.xml": { "get": { - "operationId": "user_list_provider_account", - "summary": "User List (provider account)", - "description": "Lists the users of the provider account. You can apply filters by state and/or role.", - "tags": [ - "User Provider Accounts" - ], + "summary": "Pricing Rules List per Application Plan", + "operationId": "pricing_rules", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" - }, - { - "in": "query", - "description": "Filter users by State.", - "name": "state", - "required": false, - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "query", - "description": "Filter users by Role.", - "name": "role", - "required": false, - "type": "string" + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } - }, - "post": { - "operationId": "user_create_provider_account", - "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.", - "tags": [ - "User Provider Accounts" - ], + } + }, + "/admin/api/services/{service_id}/proxy/mapping_rules/{id}.xml": { + "get": { + "summary": "Proxy Mapping Rules Show", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", - "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" - }, - { - "in": "query", - "description": "Username of the user.", - "name": "username", + "description": "A personal Access Token", "required": true, - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "query", - "description": "Email of the user.", - "name": "email", + "name": "service_id", + "in": "path", + "description": "ID of the service.", "required": true, - "type": "string" + "schema": { + "type": "integer", + "format": "int32" + } }, { - "in": "query", - "description": "Password of the user.", - "name": "password", + "name": "id", + "in": "path", + "description": "Mapping Rule ID.", "required": true, - "type": "string" - }, - { - "in": "query", - "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.", - "name": "additional_fields", - "type": "array", - "items": { - "type": "string" + "schema": { + "type": "integer", + "format": "int32" } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } - } - }, - "/admin/api/users/{id}.xml": { - "get": { - "operationId": "user_read_provider_account", - "summary": "User Read (provider account)", - "description": "Gets the user of the provider account by id", - "tags": [ - "User Provider Accounts" - ], + }, + "delete": { + "summary": "Proxy Mapping Rule Delete", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "service_id", "in": "path", - "description": "id of the user.", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { "name": "id", + "in": "path", + "description": "Mapping Rule ID.", "required": true, - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, - "put": { - "operationId": "user_update_provider_account", - "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.", - "tags": [ - "User Provider Accounts" - ], + "patch": { + "summary": "Proxy Mapping Rule Update", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "service_id", "in": "path", - "description": "id of the user.", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { "name": "id", + "in": "path", + "description": "Mapping Rule ID.", "required": true, - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "http_method", "in": "query", - "description": "Username of the user.", - "name": "username", - "required": false, - "type": "string" + "description": "HTTP method.", + "schema": { + "type": "string" + } }, { + "name": "pattern", "in": "query", - "description": "Email of the user.", - "name": "email", - "required": false, - "type": "string" + "description": "Mapping Rule pattern.", + "schema": { + "type": "string" + } }, { + "name": "delta", "in": "query", - "description": "Password of the user.", - "name": "password", - "required": false, - "type": "string" + "description": "Increase the metric by this delta.", + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "metric_id", "in": "query", - "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.", - "name": "additional_fields", - "type": "array", - "items": { - "type": "string" + "description": "Metric ID.", + "schema": { + "type": "integer", + "format": "int32" } - } - ], - "responses": { - "200": { - "description": "No response was specified" - } - } - }, - "delete": { - "operationId": "user_delete_provider_account", - "summary": "User Delete (provider account)", - "description": "Deletes the user of the provider account by id", - "tags": [ - "User Provider Accounts" - ], - "parameters": [ + }, { + "name": "position", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", - "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "description": "Mapping Rule position", + "schema": { + "type": "integer", + "format": "int32" + } }, { - "in": "path", - "description": "id of the user.", - "name": "id", - "required": true, - "type": "integer" + "name": "last", + "in": "query", + "description": "Last matched Mapping Rule to process", + "schema": { + "type": "ref" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/users/{id}/member.xml": { - "put": { - "operationId": "user_change_role_to_member_provider_account", - "summary": "User change Role to Member (provider account)", - "description": "Changes the role of the user of the provider account to member", - "tags": [ - "User Provider Accounts" - ], + "/admin/api/service_plans.xml": { + "get": { + "summary": "Service Plan List (all services)", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", - "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" - }, - { - "in": "path", - "description": "id of the user.", - "name": "id", + "description": "A personal Access Token", "required": true, - "type": "integer" + "schema": { + "type": "string" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/users/{id}/admin.xml": { - "put": { - "operationId": "user_change_role_to_admin_provider_account", - "summary": "User change Role to Admin (provider account)", - "description": "Changes the role of the provider account to admin (full rights and privileges)", - "tags": [ - "User Provider Accounts" - ], + "/admin/api/services/{service_id}/proxy/configs/{environment}/{version}/promote.json": { + "post": { + "summary": "Proxy Config Promote", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "service_id", "in": "path", - "description": "id of the user.", - "name": "id", + "description": "ID of the service.", "required": true, - "type": "integer" - } - ], - "responses": { - "200": { - "description": "No response was specified" - } - } - } - }, - "/admin/api/users/{id}/suspend.xml": { - "put": { - "operationId": "user_suspend_provider_account", - "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.", - "tags": [ - "User Provider Accounts" - ], - "parameters": [ + "schema": { + "type": "integer", + "format": "int32" + } + }, { - "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "name": "environment", + "in": "path", + "description": "Gateway environment. Must be 'sandbox' or 'production'", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "version", "in": "path", - "description": "id of the user.", - "name": "id", + "description": "Version of the Proxy config.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "to", + "in": "query", + "description": "the name of the destination environment", "required": true, - "type": "integer" + "schema": { + "type": "string" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/users/{id}/unsuspend.xml": { - "put": { - "operationId": "user_unsuspend_provider_account", - "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.", - "tags": [ - "User Provider Accounts" - ], + "/admin/api/services/{id}/service_plans.xml": { + "get": { + "summary": "Service Plan List", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the user.", "name": "id", + "in": "path", + "description": "ID of the service.", "required": true, - "type": "integer" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } - } - }, - "/admin/api/users/{id}/activate.xml": { - "put": { - "operationId": "user_activate_provider_account", - "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.", - "tags": [ - "User Provider Accounts" - ], + }, + "post": { + "summary": "Service Plan Create", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { - "in": "path", - "description": "id of the user.", "name": "id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the service plan.", "required": true, - "type": "integer" + "schema": { + "type": "string" + } + }, + { + "name": "approval_required", + "in": "query", + "description": "Set the 'Service subscriptions require approval?' to 'true' or 'false'", + "schema": { + "type": "boolean" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "schema": { + "type": "string" + } + }, + { + "name": "state_event", + "in": "query", + "description": "State event of the service plan. It can be 'publish' or 'hide'", + "schema": { + "type": "string" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } }, - "/admin/api/webhooks/failures.xml": { + "/admin/api/account/authentication_providers.xml": { "get": { - "operationId": "webhooks_list_failed_deliveries", - "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.", - "tags": [ - "Webhooks" - ], + "summary": "Authentication Providers Admin Portal List", "parameters": [ { + "name": "access_token", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "A personal Access Token", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } }, - "delete": { - "operationId": "webhooks_delete_failed_deliveries", - "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.", - "tags": [ - "Webhooks" - ], + "post": { + "summary": "Authentication Provider Admin Portal Create", "parameters": [ { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "kind", "in": "query", - "description": "Your api key with 3scale (also known as provider key).", - "name": "provider_key", + "description": "The kind of authentication provider which can be either 'auth0' or 'keycloak'. Use 'keycloak' for Red Hat Single Sign-On.", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "name", "in": "query", - "description": "Only failed webhook deliveries whose time is less or equal than the passed time are destroyed (if used).", - "name": "time", - "required": false, - "type": "string", - "format": "date-time" + "description": "Name of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "client_id", + "in": "query", + "description": "Client ID of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "client_secret", + "in": "query", + "description": "Client Secret of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "site", + "in": "query", + "description": "Site o Realm of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "skip_ssl_certificate_verification", + "in": "query", + "description": "Skip SSL certificate verification. False by default.", + "schema": { + "type": "boolean" + } + }, + { + "name": "published", + "in": "query", + "description": "Published authentication provider. False by default", + "schema": { + "type": "boolean" + } } ], "responses": { - "200": { - "description": "No response was specified" + "default": { + "description": "success", + "content": {} } } } } - } -} + }, + "components": {} +} \ No newline at end of file diff --git a/doc/active_docs/analytics-s20.json b/doc/active_docs/analytics-s20.json index 68c23d22d6..2f1a07ea81 100644 --- a/doc/active_docs/analytics-s20.json +++ b/doc/active_docs/analytics-s20.json @@ -1,257 +1,294 @@ - { - "host": "example.com", - "basePath": "/", - "schemes": [ - "https" - ], - "swagger": "2.0", + "openapi": "3.0.1", "info": { "title": "Analytics API", "version": "1.0" }, + "servers": [ + { + "url": "http://localhost:3000" + } + ], "paths": { "/stats/applications/{application_id}/usage": { "get": { - "produces": [ - "application/json", - "application/xml" - ], - "operationId": "application_usage_by_metric", - "summary": "Application Usage by Metric", - "description": "Returns the usage data for a given metric (or method) of an application.", "tags": [ "Application Stats" ], + "summary": "Application Usage by Metric", + "description": "Returns the usage data for a given metric (or method) of an application.", + "operationId": "application_usage_by_metric", "parameters": [ { + "name": "provider_key", "in": "query", "description": "Your api key with 3scale", - "name": "provider_key", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string", + "x-data-threescale-name": "api_keys" + }, + "x-data-threescale-name": "api_keys" }, { + "name": "application_id", "in": "path", "description": "id of the application.", - "name": "application_id", "required": true, - "x-data-threescale-name": "application_ids", - "type": "integer" + "schema": { + "type": "integer", + "x-data-threescale-name": "application_ids" + }, + "x-data-threescale-name": "application_ids" }, { + "name": "metric_name", "in": "query", "description": "System name of metric for which to get data.", - "name": "metric_name", "required": true, - "x-data-threescale-name": "metric_names", - "type": "string", - "default": "hits" + "schema": { + "type": "string", + "default": "hits", + "x-data-threescale-name": "metric_names" + }, + "x-data-threescale-name": "metric_names" }, { + "name": "since", "in": "query", "description": "Time range start. Format YYYY-MM-DD HH:MM:SS, examples: '2012-02-22', '2012-02-22 23:49:00'", - "name": "since", "required": true, - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "period", "in": "query", "description": "Period, combined with since give the stats for the time range [since .. since + period]. It is required if until is not passed.", - "name": "period", - "required": false, - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "until", "in": "query", "description": "Time range end. Format YYYY-MM-DD HH:MM:SS", - "name": "until", - "required": false, - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "granularity", "in": "query", "description": "Granularity of the results. Each period has an associated granularity.", - "name": "granularity", "required": true, - "type": "string", - "default": "month" + "schema": { + "type": "string", + "default": "month" + } }, { + "name": "timezone", "in": "query", "description": "Timezone to do the calculations in.", - "name": "timezone", - "required": false, - "type": "string", - "default": "UTC" + "schema": { + "type": "string", + "default": "UTC" + } }, { + "name": "skip_change", "in": "query", "description": "Skip period over period calculations (defaults to true).", - "name": "skip_change", - "required": false, - "type": "boolean", - "default": true + "schema": { + "type": "boolean", + "default": true + } } ], "responses": { "200": { - "description": "No response was specified" + "description": "No response was specified", + "content": {} } } } }, "/stats/services/{service_id}/usage": { "get": { - "produces": [ - "application/json", - "application/xml" - ], - "operationId": "application_usage_by_metric", - "summary": "Service Usage by Metric", - "description": "Returns the usage data of a given metric (or method) of a service.", "tags": [ "Service Stats" ], + "summary": "Service Usage by Metric", + "description": "Returns the usage data of a given metric (or method) of a service.", + "operationId": "application_usage_by_metric", "parameters": [ { + "name": "provider_key", "in": "query", "description": "Your api key with 3scale", - "name": "provider_key", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string", + "x-data-threescale-name": "api_keys" + }, + "x-data-threescale-name": "api_keys" }, { + "name": "service_id", "in": "path", "description": "id of the service.", - "name": "service_id", "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" + "schema": { + "type": "integer", + "x-data-threescale-name": "service_ids" + }, + "x-data-threescale-name": "service_ids" }, { + "name": "metric_name", "in": "query", "description": "System name of metric for which to get data.", - "name": "metric_name", "required": true, - "x-data-threescale-name": "metric_names", - "type": "string", - "default": "hits" + "schema": { + "type": "string", + "default": "hits", + "x-data-threescale-name": "metric_names" + }, + "x-data-threescale-name": "metric_names" }, { + "name": "since", "in": "query", "description": "Time range start. Format YYYY-MM-DD HH:MM:SS, examples: '2012-02-22', '2012-02-22 23:49:00'", - "name": "since", "required": true, - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "period", "in": "query", "description": "Period, combined with since give the stats for the time range [since .. since + period]. It is required if until is not passed.", - "name": "period", - "required": false, - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "until", "in": "query", "description": "Time range end. Format YYYY-MM-DD HH:MM:SS", - "name": "until", - "required": false, - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "granularity", "in": "query", "description": "Granularity of the results. Each period has an associated granularity.", - "name": "granularity", "required": true, - "type": "string", - "default": "month" + "schema": { + "type": "string", + "default": "month" + } }, { + "name": "timezone", "in": "query", "description": "Timezone to do the calculations in.", - "name": "timezone", - "required": false, - "type": "string", - "default": "UTC" + "schema": { + "type": "string", + "default": "UTC" + } }, { + "name": "skip_change", "in": "query", "description": "Skip period over period calculations (defaults to true).", - "name": "skip_change", - "required": false, - "type": "boolean", - "default": true + "schema": { + "type": "boolean", + "default": true + } } ], "responses": { "200": { - "description": "No response was specified" + "description": "No response was specified", + "content": {} } } } }, "/stats/services/{service_id}/top_applications": { "get": { - "produces": [ - "application/json", - "application/xml" - ], - "operationId": "service_top_applications", - "summary": "Service Top Applications", - "description": "Returns usage and application data for the top 10 most active applications of a service.", "tags": [ "Service Stats" ], + "summary": "Service Top Applications", + "description": "Returns usage and application data for the top 10 most active applications of a service.", + "operationId": "service_top_applications", "parameters": [ { + "name": "provider_key", "in": "query", "description": "Your api key with 3scale", - "name": "provider_key", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string", + "x-data-threescale-name": "api_keys" + }, + "x-data-threescale-name": "api_keys" }, { + "name": "service_id", "in": "path", "description": "id of the service.", - "name": "service_id", "required": true, - "x-data-threescale-name": "service_ids", - "type": "integer" + "schema": { + "type": "integer", + "x-data-threescale-name": "service_ids" + }, + "x-data-threescale-name": "service_ids" }, { + "name": "since", "in": "query", "description": "Time range start. Format YYYY-MM-DD HH:MM:SS, examples: '2012-02-22', '2012-02-22 23:49:00'", - "name": "since", "required": true, - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "period", "in": "query", "description": "Period, combined with since give the stats for the time range [since .. since + period]. It is required if until is not passed.", - "name": "period", - "required": false, - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "metric_name", "in": "query", "description": "System name of metric for which to get data.", - "name": "metric_name", "required": true, - "x-data-threescale-name": "metric_names", - "type": "string", - "default": "hits" + "schema": { + "type": "string", + "default": "hits", + "x-data-threescale-name": "metric_names" + }, + "x-data-threescale-name": "metric_names" } ], "responses": { "200": { - "description": "No response was specified" + "description": "No response was specified", + "content": {} } } } } - } -} + }, + "components": {} +} \ No newline at end of file diff --git a/doc/active_docs/finance-s20.json b/doc/active_docs/finance-s20.json index 7ca6eca678..f2eb8bc528 100644 --- a/doc/active_docs/finance-s20.json +++ b/doc/active_docs/finance-s20.json @@ -1,312 +1,373 @@ - { - "host": "example.com", - "basePath": "/", - "schemes": [ - "https" - ], - "swagger": "2.0", + "openapi": "3.0.1", "info": { "title": "Billing API", "version": "1.0" }, + "servers": [ + { + "url": "https://example.com/" + } + ], "paths": { "/api/accounts/{account_id}/invoices.xml": { "get": { - "operationId": "invoice_list_by_account", - "summary": "Invoice List by Account", - "description": "Returns the list of all invoices by account. Note that results can be paginated. You can apply filters by month and by state of the invoices.", "tags": [ "Finances" ], + "summary": "Invoice List by Account", + "description": "Returns the list of all invoices by account. Note that results can be paginated. You can apply filters by month and by state of the invoices.", + "operationId": "invoice_list_by_account", "parameters": [ { + "name": "provider_key", "in": "query", "description": "Your api key with 3scale", - "name": "provider_key", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string", + "x-data-threescale-name": "api_keys" + }, + "x-data-threescale-name": "api_keys" }, { + "name": "account_id", "in": "path", "description": "id of the account.", - "name": "account_id", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer", - "format": "int32" + "schema": { + "type": "integer", + "format": "int32", + "x-data-threescale-name": "account_ids" + }, + "x-data-threescale-name": "account_ids" }, { + "name": "state", "in": "query", "description": "Filter the invoice by state. 'open': line items can be added (only via web interface). 'pending': the invoice has been issued, no items can be added, the PDF has been generated and the invoice is waiting to be charged for. 'paid': sucessfully paid. 'unpaid': charging failed at least once. 'cancelled': the invoice was explicitely cancelled and is out of normal life-cycle.", - "name": "state", - "required": false, - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "month", "in": "query", "description": "Filter the invoice by month. Format YYYY-MM, e.g. '2012-03' for march 2012", - "name": "month", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "page", "in": "query", "description": "Page in the paginated list. Defaults to 1.", - "name": "page", - "type": "integer", - "format": "int32", - "default": 1 + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } }, { + "name": "per_page", "in": "query", "description": "Number of results per page. Default and max is 20.", - "name": "per_page", - "type": "integer", - "format": "int32", - "default": 20 + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + } } ], "responses": { "200": { - "description": "No response was specified" + "description": "No response was specified", + "content": {} } } } }, "/api/accounts/{account_id}/invoices/{id}.xml": { "get": { - "operationId": "invoice_by_account", - "summary": "Invoice by Account", - "description": "Returns an invoice by id.", "tags": [ "Finances" ], + "summary": "Invoice by Account", + "description": "Returns an invoice by id.", + "operationId": "invoice_by_account", "parameters": [ { + "name": "provider_key", "in": "query", "description": "Your api key with 3scale", - "name": "provider_key", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string", + "x-data-threescale-name": "api_keys" + }, + "x-data-threescale-name": "api_keys" }, { + "name": "account_id", "in": "path", "description": "id of the account.", - "name": "account_id", "required": true, - "x-data-threescale-name": "account_ids", - "type": "integer", - "format": "int32" + "schema": { + "type": "integer", + "format": "int32", + "x-data-threescale-name": "account_ids" + }, + "x-data-threescale-name": "account_ids" }, { + "name": "id", "in": "path", "description": "id of the invoice.", - "name": "id", "required": true, - "type": "integer", - "format": "int32" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { "200": { - "description": "No response was specified" + "description": "No response was specified", + "content": {} } } } }, "/api/invoices.xml": { "get": { - "operationId": "invoice_list", - "summary": "Invoice List", - "description": "Returns the list of all invoices. Note that results can be paginated. You can apply filters by month and by state of the invoices.", "tags": [ "Finances" ], + "summary": "Invoice List", + "description": "Returns the list of all invoices. Note that results can be paginated. You can apply filters by month and by state of the invoices.", + "operationId": "invoice_list", "parameters": [ { + "name": "provider_key", "in": "query", "description": "Your api key with 3scale", - "name": "provider_key", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string", + "x-data-threescale-name": "api_keys" + }, + "x-data-threescale-name": "api_keys" }, { + "name": "state", "in": "query", "description": "Filter the invoice by state. 'open': line items can be added (only via web interface). 'pending': the invoice has been issued, no items can be added, the PDF has been generated and the invoice is waiting to be charged for. 'paid': sucessfully paid. 'unpaid': charging failed at least once. 'cancelled': the invoice was explicitely cancelled and is out of normal life-cycle.", - "name": "state", - "required": false, - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "month", "in": "query", "description": "Filter the invoice by month. Format YYYY-MM, e.g. '2012-03' for march 2012", - "name": "month", - "type": "string" + "schema": { + "type": "string" + } }, { + "name": "page", "in": "query", "description": "Page in the paginated list. Defaults to 1.", - "name": "page", - "type": "integer", - "format": "int32", - "default": 1 + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } }, { + "name": "per_page", "in": "query", "description": "Number of results per page. Default and max is 20.", - "name": "per_page", - "type": "integer", - "format": "int32", - "default": 20 + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + } } ], "responses": { "200": { - "description": "No response was specified" + "description": "No response was specified", + "content": {} } } } }, "/api/invoices/{id}.xml": { "get": { - "operationId": "invoice_show", - "summary": "Invoice", - "description": "Returns an invoice by id.", "tags": [ "Finances" ], + "summary": "Invoice", + "description": "Returns an invoice by id.", + "operationId": "invoice_show", "parameters": [ { + "name": "provider_key", "in": "query", "description": "Your api key with 3scale", - "name": "provider_key", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string", + "x-data-threescale-name": "api_keys" + }, + "x-data-threescale-name": "api_keys" }, { + "name": "id", "in": "path", "description": "id of the invoice.", - "name": "id", "required": true, - "type": "integer", - "format": "int32" + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { "200": { - "description": "No response was specified" + "description": "No response was specified", + "content": {} } } } }, "/api/invoices/{id}/state.xml": { "put": { - "operationId": "invoice_state", - "summary": "Invoice", - "description": "Modifies the state of the invoice.", "tags": [ "Finances" ], + "summary": "Invoice", + "description": "Modifies the state of the invoice.", + "operationId": "invoice_state", "parameters": [ { + "name": "provider_key", "in": "query", "description": "Your api key with 3scale", - "name": "provider_key", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string", + "x-data-threescale-name": "api_keys" + }, + "x-data-threescale-name": "api_keys" }, { + "name": "id", "in": "path", "description": "id of the invoice.", - "name": "id", "required": true, - "type": "integer", - "format": "int32" + "schema": { + "type": "integer", + "format": "int32" + } }, { + "name": "state", "in": "query", "description": "State of the invoice to set. Only 'cancel' value is allowed", - "name": "state", "required": true, - "x-data-threescale-name": "state", - "type": "string" + "schema": { + "type": "string", + "x-data-threescale-name": "state" + }, + "x-data-threescale-name": "state" } ], "responses": { "200": { - "description": "No response was specified" + "description": "No response was specified", + "content": {} } } } }, "/api/invoices/{invoice_id}/line_items.xml": { "get": { - "operationId": "invoice_line_items_list", - "summary": "Invoice Line Items List", - "description": "Returns the list of all line items of an invoice.", "tags": [ "Finances" ], + "summary": "Invoice Line Items List", + "description": "Returns the list of all line items of an invoice.", + "operationId": "invoice_line_items_list", "parameters": [ { + "name": "provider_key", "in": "query", "description": "Your api key with 3scale", - "name": "provider_key", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string", + "x-data-threescale-name": "api_keys" + }, + "x-data-threescale-name": "api_keys" }, { + "name": "invoice_id", "in": "path", "description": "id of the invoice.", - "name": "invoice_id", "required": true, - "type": "integer" + "schema": { + "type": "integer" + } } ], "responses": { "200": { - "description": "No response was specified" + "description": "No response was specified", + "content": {} } } } }, "/api/invoices/{invoice_id}/payment_transactions.xml": { "get": { - "operationId": "invoice_payment_transactions_list", - "summary": "Invoice Payment Transactions List", - "description": "Returns the list of all payment transactions of an invoice.", "tags": [ "Finances" ], + "summary": "Invoice Payment Transactions List", + "description": "Returns the list of all payment transactions of an invoice.", + "operationId": "invoice_payment_transactions_list", "parameters": [ { + "name": "provider_key", "in": "query", "description": "Your api key with 3scale", - "name": "provider_key", "required": true, - "x-data-threescale-name": "api_keys", - "type": "string" + "schema": { + "type": "string", + "x-data-threescale-name": "api_keys" + }, + "x-data-threescale-name": "api_keys" }, { + "name": "invoice_id", "in": "path", "description": "id of the invoice.", - "name": "invoice_id", "required": true, - "type": "integer" + "schema": { + "type": "integer" + } } ], "responses": { "200": { - "description": "No response was specified" + "description": "No response was specified", + "content": {} } } } } - } -} + }, + "components": {} +} \ No newline at end of file From 60f10bf2241e7e148ffa51476f88d5c9ef032b0f Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Mon, 12 Dec 2022 11:29:48 +0530 Subject: [PATCH 04/85] THREESCALE-3927 removed rswag gem completely --- Gemfile | 1 - Gemfile.lock | 15 --------------- config/initializers/rswag_api.rb | 14 -------------- config/initializers/rswag_ui.rb | 16 ---------------- config/routes.rb | 2 -- swagger/v1/swagger.json | 19 ------------------- 6 files changed, 67 deletions(-) delete mode 100644 config/initializers/rswag_api.rb delete mode 100644 config/initializers/rswag_ui.rb delete mode 100644 swagger/v1/swagger.json diff --git a/Gemfile b/Gemfile index 8ea84d6316..610f557819 100644 --- a/Gemfile +++ b/Gemfile @@ -250,7 +250,6 @@ group :development, :test do gem 'source2swagger', git: 'https://github.com/3scale/source2swagger' gem 'unicorn-rails' - gem 'rswag' end gem 'webpacker', '5.4.4' diff --git a/Gemfile.lock b/Gemfile.lock index 1a551ed65c..b5e540748e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -685,20 +685,6 @@ GEM rspec (~> 3.0) rspec_junit_formatter (0.4.1) rspec-core (>= 2, < 4, != 2.12.0) - rswag (2.7.0) - rswag-api (= 2.7.0) - rswag-specs (= 2.7.0) - rswag-ui (= 2.7.0) - rswag-api (2.7.0) - railties (>= 3.1, < 7.1) - rswag-specs (2.7.0) - activesupport (>= 3.1, < 7.1) - json-schema (>= 2.2, < 4.0) - railties (>= 3.1, < 7.1) - rspec-core (>= 2.14) - rswag-ui (2.7.0) - actionpack (>= 3.1, < 7.1) - railties (>= 3.1, < 7.1) rubocop (1.31.0) parallel (~> 1.10) parser (>= 3.1.2.1) @@ -1028,7 +1014,6 @@ DEPENDENCIES rspec-rails (~> 4.1) rspec_api_documentation rspec_junit_formatter - rswag rubocop (= 1.31) rubocop-performance rubocop-rails diff --git a/config/initializers/rswag_api.rb b/config/initializers/rswag_api.rb deleted file mode 100644 index 4d72f68760..0000000000 --- a/config/initializers/rswag_api.rb +++ /dev/null @@ -1,14 +0,0 @@ -Rswag::Api.configure do |c| - - # Specify a root folder where Swagger JSON files are located - # This is used by the Swagger middleware to serve requests for API descriptions - # NOTE: If you're using rswag-specs to generate Swagger, you'll need to ensure - # that it's configured to generate files in the same folder - c.swagger_root = Rails.root.to_s + '/swagger' - - # Inject a lambda function to alter the returned Swagger prior to serialization - # The function will have access to the rack env for the current request - # For example, you could leverage this to dynamically assign the "host" property - # - #c.swagger_filter = lambda { |swagger, env| swagger['host'] = env['HTTP_HOST'] } -end diff --git a/config/initializers/rswag_ui.rb b/config/initializers/rswag_ui.rb deleted file mode 100644 index 0a768c17bc..0000000000 --- a/config/initializers/rswag_ui.rb +++ /dev/null @@ -1,16 +0,0 @@ -Rswag::Ui.configure do |c| - - # List the Swagger endpoints that you want to be documented through the - # swagger-ui. The first parameter is the path (absolute or relative to the UI - # host) to the corresponding endpoint and the second is a title that will be - # displayed in the document selector. - # NOTE: If you're using rspec-api to expose Swagger files - # (under swagger_root) as JSON or YAML endpoints, then the list below should - # correspond to the relative paths for those endpoints. - - c.swagger_endpoint '/api-docs/v1/swagger.yaml', 'API V1 Docs' - - # Add Basic Auth in case your API is private - # c.basic_auth_enabled = true - # c.basic_auth_credentials 'username', 'password' -end diff --git a/config/routes.rb b/config/routes.rb index 3b45f80d07..aa2fba078f 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -16,8 +16,6 @@ def call(env) Rails.application.routes.draw do - mount Rswag::Ui::Engine => '/api-docs' - mount Rswag::Api::Engine => '/api-docs' constraints PortConstraint.new(PrometheusExporterPort.call) do require 'sidekiq/prometheus/exporter' require 'yabeda/prometheus/mmap' diff --git a/swagger/v1/swagger.json b/swagger/v1/swagger.json deleted file mode 100644 index 5175d04ec0..0000000000 --- a/swagger/v1/swagger.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "openapi": "3.0.1", - "info": { - "title": "API V1", - "version": "v1" - }, - "paths": { - }, - "servers": [ - { - "url": "https://{defaultHost}", - "variables": { - "defaultHost": { - "default": "www.example.com" - } - } - } - ] -} \ No newline at end of file From 3474cd71e6b51b3187857c440947c47042631619 Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Mon, 12 Dec 2022 16:04:25 +0530 Subject: [PATCH 05/85] THREESCALE-3927 removed unwanted space and extra file --- Gemfile | 1 - spec/swagger_helper.rb | 43 ------------------------------------------ 2 files changed, 44 deletions(-) delete mode 100644 spec/swagger_helper.rb diff --git a/Gemfile b/Gemfile index 610f557819..5719d88ad2 100644 --- a/Gemfile +++ b/Gemfile @@ -249,7 +249,6 @@ group :development, :test do # for `rake doc:liquid:generate` and similar gem 'source2swagger', git: 'https://github.com/3scale/source2swagger' gem 'unicorn-rails' - end gem 'webpacker', '5.4.4' diff --git a/spec/swagger_helper.rb b/spec/swagger_helper.rb deleted file mode 100644 index 3b4aa10d51..0000000000 --- a/spec/swagger_helper.rb +++ /dev/null @@ -1,43 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -RSpec.configure do |config| - # Specify a root folder where Swagger JSON files are generated - # NOTE: If you're using the rswag-api to serve API descriptions, you'll need - # to ensure that it's configured to serve Swagger from the same folder - config.swagger_root = Rails.root.join('swagger').to_s - - # Define one or more Swagger documents and provide global metadata for each one - # When you run the 'rswag:specs:swaggerize' rake task, the complete Swagger will - # be generated at the provided relative path under swagger_root - # By default, the operations defined in spec files are added to the first - # document below. You can override this behavior by adding a swagger_doc tag to the - # the root example_group in your specs, e.g. describe '...', swagger_doc: 'v2/swagger.json' - config.swagger_docs = { - 'v1/swagger.json' => { - openapi: '3.0.1', - info: { - title: 'API V1', - version: 'v1' - }, - paths: {}, - servers: [ - { - url: 'https://{defaultHost}', - variables: { - defaultHost: { - default: 'www.example.com' - } - } - } - ] - } - } - - # Specify the format of the output Swagger file when running 'rswag:specs:swaggerize'. - # The swagger_docs configuration option has the filename including format in - # the key, this may want to be changed to avoid putting yaml in json files. - # Defaults to json. Accepts ':json' and ':yaml'. - config.swagger_format = :json -end From 85291b4211eadcf60362e826d778a4be525d7375 Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Thu, 15 Dec 2022 14:36:48 +0530 Subject: [PATCH 06/85] THREESCALE-3927 Converted api to openapi3.0 format and listed on the UI --- .../provider/admin/api_docs/show.html.erb | 34 ++++- doc/active_docs/Policy Registry API.json | 128 +++++++++--------- 2 files changed, 99 insertions(+), 63 deletions(-) diff --git a/app/views/provider/admin/api_docs/show.html.erb b/app/views/provider/admin/api_docs/show.html.erb index dd3a3c8afe..4160f17f80 100644 --- a/app/views/provider/admin/api_docs/show.html.erb +++ b/app/views/provider/admin/api_docs/show.html.erb @@ -13,12 +13,42 @@

<%= link_to 'Create an access token', provider_admin_user_access_tokens_path %> to authenticate against the Account Management API, the Analytics API and the Billing API.

<% end %> -
+
+
+
+
+
+ diff --git a/doc/active_docs/Policy Registry API.json b/doc/active_docs/Policy Registry API.json index 785fa316fe..c5087fa32a 100644 --- a/doc/active_docs/Policy Registry API.json +++ b/doc/active_docs/Policy Registry API.json @@ -1,16 +1,18 @@ { - "basePath": "", - "apis": [ + "openapi": "3.0.1", + "info": { + "version": "1.0" + }, + "servers": [ { - "path": "/admin/api/registry/policies.json", - "responseClass": "policy", - "operations": [ - { - "httpMethod": "GET", - "summary": "APIcast Policy Registry List", - "description": "List the APIcast Policies", - "group": "apicast_policies", - "parameters": [ + "url": "/" + } + ], + "paths":{ + "/admin/api/registry/policies.json":{ + "get":{ + "summary": "APIcast Policy Registry List", + "parameters": [ { "name": "access_token", "description": "A personal Access Token", @@ -19,20 +21,17 @@ "paramType": "query", "threescale_name": "access_token" } - ] + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] - }, - { - "path": "/admin/api/registry/policies.json", - "responseClass": "policy", - "operations": [ - { - "httpMethod": "POST", - "summary": "APIcast Policy Registry Create", - "description": "Creates an APIcast Policy", - "group": "apicast_policies", - "parameters": [ + }, + "post":{ + "summary": "APIcast Policy Registry Create", + "parameters": [ { "name": "access_token", "description": "A personal Access Token", @@ -62,20 +61,20 @@ "dataType": "string", "paramType": "query" } - ] + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } }, - { - "path": "/admin/api/registry/policies/{id}.json", - "responseClass": "policy", - "operations": [ - { - "httpMethod": "GET", - "summary": "APIcast Policy Registry Read", - "description": "Returns the APIcast policy by ID", - "group": "apicast_policies", - "parameters": [ + "/admin/api/registry/policies/{id}.json": { + "get" :{ + "summary": "APIcast Policy Registry Read", + "description": "Returns the APIcast policy by ID", + "parameters": [ { "name": "access_token", "description": "A personal Access Token", @@ -91,20 +90,19 @@ "required": true, "paramType": "path" } - ] + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] - }, - { - "path": "/admin/api/registry/policies/{id}.json", - "responseClass": "policy", - "operations": [ - { - "httpMethod": "PUT", - "summary": "APIcast Policy Registry Update", - "description": "Updates an APIcast Policy", - "group": "apicast_policies", - "parameters": [ + + }, + "put": { + "summary": "APIcast Policy Registry Update", + "description": "Updates an APIcast Policy", + "parameters": [ { "name": "access_token", "description": "A personal Access Token", @@ -141,14 +139,16 @@ "dataType": "string", "paramType": "query" } - ] - }, - { - "httpMethod": "DELETE", - "summary": "APIcast Policy Registry Delete", - "description": "Deletes an APIcast policy by ID", - "group": "apicast_policies", - "parameters": [ + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "parameters": [ { "name": "access_token", "description": "A personal Access Token", @@ -164,9 +164,15 @@ "required": true, "paramType": "path" } - ] + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] - } - ] + + } + } + } } From 0bd17368d9f31fc51ad6b780e4eca9d11e1295e8 Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Wed, 4 Jan 2023 14:54:27 +0530 Subject: [PATCH 07/85] THREESCALE-3927 make api listing dynamic --- .../provider/admin/api_docs/show.html.erb | 61 ++++++++----------- 1 file changed, 25 insertions(+), 36 deletions(-) diff --git a/app/views/provider/admin/api_docs/show.html.erb b/app/views/provider/admin/api_docs/show.html.erb index 4160f17f80..3d2b3bff52 100644 --- a/app/views/provider/admin/api_docs/show.html.erb +++ b/app/views/provider/admin/api_docs/show.html.erb @@ -13,42 +13,31 @@

<%= link_to 'Create an access token', provider_admin_user_access_tokens_path %> to authenticate against the Account Management API, the Analytics API and the Billing API.

<% end %> -
-
-
-
-
- +
+
+
+
+
+ dom_name = url.substring(url.lastIndexOf('/') + 1).replace(/\.json/g, '').replace(/\_/g, '-'); + SwaggerUI({ url: url, dom_id: '#' + ''+ dom_name + '' + '-docs'}, serviceEndpoint); + }); + }); + \ No newline at end of file From 320b8669337d20793bbc7ad69e8d00cd96fab072 Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Thu, 5 Jan 2023 15:01:11 +0530 Subject: [PATCH 08/85] THREESCALE-3927 Fixed tags and UI --- app/views/provider/admin/api_docs/show.html.erb | 6 ------ 1 file changed, 6 deletions(-) diff --git a/app/views/provider/admin/api_docs/show.html.erb b/app/views/provider/admin/api_docs/show.html.erb index 3d2b3bff52..4ad9b4c057 100644 --- a/app/views/provider/admin/api_docs/show.html.erb +++ b/app/views/provider/admin/api_docs/show.html.erb @@ -1,9 +1,3 @@ -<%= stylesheet_link_tag 'active-docs/application.css' %> -<%= javascript_tag do %> - window.enableApiDocsProxy = <%= Rails.configuration.three_scale.active_docs_proxy_disabled.blank? %>; -<% end %> -<%= javascript_include_tag 'active-docs/application.js' %> - <%= javascript_pack_tag 'provider_active_docs.js' %> <% content_for :title do %> 3scale API Documentation From 19fcdd12d551b2f955da8794e06bf0209d258958 Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Wed, 11 Jan 2023 13:48:12 +0530 Subject: [PATCH 09/85] THREESCALE-3927 make id divs dynamic --- app/views/provider/admin/api_docs/show.html.erb | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/app/views/provider/admin/api_docs/show.html.erb b/app/views/provider/admin/api_docs/show.html.erb index 4ad9b4c057..90810aaa27 100644 --- a/app/views/provider/admin/api_docs/show.html.erb +++ b/app/views/provider/admin/api_docs/show.html.erb @@ -1,4 +1,8 @@ +<%= javascript_tag do %> + window.enableApiDocsProxy = <%= Rails.configuration.three_scale.active_docs_proxy_disabled.blank? %>; +<% end %> <%= javascript_pack_tag 'provider_active_docs.js' %> +<%= javascript_include_tag 'active-docs/application.js' %> <% content_for :title do %> 3scale API Documentation <% end %> @@ -7,11 +11,8 @@

<%= link_to 'Create an access token', provider_admin_user_access_tokens_path %> to authenticate against the Account Management API, the Analytics API and the Billing API.

<% end %> -
-
-
-
-
+ +
\ No newline at end of file From 743ac7e4b7c6aa619fe8632601420840a7c4a5d4 Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Wed, 11 Jan 2023 15:07:45 +0530 Subject: [PATCH 10/85] THREESCALE-3927 added space --- app/views/provider/admin/api_docs/show.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/provider/admin/api_docs/show.html.erb b/app/views/provider/admin/api_docs/show.html.erb index 90810aaa27..c67a1d13ea 100644 --- a/app/views/provider/admin/api_docs/show.html.erb +++ b/app/views/provider/admin/api_docs/show.html.erb @@ -36,4 +36,4 @@ SwaggerUI({ url: url, dom_id: '#' + ''+ dom_name }, serviceEndpoint); }); }); - \ No newline at end of file + From dd7698a2611dc19d22cebc6d70df65d2749af6c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joan=20Lled=C3=B3?= Date: Thu, 12 Jan 2023 11:59:40 +0100 Subject: [PATCH 11/85] OpenAPI3: Exclude forbidden endpoints For master on premises --- app/controllers/api_docs/services_controller.rb | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/app/controllers/api_docs/services_controller.rb b/app/controllers/api_docs/services_controller.rb index 11135701dc..2ac482fe19 100644 --- a/app/controllers/api_docs/services_controller.rb +++ b/app/controllers/api_docs/services_controller.rb @@ -115,17 +115,16 @@ def index def show system_name = params[:id].to_sym api_file = (api_files.fetch(system_name) { raise ActiveRecord::RecordNotFound }).dup - # api_file['apis'] = exclude_forbidden_endpoints(api_file['apis']) + api_file['paths'] = exclude_forbidden_endpoints(api_file['paths']) if master_on_premises? render json: api_file end private - def exclude_forbidden_endpoints(apis) - apis.select do |api| - path = api['path'] - !master_on_premises? || path.exclude?('plan') + def exclude_forbidden_endpoints(paths) + paths.select do |url| + url.exclude?('plan') end end From 4d1f29586351c2c4337b19f2c6703069682a9e04 Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Mon, 16 Jan 2023 14:22:02 +0530 Subject: [PATCH 12/85] THREESCALE-3927 removed unsed files --- .../Service Management API (on-premises).json | 332 - doc/active_docs/accounts-s20.json | 9742 ----------------- doc/active_docs/analytics-s20.json | 294 - doc/active_docs/finance-s20.json | 373 - 4 files changed, 10741 deletions(-) delete mode 100644 doc/active_docs/Service Management API (on-premises).json delete mode 100644 doc/active_docs/accounts-s20.json delete mode 100644 doc/active_docs/analytics-s20.json delete mode 100644 doc/active_docs/finance-s20.json diff --git a/doc/active_docs/Service Management API (on-premises).json b/doc/active_docs/Service Management API (on-premises).json deleted file mode 100644 index ca3ba57eab..0000000000 --- a/doc/active_docs/Service Management API (on-premises).json +++ /dev/null @@ -1,332 +0,0 @@ -{ - "openapi": "3.0.1", - "info": { - "version": "1.0" - }, - "servers": [ - { - "url": "https://su1.3scale.net/" - } - ], - "paths": { - "/transactions/oauth_authorize.xml": { - "get": { - "summary": "Authorize (OAuth authentication mode pattern)", - "operationId": "oauth_authorize", - "parameters": [ - { - "name": "service_token", - "in": "query", - "description": "Your service api key with 3scale (also known as service token).", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "query", - "description": "Service id. Required.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "access_token", - "in": "query", - "description": "OAuth token used for authorizing if you don't use client_id with client_secret.", - "schema": { - "type": "string" - } - }, - { - "name": "app_id", - "in": "query", - "description": "Client Id (identifier of the application if the auth. pattern is OAuth, note that client_id == app_id)", - "schema": { - "type": "string" - } - }, - { - "name": "referrer", - "in": "query", - "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed.", - "schema": { - "type": "string" - } - }, - { - "name": "usage", - "in": "query", - "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.", - "schema": { - "type": "ref" - } - }, - { - "name": "redirect_url", - "in": "query", - "description": "Optional redirect URL for OAuth. Will be validated if sent.", - "schema": { - "type": "string" - } - }, - { - "name": "redirect_uri", - "in": "query", - "description": "Optional redirect URI for OAuth. This is the same as 'redirect_url', but if used you should expect a matching 'redirect_uri' response field.", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/transactions/authrep.xml": { - "get": { - "summary": "AuthRep (Authorize + Report for the API Key authentication pattern)", - "parameters": [ - { - "name": "service_token", - "in": "query", - "description": "Your service api key with 3scale (also known as service token).", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "query", - "description": "Service id. Required.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "user_key", - "in": "query", - "description": "User Key (identifier and shared secret of the application if the auth. pattern is Api Key)", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "referrer", - "in": "query", - "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed.", - "schema": { - "type": "string" - } - }, - { - "name": "usage", - "in": "query", - "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", - "schema": { - "type": "ref" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/transactions/oauth_authrep.xml": { - "get": { - "summary": "AuthRep (OAuth authentication mode pattern)", - "operationId": "oauth_authrep", - "parameters": [ - { - "name": "service_token", - "in": "query", - "description": "Your service api key with 3scale (also known as service token).", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "query", - "description": "Service id. Required.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "access_token", - "in": "query", - "description": "OAuth token used for authorizing if you don't use client_id with client_secret.", - "schema": { - "type": "string" - } - }, - { - "name": "app_id", - "in": "query", - "description": "Client Id (identifier of the application if the auth. pattern is OAuth, note that client_id == app_id)", - "schema": { - "type": "string" - } - }, - { - "name": "referrer", - "in": "query", - "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed.", - "schema": { - "type": "string" - } - }, - { - "name": "usage", - "in": "query", - "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", - "schema": { - "type": "ref" - } - }, - { - "name": "redirect_url", - "in": "query", - "description": "Optional redirect URL for OAuth. Will be validated if sent.", - "schema": { - "type": "string" - } - }, - { - "name": "redirect_uri", - "in": "query", - "description": "Optional redirect URI for OAuth. This is the same as 'redirect_url', but if used you should expect a matching 'redirect_uri' response field.", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/transactions/authorize.xml": { - "get": { - "summary": "Authorize (API Key authentication pattern)", - "operationId": "authorize_user_key", - "parameters": [ - { - "name": "service_token", - "in": "query", - "description": "Your service api key with 3scale (also known as service token).", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "query", - "description": "Service id. Required.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "user_key", - "in": "query", - "description": "User Key (identifier and shared secret of the application if the auth. pattern is Api Key)", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "referrer", - "in": "query", - "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed.", - "schema": { - "type": "string" - } - }, - { - "name": "usage", - "in": "query", - "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.", - "schema": { - "type": "ref" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/transactions.xml": { - "post": { - "summary": "Report (OAuth authentication pattern)", - "parameters": [ - { - "name": "service_token", - "in": "query", - "description": "Your service api key with 3scale (also known as service token).", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "query", - "description": "Service id. Required.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "transactions", - "in": "query", - "description": "Transactions to be reported. There is a limit of 1000 transactions to be reported on a single request.", - "required": true, - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - } - }, - "components": {} -} \ No newline at end of file diff --git a/doc/active_docs/accounts-s20.json b/doc/active_docs/accounts-s20.json deleted file mode 100644 index fb8d86ec15..0000000000 --- a/doc/active_docs/accounts-s20.json +++ /dev/null @@ -1,9742 +0,0 @@ -{ - "openapi": "3.0.1", - "info": { - "version": "1.0" - }, - "servers": [ - { - "url": "/" - } - ], - "paths": { - "/admin/api/services/{service_id}/features.xml": { - "get": { - "summary": "Service Feature List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Service Feature Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the feature.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the feature.", - "schema": { - "type": "ref" - } - }, - { - "name": "scope", - "in": "query", - "description": "Type of plan that the feature will be available for.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "enum": [ - "ApplicationPlan", - "ServicePlan" - ] - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/backend_apis/{backend_api_id}/mapping_rules/{id}.json": { - "get": { - "summary": "Backend Mapping Rules Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "Mapping Rule ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Backend Mapping Rule Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "Mapping Rule ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "http_method", - "in": "query", - "description": "HTTP method.", - "schema": { - "type": "string" - } - }, - { - "name": "pattern", - "in": "query", - "description": "Mapping Rule pattern.", - "schema": { - "type": "string" - } - }, - { - "name": "delta", - "in": "query", - "description": "Increase the metric by this delta.", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "query", - "description": "Metric ID.", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "position", - "in": "query", - "description": "Mapping Rule position", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "last", - "in": "query", - "description": "Last matched Mapping Rule to process", - "schema": { - "type": "ref" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Backend Mapping Rule Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "Mapping Rule ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/application_plans/{application_plan_id}/features/{id}.xml": { - "delete": { - "summary": "Application Plan Feature Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the feature.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/personal/access_tokens/{id}.json": { - "get": { - "summary": "Personal Access Token Read", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "ID or value of the access token.", - "required": true, - "schema": { - "type": "ref" - } - }, - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Personal Access Token Delete", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "ID or value of the access token.", - "required": true, - "schema": { - "type": "ref" - } - }, - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/users/{id}/admin.xml": { - "put": { - "summary": "User Change Role to Admin (provider account)", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/users/{user_id}/access_tokens.json": { - "post": { - "summary": "Access Token Create", - "parameters": [ - { - "name": "user_id", - "in": "path", - "description": "ID of the user.", - "required": true, - "schema": { - "type": "ref" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the access token.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "permission", - "in": "query", - "description": "Permission of the access token. It must be either 'ro' (read only) or 'rw' (read and write).", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "scopes", - "in": "query", - "description": "Scope of the access token. URL-encoded array containing one or more of the possible values. The possible values are, for a master user [\"account_management\", \"stats\"], and for a tenant user [\"finance\", \"account_management\", \"stats\"]", - "required": true, - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - }, - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/users/{id}/unsuspend.xml": { - "put": { - "summary": "User Unsuspend", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{id}/credit_card.xml": { - "put": { - "summary": "Account Set Credit Card", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "credit_card_token", - "in": "query", - "description": "Token used by the payment gateway to identify the buyer, customer profile ID (Authorize.net), customer ID (Braintree and Stripe), customer alias (Ogone-Ingenico). Some payment gateways may store more than one card under the same buyer reference and/or require an additional identifier for recurring payment. If you are using Braintree, there is no need for additional identifier -- the first credit card available will always be charged. For Authorize.net, see `credit_card_authorize_net_payment_profile_token`.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "credit_card_authorize_net_payment_profile_token", - "in": "query", - "description": "Additional reference provided by the payment gateway to identify a specific card under the same buyer reference. For Authorize.net, you MUST fill with the 'Payment profile token'", - "schema": { - "type": "string" - } - }, - { - "name": "credit_card_expiration_year", - "in": "query", - "description": "Year of expiration of credit card. Two digit number", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "credit_card_expiration_month", - "in": "query", - "description": "Month of expiration of credit card. Two digit number", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "billing_address_name", - "in": "query", - "description": "Name of the person/company to bill", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "billing_address_address", - "in": "query", - "description": "Address associated to the credit card", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "billing_address_city", - "in": "query", - "description": "Billing address city", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "billing_address_country", - "in": "query", - "description": "Billing address country", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "billing_address_state", - "in": "query", - "description": "Billing address state", - "schema": { - "type": "string" - } - }, - { - "name": "billing_address_phone", - "in": "query", - "description": "Billing address phone", - "schema": { - "type": "string" - } - }, - { - "name": "billing_address_zip", - "in": "query", - "description": "Billing address ZIP Code", - "schema": { - "type": "string" - } - }, - { - "name": "credit_card_partial_number", - "in": "query", - "description": "Last four digits on the credit card", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Account Delete Credit Card", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/limits/{id}.xml": { - "get": { - "summary": "Limit Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the limit.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Limit Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the limit.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "period", - "in": "query", - "description": "Period of the limit.", - "required": true, - "schema": { - "type": "string", - "default": "minute", - "enum": [ - "eternity", - "year", - "month", - "week", - "day", - "hour", - "minute" - ] - } - }, - { - "name": "value", - "in": "query", - "description": "Value of the limit.", - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Limit Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the limit.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts.xml": { - "get": { - "summary": "Account List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "state", - "in": "query", - "description": "Account state.", - "schema": { - "type": "string", - "enum": [ - "pending", - "approved", - "rejected" - ] - } - }, - { - "name": "page", - "in": "query", - "description": "Page in the paginated list. Defaults to 1.", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "per_page", - "in": "query", - "description": "Number of results per page. Default and max is 500.", - "schema": { - "type": "integer", - "format": "int32", - "default": 500 - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{id}/reject.xml": { - "put": { - "summary": "Account Reject", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/account_plans/{id}/default.xml": { - "put": { - "summary": "Account Plan set to Default", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the account plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/webhooks/failures.xml": { - "get": { - "summary": "Webhooks List Failed Deliveries", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Webhooks Delete Failed Deliveries", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "time", - "in": "query", - "description": "Only failed webhook deliveries whose time is less than or equal to the passed time are destroyed (if used).", - "schema": { - "type": "ref" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/proxy/configs/{environment}/{version}.json": { - "get": { - "summary": "Proxy Config Show", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "environment", - "in": "path", - "description": "Gateway environment. Must be 'sandbox' or 'production'", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "version", - "in": "path", - "description": "Version of the Proxy config.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/webhooks.json": { - "put": { - "summary": "WebHooks Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "url", - "in": "query", - "description": "URL that will be notified about all the events", - "schema": { - "type": "string" - } - }, - { - "name": "active", - "in": "query", - "description": "Activate/Disable WebHooks", - "schema": { - "type": "boolean" - } - }, - { - "name": "provider_actions", - "in": "query", - "description": "Dashboard actions fire webhooks. If false, only user actions in the portal trigger events.", - "schema": { - "type": "boolean" - } - }, - { - "name": "account_created_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "account_updated_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "account_deleted_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "user_created_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "user_updated_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "user_deleted_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "application_created_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "application_updated_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "application_deleted_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "account_plan_changed_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "application_plan_changed_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "application_user_key_updated_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "application_key_created_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "application_key_deleted_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "application_suspended_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "application_key_updated_on", - "in": "query", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/proxy/configs/{environment}.json": { - "get": { - "summary": "Proxy Configs List (Service)", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "environment", - "in": "path", - "description": "Gateway environment. Must be 'sandbox' or 'production'", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/users/{id}/suspend.xml": { - "put": { - "summary": "User Suspend (provider account)", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{id}.xml": { - "get": { - "summary": "Service Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Service Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "name", - "in": "query", - "description": "New name for the service.", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "New description for the service.", - "schema": { - "type": "string" - } - }, - { - "name": "support_email", - "in": "query", - "description": "New support email.", - "schema": { - "type": "string" - } - }, - { - "name": "deployment_option", - "in": "query", - "description": "Deployment option for the gateway: 'hosted' for APIcast hosted, 'self_managed' for APIcast Self-managed, 'service_mesh_istio' for Istio service mesh option", - "schema": { - "type": "string" - } - }, - { - "name": "backend_version", - "in": "query", - "description": "Authentication mode: '1' for API key, '2' for App Id / App Key, 'oidc' for OpenID Connect", - "schema": { - "type": "string" - } - }, - { - "name": " ", - "in": "query", - "description": "Extra parameters", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Service Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/applications/{application_id}/referrer_filters/{id}.xml": { - "delete": { - "summary": "Application Referrer Filter Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "application_id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of referrer filter to be deleted.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/metrics/{metric_id}/methods/{id}.xml": { - "get": { - "summary": "Service Method Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the method.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Service Method Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the method.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "friendly_name", - "in": "query", - "description": "Name of the method.", - "schema": { - "type": "string" - } - }, - { - "name": "unit", - "in": "query", - "description": "Measure unit of the method.", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the method.", - "schema": { - "type": "ref" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Service Method Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the method.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/settings.json": { - "get": { - "summary": "Settings Read", - "operationId": "service_metric", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Settings Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "useraccountarea_enabled", - "in": "query", - "description": "Allow the user to edit their submitted details, change passwords, etc", - "schema": { - "type": "boolean" - } - }, - { - "name": "hide_service", - "in": "query", - "description": "Used a default service plan", - "schema": { - "type": "boolean" - } - }, - { - "name": "signups_enabled", - "in": "query", - "description": "Developers are allowed sign up themselves.", - "schema": { - "type": "boolean" - } - }, - { - "name": "account_approval_required", - "in": "query", - "description": "Approval is required by you before developer accounts are activated.", - "schema": { - "type": "boolean" - } - }, - { - "name": "strong_passwords_enabled", - "in": "query", - "description": "Require strong passwords from your users: Password must be at least 8 characters long, and contain both upper and lowercase letters, a digit and one special character of -+=><_$#.:;!?@&*()~][}{|. Existing passwords will still work. ", - "schema": { - "type": "boolean" - } - }, - { - "name": "public_search", - "in": "query", - "description": "Enables public search on Developer Portal", - "schema": { - "type": "boolean" - } - }, - { - "name": "account_plans_ui_visible", - "in": "query", - "description": "Enables visibility of Account Plans", - "schema": { - "type": "boolean" - } - }, - { - "name": "change_account_plan_permission", - "in": "query", - "description": "Account Plans changing", - "schema": { - "type": "string" - } - }, - { - "name": "service_plans_ui_visible", - "in": "query", - "description": "Enables visibility of Service Plans", - "schema": { - "type": "boolean" - } - }, - { - "name": "change_service_plan_permission", - "in": "query", - "description": "Service Plans changing", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/backend_apis/{id}.json": { - "get": { - "summary": "Backend Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Backend Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the Backend", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the Backend", - "schema": { - "type": "string" - } - }, - { - "name": "private_endpoint", - "in": "query", - "description": "Private Base URL (your API)", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Backend Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/account_plans/{account_plan_id}/features/{id}.xml": { - "post": { - "summary": "Account Plan Features Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_plan_id", - "in": "path", - "description": "ID of the account plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the feature.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Account Plan Features Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_plan_id", - "in": "path", - "description": "ID of the account plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the feature.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/backend_apis/{backend_api_id}/metrics/{id}.json": { - "get": { - "summary": "Backend Metric Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Backend Metric Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "friendly_name", - "in": "query", - "description": "Name of the metric.", - "schema": { - "type": "string" - } - }, - { - "name": "unit", - "in": "query", - "description": "Measure unit of the metric.", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the metric.", - "schema": { - "type": "ref" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Backend Metric Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/backend_usages/{id}.json": { - "get": { - "summary": "Backend Usage Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the Backend Usage.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Backend Usage Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the Backend Usage.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "path", - "in": "query", - "description": "Path of the Backend for this product.", - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Backend Usage Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the Backend Usage.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/users/{id}.xml": { - "get": { - "summary": "User Read (provider account)", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "User Update (provider account)", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "username", - "in": "query", - "description": "Username of the user.", - "schema": { - "type": "string" - } - }, - { - "name": "email", - "in": "query", - "description": "Email of the user.", - "schema": { - "type": "string" - } - }, - { - "name": "password", - "in": "query", - "description": "Password of the user.", - "schema": { - "type": "string" - } - }, - { - "name": "additional_fields", - "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). Additional fields are the custom fields declared for your tenant, you can find them in 'Settings >> Personal Details' for the account and in 'Settings >> Account >> Users >> Personal Details' for users. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "User Delete (provider account)", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/fields_definitions/{id}.json": { - "get": { - "summary": "Fields Definition Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the fields definition.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Fields Definition Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the fields definition.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "target", - "in": "query", - "description": "Target entity of fields definition.", - "required": true, - "schema": { - "type": "string", - "default": "account", - "enum": [ - "Account", - "User", - "Cinstance" - ] - } - }, - { - "name": "label", - "in": "query", - "description": "The field title your developers will see.", - "schema": { - "type": "string" - } - }, - { - "name": "required", - "in": "query", - "description": "If 'true' the field will be required for developers.", - "schema": { - "type": "boolean" - } - }, - { - "name": "hidden", - "in": "query", - "description": "If 'true' the developers won't be able to see this field.", - "schema": { - "type": "boolean" - } - }, - { - "name": "read_only", - "in": "query", - "description": "If 'true' the developers won't be able to change this field.", - "schema": { - "type": "boolean" - } - }, - { - "name": "position", - "in": "query", - "description": "Position of the fields definition.", - "schema": { - "type": "ref" - } - }, - { - "name": "choices", - "in": "query", - "description": "The list of predefined options for this field, URL-encoded array.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Fields Definition Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the fields definition.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/application_plans/{application_plan_id}/limits.xml": { - "get": { - "summary": "Limits List per Application Plan", - "operationId": "plan_limits", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Page in the paginated list. Defaults to 1.", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "per_page", - "in": "query", - "description": "Number of results per page. Default and max is 50.", - "schema": { - "type": "integer", - "format": "int32", - "default": 50 - } - }, - { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/applications/{id}/accept.xml": { - "put": { - "summary": "Application Accept", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/users/{id}/permissions.xml": { - "get": { - "summary": "User Permissions Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "User Permissions Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "allowed_service_ids", - "in": "query", - "description": "IDs of the services that need to be enabled, URL-encoded array. To disable all services, set the value to '[]'. To enable all services, add parameter 'allowed_service_ids[]' with no value to the 'curl' command (can't be done in ActiveDocs)", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - }, - { - "name": "allowed_sections", - "in": "query", - "description": "The list of sections in the admin portal that the user can access, URL-encoded array. Possible values: 'portal' (Developer Portal), 'finance' (Billing), 'settings', 'partners' (Accounts -- Applications), 'monitoring' (Analytics), 'plans' (Integration & Application Plans), 'policy_registry'. To disable all sections, set the value to '[]'.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/messages.xml": { - "post": { - "summary": "Account Message", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "body", - "in": "query", - "description": "Text to send", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "subject", - "in": "query", - "description": "Subject of the message", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/proxy/configs/{environment}/latest.json": { - "get": { - "summary": "Proxy Config Show Latest", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "environment", - "in": "path", - "description": "Gateway environment. Must be 'sandbox' or 'production'", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/users.xml": { - "get": { - "summary": "User List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "state", - "in": "query", - "description": "Filter users by State.", - "schema": { - "type": "string", - "enum": [ - "pending", - "suspended", - "active" - ] - } - }, - { - "name": "role", - "in": "query", - "description": "Filter users by Role.", - "schema": { - "type": "string", - "enum": [ - "member", - "admin" - ] - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "User Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "username", - "in": "query", - "description": "Username of the user.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "email", - "in": "query", - "description": "Email of the user.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "password", - "in": "query", - "description": "Password of the user.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "additional_fields", - "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/objects/status.json": { - "get": { - "summary": "Object deletion status for objects that are deleted asynchronously", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "object_type", - "in": "query", - "description": "Object type has to be service, account, proxy or backend_api.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "object_id", - "in": "query", - "description": "Object ID.", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/service_contracts.xml": { - "get": { - "summary": "Service Subscription List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/users/{id}/member.xml": { - "put": { - "summary": "User Change Role to Member", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/backend_apis/{backend_api_id}/metrics/{metric_id}/methods/{id}.json": { - "get": { - "summary": "Backend Method Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the method.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Backend Method Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the method.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "friendly_name", - "in": "query", - "description": "Name of the method.", - "schema": { - "type": "string" - } - }, - { - "name": "unit", - "in": "query", - "description": "Measure unit of the method.", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the method.", - "schema": { - "type": "ref" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Backend Method Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the method.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/proxy/oidc_configuration.xml": { - "get": { - "summary": "OIDC Configuration Show", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "patch": { - "summary": "OIDC Configuration Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "standard_flow_enabled", - "in": "query", - "description": "Enable Authorization Code Flow (Standard Flow)", - "schema": { - "type": "boolean" - } - }, - { - "name": "implicit_flow_enabled", - "in": "query", - "description": "Enable Implicit Flow", - "schema": { - "type": "boolean" - } - }, - { - "name": "service_accounts_enabled", - "in": "query", - "description": "Enable Service Account Flow (Standard Flow)", - "schema": { - "type": "boolean" - } - }, - { - "name": "direct_access_grants_enabled", - "in": "query", - "description": "Enable Direct Access Grant Flow", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/users/{id}/activate.xml": { - "put": { - "summary": "User Activate (provider account)", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/users/{id}/admin.xml": { - "put": { - "summary": "User change Role to Admin", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/account_plans.xml": { - "get": { - "summary": "Account Plan List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Account Plan Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the account plan.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "approval_required", - "in": "query", - "description": "Set the 'Accounts require approval?' to 'true' or 'false'", - "schema": { - "type": "boolean" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "schema": { - "type": "string" - } - }, - { - "name": "state_event", - "in": "query", - "description": "State event of the account plan. It can be 'publish' or 'hide'", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/backend_apis/{backend_api_id}/metrics.json": { - "get": { - "summary": "Backend Metric List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "page", - "in": "query", - "description": "Page in the paginated list. Defaults to 1.", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "per_page", - "in": "query", - "description": "Number of results per page. Default and max is 500.", - "schema": { - "type": "integer", - "format": "int32", - "default": 500 - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Backend Metric Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "friendly_name", - "in": "query", - "description": "Descriptive Name of the metric.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the metric. If blank a system_name will be generated for you from the friendly_name parameter", - "schema": { - "type": "string" - } - }, - { - "name": "unit", - "in": "query", - "description": "Measure unit of the metric.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the metric.", - "schema": { - "type": "ref" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/service_plans/{id}/default.xml": { - "put": { - "summary": "Service Plan Set to Default", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the service plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/applications/{id}/customize_plan.xml": { - "put": { - "summary": "Application Create Plan Customization", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/metrics.xml": { - "get": { - "summary": "Service Metric List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Service Metric Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "friendly_name", - "in": "query", - "description": "Descriptive Name of the metric.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "system_name", - "in": "query", - "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", - "schema": { - "type": "string" - } - }, - { - "name": "name", - "in": "query", - "description": "DEPRECATED: Please use system_name parameter", - "schema": { - "type": "string" - } - }, - { - "name": "unit", - "in": "query", - "description": "Measure unit of the metric.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the metric.", - "schema": { - "type": "ref" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/features/{id}.xml": { - "get": { - "summary": "Service Feature Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the feature.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Service Feature Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the feature.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the feature.", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the feature.", - "schema": { - "type": "ref" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Service Feature Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the feature.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/application_plans.xml": { - "get": { - "summary": "Application Plan List (all services)", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/proxy.xml": { - "get": { - "summary": "Proxy Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "patch": { - "summary": "Proxy Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "endpoint", - "in": "query", - "description": "Public Base URL for production environment.", - "schema": { - "type": "string" - } - }, - { - "name": "api_backend", - "in": "query", - "description": "Private Base URL. Caution! Do not use it if the account has API as a Product enabled. It may cause API backend usages to be removed from the Product.", - "schema": { - "type": "string" - } - }, - { - "name": "credentials_location", - "in": "query", - "description": "Credentials Location. Either headers, query or authorization for the Basic Authorization.", - "schema": { - "type": "string" - } - }, - { - "name": "auth_app_key", - "in": "query", - "description": "Parameter/Header where App Key is expected.", - "schema": { - "type": "string" - } - }, - { - "name": "auth_app_id", - "in": "query", - "description": "Parameter/Header where App ID is expected.", - "schema": { - "type": "string" - } - }, - { - "name": "auth_user_key", - "in": "query", - "description": "Parameter/Header where User Key is expected.", - "schema": { - "type": "string" - } - }, - { - "name": "error_auth_failed", - "in": "query", - "description": "Error message on failed authentication.", - "schema": { - "type": "string" - } - }, - { - "name": "error_status_auth_failed", - "in": "query", - "description": "Status code on failed authentication.", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "error_headers_auth_failed", - "in": "query", - "description": "Content-Type header on failed authentication.", - "schema": { - "type": "string" - } - }, - { - "name": "error_auth_missing", - "in": "query", - "description": "Error message on missing authentication.", - "schema": { - "type": "string" - } - }, - { - "name": "error_status_auth_missing", - "in": "query", - "description": "Status code on missing authentication.", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "error_headers_auth_missing", - "in": "query", - "description": "Content-Type header on missing authentication.", - "schema": { - "type": "string" - } - }, - { - "name": "error_no_match", - "in": "query", - "description": "Error message when no mapping rule is matched.", - "schema": { - "type": "string" - } - }, - { - "name": "error_status_no_match", - "in": "query", - "description": "Status code when no mapping rule is matched.", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "error_headers_no_match", - "in": "query", - "description": "Content-Type header when no mapping rule is matched.", - "schema": { - "type": "string" - } - }, - { - "name": "error_status_limits_exceeded", - "in": "query", - "description": "Status code when usage limit exceeded.", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "error_headers_limits_exceeded", - "in": "query", - "description": "Content-Type header when usage limit exceeded.", - "schema": { - "type": "string" - } - }, - { - "name": "error_limits_exceeded", - "in": "query", - "description": "Error message on usage limit exceeded.", - "schema": { - "type": "string" - } - }, - { - "name": "oidc_issuer_endpoint", - "in": "query", - "description": "Location of your OpenID Provider.", - "schema": { - "type": "string" - } - }, - { - "name": "oidc_issuer_type", - "in": "query", - "description": "Type of your OpenID Provider.", - "schema": { - "type": "string" - } - }, - { - "name": "sandbox_endpoint", - "in": "query", - "description": "Sandbox endpoint.", - "schema": { - "type": "string" - } - }, - { - "name": "jwt_claim_with_client_id", - "in": "query", - "description": "JWT Claim With ClientId Location.", - "schema": { - "type": "string" - } - }, - { - "name": "jwt_claim_with_client_id_type", - "in": "query", - "description": "JWT Claim With ClientId Type. Either `plain` or `liquid`", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/applications/{application_id}/referrer_filters.xml": { - "get": { - "summary": "Application Referrer Filter List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "application_id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Application Referrer Filter Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "application_id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "referrer_filter", - "in": "query", - "description": "Referrer filter to be created.", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/users.xml": { - "get": { - "summary": "User List (provider account)", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "state", - "in": "query", - "description": "Filter users by State.", - "schema": { - "type": "string", - "enum": [ - "pending", - "suspended", - "active" - ] - } - }, - { - "name": "role", - "in": "query", - "description": "Filter users by Role.", - "schema": { - "type": "string", - "enum": [ - "member", - "admin" - ] - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "User Create (provider account)", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "username", - "in": "query", - "description": "Username of the user.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "email", - "in": "query", - "description": "Email of the user.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "password", - "in": "query", - "description": "Password of the user.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "additional_fields", - "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). Additional fields are the custom fields declared for your tenant, you can find them in 'Settings >> Personal Details' for the account and in 'Settings >> Account >> Users >> Personal Details' for users. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/users/{id}/member.xml": { - "put": { - "summary": "User Change Role to Member (provider account)", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/users/{id}/unsuspend.xml": { - "put": { - "summary": "User Unsuspend (provider account)", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/provider.xml": { - "get": { - "summary": "Provider Account Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Provider Account Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "from_email", - "in": "query", - "description": "New outgoing email.", - "schema": { - "type": "string" - } - }, - { - "name": "support_email", - "in": "query", - "description": "New support email.", - "schema": { - "type": "string" - } - }, - { - "name": "finance_support_email", - "in": "query", - "description": "New finance support email.", - "schema": { - "type": "string" - } - }, - { - "name": "site_access_code", - "in": "query", - "description": "Developer Portal Access Code.", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/find.xml": { - "get": { - "summary": "Account Find", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "username", - "in": "query", - "description": "Username of the account user.", - "schema": { - "type": "string" - } - }, - { - "name": "email", - "in": "query", - "description": "Email of the account user.", - "schema": { - "type": "string" - } - }, - { - "name": "user_id", - "in": "query", - "description": "ID of the account user.", - "schema": { - "type": "ref" - } - }, - { - "name": "buyer_provider_key", - "in": "query", - "description": "[Master API] Provider key of the account.", - "schema": { - "type": "string" - } - }, - { - "name": "buyer_service_token", - "in": "query", - "description": "[Master API] Service token of the account service.", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/service_plans/{id}.xml": { - "get": { - "summary": "Service Plan Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the service plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Service Plan Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the service plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the service plan.", - "schema": { - "type": "string" - } - }, - { - "name": "approval_required", - "in": "query", - "description": "Set the 'Service subscriptions require approval?' to 'true' or 'false'", - "schema": { - "type": "boolean" - } - }, - { - "name": "state_event", - "in": "query", - "description": "State event of the service plan. It can be 'publish' or 'hide'", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Service Plan Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the service plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/account/proxy_configs/{environment}.json": { - "get": { - "summary": "Proxy Configs List (Provider)", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "environment", - "in": "path", - "description": "Gateway environment. Must be 'sandbox' or 'production'", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "host", - "in": "query", - "description": "Filter by host", - "schema": { - "type": "string" - } - }, - { - "name": "version", - "in": "query", - "description": "Filter by version", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/service_plans/{service_plan_id}/features.xml": { - "get": { - "summary": "Service Plan Feature List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_plan_id", - "in": "path", - "description": "ID of the service plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Service Plan Feature Add", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_plan_id", - "in": "path", - "description": "ID of the service plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "feature_id", - "in": "query", - "description": "ID of the feature.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/policies.json": { - "get": { - "summary": "APIcast Policy Registry", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/applications/{application_id}/keys/{key}.xml": { - "delete": { - "summary": "Application Key Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "application_id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "key", - "in": "path", - "description": "app_key to be deleted.", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/authentication_providers.xml": { - "get": { - "summary": "Authentication Providers Developer Portal List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Authentication Provider Developer Portal Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "kind", - "in": "query", - "description": "The kind of authentication provider which can be either 'github', 'auth0', 'keycloak' or a custom one. Use 'keycloak' for Red Hat Single Sign-On.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "client_id", - "in": "query", - "description": "Client ID of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "client_secret", - "in": "query", - "description": "Client Secret of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "site", - "in": "query", - "description": "Site o Realm of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "token_url", - "in": "query", - "description": "Token URL of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "user_info_url", - "in": "query", - "description": "User info URL of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "authorize_url", - "in": "query", - "description": "Authorize URL of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "identifier_key", - "in": "query", - "description": "Identifier key. 'id' by default.", - "schema": { - "type": "string" - } - }, - { - "name": "username_key", - "in": "query", - "description": "Username key. 'login' by default.", - "schema": { - "type": "string" - } - }, - { - "name": "trust_email", - "in": "query", - "description": "Trust emails automatically. False by default", - "schema": { - "type": "boolean" - } - }, - { - "name": "published", - "in": "query", - "description": "Published authentication provider. False by default", - "schema": { - "type": "boolean" - } - }, - { - "name": "branding_state_event", - "in": "query", - "description": "Branding state event of the authentication provider. Only available for Github. It can be either 'brand_as_threescale' (the default one) or 'custom_brand'", - "schema": { - "type": "string" - } - }, - { - "name": "skip_ssl_certificate_verification", - "in": "query", - "description": "Skip SSL certificate verification. False by default.", - "schema": { - "type": "boolean" - } - }, - { - "name": "automatically_approve_accounts", - "in": "query", - "description": "Automatically approve accounts. False by default.", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/proxy/deploy.xml": { - "post": { - "summary": "Proxy Deploy", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/account/authentication_providers/{id}.xml": { - "get": { - "summary": "Authentication Provider Admin Portal Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the authentication provider.", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Authentication Provider Admin Portal Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the authentication provider.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "client_id", - "in": "query", - "description": "Client ID of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "client_secret", - "in": "query", - "description": "Client Secret of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "site", - "in": "query", - "description": "Site o Realm of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "skip_ssl_certificate_verification", - "in": "query", - "description": "Skip SSL certificate verification. False by default.", - "schema": { - "type": "boolean" - } - }, - { - "name": "published", - "in": "query", - "description": "Published authentication provider. False by default", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/applications/{id}/resume.xml": { - "put": { - "summary": "Application Resume", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/proxy/policies.json": { - "get": { - "summary": "Proxy Policies Chain Show", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Proxy Policies Chain Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "policies_config", - "in": "query", - "description": "Proxy policies chain", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{id}/make_pending.xml": { - "put": { - "summary": "Account Reset to Pending", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/metrics/{metric_id}/methods.xml": { - "get": { - "summary": "Service Method List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Service Method Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "friendly_name", - "in": "query", - "description": "Name of the method.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "system_name", - "in": "query", - "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", - "schema": { - "type": "string" - } - }, - { - "name": "unit", - "in": "query", - "description": "Measure unit of the method.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the method.", - "schema": { - "type": "ref" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/applications/{id}/decustomize_plan.xml": { - "put": { - "summary": "Application Delete Plan Customization", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/users/{id}.xml": { - "get": { - "summary": "User Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "User Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "username", - "in": "query", - "description": "Username of the user.", - "schema": { - "type": "string" - } - }, - { - "name": "email", - "in": "query", - "description": "Email of the user.", - "schema": { - "type": "string" - } - }, - { - "name": "password", - "in": "query", - "description": "Password of the user.", - "schema": { - "type": "string" - } - }, - { - "name": "additional_fields", - "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "User Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/users/{id}/activate.xml": { - "put": { - "summary": "User Activate", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/fields_definitions.json": { - "get": { - "summary": "Fields Definitions List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Fields Definition Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "target", - "in": "query", - "description": "Target entity of fields definition.", - "required": true, - "schema": { - "type": "string", - "default": "account", - "enum": [ - "Account", - "User", - "Cinstance" - ] - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the fields definition to be created.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "label", - "in": "query", - "description": "The field title your developers will see.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "required", - "in": "query", - "description": "If 'true' the field will be required for developers.", - "schema": { - "type": "boolean" - } - }, - { - "name": "hidden", - "in": "query", - "description": "If 'true' the developers won't be able to see this field.", - "schema": { - "type": "boolean" - } - }, - { - "name": "read_only", - "in": "query", - "description": "If 'true' the developers won't be able to change this field.", - "schema": { - "type": "boolean" - } - }, - { - "name": "choices", - "in": "query", - "description": "The list of predefined options for this field, URL-encoded array.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{id}/approve.xml": { - "put": { - "summary": "Account Approve", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/limits.xml": { - "get": { - "summary": "Limit List per Metric", - "operationId": "limits", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Limit Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "period", - "in": "query", - "description": "Period of the limit.", - "required": true, - "schema": { - "type": "string", - "default": "minute", - "enum": [ - "eternity", - "year", - "month", - "week", - "day", - "hour", - "minute" - ] - } - }, - { - "name": "value", - "in": "query", - "description": "Value of the limit.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/signup.xml": { - "post": { - "summary": "Signup Express (Account Create)", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "org_name", - "in": "query", - "description": "Organization Name of the developer account.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "username", - "in": "query", - "description": "Username of the admin user (on the new developer account).", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "email", - "in": "query", - "description": "Email of the admin user.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "password", - "in": "query", - "description": "Password of the admin user.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_plan_id", - "in": "query", - "description": "ID of the account plan (if not assigned default will be used instead).", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "service_plan_id", - "in": "query", - "description": "ID of the service plan (if not assigned default will be used instead).", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "application_plan_id", - "in": "query", - "description": "ID of the application plan (if not assigned default will be used instead).", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "additional_fields", - "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/account_plans/{account_plan_id}/features.xml": { - "get": { - "summary": "Account Plan Features List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_plan_id", - "in": "path", - "description": "ID of the account plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/applications/find.xml": { - "get": { - "summary": "Application Find", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "application_id", - "in": "query", - "description": "ID of the application.", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "user_key", - "in": "query", - "description": "user_key of the application (for user_key authentication mode).", - "schema": { - "type": "string" - } - }, - { - "name": "app_id", - "in": "query", - "description": "app_id of the application (for app_id/app_key and oauth authentication modes).", - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "query", - "description": "Filter by service", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/metrics/{id}.xml": { - "get": { - "summary": "Service Metric Read", - "operationId": "service_metric", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Service Metric Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "friendly_name", - "in": "query", - "description": "Name of the metric.", - "schema": { - "type": "string" - } - }, - { - "name": "unit", - "in": "query", - "description": "Measure unit of the metric.", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the metric.", - "schema": { - "type": "ref" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Service Metric Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/application_plans/{id}/default.xml": { - "put": { - "summary": "Application Plan Set to Default", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/service_plans/{service_plan_id}/features/{id}.xml": { - "delete": { - "summary": "Service Plan Features Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_plan_id", - "in": "path", - "description": "ID of the service plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the feature.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/application_plans/{id}.xml": { - "get": { - "summary": "Application Plan Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Application Plan Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the application plan.", - "schema": { - "type": "string" - } - }, - { - "name": "approval_required", - "in": "query", - "description": "Set the 'Applications require approval?' to 'true' or 'false'", - "schema": { - "type": "boolean" - } - }, - { - "name": "cost_per_month", - "in": "query", - "description": "Cost per month", - "schema": { - "type": "ref" - } - }, - { - "name": "setup_fee", - "in": "query", - "description": "Setup fee", - "schema": { - "type": "ref" - } - }, - { - "name": "trial_period_days", - "in": "query", - "description": "Trial period days", - "schema": { - "type": "ref" - } - }, - { - "name": "state_event", - "in": "query", - "description": "State event of the application plan. It can be 'publish' or 'hide'", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Application Plan Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/features/{id}.xml": { - "get": { - "summary": "Account Feature Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the feature.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Account Feature Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the feature.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the feature.", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Account Feature Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the feature.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/service_contracts/{id}.xml": { - "delete": { - "summary": "Service Subscription Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the service contract.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/account_plans/{id}.xml": { - "get": { - "summary": "Account Plan Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the account plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Account Plan Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the account plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the account plan.", - "schema": { - "type": "string" - } - }, - { - "name": "approval_required", - "in": "query", - "description": "Set the 'Accounts require approval?' to 'true' or 'false'", - "schema": { - "type": "boolean" - } - }, - { - "name": "state_event", - "in": "query", - "description": "State event of the account plan. It can be 'publish' or 'hide'", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Account Plan Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the account plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/application_plans.xml": { - "get": { - "summary": "Application Plan List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Application Plan Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the application plan.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "approval_required", - "in": "query", - "description": "Set the 'Applications require approval?' to 'true' or 'false'", - "schema": { - "type": "boolean" - } - }, - { - "name": "cost_per_month", - "in": "query", - "description": "Cost per month", - "schema": { - "type": "ref" - } - }, - { - "name": "setup_fee", - "in": "query", - "description": "Setup fee", - "schema": { - "type": "ref" - } - }, - { - "name": "trial_period_days", - "in": "query", - "description": "Trial period days", - "schema": { - "type": "ref" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "schema": { - "type": "string" - } - }, - { - "name": "state_event", - "in": "query", - "description": "State event of the application plan. It can be 'publish' or 'hide'", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/personal/access_tokens.json": { - "get": { - "summary": "Personal Access Token List", - "parameters": [ - { - "name": "name", - "in": "query", - "description": "Part of the name of the access token.", - "schema": { - "type": "string" - } - }, - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Personal Access Token Create", - "parameters": [ - { - "name": "name", - "in": "query", - "description": "Name of the access token.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "permission", - "in": "query", - "description": "Permission of the access token. It must be either 'ro' (read only) or 'rw' (read and write).", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "scopes", - "in": "query", - "description": "Scope of the access token. URL-encoded array containing one or more of the possible values. The possible values are, for a master user [\"account_management\", \"stats\", \"policy_registry\"], and for a tenant user [\"finance\", \"account_management\", \"stats\", \"policy_registry\"]", - "required": true, - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - }, - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/application_plans/{application_plan_id}/features.xml": { - "get": { - "summary": "Application Plan Feature List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Application Plan Feature Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "feature_id", - "in": "query", - "description": "ID of the feature.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/authentication_providers/{id}.xml": { - "get": { - "summary": "Authentication Provider Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the authentication provider.", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Authentication Provider Developer Portal Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the authentication provider.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "client_id", - "in": "query", - "description": "Client ID of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "client_secret", - "in": "query", - "description": "Client Secret of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "site", - "in": "query", - "description": "Site o Realm of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "published", - "in": "query", - "description": "Published authentication provider. False by default", - "schema": { - "type": "boolean" - } - }, - { - "name": "skip_ssl_certificate_verification", - "in": "query", - "description": "Skip SSL certificate verification. False by default.", - "schema": { - "type": "boolean" - } - }, - { - "name": "automatically_approve_accounts", - "in": "query", - "description": "Automatically approve accounts. False by default.", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/backend_apis/{backend_api_id}/metrics/{metric_id}/methods.json": { - "get": { - "summary": "Backend Method List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "page", - "in": "query", - "description": "Page in the paginated list. Defaults to 1.", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "per_page", - "in": "query", - "description": "Number of results per page. Default and max is 500.", - "schema": { - "type": "integer", - "format": "int32", - "default": 500 - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Backend Method Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "friendly_name", - "in": "query", - "description": "Descriptive Name of the metric.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the metric. If blank a system_name will be generated for you from the friendly_name parameter", - "schema": { - "type": "string" - } - }, - { - "name": "unit", - "in": "query", - "description": "Measure unit of the metric.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the metric.", - "schema": { - "type": "ref" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{id}/change_plan.xml": { - "put": { - "summary": "Account Change Plan", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "plan_id", - "in": "query", - "description": "ID of the target account plan", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/applications/{id}/change_plan.xml": { - "put": { - "summary": "Application Change Plan", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "plan_id", - "in": "query", - "description": "ID of the new application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/backend_usages.json": { - "get": { - "summary": "Backend Usage List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Backend Usage Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "backend_api_id", - "in": "query", - "description": "Backend to be added to the Service (Product).", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "path", - "in": "query", - "description": "Path of the Backend for this product.", - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/backend_apis/{backend_api_id}/mapping_rules.json": { - "get": { - "summary": "Backend Mapping Rules List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "page", - "in": "query", - "description": "Page in the paginated list. Defaults to 1.", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "per_page", - "in": "query", - "description": "Number of results per page. Default and max is 500.", - "schema": { - "type": "integer", - "format": "int32", - "default": 500 - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Backend Mapping Rule Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "http_method", - "in": "query", - "description": "HTTP method.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "pattern", - "in": "query", - "description": "Mapping Rule pattern.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "delta", - "in": "query", - "description": "Increase the metric by this delta.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "query", - "description": "Metric ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "position", - "in": "query", - "description": "Mapping Rule position", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "last", - "in": "query", - "description": "Last matched Mapping Rule to process", - "schema": { - "type": "ref" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/users/{id}/suspend.xml": { - "put": { - "summary": "User Suspend", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/applications/{id}/suspend.xml": { - "put": { - "summary": "Application Suspend", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/applications/{application_id}/keys.xml": { - "get": { - "summary": "Application Key List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "application_id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Application Key Create", - "operationId": "key_create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "application_id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "key", - "in": "query", - "description": "app_key to be added", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/active_docs/{id}.json": { - "get": { - "summary": "ActiveDocs Spec Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the ActiveDocs spec", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "ActiveDocs Spec Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the ActiveDocs spec", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the ActiveDocs spec", - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "query", - "description": "Service ID of the ActiveDocs spec", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "body", - "in": "query", - "description": "ActiveDocs specification in JSON format (based on Swagger)", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the ActiveDocs spec", - "schema": { - "type": "string" - } - }, - { - "name": "published", - "in": "query", - "description": "Set to 'true' to publish the spec on the developer portal, or 'false' to hide it", - "schema": { - "type": "boolean" - } - }, - { - "name": "skip_swagger_validations", - "in": "query", - "description": "Set to 'true' to skip validation of the Swagger specification, or 'false' to validate the spec", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "ActiveDocs Spec Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the ActiveDocs spec", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/plan.xml": { - "get": { - "summary": "Account Fetch Account Plan", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/applications.xml": { - "get": { - "summary": "Application List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Application Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "plan_id", - "in": "query", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the application to be created.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the application to be created.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "user_key", - "in": "query", - "description": "User Key (API Key) of the application to be created.", - "schema": { - "type": "string" - } - }, - { - "name": "application_id", - "in": "query", - "description": "App ID or Client ID (for OAuth and OpenID Connect authentication modes) of the application to be created.", - "schema": { - "type": "string" - } - }, - { - "name": "application_key", - "in": "query", - "description": "App Key(s) or Client Secret (for OAuth and OpenID Connect authentication modes) of the application to be created.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "redirect_url", - "in": "query", - "description": "Redirect URL for the OAuth request.", - "schema": { - "type": "string" - } - }, - { - "name": "first_traffic_at", - "in": "query", - "description": "Timestamp of the first call made by the application.", - "schema": { - "type": "string" - } - }, - { - "name": "first_daily_traffic_at", - "in": "query", - "description": "Timestamp of the first call on the last day when traffic was registered for the application ('Traffic On').", - "schema": { - "type": "string" - } - }, - { - "name": "additional_fields", - "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/applications.xml": { - "get": { - "summary": "Application List (all services)", - "operationId": "applications", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Page in the paginated list. Defaults to 1.", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "per_page", - "in": "query", - "description": "Number of results per page. Default and max is 500.", - "schema": { - "type": "integer", - "format": "int32", - "default": 500 - } - }, - { - "name": "active_since", - "in": "query", - "description": "Filter date", - "schema": { - "type": "string" - } - }, - { - "name": "inactive_since", - "in": "query", - "description": "Filter date", - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "query", - "description": "Filter by service", - "schema": { - "type": "string" - } - }, - { - "name": "plan_id", - "in": "query", - "description": "Filter by plan", - "schema": { - "type": "string" - } - }, - { - "name": "plan_type", - "in": "query", - "description": "Filter by plan type", - "schema": { - "type": "string", - "enum": [ - "free", - "paid" - ] - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/applications/{id}.xml": { - "get": { - "summary": "Application Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Application Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the application.", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the application.", - "schema": { - "type": "string" - } - }, - { - "name": "redirect_url", - "in": "query", - "description": "Redirect URL for the OAuth request.", - "schema": { - "type": "string" - } - }, - { - "name": "first_traffic_at", - "in": "query", - "description": "Timestamp of the first call made by the application.", - "schema": { - "type": "string" - } - }, - { - "name": "first_daily_traffic_at", - "in": "query", - "description": "Timestamp of the first call on the last day when traffic was registered for the application ('Traffic On').", - "schema": { - "type": "string" - } - }, - { - "name": "additional_fields", - "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Application Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/pricing_rules.xml": { - "get": { - "summary": "Pricing Rules List per Metric", - "operationId": "metric_pricing_rules", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Pricing Rule Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "min", - "in": "query", - "description": "From (min) hit", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "max", - "in": "query", - "description": "To (max) hit", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "cost_per_unit", - "in": "query", - "description": "Cost per unit", - "schema": { - "type": "ref" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services.xml": { - "get": { - "summary": "Service List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Page in the paginated list. Defaults to 1.", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "per_page", - "in": "query", - "description": "Number of results per page. Default and max is 500.", - "schema": { - "type": "integer", - "format": "int32", - "default": 500 - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Service Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the service to be created.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the service to be created.", - "schema": { - "type": "string" - } - }, - { - "name": "deployment_option", - "in": "query", - "description": "Deployment option for the gateway: 'hosted' for APIcast hosted, 'self_managed' for APIcast Self-managed, 'service_mesh_istio' for Istio service mesh option", - "schema": { - "type": "string" - } - }, - { - "name": "backend_version", - "in": "query", - "description": "Authentication mode: '1' for API key, '2' for App Id / App Key, 'oidc' for OpenID Connect", - "schema": { - "type": "string" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "schema": { - "type": "string" - } - }, - { - "name": " ", - "in": "query", - "description": "Extra parameters", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/proxy/mapping_rules.xml": { - "get": { - "summary": "Proxy Mapping Rules List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Proxy Mapping Rule Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "http_method", - "in": "query", - "description": "HTTP method.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "pattern", - "in": "query", - "description": "Mapping Rule pattern.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "delta", - "in": "query", - "description": "Increase the metric by this delta.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "query", - "description": "Metric ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "position", - "in": "query", - "description": "Mapping Rule position", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "last", - "in": "query", - "description": "Last matched Mapping Rule to process", - "schema": { - "type": "ref" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/active_docs.json": { - "get": { - "summary": "ActiveDocs Spec List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "ActiveDocs Spec Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the ActiveDocs spec", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the ActiveDocs spec. Only ASCII letters, numbers, dashes and underscores are allowed. If blank, 'system_name' will be generated from the 'name' parameter", - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "query", - "description": "Service ID of the ActiveDocs spec", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "body", - "in": "query", - "description": "ActiveDocs specification in JSON format (based on Swagger)", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the ActiveDocs spec", - "schema": { - "type": "string" - } - }, - { - "name": "published", - "in": "query", - "description": "Set to 'true' to publish the spec on the developer portal, or 'false' to hide it. The default value is 'false'", - "schema": { - "type": "boolean" - } - }, - { - "name": "skip_swagger_validations", - "in": "query", - "description": "Set to 'true' to skip validation of the Swagger specification, or 'false' to validate the spec. The default value is 'false'", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/backend_apis.json": { - "get": { - "summary": "Backend List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Page in the paginated list. Defaults to 1.", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "per_page", - "in": "query", - "description": "Number of results per page. Default and max is 500.", - "schema": { - "type": "integer", - "format": "int32", - "default": 500 - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Backend Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the Backend", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the Backend", - "schema": { - "type": "string" - } - }, - { - "name": "private_endpoint", - "in": "query", - "description": "Private Base URL (your API)", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/features.xml": { - "get": { - "summary": "Account Features List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Account Feature Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the feature.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{id}.xml": { - "get": { - "summary": "Account Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Account Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "org_name", - "in": "query", - "description": "Organization name of the account.", - "schema": { - "type": "string" - } - }, - { - "name": "monthly_billing_enabled", - "in": "query", - "description": "Updates monthly billing status.", - "schema": { - "type": "boolean" - } - }, - { - "name": "monthly_charging_enabled", - "in": "query", - "description": "Updates monthly charging status.", - "schema": { - "type": "boolean" - } - }, - { - "name": "additional_fields", - "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Account Delete ", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/pricing_rules/{id}.json": { - "delete": { - "summary": "Pricing Rule Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the pricing rule.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/application_plans/{application_plan_id}/pricing_rules.xml": { - "get": { - "summary": "Pricing Rules List per Application Plan", - "operationId": "pricing_rules", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/proxy/mapping_rules/{id}.xml": { - "get": { - "summary": "Proxy Mapping Rules Show", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "Mapping Rule ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Proxy Mapping Rule Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "Mapping Rule ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "patch": { - "summary": "Proxy Mapping Rule Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "Mapping Rule ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "http_method", - "in": "query", - "description": "HTTP method.", - "schema": { - "type": "string" - } - }, - { - "name": "pattern", - "in": "query", - "description": "Mapping Rule pattern.", - "schema": { - "type": "string" - } - }, - { - "name": "delta", - "in": "query", - "description": "Increase the metric by this delta.", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "query", - "description": "Metric ID.", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "position", - "in": "query", - "description": "Mapping Rule position", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "last", - "in": "query", - "description": "Last matched Mapping Rule to process", - "schema": { - "type": "ref" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/service_plans.xml": { - "get": { - "summary": "Service Plan List (all services)", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/proxy/configs/{environment}/{version}/promote.json": { - "post": { - "summary": "Proxy Config Promote", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "environment", - "in": "path", - "description": "Gateway environment. Must be 'sandbox' or 'production'", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "version", - "in": "path", - "description": "Version of the Proxy config.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "to", - "in": "query", - "description": "the name of the destination environment", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{id}/service_plans.xml": { - "get": { - "summary": "Service Plan List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Service Plan Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the service plan.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "approval_required", - "in": "query", - "description": "Set the 'Service subscriptions require approval?' to 'true' or 'false'", - "schema": { - "type": "boolean" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "schema": { - "type": "string" - } - }, - { - "name": "state_event", - "in": "query", - "description": "State event of the service plan. It can be 'publish' or 'hide'", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/account/authentication_providers.xml": { - "get": { - "summary": "Authentication Providers Admin Portal List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Authentication Provider Admin Portal Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "kind", - "in": "query", - "description": "The kind of authentication provider which can be either 'auth0' or 'keycloak'. Use 'keycloak' for Red Hat Single Sign-On.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "client_id", - "in": "query", - "description": "Client ID of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "client_secret", - "in": "query", - "description": "Client Secret of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "site", - "in": "query", - "description": "Site o Realm of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "skip_ssl_certificate_verification", - "in": "query", - "description": "Skip SSL certificate verification. False by default.", - "schema": { - "type": "boolean" - } - }, - { - "name": "published", - "in": "query", - "description": "Published authentication provider. False by default", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - } - }, - "components": {} -} \ No newline at end of file diff --git a/doc/active_docs/analytics-s20.json b/doc/active_docs/analytics-s20.json deleted file mode 100644 index 2f1a07ea81..0000000000 --- a/doc/active_docs/analytics-s20.json +++ /dev/null @@ -1,294 +0,0 @@ -{ - "openapi": "3.0.1", - "info": { - "title": "Analytics API", - "version": "1.0" - }, - "servers": [ - { - "url": "http://localhost:3000" - } - ], - "paths": { - "/stats/applications/{application_id}/usage": { - "get": { - "tags": [ - "Application Stats" - ], - "summary": "Application Usage by Metric", - "description": "Returns the usage data for a given metric (or method) of an application.", - "operationId": "application_usage_by_metric", - "parameters": [ - { - "name": "provider_key", - "in": "query", - "description": "Your api key with 3scale", - "required": true, - "schema": { - "type": "string", - "x-data-threescale-name": "api_keys" - }, - "x-data-threescale-name": "api_keys" - }, - { - "name": "application_id", - "in": "path", - "description": "id of the application.", - "required": true, - "schema": { - "type": "integer", - "x-data-threescale-name": "application_ids" - }, - "x-data-threescale-name": "application_ids" - }, - { - "name": "metric_name", - "in": "query", - "description": "System name of metric for which to get data.", - "required": true, - "schema": { - "type": "string", - "default": "hits", - "x-data-threescale-name": "metric_names" - }, - "x-data-threescale-name": "metric_names" - }, - { - "name": "since", - "in": "query", - "description": "Time range start. Format YYYY-MM-DD HH:MM:SS, examples: '2012-02-22', '2012-02-22 23:49:00'", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "period", - "in": "query", - "description": "Period, combined with since give the stats for the time range [since .. since + period]. It is required if until is not passed.", - "schema": { - "type": "string" - } - }, - { - "name": "until", - "in": "query", - "description": "Time range end. Format YYYY-MM-DD HH:MM:SS", - "schema": { - "type": "string" - } - }, - { - "name": "granularity", - "in": "query", - "description": "Granularity of the results. Each period has an associated granularity.", - "required": true, - "schema": { - "type": "string", - "default": "month" - } - }, - { - "name": "timezone", - "in": "query", - "description": "Timezone to do the calculations in.", - "schema": { - "type": "string", - "default": "UTC" - } - }, - { - "name": "skip_change", - "in": "query", - "description": "Skip period over period calculations (defaults to true).", - "schema": { - "type": "boolean", - "default": true - } - } - ], - "responses": { - "200": { - "description": "No response was specified", - "content": {} - } - } - } - }, - "/stats/services/{service_id}/usage": { - "get": { - "tags": [ - "Service Stats" - ], - "summary": "Service Usage by Metric", - "description": "Returns the usage data of a given metric (or method) of a service.", - "operationId": "application_usage_by_metric", - "parameters": [ - { - "name": "provider_key", - "in": "query", - "description": "Your api key with 3scale", - "required": true, - "schema": { - "type": "string", - "x-data-threescale-name": "api_keys" - }, - "x-data-threescale-name": "api_keys" - }, - { - "name": "service_id", - "in": "path", - "description": "id of the service.", - "required": true, - "schema": { - "type": "integer", - "x-data-threescale-name": "service_ids" - }, - "x-data-threescale-name": "service_ids" - }, - { - "name": "metric_name", - "in": "query", - "description": "System name of metric for which to get data.", - "required": true, - "schema": { - "type": "string", - "default": "hits", - "x-data-threescale-name": "metric_names" - }, - "x-data-threescale-name": "metric_names" - }, - { - "name": "since", - "in": "query", - "description": "Time range start. Format YYYY-MM-DD HH:MM:SS, examples: '2012-02-22', '2012-02-22 23:49:00'", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "period", - "in": "query", - "description": "Period, combined with since give the stats for the time range [since .. since + period]. It is required if until is not passed.", - "schema": { - "type": "string" - } - }, - { - "name": "until", - "in": "query", - "description": "Time range end. Format YYYY-MM-DD HH:MM:SS", - "schema": { - "type": "string" - } - }, - { - "name": "granularity", - "in": "query", - "description": "Granularity of the results. Each period has an associated granularity.", - "required": true, - "schema": { - "type": "string", - "default": "month" - } - }, - { - "name": "timezone", - "in": "query", - "description": "Timezone to do the calculations in.", - "schema": { - "type": "string", - "default": "UTC" - } - }, - { - "name": "skip_change", - "in": "query", - "description": "Skip period over period calculations (defaults to true).", - "schema": { - "type": "boolean", - "default": true - } - } - ], - "responses": { - "200": { - "description": "No response was specified", - "content": {} - } - } - } - }, - "/stats/services/{service_id}/top_applications": { - "get": { - "tags": [ - "Service Stats" - ], - "summary": "Service Top Applications", - "description": "Returns usage and application data for the top 10 most active applications of a service.", - "operationId": "service_top_applications", - "parameters": [ - { - "name": "provider_key", - "in": "query", - "description": "Your api key with 3scale", - "required": true, - "schema": { - "type": "string", - "x-data-threescale-name": "api_keys" - }, - "x-data-threescale-name": "api_keys" - }, - { - "name": "service_id", - "in": "path", - "description": "id of the service.", - "required": true, - "schema": { - "type": "integer", - "x-data-threescale-name": "service_ids" - }, - "x-data-threescale-name": "service_ids" - }, - { - "name": "since", - "in": "query", - "description": "Time range start. Format YYYY-MM-DD HH:MM:SS, examples: '2012-02-22', '2012-02-22 23:49:00'", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "period", - "in": "query", - "description": "Period, combined with since give the stats for the time range [since .. since + period]. It is required if until is not passed.", - "schema": { - "type": "string" - } - }, - { - "name": "metric_name", - "in": "query", - "description": "System name of metric for which to get data.", - "required": true, - "schema": { - "type": "string", - "default": "hits", - "x-data-threescale-name": "metric_names" - }, - "x-data-threescale-name": "metric_names" - } - ], - "responses": { - "200": { - "description": "No response was specified", - "content": {} - } - } - } - } - }, - "components": {} -} \ No newline at end of file diff --git a/doc/active_docs/finance-s20.json b/doc/active_docs/finance-s20.json deleted file mode 100644 index f2eb8bc528..0000000000 --- a/doc/active_docs/finance-s20.json +++ /dev/null @@ -1,373 +0,0 @@ -{ - "openapi": "3.0.1", - "info": { - "title": "Billing API", - "version": "1.0" - }, - "servers": [ - { - "url": "https://example.com/" - } - ], - "paths": { - "/api/accounts/{account_id}/invoices.xml": { - "get": { - "tags": [ - "Finances" - ], - "summary": "Invoice List by Account", - "description": "Returns the list of all invoices by account. Note that results can be paginated. You can apply filters by month and by state of the invoices.", - "operationId": "invoice_list_by_account", - "parameters": [ - { - "name": "provider_key", - "in": "query", - "description": "Your api key with 3scale", - "required": true, - "schema": { - "type": "string", - "x-data-threescale-name": "api_keys" - }, - "x-data-threescale-name": "api_keys" - }, - { - "name": "account_id", - "in": "path", - "description": "id of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32", - "x-data-threescale-name": "account_ids" - }, - "x-data-threescale-name": "account_ids" - }, - { - "name": "state", - "in": "query", - "description": "Filter the invoice by state. 'open': line items can be added (only via web interface). 'pending': the invoice has been issued, no items can be added, the PDF has been generated and the invoice is waiting to be charged for. 'paid': sucessfully paid. 'unpaid': charging failed at least once. 'cancelled': the invoice was explicitely cancelled and is out of normal life-cycle.", - "schema": { - "type": "string" - } - }, - { - "name": "month", - "in": "query", - "description": "Filter the invoice by month. Format YYYY-MM, e.g. '2012-03' for march 2012", - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Page in the paginated list. Defaults to 1.", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "per_page", - "in": "query", - "description": "Number of results per page. Default and max is 20.", - "schema": { - "type": "integer", - "format": "int32", - "default": 20 - } - } - ], - "responses": { - "200": { - "description": "No response was specified", - "content": {} - } - } - } - }, - "/api/accounts/{account_id}/invoices/{id}.xml": { - "get": { - "tags": [ - "Finances" - ], - "summary": "Invoice by Account", - "description": "Returns an invoice by id.", - "operationId": "invoice_by_account", - "parameters": [ - { - "name": "provider_key", - "in": "query", - "description": "Your api key with 3scale", - "required": true, - "schema": { - "type": "string", - "x-data-threescale-name": "api_keys" - }, - "x-data-threescale-name": "api_keys" - }, - { - "name": "account_id", - "in": "path", - "description": "id of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32", - "x-data-threescale-name": "account_ids" - }, - "x-data-threescale-name": "account_ids" - }, - { - "name": "id", - "in": "path", - "description": "id of the invoice.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "No response was specified", - "content": {} - } - } - } - }, - "/api/invoices.xml": { - "get": { - "tags": [ - "Finances" - ], - "summary": "Invoice List", - "description": "Returns the list of all invoices. Note that results can be paginated. You can apply filters by month and by state of the invoices.", - "operationId": "invoice_list", - "parameters": [ - { - "name": "provider_key", - "in": "query", - "description": "Your api key with 3scale", - "required": true, - "schema": { - "type": "string", - "x-data-threescale-name": "api_keys" - }, - "x-data-threescale-name": "api_keys" - }, - { - "name": "state", - "in": "query", - "description": "Filter the invoice by state. 'open': line items can be added (only via web interface). 'pending': the invoice has been issued, no items can be added, the PDF has been generated and the invoice is waiting to be charged for. 'paid': sucessfully paid. 'unpaid': charging failed at least once. 'cancelled': the invoice was explicitely cancelled and is out of normal life-cycle.", - "schema": { - "type": "string" - } - }, - { - "name": "month", - "in": "query", - "description": "Filter the invoice by month. Format YYYY-MM, e.g. '2012-03' for march 2012", - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Page in the paginated list. Defaults to 1.", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "per_page", - "in": "query", - "description": "Number of results per page. Default and max is 20.", - "schema": { - "type": "integer", - "format": "int32", - "default": 20 - } - } - ], - "responses": { - "200": { - "description": "No response was specified", - "content": {} - } - } - } - }, - "/api/invoices/{id}.xml": { - "get": { - "tags": [ - "Finances" - ], - "summary": "Invoice", - "description": "Returns an invoice by id.", - "operationId": "invoice_show", - "parameters": [ - { - "name": "provider_key", - "in": "query", - "description": "Your api key with 3scale", - "required": true, - "schema": { - "type": "string", - "x-data-threescale-name": "api_keys" - }, - "x-data-threescale-name": "api_keys" - }, - { - "name": "id", - "in": "path", - "description": "id of the invoice.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "No response was specified", - "content": {} - } - } - } - }, - "/api/invoices/{id}/state.xml": { - "put": { - "tags": [ - "Finances" - ], - "summary": "Invoice", - "description": "Modifies the state of the invoice.", - "operationId": "invoice_state", - "parameters": [ - { - "name": "provider_key", - "in": "query", - "description": "Your api key with 3scale", - "required": true, - "schema": { - "type": "string", - "x-data-threescale-name": "api_keys" - }, - "x-data-threescale-name": "api_keys" - }, - { - "name": "id", - "in": "path", - "description": "id of the invoice.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "state", - "in": "query", - "description": "State of the invoice to set. Only 'cancel' value is allowed", - "required": true, - "schema": { - "type": "string", - "x-data-threescale-name": "state" - }, - "x-data-threescale-name": "state" - } - ], - "responses": { - "200": { - "description": "No response was specified", - "content": {} - } - } - } - }, - "/api/invoices/{invoice_id}/line_items.xml": { - "get": { - "tags": [ - "Finances" - ], - "summary": "Invoice Line Items List", - "description": "Returns the list of all line items of an invoice.", - "operationId": "invoice_line_items_list", - "parameters": [ - { - "name": "provider_key", - "in": "query", - "description": "Your api key with 3scale", - "required": true, - "schema": { - "type": "string", - "x-data-threescale-name": "api_keys" - }, - "x-data-threescale-name": "api_keys" - }, - { - "name": "invoice_id", - "in": "path", - "description": "id of the invoice.", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "No response was specified", - "content": {} - } - } - } - }, - "/api/invoices/{invoice_id}/payment_transactions.xml": { - "get": { - "tags": [ - "Finances" - ], - "summary": "Invoice Payment Transactions List", - "description": "Returns the list of all payment transactions of an invoice.", - "operationId": "invoice_payment_transactions_list", - "parameters": [ - { - "name": "provider_key", - "in": "query", - "description": "Your api key with 3scale", - "required": true, - "schema": { - "type": "string", - "x-data-threescale-name": "api_keys" - }, - "x-data-threescale-name": "api_keys" - }, - { - "name": "invoice_id", - "in": "path", - "description": "id of the invoice.", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "No response was specified", - "content": {} - } - } - } - } - }, - "components": {} -} \ No newline at end of file From 0ac77710df89332eba3d17baff6220588510ae4f Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Mon, 16 Jan 2023 16:51:25 +0530 Subject: [PATCH 13/85] Revert "THREESCALE-3927 removed unsed files" This reverts commit 9d620570a51bb87ae8d398707dd82a00efbb9c3e. --- .../Service Management API (on-premises).json | 332 + doc/active_docs/accounts-s20.json | 9742 +++++++++++++++++ doc/active_docs/analytics-s20.json | 294 + doc/active_docs/finance-s20.json | 373 + 4 files changed, 10741 insertions(+) create mode 100644 doc/active_docs/Service Management API (on-premises).json create mode 100644 doc/active_docs/accounts-s20.json create mode 100644 doc/active_docs/analytics-s20.json create mode 100644 doc/active_docs/finance-s20.json diff --git a/doc/active_docs/Service Management API (on-premises).json b/doc/active_docs/Service Management API (on-premises).json new file mode 100644 index 0000000000..ca3ba57eab --- /dev/null +++ b/doc/active_docs/Service Management API (on-premises).json @@ -0,0 +1,332 @@ +{ + "openapi": "3.0.1", + "info": { + "version": "1.0" + }, + "servers": [ + { + "url": "https://su1.3scale.net/" + } + ], + "paths": { + "/transactions/oauth_authorize.xml": { + "get": { + "summary": "Authorize (OAuth authentication mode pattern)", + "operationId": "oauth_authorize", + "parameters": [ + { + "name": "service_token", + "in": "query", + "description": "Your service api key with 3scale (also known as service token).", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "query", + "description": "Service id. Required.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "access_token", + "in": "query", + "description": "OAuth token used for authorizing if you don't use client_id with client_secret.", + "schema": { + "type": "string" + } + }, + { + "name": "app_id", + "in": "query", + "description": "Client Id (identifier of the application if the auth. pattern is OAuth, note that client_id == app_id)", + "schema": { + "type": "string" + } + }, + { + "name": "referrer", + "in": "query", + "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed.", + "schema": { + "type": "string" + } + }, + { + "name": "usage", + "in": "query", + "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.", + "schema": { + "type": "ref" + } + }, + { + "name": "redirect_url", + "in": "query", + "description": "Optional redirect URL for OAuth. Will be validated if sent.", + "schema": { + "type": "string" + } + }, + { + "name": "redirect_uri", + "in": "query", + "description": "Optional redirect URI for OAuth. This is the same as 'redirect_url', but if used you should expect a matching 'redirect_uri' response field.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/transactions/authrep.xml": { + "get": { + "summary": "AuthRep (Authorize + Report for the API Key authentication pattern)", + "parameters": [ + { + "name": "service_token", + "in": "query", + "description": "Your service api key with 3scale (also known as service token).", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "query", + "description": "Service id. Required.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "user_key", + "in": "query", + "description": "User Key (identifier and shared secret of the application if the auth. pattern is Api Key)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "referrer", + "in": "query", + "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed.", + "schema": { + "type": "string" + } + }, + { + "name": "usage", + "in": "query", + "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/transactions/oauth_authrep.xml": { + "get": { + "summary": "AuthRep (OAuth authentication mode pattern)", + "operationId": "oauth_authrep", + "parameters": [ + { + "name": "service_token", + "in": "query", + "description": "Your service api key with 3scale (also known as service token).", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "query", + "description": "Service id. Required.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "access_token", + "in": "query", + "description": "OAuth token used for authorizing if you don't use client_id with client_secret.", + "schema": { + "type": "string" + } + }, + { + "name": "app_id", + "in": "query", + "description": "Client Id (identifier of the application if the auth. pattern is OAuth, note that client_id == app_id)", + "schema": { + "type": "string" + } + }, + { + "name": "referrer", + "in": "query", + "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed.", + "schema": { + "type": "string" + } + }, + { + "name": "usage", + "in": "query", + "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", + "schema": { + "type": "ref" + } + }, + { + "name": "redirect_url", + "in": "query", + "description": "Optional redirect URL for OAuth. Will be validated if sent.", + "schema": { + "type": "string" + } + }, + { + "name": "redirect_uri", + "in": "query", + "description": "Optional redirect URI for OAuth. This is the same as 'redirect_url', but if used you should expect a matching 'redirect_uri' response field.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/transactions/authorize.xml": { + "get": { + "summary": "Authorize (API Key authentication pattern)", + "operationId": "authorize_user_key", + "parameters": [ + { + "name": "service_token", + "in": "query", + "description": "Your service api key with 3scale (also known as service token).", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "query", + "description": "Service id. Required.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "user_key", + "in": "query", + "description": "User Key (identifier and shared secret of the application if the auth. pattern is Api Key)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "referrer", + "in": "query", + "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed.", + "schema": { + "type": "string" + } + }, + { + "name": "usage", + "in": "query", + "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/transactions.xml": { + "post": { + "summary": "Report (OAuth authentication pattern)", + "parameters": [ + { + "name": "service_token", + "in": "query", + "description": "Your service api key with 3scale (also known as service token).", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "query", + "description": "Service id. Required.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "transactions", + "in": "query", + "description": "Transactions to be reported. There is a limit of 1000 transactions to be reported on a single request.", + "required": true, + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + } + }, + "components": {} +} \ No newline at end of file diff --git a/doc/active_docs/accounts-s20.json b/doc/active_docs/accounts-s20.json new file mode 100644 index 0000000000..fb8d86ec15 --- /dev/null +++ b/doc/active_docs/accounts-s20.json @@ -0,0 +1,9742 @@ +{ + "openapi": "3.0.1", + "info": { + "version": "1.0" + }, + "servers": [ + { + "url": "/" + } + ], + "paths": { + "/admin/api/services/{service_id}/features.xml": { + "get": { + "summary": "Service Feature List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Service Feature Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the feature.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the feature.", + "schema": { + "type": "ref" + } + }, + { + "name": "scope", + "in": "query", + "description": "Type of plan that the feature will be available for.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "enum": [ + "ApplicationPlan", + "ServicePlan" + ] + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/backend_apis/{backend_api_id}/mapping_rules/{id}.json": { + "get": { + "summary": "Backend Mapping Rules Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "Mapping Rule ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Backend Mapping Rule Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "Mapping Rule ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "http_method", + "in": "query", + "description": "HTTP method.", + "schema": { + "type": "string" + } + }, + { + "name": "pattern", + "in": "query", + "description": "Mapping Rule pattern.", + "schema": { + "type": "string" + } + }, + { + "name": "delta", + "in": "query", + "description": "Increase the metric by this delta.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "query", + "description": "Metric ID.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "position", + "in": "query", + "description": "Mapping Rule position", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "last", + "in": "query", + "description": "Last matched Mapping Rule to process", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Backend Mapping Rule Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "Mapping Rule ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/application_plans/{application_plan_id}/features/{id}.xml": { + "delete": { + "summary": "Application Plan Feature Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/personal/access_tokens/{id}.json": { + "get": { + "summary": "Personal Access Token Read", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "ID or value of the access token.", + "required": true, + "schema": { + "type": "ref" + } + }, + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Personal Access Token Delete", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "ID or value of the access token.", + "required": true, + "schema": { + "type": "ref" + } + }, + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/users/{id}/admin.xml": { + "put": { + "summary": "User Change Role to Admin (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/users/{user_id}/access_tokens.json": { + "post": { + "summary": "Access Token Create", + "parameters": [ + { + "name": "user_id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "ref" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the access token.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "permission", + "in": "query", + "description": "Permission of the access token. It must be either 'ro' (read only) or 'rw' (read and write).", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "scopes", + "in": "query", + "description": "Scope of the access token. URL-encoded array containing one or more of the possible values. The possible values are, for a master user [\"account_management\", \"stats\"], and for a tenant user [\"finance\", \"account_management\", \"stats\"]", + "required": true, + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + }, + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/users/{id}/unsuspend.xml": { + "put": { + "summary": "User Unsuspend", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{id}/credit_card.xml": { + "put": { + "summary": "Account Set Credit Card", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "credit_card_token", + "in": "query", + "description": "Token used by the payment gateway to identify the buyer, customer profile ID (Authorize.net), customer ID (Braintree and Stripe), customer alias (Ogone-Ingenico). Some payment gateways may store more than one card under the same buyer reference and/or require an additional identifier for recurring payment. If you are using Braintree, there is no need for additional identifier -- the first credit card available will always be charged. For Authorize.net, see `credit_card_authorize_net_payment_profile_token`.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "credit_card_authorize_net_payment_profile_token", + "in": "query", + "description": "Additional reference provided by the payment gateway to identify a specific card under the same buyer reference. For Authorize.net, you MUST fill with the 'Payment profile token'", + "schema": { + "type": "string" + } + }, + { + "name": "credit_card_expiration_year", + "in": "query", + "description": "Year of expiration of credit card. Two digit number", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "credit_card_expiration_month", + "in": "query", + "description": "Month of expiration of credit card. Two digit number", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "billing_address_name", + "in": "query", + "description": "Name of the person/company to bill", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "billing_address_address", + "in": "query", + "description": "Address associated to the credit card", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "billing_address_city", + "in": "query", + "description": "Billing address city", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "billing_address_country", + "in": "query", + "description": "Billing address country", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "billing_address_state", + "in": "query", + "description": "Billing address state", + "schema": { + "type": "string" + } + }, + { + "name": "billing_address_phone", + "in": "query", + "description": "Billing address phone", + "schema": { + "type": "string" + } + }, + { + "name": "billing_address_zip", + "in": "query", + "description": "Billing address ZIP Code", + "schema": { + "type": "string" + } + }, + { + "name": "credit_card_partial_number", + "in": "query", + "description": "Last four digits on the credit card", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Account Delete Credit Card", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/limits/{id}.xml": { + "get": { + "summary": "Limit Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the limit.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Limit Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the limit.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "period", + "in": "query", + "description": "Period of the limit.", + "required": true, + "schema": { + "type": "string", + "default": "minute", + "enum": [ + "eternity", + "year", + "month", + "week", + "day", + "hour", + "minute" + ] + } + }, + { + "name": "value", + "in": "query", + "description": "Value of the limit.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Limit Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the limit.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts.xml": { + "get": { + "summary": "Account List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "state", + "in": "query", + "description": "Account state.", + "schema": { + "type": "string", + "enum": [ + "pending", + "approved", + "rejected" + ] + } + }, + { + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 500.", + "schema": { + "type": "integer", + "format": "int32", + "default": 500 + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{id}/reject.xml": { + "put": { + "summary": "Account Reject", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/account_plans/{id}/default.xml": { + "put": { + "summary": "Account Plan set to Default", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/webhooks/failures.xml": { + "get": { + "summary": "Webhooks List Failed Deliveries", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Webhooks Delete Failed Deliveries", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "time", + "in": "query", + "description": "Only failed webhook deliveries whose time is less than or equal to the passed time are destroyed (if used).", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/proxy/configs/{environment}/{version}.json": { + "get": { + "summary": "Proxy Config Show", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "environment", + "in": "path", + "description": "Gateway environment. Must be 'sandbox' or 'production'", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "version", + "in": "path", + "description": "Version of the Proxy config.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/webhooks.json": { + "put": { + "summary": "WebHooks Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "url", + "in": "query", + "description": "URL that will be notified about all the events", + "schema": { + "type": "string" + } + }, + { + "name": "active", + "in": "query", + "description": "Activate/Disable WebHooks", + "schema": { + "type": "boolean" + } + }, + { + "name": "provider_actions", + "in": "query", + "description": "Dashboard actions fire webhooks. If false, only user actions in the portal trigger events.", + "schema": { + "type": "boolean" + } + }, + { + "name": "account_created_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "account_updated_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "account_deleted_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "user_created_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "user_updated_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "user_deleted_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_created_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_updated_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_deleted_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "account_plan_changed_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_plan_changed_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_user_key_updated_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_key_created_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_key_deleted_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_suspended_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_key_updated_on", + "in": "query", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/proxy/configs/{environment}.json": { + "get": { + "summary": "Proxy Configs List (Service)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "environment", + "in": "path", + "description": "Gateway environment. Must be 'sandbox' or 'production'", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/users/{id}/suspend.xml": { + "put": { + "summary": "User Suspend (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{id}.xml": { + "get": { + "summary": "Service Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Service Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "New name for the service.", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "New description for the service.", + "schema": { + "type": "string" + } + }, + { + "name": "support_email", + "in": "query", + "description": "New support email.", + "schema": { + "type": "string" + } + }, + { + "name": "deployment_option", + "in": "query", + "description": "Deployment option for the gateway: 'hosted' for APIcast hosted, 'self_managed' for APIcast Self-managed, 'service_mesh_istio' for Istio service mesh option", + "schema": { + "type": "string" + } + }, + { + "name": "backend_version", + "in": "query", + "description": "Authentication mode: '1' for API key, '2' for App Id / App Key, 'oidc' for OpenID Connect", + "schema": { + "type": "string" + } + }, + { + "name": " ", + "in": "query", + "description": "Extra parameters", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Service Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{application_id}/referrer_filters/{id}.xml": { + "delete": { + "summary": "Application Referrer Filter Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "application_id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of referrer filter to be deleted.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/metrics/{metric_id}/methods/{id}.xml": { + "get": { + "summary": "Service Method Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the method.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Service Method Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the method.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "friendly_name", + "in": "query", + "description": "Name of the method.", + "schema": { + "type": "string" + } + }, + { + "name": "unit", + "in": "query", + "description": "Measure unit of the method.", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the method.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Service Method Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the method.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/settings.json": { + "get": { + "summary": "Settings Read", + "operationId": "service_metric", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Settings Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "useraccountarea_enabled", + "in": "query", + "description": "Allow the user to edit their submitted details, change passwords, etc", + "schema": { + "type": "boolean" + } + }, + { + "name": "hide_service", + "in": "query", + "description": "Used a default service plan", + "schema": { + "type": "boolean" + } + }, + { + "name": "signups_enabled", + "in": "query", + "description": "Developers are allowed sign up themselves.", + "schema": { + "type": "boolean" + } + }, + { + "name": "account_approval_required", + "in": "query", + "description": "Approval is required by you before developer accounts are activated.", + "schema": { + "type": "boolean" + } + }, + { + "name": "strong_passwords_enabled", + "in": "query", + "description": "Require strong passwords from your users: Password must be at least 8 characters long, and contain both upper and lowercase letters, a digit and one special character of -+=><_$#.:;!?@&*()~][}{|. Existing passwords will still work. ", + "schema": { + "type": "boolean" + } + }, + { + "name": "public_search", + "in": "query", + "description": "Enables public search on Developer Portal", + "schema": { + "type": "boolean" + } + }, + { + "name": "account_plans_ui_visible", + "in": "query", + "description": "Enables visibility of Account Plans", + "schema": { + "type": "boolean" + } + }, + { + "name": "change_account_plan_permission", + "in": "query", + "description": "Account Plans changing", + "schema": { + "type": "string" + } + }, + { + "name": "service_plans_ui_visible", + "in": "query", + "description": "Enables visibility of Service Plans", + "schema": { + "type": "boolean" + } + }, + { + "name": "change_service_plan_permission", + "in": "query", + "description": "Service Plans changing", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/backend_apis/{id}.json": { + "get": { + "summary": "Backend Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Backend Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the Backend", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the Backend", + "schema": { + "type": "string" + } + }, + { + "name": "private_endpoint", + "in": "query", + "description": "Private Base URL (your API)", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Backend Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/account_plans/{account_plan_id}/features/{id}.xml": { + "post": { + "summary": "Account Plan Features Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_plan_id", + "in": "path", + "description": "ID of the account plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Account Plan Features Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_plan_id", + "in": "path", + "description": "ID of the account plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/backend_apis/{backend_api_id}/metrics/{id}.json": { + "get": { + "summary": "Backend Metric Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Backend Metric Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "friendly_name", + "in": "query", + "description": "Name of the metric.", + "schema": { + "type": "string" + } + }, + { + "name": "unit", + "in": "query", + "description": "Measure unit of the metric.", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the metric.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Backend Metric Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/backend_usages/{id}.json": { + "get": { + "summary": "Backend Usage Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the Backend Usage.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Backend Usage Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the Backend Usage.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "path", + "in": "query", + "description": "Path of the Backend for this product.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Backend Usage Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the Backend Usage.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/users/{id}.xml": { + "get": { + "summary": "User Read (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "User Update (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "username", + "in": "query", + "description": "Username of the user.", + "schema": { + "type": "string" + } + }, + { + "name": "email", + "in": "query", + "description": "Email of the user.", + "schema": { + "type": "string" + } + }, + { + "name": "password", + "in": "query", + "description": "Password of the user.", + "schema": { + "type": "string" + } + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). Additional fields are the custom fields declared for your tenant, you can find them in 'Settings >> Personal Details' for the account and in 'Settings >> Account >> Users >> Personal Details' for users. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "User Delete (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/fields_definitions/{id}.json": { + "get": { + "summary": "Fields Definition Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the fields definition.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Fields Definition Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the fields definition.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "target", + "in": "query", + "description": "Target entity of fields definition.", + "required": true, + "schema": { + "type": "string", + "default": "account", + "enum": [ + "Account", + "User", + "Cinstance" + ] + } + }, + { + "name": "label", + "in": "query", + "description": "The field title your developers will see.", + "schema": { + "type": "string" + } + }, + { + "name": "required", + "in": "query", + "description": "If 'true' the field will be required for developers.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hidden", + "in": "query", + "description": "If 'true' the developers won't be able to see this field.", + "schema": { + "type": "boolean" + } + }, + { + "name": "read_only", + "in": "query", + "description": "If 'true' the developers won't be able to change this field.", + "schema": { + "type": "boolean" + } + }, + { + "name": "position", + "in": "query", + "description": "Position of the fields definition.", + "schema": { + "type": "ref" + } + }, + { + "name": "choices", + "in": "query", + "description": "The list of predefined options for this field, URL-encoded array.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Fields Definition Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the fields definition.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/application_plans/{application_plan_id}/limits.xml": { + "get": { + "summary": "Limits List per Application Plan", + "operationId": "plan_limits", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 50.", + "schema": { + "type": "integer", + "format": "int32", + "default": 50 + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{id}/accept.xml": { + "put": { + "summary": "Application Accept", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/users/{id}/permissions.xml": { + "get": { + "summary": "User Permissions Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "User Permissions Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "allowed_service_ids", + "in": "query", + "description": "IDs of the services that need to be enabled, URL-encoded array. To disable all services, set the value to '[]'. To enable all services, add parameter 'allowed_service_ids[]' with no value to the 'curl' command (can't be done in ActiveDocs)", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + }, + { + "name": "allowed_sections", + "in": "query", + "description": "The list of sections in the admin portal that the user can access, URL-encoded array. Possible values: 'portal' (Developer Portal), 'finance' (Billing), 'settings', 'partners' (Accounts -- Applications), 'monitoring' (Analytics), 'plans' (Integration & Application Plans), 'policy_registry'. To disable all sections, set the value to '[]'.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/messages.xml": { + "post": { + "summary": "Account Message", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "body", + "in": "query", + "description": "Text to send", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "subject", + "in": "query", + "description": "Subject of the message", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/proxy/configs/{environment}/latest.json": { + "get": { + "summary": "Proxy Config Show Latest", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "environment", + "in": "path", + "description": "Gateway environment. Must be 'sandbox' or 'production'", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/users.xml": { + "get": { + "summary": "User List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "state", + "in": "query", + "description": "Filter users by State.", + "schema": { + "type": "string", + "enum": [ + "pending", + "suspended", + "active" + ] + } + }, + { + "name": "role", + "in": "query", + "description": "Filter users by Role.", + "schema": { + "type": "string", + "enum": [ + "member", + "admin" + ] + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "User Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "username", + "in": "query", + "description": "Username of the user.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "email", + "in": "query", + "description": "Email of the user.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "password", + "in": "query", + "description": "Password of the user.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/objects/status.json": { + "get": { + "summary": "Object deletion status for objects that are deleted asynchronously", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "object_type", + "in": "query", + "description": "Object type has to be service, account, proxy or backend_api.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "object_id", + "in": "query", + "description": "Object ID.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/service_contracts.xml": { + "get": { + "summary": "Service Subscription List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/users/{id}/member.xml": { + "put": { + "summary": "User Change Role to Member", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/backend_apis/{backend_api_id}/metrics/{metric_id}/methods/{id}.json": { + "get": { + "summary": "Backend Method Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the method.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Backend Method Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the method.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "friendly_name", + "in": "query", + "description": "Name of the method.", + "schema": { + "type": "string" + } + }, + { + "name": "unit", + "in": "query", + "description": "Measure unit of the method.", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the method.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Backend Method Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the method.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/proxy/oidc_configuration.xml": { + "get": { + "summary": "OIDC Configuration Show", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "patch": { + "summary": "OIDC Configuration Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "standard_flow_enabled", + "in": "query", + "description": "Enable Authorization Code Flow (Standard Flow)", + "schema": { + "type": "boolean" + } + }, + { + "name": "implicit_flow_enabled", + "in": "query", + "description": "Enable Implicit Flow", + "schema": { + "type": "boolean" + } + }, + { + "name": "service_accounts_enabled", + "in": "query", + "description": "Enable Service Account Flow (Standard Flow)", + "schema": { + "type": "boolean" + } + }, + { + "name": "direct_access_grants_enabled", + "in": "query", + "description": "Enable Direct Access Grant Flow", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/users/{id}/activate.xml": { + "put": { + "summary": "User Activate (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/users/{id}/admin.xml": { + "put": { + "summary": "User change Role to Admin", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/account_plans.xml": { + "get": { + "summary": "Account Plan List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Account Plan Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the account plan.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "approval_required", + "in": "query", + "description": "Set the 'Accounts require approval?' to 'true' or 'false'", + "schema": { + "type": "boolean" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "schema": { + "type": "string" + } + }, + { + "name": "state_event", + "in": "query", + "description": "State event of the account plan. It can be 'publish' or 'hide'", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/backend_apis/{backend_api_id}/metrics.json": { + "get": { + "summary": "Backend Metric List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 500.", + "schema": { + "type": "integer", + "format": "int32", + "default": 500 + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Backend Metric Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "friendly_name", + "in": "query", + "description": "Descriptive Name of the metric.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the metric. If blank a system_name will be generated for you from the friendly_name parameter", + "schema": { + "type": "string" + } + }, + { + "name": "unit", + "in": "query", + "description": "Measure unit of the metric.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the metric.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/service_plans/{id}/default.xml": { + "put": { + "summary": "Service Plan Set to Default", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the service plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{id}/customize_plan.xml": { + "put": { + "summary": "Application Create Plan Customization", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/metrics.xml": { + "get": { + "summary": "Service Metric List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Service Metric Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "friendly_name", + "in": "query", + "description": "Descriptive Name of the metric.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "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", + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "query", + "description": "DEPRECATED: Please use system_name parameter", + "schema": { + "type": "string" + } + }, + { + "name": "unit", + "in": "query", + "description": "Measure unit of the metric.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the metric.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/features/{id}.xml": { + "get": { + "summary": "Service Feature Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Service Feature Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the feature.", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the feature.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Service Feature Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/application_plans.xml": { + "get": { + "summary": "Application Plan List (all services)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/proxy.xml": { + "get": { + "summary": "Proxy Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "patch": { + "summary": "Proxy Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "endpoint", + "in": "query", + "description": "Public Base URL for production environment.", + "schema": { + "type": "string" + } + }, + { + "name": "api_backend", + "in": "query", + "description": "Private Base URL. Caution! Do not use it if the account has API as a Product enabled. It may cause API backend usages to be removed from the Product.", + "schema": { + "type": "string" + } + }, + { + "name": "credentials_location", + "in": "query", + "description": "Credentials Location. Either headers, query or authorization for the Basic Authorization.", + "schema": { + "type": "string" + } + }, + { + "name": "auth_app_key", + "in": "query", + "description": "Parameter/Header where App Key is expected.", + "schema": { + "type": "string" + } + }, + { + "name": "auth_app_id", + "in": "query", + "description": "Parameter/Header where App ID is expected.", + "schema": { + "type": "string" + } + }, + { + "name": "auth_user_key", + "in": "query", + "description": "Parameter/Header where User Key is expected.", + "schema": { + "type": "string" + } + }, + { + "name": "error_auth_failed", + "in": "query", + "description": "Error message on failed authentication.", + "schema": { + "type": "string" + } + }, + { + "name": "error_status_auth_failed", + "in": "query", + "description": "Status code on failed authentication.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "error_headers_auth_failed", + "in": "query", + "description": "Content-Type header on failed authentication.", + "schema": { + "type": "string" + } + }, + { + "name": "error_auth_missing", + "in": "query", + "description": "Error message on missing authentication.", + "schema": { + "type": "string" + } + }, + { + "name": "error_status_auth_missing", + "in": "query", + "description": "Status code on missing authentication.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "error_headers_auth_missing", + "in": "query", + "description": "Content-Type header on missing authentication.", + "schema": { + "type": "string" + } + }, + { + "name": "error_no_match", + "in": "query", + "description": "Error message when no mapping rule is matched.", + "schema": { + "type": "string" + } + }, + { + "name": "error_status_no_match", + "in": "query", + "description": "Status code when no mapping rule is matched.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "error_headers_no_match", + "in": "query", + "description": "Content-Type header when no mapping rule is matched.", + "schema": { + "type": "string" + } + }, + { + "name": "error_status_limits_exceeded", + "in": "query", + "description": "Status code when usage limit exceeded.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "error_headers_limits_exceeded", + "in": "query", + "description": "Content-Type header when usage limit exceeded.", + "schema": { + "type": "string" + } + }, + { + "name": "error_limits_exceeded", + "in": "query", + "description": "Error message on usage limit exceeded.", + "schema": { + "type": "string" + } + }, + { + "name": "oidc_issuer_endpoint", + "in": "query", + "description": "Location of your OpenID Provider.", + "schema": { + "type": "string" + } + }, + { + "name": "oidc_issuer_type", + "in": "query", + "description": "Type of your OpenID Provider.", + "schema": { + "type": "string" + } + }, + { + "name": "sandbox_endpoint", + "in": "query", + "description": "Sandbox endpoint.", + "schema": { + "type": "string" + } + }, + { + "name": "jwt_claim_with_client_id", + "in": "query", + "description": "JWT Claim With ClientId Location.", + "schema": { + "type": "string" + } + }, + { + "name": "jwt_claim_with_client_id_type", + "in": "query", + "description": "JWT Claim With ClientId Type. Either `plain` or `liquid`", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{application_id}/referrer_filters.xml": { + "get": { + "summary": "Application Referrer Filter List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "application_id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Application Referrer Filter Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "application_id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "referrer_filter", + "in": "query", + "description": "Referrer filter to be created.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/users.xml": { + "get": { + "summary": "User List (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "state", + "in": "query", + "description": "Filter users by State.", + "schema": { + "type": "string", + "enum": [ + "pending", + "suspended", + "active" + ] + } + }, + { + "name": "role", + "in": "query", + "description": "Filter users by Role.", + "schema": { + "type": "string", + "enum": [ + "member", + "admin" + ] + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "User Create (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "username", + "in": "query", + "description": "Username of the user.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "email", + "in": "query", + "description": "Email of the user.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "password", + "in": "query", + "description": "Password of the user.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). Additional fields are the custom fields declared for your tenant, you can find them in 'Settings >> Personal Details' for the account and in 'Settings >> Account >> Users >> Personal Details' for users. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/users/{id}/member.xml": { + "put": { + "summary": "User Change Role to Member (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/users/{id}/unsuspend.xml": { + "put": { + "summary": "User Unsuspend (provider account)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/provider.xml": { + "get": { + "summary": "Provider Account Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Provider Account Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "from_email", + "in": "query", + "description": "New outgoing email.", + "schema": { + "type": "string" + } + }, + { + "name": "support_email", + "in": "query", + "description": "New support email.", + "schema": { + "type": "string" + } + }, + { + "name": "finance_support_email", + "in": "query", + "description": "New finance support email.", + "schema": { + "type": "string" + } + }, + { + "name": "site_access_code", + "in": "query", + "description": "Developer Portal Access Code.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/find.xml": { + "get": { + "summary": "Account Find", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "username", + "in": "query", + "description": "Username of the account user.", + "schema": { + "type": "string" + } + }, + { + "name": "email", + "in": "query", + "description": "Email of the account user.", + "schema": { + "type": "string" + } + }, + { + "name": "user_id", + "in": "query", + "description": "ID of the account user.", + "schema": { + "type": "ref" + } + }, + { + "name": "buyer_provider_key", + "in": "query", + "description": "[Master API] Provider key of the account.", + "schema": { + "type": "string" + } + }, + { + "name": "buyer_service_token", + "in": "query", + "description": "[Master API] Service token of the account service.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/service_plans/{id}.xml": { + "get": { + "summary": "Service Plan Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the service plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Service Plan Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the service plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the service plan.", + "schema": { + "type": "string" + } + }, + { + "name": "approval_required", + "in": "query", + "description": "Set the 'Service subscriptions require approval?' to 'true' or 'false'", + "schema": { + "type": "boolean" + } + }, + { + "name": "state_event", + "in": "query", + "description": "State event of the service plan. It can be 'publish' or 'hide'", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Service Plan Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the service plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/account/proxy_configs/{environment}.json": { + "get": { + "summary": "Proxy Configs List (Provider)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "environment", + "in": "path", + "description": "Gateway environment. Must be 'sandbox' or 'production'", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "host", + "in": "query", + "description": "Filter by host", + "schema": { + "type": "string" + } + }, + { + "name": "version", + "in": "query", + "description": "Filter by version", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/service_plans/{service_plan_id}/features.xml": { + "get": { + "summary": "Service Plan Feature List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_plan_id", + "in": "path", + "description": "ID of the service plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Service Plan Feature Add", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_plan_id", + "in": "path", + "description": "ID of the service plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "feature_id", + "in": "query", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/policies.json": { + "get": { + "summary": "APIcast Policy Registry", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{application_id}/keys/{key}.xml": { + "delete": { + "summary": "Application Key Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "application_id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "key", + "in": "path", + "description": "app_key to be deleted.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/authentication_providers.xml": { + "get": { + "summary": "Authentication Providers Developer Portal List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Authentication Provider Developer Portal Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "kind", + "in": "query", + "description": "The kind of authentication provider which can be either 'github', 'auth0', 'keycloak' or a custom one. Use 'keycloak' for Red Hat Single Sign-On.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "client_id", + "in": "query", + "description": "Client ID of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "client_secret", + "in": "query", + "description": "Client Secret of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "site", + "in": "query", + "description": "Site o Realm of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "token_url", + "in": "query", + "description": "Token URL of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "user_info_url", + "in": "query", + "description": "User info URL of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "authorize_url", + "in": "query", + "description": "Authorize URL of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "identifier_key", + "in": "query", + "description": "Identifier key. 'id' by default.", + "schema": { + "type": "string" + } + }, + { + "name": "username_key", + "in": "query", + "description": "Username key. 'login' by default.", + "schema": { + "type": "string" + } + }, + { + "name": "trust_email", + "in": "query", + "description": "Trust emails automatically. False by default", + "schema": { + "type": "boolean" + } + }, + { + "name": "published", + "in": "query", + "description": "Published authentication provider. False by default", + "schema": { + "type": "boolean" + } + }, + { + "name": "branding_state_event", + "in": "query", + "description": "Branding state event of the authentication provider. Only available for Github. It can be either 'brand_as_threescale' (the default one) or 'custom_brand'", + "schema": { + "type": "string" + } + }, + { + "name": "skip_ssl_certificate_verification", + "in": "query", + "description": "Skip SSL certificate verification. False by default.", + "schema": { + "type": "boolean" + } + }, + { + "name": "automatically_approve_accounts", + "in": "query", + "description": "Automatically approve accounts. False by default.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/proxy/deploy.xml": { + "post": { + "summary": "Proxy Deploy", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/account/authentication_providers/{id}.xml": { + "get": { + "summary": "Authentication Provider Admin Portal Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the authentication provider.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Authentication Provider Admin Portal Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the authentication provider.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "client_id", + "in": "query", + "description": "Client ID of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "client_secret", + "in": "query", + "description": "Client Secret of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "site", + "in": "query", + "description": "Site o Realm of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "skip_ssl_certificate_verification", + "in": "query", + "description": "Skip SSL certificate verification. False by default.", + "schema": { + "type": "boolean" + } + }, + { + "name": "published", + "in": "query", + "description": "Published authentication provider. False by default", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{id}/resume.xml": { + "put": { + "summary": "Application Resume", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/proxy/policies.json": { + "get": { + "summary": "Proxy Policies Chain Show", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Proxy Policies Chain Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "policies_config", + "in": "query", + "description": "Proxy policies chain", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{id}/make_pending.xml": { + "put": { + "summary": "Account Reset to Pending", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/metrics/{metric_id}/methods.xml": { + "get": { + "summary": "Service Method List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Service Method Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "friendly_name", + "in": "query", + "description": "Name of the method.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "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", + "schema": { + "type": "string" + } + }, + { + "name": "unit", + "in": "query", + "description": "Measure unit of the method.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the method.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{id}/decustomize_plan.xml": { + "put": { + "summary": "Application Delete Plan Customization", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/users/{id}.xml": { + "get": { + "summary": "User Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "User Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "username", + "in": "query", + "description": "Username of the user.", + "schema": { + "type": "string" + } + }, + { + "name": "email", + "in": "query", + "description": "Email of the user.", + "schema": { + "type": "string" + } + }, + { + "name": "password", + "in": "query", + "description": "Password of the user.", + "schema": { + "type": "string" + } + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "User Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/users/{id}/activate.xml": { + "put": { + "summary": "User Activate", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/fields_definitions.json": { + "get": { + "summary": "Fields Definitions List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Fields Definition Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "target", + "in": "query", + "description": "Target entity of fields definition.", + "required": true, + "schema": { + "type": "string", + "default": "account", + "enum": [ + "Account", + "User", + "Cinstance" + ] + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the fields definition to be created.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "label", + "in": "query", + "description": "The field title your developers will see.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "required", + "in": "query", + "description": "If 'true' the field will be required for developers.", + "schema": { + "type": "boolean" + } + }, + { + "name": "hidden", + "in": "query", + "description": "If 'true' the developers won't be able to see this field.", + "schema": { + "type": "boolean" + } + }, + { + "name": "read_only", + "in": "query", + "description": "If 'true' the developers won't be able to change this field.", + "schema": { + "type": "boolean" + } + }, + { + "name": "choices", + "in": "query", + "description": "The list of predefined options for this field, URL-encoded array.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{id}/approve.xml": { + "put": { + "summary": "Account Approve", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/limits.xml": { + "get": { + "summary": "Limit List per Metric", + "operationId": "limits", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Limit Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "period", + "in": "query", + "description": "Period of the limit.", + "required": true, + "schema": { + "type": "string", + "default": "minute", + "enum": [ + "eternity", + "year", + "month", + "week", + "day", + "hour", + "minute" + ] + } + }, + { + "name": "value", + "in": "query", + "description": "Value of the limit.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/signup.xml": { + "post": { + "summary": "Signup Express (Account Create)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "org_name", + "in": "query", + "description": "Organization Name of the developer account.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "username", + "in": "query", + "description": "Username of the admin user (on the new developer account).", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "email", + "in": "query", + "description": "Email of the admin user.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "password", + "in": "query", + "description": "Password of the admin user.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_plan_id", + "in": "query", + "description": "ID of the account plan (if not assigned default will be used instead).", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "service_plan_id", + "in": "query", + "description": "ID of the service plan (if not assigned default will be used instead).", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "application_plan_id", + "in": "query", + "description": "ID of the application plan (if not assigned default will be used instead).", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/account_plans/{account_plan_id}/features.xml": { + "get": { + "summary": "Account Plan Features List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_plan_id", + "in": "path", + "description": "ID of the account plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/applications/find.xml": { + "get": { + "summary": "Application Find", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_id", + "in": "query", + "description": "ID of the application.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "user_key", + "in": "query", + "description": "user_key of the application (for user_key authentication mode).", + "schema": { + "type": "string" + } + }, + { + "name": "app_id", + "in": "query", + "description": "app_id of the application (for app_id/app_key and oauth authentication modes).", + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "query", + "description": "Filter by service", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/metrics/{id}.xml": { + "get": { + "summary": "Service Metric Read", + "operationId": "service_metric", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Service Metric Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "friendly_name", + "in": "query", + "description": "Name of the metric.", + "schema": { + "type": "string" + } + }, + { + "name": "unit", + "in": "query", + "description": "Measure unit of the metric.", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the metric.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Service Metric Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/application_plans/{id}/default.xml": { + "put": { + "summary": "Application Plan Set to Default", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/service_plans/{service_plan_id}/features/{id}.xml": { + "delete": { + "summary": "Service Plan Features Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_plan_id", + "in": "path", + "description": "ID of the service plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/application_plans/{id}.xml": { + "get": { + "summary": "Application Plan Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Application Plan Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the application plan.", + "schema": { + "type": "string" + } + }, + { + "name": "approval_required", + "in": "query", + "description": "Set the 'Applications require approval?' to 'true' or 'false'", + "schema": { + "type": "boolean" + } + }, + { + "name": "cost_per_month", + "in": "query", + "description": "Cost per month", + "schema": { + "type": "ref" + } + }, + { + "name": "setup_fee", + "in": "query", + "description": "Setup fee", + "schema": { + "type": "ref" + } + }, + { + "name": "trial_period_days", + "in": "query", + "description": "Trial period days", + "schema": { + "type": "ref" + } + }, + { + "name": "state_event", + "in": "query", + "description": "State event of the application plan. It can be 'publish' or 'hide'", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Application Plan Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/features/{id}.xml": { + "get": { + "summary": "Account Feature Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Account Feature Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the feature.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Account Feature Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/service_contracts/{id}.xml": { + "delete": { + "summary": "Service Subscription Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the service contract.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/account_plans/{id}.xml": { + "get": { + "summary": "Account Plan Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Account Plan Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the account plan.", + "schema": { + "type": "string" + } + }, + { + "name": "approval_required", + "in": "query", + "description": "Set the 'Accounts require approval?' to 'true' or 'false'", + "schema": { + "type": "boolean" + } + }, + { + "name": "state_event", + "in": "query", + "description": "State event of the account plan. It can be 'publish' or 'hide'", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Account Plan Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/application_plans.xml": { + "get": { + "summary": "Application Plan List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Application Plan Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the application plan.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "approval_required", + "in": "query", + "description": "Set the 'Applications require approval?' to 'true' or 'false'", + "schema": { + "type": "boolean" + } + }, + { + "name": "cost_per_month", + "in": "query", + "description": "Cost per month", + "schema": { + "type": "ref" + } + }, + { + "name": "setup_fee", + "in": "query", + "description": "Setup fee", + "schema": { + "type": "ref" + } + }, + { + "name": "trial_period_days", + "in": "query", + "description": "Trial period days", + "schema": { + "type": "ref" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "schema": { + "type": "string" + } + }, + { + "name": "state_event", + "in": "query", + "description": "State event of the application plan. It can be 'publish' or 'hide'", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/personal/access_tokens.json": { + "get": { + "summary": "Personal Access Token List", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "Part of the name of the access token.", + "schema": { + "type": "string" + } + }, + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Personal Access Token Create", + "parameters": [ + { + "name": "name", + "in": "query", + "description": "Name of the access token.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "permission", + "in": "query", + "description": "Permission of the access token. It must be either 'ro' (read only) or 'rw' (read and write).", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "scopes", + "in": "query", + "description": "Scope of the access token. URL-encoded array containing one or more of the possible values. The possible values are, for a master user [\"account_management\", \"stats\", \"policy_registry\"], and for a tenant user [\"finance\", \"account_management\", \"stats\", \"policy_registry\"]", + "required": true, + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + }, + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/application_plans/{application_plan_id}/features.xml": { + "get": { + "summary": "Application Plan Feature List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Application Plan Feature Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "feature_id", + "in": "query", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/authentication_providers/{id}.xml": { + "get": { + "summary": "Authentication Provider Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the authentication provider.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Authentication Provider Developer Portal Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the authentication provider.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "client_id", + "in": "query", + "description": "Client ID of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "client_secret", + "in": "query", + "description": "Client Secret of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "site", + "in": "query", + "description": "Site o Realm of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "published", + "in": "query", + "description": "Published authentication provider. False by default", + "schema": { + "type": "boolean" + } + }, + { + "name": "skip_ssl_certificate_verification", + "in": "query", + "description": "Skip SSL certificate verification. False by default.", + "schema": { + "type": "boolean" + } + }, + { + "name": "automatically_approve_accounts", + "in": "query", + "description": "Automatically approve accounts. False by default.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/backend_apis/{backend_api_id}/metrics/{metric_id}/methods.json": { + "get": { + "summary": "Backend Method List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 500.", + "schema": { + "type": "integer", + "format": "int32", + "default": 500 + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Backend Method Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "friendly_name", + "in": "query", + "description": "Descriptive Name of the metric.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the metric. If blank a system_name will be generated for you from the friendly_name parameter", + "schema": { + "type": "string" + } + }, + { + "name": "unit", + "in": "query", + "description": "Measure unit of the metric.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the metric.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{id}/change_plan.xml": { + "put": { + "summary": "Account Change Plan", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "plan_id", + "in": "query", + "description": "ID of the target account plan", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{id}/change_plan.xml": { + "put": { + "summary": "Application Change Plan", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "plan_id", + "in": "query", + "description": "ID of the new application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/backend_usages.json": { + "get": { + "summary": "Backend Usage List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Backend Usage Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "backend_api_id", + "in": "query", + "description": "Backend to be added to the Service (Product).", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "path", + "in": "query", + "description": "Path of the Backend for this product.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/backend_apis/{backend_api_id}/mapping_rules.json": { + "get": { + "summary": "Backend Mapping Rules List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 500.", + "schema": { + "type": "integer", + "format": "int32", + "default": 500 + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Backend Mapping Rule Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "http_method", + "in": "query", + "description": "HTTP method.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "pattern", + "in": "query", + "description": "Mapping Rule pattern.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "delta", + "in": "query", + "description": "Increase the metric by this delta.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "query", + "description": "Metric ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "position", + "in": "query", + "description": "Mapping Rule position", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "last", + "in": "query", + "description": "Last matched Mapping Rule to process", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/users/{id}/suspend.xml": { + "put": { + "summary": "User Suspend", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{id}/suspend.xml": { + "put": { + "summary": "Application Suspend", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{application_id}/keys.xml": { + "get": { + "summary": "Application Key List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "application_id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Application Key Create", + "operationId": "key_create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "application_id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "key", + "in": "query", + "description": "app_key to be added", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/active_docs/{id}.json": { + "get": { + "summary": "ActiveDocs Spec Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the ActiveDocs spec", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "ActiveDocs Spec Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the ActiveDocs spec", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the ActiveDocs spec", + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "query", + "description": "Service ID of the ActiveDocs spec", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "body", + "in": "query", + "description": "ActiveDocs specification in JSON format (based on Swagger)", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the ActiveDocs spec", + "schema": { + "type": "string" + } + }, + { + "name": "published", + "in": "query", + "description": "Set to 'true' to publish the spec on the developer portal, or 'false' to hide it", + "schema": { + "type": "boolean" + } + }, + { + "name": "skip_swagger_validations", + "in": "query", + "description": "Set to 'true' to skip validation of the Swagger specification, or 'false' to validate the spec", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "ActiveDocs Spec Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the ActiveDocs spec", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/plan.xml": { + "get": { + "summary": "Account Fetch Account Plan", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications.xml": { + "get": { + "summary": "Application List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Application Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "plan_id", + "in": "query", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the application to be created.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the application to be created.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "user_key", + "in": "query", + "description": "User Key (API Key) of the application to be created.", + "schema": { + "type": "string" + } + }, + { + "name": "application_id", + "in": "query", + "description": "App ID or Client ID (for OAuth and OpenID Connect authentication modes) of the application to be created.", + "schema": { + "type": "string" + } + }, + { + "name": "application_key", + "in": "query", + "description": "App Key(s) or Client Secret (for OAuth and OpenID Connect authentication modes) of the application to be created.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "redirect_url", + "in": "query", + "description": "Redirect URL for the OAuth request.", + "schema": { + "type": "string" + } + }, + { + "name": "first_traffic_at", + "in": "query", + "description": "Timestamp of the first call made by the application.", + "schema": { + "type": "string" + } + }, + { + "name": "first_daily_traffic_at", + "in": "query", + "description": "Timestamp of the first call on the last day when traffic was registered for the application ('Traffic On').", + "schema": { + "type": "string" + } + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/applications.xml": { + "get": { + "summary": "Application List (all services)", + "operationId": "applications", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 500.", + "schema": { + "type": "integer", + "format": "int32", + "default": 500 + } + }, + { + "name": "active_since", + "in": "query", + "description": "Filter date", + "schema": { + "type": "string" + } + }, + { + "name": "inactive_since", + "in": "query", + "description": "Filter date", + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "query", + "description": "Filter by service", + "schema": { + "type": "string" + } + }, + { + "name": "plan_id", + "in": "query", + "description": "Filter by plan", + "schema": { + "type": "string" + } + }, + { + "name": "plan_type", + "in": "query", + "description": "Filter by plan type", + "schema": { + "type": "string", + "enum": [ + "free", + "paid" + ] + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{id}.xml": { + "get": { + "summary": "Application Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Application Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the application.", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the application.", + "schema": { + "type": "string" + } + }, + { + "name": "redirect_url", + "in": "query", + "description": "Redirect URL for the OAuth request.", + "schema": { + "type": "string" + } + }, + { + "name": "first_traffic_at", + "in": "query", + "description": "Timestamp of the first call made by the application.", + "schema": { + "type": "string" + } + }, + { + "name": "first_daily_traffic_at", + "in": "query", + "description": "Timestamp of the first call on the last day when traffic was registered for the application ('Traffic On').", + "schema": { + "type": "string" + } + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Application Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/pricing_rules.xml": { + "get": { + "summary": "Pricing Rules List per Metric", + "operationId": "metric_pricing_rules", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Pricing Rule Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "min", + "in": "query", + "description": "From (min) hit", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "max", + "in": "query", + "description": "To (max) hit", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cost_per_unit", + "in": "query", + "description": "Cost per unit", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services.xml": { + "get": { + "summary": "Service List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 500.", + "schema": { + "type": "integer", + "format": "int32", + "default": 500 + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Service Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the service to be created.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the service to be created.", + "schema": { + "type": "string" + } + }, + { + "name": "deployment_option", + "in": "query", + "description": "Deployment option for the gateway: 'hosted' for APIcast hosted, 'self_managed' for APIcast Self-managed, 'service_mesh_istio' for Istio service mesh option", + "schema": { + "type": "string" + } + }, + { + "name": "backend_version", + "in": "query", + "description": "Authentication mode: '1' for API key, '2' for App Id / App Key, 'oidc' for OpenID Connect", + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "schema": { + "type": "string" + } + }, + { + "name": " ", + "in": "query", + "description": "Extra parameters", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/proxy/mapping_rules.xml": { + "get": { + "summary": "Proxy Mapping Rules List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Proxy Mapping Rule Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "http_method", + "in": "query", + "description": "HTTP method.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "pattern", + "in": "query", + "description": "Mapping Rule pattern.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "delta", + "in": "query", + "description": "Increase the metric by this delta.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "query", + "description": "Metric ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "position", + "in": "query", + "description": "Mapping Rule position", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "last", + "in": "query", + "description": "Last matched Mapping Rule to process", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/active_docs.json": { + "get": { + "summary": "ActiveDocs Spec List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "ActiveDocs Spec Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the ActiveDocs spec", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the ActiveDocs spec. Only ASCII letters, numbers, dashes and underscores are allowed. If blank, 'system_name' will be generated from the 'name' parameter", + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "query", + "description": "Service ID of the ActiveDocs spec", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "body", + "in": "query", + "description": "ActiveDocs specification in JSON format (based on Swagger)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the ActiveDocs spec", + "schema": { + "type": "string" + } + }, + { + "name": "published", + "in": "query", + "description": "Set to 'true' to publish the spec on the developer portal, or 'false' to hide it. The default value is 'false'", + "schema": { + "type": "boolean" + } + }, + { + "name": "skip_swagger_validations", + "in": "query", + "description": "Set to 'true' to skip validation of the Swagger specification, or 'false' to validate the spec. The default value is 'false'", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/backend_apis.json": { + "get": { + "summary": "Backend List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 500.", + "schema": { + "type": "integer", + "format": "int32", + "default": 500 + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Backend Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the Backend", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the Backend", + "schema": { + "type": "string" + } + }, + { + "name": "private_endpoint", + "in": "query", + "description": "Private Base URL (your API)", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/features.xml": { + "get": { + "summary": "Account Features List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Account Feature Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the feature.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{id}.xml": { + "get": { + "summary": "Account Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Account Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "org_name", + "in": "query", + "description": "Organization name of the account.", + "schema": { + "type": "string" + } + }, + { + "name": "monthly_billing_enabled", + "in": "query", + "description": "Updates monthly billing status.", + "schema": { + "type": "boolean" + } + }, + { + "name": "monthly_charging_enabled", + "in": "query", + "description": "Updates monthly charging status.", + "schema": { + "type": "boolean" + } + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Account Delete ", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/pricing_rules/{id}.json": { + "delete": { + "summary": "Pricing Rule Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the pricing rule.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/application_plans/{application_plan_id}/pricing_rules.xml": { + "get": { + "summary": "Pricing Rules List per Application Plan", + "operationId": "pricing_rules", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/proxy/mapping_rules/{id}.xml": { + "get": { + "summary": "Proxy Mapping Rules Show", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "Mapping Rule ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Proxy Mapping Rule Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "Mapping Rule ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "patch": { + "summary": "Proxy Mapping Rule Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "Mapping Rule ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "http_method", + "in": "query", + "description": "HTTP method.", + "schema": { + "type": "string" + } + }, + { + "name": "pattern", + "in": "query", + "description": "Mapping Rule pattern.", + "schema": { + "type": "string" + } + }, + { + "name": "delta", + "in": "query", + "description": "Increase the metric by this delta.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "query", + "description": "Metric ID.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "position", + "in": "query", + "description": "Mapping Rule position", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "last", + "in": "query", + "description": "Last matched Mapping Rule to process", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/service_plans.xml": { + "get": { + "summary": "Service Plan List (all services)", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/proxy/configs/{environment}/{version}/promote.json": { + "post": { + "summary": "Proxy Config Promote", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "environment", + "in": "path", + "description": "Gateway environment. Must be 'sandbox' or 'production'", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "version", + "in": "path", + "description": "Version of the Proxy config.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "to", + "in": "query", + "description": "the name of the destination environment", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{id}/service_plans.xml": { + "get": { + "summary": "Service Plan List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Service Plan Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the service plan.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "approval_required", + "in": "query", + "description": "Set the 'Service subscriptions require approval?' to 'true' or 'false'", + "schema": { + "type": "boolean" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "schema": { + "type": "string" + } + }, + { + "name": "state_event", + "in": "query", + "description": "State event of the service plan. It can be 'publish' or 'hide'", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/account/authentication_providers.xml": { + "get": { + "summary": "Authentication Providers Admin Portal List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Authentication Provider Admin Portal Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "kind", + "in": "query", + "description": "The kind of authentication provider which can be either 'auth0' or 'keycloak'. Use 'keycloak' for Red Hat Single Sign-On.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "client_id", + "in": "query", + "description": "Client ID of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "client_secret", + "in": "query", + "description": "Client Secret of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "site", + "in": "query", + "description": "Site o Realm of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "skip_ssl_certificate_verification", + "in": "query", + "description": "Skip SSL certificate verification. False by default.", + "schema": { + "type": "boolean" + } + }, + { + "name": "published", + "in": "query", + "description": "Published authentication provider. False by default", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + } + }, + "components": {} +} \ No newline at end of file diff --git a/doc/active_docs/analytics-s20.json b/doc/active_docs/analytics-s20.json new file mode 100644 index 0000000000..2f1a07ea81 --- /dev/null +++ b/doc/active_docs/analytics-s20.json @@ -0,0 +1,294 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "Analytics API", + "version": "1.0" + }, + "servers": [ + { + "url": "http://localhost:3000" + } + ], + "paths": { + "/stats/applications/{application_id}/usage": { + "get": { + "tags": [ + "Application Stats" + ], + "summary": "Application Usage by Metric", + "description": "Returns the usage data for a given metric (or method) of an application.", + "operationId": "application_usage_by_metric", + "parameters": [ + { + "name": "provider_key", + "in": "query", + "description": "Your api key with 3scale", + "required": true, + "schema": { + "type": "string", + "x-data-threescale-name": "api_keys" + }, + "x-data-threescale-name": "api_keys" + }, + { + "name": "application_id", + "in": "path", + "description": "id of the application.", + "required": true, + "schema": { + "type": "integer", + "x-data-threescale-name": "application_ids" + }, + "x-data-threescale-name": "application_ids" + }, + { + "name": "metric_name", + "in": "query", + "description": "System name of metric for which to get data.", + "required": true, + "schema": { + "type": "string", + "default": "hits", + "x-data-threescale-name": "metric_names" + }, + "x-data-threescale-name": "metric_names" + }, + { + "name": "since", + "in": "query", + "description": "Time range start. Format YYYY-MM-DD HH:MM:SS, examples: '2012-02-22', '2012-02-22 23:49:00'", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "period", + "in": "query", + "description": "Period, combined with since give the stats for the time range [since .. since + period]. It is required if until is not passed.", + "schema": { + "type": "string" + } + }, + { + "name": "until", + "in": "query", + "description": "Time range end. Format YYYY-MM-DD HH:MM:SS", + "schema": { + "type": "string" + } + }, + { + "name": "granularity", + "in": "query", + "description": "Granularity of the results. Each period has an associated granularity.", + "required": true, + "schema": { + "type": "string", + "default": "month" + } + }, + { + "name": "timezone", + "in": "query", + "description": "Timezone to do the calculations in.", + "schema": { + "type": "string", + "default": "UTC" + } + }, + { + "name": "skip_change", + "in": "query", + "description": "Skip period over period calculations (defaults to true).", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "No response was specified", + "content": {} + } + } + } + }, + "/stats/services/{service_id}/usage": { + "get": { + "tags": [ + "Service Stats" + ], + "summary": "Service Usage by Metric", + "description": "Returns the usage data of a given metric (or method) of a service.", + "operationId": "application_usage_by_metric", + "parameters": [ + { + "name": "provider_key", + "in": "query", + "description": "Your api key with 3scale", + "required": true, + "schema": { + "type": "string", + "x-data-threescale-name": "api_keys" + }, + "x-data-threescale-name": "api_keys" + }, + { + "name": "service_id", + "in": "path", + "description": "id of the service.", + "required": true, + "schema": { + "type": "integer", + "x-data-threescale-name": "service_ids" + }, + "x-data-threescale-name": "service_ids" + }, + { + "name": "metric_name", + "in": "query", + "description": "System name of metric for which to get data.", + "required": true, + "schema": { + "type": "string", + "default": "hits", + "x-data-threescale-name": "metric_names" + }, + "x-data-threescale-name": "metric_names" + }, + { + "name": "since", + "in": "query", + "description": "Time range start. Format YYYY-MM-DD HH:MM:SS, examples: '2012-02-22', '2012-02-22 23:49:00'", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "period", + "in": "query", + "description": "Period, combined with since give the stats for the time range [since .. since + period]. It is required if until is not passed.", + "schema": { + "type": "string" + } + }, + { + "name": "until", + "in": "query", + "description": "Time range end. Format YYYY-MM-DD HH:MM:SS", + "schema": { + "type": "string" + } + }, + { + "name": "granularity", + "in": "query", + "description": "Granularity of the results. Each period has an associated granularity.", + "required": true, + "schema": { + "type": "string", + "default": "month" + } + }, + { + "name": "timezone", + "in": "query", + "description": "Timezone to do the calculations in.", + "schema": { + "type": "string", + "default": "UTC" + } + }, + { + "name": "skip_change", + "in": "query", + "description": "Skip period over period calculations (defaults to true).", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "No response was specified", + "content": {} + } + } + } + }, + "/stats/services/{service_id}/top_applications": { + "get": { + "tags": [ + "Service Stats" + ], + "summary": "Service Top Applications", + "description": "Returns usage and application data for the top 10 most active applications of a service.", + "operationId": "service_top_applications", + "parameters": [ + { + "name": "provider_key", + "in": "query", + "description": "Your api key with 3scale", + "required": true, + "schema": { + "type": "string", + "x-data-threescale-name": "api_keys" + }, + "x-data-threescale-name": "api_keys" + }, + { + "name": "service_id", + "in": "path", + "description": "id of the service.", + "required": true, + "schema": { + "type": "integer", + "x-data-threescale-name": "service_ids" + }, + "x-data-threescale-name": "service_ids" + }, + { + "name": "since", + "in": "query", + "description": "Time range start. Format YYYY-MM-DD HH:MM:SS, examples: '2012-02-22', '2012-02-22 23:49:00'", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "period", + "in": "query", + "description": "Period, combined with since give the stats for the time range [since .. since + period]. It is required if until is not passed.", + "schema": { + "type": "string" + } + }, + { + "name": "metric_name", + "in": "query", + "description": "System name of metric for which to get data.", + "required": true, + "schema": { + "type": "string", + "default": "hits", + "x-data-threescale-name": "metric_names" + }, + "x-data-threescale-name": "metric_names" + } + ], + "responses": { + "200": { + "description": "No response was specified", + "content": {} + } + } + } + } + }, + "components": {} +} \ No newline at end of file diff --git a/doc/active_docs/finance-s20.json b/doc/active_docs/finance-s20.json new file mode 100644 index 0000000000..f2eb8bc528 --- /dev/null +++ b/doc/active_docs/finance-s20.json @@ -0,0 +1,373 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "Billing API", + "version": "1.0" + }, + "servers": [ + { + "url": "https://example.com/" + } + ], + "paths": { + "/api/accounts/{account_id}/invoices.xml": { + "get": { + "tags": [ + "Finances" + ], + "summary": "Invoice List by Account", + "description": "Returns the list of all invoices by account. Note that results can be paginated. You can apply filters by month and by state of the invoices.", + "operationId": "invoice_list_by_account", + "parameters": [ + { + "name": "provider_key", + "in": "query", + "description": "Your api key with 3scale", + "required": true, + "schema": { + "type": "string", + "x-data-threescale-name": "api_keys" + }, + "x-data-threescale-name": "api_keys" + }, + { + "name": "account_id", + "in": "path", + "description": "id of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32", + "x-data-threescale-name": "account_ids" + }, + "x-data-threescale-name": "account_ids" + }, + { + "name": "state", + "in": "query", + "description": "Filter the invoice by state. 'open': line items can be added (only via web interface). 'pending': the invoice has been issued, no items can be added, the PDF has been generated and the invoice is waiting to be charged for. 'paid': sucessfully paid. 'unpaid': charging failed at least once. 'cancelled': the invoice was explicitely cancelled and is out of normal life-cycle.", + "schema": { + "type": "string" + } + }, + { + "name": "month", + "in": "query", + "description": "Filter the invoice by month. Format YYYY-MM, e.g. '2012-03' for march 2012", + "schema": { + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 20.", + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + } + } + ], + "responses": { + "200": { + "description": "No response was specified", + "content": {} + } + } + } + }, + "/api/accounts/{account_id}/invoices/{id}.xml": { + "get": { + "tags": [ + "Finances" + ], + "summary": "Invoice by Account", + "description": "Returns an invoice by id.", + "operationId": "invoice_by_account", + "parameters": [ + { + "name": "provider_key", + "in": "query", + "description": "Your api key with 3scale", + "required": true, + "schema": { + "type": "string", + "x-data-threescale-name": "api_keys" + }, + "x-data-threescale-name": "api_keys" + }, + { + "name": "account_id", + "in": "path", + "description": "id of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32", + "x-data-threescale-name": "account_ids" + }, + "x-data-threescale-name": "account_ids" + }, + { + "name": "id", + "in": "path", + "description": "id of the invoice.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "No response was specified", + "content": {} + } + } + } + }, + "/api/invoices.xml": { + "get": { + "tags": [ + "Finances" + ], + "summary": "Invoice List", + "description": "Returns the list of all invoices. Note that results can be paginated. You can apply filters by month and by state of the invoices.", + "operationId": "invoice_list", + "parameters": [ + { + "name": "provider_key", + "in": "query", + "description": "Your api key with 3scale", + "required": true, + "schema": { + "type": "string", + "x-data-threescale-name": "api_keys" + }, + "x-data-threescale-name": "api_keys" + }, + { + "name": "state", + "in": "query", + "description": "Filter the invoice by state. 'open': line items can be added (only via web interface). 'pending': the invoice has been issued, no items can be added, the PDF has been generated and the invoice is waiting to be charged for. 'paid': sucessfully paid. 'unpaid': charging failed at least once. 'cancelled': the invoice was explicitely cancelled and is out of normal life-cycle.", + "schema": { + "type": "string" + } + }, + { + "name": "month", + "in": "query", + "description": "Filter the invoice by month. Format YYYY-MM, e.g. '2012-03' for march 2012", + "schema": { + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 20.", + "schema": { + "type": "integer", + "format": "int32", + "default": 20 + } + } + ], + "responses": { + "200": { + "description": "No response was specified", + "content": {} + } + } + } + }, + "/api/invoices/{id}.xml": { + "get": { + "tags": [ + "Finances" + ], + "summary": "Invoice", + "description": "Returns an invoice by id.", + "operationId": "invoice_show", + "parameters": [ + { + "name": "provider_key", + "in": "query", + "description": "Your api key with 3scale", + "required": true, + "schema": { + "type": "string", + "x-data-threescale-name": "api_keys" + }, + "x-data-threescale-name": "api_keys" + }, + { + "name": "id", + "in": "path", + "description": "id of the invoice.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "No response was specified", + "content": {} + } + } + } + }, + "/api/invoices/{id}/state.xml": { + "put": { + "tags": [ + "Finances" + ], + "summary": "Invoice", + "description": "Modifies the state of the invoice.", + "operationId": "invoice_state", + "parameters": [ + { + "name": "provider_key", + "in": "query", + "description": "Your api key with 3scale", + "required": true, + "schema": { + "type": "string", + "x-data-threescale-name": "api_keys" + }, + "x-data-threescale-name": "api_keys" + }, + { + "name": "id", + "in": "path", + "description": "id of the invoice.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "state", + "in": "query", + "description": "State of the invoice to set. Only 'cancel' value is allowed", + "required": true, + "schema": { + "type": "string", + "x-data-threescale-name": "state" + }, + "x-data-threescale-name": "state" + } + ], + "responses": { + "200": { + "description": "No response was specified", + "content": {} + } + } + } + }, + "/api/invoices/{invoice_id}/line_items.xml": { + "get": { + "tags": [ + "Finances" + ], + "summary": "Invoice Line Items List", + "description": "Returns the list of all line items of an invoice.", + "operationId": "invoice_line_items_list", + "parameters": [ + { + "name": "provider_key", + "in": "query", + "description": "Your api key with 3scale", + "required": true, + "schema": { + "type": "string", + "x-data-threescale-name": "api_keys" + }, + "x-data-threescale-name": "api_keys" + }, + { + "name": "invoice_id", + "in": "path", + "description": "id of the invoice.", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "No response was specified", + "content": {} + } + } + } + }, + "/api/invoices/{invoice_id}/payment_transactions.xml": { + "get": { + "tags": [ + "Finances" + ], + "summary": "Invoice Payment Transactions List", + "description": "Returns the list of all payment transactions of an invoice.", + "operationId": "invoice_payment_transactions_list", + "parameters": [ + { + "name": "provider_key", + "in": "query", + "description": "Your api key with 3scale", + "required": true, + "schema": { + "type": "string", + "x-data-threescale-name": "api_keys" + }, + "x-data-threescale-name": "api_keys" + }, + { + "name": "invoice_id", + "in": "path", + "description": "id of the invoice.", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "No response was specified", + "content": {} + } + } + } + } + }, + "components": {} +} \ No newline at end of file From f25a892dd58675c0d310bd7d729b3a95a8a6b44f Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Mon, 23 Jan 2023 16:08:23 +0530 Subject: [PATCH 14/85] THREESCALE-3927 Fixed failed integration test --- test/integration/api_docs/services_controller_test.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/test/integration/api_docs/services_controller_test.rb b/test/integration/api_docs/services_controller_test.rb index be20099bc5..a61373ad93 100644 --- a/test/integration/api_docs/services_controller_test.rb +++ b/test/integration/api_docs/services_controller_test.rb @@ -62,7 +62,7 @@ def test_index_and_show assert_response :success assert show_result.has_key?('basePath') - assert show_result.has_key?('apis') + assert show_result.has_key?('paths') end end @@ -88,7 +88,7 @@ def test_show_service_management # ignore stats endpoint name.to_s.match(name_or_path_regex) && name.to_s !~ /stats/ } - assert_equal actual_backed_api_routes.length, JSON.parse(response.body)['apis'].each_with_object(Set.new, &select_endpoints).length + assert_equal actual_backed_api_routes.length, JSON.parse(response.body)['paths'].select{ |url| url.exclude?('stats') && url.include?('backend_')}.length end end @@ -105,11 +105,11 @@ def test_show_onprem_account_management_api select_endpoint = Proc.new { |api| api['path'] == '/admin/api/account_plans/{id}.xml' } ThreeScale.config.stubs(onpremises: false) get '/api_docs/services/account_management_api.json' - assert_not_empty JSON.parse(response.body)['apis'].select(&select_endpoint) + assert_not_empty JSON.parse(response.body)['paths'].keys ThreeScale.config.stubs(onpremises: true) get '/api_docs/services/account_management_api.json' - assert_empty JSON.parse(response.body)['apis'].select(&select_endpoint) + assert_empty JSON.parse(response.body)['paths'].select{ |url| url.exclude?('admin')} end def test_index_and_show @@ -135,7 +135,7 @@ def test_index_and_show assert_response :success assert show_result.has_key?('basePath') - assert show_result.has_key?('apis') + assert show_result.has_key?('paths') end end end From cf335637b209c6b479c594c54bbe45b83d1da860 Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Mon, 23 Jan 2023 19:05:58 +0530 Subject: [PATCH 15/85] THREESCALE-3927 Fixed failed tests --- test/integration/api_docs/services_controller_test.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/integration/api_docs/services_controller_test.rb b/test/integration/api_docs/services_controller_test.rb index a61373ad93..72b2138912 100644 --- a/test/integration/api_docs/services_controller_test.rb +++ b/test/integration/api_docs/services_controller_test.rb @@ -61,7 +61,6 @@ def test_index_and_show show_result = JSON.parse(response.body) assert_response :success - assert show_result.has_key?('basePath') assert show_result.has_key?('paths') end end @@ -134,7 +133,6 @@ def test_index_and_show show_result = JSON.parse(response.body) assert_response :success - assert show_result.has_key?('basePath') assert show_result.has_key?('paths') end end From fd5658eb59bd28b1fe33257082cfcd737b74dda4 Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Fri, 27 Jan 2023 14:47:49 +0100 Subject: [PATCH 16/85] Restore the original content of the Swagger 2.0 API specs --- doc/active_docs/accounts-s20.json | 10943 ++++++++------------------- doc/active_docs/analytics-s20.json | 247 +- doc/active_docs/finance-s20.json | 277 +- 3 files changed, 3234 insertions(+), 8233 deletions(-) diff --git a/doc/active_docs/accounts-s20.json b/doc/active_docs/accounts-s20.json index fb8d86ec15..06604602dc 100644 --- a/doc/active_docs/accounts-s20.json +++ b/doc/active_docs/accounts-s20.json @@ -1,9742 +1,4841 @@ + { - "openapi": "3.0.1", + "host": "example.com", + "basePath": "/", + "schemes": [ + "https" + ], + "swagger": "2.0", "info": { + "title": "Account Management API", "version": "1.0" }, - "servers": [ - { - "url": "/" - } - ], "paths": { - "/admin/api/services/{service_id}/features.xml": { + "/admin/api/features.xml": { "get": { - "summary": "Service Feature List", + "operationId": "account_feature_list", + "summary": "Account Feature List", + "description": "Returns the list of the features available to accounts. Account features are globally scoped.", + "tags": [ + "Account Features" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "api_keys", + "type": "string" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } }, "post": { - "summary": "Service Feature Create", + "operationId": "account_feature_create", + "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.", + "tags": [ + "Account Features" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "name", "in": "query", "description": "Name of the feature.", + "name": "name", "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the feature.", - "schema": { - "type": "ref" - } + "type": "string" }, { - "name": "scope", "in": "query", - "description": "Type of plan that the feature will be available for.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "enum": [ - "ApplicationPlan", - "ServicePlan" - ] - } + "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.", + "name": "system_name", + "type": "string" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/backend_apis/{backend_api_id}/mapping_rules/{id}.json": { + "/admin/api/features/{id}.xml": { "get": { - "summary": "Backend Mapping Rules Read", + "operationId": "account_feature_read", + "summary": "Account Feature Read", + "description": "Returns an account feature.", + "tags": [ + "Account Features" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "backend_api_id", "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { + "description": "id of the feature.", "name": "id", - "in": "path", - "description": "Mapping Rule ID.", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } }, "put": { - "summary": "Backend Mapping Rule Update", + "operationId": "account_feature_update", + "summary": "Account Feature Update", + "description": "Updates an account feature.", + "tags": [ + "Account Features" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "backend_api_id", "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { + "description": "id of the feature.", "name": "id", - "in": "path", - "description": "Mapping Rule ID.", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "http_method", - "in": "query", - "description": "HTTP method.", - "schema": { - "type": "string" - } + "type": "integer" }, { - "name": "pattern", "in": "query", - "description": "Mapping Rule pattern.", - "schema": { - "type": "string" - } - }, + "description": "Name of the feature.", + "name": "name", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "No response was specified" + } + } + }, + "delete": { + "operationId": "account_feature_delete", + "summary": "Account Feature Delete", + "description": "Deletes an account feature.", + "tags": [ + "Account Features" + ], + "parameters": [ { - "name": "delta", "in": "query", - "description": "Increase the metric by this delta.", - "schema": { - "type": "integer", - "format": "int32" - } + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", + "required": true, + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "metric_id", - "in": "query", - "description": "Metric ID.", - "schema": { - "type": "integer", - "format": "int32" - } - }, + "in": "path", + "description": "id of the feature.", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "No response was specified" + } + } + } + }, + "/admin/api/account_plans/{account_plan_id}/features.xml": { + "get": { + "operationId": "account_plan_feature_list", + "summary": "Account Plan Feature List", + "description": "Returns the list of the features associated to an account plan.", + "tags": [ + "Account Plan Features" + ], + "parameters": [ { - "name": "position", "in": "query", - "description": "Mapping Rule position", - "schema": { - "type": "integer", - "format": "int32" - } + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", + "required": true, + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "last", - "in": "query", - "description": "Last matched Mapping Rule to process", - "schema": { - "type": "ref" - } + "in": "path", + "description": "id of the account plan.", + "name": "account_plan_id", + "required": true, + "x-data-threescale-name": "account_plan_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } - }, - "delete": { - "summary": "Backend Mapping Rule Delete", + } + }, + "/admin/api/account_plans/{account_plan_id}/features/{id}.xml": { + "post": { + "operationId": "account_plan_feature_create", + "summary": "Account Plan Features Create", + "description": "Associate an account feature to an account plan.", + "tags": [ + "Account Plan Features" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "backend_api_id", "in": "path", - "description": "ID of the Backend.", + "description": "id of the account plan.", + "name": "account_plan_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_plan_ids", + "type": "integer" }, { - "name": "id", "in": "path", - "description": "Mapping Rule ID.", + "description": "id of the feature.", + "name": "id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } - } - }, - "/admin/api/application_plans/{application_plan_id}/features/{id}.xml": { + }, "delete": { - "summary": "Application Plan Feature Delete", + "operationId": "account_plan_feature_delete", + "summary": "Account Plan Features Delete", + "description": "Deletes the association of an account feature to an account plan.", + "tags": [ + "Account Plan Features" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "application_plan_id", "in": "path", - "description": "ID of the application plan.", + "description": "id of the account plan.", + "name": "account_plan_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_plan_ids", + "type": "integer" }, { - "name": "id", "in": "path", - "description": "ID of the feature.", + "description": "id of the feature.", + "name": "id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/personal/access_tokens/{id}.json": { + "/admin/api/account_plans.xml": { "get": { - "summary": "Personal Access Token Read", + "operationId": "account_plan_list", + "summary": "Account Plan List", + "description": "Returns the list of all available account plans.", + "tags": [ + "Account Plans" + ], "parameters": [ { - "name": "id", - "in": "path", - "description": "ID or value of the access token.", - "required": true, - "schema": { - "type": "ref" - } - }, - { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } }, - "delete": { - "summary": "Personal Access Token Delete", + "post": { + "operationId": "account_plan_create", + "summary": "Account Plan Create", + "description": "Creates an account plan.", + "tags": [ + "Account Plans" + ], "parameters": [ { - "name": "id", - "in": "path", - "description": "ID or value of the access token.", + "in": "query", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "ref" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Name of the account plan.", + "name": "name", "required": true, - "schema": { - "type": "string" - } + "type": "string" + }, + { + "in": "query", + "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.", + "name": "system_name", + "type": "string" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/users/{id}/admin.xml": { - "put": { - "summary": "User Change Role to Admin (provider account)", + "/admin/api/account_plans/{id}.xml": { + "get": { + "operationId": "account_plan_read", + "summary": "Account Plan Read", + "description": "Returns the account plan by id.", + "tags": [ + "Account Plans" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "id", "in": "path", - "description": "ID of the user.", + "description": "id of the account plan.", + "name": "id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_plan_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } - } - }, - "/admin/api/users/{user_id}/access_tokens.json": { - "post": { - "summary": "Access Token Create", + }, + "put": { + "operationId": "account_plan_update", + "summary": "Account Plan Update", + "description": "Updates an account plan.", + "tags": [ + "Account Plans" + ], "parameters": [ { - "name": "user_id", - "in": "path", - "description": "ID of the user.", + "in": "query", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "ref" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "name", - "in": "query", - "description": "Name of the access token.", + "in": "path", + "description": "id of the account plan.", + "name": "id", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "account_plan_ids", + "type": "integer" }, { - "name": "permission", "in": "query", - "description": "Permission of the access token. It must be either 'ro' (read only) or 'rw' (read and write).", + "description": "Name of the account plan.", + "name": "name", "required": true, - "schema": { - "type": "string" - } - }, + "type": "string" + } + ], + "responses": { + "200": { + "description": "No response was specified" + } + } + }, + "delete": { + "operationId": "account_plan_delete", + "summary": "Account Plan Delete", + "description": "Deletes and account plan.", + "tags": [ + "Account Plans" + ], + "parameters": [ { - "name": "scopes", "in": "query", - "description": "Scope of the access token. URL-encoded array containing one or more of the possible values. The possible values are, for a master user [\"account_management\", \"stats\"], and for a tenant user [\"finance\", \"account_management\", \"stats\"]", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", + "in": "path", + "description": "id of the account plan.", + "name": "id", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "account_plan_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/accounts/{account_id}/users/{id}/unsuspend.xml": { + "/admin/api/account_plans/{id}/default.xml": { "put": { - "summary": "User Unsuspend", + "operationId": "account_plan_set_to_default", + "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.", + "tags": [ + "Account Plans" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "account_id", "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { + "description": "id of the account plan.", "name": "id", - "in": "path", - "description": "ID of the user.", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_plan_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/accounts/{id}/credit_card.xml": { - "put": { - "summary": "Account Set Credit Card", + "/admin/api/accounts.xml": { + "get": { + "operationId": "account_list", + "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.", + "tags": [ + "Accounts" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "in": "query", + "description": "Account state. ", + "name": "state", + "required": false, + "type": "string" }, { - "name": "credit_card_token", "in": "query", - "description": "Token used by the payment gateway to identify the buyer, customer profile ID (Authorize.net), customer ID (Braintree and Stripe), customer alias (Ogone-Ingenico). Some payment gateways may store more than one card under the same buyer reference and/or require an additional identifier for recurring payment. If you are using Braintree, there is no need for additional identifier -- the first credit card available will always be charged. For Authorize.net, see `credit_card_authorize_net_payment_profile_token`.", - "required": true, - "schema": { - "type": "string" - } + "description": "Page in the paginated list. Defaults to 1.", + "name": "page", + "type": "integer", + "default": 1 }, { - "name": "credit_card_authorize_net_payment_profile_token", "in": "query", - "description": "Additional reference provided by the payment gateway to identify a specific card under the same buyer reference. For Authorize.net, you MUST fill with the 'Payment profile token'", - "schema": { - "type": "string" - } - }, - { - "name": "credit_card_expiration_year", - "in": "query", - "description": "Year of expiration of credit card. Two digit number", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "credit_card_expiration_month", - "in": "query", - "description": "Month of expiration of credit card. Two digit number", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "billing_address_name", - "in": "query", - "description": "Name of the person/company to bill", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "billing_address_address", - "in": "query", - "description": "Address associated to the credit card", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "billing_address_city", - "in": "query", - "description": "Billing address city", - "required": true, - "schema": { - "type": "string" - } - }, + "description": "Number of results per page. Default and max is 500.", + "name": "per_page", + "type": "integer", + "default": 500 + } + ], + "responses": { + "200": { + "description": "No response was specified" + } + } + } + }, + "/admin/api/accounts/find.xml": { + "get": { + "operationId": "account_find", + "summary": "Account Find", + "description": "Find an account by the username or email of its users (username takes precendence over email).", + "tags": [ + "Accounts" + ], + "parameters": [ { - "name": "billing_address_country", "in": "query", - "description": "Billing address country", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "billing_address_state", - "in": "query", - "description": "Billing address state", - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "billing_address_phone", "in": "query", - "description": "Billing address phone", - "schema": { - "type": "string" - } + "description": "username of the user of the account", + "name": "username", + "type": "string" }, { - "name": "billing_address_zip", "in": "query", - "description": "Billing address ZIP Code", - "schema": { - "type": "string" - } + "description": "email of the user of the account", + "name": "email", + "type": "string" }, { - "name": "credit_card_partial_number", - "in": "query", - "description": "Last four digits on the credit card", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Account Delete Credit Card", - "parameters": [ - { - "name": "access_token", "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "description": "id of the user of the account", + "name": "user_id", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/limits/{id}.xml": { + "/admin/api/accounts/{id}.xml": { "get": { - "summary": "Limit Read", + "operationId": "account_read", + "summary": "Account Read", + "description": "Returns a buyer account.", + "tags": [ + "Accounts" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "metric_id", "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { + "description": "id of the account.", "name": "id", - "in": "path", - "description": "ID of the limit.", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } }, "put": { - "summary": "Limit Update", + "operationId": "account_update", + "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.", + "tags": [ + "Accounts" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "metric_id", "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { + "description": "id of the account.", "name": "id", - "in": "path", - "description": "ID of the limit.", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_ids", + "type": "integer" }, { - "name": "period", "in": "query", - "description": "Period of the limit.", - "required": true, - "schema": { - "type": "string", - "default": "minute", - "enum": [ - "eternity", - "year", - "month", - "week", - "day", - "hour", - "minute" - ] - } + "description": "Organization name of the account.", + "name": "org_name", + "required": false, + "type": "string" }, { - "name": "value", "in": "query", - "description": "Value of the limit.", - "schema": { - "type": "integer", - "format": "int32" + "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.", + "name": "additional_fields", + "type": "array", + "items": { + "type": "string" } } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } }, "delete": { - "summary": "Limit Delete", + "operationId": "account_delete", + "summary": "Account Delete ", + "description": "Deletes a buyer account. Deleting an account removes all users, applications, service subscriptions to the account.", + "tags": [ + "Accounts" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "metric_id", "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { + "description": "id of the account.", "name": "id", - "in": "path", - "description": "ID of the limit.", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/accounts.xml": { - "get": { - "summary": "Account List", + "/admin/api/accounts/{id}/change_plan.xml": { + "put": { + "operationId": "account_change_plan", + "summary": "Account Change Plan", + "description": "Changes the account plan of the buyer account.", + "tags": [ + "Accounts" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "state", - "in": "query", - "description": "Account state.", - "schema": { - "type": "string", - "enum": [ - "pending", - "approved", - "rejected" - ] - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "page", - "in": "query", - "description": "Page in the paginated list. Defaults to 1.", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } + "in": "path", + "description": "id of the account.", + "name": "id", + "required": true, + "x-data-threescale-name": "account_ids", + "type": "integer" }, { - "name": "per_page", "in": "query", - "description": "Number of results per page. Default and max is 500.", - "schema": { - "type": "integer", - "format": "int32", - "default": 500 - } + "description": "id of the target account plan", + "name": "plan_id", + "required": true, + "x-data-threescale-name": "account_plan_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/accounts/{id}/reject.xml": { + "/admin/api/accounts/{id}/approve.xml": { "put": { - "summary": "Account Reject", + "operationId": "account_approve", + "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", + "tags": [ + "Accounts" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "id", "in": "path", - "description": "ID of the account.", + "description": "id of the account.", + "name": "id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/account_plans/{id}/default.xml": { + "/admin/api/accounts/{id}/reject.xml": { "put": { - "summary": "Account Plan set to Default", + "operationId": "account_reject", + "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", + "tags": [ + "Accounts" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "id", "in": "path", - "description": "ID of the account plan.", + "description": "id of the account.", + "name": "id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/webhooks/failures.xml": { - "get": { - "summary": "Webhooks List Failed Deliveries", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } + "/admin/api/accounts/{id}/make_pending.xml": { + "put": { + "operationId": "account_reset_to_pending", + "summary": "Account Reset to Pending", + "description": "Resets the state of the account to pending. So that it can be again approved or rejected.", + "tags": [ + "Accounts" ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Webhooks Delete Failed Deliveries", "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "time", - "in": "query", - "description": "Only failed webhook deliveries whose time is less than or equal to the passed time are destroyed (if used).", - "schema": { - "type": "ref" - } + "in": "path", + "description": "id of the account.", + "name": "id", + "required": true, + "x-data-threescale-name": "account_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/services/{service_id}/proxy/configs/{environment}/{version}.json": { - "get": { - "summary": "Proxy Config Show", + "/admin/api/active_docs/{id}.xml": { + "put": { + "operationId": "active_docs_json_spec_update", + "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'", + "tags": [ + "active_docs" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "environment", "in": "path", - "description": "Gateway environment. Must be 'sandbox' or 'production'", + "description": "id of the active doc.", + "name": "id", "required": true, - "schema": { - "type": "string" - } + "type": "integer" }, { - "name": "version", - "in": "path", - "description": "Version of the Proxy config.", + "in": "query", + "description": "JSON Spec of the ActiveDocs (based on the spec of Swagger).", + "name": "body", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "type": "string" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/webhooks.json": { - "put": { - "summary": "WebHooks Update", + "/admin/api/application_plans/{application_plan_id}/features.xml": { + "get": { + "operationId": "application_plan_feature_list", + "summary": "Application Plan Feature List", + "description": "Returns the list of features of the application plan.", + "tags": [ + "Application Plan Features" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "url", - "in": "query", - "description": "URL that will be notified about all the events", - "schema": { - "type": "string" - } - }, - { - "name": "active", - "in": "query", - "description": "Activate/Disable WebHooks", - "schema": { - "type": "boolean" - } - }, - { - "name": "provider_actions", - "in": "query", - "description": "Dashboard actions fire webhooks. If false, only user actions in the portal trigger events.", - "schema": { - "type": "boolean" - } - }, - { - "name": "account_created_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "account_updated_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "account_deleted_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "user_created_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "user_updated_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "user_deleted_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "application_created_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "application_updated_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "application_deleted_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "account_plan_changed_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "application_plan_changed_on", - "in": "query", - "schema": { - "type": "boolean" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "application_user_key_updated_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "application_key_created_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, + "in": "path", + "description": "id of the application plan.", + "name": "application_plan_id", + "required": true, + "x-data-threescale-name": "application_plan_ids", + "type": "integer" + } + ], + "responses": { + "200": { + "description": "No response was specified" + } + } + }, + "post": { + "operationId": "application_plan_feature_create", + "summary": "Application Plan Feature Create", + "description": "Associates a feature to an application plan.", + "tags": [ + "Application Plan Features" + ], + "parameters": [ { - "name": "application_key_deleted_on", "in": "query", - "schema": { - "type": "boolean" - } + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", + "required": true, + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "application_suspended_on", - "in": "query", - "schema": { - "type": "boolean" - } + "in": "path", + "description": "id of the application plan.", + "name": "application_plan_id", + "required": true, + "x-data-threescale-name": "application_plan_ids", + "type": "integer" }, { - "name": "application_key_updated_on", "in": "query", - "schema": { - "type": "boolean" - } + "description": "id of the feature.", + "name": "feature_id", + "required": true, + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/services/{service_id}/proxy/configs/{environment}.json": { - "get": { - "summary": "Proxy Configs List (Service)", + "/admin/api/application_plans/{application_plan_id}/features/{id}.xml": { + "delete": { + "operationId": "application_plan_feature_delete", + "summary": "Application Plan Feature Delete", + "tags": [ + "Application Plan Features" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "service_id", "in": "path", - "description": "ID of the service.", + "description": "id of the application plan.", + "name": "application_plan_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "application_plan_ids", + "type": "integer" }, { - "name": "environment", "in": "path", - "description": "Gateway environment. Must be 'sandbox' or 'production'", + "description": "id of the feature.", + "name": "id", "required": true, - "schema": { - "type": "string" - } + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/users/{id}/suspend.xml": { - "put": { - "summary": "User Suspend (provider account)", + "/admin/api/application_plans/{application_plan_id}/limits.xml": { + "get": { + "operationId": "plan_limits", + "summary": "Limits List per Application Plan", + "description": "Returns the list of all limits associated to an application plan.", + "tags": [ + "Application Plan Limits" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "id", "in": "path", - "description": "ID of the user.", + "description": "id of the application plan.", + "name": "application_plan_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "application_plan_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/services/{id}.xml": { + "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/limits.xml": { "get": { - "summary": "Service Read", + "operationId": "limits_list", + "summary": "Limit List per Metric", + "description": "Returns the list of all limits associated to a metric of an application plan.", + "tags": [ + "Application Plan Limits by Metric" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "id", "in": "path", - "description": "ID of the service.", + "description": "id of the application plan.", + "name": "application_plan_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "application_plan_ids", + "type": "integer" + }, + { + "in": "path", + "description": "id of the metric.", + "name": "metric_id", + "required": true, + "x-data-threescale-name": "metric_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } }, - "put": { - "summary": "Service Update", + "post": { + "operationId": "limit_create", + "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).", + "tags": [ + "Application Plan Limits by Metric" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "id", "in": "path", - "description": "ID of the service.", + "description": "id of the application plan.", + "name": "application_plan_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "name", - "in": "query", - "description": "New name for the service.", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "New description for the service.", - "schema": { - "type": "string" - } - }, - { - "name": "support_email", - "in": "query", - "description": "New support email.", - "schema": { - "type": "string" - } - }, - { - "name": "deployment_option", - "in": "query", - "description": "Deployment option for the gateway: 'hosted' for APIcast hosted, 'self_managed' for APIcast Self-managed, 'service_mesh_istio' for Istio service mesh option", - "schema": { - "type": "string" - } + "x-data-threescale-name": "application_plan_ids", + "type": "integer" }, { - "name": "backend_version", - "in": "query", - "description": "Authentication mode: '1' for API key, '2' for App Id / App Key, 'oidc' for OpenID Connect", - "schema": { - "type": "string" - } + "in": "path", + "description": "id of the metric.", + "name": "metric_id", + "required": true, + "x-data-threescale-name": "metric_ids", + "type": "integer" }, { - "name": " ", - "in": "query", - "description": "Extra parameters", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Service Delete", - "parameters": [ - { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "period of the limit.", + "name": "period", "required": true, - "schema": { - "type": "string" - } + "type": "string", + "default": "minute" }, { - "name": "id", - "in": "path", - "description": "ID of the service.", + "in": "query", + "description": "value of the limit.", + "name": "value", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/accounts/{account_id}/applications/{application_id}/referrer_filters/{id}.xml": { - "delete": { - "summary": "Application Referrer Filter Delete", + "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/limits/{id}.xml": { + "get": { + "operationId": "limit_read", + "summary": "Limit Read", + "description": "Returns a limit on a metric of an application plan.", + "tags": [ + "Application Plan Limits by Metric" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "account_id", "in": "path", - "description": "ID of the account.", + "description": "id of the application plan.", + "name": "application_plan_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "application_plan_ids", + "type": "integer" }, { - "name": "application_id", "in": "path", - "description": "ID of the application.", + "description": "id of the metric.", + "name": "metric_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "metric_ids", + "type": "integer" }, { - "name": "id", "in": "path", - "description": "ID of referrer filter to be deleted.", + "description": "id of the limit.", + "name": "id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } - } - }, - "/admin/api/services/{service_id}/metrics/{metric_id}/methods/{id}.xml": { - "get": { - "summary": "Service Method Read", + }, + "put": { + "operationId": "limit_update", + "summary": "Limit Update", + "description": "Updates a limit on a metric of an application plan.", + "tags": [ + "Application Plan Limits by Metric" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "service_id", "in": "path", - "description": "ID of the service.", + "description": "id of the application plan.", + "name": "application_plan_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "application_plan_ids", + "type": "integer" }, { - "name": "metric_id", "in": "path", - "description": "ID of the metric.", + "description": "id of the metric.", + "name": "metric_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "metric_ids", + "type": "integer" }, { - "name": "id", "in": "path", - "description": "ID of the method.", + "description": "id of the limit.", + "name": "id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "type": "integer" + }, + { + "in": "query", + "description": "period of the limit.", + "name": "period", + "required": true, + "type": "string", + "default": "minute" + }, + { + "in": "query", + "description": "value of the limit.", + "name": "value", + "required": false, + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } }, - "put": { - "summary": "Service Method Update", + "delete": { + "operationId": "limit_delete", + "summary": "Limit Delete", + "description": "Deletes a limit on a metric of an application plan", + "tags": [ + "Application Plan Limits by Metric" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "service_id", "in": "path", - "description": "ID of the service.", + "description": "id of the application plan.", + "name": "application_plan_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "application_plan_ids", + "type": "integer" }, { - "name": "metric_id", "in": "path", - "description": "ID of the metric.", + "description": "id of the metric.", + "name": "metric_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "metric_ids", + "type": "integer" }, { - "name": "id", "in": "path", - "description": "ID of the method.", + "description": "id of the limit.", + "name": "id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "friendly_name", - "in": "query", - "description": "Name of the method.", - "schema": { - "type": "string" - } - }, - { - "name": "unit", - "in": "query", - "description": "Measure unit of the method.", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the method.", - "schema": { - "type": "ref" - } + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } - }, - "delete": { - "summary": "Service Method Delete", + } + }, + "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/pricing_rules.xml": { + "get": { + "operationId": "metric_pricing_rules", + "summary": "Pricing Rules List per Metric", + "description": "Returns the list of all pricing rules associated to a metric of an application plan.", + "tags": [ + "Application Plan Pricing Rules" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "metric_id", "in": "path", - "description": "ID of the metric.", + "description": "id of the application plan.", + "name": "application_plan_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "application_plan_ids", + "type": "integer" }, { - "name": "id", "in": "path", - "description": "ID of the method.", + "description": "id of the metric.", + "name": "metric_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "metric_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/settings.json": { + "/admin/api/application_plans/{application_plan_id}/pricing_rules.xml": { "get": { - "summary": "Settings Read", - "operationId": "service_metric", + "operationId": "pricing_rules", + "summary": "Pricing Rules List per Application Plan", + "description": "Returns the list of all pricing rules associated to an application plan.", + "tags": [ + "Application Plan Pricing Rules" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" + }, + { + "in": "path", + "description": "id of the application plan.", + "name": "application_plan_id", + "required": true, + "x-data-threescale-name": "application_plan_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } - }, - "put": { - "summary": "Settings Update", + } + }, + "/admin/api/application_plans.xml": { + "get": { + "operationId": "application_plan_list_all_services", + "summary": "Application Plan List (all services)", + "description": "Returns the list of all application plans across services. Note that application plans are scoped by service.", + "tags": [ + "Application Plans" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "useraccountarea_enabled", - "in": "query", - "description": "Allow the user to edit their submitted details, change passwords, etc", - "schema": { - "type": "boolean" - } - }, - { - "name": "hide_service", - "in": "query", - "description": "Used a default service plan", - "schema": { - "type": "boolean" - } - }, - { - "name": "signups_enabled", - "in": "query", - "description": "Developers are allowed sign up themselves.", - "schema": { - "type": "boolean" - } - }, - { - "name": "account_approval_required", - "in": "query", - "description": "Approval is required by you before developer accounts are activated.", - "schema": { - "type": "boolean" - } - }, - { - "name": "strong_passwords_enabled", - "in": "query", - "description": "Require strong passwords from your users: Password must be at least 8 characters long, and contain both upper and lowercase letters, a digit and one special character of -+=><_$#.:;!?@&*()~][}{|. Existing passwords will still work. ", - "schema": { - "type": "boolean" - } - }, - { - "name": "public_search", - "in": "query", - "description": "Enables public search on Developer Portal", - "schema": { - "type": "boolean" - } - }, - { - "name": "account_plans_ui_visible", - "in": "query", - "description": "Enables visibility of Account Plans", - "schema": { - "type": "boolean" - } - }, - { - "name": "change_account_plan_permission", - "in": "query", - "description": "Account Plans changing", - "schema": { - "type": "string" - } - }, - { - "name": "service_plans_ui_visible", - "in": "query", - "description": "Enables visibility of Service Plans", - "schema": { - "type": "boolean" - } - }, - { - "name": "change_service_plan_permission", - "in": "query", - "description": "Service Plans changing", - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/backend_apis/{id}.json": { + "/admin/api/services/{service_id}/application_plans.xml": { "get": { - "summary": "Backend Read", + "operationId": "application_plan_list", + "summary": "Application Plan List", + "description": "Returns the list of all application plans of a service.", + "tags": [ + "Application Plans" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "id", "in": "path", - "description": "ID of the Backend.", + "description": "id of the service.", + "name": "service_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "service_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } }, - "put": { - "summary": "Backend Update", + "post": { + "operationId": "application_plan_create", + "summary": "Application Plan Create", + "description": "Creates an application plan.", + "tags": [ + "Application Plans" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "id", "in": "path", - "description": "ID of the Backend.", + "description": "id of the service.", + "name": "service_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "service_ids", + "type": "integer" }, { - "name": "name", - "in": "query", - "description": "Name of the Backend", - "schema": { - "type": "string" - } - }, - { - "name": "description", "in": "query", - "description": "Description of the Backend", - "schema": { - "type": "string" - } + "description": "Name of the application plan.", + "name": "name", + "required": true, + "type": "string" }, { - "name": "private_endpoint", "in": "query", - "description": "Private Base URL (your API)", - "schema": { - "type": "string" - } + "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.", + "name": "system_name", + "type": "string" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } - }, - "delete": { - "summary": "Backend Delete", + } + }, + "/admin/api/services/{service_id}/application_plans/{id}.xml": { + "get": { + "operationId": "application_plan_read", + "summary": "Application Plan Read", + "description": "Returns and application plan.", + "tags": [ + "Application Plans" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "id", "in": "path", - "description": "ID of the Backend.", + "description": "id of the service.", + "name": "service_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "service_ids", + "type": "integer" + }, + { + "in": "path", + "description": "id of the application plan.", + "name": "id", + "required": true, + "x-data-threescale-name": "application_plan_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } - } - }, - "/admin/api/account_plans/{account_plan_id}/features/{id}.xml": { - "post": { - "summary": "Account Plan Features Create", + }, + "put": { + "operationId": "application_plan_update", + "summary": "Application Plan Update", + "description": "Updates an application plan.", + "tags": [ + "Application Plans" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "account_plan_id", "in": "path", - "description": "ID of the account plan.", + "description": "id of the service.", + "name": "service_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "service_ids", + "type": "integer" }, { - "name": "id", "in": "path", - "description": "ID of the feature.", + "description": "id of the application plan.", + "name": "id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "application_plan_ids", + "type": "integer" + }, + { + "in": "query", + "description": "Name of the application plan.", + "name": "name", + "type": "string" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } }, "delete": { - "summary": "Account Plan Features Delete", + "operationId": "application_plan_delete", + "summary": "Application Plan Delete", + "description": "Deletes an application plan.", + "tags": [ + "Application Plans" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "account_plan_id", "in": "path", - "description": "ID of the account plan.", + "description": "id of the service.", + "name": "service_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "service_ids", + "type": "integer" }, { - "name": "id", "in": "path", - "description": "ID of the feature.", + "description": "id of the application plan.", + "name": "id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "application_plan_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/backend_apis/{backend_api_id}/metrics/{id}.json": { - "get": { - "summary": "Backend Metric Read", + "/admin/api/services/{service_id}/application_plans/{id}/default.xml": { + "put": { + "operationId": "application_plan_set_to_default", + "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).", + "tags": [ + "Application Plans" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "backend_api_id", "in": "path", - "description": "ID of the Backend.", + "description": "id of the service.", + "name": "service_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "service_ids", + "type": "integer" }, { - "name": "id", "in": "path", - "description": "ID of the metric.", + "description": "id of the application plan.", + "name": "id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "application_plan_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } - }, - "put": { - "summary": "Backend Metric Update", + } + }, + "/admin/api/applications.xml": { + "get": { + "operationId": "applications_list_all_service", + "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.", + "tags": [ + "Applications" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", + "name": "page", + "type": "integer", + "default": 1 }, { - "name": "id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "in": "query", + "description": "Number of results per page. Default and max is 500.", + "name": "per_page", + "type": "integer", + "default": 500 }, { - "name": "friendly_name", "in": "query", - "description": "Name of the metric.", - "schema": { - "type": "string" - } + "description": "filter date", + "name": "active_since", + "required": false, + "x-data-threescale-name": "active_since", + "type": "string" }, { - "name": "unit", "in": "query", - "description": "Measure unit of the metric.", - "schema": { - "type": "string" - } + "description": "filter date", + "name": "inactive_since", + "required": false, + "x-data-threescale-name": "inactive_since", + "type": "string" }, { - "name": "description", "in": "query", - "description": "Description of the metric.", - "schema": { - "type": "ref" - } + "description": "filter by service", + "name": "service_id", + "required": false, + "x-data-threescale-name": "service_id", + "type": "string" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } - }, - "delete": { - "summary": "Backend Metric Delete", + } + }, + "/admin/api/applications/find.xml": { + "get": { + "operationId": "applications_find", + "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).", + "tags": [ + "Applications" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "in": "query", + "description": "id of the application.", + "name": "application_id", + "required": false, + "x-data-threescale-name": "application_ids", + "type": "integer" }, { - "name": "id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } + "in": "query", + "description": "user_key of the application (for user_key authentication mode).", + "name": "user_key", + "required": false, + "x-data-threescale-name": "user_keys", + "type": "string" + }, + { + "in": "query", + "description": "app_id of the application (for app_id/app_key and oauth authentication modes).", + "name": "app_id", + "required": false, + "x-data-threescale-name": "app_ids", + "type": "string" + } + ], + "responses": { + "200": { + "description": "No response was specified" + } } } }, - "/admin/api/services/{service_id}/backend_usages/{id}.json": { + "/admin/api/accounts/{account_id}/plan.xml": { "get": { - "summary": "Backend Usage Read", + "operationId": "account_fetch_account_plan", + "summary": "Account Fetch Account Plan", + "description": "Returns the account plan associated to an account.", + "tags": [ + "Accounts" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "service_id", "in": "path", - "description": "ID of the service.", + "description": "id of the account.", + "name": "account_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_ids", + "type": "integer" + } + ], + "responses": { + "200": { + "description": "No response was specified" + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{application_id}/keys.xml": { + "get": { + "operationId": "application_key_list", + "summary": "Application Key List", + "description": "Lists app keys of the application.", + "tags": [ + "Applications" + ], + "parameters": [ + { + "in": "query", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", + "required": true, + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "id", "in": "path", - "description": "ID of the Backend Usage.", + "description": "id of the account.", + "name": "account_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_ids", + "type": "integer" + }, + { + "in": "path", + "description": "id of the application.", + "name": "application_id", + "required": true, + "x-data-threescale-name": "application_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } }, - "put": { - "summary": "Backend Usage Update", + "post": { + "operationId": "key_create", + "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.", + "tags": [ + "Applications" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "service_id", "in": "path", - "description": "ID of the service.", + "description": "id of the account.", + "name": "account_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_ids", + "type": "integer" }, { - "name": "id", "in": "path", - "description": "ID of the Backend Usage.", + "description": "id of the application.", + "name": "application_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "application_ids", + "type": "integer" }, { - "name": "path", "in": "query", - "description": "Path of the Backend for this product.", - "schema": { - "type": "integer", - "format": "int32" - } + "description": "app_key to be added", + "name": "key", + "required": true, + "type": "string" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } - }, + } + }, + "/admin/api/accounts/{account_id}/applications/{application_id}/keys/{key}.xml": { "delete": { - "summary": "Backend Usage Delete", + "operationId": "application_key_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).", + "tags": [ + "Applications" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "service_id", "in": "path", - "description": "ID of the service.", + "description": "id of the account.", + "name": "account_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_ids", + "type": "integer" }, { - "name": "id", "in": "path", - "description": "ID of the Backend Usage.", + "description": "id of the application.", + "name": "application_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "application_ids", + "type": "integer" + }, + { + "in": "path", + "description": "app_key to be deleted.", + "name": "key", + "required": true, + "type": "string" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/users/{id}.xml": { + "/admin/api/accounts/{account_id}/applications/{application_id}/referrer_filters.xml": { "get": { - "summary": "User Read (provider account)", + "operationId": "application_referrer_filter_list", + "summary": "Application Referrer Filter List", + "description": "Lists referrer filters of the application.", + "tags": [ + "Applications" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "id", "in": "path", - "description": "ID of the user.", + "description": "id of the account.", + "name": "account_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_ids", + "type": "integer" + }, + { + "in": "path", + "description": "id of the application.", + "name": "application_id", + "required": true, + "x-data-threescale-name": "application_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } }, - "put": { - "summary": "User Update (provider account)", + "post": { + "operationId": "application_referrer_filter_create", + "summary": "Application referrer filter Create", + "description": "Adds a referrer filter to an application. Referrer filters limit the API requests by domain or IP ranges.", + "tags": [ + "Applications" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "id", "in": "path", - "description": "ID of the user.", + "description": "id of the account.", + "name": "account_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "username", - "in": "query", - "description": "Username of the user.", - "schema": { - "type": "string" - } - }, - { - "name": "email", - "in": "query", - "description": "Email of the user.", - "schema": { - "type": "string" - } + "x-data-threescale-name": "account_ids", + "type": "integer" }, { - "name": "password", - "in": "query", - "description": "Password of the user.", - "schema": { - "type": "string" - } + "in": "path", + "description": "id of the application.", + "name": "application_id", + "required": true, + "x-data-threescale-name": "application_ids", + "type": "integer" }, { - "name": "additional_fields", "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). Additional fields are the custom fields declared for your tenant, you can find them in 'Settings >> Personal Details' for the account and in 'Settings >> Account >> Users >> Personal Details' for users. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } + "description": "referrer filter to be created.", + "name": "referrer_filter", + "required": true, + "type": "string" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } - }, + } + }, + "/admin/api/accounts/{account_id}/applications/{application_id}/referrer_filters/{id}.xml": { "delete": { - "summary": "User Delete (provider account)", + "operationId": "application_referrer_filter_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.", + "tags": [ + "Applications" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "id", "in": "path", - "description": "ID of the user.", + "description": "id of the account.", + "name": "account_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_ids", + "type": "integer" + }, + { + "in": "path", + "description": "id of the application.", + "name": "application_id", + "required": true, + "x-data-threescale-name": "application_ids", + "type": "integer" + }, + { + "in": "path", + "description": "id of referrer filter to be deleted.", + "name": "id", + "required": true, + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/fields_definitions/{id}.json": { + "/admin/api/accounts/{account_id}/applications.xml": { "get": { - "summary": "Fields Definition Read", + "operationId": "application_list", + "summary": "Application List", + "description": "Returns the list of application of an account.", + "tags": [ + "Applications" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "id", "in": "path", - "description": "ID of the fields definition.", + "description": "id of the account.", + "name": "account_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } }, - "put": { - "summary": "Fields Definition Update", + "post": { + "operationId": "application_create", + "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.", + "tags": [ + "Applications" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "id", "in": "path", - "description": "ID of the fields definition.", + "description": "id of the account.", + "name": "account_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_ids", + "type": "integer" }, { - "name": "target", "in": "query", - "description": "Target entity of fields definition.", + "description": "id of the application plan.", + "name": "plan_id", "required": true, - "schema": { - "type": "string", - "default": "account", - "enum": [ - "Account", - "User", - "Cinstance" - ] - } - }, - { - "name": "label", - "in": "query", - "description": "The field title your developers will see.", - "schema": { - "type": "string" - } - }, - { - "name": "required", - "in": "query", - "description": "If 'true' the field will be required for developers.", - "schema": { - "type": "boolean" - } - }, - { - "name": "hidden", - "in": "query", - "description": "If 'true' the developers won't be able to see this field.", - "schema": { - "type": "boolean" - } + "x-data-threescale-name": "application_plan_ids", + "type": "integer" }, { - "name": "read_only", "in": "query", - "description": "If 'true' the developers won't be able to change this field.", - "schema": { - "type": "boolean" - } + "description": "Name of the application to be created.", + "name": "name", + "required": true, + "type": "string" }, { - "name": "position", "in": "query", - "description": "Position of the fields definition.", - "schema": { - "type": "ref" - } + "description": "Description of the application to be created.", + "name": "description", + "required": true, + "type": "string" }, { - "name": "choices", "in": "query", - "description": "The list of predefined options for this field, URL-encoded array.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } + "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.", + "name": "additional_fields", + "type": "array", + "items": { + "type": "string" } } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } - }, - "delete": { - "summary": "Fields Definition Delete", + } + }, + "/admin/api/accounts/{account_id}/applications/{id}.xml": { + "get": { + "operationId": "application_read", + "summary": "Application Read", + "description": "Returns the application by id.", + "tags": [ + "Applications" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "id", "in": "path", - "description": "ID of the fields definition.", + "description": "id of the account.", + "name": "account_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_ids", + "type": "integer" + }, + { + "in": "path", + "description": "id of the application.", + "name": "id", + "required": true, + "x-data-threescale-name": "application_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } - } - }, - "/admin/api/application_plans/{application_plan_id}/limits.xml": { - "get": { - "summary": "Limits List per Application Plan", - "operationId": "plan_limits", + }, + "put": { + "operationId": "application_update", + "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).", + "tags": [ + "Applications" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" + }, + { + "in": "path", + "description": "id of the account.", + "name": "account_id", + "required": true, + "x-data-threescale-name": "account_ids", + "type": "integer" + }, + { + "in": "path", + "description": "id of the application.", + "name": "id", + "required": true, + "x-data-threescale-name": "application_ids", + "type": "integer" }, { - "name": "page", "in": "query", - "description": "Page in the paginated list. Defaults to 1.", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } + "description": "Name of the application.", + "name": "name", + "required": false, + "type": "string" }, { - "name": "per_page", "in": "query", - "description": "Number of results per page. Default and max is 50.", - "schema": { - "type": "integer", - "format": "int32", - "default": 50 - } + "description": "Description of the application.", + "name": "description", + "required": false, + "type": "string" }, { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" + "in": "query", + "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.", + "name": "additional_fields", + "type": "array", + "items": { + "type": "string" } } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/accounts/{account_id}/applications/{id}/accept.xml": { + "/admin/api/accounts/{account_id}/applications/{id}/change_plan.xml": { "put": { - "summary": "Application Accept", + "operationId": "application_change_plan", + "summary": "Application Change Plan", + "description": "Changes the application plan of an application.", + "tags": [ + "Applications" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "account_id", "in": "path", - "description": "ID of the account.", + "description": "id of the account.", + "name": "account_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_ids", + "type": "integer" }, { - "name": "id", "in": "path", - "description": "ID of the application.", + "description": "id of the application.", + "name": "id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "application_ids", + "type": "integer" + }, + { + "in": "query", + "description": "id of the new application plan.", + "name": "plan_id", + "required": true, + "x-data-threescale-name": "application_plan_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/users/{id}/permissions.xml": { - "get": { - "summary": "User Permissions Read", + "/admin/api/accounts/{account_id}/applications/{id}/customize_plan.xml": { + "put": { + "operationId": "application_create_plan_customization", + "summary": "Application Create Plan Customization", + "description": "Creates a customized application plan for the application.", + "tags": [ + "Applications" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "id", "in": "path", - "description": "ID of the user.", + "description": "id of the account.", + "name": "account_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_ids", + "type": "integer" + }, + { + "in": "path", + "description": "id of the application.", + "name": "id", + "required": true, + "x-data-threescale-name": "application_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } - }, + } + }, + "/admin/api/accounts/{account_id}/applications/{id}/decustomize_plan.xml": { "put": { - "summary": "User Permissions Update", + "operationId": "application_delete_plan_customization", + "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.", + "tags": [ + "Applications" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "id", "in": "path", - "description": "ID of the user.", + "description": "id of the account.", + "name": "account_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "allowed_service_ids", - "in": "query", - "description": "IDs of the services that need to be enabled, URL-encoded array. To disable all services, set the value to '[]'. To enable all services, add parameter 'allowed_service_ids[]' with no value to the 'curl' command (can't be done in ActiveDocs)", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } + "x-data-threescale-name": "account_ids", + "type": "integer" }, { - "name": "allowed_sections", - "in": "query", - "description": "The list of sections in the admin portal that the user can access, URL-encoded array. Possible values: 'portal' (Developer Portal), 'finance' (Billing), 'settings', 'partners' (Accounts -- Applications), 'monitoring' (Analytics), 'plans' (Integration & Application Plans), 'policy_registry'. To disable all sections, set the value to '[]'.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } + "in": "path", + "description": "id of the application.", + "name": "id", + "required": true, + "x-data-threescale-name": "application_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/accounts/{account_id}/messages.xml": { - "post": { - "summary": "Account Message", + "/admin/api/accounts/{account_id}/applications/{id}/accept.xml": { + "put": { + "operationId": "application_accept", + "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.", + "tags": [ + "Applications" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "account_id", "in": "path", - "description": "ID of the account.", + "description": "id of the account.", + "name": "account_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_ids", + "type": "integer" }, { - "name": "body", + "in": "path", + "description": "id of the application.", + "name": "id", + "required": true, + "x-data-threescale-name": "application_ids", + "type": "integer" + } + ], + "responses": { + "200": { + "description": "No response was specified" + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{id}/suspend.xml": { + "put": { + "operationId": "application_suspend", + "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.", + "tags": [ + "Applications" + ], + "parameters": [ + { "in": "query", - "description": "Text to send", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "subject", - "in": "query", - "description": "Subject of the message", + "in": "path", + "description": "id of the account.", + "name": "account_id", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "account_ids", + "type": "integer" + }, + { + "in": "path", + "description": "id of the application.", + "name": "id", + "required": true, + "x-data-threescale-name": "application_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/services/{service_id}/proxy/configs/{environment}/latest.json": { - "get": { - "summary": "Proxy Config Show Latest", + "/admin/api/accounts/{account_id}/applications/{id}/resume.xml": { + "put": { + "operationId": "application_resume", + "summary": "Application Resume", + "description": "Resume a suspended application. Once a suspended application is resumed it will be authorized on API requests.", + "tags": [ + "Applications" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "service_id", "in": "path", - "description": "ID of the service.", + "description": "id of the account.", + "name": "account_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_ids", + "type": "integer" }, { - "name": "environment", "in": "path", - "description": "Gateway environment. Must be 'sandbox' or 'production'", + "description": "id of the application.", + "name": "id", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "application_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, "/admin/api/accounts/{account_id}/users.xml": { "get": { + "operationId": "user_list", "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.", + "tags": [ + "Users" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "account_id", "in": "path", - "description": "ID of the account.", + "description": "id of the account.", + "name": "account_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_ids", + "type": "integer" }, { - "name": "state", "in": "query", "description": "Filter users by State.", - "schema": { - "type": "string", - "enum": [ - "pending", - "suspended", - "active" - ] - } + "name": "state", + "required": false, + "type": "string" }, { - "name": "role", "in": "query", "description": "Filter users by Role.", - "schema": { - "type": "string", - "enum": [ - "member", - "admin" - ] - } + "name": "role", + "required": false, + "type": "string" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } }, "post": { + "operationId": "user_create", "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. ", + "tags": [ + "Users" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "account_id", "in": "path", - "description": "ID of the account.", + "description": "id of the account.", + "name": "account_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_ids", + "type": "integer" }, { - "name": "username", "in": "query", "description": "Username of the user.", + "name": "username", "required": true, - "schema": { - "type": "string" - } + "type": "string" }, { - "name": "email", "in": "query", "description": "Email of the user.", + "name": "email", "required": true, - "schema": { - "type": "string" - } + "type": "string" }, { - "name": "password", "in": "query", "description": "Password of the user.", + "name": "password", "required": true, - "schema": { - "type": "string" - } + "type": "string" }, { - "name": "additional_fields", "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } + "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.", + "name": "additional_fields", + "type": "array", + "items": { + "type": "string" } } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/objects/status.json": { + "/admin/api/accounts/{account_id}/users/{id}.xml": { "get": { - "summary": "Object deletion status for objects that are deleted asynchronously", + "operationId": "user_read", + "summary": "User Read", + "description": "Returns the user of an account.", + "tags": [ + "Users" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "object_type", - "in": "query", - "description": "Object type has to be service, account, proxy or backend_api.", + "in": "path", + "description": "id of the account.", + "name": "account_id", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "account_ids", + "type": "integer" }, { - "name": "object_id", + "in": "path", + "description": "id of the user.", + "name": "id", + "required": true, + "x-data-threescale-name": "user_ids", + "type": "integer" + } + ], + "responses": { + "200": { + "description": "No response was specified" + } + } + }, + "put": { + "operationId": "user_update", + "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.", + "tags": [ + "Users" + ], + "parameters": [ + { "in": "query", - "description": "Object ID.", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", + "required": true, + "x-data-threescale-name": "api_keys", + "type": "string" + }, + { + "in": "path", + "description": "id of the account.", + "name": "account_id", + "required": true, + "x-data-threescale-name": "account_ids", + "type": "integer" + }, + { + "in": "path", + "description": "id of the user.", + "name": "id", "required": true, - "schema": { + "x-data-threescale-name": "user_ids", + "type": "integer" + }, + { + "in": "query", + "description": "Username of the user.", + "name": "username", + "required": false, + "type": "string" + }, + { + "in": "query", + "description": "Email of the user.", + "name": "email", + "required": false, + "type": "string" + }, + { + "in": "query", + "description": "Password of the user.", + "name": "password", + "required": false, + "type": "string" + }, + { + "in": "query", + "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.", + "name": "additional_fields", + "type": "array", + "items": { "type": "string" } } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } - } - }, - "/admin/api/accounts/{account_id}/service_contracts.xml": { - "get": { - "summary": "Service Subscription List", + }, + "delete": { + "operationId": "user_delete", + "summary": "User Delete", + "description": "Deletes a user of an account. Last user can't be deleted", + "tags": [ + "Users" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { + "in": "path", + "description": "id of the account.", "name": "account_id", + "required": true, + "x-data-threescale-name": "account_ids", + "type": "integer" + }, + { "in": "path", - "description": "ID of the account.", + "description": "id of the user.", + "name": "id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "user_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, "/admin/api/accounts/{account_id}/users/{id}/member.xml": { "put": { - "summary": "User Change Role to Member", + "operationId": "user_change_role_to_member", + "summary": "User change Role to Member", + "description": "Changes the role of the user to member.", + "tags": [ + "Users" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "account_id", "in": "path", - "description": "ID of the account.", + "description": "id of the account.", + "name": "account_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_ids", + "type": "integer" }, { - "name": "id", "in": "path", - "description": "ID of the user.", + "description": "id of the user.", + "name": "id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "user_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/backend_apis/{backend_api_id}/metrics/{metric_id}/methods/{id}.json": { - "get": { - "summary": "Backend Method Read", + "/admin/api/accounts/{account_id}/users/{id}/admin.xml": { + "put": { + "operationId": "user_change_role_to_admin", + "summary": "User change Role to Admin", + "description": "Changes the role of the user to admin.", + "tags": [ + "Users" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "backend_api_id", "in": "path", - "description": "ID of the Backend.", + "description": "id of the account.", + "name": "account_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_ids", + "type": "integer" }, { - "name": "metric_id", "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { + "description": "id of the user.", "name": "id", - "in": "path", - "description": "ID of the method.", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "user_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } - }, + } + }, + "/admin/api/accounts/{account_id}/users/{id}/suspend.xml": { "put": { - "summary": "Backend Method Update", + "operationId": "user_suspend", + "summary": "User Suspend", + "description": "Changes the state of the user to suspended. A suspended user cannot sign-in.", + "tags": [ + "Users" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "backend_api_id", "in": "path", - "description": "ID of the Backend.", + "description": "id of the account.", + "name": "account_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_ids", + "type": "integer" }, { - "name": "metric_id", "in": "path", - "description": "ID of the metric.", + "description": "id of the user.", + "name": "id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "user_ids", + "type": "integer" + } + ], + "responses": { + "200": { + "description": "No response was specified" + } + } + } + }, + "/admin/api/accounts/{account_id}/users/{id}/unsuspend.xml": { + "put": { + "operationId": "user_unsuspend", + "summary": "User Unsuspend", + "description": "Change the state of the user back to active.", + "tags": [ + "Users" + ], + "parameters": [ + { + "in": "query", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", + "required": true, + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "id", "in": "path", - "description": "ID of the method.", + "description": "id of the account.", + "name": "account_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "friendly_name", - "in": "query", - "description": "Name of the method.", - "schema": { - "type": "string" - } - }, - { - "name": "unit", - "in": "query", - "description": "Measure unit of the method.", - "schema": { - "type": "string" - } + "x-data-threescale-name": "account_ids", + "type": "integer" }, { - "name": "description", - "in": "query", - "description": "Description of the method.", - "schema": { - "type": "ref" - } + "in": "path", + "description": "id of the user.", + "name": "id", + "required": true, + "x-data-threescale-name": "user_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } - }, - "delete": { - "summary": "Backend Method Delete", + } + }, + "/admin/api/accounts/{account_id}/users/{id}/activate.xml": { + "put": { + "operationId": "user_activate", + "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.", + "tags": [ + "Users" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "backend_api_id", "in": "path", - "description": "ID of the Backend.", + "description": "id of the account.", + "name": "account_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_ids", + "type": "integer" }, { - "name": "metric_id", "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { + "description": "id of the user.", "name": "id", - "in": "path", - "description": "ID of the method.", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "user_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/services/{service_id}/proxy/oidc_configuration.xml": { - "get": { - "summary": "OIDC Configuration Show", + "/admin/api/accounts/{id}/credit_card.xml": { + "put": { + "operationId": "account_set_credit_card", + "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", + "tags": [ + "Accounts" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "service_id", "in": "path", - "description": "ID of the service.", + "description": "id of the account.", + "name": "id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "patch": { - "summary": "OIDC Configuration Update", - "parameters": [ + "x-data-threescale-name": "account_ids", + "type": "integer" + }, { - "name": "access_token", "in": "query", - "description": "A personal Access 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)", + "name": "credit_card_token", "required": true, - "schema": { - "type": "string" - } + "type": "string" }, { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "in": "query", + "description": "Authorize.net payment profile token. Unused for other payment gateways", + "name": "credit_card_authorize_net_payment_profile_token", + "required": false, + "type": "string" }, { - "name": "standard_flow_enabled", "in": "query", - "description": "Enable Authorization Code Flow (Standard Flow)", - "schema": { - "type": "boolean" - } + "description": "Year of expiration of credit card. 2digit number", + "name": "credit_card_expiration_year", + "required": true, + "type": "string" }, { - "name": "implicit_flow_enabled", "in": "query", - "description": "Enable Implicit Flow", - "schema": { - "type": "boolean" - } + "description": "Month of expiration of credit card. 2digit number", + "name": "credit_card_expiration_month", + "required": true, + "type": "string" }, { - "name": "service_accounts_enabled", "in": "query", - "description": "Enable Service Account Flow (Standard Flow)", - "schema": { - "type": "boolean" - } + "description": "Name of the person/company to bill", + "name": "billing_address_name", + "required": true, + "type": "string" }, { - "name": "direct_access_grants_enabled", "in": "query", - "description": "Enable Direct Access Grant Flow", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/users/{id}/activate.xml": { - "put": { - "summary": "User Activate (provider account)", - "parameters": [ + "description": "Address associated to the credit card", + "name": "billing_address_address", + "required": true, + "type": "string" + }, { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Billing address city", + "name": "billing_address_city", "required": true, - "schema": { - "type": "string" - } + "type": "string" }, { - "name": "id", - "in": "path", - "description": "ID of the user.", + "in": "query", + "description": "Billing address country", + "name": "billing_address_country", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "type": "string" + }, + { + "in": "query", + "description": "Billing address state", + "name": "billing_address_state", + "required": false, + "type": "string" + }, + { + "in": "query", + "description": "Billing address phone", + "name": "billing_address_phone", + "required": false, + "type": "string" + }, + { + "in": "query", + "description": "Billing address ZIP code", + "name": "billing_address_zip", + "required": false, + "type": "string" + }, + { + "in": "query", + "description": "4 last numbers of the credit card", + "name": "credit_card_partial_number", + "type": "string" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } - } - }, - "/admin/api/accounts/{account_id}/users/{id}/admin.xml": { - "put": { - "summary": "User change Role to Admin", + }, + "delete": { + "operationId": "account_delete_credit_card", + "summary": "Account Delete Credit Card", + "description": "Removes all credit card info of an account.", + "tags": [ + "Accounts" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "account_id", "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { + "description": "id of the account.", "name": "id", - "in": "path", - "description": "ID of the user.", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "account_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/account_plans.xml": { - "get": { - "summary": "Account Plan List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, + "/admin/api/accounts/{account_id}/messages.xml": { "post": { - "summary": "Account Plan Create", + "operationId": "account_message", + "summary": "Account Message", + "description": "Sends a message to the account.", + "tags": [ + "Accounts" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "name", - "in": "query", - "description": "Name of the account plan.", + "in": "path", + "description": "id of the account.", + "name": "account_id", "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "approval_required", - "in": "query", - "description": "Set the 'Accounts require approval?' to 'true' or 'false'", - "schema": { - "type": "boolean" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "schema": { - "type": "string" - } + "x-data-threescale-name": "account_ids", + "type": "integer" }, { - "name": "state_event", "in": "query", - "description": "State event of the account plan. It can be 'publish' or 'hide'", - "schema": { - "type": "string" - } + "description": "Text to send", + "name": "body", + "required": true, + "type": "string" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/backend_apis/{backend_api_id}/metrics.json": { + "/admin/api/services/{service_id}/metrics/{metric_id}/methods.xml": { "get": { - "summary": "Backend Metric List", + "operationId": "method_list", + "summary": "Method List", + "description": "List the methods of a metric. Methods are metrics that are children of a parent metric.", + "tags": [ + "Metric Methods" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "backend_api_id", "in": "path", - "description": "ID of the Backend.", + "description": "id of the service.", + "name": "service_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "page", - "in": "query", - "description": "Page in the paginated list. Defaults to 1.", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } + "x-data-threescale-name": "service_ids", + "type": "integer" }, { - "name": "per_page", - "in": "query", - "description": "Number of results per page. Default and max is 500.", - "schema": { - "type": "integer", - "format": "int32", - "default": 500 - } + "in": "path", + "description": "id of the metric.", + "name": "metric_id", + "required": true, + "x-data-threescale-name": "metric_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } }, "post": { - "summary": "Backend Metric Create", + "operationId": "method_create", + "summary": "Method Create", + "description": "Creates a method under a metric.", + "tags": [ + "Metric Methods" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "backend_api_id", "in": "path", - "description": "ID of the Backend.", + "description": "id of the service.", + "name": "service_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "service_ids", + "type": "integer" }, { - "name": "friendly_name", - "in": "query", - "description": "Descriptive Name of the metric.", + "in": "path", + "description": "id of the metric.", + "name": "metric_id", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "metric_ids", + "type": "integer" }, { - "name": "system_name", "in": "query", - "description": "System Name of the metric. If blank a system_name will be generated for you from the friendly_name parameter", - "schema": { - "type": "string" - } + "description": "Name of the method.", + "name": "friendly_name", + "required": true, + "type": "string" }, { - "name": "unit", "in": "query", - "description": "Measure unit of the metric.", - "required": true, - "schema": { - "type": "string" - } + "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", + "name": "system_name", + "required": false, + "type": "string" }, { - "name": "description", "in": "query", - "description": "Description of the metric.", - "schema": { - "type": "ref" - } + "description": "Measure unit of the method.", + "name": "unit", + "required": true, + "type": "string" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/services/{service_id}/service_plans/{id}/default.xml": { - "put": { - "summary": "Service Plan Set to Default", + "/admin/api/services/{service_id}/metrics/{metric_id}/methods/{id}.xml": { + "get": { + "operationId": "method_read", + "summary": "Method Read", + "description": "Returns the method of a metric.", + "tags": [ + "Metric Methods" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { + "in": "path", + "description": "id of the service.", "name": "service_id", + "required": true, + "x-data-threescale-name": "service_ids", + "type": "integer" + }, + { "in": "path", - "description": "ID of the service.", + "description": "id of the metric.", + "name": "metric_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "metric_ids", + "type": "integer" }, { - "name": "id", "in": "path", - "description": "ID of the service plan.", + "description": "id of the method.", + "name": "id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } - } - }, - "/admin/api/accounts/{account_id}/applications/{id}/customize_plan.xml": { + }, "put": { - "summary": "Application Create Plan Customization", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/metrics.xml": { - "get": { - "summary": "Service Metric List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Service Metric Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "friendly_name", - "in": "query", - "description": "Descriptive Name of the metric.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "system_name", - "in": "query", - "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", - "schema": { - "type": "string" - } - }, - { - "name": "name", - "in": "query", - "description": "DEPRECATED: Please use system_name parameter", - "schema": { - "type": "string" - } - }, - { - "name": "unit", - "in": "query", - "description": "Measure unit of the metric.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the metric.", - "schema": { - "type": "ref" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/features/{id}.xml": { - "get": { - "summary": "Service Feature Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the feature.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Service Feature Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the feature.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the feature.", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the feature.", - "schema": { - "type": "ref" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Service Feature Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the feature.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/application_plans.xml": { - "get": { - "summary": "Application Plan List (all services)", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/proxy.xml": { - "get": { - "summary": "Proxy Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "patch": { - "summary": "Proxy Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "endpoint", - "in": "query", - "description": "Public Base URL for production environment.", - "schema": { - "type": "string" - } - }, - { - "name": "api_backend", - "in": "query", - "description": "Private Base URL. Caution! Do not use it if the account has API as a Product enabled. It may cause API backend usages to be removed from the Product.", - "schema": { - "type": "string" - } - }, - { - "name": "credentials_location", - "in": "query", - "description": "Credentials Location. Either headers, query or authorization for the Basic Authorization.", - "schema": { - "type": "string" - } - }, - { - "name": "auth_app_key", - "in": "query", - "description": "Parameter/Header where App Key is expected.", - "schema": { - "type": "string" - } - }, - { - "name": "auth_app_id", - "in": "query", - "description": "Parameter/Header where App ID is expected.", - "schema": { - "type": "string" - } - }, - { - "name": "auth_user_key", - "in": "query", - "description": "Parameter/Header where User Key is expected.", - "schema": { - "type": "string" - } - }, - { - "name": "error_auth_failed", - "in": "query", - "description": "Error message on failed authentication.", - "schema": { - "type": "string" - } - }, - { - "name": "error_status_auth_failed", - "in": "query", - "description": "Status code on failed authentication.", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "error_headers_auth_failed", - "in": "query", - "description": "Content-Type header on failed authentication.", - "schema": { - "type": "string" - } - }, - { - "name": "error_auth_missing", - "in": "query", - "description": "Error message on missing authentication.", - "schema": { - "type": "string" - } - }, - { - "name": "error_status_auth_missing", - "in": "query", - "description": "Status code on missing authentication.", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "error_headers_auth_missing", - "in": "query", - "description": "Content-Type header on missing authentication.", - "schema": { - "type": "string" - } - }, - { - "name": "error_no_match", - "in": "query", - "description": "Error message when no mapping rule is matched.", - "schema": { - "type": "string" - } - }, - { - "name": "error_status_no_match", - "in": "query", - "description": "Status code when no mapping rule is matched.", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "error_headers_no_match", - "in": "query", - "description": "Content-Type header when no mapping rule is matched.", - "schema": { - "type": "string" - } - }, - { - "name": "error_status_limits_exceeded", - "in": "query", - "description": "Status code when usage limit exceeded.", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "error_headers_limits_exceeded", - "in": "query", - "description": "Content-Type header when usage limit exceeded.", - "schema": { - "type": "string" - } - }, - { - "name": "error_limits_exceeded", - "in": "query", - "description": "Error message on usage limit exceeded.", - "schema": { - "type": "string" - } - }, - { - "name": "oidc_issuer_endpoint", - "in": "query", - "description": "Location of your OpenID Provider.", - "schema": { - "type": "string" - } - }, - { - "name": "oidc_issuer_type", - "in": "query", - "description": "Type of your OpenID Provider.", - "schema": { - "type": "string" - } - }, - { - "name": "sandbox_endpoint", - "in": "query", - "description": "Sandbox endpoint.", - "schema": { - "type": "string" - } - }, - { - "name": "jwt_claim_with_client_id", - "in": "query", - "description": "JWT Claim With ClientId Location.", - "schema": { - "type": "string" - } - }, - { - "name": "jwt_claim_with_client_id_type", - "in": "query", - "description": "JWT Claim With ClientId Type. Either `plain` or `liquid`", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/applications/{application_id}/referrer_filters.xml": { - "get": { - "summary": "Application Referrer Filter List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "application_id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Application Referrer Filter Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "application_id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "referrer_filter", - "in": "query", - "description": "Referrer filter to be created.", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/users.xml": { - "get": { - "summary": "User List (provider account)", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "state", - "in": "query", - "description": "Filter users by State.", - "schema": { - "type": "string", - "enum": [ - "pending", - "suspended", - "active" - ] - } - }, - { - "name": "role", - "in": "query", - "description": "Filter users by Role.", - "schema": { - "type": "string", - "enum": [ - "member", - "admin" - ] - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "User Create (provider account)", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "username", - "in": "query", - "description": "Username of the user.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "email", - "in": "query", - "description": "Email of the user.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "password", - "in": "query", - "description": "Password of the user.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "additional_fields", - "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). Additional fields are the custom fields declared for your tenant, you can find them in 'Settings >> Personal Details' for the account and in 'Settings >> Account >> Users >> Personal Details' for users. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/users/{id}/member.xml": { - "put": { - "summary": "User Change Role to Member (provider account)", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/users/{id}/unsuspend.xml": { - "put": { - "summary": "User Unsuspend (provider account)", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/provider.xml": { - "get": { - "summary": "Provider Account Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Provider Account Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "from_email", - "in": "query", - "description": "New outgoing email.", - "schema": { - "type": "string" - } - }, - { - "name": "support_email", - "in": "query", - "description": "New support email.", - "schema": { - "type": "string" - } - }, - { - "name": "finance_support_email", - "in": "query", - "description": "New finance support email.", - "schema": { - "type": "string" - } - }, - { - "name": "site_access_code", - "in": "query", - "description": "Developer Portal Access Code.", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/find.xml": { - "get": { - "summary": "Account Find", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "username", - "in": "query", - "description": "Username of the account user.", - "schema": { - "type": "string" - } - }, - { - "name": "email", - "in": "query", - "description": "Email of the account user.", - "schema": { - "type": "string" - } - }, - { - "name": "user_id", - "in": "query", - "description": "ID of the account user.", - "schema": { - "type": "ref" - } - }, - { - "name": "buyer_provider_key", - "in": "query", - "description": "[Master API] Provider key of the account.", - "schema": { - "type": "string" - } - }, - { - "name": "buyer_service_token", - "in": "query", - "description": "[Master API] Service token of the account service.", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/service_plans/{id}.xml": { - "get": { - "summary": "Service Plan Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the service plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Service Plan Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the service plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the service plan.", - "schema": { - "type": "string" - } - }, - { - "name": "approval_required", - "in": "query", - "description": "Set the 'Service subscriptions require approval?' to 'true' or 'false'", - "schema": { - "type": "boolean" - } - }, - { - "name": "state_event", - "in": "query", - "description": "State event of the service plan. It can be 'publish' or 'hide'", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Service Plan Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the service plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/account/proxy_configs/{environment}.json": { - "get": { - "summary": "Proxy Configs List (Provider)", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "environment", - "in": "path", - "description": "Gateway environment. Must be 'sandbox' or 'production'", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "host", - "in": "query", - "description": "Filter by host", - "schema": { - "type": "string" - } - }, - { - "name": "version", - "in": "query", - "description": "Filter by version", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/service_plans/{service_plan_id}/features.xml": { - "get": { - "summary": "Service Plan Feature List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_plan_id", - "in": "path", - "description": "ID of the service plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Service Plan Feature Add", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_plan_id", - "in": "path", - "description": "ID of the service plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "feature_id", - "in": "query", - "description": "ID of the feature.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/policies.json": { - "get": { - "summary": "APIcast Policy Registry", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/applications/{application_id}/keys/{key}.xml": { - "delete": { - "summary": "Application Key Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "application_id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "key", - "in": "path", - "description": "app_key to be deleted.", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/authentication_providers.xml": { - "get": { - "summary": "Authentication Providers Developer Portal List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Authentication Provider Developer Portal Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "kind", - "in": "query", - "description": "The kind of authentication provider which can be either 'github', 'auth0', 'keycloak' or a custom one. Use 'keycloak' for Red Hat Single Sign-On.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "client_id", - "in": "query", - "description": "Client ID of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "client_secret", - "in": "query", - "description": "Client Secret of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "site", - "in": "query", - "description": "Site o Realm of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "token_url", - "in": "query", - "description": "Token URL of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "user_info_url", - "in": "query", - "description": "User info URL of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "authorize_url", - "in": "query", - "description": "Authorize URL of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "identifier_key", - "in": "query", - "description": "Identifier key. 'id' by default.", - "schema": { - "type": "string" - } - }, - { - "name": "username_key", - "in": "query", - "description": "Username key. 'login' by default.", - "schema": { - "type": "string" - } - }, - { - "name": "trust_email", - "in": "query", - "description": "Trust emails automatically. False by default", - "schema": { - "type": "boolean" - } - }, - { - "name": "published", - "in": "query", - "description": "Published authentication provider. False by default", - "schema": { - "type": "boolean" - } - }, - { - "name": "branding_state_event", - "in": "query", - "description": "Branding state event of the authentication provider. Only available for Github. It can be either 'brand_as_threescale' (the default one) or 'custom_brand'", - "schema": { - "type": "string" - } - }, - { - "name": "skip_ssl_certificate_verification", - "in": "query", - "description": "Skip SSL certificate verification. False by default.", - "schema": { - "type": "boolean" - } - }, - { - "name": "automatically_approve_accounts", - "in": "query", - "description": "Automatically approve accounts. False by default.", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/proxy/deploy.xml": { - "post": { - "summary": "Proxy Deploy", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/account/authentication_providers/{id}.xml": { - "get": { - "summary": "Authentication Provider Admin Portal Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the authentication provider.", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Authentication Provider Admin Portal Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the authentication provider.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "client_id", - "in": "query", - "description": "Client ID of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "client_secret", - "in": "query", - "description": "Client Secret of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "site", - "in": "query", - "description": "Site o Realm of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "skip_ssl_certificate_verification", - "in": "query", - "description": "Skip SSL certificate verification. False by default.", - "schema": { - "type": "boolean" - } - }, - { - "name": "published", - "in": "query", - "description": "Published authentication provider. False by default", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/applications/{id}/resume.xml": { - "put": { - "summary": "Application Resume", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/proxy/policies.json": { - "get": { - "summary": "Proxy Policies Chain Show", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Proxy Policies Chain Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "policies_config", - "in": "query", - "description": "Proxy policies chain", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{id}/make_pending.xml": { - "put": { - "summary": "Account Reset to Pending", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/metrics/{metric_id}/methods.xml": { - "get": { - "summary": "Service Method List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Service Method Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "friendly_name", - "in": "query", - "description": "Name of the method.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "system_name", - "in": "query", - "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", - "schema": { - "type": "string" - } - }, - { - "name": "unit", - "in": "query", - "description": "Measure unit of the method.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the method.", - "schema": { - "type": "ref" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/applications/{id}/decustomize_plan.xml": { - "put": { - "summary": "Application Delete Plan Customization", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/users/{id}.xml": { - "get": { - "summary": "User Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "User Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "username", - "in": "query", - "description": "Username of the user.", - "schema": { - "type": "string" - } - }, - { - "name": "email", - "in": "query", - "description": "Email of the user.", - "schema": { - "type": "string" - } - }, - { - "name": "password", - "in": "query", - "description": "Password of the user.", - "schema": { - "type": "string" - } - }, - { - "name": "additional_fields", - "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "User Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/users/{id}/activate.xml": { - "put": { - "summary": "User Activate", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/fields_definitions.json": { - "get": { - "summary": "Fields Definitions List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Fields Definition Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "target", - "in": "query", - "description": "Target entity of fields definition.", - "required": true, - "schema": { - "type": "string", - "default": "account", - "enum": [ - "Account", - "User", - "Cinstance" - ] - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the fields definition to be created.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "label", - "in": "query", - "description": "The field title your developers will see.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "required", - "in": "query", - "description": "If 'true' the field will be required for developers.", - "schema": { - "type": "boolean" - } - }, - { - "name": "hidden", - "in": "query", - "description": "If 'true' the developers won't be able to see this field.", - "schema": { - "type": "boolean" - } - }, - { - "name": "read_only", - "in": "query", - "description": "If 'true' the developers won't be able to change this field.", - "schema": { - "type": "boolean" - } - }, - { - "name": "choices", - "in": "query", - "description": "The list of predefined options for this field, URL-encoded array.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{id}/approve.xml": { - "put": { - "summary": "Account Approve", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/limits.xml": { - "get": { - "summary": "Limit List per Metric", - "operationId": "limits", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Limit Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "period", - "in": "query", - "description": "Period of the limit.", - "required": true, - "schema": { - "type": "string", - "default": "minute", - "enum": [ - "eternity", - "year", - "month", - "week", - "day", - "hour", - "minute" - ] - } - }, - { - "name": "value", - "in": "query", - "description": "Value of the limit.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/signup.xml": { - "post": { - "summary": "Signup Express (Account Create)", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "org_name", - "in": "query", - "description": "Organization Name of the developer account.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "username", - "in": "query", - "description": "Username of the admin user (on the new developer account).", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "email", - "in": "query", - "description": "Email of the admin user.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "password", - "in": "query", - "description": "Password of the admin user.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_plan_id", - "in": "query", - "description": "ID of the account plan (if not assigned default will be used instead).", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "service_plan_id", - "in": "query", - "description": "ID of the service plan (if not assigned default will be used instead).", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "application_plan_id", - "in": "query", - "description": "ID of the application plan (if not assigned default will be used instead).", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "additional_fields", - "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/account_plans/{account_plan_id}/features.xml": { - "get": { - "summary": "Account Plan Features List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_plan_id", - "in": "path", - "description": "ID of the account plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/applications/find.xml": { - "get": { - "summary": "Application Find", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "application_id", - "in": "query", - "description": "ID of the application.", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "user_key", - "in": "query", - "description": "user_key of the application (for user_key authentication mode).", - "schema": { - "type": "string" - } - }, - { - "name": "app_id", - "in": "query", - "description": "app_id of the application (for app_id/app_key and oauth authentication modes).", - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "query", - "description": "Filter by service", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/metrics/{id}.xml": { - "get": { - "summary": "Service Metric Read", - "operationId": "service_metric", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Service Metric Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "friendly_name", - "in": "query", - "description": "Name of the metric.", - "schema": { - "type": "string" - } - }, - { - "name": "unit", - "in": "query", - "description": "Measure unit of the metric.", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the metric.", - "schema": { - "type": "ref" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Service Metric Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/application_plans/{id}/default.xml": { - "put": { - "summary": "Application Plan Set to Default", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/service_plans/{service_plan_id}/features/{id}.xml": { - "delete": { - "summary": "Service Plan Features Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_plan_id", - "in": "path", - "description": "ID of the service plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the feature.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/application_plans/{id}.xml": { - "get": { - "summary": "Application Plan Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Application Plan Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the application plan.", - "schema": { - "type": "string" - } - }, - { - "name": "approval_required", - "in": "query", - "description": "Set the 'Applications require approval?' to 'true' or 'false'", - "schema": { - "type": "boolean" - } - }, - { - "name": "cost_per_month", - "in": "query", - "description": "Cost per month", - "schema": { - "type": "ref" - } - }, - { - "name": "setup_fee", - "in": "query", - "description": "Setup fee", - "schema": { - "type": "ref" - } - }, - { - "name": "trial_period_days", - "in": "query", - "description": "Trial period days", - "schema": { - "type": "ref" - } - }, - { - "name": "state_event", - "in": "query", - "description": "State event of the application plan. It can be 'publish' or 'hide'", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Application Plan Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/features/{id}.xml": { - "get": { - "summary": "Account Feature Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the feature.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Account Feature Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the feature.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the feature.", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Account Feature Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the feature.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/service_contracts/{id}.xml": { - "delete": { - "summary": "Service Subscription Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the service contract.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/account_plans/{id}.xml": { - "get": { - "summary": "Account Plan Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the account plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Account Plan Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the account plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the account plan.", - "schema": { - "type": "string" - } - }, - { - "name": "approval_required", - "in": "query", - "description": "Set the 'Accounts require approval?' to 'true' or 'false'", - "schema": { - "type": "boolean" - } - }, - { - "name": "state_event", - "in": "query", - "description": "State event of the account plan. It can be 'publish' or 'hide'", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Account Plan Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the account plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/application_plans.xml": { - "get": { - "summary": "Application Plan List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Application Plan Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the application plan.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "approval_required", - "in": "query", - "description": "Set the 'Applications require approval?' to 'true' or 'false'", - "schema": { - "type": "boolean" - } - }, - { - "name": "cost_per_month", - "in": "query", - "description": "Cost per month", - "schema": { - "type": "ref" - } - }, - { - "name": "setup_fee", - "in": "query", - "description": "Setup fee", - "schema": { - "type": "ref" - } - }, - { - "name": "trial_period_days", - "in": "query", - "description": "Trial period days", - "schema": { - "type": "ref" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "schema": { - "type": "string" - } - }, - { - "name": "state_event", - "in": "query", - "description": "State event of the application plan. It can be 'publish' or 'hide'", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/personal/access_tokens.json": { - "get": { - "summary": "Personal Access Token List", - "parameters": [ - { - "name": "name", - "in": "query", - "description": "Part of the name of the access token.", - "schema": { - "type": "string" - } - }, - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Personal Access Token Create", - "parameters": [ - { - "name": "name", - "in": "query", - "description": "Name of the access token.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "permission", - "in": "query", - "description": "Permission of the access token. It must be either 'ro' (read only) or 'rw' (read and write).", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "scopes", - "in": "query", - "description": "Scope of the access token. URL-encoded array containing one or more of the possible values. The possible values are, for a master user [\"account_management\", \"stats\", \"policy_registry\"], and for a tenant user [\"finance\", \"account_management\", \"stats\", \"policy_registry\"]", - "required": true, - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - }, - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/application_plans/{application_plan_id}/features.xml": { - "get": { - "summary": "Application Plan Feature List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Application Plan Feature Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "feature_id", - "in": "query", - "description": "ID of the feature.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/authentication_providers/{id}.xml": { - "get": { - "summary": "Authentication Provider Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the authentication provider.", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Authentication Provider Developer Portal Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the authentication provider.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "client_id", - "in": "query", - "description": "Client ID of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "client_secret", - "in": "query", - "description": "Client Secret of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "site", - "in": "query", - "description": "Site o Realm of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "published", - "in": "query", - "description": "Published authentication provider. False by default", - "schema": { - "type": "boolean" - } - }, - { - "name": "skip_ssl_certificate_verification", - "in": "query", - "description": "Skip SSL certificate verification. False by default.", - "schema": { - "type": "boolean" - } - }, - { - "name": "automatically_approve_accounts", - "in": "query", - "description": "Automatically approve accounts. False by default.", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/backend_apis/{backend_api_id}/metrics/{metric_id}/methods.json": { - "get": { - "summary": "Backend Method List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "page", - "in": "query", - "description": "Page in the paginated list. Defaults to 1.", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "per_page", - "in": "query", - "description": "Number of results per page. Default and max is 500.", - "schema": { - "type": "integer", - "format": "int32", - "default": 500 - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Backend Method Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "friendly_name", - "in": "query", - "description": "Descriptive Name of the metric.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the metric. If blank a system_name will be generated for you from the friendly_name parameter", - "schema": { - "type": "string" - } - }, - { - "name": "unit", - "in": "query", - "description": "Measure unit of the metric.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the metric.", - "schema": { - "type": "ref" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{id}/change_plan.xml": { - "put": { - "summary": "Account Change Plan", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "plan_id", - "in": "query", - "description": "ID of the target account plan", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/applications/{id}/change_plan.xml": { - "put": { - "summary": "Application Change Plan", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "plan_id", - "in": "query", - "description": "ID of the new application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/backend_usages.json": { - "get": { - "summary": "Backend Usage List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Backend Usage Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "backend_api_id", - "in": "query", - "description": "Backend to be added to the Service (Product).", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "path", - "in": "query", - "description": "Path of the Backend for this product.", - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/backend_apis/{backend_api_id}/mapping_rules.json": { - "get": { - "summary": "Backend Mapping Rules List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "page", - "in": "query", - "description": "Page in the paginated list. Defaults to 1.", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "per_page", - "in": "query", - "description": "Number of results per page. Default and max is 500.", - "schema": { - "type": "integer", - "format": "int32", - "default": 500 - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Backend Mapping Rule Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "http_method", - "in": "query", - "description": "HTTP method.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "pattern", - "in": "query", - "description": "Mapping Rule pattern.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "delta", - "in": "query", - "description": "Increase the metric by this delta.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "query", - "description": "Metric ID.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "position", - "in": "query", - "description": "Mapping Rule position", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "last", - "in": "query", - "description": "Last matched Mapping Rule to process", - "schema": { - "type": "ref" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/users/{id}/suspend.xml": { - "put": { - "summary": "User Suspend", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/applications/{id}/suspend.xml": { - "put": { - "summary": "Application Suspend", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/applications/{application_id}/keys.xml": { - "get": { - "summary": "Application Key List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "application_id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Application Key Create", - "operationId": "key_create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "application_id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "key", - "in": "query", - "description": "app_key to be added", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/active_docs/{id}.json": { - "get": { - "summary": "ActiveDocs Spec Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the ActiveDocs spec", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "ActiveDocs Spec Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the ActiveDocs spec", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the ActiveDocs spec", - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "query", - "description": "Service ID of the ActiveDocs spec", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "body", - "in": "query", - "description": "ActiveDocs specification in JSON format (based on Swagger)", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the ActiveDocs spec", - "schema": { - "type": "string" - } - }, - { - "name": "published", - "in": "query", - "description": "Set to 'true' to publish the spec on the developer portal, or 'false' to hide it", - "schema": { - "type": "boolean" - } - }, - { - "name": "skip_swagger_validations", - "in": "query", - "description": "Set to 'true' to skip validation of the Swagger specification, or 'false' to validate the spec", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "ActiveDocs Spec Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the ActiveDocs spec", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/plan.xml": { - "get": { - "summary": "Account Fetch Account Plan", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/applications.xml": { - "get": { - "summary": "Application List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Application Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "plan_id", - "in": "query", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the application to be created.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the application to be created.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "user_key", - "in": "query", - "description": "User Key (API Key) of the application to be created.", - "schema": { - "type": "string" - } - }, - { - "name": "application_id", - "in": "query", - "description": "App ID or Client ID (for OAuth and OpenID Connect authentication modes) of the application to be created.", - "schema": { - "type": "string" - } - }, - { - "name": "application_key", - "in": "query", - "description": "App Key(s) or Client Secret (for OAuth and OpenID Connect authentication modes) of the application to be created.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "redirect_url", - "in": "query", - "description": "Redirect URL for the OAuth request.", - "schema": { - "type": "string" - } - }, - { - "name": "first_traffic_at", - "in": "query", - "description": "Timestamp of the first call made by the application.", - "schema": { - "type": "string" - } - }, - { - "name": "first_daily_traffic_at", - "in": "query", - "description": "Timestamp of the first call on the last day when traffic was registered for the application ('Traffic On').", - "schema": { - "type": "string" - } - }, - { - "name": "additional_fields", - "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/applications.xml": { - "get": { - "summary": "Application List (all services)", - "operationId": "applications", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Page in the paginated list. Defaults to 1.", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "per_page", - "in": "query", - "description": "Number of results per page. Default and max is 500.", - "schema": { - "type": "integer", - "format": "int32", - "default": 500 - } - }, - { - "name": "active_since", - "in": "query", - "description": "Filter date", - "schema": { - "type": "string" - } - }, - { - "name": "inactive_since", - "in": "query", - "description": "Filter date", - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "query", - "description": "Filter by service", - "schema": { - "type": "string" - } - }, - { - "name": "plan_id", - "in": "query", - "description": "Filter by plan", - "schema": { - "type": "string" - } - }, - { - "name": "plan_type", - "in": "query", - "description": "Filter by plan type", - "schema": { - "type": "string", - "enum": [ - "free", - "paid" - ] - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/applications/{id}.xml": { - "get": { - "summary": "Application Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } + "operationId": "method_update", + "summary": "Method Update", + "description": "Updates a method of a metric.", + "tags": [ + "Metric Methods" ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Application Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, + "parameters": [ { - "name": "name", "in": "query", - "description": "Name of the application.", - "schema": { - "type": "string" - } + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", + "required": true, + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "description", - "in": "query", - "description": "Description of the application.", - "schema": { - "type": "string" - } + "in": "path", + "description": "id of the service.", + "name": "service_id", + "required": true, + "x-data-threescale-name": "service_ids", + "type": "integer" }, { - "name": "redirect_url", - "in": "query", - "description": "Redirect URL for the OAuth request.", - "schema": { - "type": "string" - } + "in": "path", + "description": "id of the metric.", + "name": "metric_id", + "required": true, + "x-data-threescale-name": "metric_ids", + "type": "integer" }, { - "name": "first_traffic_at", - "in": "query", - "description": "Timestamp of the first call made by the application.", - "schema": { - "type": "string" - } + "in": "path", + "description": "id of the method.", + "name": "id", + "required": true, + "type": "integer" }, { - "name": "first_daily_traffic_at", "in": "query", - "description": "Timestamp of the first call on the last day when traffic was registered for the application ('Traffic On').", - "schema": { - "type": "string" - } + "description": "Name of the method.", + "name": "friendly_name", + "required": false, + "type": "string" }, { - "name": "additional_fields", "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } + "description": "Measure unit of the method.", + "name": "unit", + "required": false, + "type": "string" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } }, "delete": { - "summary": "Application Delete", + "operationId": "method_delete", + "summary": "Method Delete", + "description": "Deletes the method of a metric.", + "tags": [ + "Metric Methods" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "account_id", "in": "path", - "description": "ID of the account.", + "description": "id of the service.", + "name": "service_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "service_ids", + "type": "integer" }, { - "name": "id", "in": "path", - "description": "ID of the application.", + "description": "id of the metric.", + "name": "metric_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "metric_ids", + "type": "integer" + }, + { + "in": "path", + "description": "id of the method.", + "name": "id", + "required": true, + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/pricing_rules.xml": { + "/admin/api/services/{service_id}/metrics.xml": { "get": { - "summary": "Pricing Rules List per Metric", - "operationId": "metric_pricing_rules", + "operationId": "metric_list", + "summary": "Metric List", + "description": "Returns the list of metrics of a service.", + "tags": [ + "Metrics" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "metric_id", "in": "path", - "description": "ID of the metric.", + "description": "id of the service.", + "name": "service_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "service_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } }, "post": { - "summary": "Pricing Rule Create", + "operationId": "metric_create", + "summary": "Metric Create", + "description": "Creates a metric on a service. All metrics are scoped by service.", + "tags": [ + "Metrics" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "application_plan_id", "in": "path", - "description": "ID of the application plan.", + "description": "id of the service.", + "name": "service_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "service_ids", + "type": "integer" }, { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", + "in": "query", + "description": "Descriptive Name of the metric.", + "name": "friendly_name", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "type": "string" }, { - "name": "min", "in": "query", - "description": "From (min) hit", - "schema": { - "type": "integer", - "format": "int32" - } + "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", + "name": "system_name", + "required": false, + "type": "string" }, { - "name": "max", "in": "query", - "description": "To (max) hit", - "schema": { - "type": "integer", - "format": "int32" - } + "description": "DEPRECATED: Please use system_name parameter", + "name": "name", + "required": false, + "type": "string" }, { - "name": "cost_per_unit", "in": "query", - "description": "Cost per unit", - "schema": { - "type": "ref" - } + "description": "Measure unit of the metric.", + "name": "unit", + "required": true, + "type": "string" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/services.xml": { + "/admin/api/services/{service_id}/metrics/{id}.xml": { "get": { - "summary": "Service List", + "operationId": "service_metric", + "summary": "Metric Read", + "description": "Returns the metric of a service.", + "tags": [ + "Metrics" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "page", - "in": "query", - "description": "Page in the paginated list. Defaults to 1.", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } + "in": "path", + "description": "id of the service.", + "name": "service_id", + "required": true, + "x-data-threescale-name": "service_ids", + "type": "integer" }, { - "name": "per_page", - "in": "query", - "description": "Number of results per page. Default and max is 500.", - "schema": { - "type": "integer", - "format": "int32", - "default": 500 - } + "in": "path", + "description": "id of the metric.", + "name": "id", + "required": true, + "x-data-threescale-name": "metric_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } }, - "post": { - "summary": "Service Create", + "put": { + "operationId": "metric_update", + "summary": "Metric Update", + "description": "Updates the metric of a service.", + "tags": [ + "Metrics" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "name", - "in": "query", - "description": "Name of the service to be created.", + "in": "path", + "description": "id of the service.", + "name": "service_id", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "service_ids", + "type": "integer" }, { - "name": "description", - "in": "query", - "description": "Description of the service to be created.", - "schema": { - "type": "string" - } + "in": "path", + "description": "id of the metric.", + "name": "id", + "required": true, + "x-data-threescale-name": "metric_ids", + "type": "integer" }, { - "name": "deployment_option", "in": "query", - "description": "Deployment option for the gateway: 'hosted' for APIcast hosted, 'self_managed' for APIcast Self-managed, 'service_mesh_istio' for Istio service mesh option", - "schema": { - "type": "string" - } + "description": "Name of the metric.", + "name": "friendly_name", + "required": false, + "type": "string" }, { - "name": "backend_version", "in": "query", - "description": "Authentication mode: '1' for API key, '2' for App Id / App Key, 'oidc' for OpenID Connect", - "schema": { - "type": "string" - } - }, + "description": "Measure unit of the metric.", + "name": "unit", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "No response was specified" + } + } + }, + "delete": { + "operationId": "metric_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.", + "tags": [ + "Metrics" + ], + "parameters": [ { - "name": "system_name", "in": "query", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "schema": { - "type": "string" - } + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", + "required": true, + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": " ", - "in": "query", - "description": "Extra parameters", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } + "in": "path", + "description": "id of the service.", + "name": "service_id", + "required": true, + "x-data-threescale-name": "service_ids", + "type": "integer" + }, + { + "in": "path", + "description": "id of the metric.", + "name": "id", + "required": true, + "x-data-threescale-name": "metric_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/services/{service_id}/proxy/mapping_rules.xml": { + "/admin/api/nginx.zip": { "get": { - "summary": "Proxy Mapping Rules List", + "operationId": "nginx_configuration_files", + "summary": "Nginx configuration files", + "description": "Returns the Nginx configuration files in a zip archive.", + "tags": [ + "nginx" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } - }, + "x-data-threescale-name": "api_keys", + "type": "string" + } + ], + "responses": { + "200": { + "description": "No response was specified" + } + } + } + }, + "/admin/api/provider.xml": { + "get": { + "operationId": "account_read", + "summary": "Account Read", + "description": "Returns your account.", + "tags": [ + "Accounts" + ], + "parameters": [ { - "name": "service_id", - "in": "path", - "description": "ID of the service.", + "in": "query", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "api_keys", + "type": "string" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } - }, - "post": { - "summary": "Proxy Mapping Rule Create", + } + }, + "/admin/api/services/{service_id}/features.xml": { + "get": { + "operationId": "service_feature_list", + "summary": "Service Feature List", + "description": "Returns the list of all features of a service.", + "tags": [ + "Service Features" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "service_id", "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "http_method", - "in": "query", - "description": "HTTP method.", + "description": "id of the service.", + "name": "service_id", "required": true, - "schema": { - "type": "string" - } - }, + "x-data-threescale-name": "service_ids", + "type": "integer" + } + ], + "responses": { + "200": { + "description": "No response was specified" + } + } + }, + "post": { + "operationId": "service_feature_create", + "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.", + "tags": [ + "Service Features" + ], + "parameters": [ { - "name": "pattern", "in": "query", - "description": "Mapping Rule pattern.", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "delta", - "in": "query", - "description": "Increase the metric by this delta.", + "in": "path", + "description": "id of the service.", + "name": "service_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "service_ids", + "type": "integer" }, { - "name": "metric_id", "in": "query", - "description": "Metric ID.", + "description": "Name of the feature.", + "name": "name", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "type": "string" }, { - "name": "position", "in": "query", - "description": "Mapping Rule position", - "schema": { - "type": "integer", - "format": "int32" - } + "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.", + "name": "system_name", + "type": "string" }, { - "name": "last", "in": "query", - "description": "Last matched Mapping Rule to process", - "schema": { - "type": "ref" + "description": "Type of plan that the feature will be available for.", + "name": "scope", + "required": false, + "type": "array", + "items": { + "type": "string", + "default": "ApplicationPlan" } } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/active_docs.json": { + "/admin/api/services/{service_id}/features/{id}.xml": { "get": { - "summary": "ActiveDocs Spec List", + "operationId": "service_feature_read", + "summary": "Service Feature Read", + "description": "Returns a feature of a service.", + "tags": [ + "Service Features" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" + }, + { + "in": "path", + "description": "id of the service.", + "name": "service_id", + "required": true, + "x-data-threescale-name": "service_ids", + "type": "integer" + }, + { + "in": "path", + "description": "id of the feature.", + "name": "id", + "required": true, + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } }, - "post": { - "summary": "ActiveDocs Spec Create", + "put": { + "operationId": "service_feature_update", + "summary": "Service Feature Update", + "description": "Updates a feature of a service.", + "tags": [ + "Service Features" + ], "parameters": [ { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the ActiveDocs spec", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "system_name", "in": "query", - "description": "System Name of the ActiveDocs spec. Only ASCII letters, numbers, dashes and underscores are allowed. If blank, 'system_name' will be generated from the 'name' parameter", - "schema": { - "type": "string" - } + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", + "required": true, + "x-data-threescale-name": "api_keys", + "type": "string" }, { + "in": "path", + "description": "id of the service.", "name": "service_id", - "in": "query", - "description": "Service ID of the ActiveDocs spec", - "schema": { - "type": "integer", - "format": "int32" - } + "required": true, + "x-data-threescale-name": "service_ids", + "type": "integer" }, { - "name": "body", - "in": "query", - "description": "ActiveDocs specification in JSON format (based on Swagger)", + "in": "path", + "description": "id of the feature.", + "name": "id", "required": true, - "schema": { - "type": "string" - } + "type": "integer" }, { - "name": "description", "in": "query", - "description": "Description of the ActiveDocs spec", - "schema": { - "type": "string" - } - }, + "description": "Name of the feature.", + "name": "name", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "No response was specified" + } + } + }, + "delete": { + "operationId": "service_feature_delete", + "summary": "Service Feature Delete", + "description": "Deletes a feature of a service.", + "tags": [ + "Service Features" + ], + "parameters": [ { - "name": "published", "in": "query", - "description": "Set to 'true' to publish the spec on the developer portal, or 'false' to hide it. The default value is 'false'", - "schema": { - "type": "boolean" - } + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", + "required": true, + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "skip_swagger_validations", - "in": "query", - "description": "Set to 'true' to skip validation of the Swagger specification, or 'false' to validate the spec. The default value is 'false'", - "schema": { - "type": "boolean" - } + "in": "path", + "description": "id of the service.", + "name": "service_id", + "required": true, + "x-data-threescale-name": "service_ids", + "type": "integer" + }, + { + "in": "path", + "description": "id of the feature.", + "name": "id", + "required": true, + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/backend_apis.json": { + "/admin/api/service_plans/{service_plan_id}/features.xml": { "get": { - "summary": "Backend List", + "operationId": "service_plan_feature_list", + "summary": "Service Plan Feature List", + "description": "Returns the list of features of a service plan.", + "tags": [ + "Service Plan Features" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Page in the paginated list. Defaults to 1.", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "per_page", - "in": "query", - "description": "Number of results per page. Default and max is 500.", - "schema": { - "type": "integer", - "format": "int32", - "default": 500 - } + "in": "path", + "description": "id of the service plan.", + "name": "service_plan_id", + "required": true, + "x-data-threescale-name": "service_plan_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } }, "post": { - "summary": "Backend Create", + "operationId": "service_plan_feature_add", + "summary": "Service Plan Feature Add", + "description": "Associates an existing feature to a service plan.", + "tags": [ + "Service Plan Features" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "name", - "in": "query", - "description": "Name of the Backend", + "in": "path", + "description": "id of the service plan.", + "name": "service_plan_id", "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "schema": { - "type": "string" - } + "x-data-threescale-name": "service_plan_ids", + "type": "integer" }, { - "name": "description", "in": "query", - "description": "Description of the Backend", - "schema": { - "type": "string" - } - }, + "description": "id of the feature.", + "name": "feature_id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "No response was specified" + } + } + } + }, + "/admin/api/service_plans.xml": { + "get": { + "operationId": "service_plan_list_all_services", + "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.", + "tags": [ + "Service Plans" + ], + "parameters": [ { - "name": "private_endpoint", "in": "query", - "description": "Private Base URL (your API)", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/features.xml": { + "/admin/api/services/{id}/service_plans.xml": { "get": { - "summary": "Account Features List", + "operationId": "service_plan_list", + "summary": "Service Plan List", + "description": "Returns a list of service plans for a service.", + "tags": [ + "Service Plans" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" + }, + { + "in": "path", + "description": "id of the service.", + "name": "id", + "required": true, + "x-data-threescale-name": "service_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } }, "post": { - "summary": "Account Feature Create", + "operationId": "service_plan_create", + "summary": "Service Plan Create", + "description": "Creates a new service plan in a service.", + "tags": [ + "Service Plans" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" + }, + { + "in": "path", + "description": "id of the service.", + "name": "id", + "required": true, + "x-data-threescale-name": "service_ids", + "type": "integer" }, { - "name": "name", "in": "query", - "description": "Name of the feature.", + "description": "Name of the service plan.", + "name": "name", "required": true, - "schema": { - "type": "string" - } + "type": "string" }, { - "name": "system_name", "in": "query", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "schema": { - "type": "string" - } + "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.", + "name": "system_name", + "type": "string" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/accounts/{id}.xml": { + "/admin/api/services/{service_id}/service_plans/{id}.xml": { "get": { - "summary": "Account Read", + "operationId": "service_plan_read", + "summary": "Service Plan Read", + "description": "Returns a service plan by id.", + "tags": [ + "Service Plans" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" + }, + { + "in": "path", + "description": "id of the service.", + "name": "service_id", + "required": true, + "x-data-threescale-name": "service_ids", + "type": "integer" }, { - "name": "id", "in": "path", - "description": "ID of the account.", + "description": "id of the service plan.", + "name": "id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "service_plan_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } }, "put": { - "summary": "Account Update", + "operationId": "service_plan_update", + "summary": "Service Plan Update", + "description": "Updates a service plan by id.", + "tags": [ + "Service Plans" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "id", "in": "path", - "description": "ID of the account.", + "description": "id of the service.", + "name": "service_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "org_name", - "in": "query", - "description": "Organization name of the account.", - "schema": { - "type": "string" - } - }, - { - "name": "monthly_billing_enabled", - "in": "query", - "description": "Updates monthly billing status.", - "schema": { - "type": "boolean" - } + "x-data-threescale-name": "service_ids", + "type": "integer" }, { - "name": "monthly_charging_enabled", - "in": "query", - "description": "Updates monthly charging status.", - "schema": { - "type": "boolean" - } + "in": "path", + "description": "id of the service plan.", + "name": "id", + "required": true, + "x-data-threescale-name": "service_plan_ids", + "type": "integer" }, { - "name": "additional_fields", "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } + "description": "Name of the service plan.", + "name": "name", + "required": false, + "type": "string" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } }, "delete": { - "summary": "Account Delete ", + "operationId": "service_plan_delete", + "summary": "Service Plan Delete", + "description": "Deletes a service plan by id.", + "tags": [ + "Service Plans" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "id", "in": "path", - "description": "ID of the account.", + "description": "id of the service.", + "name": "service_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "service_ids", + "type": "integer" + }, + { + "in": "path", + "description": "id of the service plan.", + "name": "id", + "required": true, + "x-data-threescale-name": "service_plan_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/pricing_rules/{id}.json": { - "delete": { - "summary": "Pricing Rule Delete", + "/admin/api/services/{service_id}/service_plans/{id}/default.xml": { + "put": { + "operationId": "service_plan_set_to_default", + "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.", + "tags": [ + "Service Plans" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "application_plan_id", "in": "path", - "description": "ID of the application plan.", + "description": "id of the service.", + "name": "service_id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "service_ids", + "type": "integer" }, { - "name": "metric_id", "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { + "description": "id of the service plan.", "name": "id", - "in": "path", - "description": "ID of the pricing rule.", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "service_plan_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/application_plans/{application_plan_id}/pricing_rules.xml": { + "/admin/api/services.xml": { "get": { - "summary": "Pricing Rules List per Application Plan", - "operationId": "pricing_rules", + "operationId": "service_list", + "summary": "Service List", + "description": "Returns the list of all services.", + "tags": [ + "Services" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" + } + ], + "responses": { + "200": { + "description": "No response was specified" + } + } + }, + "post": { + "operationId": "service_create", + "summary": "Service Create", + "description": "Creates a new service.", + "tags": [ + "Services" + ], + "parameters": [ + { + "in": "query", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", + "required": true, + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", + "in": "query", + "description": "Name of the service to be created.", + "name": "name", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "type": "string" + }, + { + "in": "query", + "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.", + "name": "system_name", + "type": "string" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/services/{service_id}/proxy/mapping_rules/{id}.xml": { + "/admin/api/services/{id}.xml": { "get": { - "summary": "Proxy Mapping Rules Show", + "operationId": "service_read", + "summary": "Service Read", + "description": "Returns the service by id.", + "tags": [ + "Services" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "service_id", "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { + "description": "id of the service.", "name": "id", - "in": "path", - "description": "Mapping Rule ID.", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "service_ids", + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } }, - "delete": { - "summary": "Proxy Mapping Rule Delete", + "put": { + "operationId": "service_update", + "summary": "Service Update", + "description": "Update the service.", + "tags": [ + "Services" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "service_id", "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { + "description": "id of the service.", "name": "id", - "in": "path", - "description": "Mapping Rule ID.", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "x-data-threescale-name": "service_ids", + "type": "integer" + }, + { + "in": "query", + "description": "New name for the service.", + "name": "name", + "required": false, + "type": "string" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } - }, - "patch": { - "summary": "Proxy Mapping Rule Update", + } + }, + "/admin/api/signup.xml": { + "post": { + "operationId": "signup_express", + "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.", + "tags": [ + "Signup" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "service_id", - "in": "path", - "description": "ID of the service.", + "in": "query", + "description": "Organization Name of the buyer account.", + "name": "org_name", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "type": "string" }, { - "name": "id", - "in": "path", - "description": "Mapping Rule ID.", + "in": "query", + "description": "Username of the admin user (on the new buyer account).", + "name": "username", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "type": "string" }, { - "name": "http_method", "in": "query", - "description": "HTTP method.", - "schema": { - "type": "string" - } + "description": "Email of the admin user.", + "name": "email", + "required": true, + "type": "string" }, { - "name": "pattern", "in": "query", - "description": "Mapping Rule pattern.", - "schema": { - "type": "string" - } + "description": "Password of the admin user.", + "name": "password", + "required": true, + "type": "string" }, { - "name": "delta", "in": "query", - "description": "Increase the metric by this delta.", - "schema": { - "type": "integer", - "format": "int32" - } + "description": "id of the account plan (if not assigned default will be used instead).", + "name": "account_plan_id", + "required": false, + "x-data-threescale-name": "account_plan_ids", + "type": "integer" }, { - "name": "metric_id", "in": "query", - "description": "Metric ID.", - "schema": { - "type": "integer", - "format": "int32" - } + "description": "id of the service plan (if not assigned default will be used instead).", + "name": "service_plan_id", + "required": false, + "x-data-threescale-name": "service_plan_ids", + "type": "integer" }, { - "name": "position", "in": "query", - "description": "Mapping Rule position", - "schema": { - "type": "integer", - "format": "int32" - } + "description": "id of the application plan (if not assigned default will be used instead).", + "name": "application_plan_id", + "required": false, + "x-data-threescale-name": "application_plan_ids", + "type": "integer" }, { - "name": "last", "in": "query", - "description": "Last matched Mapping Rule to process", - "schema": { - "type": "ref" + "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.", + "name": "additional_fields", + "type": "array", + "items": { + "type": "string" } } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/service_plans.xml": { + "/admin/api/users.xml": { "get": { - "summary": "Service Plan List (all services)", + "operationId": "user_list_provider_account", + "summary": "User List (provider account)", + "description": "Lists the users of the provider account. You can apply filters by state and/or role.", + "tags": [ + "User Provider Accounts" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" + }, + { + "in": "query", + "description": "Filter users by State.", + "name": "state", + "required": false, + "type": "string" + }, + { + "in": "query", + "description": "Filter users by Role.", + "name": "role", + "required": false, + "type": "string" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } - } - }, - "/admin/api/services/{service_id}/proxy/configs/{environment}/{version}/promote.json": { + }, "post": { - "summary": "Proxy Config Promote", + "operationId": "user_create_provider_account", + "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.", + "tags": [ + "User Provider Accounts" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "service_id", - "in": "path", - "description": "ID of the service.", + "in": "query", + "description": "Username of the user.", + "name": "username", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "type": "string" }, { - "name": "environment", - "in": "path", - "description": "Gateway environment. Must be 'sandbox' or 'production'", + "in": "query", + "description": "Email of the user.", + "name": "email", "required": true, - "schema": { - "type": "string" - } + "type": "string" }, { - "name": "version", - "in": "path", - "description": "Version of the Proxy config.", + "in": "query", + "description": "Password of the user.", + "name": "password", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "type": "string" }, { - "name": "to", "in": "query", - "description": "the name of the destination environment", - "required": true, - "schema": { + "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.", + "name": "additional_fields", + "type": "array", + "items": { "type": "string" } } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } }, - "/admin/api/services/{id}/service_plans.xml": { + "/admin/api/users/{id}.xml": { "get": { - "summary": "Service Plan List", + "operationId": "user_read_provider_account", + "summary": "User Read (provider account)", + "description": "Gets the user of the provider account by id", + "tags": [ + "User Provider Accounts" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "id", "in": "path", - "description": "ID of the service.", + "description": "id of the user.", + "name": "id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } }, - "post": { - "summary": "Service Plan Create", + "put": { + "operationId": "user_update_provider_account", + "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.", + "tags": [ + "User Provider Accounts" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "id", "in": "path", - "description": "ID of the service.", + "description": "id of the user.", + "name": "id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "type": "integer" }, { - "name": "name", "in": "query", - "description": "Name of the service plan.", - "required": true, - "schema": { - "type": "string" - } + "description": "Username of the user.", + "name": "username", + "required": false, + "type": "string" }, { - "name": "approval_required", "in": "query", - "description": "Set the 'Service subscriptions require approval?' to 'true' or 'false'", - "schema": { - "type": "boolean" - } + "description": "Email of the user.", + "name": "email", + "required": false, + "type": "string" }, { - "name": "system_name", "in": "query", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "schema": { - "type": "string" - } + "description": "Password of the user.", + "name": "password", + "required": false, + "type": "string" }, { - "name": "state_event", "in": "query", - "description": "State event of the service plan. It can be 'publish' or 'hide'", - "schema": { + "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.", + "name": "additional_fields", + "type": "array", + "items": { "type": "string" } } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } - } - }, - "/admin/api/account/authentication_providers.xml": { - "get": { - "summary": "Authentication Providers Admin Portal List", + }, + "delete": { + "operationId": "user_delete_provider_account", + "summary": "User Delete (provider account)", + "description": "Deletes the user of the provider account by id", + "tags": [ + "User Provider Accounts" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" + }, + { + "in": "path", + "description": "id of the user.", + "name": "id", + "required": true, + "type": "integer" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } - }, - "post": { - "summary": "Authentication Provider Admin Portal Create", + } + }, + "/admin/api/users/{id}/member.xml": { + "put": { + "operationId": "user_change_role_to_member_provider_account", + "summary": "User change Role to Member (provider account)", + "description": "Changes the role of the user of the provider account to member", + "tags": [ + "User Provider Accounts" + ], "parameters": [ { - "name": "access_token", "in": "query", - "description": "A personal Access Token", + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", "required": true, - "schema": { - "type": "string" - } + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "kind", - "in": "query", - "description": "The kind of authentication provider which can be either 'auth0' or 'keycloak'. Use 'keycloak' for Red Hat Single Sign-On.", + "in": "path", + "description": "id of the user.", + "name": "id", "required": true, - "schema": { - "type": "string" - } - }, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "No response was specified" + } + } + } + }, + "/admin/api/users/{id}/admin.xml": { + "put": { + "operationId": "user_change_role_to_admin_provider_account", + "summary": "User change Role to Admin (provider account)", + "description": "Changes the role of the provider account to admin (full rights and privileges)", + "tags": [ + "User Provider Accounts" + ], + "parameters": [ { - "name": "name", "in": "query", - "description": "Name of the authentication provider.", - "schema": { - "type": "string" - } + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", + "required": true, + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "system_name", + "in": "path", + "description": "id of the user.", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "No response was specified" + } + } + } + }, + "/admin/api/users/{id}/suspend.xml": { + "put": { + "operationId": "user_suspend_provider_account", + "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.", + "tags": [ + "User Provider Accounts" + ], + "parameters": [ + { "in": "query", - "description": "System Name of the authentication provider.", - "schema": { - "type": "string" - } + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", + "required": true, + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "client_id", + "in": "path", + "description": "id of the user.", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "No response was specified" + } + } + } + }, + "/admin/api/users/{id}/unsuspend.xml": { + "put": { + "operationId": "user_unsuspend_provider_account", + "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.", + "tags": [ + "User Provider Accounts" + ], + "parameters": [ + { "in": "query", - "description": "Client ID of the authentication provider.", - "schema": { - "type": "string" - } + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", + "required": true, + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "client_secret", + "in": "path", + "description": "id of the user.", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "No response was specified" + } + } + } + }, + "/admin/api/users/{id}/activate.xml": { + "put": { + "operationId": "user_activate_provider_account", + "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.", + "tags": [ + "User Provider Accounts" + ], + "parameters": [ + { "in": "query", - "description": "Client Secret of the authentication provider.", - "schema": { - "type": "string" - } + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", + "required": true, + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "site", + "in": "path", + "description": "id of the user.", + "name": "id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "No response was specified" + } + } + } + }, + "/admin/api/webhooks/failures.xml": { + "get": { + "operationId": "webhooks_list_failed_deliveries", + "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.", + "tags": [ + "Webhooks" + ], + "parameters": [ + { "in": "query", - "description": "Site o Realm of the authentication provider.", - "schema": { - "type": "string" - } - }, + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", + "required": true, + "x-data-threescale-name": "api_keys", + "type": "string" + } + ], + "responses": { + "200": { + "description": "No response was specified" + } + } + }, + "delete": { + "operationId": "webhooks_delete_failed_deliveries", + "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.", + "tags": [ + "Webhooks" + ], + "parameters": [ { - "name": "skip_ssl_certificate_verification", "in": "query", - "description": "Skip SSL certificate verification. False by default.", - "schema": { - "type": "boolean" - } + "description": "Your api key with 3scale (also known as provider key).", + "name": "provider_key", + "required": true, + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "published", "in": "query", - "description": "Published authentication provider. False by default", - "schema": { - "type": "boolean" - } + "description": "Only failed webhook deliveries whose time is less or equal than the passed time are destroyed (if used).", + "name": "time", + "required": false, + "type": "string", + "format": "date-time" } ], "responses": { - "default": { - "description": "success", - "content": {} + "200": { + "description": "No response was specified" } } } } - }, - "components": {} + } } \ No newline at end of file diff --git a/doc/active_docs/analytics-s20.json b/doc/active_docs/analytics-s20.json index 2f1a07ea81..24a0e58b34 100644 --- a/doc/active_docs/analytics-s20.json +++ b/doc/active_docs/analytics-s20.json @@ -1,294 +1,257 @@ + { - "openapi": "3.0.1", + "host": "example.com", + "basePath": "/", + "schemes": [ + "https" + ], + "swagger": "2.0", "info": { "title": "Analytics API", "version": "1.0" }, - "servers": [ - { - "url": "http://localhost:3000" - } - ], "paths": { "/stats/applications/{application_id}/usage": { "get": { - "tags": [ - "Application Stats" + "produces": [ + "application/json", + "application/xml" ], + "operationId": "application_usage_by_metric", "summary": "Application Usage by Metric", "description": "Returns the usage data for a given metric (or method) of an application.", - "operationId": "application_usage_by_metric", + "tags": [ + "Application Stats" + ], "parameters": [ { - "name": "provider_key", "in": "query", "description": "Your api key with 3scale", + "name": "provider_key", "required": true, - "schema": { - "type": "string", - "x-data-threescale-name": "api_keys" - }, - "x-data-threescale-name": "api_keys" + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "application_id", "in": "path", "description": "id of the application.", + "name": "application_id", "required": true, - "schema": { - "type": "integer", - "x-data-threescale-name": "application_ids" - }, - "x-data-threescale-name": "application_ids" + "x-data-threescale-name": "application_ids", + "type": "integer" }, { - "name": "metric_name", "in": "query", "description": "System name of metric for which to get data.", + "name": "metric_name", "required": true, - "schema": { - "type": "string", - "default": "hits", - "x-data-threescale-name": "metric_names" - }, - "x-data-threescale-name": "metric_names" + "x-data-threescale-name": "metric_names", + "type": "string", + "default": "hits" }, { - "name": "since", "in": "query", "description": "Time range start. Format YYYY-MM-DD HH:MM:SS, examples: '2012-02-22', '2012-02-22 23:49:00'", + "name": "since", "required": true, - "schema": { - "type": "string" - } + "type": "string" }, { - "name": "period", "in": "query", "description": "Period, combined with since give the stats for the time range [since .. since + period]. It is required if until is not passed.", - "schema": { - "type": "string" - } + "name": "period", + "required": false, + "type": "string" }, { - "name": "until", "in": "query", "description": "Time range end. Format YYYY-MM-DD HH:MM:SS", - "schema": { - "type": "string" - } + "name": "until", + "required": false, + "type": "string" }, { - "name": "granularity", "in": "query", "description": "Granularity of the results. Each period has an associated granularity.", + "name": "granularity", "required": true, - "schema": { - "type": "string", - "default": "month" - } + "type": "string", + "default": "month" }, { - "name": "timezone", "in": "query", "description": "Timezone to do the calculations in.", - "schema": { - "type": "string", - "default": "UTC" - } + "name": "timezone", + "required": false, + "type": "string", + "default": "UTC" }, { - "name": "skip_change", "in": "query", "description": "Skip period over period calculations (defaults to true).", - "schema": { - "type": "boolean", - "default": true - } + "name": "skip_change", + "required": false, + "type": "boolean", + "default": true } ], "responses": { "200": { - "description": "No response was specified", - "content": {} + "description": "No response was specified" } } } }, "/stats/services/{service_id}/usage": { "get": { - "tags": [ - "Service Stats" + "produces": [ + "application/json", + "application/xml" ], + "operationId": "application_usage_by_metric", "summary": "Service Usage by Metric", "description": "Returns the usage data of a given metric (or method) of a service.", - "operationId": "application_usage_by_metric", + "tags": [ + "Service Stats" + ], "parameters": [ { - "name": "provider_key", "in": "query", "description": "Your api key with 3scale", + "name": "provider_key", "required": true, - "schema": { - "type": "string", - "x-data-threescale-name": "api_keys" - }, - "x-data-threescale-name": "api_keys" + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "service_id", "in": "path", "description": "id of the service.", + "name": "service_id", "required": true, - "schema": { - "type": "integer", - "x-data-threescale-name": "service_ids" - }, - "x-data-threescale-name": "service_ids" + "x-data-threescale-name": "service_ids", + "type": "integer" }, { - "name": "metric_name", "in": "query", "description": "System name of metric for which to get data.", + "name": "metric_name", "required": true, - "schema": { - "type": "string", - "default": "hits", - "x-data-threescale-name": "metric_names" - }, - "x-data-threescale-name": "metric_names" + "x-data-threescale-name": "metric_names", + "type": "string", + "default": "hits" }, { - "name": "since", "in": "query", "description": "Time range start. Format YYYY-MM-DD HH:MM:SS, examples: '2012-02-22', '2012-02-22 23:49:00'", + "name": "since", "required": true, - "schema": { - "type": "string" - } + "type": "string" }, { - "name": "period", "in": "query", "description": "Period, combined with since give the stats for the time range [since .. since + period]. It is required if until is not passed.", - "schema": { - "type": "string" - } + "name": "period", + "required": false, + "type": "string" }, { - "name": "until", "in": "query", "description": "Time range end. Format YYYY-MM-DD HH:MM:SS", - "schema": { - "type": "string" - } + "name": "until", + "required": false, + "type": "string" }, { - "name": "granularity", "in": "query", "description": "Granularity of the results. Each period has an associated granularity.", + "name": "granularity", "required": true, - "schema": { - "type": "string", - "default": "month" - } + "type": "string", + "default": "month" }, { - "name": "timezone", "in": "query", "description": "Timezone to do the calculations in.", - "schema": { - "type": "string", - "default": "UTC" - } + "name": "timezone", + "required": false, + "type": "string", + "default": "UTC" }, { - "name": "skip_change", "in": "query", "description": "Skip period over period calculations (defaults to true).", - "schema": { - "type": "boolean", - "default": true - } + "name": "skip_change", + "required": false, + "type": "boolean", + "default": true } ], "responses": { "200": { - "description": "No response was specified", - "content": {} + "description": "No response was specified" } } } }, "/stats/services/{service_id}/top_applications": { "get": { - "tags": [ - "Service Stats" + "produces": [ + "application/json", + "application/xml" ], + "operationId": "service_top_applications", "summary": "Service Top Applications", "description": "Returns usage and application data for the top 10 most active applications of a service.", - "operationId": "service_top_applications", + "tags": [ + "Service Stats" + ], "parameters": [ { - "name": "provider_key", "in": "query", "description": "Your api key with 3scale", + "name": "provider_key", "required": true, - "schema": { - "type": "string", - "x-data-threescale-name": "api_keys" - }, - "x-data-threescale-name": "api_keys" + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "service_id", "in": "path", "description": "id of the service.", + "name": "service_id", "required": true, - "schema": { - "type": "integer", - "x-data-threescale-name": "service_ids" - }, - "x-data-threescale-name": "service_ids" + "x-data-threescale-name": "service_ids", + "type": "integer" }, { - "name": "since", "in": "query", "description": "Time range start. Format YYYY-MM-DD HH:MM:SS, examples: '2012-02-22', '2012-02-22 23:49:00'", + "name": "since", "required": true, - "schema": { - "type": "string" - } + "type": "string" }, { - "name": "period", "in": "query", "description": "Period, combined with since give the stats for the time range [since .. since + period]. It is required if until is not passed.", - "schema": { - "type": "string" - } + "name": "period", + "required": false, + "type": "string" }, { - "name": "metric_name", "in": "query", "description": "System name of metric for which to get data.", + "name": "metric_name", "required": true, - "schema": { - "type": "string", - "default": "hits", - "x-data-threescale-name": "metric_names" - }, - "x-data-threescale-name": "metric_names" + "x-data-threescale-name": "metric_names", + "type": "string", + "default": "hits" } ], "responses": { "200": { - "description": "No response was specified", - "content": {} + "description": "No response was specified" } } } } - }, - "components": {} + } } \ No newline at end of file diff --git a/doc/active_docs/finance-s20.json b/doc/active_docs/finance-s20.json index f2eb8bc528..7ca6eca678 100644 --- a/doc/active_docs/finance-s20.json +++ b/doc/active_docs/finance-s20.json @@ -1,373 +1,312 @@ + { - "openapi": "3.0.1", + "host": "example.com", + "basePath": "/", + "schemes": [ + "https" + ], + "swagger": "2.0", "info": { "title": "Billing API", "version": "1.0" }, - "servers": [ - { - "url": "https://example.com/" - } - ], "paths": { "/api/accounts/{account_id}/invoices.xml": { "get": { + "operationId": "invoice_list_by_account", + "summary": "Invoice List by Account", + "description": "Returns the list of all invoices by account. Note that results can be paginated. You can apply filters by month and by state of the invoices.", "tags": [ "Finances" ], - "summary": "Invoice List by Account", - "description": "Returns the list of all invoices by account. Note that results can be paginated. You can apply filters by month and by state of the invoices.", - "operationId": "invoice_list_by_account", "parameters": [ { - "name": "provider_key", "in": "query", "description": "Your api key with 3scale", + "name": "provider_key", "required": true, - "schema": { - "type": "string", - "x-data-threescale-name": "api_keys" - }, - "x-data-threescale-name": "api_keys" + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "account_id", "in": "path", "description": "id of the account.", + "name": "account_id", "required": true, - "schema": { - "type": "integer", - "format": "int32", - "x-data-threescale-name": "account_ids" - }, - "x-data-threescale-name": "account_ids" + "x-data-threescale-name": "account_ids", + "type": "integer", + "format": "int32" }, { - "name": "state", "in": "query", "description": "Filter the invoice by state. 'open': line items can be added (only via web interface). 'pending': the invoice has been issued, no items can be added, the PDF has been generated and the invoice is waiting to be charged for. 'paid': sucessfully paid. 'unpaid': charging failed at least once. 'cancelled': the invoice was explicitely cancelled and is out of normal life-cycle.", - "schema": { - "type": "string" - } + "name": "state", + "required": false, + "type": "string" }, { - "name": "month", "in": "query", "description": "Filter the invoice by month. Format YYYY-MM, e.g. '2012-03' for march 2012", - "schema": { - "type": "string" - } + "name": "month", + "type": "string" }, { - "name": "page", "in": "query", "description": "Page in the paginated list. Defaults to 1.", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } + "name": "page", + "type": "integer", + "format": "int32", + "default": 1 }, { - "name": "per_page", "in": "query", "description": "Number of results per page. Default and max is 20.", - "schema": { - "type": "integer", - "format": "int32", - "default": 20 - } + "name": "per_page", + "type": "integer", + "format": "int32", + "default": 20 } ], "responses": { "200": { - "description": "No response was specified", - "content": {} + "description": "No response was specified" } } } }, "/api/accounts/{account_id}/invoices/{id}.xml": { "get": { + "operationId": "invoice_by_account", + "summary": "Invoice by Account", + "description": "Returns an invoice by id.", "tags": [ "Finances" ], - "summary": "Invoice by Account", - "description": "Returns an invoice by id.", - "operationId": "invoice_by_account", "parameters": [ { - "name": "provider_key", "in": "query", "description": "Your api key with 3scale", + "name": "provider_key", "required": true, - "schema": { - "type": "string", - "x-data-threescale-name": "api_keys" - }, - "x-data-threescale-name": "api_keys" + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "account_id", "in": "path", "description": "id of the account.", + "name": "account_id", "required": true, - "schema": { - "type": "integer", - "format": "int32", - "x-data-threescale-name": "account_ids" - }, - "x-data-threescale-name": "account_ids" + "x-data-threescale-name": "account_ids", + "type": "integer", + "format": "int32" }, { - "name": "id", "in": "path", "description": "id of the invoice.", + "name": "id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "type": "integer", + "format": "int32" } ], "responses": { "200": { - "description": "No response was specified", - "content": {} + "description": "No response was specified" } } } }, "/api/invoices.xml": { "get": { + "operationId": "invoice_list", + "summary": "Invoice List", + "description": "Returns the list of all invoices. Note that results can be paginated. You can apply filters by month and by state of the invoices.", "tags": [ "Finances" ], - "summary": "Invoice List", - "description": "Returns the list of all invoices. Note that results can be paginated. You can apply filters by month and by state of the invoices.", - "operationId": "invoice_list", "parameters": [ { - "name": "provider_key", "in": "query", "description": "Your api key with 3scale", + "name": "provider_key", "required": true, - "schema": { - "type": "string", - "x-data-threescale-name": "api_keys" - }, - "x-data-threescale-name": "api_keys" + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "state", "in": "query", "description": "Filter the invoice by state. 'open': line items can be added (only via web interface). 'pending': the invoice has been issued, no items can be added, the PDF has been generated and the invoice is waiting to be charged for. 'paid': sucessfully paid. 'unpaid': charging failed at least once. 'cancelled': the invoice was explicitely cancelled and is out of normal life-cycle.", - "schema": { - "type": "string" - } + "name": "state", + "required": false, + "type": "string" }, { - "name": "month", "in": "query", "description": "Filter the invoice by month. Format YYYY-MM, e.g. '2012-03' for march 2012", - "schema": { - "type": "string" - } + "name": "month", + "type": "string" }, { - "name": "page", "in": "query", "description": "Page in the paginated list. Defaults to 1.", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } + "name": "page", + "type": "integer", + "format": "int32", + "default": 1 }, { - "name": "per_page", "in": "query", "description": "Number of results per page. Default and max is 20.", - "schema": { - "type": "integer", - "format": "int32", - "default": 20 - } + "name": "per_page", + "type": "integer", + "format": "int32", + "default": 20 } ], "responses": { "200": { - "description": "No response was specified", - "content": {} + "description": "No response was specified" } } } }, "/api/invoices/{id}.xml": { "get": { + "operationId": "invoice_show", + "summary": "Invoice", + "description": "Returns an invoice by id.", "tags": [ "Finances" ], - "summary": "Invoice", - "description": "Returns an invoice by id.", - "operationId": "invoice_show", "parameters": [ { - "name": "provider_key", "in": "query", "description": "Your api key with 3scale", + "name": "provider_key", "required": true, - "schema": { - "type": "string", - "x-data-threescale-name": "api_keys" - }, - "x-data-threescale-name": "api_keys" + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "id", "in": "path", "description": "id of the invoice.", + "name": "id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "type": "integer", + "format": "int32" } ], "responses": { "200": { - "description": "No response was specified", - "content": {} + "description": "No response was specified" } } } }, "/api/invoices/{id}/state.xml": { "put": { + "operationId": "invoice_state", + "summary": "Invoice", + "description": "Modifies the state of the invoice.", "tags": [ "Finances" ], - "summary": "Invoice", - "description": "Modifies the state of the invoice.", - "operationId": "invoice_state", "parameters": [ { - "name": "provider_key", "in": "query", "description": "Your api key with 3scale", + "name": "provider_key", "required": true, - "schema": { - "type": "string", - "x-data-threescale-name": "api_keys" - }, - "x-data-threescale-name": "api_keys" + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "id", "in": "path", "description": "id of the invoice.", + "name": "id", "required": true, - "schema": { - "type": "integer", - "format": "int32" - } + "type": "integer", + "format": "int32" }, { - "name": "state", "in": "query", "description": "State of the invoice to set. Only 'cancel' value is allowed", + "name": "state", "required": true, - "schema": { - "type": "string", - "x-data-threescale-name": "state" - }, - "x-data-threescale-name": "state" + "x-data-threescale-name": "state", + "type": "string" } ], "responses": { "200": { - "description": "No response was specified", - "content": {} + "description": "No response was specified" } } } }, "/api/invoices/{invoice_id}/line_items.xml": { "get": { + "operationId": "invoice_line_items_list", + "summary": "Invoice Line Items List", + "description": "Returns the list of all line items of an invoice.", "tags": [ "Finances" ], - "summary": "Invoice Line Items List", - "description": "Returns the list of all line items of an invoice.", - "operationId": "invoice_line_items_list", "parameters": [ { - "name": "provider_key", "in": "query", "description": "Your api key with 3scale", + "name": "provider_key", "required": true, - "schema": { - "type": "string", - "x-data-threescale-name": "api_keys" - }, - "x-data-threescale-name": "api_keys" + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "invoice_id", "in": "path", "description": "id of the invoice.", + "name": "invoice_id", "required": true, - "schema": { - "type": "integer" - } + "type": "integer" } ], "responses": { "200": { - "description": "No response was specified", - "content": {} + "description": "No response was specified" } } } }, "/api/invoices/{invoice_id}/payment_transactions.xml": { "get": { + "operationId": "invoice_payment_transactions_list", + "summary": "Invoice Payment Transactions List", + "description": "Returns the list of all payment transactions of an invoice.", "tags": [ "Finances" ], - "summary": "Invoice Payment Transactions List", - "description": "Returns the list of all payment transactions of an invoice.", - "operationId": "invoice_payment_transactions_list", "parameters": [ { - "name": "provider_key", "in": "query", "description": "Your api key with 3scale", + "name": "provider_key", "required": true, - "schema": { - "type": "string", - "x-data-threescale-name": "api_keys" - }, - "x-data-threescale-name": "api_keys" + "x-data-threescale-name": "api_keys", + "type": "string" }, { - "name": "invoice_id", "in": "path", "description": "id of the invoice.", + "name": "invoice_id", "required": true, - "schema": { - "type": "integer" - } + "type": "integer" } ], "responses": { "200": { - "description": "No response was specified", - "content": {} + "description": "No response was specified" } } } } - }, - "components": {} -} \ No newline at end of file + } +} From 8590547dbcff74d8229990a2276e1d9f7e3b36ab Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Fri, 27 Jan 2023 14:50:15 +0100 Subject: [PATCH 17/85] Add title and description for all API specs --- doc/active_docs/Account Management API.json | 2 + doc/active_docs/Analytics API.json | 2 + doc/active_docs/Billing API.json | 2 + doc/active_docs/CMS API.json | 878 ++++++++++++++++++ doc/active_docs/Master API.json | 2 + doc/active_docs/Policy Registry API.json | 4 +- .../Service Management API (on-premises).json | 2 + doc/active_docs/Service Management API.json | 2 + 8 files changed, 893 insertions(+), 1 deletion(-) create mode 100644 doc/active_docs/CMS API.json diff --git a/doc/active_docs/Account Management API.json b/doc/active_docs/Account Management API.json index fb8d86ec15..fd38163ec9 100644 --- a/doc/active_docs/Account Management API.json +++ b/doc/active_docs/Account Management API.json @@ -1,6 +1,8 @@ { "openapi": "3.0.1", "info": { + "title": "Account Management API", + "description": "API for managing 3scale Admin Portal objects, such as Accounts, Applications, Users, API products, gateway configurations etc.", "version": "1.0" }, "servers": [ diff --git a/doc/active_docs/Analytics API.json b/doc/active_docs/Analytics API.json index 9fb7b39529..0b04b2cda5 100644 --- a/doc/active_docs/Analytics API.json +++ b/doc/active_docs/Analytics API.json @@ -1,6 +1,8 @@ { "openapi": "3.0.1", "info": { + "title": "Analytics API", + "description": "API for getting the API traffic data.", "version": "1.0" }, "servers": [ diff --git a/doc/active_docs/Billing API.json b/doc/active_docs/Billing API.json index b3904203a7..b0e2d2c5a1 100644 --- a/doc/active_docs/Billing API.json +++ b/doc/active_docs/Billing API.json @@ -1,6 +1,8 @@ { "openapi": "3.0.1", "info": { + "title": "Billing API", + "description": "API for managing invoices.", "version": "1.0" }, "servers": [ diff --git a/doc/active_docs/CMS API.json b/doc/active_docs/CMS API.json new file mode 100644 index 0000000000..ef3e27a94f --- /dev/null +++ b/doc/active_docs/CMS API.json @@ -0,0 +1,878 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "Developer Portal API (Tech Preview)", + "description": "API for managing the templates, files and sections of the Developer Portal CMS", + "version": "1.0" + }, + "servers": [ + { + "url": "/" + } + ], + "paths": { + "/admin/api/cms/templates/{id}/publish.xml": { + "put": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Template Publish", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the template", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/cms/files.xml": { + "get": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "File List", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "Current page of the list", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "per_page", + "in": "query", + "description": "Total number of records per one page (maximum 100)", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "File Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "path", + "in": "query", + "description": "URI of the file", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "section_id", + "in": "query", + "description": "ID of a section (valid only for pages)", + "schema": { + "type": "ref" + } + }, + { + "name": "tag_list", + "in": "query", + "description": "List of the tags", + "schema": { + "type": "string" + } + }, + { + "name": "attachment", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "downloadable", + "in": "query", + "description": "Checked sets the content-disposition to attachment", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/cms/files/{id}.xml": { + "get": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "File Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the file", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "File Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the file", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "path", + "in": "query", + "description": "URI of the file", + "schema": { + "type": "string" + } + }, + { + "name": "section_id", + "in": "query", + "description": "ID of a section (valid only for pages)", + "schema": { + "type": "ref" + } + }, + { + "name": "tag_list", + "in": "query", + "description": "List of the tags", + "schema": { + "type": "string" + } + }, + { + "name": "attachment", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "downloadable", + "in": "query", + "description": "Checked sets the content-disposition to attachment", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "File Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the file", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/cms/templates.xml": { + "get": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Template List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "description": "Current page of the list", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "per_page", + "in": "query", + "description": "Total number of records per one page (maximum 100)", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Template Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "type", + "in": "query", + "required": true, + "schema": { + "type": "string", + "enum": [ + "page", + "layout", + "partial" + ] + } + }, + { + "name": "system_name", + "in": "query", + "description": "Human readable and unique identifier", + "schema": { + "type": "string" + } + }, + { + "name": "title", + "in": "query", + "description": "Title of the template", + "schema": { + "type": "string" + } + }, + { + "name": "path", + "in": "query", + "description": "URI of the page", + "schema": { + "type": "string" + } + }, + { + "name": "draft", + "in": "query", + "description": "Text content of the template (you have to publish the template)", + "schema": { + "type": "string" + } + }, + { + "name": "section_name", + "in": "query", + "description": "system name of a section", + "schema": { + "type": "string" + } + }, + { + "name": "section_id", + "in": "query", + "description": "ID of a section (valid only for pages)", + "schema": { + "type": "ref" + } + }, + { + "name": "layout_name", + "in": "query", + "description": "system name of a layout (valid only for pages)", + "schema": { + "type": "string" + } + }, + { + "name": "layout_id", + "in": "query", + "description": "ID of a layout - overrides layout_name", + "schema": { + "type": "ref" + } + }, + { + "name": "liquid_enabled", + "in": "query", + "description": "liquid processing of the template content on/off", + "schema": { + "type": "boolean" + } + }, + { + "name": "handler", + "in": "query", + "description": "text will be processed by the handler before rendering", + "schema": { + "type": "string", + "enum": [ + "textile", + "markdown" + ] + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/cms/sections.xml": { + "get": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Section List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "description": "Current page of the list", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "per_page", + "in": "query", + "description": "Total number of records per one page (maximum 100)", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Section Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "title", + "in": "query", + "description": "Title of the section", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "public", + "in": "query", + "description": "Public or not", + "schema": { + "type": "boolean" + } + }, + { + "name": "parent_id", + "in": "query", + "description": "ID of a parent section", + "schema": { + "type": "ref" + } + }, + { + "name": "partial_path", + "in": "query", + "description": "Path of the section", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/cms/templates/{id}.xml": { + "get": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Template Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the template", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Template Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the template", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "system_name", + "in": "query", + "description": "Human readable and unique identifier", + "schema": { + "type": "string" + } + }, + { + "name": "title", + "in": "query", + "description": "Title of the template", + "schema": { + "type": "string" + } + }, + { + "name": "path", + "in": "query", + "description": "URI of the page", + "schema": { + "type": "string" + } + }, + { + "name": "draft", + "in": "query", + "description": "Text content of the template (you have to publish the template)", + "schema": { + "type": "string" + } + }, + { + "name": "section_name", + "in": "query", + "description": "system name of a section", + "schema": { + "type": "string" + } + }, + { + "name": "section_id", + "in": "query", + "description": "ID of a section (valid only for pages)", + "schema": { + "type": "ref" + } + }, + { + "name": "layout_name", + "in": "query", + "description": "system name of a layout (valid only for pages)", + "schema": { + "type": "string" + } + }, + { + "name": "layout_id", + "in": "query", + "description": "ID of a layout - overrides layout_name", + "schema": { + "type": "ref" + } + }, + { + "name": "liquid_enabled", + "in": "query", + "description": "liquid processing of the template content on/off", + "schema": { + "type": "boolean" + } + }, + { + "name": "handler", + "in": "query", + "description": "text will be processed by the handler before rendering", + "schema": { + "type": "string", + "enum": [ + "textile", + "markdown" + ] + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Template Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the template", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/cms/sections/{id}.xml": { + "get": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Section Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the section", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Section Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the section", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "title", + "in": "query", + "description": "Title of the section", + "schema": { + "type": "string" + } + }, + { + "name": "public", + "in": "query", + "description": "Public or not", + "schema": { + "type": "boolean" + } + }, + { + "name": "parent_id", + "in": "query", + "description": "ID of a parent section", + "schema": { + "type": "ref" + } + }, + { + "name": "partial_path", + "in": "query", + "description": "Path of the section", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Section Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the section", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + } + }, + "components": {} +} \ No newline at end of file diff --git a/doc/active_docs/Master API.json b/doc/active_docs/Master API.json index 5372d58272..d4461b719c 100644 --- a/doc/active_docs/Master API.json +++ b/doc/active_docs/Master API.json @@ -1,6 +1,8 @@ { "openapi": "3.0.1", "info": { + "title": "Master API", + "description": "API for managing tenants in 3scale master account.", "version": "1.0" }, "servers": [ diff --git a/doc/active_docs/Policy Registry API.json b/doc/active_docs/Policy Registry API.json index c5087fa32a..437611c480 100644 --- a/doc/active_docs/Policy Registry API.json +++ b/doc/active_docs/Policy Registry API.json @@ -1,6 +1,8 @@ { - "openapi": "3.0.1", + "openapi": "3.0.1", "info": { + "title": "Policy Registry API", + "description": "API for managing the APIcast Policy Registry.", "version": "1.0" }, "servers": [ diff --git a/doc/active_docs/Service Management API (on-premises).json b/doc/active_docs/Service Management API (on-premises).json index ca3ba57eab..24e6f8c113 100644 --- a/doc/active_docs/Service Management API (on-premises).json +++ b/doc/active_docs/Service Management API (on-premises).json @@ -1,6 +1,8 @@ { "openapi": "3.0.1", "info": { + "title": "Service Management API", + "description": "API for authorizing and reporting the API traffic, used by the API gateway.", "version": "1.0" }, "servers": [ diff --git a/doc/active_docs/Service Management API.json b/doc/active_docs/Service Management API.json index 7e2c7138aa..57789cdf71 100644 --- a/doc/active_docs/Service Management API.json +++ b/doc/active_docs/Service Management API.json @@ -1,6 +1,8 @@ { "openapi": "3.0.1", "info": { + "title": "Service Management API", + "description": "API for authorizing and reporting the API traffic, used by the API gateway.", "version": "1.0" }, "servers": [ From 6ccf2a80e43cc2368790da9bf0aa4cd53fc298c3 Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Mon, 30 Jan 2023 10:18:21 +0100 Subject: [PATCH 18/85] Reorder and add tags Acc Mgmt API --- doc/active_docs/Account Management API.json | 7009 ++++++++++--------- 1 file changed, 3602 insertions(+), 3407 deletions(-) diff --git a/doc/active_docs/Account Management API.json b/doc/active_docs/Account Management API.json index fd38163ec9..6c8a5f6461 100644 --- a/doc/active_docs/Account Management API.json +++ b/doc/active_docs/Account Management API.json @@ -11,9 +11,10 @@ } ], "paths": { - "/admin/api/services/{service_id}/features.xml": { - "get": { - "summary": "Service Feature List", + "/admin/api/signup.xml": { + "post": { + "summary": "Signup Express (Account Create)", + "tags": ["Accounts"], "parameters": [ { "name": "access_token", @@ -25,85 +26,79 @@ } }, { - "name": "service_id", - "in": "path", - "description": "ID of the service.", + "name": "org_name", + "in": "query", + "description": "Organization Name of the developer account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "string" } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Service Feature Create", - "parameters": [ + }, { - "name": "access_token", + "name": "username", "in": "query", - "description": "A personal Access Token", + "description": "Username of the admin user (on the new developer account).", "required": true, "schema": { "type": "string" } }, { - "name": "service_id", - "in": "path", - "description": "ID of the service.", + "name": "email", + "in": "query", + "description": "Email of the admin user.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { - "name": "name", + "name": "password", "in": "query", - "description": "Name of the feature.", + "description": "Password of the admin user.", "required": true, "schema": { "type": "string" } }, { - "name": "system_name", + "name": "account_plan_id", "in": "query", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "description": "ID of the account plan (if not assigned default will be used instead).", "schema": { - "type": "string" + "type": "integer", + "format": "int32" } }, { - "name": "description", + "name": "service_plan_id", "in": "query", - "description": "Description of the feature.", + "description": "ID of the service plan (if not assigned default will be used instead).", "schema": { - "type": "ref" + "type": "integer", + "format": "int32" } }, { - "name": "scope", + "name": "application_plan_id", "in": "query", - "description": "Type of plan that the feature will be available for.", + "description": "ID of the application plan (if not assigned default will be used instead).", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", "style": "form", "explode": false, "schema": { "type": "array", "items": { - "type": "string" - }, - "enum": [ - "ApplicationPlan", - "ServicePlan" - ] + "type": "object" + } } } ], @@ -115,9 +110,10 @@ } } }, - "/admin/api/backend_apis/{backend_api_id}/mapping_rules/{id}.json": { + "/admin/api/accounts.xml": { "get": { - "summary": "Backend Mapping Rules Read", + "summary": "Account List", + "tags": ["Accounts"], "parameters": [ { "name": "access_token", @@ -129,23 +125,36 @@ } }, { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, + "name": "state", + "in": "query", + "description": "Account state.", + "schema": { + "type": "string", + "enum": [ + "pending", + "approved", + "rejected" + ] + } + }, + { + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", "schema": { "type": "integer", - "format": "int32" + "format": "int32", + "default": 1 } }, { - "name": "id", - "in": "path", - "description": "Mapping Rule ID.", - "required": true, + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 500.", "schema": { "type": "integer", - "format": "int32" + "format": "int32", + "default": 500 } } ], @@ -155,9 +164,12 @@ "content": {} } } - }, - "put": { - "summary": "Backend Mapping Rule Update", + } + }, + "/admin/api/accounts/{id}.xml": { + "get": { + "summary": "Account Read", + "tags": ["Accounts"], "parameters": [ { "name": "access_token", @@ -168,75 +180,82 @@ "type": "string" } }, - { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, { "name": "id", "in": "path", - "description": "Mapping Rule ID.", + "description": "ID of the account.", "required": true, "schema": { "type": "integer", "format": "int32" } - }, + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Account Update", + "tags": ["Accounts"], + "parameters": [ { - "name": "http_method", + "name": "access_token", "in": "query", - "description": "HTTP method.", + "description": "A personal Access Token", + "required": true, "schema": { "type": "string" } }, { - "name": "pattern", - "in": "query", - "description": "Mapping Rule pattern.", + "name": "id", + "in": "path", + "description": "ID of the account.", + "required": true, "schema": { - "type": "string" + "type": "integer", + "format": "int32" } }, { - "name": "delta", + "name": "org_name", "in": "query", - "description": "Increase the metric by this delta.", + "description": "Organization name of the account.", "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { - "name": "metric_id", + "name": "monthly_billing_enabled", "in": "query", - "description": "Metric ID.", + "description": "Updates monthly billing status.", "schema": { - "type": "integer", - "format": "int32" + "type": "boolean" } }, { - "name": "position", + "name": "monthly_charging_enabled", "in": "query", - "description": "Mapping Rule position", + "description": "Updates monthly charging status.", "schema": { - "type": "integer", - "format": "int32" + "type": "boolean" } }, { - "name": "last", + "name": "additional_fields", "in": "query", - "description": "Last matched Mapping Rule to process", + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, "schema": { - "type": "ref" + "type": "array", + "items": { + "type": "object" + } } } ], @@ -248,7 +267,8 @@ } }, "delete": { - "summary": "Backend Mapping Rule Delete", + "summary": "Account Delete ", + "tags": ["Accounts"], "parameters": [ { "name": "access_token", @@ -259,20 +279,10 @@ "type": "string" } }, - { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, { "name": "id", "in": "path", - "description": "Mapping Rule ID.", + "description": "ID of the account.", "required": true, "schema": { "type": "integer", @@ -288,9 +298,10 @@ } } }, - "/admin/api/application_plans/{application_plan_id}/features/{id}.xml": { - "delete": { - "summary": "Application Plan Feature Delete", + "/admin/api/accounts/find.xml": { + "get": { + "summary": "Account Find", + "tags": ["Accounts"], "parameters": [ { "name": "access_token", @@ -302,81 +313,41 @@ } }, { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", - "required": true, + "name": "username", + "in": "query", + "description": "Username of the account user.", "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { - "name": "id", - "in": "path", - "description": "ID of the feature.", - "required": true, + "name": "email", + "in": "query", + "description": "Email of the account user.", "schema": { - "type": "integer", - "format": "int32" + "type": "string" } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/personal/access_tokens/{id}.json": { - "get": { - "summary": "Personal Access Token Read", - "parameters": [ + }, { - "name": "id", - "in": "path", - "description": "ID or value of the access token.", - "required": true, + "name": "user_id", + "in": "query", + "description": "ID of the account user.", "schema": { "type": "ref" } }, { - "name": "access_token", + "name": "buyer_provider_key", "in": "query", - "description": "A personal Access Token", - "required": true, + "description": "[Master API] Provider key of the account.", "schema": { "type": "string" } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Personal Access Token Delete", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "ID or value of the access token.", - "required": true, - "schema": { - "type": "ref" - } }, { - "name": "access_token", + "name": "buyer_service_token", "in": "query", - "description": "A personal Access Token", - "required": true, + "description": "[Master API] Service token of the account service.", "schema": { "type": "string" } @@ -390,9 +361,10 @@ } } }, - "/admin/api/users/{id}/admin.xml": { - "put": { - "summary": "User Change Role to Admin (provider account)", + "/admin/api/accounts/{account_id}/applications.xml": { + "get": { + "summary": "Application List", + "tags": ["Account Applications"], "parameters": [ { "name": "access_token", @@ -404,9 +376,9 @@ } }, { - "name": "id", + "name": "account_id", "in": "path", - "description": "ID of the user.", + "description": "ID of the account.", "required": true, "schema": { "type": "integer", @@ -420,61 +392,123 @@ "content": {} } } - } - }, - "/admin/api/users/{user_id}/access_tokens.json": { + }, "post": { - "summary": "Access Token Create", + "summary": "Application Create", + "tags": ["Account Applications"], "parameters": [ { - "name": "user_id", + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "account_id", "in": "path", - "description": "ID of the user.", + "description": "ID of the account.", "required": true, "schema": { - "type": "ref" + "type": "integer", + "format": "int32" + } + }, + { + "name": "plan_id", + "in": "query", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" } }, { "name": "name", "in": "query", - "description": "Name of the access token.", + "description": "Name of the application to be created.", "required": true, "schema": { "type": "string" } }, { - "name": "permission", + "name": "description", "in": "query", - "description": "Permission of the access token. It must be either 'ro' (read only) or 'rw' (read and write).", + "description": "Description of the application to be created.", "required": true, "schema": { "type": "string" } }, { - "name": "scopes", + "name": "user_key", "in": "query", - "description": "Scope of the access token. URL-encoded array containing one or more of the possible values. The possible values are, for a master user [\"account_management\", \"stats\"], and for a tenant user [\"finance\", \"account_management\", \"stats\"]", - "required": true, + "description": "User Key (API Key) of the application to be created.", + "schema": { + "type": "string" + } + }, + { + "name": "application_id", + "in": "query", + "description": "App ID or Client ID (for OAuth and OpenID Connect authentication modes) of the application to be created.", + "schema": { + "type": "string" + } + }, + { + "name": "application_key", + "in": "query", + "description": "App Key(s) or Client Secret (for OAuth and OpenID Connect authentication modes) of the application to be created.", "style": "form", "explode": false, "schema": { "type": "array", "items": { - "type": "object" + "type": "string" } } }, { - "name": "access_token", + "name": "redirect_url", "in": "query", - "description": "A personal Access Token", - "required": true, + "description": "Redirect URL for the OAuth request.", + "schema": { + "type": "string" + } + }, + { + "name": "first_traffic_at", + "in": "query", + "description": "Timestamp of the first call made by the application.", + "schema": { + "type": "string" + } + }, + { + "name": "first_daily_traffic_at", + "in": "query", + "description": "Timestamp of the first call on the last day when traffic was registered for the application ('Traffic On').", "schema": { "type": "string" } + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } } ], "responses": { @@ -485,9 +519,10 @@ } } }, - "/admin/api/accounts/{account_id}/users/{id}/unsuspend.xml": { - "put": { - "summary": "User Unsuspend", + "/admin/api/accounts/{account_id}/applications/{id}.xml": { + "get": { + "summary": "Application Read", + "tags": ["Account Applications"], "parameters": [ { "name": "access_token", @@ -511,7 +546,7 @@ { "name": "id", "in": "path", - "description": "ID of the user.", + "description": "ID of the application.", "required": true, "schema": { "type": "integer", @@ -525,11 +560,10 @@ "content": {} } } - } - }, - "/admin/api/accounts/{id}/credit_card.xml": { + }, "put": { - "summary": "Account Set Credit Card", + "summary": "Application Update", + "tags": ["Account Applications"], "parameters": [ { "name": "access_token", @@ -541,7 +575,7 @@ } }, { - "name": "id", + "name": "account_id", "in": "path", "description": "ID of the account.", "required": true, @@ -551,106 +585,66 @@ } }, { - "name": "credit_card_token", - "in": "query", - "description": "Token used by the payment gateway to identify the buyer, customer profile ID (Authorize.net), customer ID (Braintree and Stripe), customer alias (Ogone-Ingenico). Some payment gateways may store more than one card under the same buyer reference and/or require an additional identifier for recurring payment. If you are using Braintree, there is no need for additional identifier -- the first credit card available will always be charged. For Authorize.net, see `credit_card_authorize_net_payment_profile_token`.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "credit_card_authorize_net_payment_profile_token", - "in": "query", - "description": "Additional reference provided by the payment gateway to identify a specific card under the same buyer reference. For Authorize.net, you MUST fill with the 'Payment profile token'", - "schema": { - "type": "string" - } - }, - { - "name": "credit_card_expiration_year", - "in": "query", - "description": "Year of expiration of credit card. Two digit number", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "credit_card_expiration_month", - "in": "query", - "description": "Month of expiration of credit card. Two digit number", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "billing_address_name", - "in": "query", - "description": "Name of the person/company to bill", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "billing_address_address", - "in": "query", - "description": "Address associated to the credit card", + "name": "id", + "in": "path", + "description": "ID of the application.", "required": true, "schema": { - "type": "string" + "type": "integer", + "format": "int32" } }, { - "name": "billing_address_city", + "name": "name", "in": "query", - "description": "Billing address city", - "required": true, + "description": "Name of the application.", "schema": { "type": "string" } }, { - "name": "billing_address_country", + "name": "description", "in": "query", - "description": "Billing address country", - "required": true, + "description": "Description of the application.", "schema": { "type": "string" } }, { - "name": "billing_address_state", + "name": "redirect_url", "in": "query", - "description": "Billing address state", + "description": "Redirect URL for the OAuth request.", "schema": { "type": "string" } }, { - "name": "billing_address_phone", + "name": "first_traffic_at", "in": "query", - "description": "Billing address phone", + "description": "Timestamp of the first call made by the application.", "schema": { "type": "string" } }, { - "name": "billing_address_zip", + "name": "first_daily_traffic_at", "in": "query", - "description": "Billing address ZIP Code", + "description": "Timestamp of the first call on the last day when traffic was registered for the application ('Traffic On').", "schema": { "type": "string" } }, { - "name": "credit_card_partial_number", + "name": "additional_fields", "in": "query", - "description": "Last four digits on the credit card", + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, "schema": { - "type": "string" + "type": "array", + "items": { + "type": "object" + } } } ], @@ -662,7 +656,8 @@ } }, "delete": { - "summary": "Account Delete Credit Card", + "summary": "Application Delete", + "tags": ["Account Applications"], "parameters": [ { "name": "access_token", @@ -674,7 +669,7 @@ } }, { - "name": "id", + "name": "account_id", "in": "path", "description": "ID of the account.", "required": true, @@ -682,6 +677,16 @@ "type": "integer", "format": "int32" } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { @@ -692,9 +697,10 @@ } } }, - "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/limits/{id}.xml": { - "get": { - "summary": "Limit Read", + "/admin/api/accounts/{account_id}/applications/{id}/accept.xml": { + "put": { + "summary": "Application Accept", + "tags": ["Account Applications"], "parameters": [ { "name": "access_token", @@ -706,19 +712,9 @@ } }, { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", + "name": "account_id", "in": "path", - "description": "ID of the metric.", + "description": "ID of the account.", "required": true, "schema": { "type": "integer", @@ -728,7 +724,7 @@ { "name": "id", "in": "path", - "description": "ID of the limit.", + "description": "ID of the application.", "required": true, "schema": { "type": "integer", @@ -742,9 +738,12 @@ "content": {} } } - }, + } + }, + "/admin/api/accounts/{account_id}/applications/{id}/change_plan.xml": { "put": { - "summary": "Limit Update", + "summary": "Application Change Plan", + "tags": ["Account Applications"], "parameters": [ { "name": "access_token", @@ -756,19 +755,9 @@ } }, { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", + "name": "account_id", "in": "path", - "description": "ID of the metric.", + "description": "ID of the account.", "required": true, "schema": { "type": "integer", @@ -778,7 +767,7 @@ { "name": "id", "in": "path", - "description": "ID of the limit.", + "description": "ID of the application.", "required": true, "schema": { "type": "integer", @@ -786,28 +775,10 @@ } }, { - "name": "period", + "name": "plan_id", "in": "query", - "description": "Period of the limit.", + "description": "ID of the new application plan.", "required": true, - "schema": { - "type": "string", - "default": "minute", - "enum": [ - "eternity", - "year", - "month", - "week", - "day", - "hour", - "minute" - ] - } - }, - { - "name": "value", - "in": "query", - "description": "Value of the limit.", "schema": { "type": "integer", "format": "int32" @@ -820,9 +791,12 @@ "content": {} } } - }, - "delete": { - "summary": "Limit Delete", + } + }, + "/admin/api/accounts/{account_id}/applications/{id}/customize_plan.xml": { + "put": { + "summary": "Application Create Plan Customization", + "tags": ["Account Applications"], "parameters": [ { "name": "access_token", @@ -834,19 +808,9 @@ } }, { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", + "name": "account_id", "in": "path", - "description": "ID of the metric.", + "description": "ID of the account.", "required": true, "schema": { "type": "integer", @@ -856,7 +820,7 @@ { "name": "id", "in": "path", - "description": "ID of the limit.", + "description": "ID of the application.", "required": true, "schema": { "type": "integer", @@ -872,9 +836,10 @@ } } }, - "/admin/api/accounts.xml": { - "get": { - "summary": "Account List", + "/admin/api/accounts/{account_id}/applications/{id}/decustomize_plan.xml": { + "put": { + "summary": "Application Delete Plan Customization", + "tags": ["Account Applications"], "parameters": [ { "name": "access_token", @@ -886,36 +851,23 @@ } }, { - "name": "state", - "in": "query", - "description": "Account state.", - "schema": { - "type": "string", - "enum": [ - "pending", - "approved", - "rejected" - ] - } - }, - { - "name": "page", - "in": "query", - "description": "Page in the paginated list. Defaults to 1.", + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, "schema": { "type": "integer", - "format": "int32", - "default": 1 + "format": "int32" } }, { - "name": "per_page", - "in": "query", - "description": "Number of results per page. Default and max is 500.", + "name": "id", + "in": "path", + "description": "ID of the application.", + "required": true, "schema": { "type": "integer", - "format": "int32", - "default": 500 + "format": "int32" } } ], @@ -927,9 +879,10 @@ } } }, - "/admin/api/accounts/{id}/reject.xml": { + "/admin/api/accounts/{account_id}/applications/{id}/resume.xml": { "put": { - "summary": "Account Reject", + "summary": "Application Resume", + "tags": ["Account Applications"], "parameters": [ { "name": "access_token", @@ -941,7 +894,7 @@ } }, { - "name": "id", + "name": "account_id", "in": "path", "description": "ID of the account.", "required": true, @@ -949,6 +902,16 @@ "type": "integer", "format": "int32" } + }, + { + "name": "id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { @@ -959,9 +922,10 @@ } } }, - "/admin/api/account_plans/{id}/default.xml": { + "/admin/api/accounts/{account_id}/applications/{id}/suspend.xml": { "put": { - "summary": "Account Plan set to Default", + "summary": "Application Suspend", + "tags": ["Account Applications"], "parameters": [ { "name": "access_token", @@ -972,10 +936,20 @@ "type": "string" } }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, { "name": "id", "in": "path", - "description": "ID of the account plan.", + "description": "ID of the application.", "required": true, "schema": { "type": "integer", @@ -991,9 +965,10 @@ } } }, - "/admin/api/webhooks/failures.xml": { + "/admin/api/accounts/{account_id}/applications/{application_id}/keys.xml": { "get": { - "summary": "Webhooks List Failed Deliveries", + "summary": "Application Key List", + "tags": ["Account Applications"], "parameters": [ { "name": "access_token", @@ -1003,6 +978,26 @@ "schema": { "type": "string" } + }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "application_id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { @@ -1012,8 +1007,10 @@ } } }, - "delete": { - "summary": "Webhooks Delete Failed Deliveries", + "post": { + "summary": "Application Key Create", + "tags": ["Account Applications"], + "operationId": "key_create", "parameters": [ { "name": "access_token", @@ -1025,11 +1022,32 @@ } }, { - "name": "time", + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "application_id", + "in": "path", + "description": "ID of the application.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "key", "in": "query", - "description": "Only failed webhook deliveries whose time is less than or equal to the passed time are destroyed (if used).", + "description": "app_key to be added", + "required": true, "schema": { - "type": "ref" + "type": "string" } } ], @@ -1041,9 +1059,10 @@ } } }, - "/admin/api/services/{service_id}/proxy/configs/{environment}/{version}.json": { - "get": { - "summary": "Proxy Config Show", + "/admin/api/accounts/{account_id}/applications/{application_id}/keys/{key}.xml": { + "delete": { + "summary": "Application Key Delete", + "tags": ["Account Applications"], "parameters": [ { "name": "access_token", @@ -1055,9 +1074,9 @@ } }, { - "name": "service_id", + "name": "account_id", "in": "path", - "description": "ID of the service.", + "description": "ID of the account.", "required": true, "schema": { "type": "integer", @@ -1065,22 +1084,22 @@ } }, { - "name": "environment", + "name": "application_id", "in": "path", - "description": "Gateway environment. Must be 'sandbox' or 'production'", + "description": "ID of the application.", "required": true, "schema": { - "type": "string" + "type": "integer", + "format": "int32" } }, { - "name": "version", + "name": "key", "in": "path", - "description": "Version of the Proxy config.", + "description": "app_key to be deleted.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "string" } } ], @@ -1092,9 +1111,10 @@ } } }, - "/admin/api/webhooks.json": { - "put": { - "summary": "WebHooks Update", + "/admin/api/accounts/{account_id}/applications/{application_id}/referrer_filters.xml": { + "get": { + "summary": "Application Referrer Filter List", + "tags": ["Account Applications"], "parameters": [ { "name": "access_token", @@ -1106,139 +1126,210 @@ } }, { - "name": "url", - "in": "query", - "description": "URL that will be notified about all the events", + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, "schema": { - "type": "string" + "type": "integer", + "format": "int32" } }, { - "name": "active", - "in": "query", - "description": "Activate/Disable WebHooks", - "schema": { - "type": "boolean" - } - }, - { - "name": "provider_actions", - "in": "query", - "description": "Dashboard actions fire webhooks. If false, only user actions in the portal trigger events.", - "schema": { - "type": "boolean" - } - }, - { - "name": "account_created_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "account_updated_on", - "in": "query", + "name": "application_id", + "in": "path", + "description": "ID of the application.", + "required": true, "schema": { - "type": "boolean" + "type": "integer", + "format": "int32" } - }, + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Application Referrer Filter Create", + "tags": ["Account Applications"], + "parameters": [ { - "name": "account_deleted_on", + "name": "access_token", "in": "query", + "description": "A personal Access Token", + "required": true, "schema": { - "type": "boolean" + "type": "string" } }, { - "name": "user_created_on", - "in": "query", + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, "schema": { - "type": "boolean" + "type": "integer", + "format": "int32" } }, { - "name": "user_updated_on", - "in": "query", + "name": "application_id", + "in": "path", + "description": "ID of the application.", + "required": true, "schema": { - "type": "boolean" + "type": "integer", + "format": "int32" } }, { - "name": "user_deleted_on", + "name": "referrer_filter", "in": "query", + "description": "Referrer filter to be created.", + "required": true, "schema": { - "type": "boolean" + "type": "string" } - }, + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/applications/{application_id}/referrer_filters/{id}.xml": { + "delete": { + "summary": "Application Referrer Filter Delete", + "tags": ["Account Applications"], + "parameters": [ { - "name": "application_created_on", + "name": "access_token", "in": "query", + "description": "A personal Access Token", + "required": true, "schema": { - "type": "boolean" + "type": "string" } }, { - "name": "application_updated_on", - "in": "query", + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, "schema": { - "type": "boolean" + "type": "integer", + "format": "int32" } }, { - "name": "application_deleted_on", - "in": "query", + "name": "application_id", + "in": "path", + "description": "ID of the application.", + "required": true, "schema": { - "type": "boolean" + "type": "integer", + "format": "int32" } }, { - "name": "account_plan_changed_on", - "in": "query", + "name": "id", + "in": "path", + "description": "ID of referrer filter to be deleted.", + "required": true, "schema": { - "type": "boolean" + "type": "integer", + "format": "int32" } - }, + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/messages.xml": { + "post": { + "summary": "Account Message", + "tags": ["Accounts"], + "parameters": [ { - "name": "application_plan_changed_on", + "name": "access_token", "in": "query", + "description": "A personal Access Token", + "required": true, "schema": { - "type": "boolean" + "type": "string" } }, { - "name": "application_user_key_updated_on", - "in": "query", + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, "schema": { - "type": "boolean" + "type": "integer", + "format": "int32" } }, { - "name": "application_key_created_on", + "name": "body", "in": "query", + "description": "Text to send", + "required": true, "schema": { - "type": "boolean" + "type": "string" } }, { - "name": "application_key_deleted_on", + "name": "subject", "in": "query", + "description": "Subject of the message", + "required": true, "schema": { - "type": "boolean" + "type": "string" } - }, + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{account_id}/plan.xml": { + "get": { + "summary": "Account Fetch Account Plan", + "tags": ["Accounts"], + "parameters": [ { - "name": "application_suspended_on", + "name": "access_token", "in": "query", + "description": "A personal Access Token", + "required": true, "schema": { - "type": "boolean" + "type": "string" } }, { - "name": "application_key_updated_on", - "in": "query", + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, "schema": { - "type": "boolean" + "type": "integer", + "format": "int32" } } ], @@ -1250,9 +1341,10 @@ } } }, - "/admin/api/services/{service_id}/proxy/configs/{environment}.json": { + "/admin/api/accounts/{account_id}/service_contracts.xml": { "get": { - "summary": "Proxy Configs List (Service)", + "summary": "Service Subscription List", + "tags": ["Accounts"], "parameters": [ { "name": "access_token", @@ -1264,23 +1356,14 @@ } }, { - "name": "service_id", + "name": "account_id", "in": "path", - "description": "ID of the service.", + "description": "ID of the account.", "required": true, "schema": { "type": "integer", "format": "int32" } - }, - { - "name": "environment", - "in": "path", - "description": "Gateway environment. Must be 'sandbox' or 'production'", - "required": true, - "schema": { - "type": "string" - } } ], "responses": { @@ -1291,9 +1374,10 @@ } } }, - "/admin/api/users/{id}/suspend.xml": { - "put": { - "summary": "User Suspend (provider account)", + "/admin/api/accounts/{account_id}/service_contracts/{id}.xml": { + "delete": { + "summary": "Service Subscription Delete", + "tags": ["Accounts"], "parameters": [ { "name": "access_token", @@ -1304,10 +1388,20 @@ "type": "string" } }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, { "name": "id", "in": "path", - "description": "ID of the user.", + "description": "ID of the service contract.", "required": true, "schema": { "type": "integer", @@ -1323,9 +1417,10 @@ } } }, - "/admin/api/services/{id}.xml": { - "get": { - "summary": "Service Read", + "/admin/api/accounts/{id}/approve.xml": { + "put": { + "summary": "Account Approve", + "tags": ["Accounts"], "parameters": [ { "name": "access_token", @@ -1339,7 +1434,7 @@ { "name": "id", "in": "path", - "description": "ID of the service.", + "description": "ID of the account.", "required": true, "schema": { "type": "integer", @@ -1353,9 +1448,12 @@ "content": {} } } - }, + } + }, + "/admin/api/accounts/{id}/change_plan.xml": { "put": { - "summary": "Service Update", + "summary": "Account Change Plan", + "tags": ["Accounts"], "parameters": [ { "name": "access_token", @@ -1369,7 +1467,7 @@ { "name": "id", "in": "path", - "description": "ID of the service.", + "description": "ID of the account.", "required": true, "schema": { "type": "integer", @@ -1377,56 +1475,149 @@ } }, { - "name": "name", + "name": "plan_id", "in": "query", - "description": "New name for the service.", + "description": "ID of the target account plan", + "required": true, "schema": { - "type": "string" + "type": "integer", + "format": "int32" } - }, - { - "name": "description", + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{id}/credit_card.xml": { + "put": { + "summary": "Account Set Credit Card", + "tags": ["Accounts"], + "parameters": [ + { + "name": "access_token", "in": "query", - "description": "New description for the service.", + "description": "A personal Access Token", + "required": true, "schema": { "type": "string" } }, { - "name": "support_email", + "name": "id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "credit_card_token", "in": "query", - "description": "New support email.", + "description": "Token used by the payment gateway to identify the buyer, customer profile ID (Authorize.net), customer ID (Braintree and Stripe), customer alias (Ogone-Ingenico). Some payment gateways may store more than one card under the same buyer reference and/or require an additional identifier for recurring payment. If you are using Braintree, there is no need for additional identifier -- the first credit card available will always be charged. For Authorize.net, see `credit_card_authorize_net_payment_profile_token`.", + "required": true, "schema": { "type": "string" } }, { - "name": "deployment_option", + "name": "credit_card_authorize_net_payment_profile_token", "in": "query", - "description": "Deployment option for the gateway: 'hosted' for APIcast hosted, 'self_managed' for APIcast Self-managed, 'service_mesh_istio' for Istio service mesh option", + "description": "Additional reference provided by the payment gateway to identify a specific card under the same buyer reference. For Authorize.net, you MUST fill with the 'Payment profile token'", "schema": { "type": "string" } }, { - "name": "backend_version", + "name": "credit_card_expiration_year", "in": "query", - "description": "Authentication mode: '1' for API key, '2' for App Id / App Key, 'oidc' for OpenID Connect", + "description": "Year of expiration of credit card. Two digit number", + "required": true, "schema": { "type": "string" } }, { - "name": " ", + "name": "credit_card_expiration_month", "in": "query", - "description": "Extra parameters", - "style": "form", - "explode": false, + "description": "Month of expiration of credit card. Two digit number", + "required": true, "schema": { - "type": "array", - "items": { - "type": "object" - } + "type": "string" + } + }, + { + "name": "billing_address_name", + "in": "query", + "description": "Name of the person/company to bill", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "billing_address_address", + "in": "query", + "description": "Address associated to the credit card", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "billing_address_city", + "in": "query", + "description": "Billing address city", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "billing_address_country", + "in": "query", + "description": "Billing address country", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "billing_address_state", + "in": "query", + "description": "Billing address state", + "schema": { + "type": "string" + } + }, + { + "name": "billing_address_phone", + "in": "query", + "description": "Billing address phone", + "schema": { + "type": "string" + } + }, + { + "name": "billing_address_zip", + "in": "query", + "description": "Billing address ZIP Code", + "schema": { + "type": "string" + } + }, + { + "name": "credit_card_partial_number", + "in": "query", + "description": "Last four digits on the credit card", + "schema": { + "type": "string" } } ], @@ -1438,7 +1629,8 @@ } }, "delete": { - "summary": "Service Delete", + "summary": "Account Delete Credit Card", + "tags": ["Accounts"], "parameters": [ { "name": "access_token", @@ -1452,7 +1644,7 @@ { "name": "id", "in": "path", - "description": "ID of the service.", + "description": "ID of the account.", "required": true, "schema": { "type": "integer", @@ -1468,9 +1660,10 @@ } } }, - "/admin/api/accounts/{account_id}/applications/{application_id}/referrer_filters/{id}.xml": { - "delete": { - "summary": "Application Referrer Filter Delete", + "/admin/api/accounts/{id}/make_pending.xml": { + "put": { + "summary": "Account Reset to Pending", + "tags": ["Accounts"], "parameters": [ { "name": "access_token", @@ -1482,7 +1675,7 @@ } }, { - "name": "account_id", + "name": "id", "in": "path", "description": "ID of the account.", "required": true, @@ -1490,21 +1683,34 @@ "type": "integer", "format": "int32" } - }, + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/accounts/{id}/reject.xml": { + "put": { + "summary": "Account Reject", + "tags": ["Accounts"], + "parameters": [ { - "name": "application_id", - "in": "path", - "description": "ID of the application.", + "name": "access_token", + "in": "query", + "description": "A personal Access Token", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { "name": "id", "in": "path", - "description": "ID of referrer filter to be deleted.", + "description": "ID of the account.", "required": true, "schema": { "type": "integer", @@ -1520,9 +1726,10 @@ } } }, - "/admin/api/services/{service_id}/metrics/{metric_id}/methods/{id}.xml": { + "/admin/api/accounts/{account_id}/users.xml": { "get": { - "summary": "Service Method Read", + "summary": "User List", + "tags": ["Users"], "parameters": [ { "name": "access_token", @@ -1534,9 +1741,9 @@ } }, { - "name": "service_id", + "name": "account_id", "in": "path", - "description": "ID of the service.", + "description": "ID of the account.", "required": true, "schema": { "type": "integer", @@ -1544,23 +1751,28 @@ } }, { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, + "name": "state", + "in": "query", + "description": "Filter users by State.", "schema": { - "type": "integer", - "format": "int32" + "type": "string", + "enum": [ + "pending", + "suspended", + "active" + ] } }, { - "name": "id", - "in": "path", - "description": "ID of the method.", - "required": true, + "name": "role", + "in": "query", + "description": "Filter users by Role.", "schema": { - "type": "integer", - "format": "int32" + "type": "string", + "enum": [ + "member", + "admin" + ] } } ], @@ -1571,8 +1783,9 @@ } } }, - "put": { - "summary": "Service Method Update", + "post": { + "summary": "User Create", + "tags": ["Users"], "parameters": [ { "name": "access_token", @@ -1584,19 +1797,9 @@ } }, { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", + "name": "account_id", "in": "path", - "description": "ID of the metric.", + "description": "ID of the account.", "required": true, "schema": { "type": "integer", @@ -1604,37 +1807,43 @@ } }, { - "name": "id", - "in": "path", - "description": "ID of the method.", + "name": "username", + "in": "query", + "description": "Username of the user.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { - "name": "friendly_name", + "name": "email", "in": "query", - "description": "Name of the method.", + "description": "Email of the user.", + "required": true, "schema": { "type": "string" } }, { - "name": "unit", + "name": "password", "in": "query", - "description": "Measure unit of the method.", + "description": "Password of the user.", + "required": true, "schema": { "type": "string" } }, { - "name": "description", + "name": "additional_fields", "in": "query", - "description": "Description of the method.", + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, "schema": { - "type": "ref" + "type": "array", + "items": { + "type": "object" + } } } ], @@ -1644,9 +1853,12 @@ "content": {} } } - }, - "delete": { - "summary": "Service Method Delete", + } + }, + "/admin/api/accounts/{account_id}/users/{id}.xml": { + "get": { + "summary": "User Read", + "tags": ["Users"], "parameters": [ { "name": "access_token", @@ -1658,19 +1870,9 @@ } }, { - "name": "service_id", + "name": "account_id", "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", + "description": "ID of the account.", "required": true, "schema": { "type": "integer", @@ -1680,7 +1882,7 @@ { "name": "id", "in": "path", - "description": "ID of the method.", + "description": "ID of the user.", "required": true, "schema": { "type": "integer", @@ -1694,32 +1896,10 @@ "content": {} } } - } - }, - "/admin/api/settings.json": { - "get": { - "summary": "Settings Read", - "operationId": "service_metric", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } }, "put": { - "summary": "Settings Update", + "summary": "User Update", + "tags": ["Users"], "parameters": [ { "name": "access_token", @@ -1731,83 +1911,60 @@ } }, { - "name": "useraccountarea_enabled", - "in": "query", - "description": "Allow the user to edit their submitted details, change passwords, etc", - "schema": { - "type": "boolean" - } - }, - { - "name": "hide_service", - "in": "query", - "description": "Used a default service plan", - "schema": { - "type": "boolean" - } - }, - { - "name": "signups_enabled", - "in": "query", - "description": "Developers are allowed sign up themselves.", - "schema": { - "type": "boolean" - } - }, - { - "name": "account_approval_required", - "in": "query", - "description": "Approval is required by you before developer accounts are activated.", - "schema": { - "type": "boolean" - } - }, - { - "name": "strong_passwords_enabled", - "in": "query", - "description": "Require strong passwords from your users: Password must be at least 8 characters long, and contain both upper and lowercase letters, a digit and one special character of -+=><_$#.:;!?@&*()~][}{|. Existing passwords will still work. ", + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, "schema": { - "type": "boolean" + "type": "integer", + "format": "int32" } }, { - "name": "public_search", - "in": "query", - "description": "Enables public search on Developer Portal", + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, "schema": { - "type": "boolean" + "type": "integer", + "format": "int32" } }, { - "name": "account_plans_ui_visible", + "name": "username", "in": "query", - "description": "Enables visibility of Account Plans", + "description": "Username of the user.", "schema": { - "type": "boolean" + "type": "string" } }, { - "name": "change_account_plan_permission", + "name": "email", "in": "query", - "description": "Account Plans changing", + "description": "Email of the user.", "schema": { "type": "string" } }, { - "name": "service_plans_ui_visible", + "name": "password", "in": "query", - "description": "Enables visibility of Service Plans", + "description": "Password of the user.", "schema": { - "type": "boolean" + "type": "string" } }, { - "name": "change_service_plan_permission", + "name": "additional_fields", "in": "query", - "description": "Service Plans changing", + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, "schema": { - "type": "string" + "type": "array", + "items": { + "type": "object" + } } } ], @@ -1817,11 +1974,10 @@ "content": {} } } - } - }, - "/admin/api/backend_apis/{id}.json": { - "get": { - "summary": "Backend Read", + }, + "delete": { + "summary": "User Delete", + "tags": ["Users"], "parameters": [ { "name": "access_token", @@ -1832,10 +1988,20 @@ "type": "string" } }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, { "name": "id", "in": "path", - "description": "ID of the Backend.", + "description": "ID of the user.", "required": true, "schema": { "type": "integer", @@ -1849,9 +2015,12 @@ "content": {} } } - }, + } + }, + "/admin/api/accounts/{account_id}/users/{id}/activate.xml": { "put": { - "summary": "Backend Update", + "summary": "User Activate", + "tags": ["Users"], "parameters": [ { "name": "access_token", @@ -1863,9 +2032,9 @@ } }, { - "name": "id", + "name": "account_id", "in": "path", - "description": "ID of the Backend.", + "description": "ID of the account.", "required": true, "schema": { "type": "integer", @@ -1873,27 +2042,13 @@ } }, { - "name": "name", - "in": "query", - "description": "Name of the Backend", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the Backend", - "schema": { - "type": "string" - } - }, - { - "name": "private_endpoint", - "in": "query", - "description": "Private Base URL (your API)", + "name": "id", + "in": "path", + "description": "ID of the user.", + "required": true, "schema": { - "type": "string" + "type": "integer", + "format": "int32" } } ], @@ -1903,9 +2058,12 @@ "content": {} } } - }, - "delete": { - "summary": "Backend Delete", + } + }, + "/admin/api/accounts/{account_id}/users/{id}/admin.xml": { + "put": { + "summary": "User change Role to Admin", + "tags": ["Users"], "parameters": [ { "name": "access_token", @@ -1916,10 +2074,20 @@ "type": "string" } }, + { + "name": "account_id", + "in": "path", + "description": "ID of the account.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, { "name": "id", "in": "path", - "description": "ID of the Backend.", + "description": "ID of the user.", "required": true, "schema": { "type": "integer", @@ -1935,9 +2103,10 @@ } } }, - "/admin/api/account_plans/{account_plan_id}/features/{id}.xml": { - "post": { - "summary": "Account Plan Features Create", + "/admin/api/accounts/{account_id}/users/{id}/member.xml": { + "put": { + "summary": "User Change Role to Member", + "tags": ["Users"], "parameters": [ { "name": "access_token", @@ -1949,9 +2118,9 @@ } }, { - "name": "account_plan_id", + "name": "account_id", "in": "path", - "description": "ID of the account plan.", + "description": "ID of the account.", "required": true, "schema": { "type": "integer", @@ -1961,7 +2130,7 @@ { "name": "id", "in": "path", - "description": "ID of the feature.", + "description": "ID of the user.", "required": true, "schema": { "type": "integer", @@ -1975,9 +2144,12 @@ "content": {} } } - }, - "delete": { - "summary": "Account Plan Features Delete", + } + }, + "/admin/api/accounts/{account_id}/users/{id}/suspend.xml": { + "put": { + "summary": "User Suspend", + "tags": ["Users"], "parameters": [ { "name": "access_token", @@ -1989,9 +2161,9 @@ } }, { - "name": "account_plan_id", + "name": "account_id", "in": "path", - "description": "ID of the account plan.", + "description": "ID of the account.", "required": true, "schema": { "type": "integer", @@ -2001,7 +2173,7 @@ { "name": "id", "in": "path", - "description": "ID of the feature.", + "description": "ID of the user.", "required": true, "schema": { "type": "integer", @@ -2017,9 +2189,10 @@ } } }, - "/admin/api/backend_apis/{backend_api_id}/metrics/{id}.json": { - "get": { - "summary": "Backend Metric Read", + "/admin/api/accounts/{account_id}/users/{id}/unsuspend.xml": { + "put": { + "summary": "User Unsuspend", + "tags": ["Users"], "parameters": [ { "name": "access_token", @@ -2031,9 +2204,9 @@ } }, { - "name": "backend_api_id", + "name": "account_id", "in": "path", - "description": "ID of the Backend.", + "description": "ID of the account.", "required": true, "schema": { "type": "integer", @@ -2043,7 +2216,7 @@ { "name": "id", "in": "path", - "description": "ID of the metric.", + "description": "ID of the user.", "required": true, "schema": { "type": "integer", @@ -2057,9 +2230,12 @@ "content": {} } } - }, - "put": { - "summary": "Backend Metric Update", + } + }, + "/admin/api/users.xml": { + "get": { + "summary": "User List (provider account)", + "tags": ["Users"], "parameters": [ { "name": "access_token", @@ -2071,47 +2247,28 @@ } }, { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, + "name": "state", + "in": "query", + "description": "Filter users by State.", "schema": { - "type": "integer", - "format": "int32" + "type": "string", + "enum": [ + "pending", + "suspended", + "active" + ] } }, { - "name": "id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "friendly_name", - "in": "query", - "description": "Name of the metric.", - "schema": { - "type": "string" - } - }, - { - "name": "unit", - "in": "query", - "description": "Measure unit of the metric.", - "schema": { - "type": "string" - } - }, - { - "name": "description", + "name": "role", "in": "query", - "description": "Description of the metric.", + "description": "Filter users by Role.", "schema": { - "type": "ref" + "type": "string", + "enum": [ + "member", + "admin" + ] } } ], @@ -2122,8 +2279,9 @@ } } }, - "delete": { - "summary": "Backend Metric Delete", + "post": { + "summary": "User Create (provider account)", + "tags": ["Users"], "parameters": [ { "name": "access_token", @@ -2135,23 +2293,43 @@ } }, { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", + "name": "username", + "in": "query", + "description": "Username of the user.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { - "name": "id", - "in": "path", - "description": "ID of the metric.", + "name": "email", + "in": "query", + "description": "Email of the user.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "string" + } + }, + { + "name": "password", + "in": "query", + "description": "Password of the user.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). Additional fields are the custom fields declared for your tenant, you can find them in 'Settings >> Personal Details' for the account and in 'Settings >> Account >> Users >> Personal Details' for users. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } } } ], @@ -2163,9 +2341,10 @@ } } }, - "/admin/api/services/{service_id}/backend_usages/{id}.json": { + "/admin/api/users/{id}.xml": { "get": { - "summary": "Backend Usage Read", + "summary": "User Read (provider account)", + "tags": ["Provider Users"], "parameters": [ { "name": "access_token", @@ -2176,20 +2355,10 @@ "type": "string" } }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, { "name": "id", "in": "path", - "description": "ID of the Backend Usage.", + "description": "ID of the user.", "required": true, "schema": { "type": "integer", @@ -2205,7 +2374,8 @@ } }, "put": { - "summary": "Backend Usage Update", + "summary": "User Update (provider account)", + "tags": ["Provider Users"], "parameters": [ { "name": "access_token", @@ -2217,9 +2387,9 @@ } }, { - "name": "service_id", + "name": "id", "in": "path", - "description": "ID of the service.", + "description": "ID of the user.", "required": true, "schema": { "type": "integer", @@ -2227,22 +2397,40 @@ } }, { - "name": "id", - "in": "path", - "description": "ID of the Backend Usage.", - "required": true, + "name": "username", + "in": "query", + "description": "Username of the user.", "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { - "name": "path", + "name": "email", "in": "query", - "description": "Path of the Backend for this product.", + "description": "Email of the user.", "schema": { - "type": "integer", - "format": "int32" + "type": "string" + } + }, + { + "name": "password", + "in": "query", + "description": "Password of the user.", + "schema": { + "type": "string" + } + }, + { + "name": "additional_fields", + "in": "query", + "description": "Additional fields have to be defined by name and value (i.e &name=value). Additional fields are the custom fields declared for your tenant, you can find them in 'Settings >> Personal Details' for the account and in 'Settings >> Account >> Users >> Personal Details' for users. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } } } ], @@ -2254,7 +2442,8 @@ } }, "delete": { - "summary": "Backend Usage Delete", + "summary": "User Delete (provider account)", + "tags": ["Provider Users"], "parameters": [ { "name": "access_token", @@ -2265,20 +2454,10 @@ "type": "string" } }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, { "name": "id", "in": "path", - "description": "ID of the Backend Usage.", + "description": "ID of the user.", "required": true, "schema": { "type": "integer", @@ -2294,9 +2473,10 @@ } } }, - "/admin/api/users/{id}.xml": { - "get": { - "summary": "User Read (provider account)", + "/admin/api/users/{id}/activate.xml": { + "put": { + "summary": "User Activate (provider account)", + "tags": ["Users"], "parameters": [ { "name": "access_token", @@ -2324,9 +2504,12 @@ "content": {} } } - }, + } + }, + "/admin/api/users/{id}/admin.xml": { "put": { - "summary": "User Update (provider account)", + "summary": "User Change Role to Admin (provider account)", + "tags": ["Users"], "parameters": [ { "name": "access_token", @@ -2346,43 +2529,6 @@ "type": "integer", "format": "int32" } - }, - { - "name": "username", - "in": "query", - "description": "Username of the user.", - "schema": { - "type": "string" - } - }, - { - "name": "email", - "in": "query", - "description": "Email of the user.", - "schema": { - "type": "string" - } - }, - { - "name": "password", - "in": "query", - "description": "Password of the user.", - "schema": { - "type": "string" - } - }, - { - "name": "additional_fields", - "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). Additional fields are the custom fields declared for your tenant, you can find them in 'Settings >> Personal Details' for the account and in 'Settings >> Account >> Users >> Personal Details' for users. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } } ], "responses": { @@ -2391,9 +2537,12 @@ "content": {} } } - }, - "delete": { - "summary": "User Delete (provider account)", + } + }, + "/admin/api/users/{id}/member.xml": { + "put": { + "summary": "User Change Role to Member (provider account)", + "tags": ["Users"], "parameters": [ { "name": "access_token", @@ -2423,9 +2572,10 @@ } } }, - "/admin/api/fields_definitions/{id}.json": { + "/admin/api/users/{id}/permissions.xml": { "get": { - "summary": "Fields Definition Read", + "summary": "User Permissions Read", + "tags": ["Users"], "parameters": [ { "name": "access_token", @@ -2439,7 +2589,7 @@ { "name": "id", "in": "path", - "description": "ID of the fields definition.", + "description": "ID of the user.", "required": true, "schema": { "type": "integer", @@ -2455,7 +2605,8 @@ } }, "put": { - "summary": "Fields Definition Update", + "summary": "User Permissions Update", + "tags": ["Users"], "parameters": [ { "name": "access_token", @@ -2469,7 +2620,7 @@ { "name": "id", "in": "path", - "description": "ID of the fields definition.", + "description": "ID of the user.", "required": true, "schema": { "type": "integer", @@ -2477,71 +2628,29 @@ } }, { - "name": "target", + "name": "allowed_service_ids", "in": "query", - "description": "Target entity of fields definition.", - "required": true, + "description": "IDs of the services that need to be enabled, URL-encoded array. To disable all services, set the value to '[]'. To enable all services, add parameter 'allowed_service_ids[]' with no value to the 'curl' command (can't be done in ActiveDocs)", + "style": "form", + "explode": false, "schema": { - "type": "string", - "default": "account", - "enum": [ - "Account", - "User", - "Cinstance" - ] + "type": "array", + "items": { + "type": "object" + } } }, { - "name": "label", + "name": "allowed_sections", "in": "query", - "description": "The field title your developers will see.", + "description": "The list of sections in the admin portal that the user can access, URL-encoded array. Possible values: 'portal' (Developer Portal), 'finance' (Billing), 'settings', 'partners' (Accounts -- Applications), 'monitoring' (Analytics), 'plans' (Integration & Application Plans), 'policy_registry'. To disable all sections, set the value to '[]'.", + "style": "form", + "explode": false, "schema": { - "type": "string" - } - }, - { - "name": "required", - "in": "query", - "description": "If 'true' the field will be required for developers.", - "schema": { - "type": "boolean" - } - }, - { - "name": "hidden", - "in": "query", - "description": "If 'true' the developers won't be able to see this field.", - "schema": { - "type": "boolean" - } - }, - { - "name": "read_only", - "in": "query", - "description": "If 'true' the developers won't be able to change this field.", - "schema": { - "type": "boolean" - } - }, - { - "name": "position", - "in": "query", - "description": "Position of the fields definition.", - "schema": { - "type": "ref" - } - }, - { - "name": "choices", - "in": "query", - "description": "The list of predefined options for this field, URL-encoded array.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } + "type": "array", + "items": { + "type": "object" + } } } ], @@ -2551,9 +2660,12 @@ "content": {} } } - }, - "delete": { - "summary": "Fields Definition Delete", + } + }, + "/admin/api/users/{id}/suspend.xml": { + "put": { + "summary": "User Suspend (provider account)", + "tags": ["Users"], "parameters": [ { "name": "access_token", @@ -2567,7 +2679,7 @@ { "name": "id", "in": "path", - "description": "ID of the fields definition.", + "description": "ID of the user.", "required": true, "schema": { "type": "integer", @@ -2583,10 +2695,10 @@ } } }, - "/admin/api/application_plans/{application_plan_id}/limits.xml": { - "get": { - "summary": "Limits List per Application Plan", - "operationId": "plan_limits", + "/admin/api/users/{id}/unsuspend.xml": { + "put": { + "summary": "User Unsuspend (provider account)", + "tags": ["Users"], "parameters": [ { "name": "access_token", @@ -2598,29 +2710,9 @@ } }, { - "name": "page", - "in": "query", - "description": "Page in the paginated list. Defaults to 1.", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "per_page", - "in": "query", - "description": "Number of results per page. Default and max is 50.", - "schema": { - "type": "integer", - "format": "int32", - "default": 50 - } - }, - { - "name": "application_plan_id", + "name": "id", "in": "path", - "description": "ID of the application plan.", + "description": "ID of the user.", "required": true, "schema": { "type": "integer", @@ -2636,37 +2728,59 @@ } } }, - "/admin/api/accounts/{account_id}/applications/{id}/accept.xml": { - "put": { - "summary": "Application Accept", + "/admin/api/users/{user_id}/access_tokens.json": { + "post": { + "summary": "Access Token Create", + "tags": ["Access Tokens"], "parameters": [ { - "name": "access_token", + "name": "user_id", + "in": "path", + "description": "ID of the user.", + "required": true, + "schema": { + "type": "ref" + } + }, + { + "name": "name", "in": "query", - "description": "A personal Access Token", + "description": "Name of the access token.", "required": true, "schema": { "type": "string" } }, { - "name": "account_id", - "in": "path", - "description": "ID of the account.", + "name": "permission", + "in": "query", + "description": "Permission of the access token. It must be either 'ro' (read only) or 'rw' (read and write).", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { - "name": "id", - "in": "path", - "description": "ID of the application.", + "name": "scopes", + "in": "query", + "description": "Scope of the access token. URL-encoded array containing one or more of the possible values. The possible values are, for a master user [\"account_management\", \"stats\"], and for a tenant user [\"finance\", \"account_management\", \"stats\"]", "required": true, + "style": "form", + "explode": false, "schema": { - "type": "integer", - "format": "int32" + "type": "array", + "items": { + "type": "object" + } + } + }, + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" } } ], @@ -2678,9 +2792,10 @@ } } }, - "/admin/api/users/{id}/permissions.xml": { + "/admin/api/account_plans.xml": { "get": { - "summary": "User Permissions Read", + "summary": "Account Plan List", + "tags": ["Account Plans"], "parameters": [ { "name": "access_token", @@ -2690,16 +2805,6 @@ "schema": { "type": "string" } - }, - { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } } ], "responses": { @@ -2709,8 +2814,9 @@ } } }, - "put": { - "summary": "User Permissions Update", + "post": { + "summary": "Account Plan Create", + "tags": ["Account Plans"], "parameters": [ { "name": "access_token", @@ -2722,39 +2828,36 @@ } }, { - "name": "id", - "in": "path", - "description": "ID of the user.", + "name": "name", + "in": "query", + "description": "Name of the account plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { - "name": "allowed_service_ids", + "name": "approval_required", "in": "query", - "description": "IDs of the services that need to be enabled, URL-encoded array. To disable all services, set the value to '[]'. To enable all services, add parameter 'allowed_service_ids[]' with no value to the 'curl' command (can't be done in ActiveDocs)", - "style": "form", - "explode": false, + "description": "Set the 'Accounts require approval?' to 'true' or 'false'", "schema": { - "type": "array", - "items": { - "type": "object" - } + "type": "boolean" } }, { - "name": "allowed_sections", + "name": "system_name", "in": "query", - "description": "The list of sections in the admin portal that the user can access, URL-encoded array. Possible values: 'portal' (Developer Portal), 'finance' (Billing), 'settings', 'partners' (Accounts -- Applications), 'monitoring' (Analytics), 'plans' (Integration & Application Plans), 'policy_registry'. To disable all sections, set the value to '[]'.", - "style": "form", - "explode": false, + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", "schema": { - "type": "array", - "items": { - "type": "object" - } + "type": "string" + } + }, + { + "name": "state_event", + "in": "query", + "description": "State event of the account plan. It can be 'publish' or 'hide'", + "schema": { + "type": "string" } } ], @@ -2766,9 +2869,10 @@ } } }, - "/admin/api/accounts/{account_id}/messages.xml": { - "post": { - "summary": "Account Message", + "/admin/api/account_plans/{account_plan_id}/features.xml": { + "get": { + "summary": "Account Plan Features List", + "tags": ["Account Plans"], "parameters": [ { "name": "access_token", @@ -2780,32 +2884,14 @@ } }, { - "name": "account_id", + "name": "account_plan_id", "in": "path", - "description": "ID of the account.", + "description": "ID of the account plan.", "required": true, "schema": { "type": "integer", "format": "int32" } - }, - { - "name": "body", - "in": "query", - "description": "Text to send", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "subject", - "in": "query", - "description": "Subject of the message", - "required": true, - "schema": { - "type": "string" - } } ], "responses": { @@ -2816,9 +2902,10 @@ } } }, - "/admin/api/services/{service_id}/proxy/configs/{environment}/latest.json": { - "get": { - "summary": "Proxy Config Show Latest", + "/admin/api/account_plans/{account_plan_id}/features/{id}.xml": { + "post": { + "summary": "Account Plan Features Create", + "tags": ["Account Plans"], "parameters": [ { "name": "access_token", @@ -2830,9 +2917,9 @@ } }, { - "name": "service_id", + "name": "account_plan_id", "in": "path", - "description": "ID of the service.", + "description": "ID of the account plan.", "required": true, "schema": { "type": "integer", @@ -2840,12 +2927,13 @@ } }, { - "name": "environment", + "name": "id", "in": "path", - "description": "Gateway environment. Must be 'sandbox' or 'production'", + "description": "ID of the feature.", "required": true, "schema": { - "type": "string" + "type": "integer", + "format": "int32" } } ], @@ -2855,11 +2943,10 @@ "content": {} } } - } - }, - "/admin/api/accounts/{account_id}/users.xml": { - "get": { - "summary": "User List", + }, + "delete": { + "summary": "Account Plan Features Delete", + "tags": ["Account Plans"], "parameters": [ { "name": "access_token", @@ -2871,9 +2958,9 @@ } }, { - "name": "account_id", + "name": "account_plan_id", "in": "path", - "description": "ID of the account.", + "description": "ID of the account plan.", "required": true, "schema": { "type": "integer", @@ -2881,28 +2968,13 @@ } }, { - "name": "state", - "in": "query", - "description": "Filter users by State.", + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, "schema": { - "type": "string", - "enum": [ - "pending", - "suspended", - "active" - ] - } - }, - { - "name": "role", - "in": "query", - "description": "Filter users by Role.", - "schema": { - "type": "string", - "enum": [ - "member", - "admin" - ] + "type": "integer", + "format": "int32" } } ], @@ -2912,9 +2984,12 @@ "content": {} } } - }, - "post": { - "summary": "User Create", + } + }, + "/admin/api/account_plans/{id}.xml": { + "get": { + "summary": "Account Plan Read", + "tags": ["Account Plans"], "parameters": [ { "name": "access_token", @@ -2926,54 +3001,14 @@ } }, { - "name": "account_id", + "name": "id", "in": "path", - "description": "ID of the account.", + "description": "ID of the account plan.", "required": true, "schema": { "type": "integer", "format": "int32" } - }, - { - "name": "username", - "in": "query", - "description": "Username of the user.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "email", - "in": "query", - "description": "Email of the user.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "password", - "in": "query", - "description": "Password of the user.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "additional_fields", - "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } } ], "responses": { @@ -2982,11 +3017,10 @@ "content": {} } } - } - }, - "/admin/api/objects/status.json": { - "get": { - "summary": "Object deletion status for objects that are deleted asynchronously", + }, + "put": { + "summary": "Account Plan Update", + "tags": ["Account Plans"], "parameters": [ { "name": "access_token", @@ -2998,19 +3032,35 @@ } }, { - "name": "object_type", - "in": "query", - "description": "Object type has to be service, account, proxy or backend_api.", + "name": "id", + "in": "path", + "description": "ID of the account plan.", "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the account plan.", "schema": { "type": "string" } }, { - "name": "object_id", + "name": "approval_required", "in": "query", - "description": "Object ID.", - "required": true, + "description": "Set the 'Accounts require approval?' to 'true' or 'false'", + "schema": { + "type": "boolean" + } + }, + { + "name": "state_event", + "in": "query", + "description": "State event of the account plan. It can be 'publish' or 'hide'", "schema": { "type": "string" } @@ -3022,11 +3072,10 @@ "content": {} } } - } - }, - "/admin/api/accounts/{account_id}/service_contracts.xml": { - "get": { - "summary": "Service Subscription List", + }, + "delete": { + "summary": "Account Plan Delete", + "tags": ["Account Plans"], "parameters": [ { "name": "access_token", @@ -3038,9 +3087,9 @@ } }, { - "name": "account_id", + "name": "id", "in": "path", - "description": "ID of the account.", + "description": "ID of the account plan.", "required": true, "schema": { "type": "integer", @@ -3056,9 +3105,10 @@ } } }, - "/admin/api/accounts/{account_id}/users/{id}/member.xml": { + "/admin/api/account_plans/{id}/default.xml": { "put": { - "summary": "User Change Role to Member", + "summary": "Account Plan set to Default", + "tags": ["Account Plans"], "parameters": [ { "name": "access_token", @@ -3069,20 +3119,10 @@ "type": "string" } }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, { "name": "id", "in": "path", - "description": "ID of the user.", + "description": "ID of the account plan.", "required": true, "schema": { "type": "integer", @@ -3098,9 +3138,10 @@ } } }, - "/admin/api/backend_apis/{backend_api_id}/metrics/{metric_id}/methods/{id}.json": { + "/admin/api/active_docs.json": { "get": { - "summary": "Backend Method Read", + "summary": "ActiveDocs Spec List", + "tags": ["Active Docs"], "parameters": [ { "name": "access_token", @@ -3110,36 +3151,6 @@ "schema": { "type": "string" } - }, - { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the method.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } } ], "responses": { @@ -3149,8 +3160,9 @@ } } }, - "put": { - "summary": "Backend Method Update", + "post": { + "summary": "ActiveDocs Spec Create", + "tags": ["Active Docs"], "parameters": [ { "name": "access_token", @@ -3162,57 +3174,62 @@ } }, { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", + "name": "name", + "in": "query", + "description": "Name of the ActiveDocs spec", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, + "name": "system_name", + "in": "query", + "description": "System Name of the ActiveDocs spec. Only ASCII letters, numbers, dashes and underscores are allowed. If blank, 'system_name' will be generated from the 'name' parameter", "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { - "name": "id", - "in": "path", - "description": "ID of the method.", - "required": true, + "name": "service_id", + "in": "query", + "description": "Service ID of the ActiveDocs spec", "schema": { "type": "integer", "format": "int32" } }, { - "name": "friendly_name", + "name": "body", "in": "query", - "description": "Name of the method.", + "description": "ActiveDocs specification in JSON format (based on Swagger)", + "required": true, "schema": { "type": "string" } }, { - "name": "unit", + "name": "description", "in": "query", - "description": "Measure unit of the method.", + "description": "Description of the ActiveDocs spec", "schema": { "type": "string" } }, { - "name": "description", + "name": "published", "in": "query", - "description": "Description of the method.", + "description": "Set to 'true' to publish the spec on the developer portal, or 'false' to hide it. The default value is 'false'", "schema": { - "type": "ref" + "type": "boolean" + } + }, + { + "name": "skip_swagger_validations", + "in": "query", + "description": "Set to 'true' to skip validation of the Swagger specification, or 'false' to validate the spec. The default value is 'false'", + "schema": { + "type": "boolean" } } ], @@ -3222,9 +3239,12 @@ "content": {} } } - }, - "delete": { - "summary": "Backend Method Delete", + } + }, + "/admin/api/active_docs/{id}.json": { + "get": { + "summary": "ActiveDocs Spec Read", + "tags": ["Active Docs"], "parameters": [ { "name": "access_token", @@ -3235,30 +3255,10 @@ "type": "string" } }, - { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, { "name": "id", "in": "path", - "description": "ID of the method.", + "description": "ID of the ActiveDocs spec", "required": true, "schema": { "type": "integer", @@ -3272,11 +3272,10 @@ "content": {} } } - } - }, - "/admin/api/services/{service_id}/proxy/oidc_configuration.xml": { - "get": { - "summary": "OIDC Configuration Show", + }, + "put": { + "summary": "ActiveDocs Spec Update", + "tags": ["Active Docs"], "parameters": [ { "name": "access_token", @@ -3288,73 +3287,60 @@ } }, { - "name": "service_id", + "name": "id", "in": "path", - "description": "ID of the service.", + "description": "ID of the ActiveDocs spec", "required": true, "schema": { "type": "integer", "format": "int32" } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "patch": { - "summary": "OIDC Configuration Update", - "parameters": [ + }, { - "name": "access_token", + "name": "name", "in": "query", - "description": "A personal Access Token", - "required": true, + "description": "Name of the ActiveDocs spec", "schema": { "type": "string" } }, { "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, + "in": "query", + "description": "Service ID of the ActiveDocs spec", "schema": { "type": "integer", "format": "int32" } }, { - "name": "standard_flow_enabled", + "name": "body", "in": "query", - "description": "Enable Authorization Code Flow (Standard Flow)", + "description": "ActiveDocs specification in JSON format (based on Swagger)", "schema": { - "type": "boolean" + "type": "string" } }, { - "name": "implicit_flow_enabled", + "name": "description", "in": "query", - "description": "Enable Implicit Flow", + "description": "Description of the ActiveDocs spec", "schema": { - "type": "boolean" + "type": "string" } }, { - "name": "service_accounts_enabled", + "name": "published", "in": "query", - "description": "Enable Service Account Flow (Standard Flow)", + "description": "Set to 'true' to publish the spec on the developer portal, or 'false' to hide it", "schema": { "type": "boolean" } }, { - "name": "direct_access_grants_enabled", + "name": "skip_swagger_validations", "in": "query", - "description": "Enable Direct Access Grant Flow", + "description": "Set to 'true' to skip validation of the Swagger specification, or 'false' to validate the spec", "schema": { "type": "boolean" } @@ -3366,11 +3352,10 @@ "content": {} } } - } - }, - "/admin/api/users/{id}/activate.xml": { - "put": { - "summary": "User Activate (provider account)", + }, + "delete": { + "summary": "ActiveDocs Spec Delete", + "tags": ["Active Docs"], "parameters": [ { "name": "access_token", @@ -3384,7 +3369,7 @@ { "name": "id", "in": "path", - "description": "ID of the user.", + "description": "ID of the ActiveDocs spec", "required": true, "schema": { "type": "integer", @@ -3400,9 +3385,10 @@ } } }, - "/admin/api/accounts/{account_id}/users/{id}/admin.xml": { - "put": { - "summary": "User change Role to Admin", + "/admin/api/application_plans.xml": { + "get": { + "summary": "Application Plan List (all services)", + "tags": ["Application Plans"], "parameters": [ { "name": "access_token", @@ -3412,26 +3398,6 @@ "schema": { "type": "string" } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } } ], "responses": { @@ -3442,9 +3408,10 @@ } } }, - "/admin/api/account_plans.xml": { + "/admin/api/application_plans/{application_plan_id}/features.xml": { "get": { - "summary": "Account Plan List", + "summary": "Application Plan Feature List", + "tags": ["Application Plans"], "parameters": [ { "name": "access_token", @@ -3454,6 +3421,16 @@ "schema": { "type": "string" } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { @@ -3464,7 +3441,8 @@ } }, "post": { - "summary": "Account Plan Create", + "summary": "Application Plan Feature Create", + "tags": ["Application Plans"], "parameters": [ { "name": "access_token", @@ -3476,36 +3454,23 @@ } }, { - "name": "name", - "in": "query", - "description": "Name of the account plan.", + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", "required": true, "schema": { - "type": "string" - } - }, - { - "name": "approval_required", - "in": "query", - "description": "Set the 'Accounts require approval?' to 'true' or 'false'", - "schema": { - "type": "boolean" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "schema": { - "type": "string" + "type": "integer", + "format": "int32" } }, { - "name": "state_event", + "name": "feature_id", "in": "query", - "description": "State event of the account plan. It can be 'publish' or 'hide'", + "description": "ID of the feature.", + "required": true, "schema": { - "type": "string" + "type": "integer", + "format": "int32" } } ], @@ -3517,9 +3482,10 @@ } } }, - "/admin/api/backend_apis/{backend_api_id}/metrics.json": { - "get": { - "summary": "Backend Metric List", + "/admin/api/application_plans/{application_plan_id}/features/{id}.xml": { + "delete": { + "summary": "Application Plan Feature Delete", + "tags": ["Application Plans"], "parameters": [ { "name": "access_token", @@ -3531,9 +3497,9 @@ } }, { - "name": "backend_api_id", + "name": "application_plan_id", "in": "path", - "description": "ID of the Backend.", + "description": "ID of the application plan.", "required": true, "schema": { "type": "integer", @@ -3541,23 +3507,13 @@ } }, { - "name": "page", - "in": "query", - "description": "Page in the paginated list. Defaults to 1.", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "per_page", - "in": "query", - "description": "Number of results per page. Default and max is 500.", + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, "schema": { "type": "integer", - "format": "int32", - "default": 500 + "format": "int32" } } ], @@ -3567,9 +3523,13 @@ "content": {} } } - }, - "post": { - "summary": "Backend Metric Create", + } + }, + "/admin/api/application_plans/{application_plan_id}/limits.xml": { + "get": { + "summary": "Limits List per Application Plan", + "tags": ["Application Plans"], + "operationId": "plan_limits", "parameters": [ { "name": "access_token", @@ -3581,47 +3541,33 @@ } }, { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "friendly_name", + "name": "page", "in": "query", - "description": "Descriptive Name of the metric.", - "required": true, + "description": "Page in the paginated list. Defaults to 1.", "schema": { - "type": "string" + "type": "integer", + "format": "int32", + "default": 1 } }, { - "name": "system_name", + "name": "per_page", "in": "query", - "description": "System Name of the metric. If blank a system_name will be generated for you from the friendly_name parameter", + "description": "Number of results per page. Default and max is 50.", "schema": { - "type": "string" + "type": "integer", + "format": "int32", + "default": 50 } }, { - "name": "unit", - "in": "query", - "description": "Measure unit of the metric.", + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", "required": true, "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the metric.", - "schema": { - "type": "ref" + "type": "integer", + "format": "int32" } } ], @@ -3633,9 +3579,11 @@ } } }, - "/admin/api/services/{service_id}/service_plans/{id}/default.xml": { - "put": { - "summary": "Service Plan Set to Default", + "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/limits.xml": { + "get": { + "summary": "Limit List per Metric", + "tags": ["Application Plans"], + "operationId": "limits", "parameters": [ { "name": "access_token", @@ -3647,9 +3595,9 @@ } }, { - "name": "service_id", + "name": "application_plan_id", "in": "path", - "description": "ID of the service.", + "description": "ID of the application plan.", "required": true, "schema": { "type": "integer", @@ -3657,9 +3605,9 @@ } }, { - "name": "id", + "name": "metric_id", "in": "path", - "description": "ID of the service plan.", + "description": "ID of the metric.", "required": true, "schema": { "type": "integer", @@ -3673,11 +3621,10 @@ "content": {} } } - } - }, - "/admin/api/accounts/{account_id}/applications/{id}/customize_plan.xml": { - "put": { - "summary": "Application Create Plan Customization", + }, + "post": { + "summary": "Limit Create", + "tags": ["Application Plans"], "parameters": [ { "name": "access_token", @@ -3689,9 +3636,9 @@ } }, { - "name": "account_id", + "name": "application_plan_id", "in": "path", - "description": "ID of the account.", + "description": "ID of the application plan.", "required": true, "schema": { "type": "integer", @@ -3699,27 +3646,57 @@ } }, { - "name": "id", + "name": "metric_id", "in": "path", - "description": "ID of the application.", + "description": "ID of the metric.", "required": true, "schema": { "type": "integer", "format": "int32" } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/metrics.xml": { + }, + { + "name": "period", + "in": "query", + "description": "Period of the limit.", + "required": true, + "schema": { + "type": "string", + "default": "minute", + "enum": [ + "eternity", + "year", + "month", + "week", + "day", + "hour", + "minute" + ] + } + }, + { + "name": "value", + "in": "query", + "description": "Value of the limit.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/limits/{id}.xml": { "get": { - "summary": "Service Metric List", + "summary": "Limit Read", + "tags": ["Application Plans"], "parameters": [ { "name": "access_token", @@ -3731,9 +3708,29 @@ } }, { - "name": "service_id", + "name": "application_plan_id", "in": "path", - "description": "ID of the service.", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the limit.", "required": true, "schema": { "type": "integer", @@ -3748,8 +3745,9 @@ } } }, - "post": { - "summary": "Service Metric Create", + "put": { + "summary": "Limit Update", + "tags": ["Application Plans"], "parameters": [ { "name": "access_token", @@ -3761,9 +3759,9 @@ } }, { - "name": "service_id", + "name": "application_plan_id", "in": "path", - "description": "ID of the service.", + "description": "ID of the application plan.", "required": true, "schema": { "type": "integer", @@ -3771,45 +3769,102 @@ } }, { - "name": "friendly_name", - "in": "query", - "description": "Descriptive Name of the metric.", + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", "required": true, "schema": { - "type": "string" + "type": "integer", + "format": "int32" } }, { - "name": "system_name", - "in": "query", - "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", + "name": "id", + "in": "path", + "description": "ID of the limit.", + "required": true, "schema": { - "type": "string" + "type": "integer", + "format": "int32" } }, { - "name": "name", + "name": "period", "in": "query", - "description": "DEPRECATED: Please use system_name parameter", + "description": "Period of the limit.", + "required": true, "schema": { - "type": "string" + "type": "string", + "default": "minute", + "enum": [ + "eternity", + "year", + "month", + "week", + "day", + "hour", + "minute" + ] } }, { - "name": "unit", + "name": "value", "in": "query", - "description": "Measure unit of the metric.", + "description": "Value of the limit.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Limit Delete", + "tags": ["Application Plans"], + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", "required": true, "schema": { "type": "string" } }, { - "name": "description", - "in": "query", - "description": "Description of the metric.", + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, "schema": { - "type": "ref" + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the limit.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" } } ], @@ -3821,9 +3876,11 @@ } } }, - "/admin/api/services/{service_id}/features/{id}.xml": { + "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/pricing_rules.xml": { "get": { - "summary": "Service Feature Read", + "summary": "Pricing Rules List per Metric", + "tags": ["Application Plans"], + "operationId": "metric_pricing_rules", "parameters": [ { "name": "access_token", @@ -3835,9 +3892,9 @@ } }, { - "name": "service_id", + "name": "application_plan_id", "in": "path", - "description": "ID of the service.", + "description": "ID of the application plan.", "required": true, "schema": { "type": "integer", @@ -3845,9 +3902,9 @@ } }, { - "name": "id", + "name": "metric_id", "in": "path", - "description": "ID of the feature.", + "description": "ID of the metric.", "required": true, "schema": { "type": "integer", @@ -3862,8 +3919,9 @@ } } }, - "put": { - "summary": "Service Feature Update", + "post": { + "summary": "Pricing Rule Create", + "tags": ["Application Plans"], "parameters": [ { "name": "access_token", @@ -3875,9 +3933,9 @@ } }, { - "name": "service_id", + "name": "application_plan_id", "in": "path", - "description": "ID of the service.", + "description": "ID of the application plan.", "required": true, "schema": { "type": "integer", @@ -3885,9 +3943,9 @@ } }, { - "name": "id", + "name": "metric_id", "in": "path", - "description": "ID of the feature.", + "description": "ID of the metric.", "required": true, "schema": { "type": "integer", @@ -3895,17 +3953,27 @@ } }, { - "name": "name", + "name": "min", "in": "query", - "description": "Name of the feature.", + "description": "From (min) hit", "schema": { - "type": "string" + "type": "integer", + "format": "int32" } }, { - "name": "description", + "name": "max", "in": "query", - "description": "Description of the feature.", + "description": "To (max) hit", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "cost_per_unit", + "in": "query", + "description": "Cost per unit", "schema": { "type": "ref" } @@ -3917,9 +3985,12 @@ "content": {} } } - }, + } + }, + "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/pricing_rules/{id}.json": { "delete": { - "summary": "Service Feature Delete", + "summary": "Pricing Rule Delete", + "tags": ["Application Plans"], "parameters": [ { "name": "access_token", @@ -3931,9 +4002,19 @@ } }, { - "name": "service_id", + "name": "application_plan_id", "in": "path", - "description": "ID of the service.", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", "required": true, "schema": { "type": "integer", @@ -3943,7 +4024,7 @@ { "name": "id", "in": "path", - "description": "ID of the feature.", + "description": "ID of the pricing rule.", "required": true, "schema": { "type": "integer", @@ -3959,9 +4040,11 @@ } } }, - "/admin/api/application_plans.xml": { + "/admin/api/application_plans/{application_plan_id}/pricing_rules.xml": { "get": { - "summary": "Application Plan List (all services)", + "summary": "Pricing Rules List per Application Plan", + "tags": ["Application Plans"], + "operationId": "pricing_rules", "parameters": [ { "name": "access_token", @@ -3971,6 +4054,16 @@ "schema": { "type": "string" } + }, + { + "name": "application_plan_id", + "in": "path", + "description": "ID of the application plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { @@ -3981,9 +4074,10 @@ } } }, - "/admin/api/services/{service_id}/proxy.xml": { + "/admin/api/services/{service_id}/application_plans.xml": { "get": { - "summary": "Proxy Read", + "summary": "Application Plan List", + "tags": ["Application Plans"], "parameters": [ { "name": "access_token", @@ -4012,8 +4106,9 @@ } } }, - "patch": { - "summary": "Proxy Update", + "post": { + "summary": "Application Plan Create", + "tags": ["Application Plans"], "parameters": [ { "name": "access_token", @@ -4035,189 +4130,190 @@ } }, { - "name": "endpoint", - "in": "query", - "description": "Public Base URL for production environment.", - "schema": { - "type": "string" - } - }, - { - "name": "api_backend", + "name": "name", "in": "query", - "description": "Private Base URL. Caution! Do not use it if the account has API as a Product enabled. It may cause API backend usages to be removed from the Product.", + "description": "Name of the application plan.", + "required": true, "schema": { "type": "string" } }, { - "name": "credentials_location", + "name": "approval_required", "in": "query", - "description": "Credentials Location. Either headers, query or authorization for the Basic Authorization.", + "description": "Set the 'Applications require approval?' to 'true' or 'false'", "schema": { - "type": "string" + "type": "boolean" } }, { - "name": "auth_app_key", + "name": "cost_per_month", "in": "query", - "description": "Parameter/Header where App Key is expected.", + "description": "Cost per month", "schema": { - "type": "string" + "type": "ref" } }, { - "name": "auth_app_id", + "name": "setup_fee", "in": "query", - "description": "Parameter/Header where App ID is expected.", + "description": "Setup fee", "schema": { - "type": "string" + "type": "ref" } }, { - "name": "auth_user_key", + "name": "trial_period_days", "in": "query", - "description": "Parameter/Header where User Key is expected.", + "description": "Trial period days", "schema": { - "type": "string" + "type": "ref" } }, { - "name": "error_auth_failed", + "name": "system_name", "in": "query", - "description": "Error message on failed authentication.", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", "schema": { "type": "string" } }, { - "name": "error_status_auth_failed", - "in": "query", - "description": "Status code on failed authentication.", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "error_headers_auth_failed", + "name": "state_event", "in": "query", - "description": "Content-Type header on failed authentication.", + "description": "State event of the application plan. It can be 'publish' or 'hide'", "schema": { "type": "string" } - }, + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/application_plans/{id}.xml": { + "get": { + "summary": "Application Plan Read", + "tags": ["Application Plans"], + "parameters": [ { - "name": "error_auth_missing", + "name": "access_token", "in": "query", - "description": "Error message on missing authentication.", + "description": "A personal Access Token", + "required": true, "schema": { "type": "string" } }, { - "name": "error_status_auth_missing", - "in": "query", - "description": "Status code on missing authentication.", + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, "schema": { "type": "integer", "format": "int32" } }, { - "name": "error_headers_auth_missing", - "in": "query", - "description": "Content-Type header on missing authentication.", - "schema": { - "type": "string" - } - }, - { - "name": "error_no_match", - "in": "query", - "description": "Error message when no mapping rule is matched.", - "schema": { - "type": "string" - } - }, - { - "name": "error_status_no_match", - "in": "query", - "description": "Status code when no mapping rule is matched.", + "name": "id", + "in": "path", + "description": "ID of the application plan.", + "required": true, "schema": { "type": "integer", "format": "int32" } - }, + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Application Plan Update", + "tags": ["Application Plans"], + "parameters": [ { - "name": "error_headers_no_match", + "name": "access_token", "in": "query", - "description": "Content-Type header when no mapping rule is matched.", + "description": "A personal Access Token", + "required": true, "schema": { "type": "string" } }, { - "name": "error_status_limits_exceeded", - "in": "query", - "description": "Status code when usage limit exceeded.", + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, "schema": { "type": "integer", "format": "int32" } }, { - "name": "error_headers_limits_exceeded", - "in": "query", - "description": "Content-Type header when usage limit exceeded.", + "name": "id", + "in": "path", + "description": "ID of the application plan.", + "required": true, "schema": { - "type": "string" + "type": "integer", + "format": "int32" } }, { - "name": "error_limits_exceeded", + "name": "name", "in": "query", - "description": "Error message on usage limit exceeded.", + "description": "Name of the application plan.", "schema": { "type": "string" } }, { - "name": "oidc_issuer_endpoint", + "name": "approval_required", "in": "query", - "description": "Location of your OpenID Provider.", + "description": "Set the 'Applications require approval?' to 'true' or 'false'", "schema": { - "type": "string" + "type": "boolean" } }, { - "name": "oidc_issuer_type", + "name": "cost_per_month", "in": "query", - "description": "Type of your OpenID Provider.", + "description": "Cost per month", "schema": { - "type": "string" + "type": "ref" } }, { - "name": "sandbox_endpoint", + "name": "setup_fee", "in": "query", - "description": "Sandbox endpoint.", + "description": "Setup fee", "schema": { - "type": "string" + "type": "ref" } }, { - "name": "jwt_claim_with_client_id", + "name": "trial_period_days", "in": "query", - "description": "JWT Claim With ClientId Location.", + "description": "Trial period days", "schema": { - "type": "string" + "type": "ref" } }, { - "name": "jwt_claim_with_client_id_type", + "name": "state_event", "in": "query", - "description": "JWT Claim With ClientId Type. Either `plain` or `liquid`", + "description": "State event of the application plan. It can be 'publish' or 'hide'", "schema": { "type": "string" } @@ -4229,11 +4325,10 @@ "content": {} } } - } - }, - "/admin/api/accounts/{account_id}/applications/{application_id}/referrer_filters.xml": { - "get": { - "summary": "Application Referrer Filter List", + }, + "delete": { + "summary": "Application Plan Delete", + "tags": ["Application Plans"], "parameters": [ { "name": "access_token", @@ -4245,9 +4340,9 @@ } }, { - "name": "account_id", + "name": "service_id", "in": "path", - "description": "ID of the account.", + "description": "ID of the service.", "required": true, "schema": { "type": "integer", @@ -4255,9 +4350,9 @@ } }, { - "name": "application_id", + "name": "id", "in": "path", - "description": "ID of the application.", + "description": "ID of the application plan.", "required": true, "schema": { "type": "integer", @@ -4271,9 +4366,12 @@ "content": {} } } - }, - "post": { - "summary": "Application Referrer Filter Create", + } + }, + "/admin/api/services/{service_id}/application_plans/{id}/default.xml": { + "put": { + "summary": "Application Plan Set to Default", + "tags": ["Application Plans"], "parameters": [ { "name": "access_token", @@ -4285,9 +4383,9 @@ } }, { - "name": "account_id", + "name": "service_id", "in": "path", - "description": "ID of the account.", + "description": "ID of the service.", "required": true, "schema": { "type": "integer", @@ -4295,23 +4393,14 @@ } }, { - "name": "application_id", + "name": "id", "in": "path", - "description": "ID of the application.", + "description": "ID of the application plan.", "required": true, "schema": { "type": "integer", "format": "int32" } - }, - { - "name": "referrer_filter", - "in": "query", - "description": "Referrer filter to be created.", - "required": true, - "schema": { - "type": "string" - } } ], "responses": { @@ -4322,9 +4411,11 @@ } } }, - "/admin/api/users.xml": { + "/admin/api/applications.xml": { "get": { - "summary": "User List (provider account)", + "summary": "Application List (all services)", + "tags": ["Service Applications"], + "operationId": "applications", "parameters": [ { "name": "access_token", @@ -4336,88 +4427,67 @@ } }, { - "name": "state", + "name": "page", "in": "query", - "description": "Filter users by State.", + "description": "Page in the paginated list. Defaults to 1.", "schema": { - "type": "string", - "enum": [ - "pending", - "suspended", - "active" - ] + "type": "integer", + "format": "int32", + "default": 1 } }, { - "name": "role", + "name": "per_page", "in": "query", - "description": "Filter users by Role.", + "description": "Number of results per page. Default and max is 500.", "schema": { - "type": "string", - "enum": [ - "member", - "admin" - ] + "type": "integer", + "format": "int32", + "default": 500 } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "User Create (provider account)", - "parameters": [ + }, { - "name": "access_token", + "name": "active_since", "in": "query", - "description": "A personal Access Token", - "required": true, + "description": "Filter date", "schema": { "type": "string" } }, { - "name": "username", + "name": "inactive_since", "in": "query", - "description": "Username of the user.", - "required": true, + "description": "Filter date", "schema": { "type": "string" } }, { - "name": "email", + "name": "service_id", "in": "query", - "description": "Email of the user.", - "required": true, + "description": "Filter by service", "schema": { "type": "string" } }, { - "name": "password", + "name": "plan_id", "in": "query", - "description": "Password of the user.", - "required": true, + "description": "Filter by plan", "schema": { "type": "string" } }, { - "name": "additional_fields", + "name": "plan_type", "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). Additional fields are the custom fields declared for your tenant, you can find them in 'Settings >> Personal Details' for the account and in 'Settings >> Account >> Users >> Personal Details' for users. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, + "description": "Filter by plan type", "schema": { - "type": "array", - "items": { - "type": "object" - } + "type": "string", + "enum": [ + "free", + "paid" + ] } } ], @@ -4429,9 +4499,10 @@ } } }, - "/admin/api/users/{id}/member.xml": { - "put": { - "summary": "User Change Role to Member (provider account)", + "/admin/api/applications/find.xml": { + "get": { + "summary": "Application Find", + "tags": ["Service Applications"], "parameters": [ { "name": "access_token", @@ -4443,45 +4514,36 @@ } }, { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, + "name": "application_id", + "in": "query", + "description": "ID of the application.", "schema": { "type": "integer", "format": "int32" } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/users/{id}/unsuspend.xml": { - "put": { - "summary": "User Unsuspend (provider account)", - "parameters": [ + }, { - "name": "access_token", + "name": "user_key", "in": "query", - "description": "A personal Access Token", - "required": true, + "description": "user_key of the application (for user_key authentication mode).", "schema": { "type": "string" } }, { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, + "name": "app_id", + "in": "query", + "description": "app_id of the application (for app_id/app_key and oauth authentication modes).", "schema": { - "type": "integer", - "format": "int32" + "type": "string" + } + }, + { + "name": "service_id", + "in": "query", + "description": "Filter by service", + "schema": { + "type": "string" } } ], @@ -4493,9 +4555,10 @@ } } }, - "/admin/api/provider.xml": { + "/admin/api/account/authentication_providers.xml": { "get": { - "summary": "Provider Account Read", + "summary": "Authentication Providers Admin Portal List", + "tags": ["Admin Portal Authentication Providers"], "parameters": [ { "name": "access_token", @@ -4514,8 +4577,9 @@ } } }, - "put": { - "summary": "Provider Account Update", + "post": { + "summary": "Authentication Provider Admin Portal Create", + "tags": ["Admin Portal Authentication Providers"], "parameters": [ { "name": "access_token", @@ -4527,97 +4591,68 @@ } }, { - "name": "from_email", + "name": "kind", "in": "query", - "description": "New outgoing email.", + "description": "The kind of authentication provider which can be either 'auth0' or 'keycloak'. Use 'keycloak' for Red Hat Single Sign-On.", + "required": true, "schema": { "type": "string" } }, { - "name": "support_email", + "name": "name", "in": "query", - "description": "New support email.", + "description": "Name of the authentication provider.", "schema": { "type": "string" } }, { - "name": "finance_support_email", + "name": "system_name", "in": "query", - "description": "New finance support email.", + "description": "System Name of the authentication provider.", "schema": { "type": "string" } }, { - "name": "site_access_code", - "in": "query", - "description": "Developer Portal Access Code.", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/find.xml": { - "get": { - "summary": "Account Find", - "parameters": [ - { - "name": "access_token", + "name": "client_id", "in": "query", - "description": "A personal Access Token", - "required": true, + "description": "Client ID of the authentication provider.", "schema": { "type": "string" } }, { - "name": "username", + "name": "client_secret", "in": "query", - "description": "Username of the account user.", + "description": "Client Secret of the authentication provider.", "schema": { "type": "string" } }, { - "name": "email", + "name": "site", "in": "query", - "description": "Email of the account user.", + "description": "Site o Realm of the authentication provider.", "schema": { "type": "string" } }, { - "name": "user_id", - "in": "query", - "description": "ID of the account user.", - "schema": { - "type": "ref" - } - }, - { - "name": "buyer_provider_key", + "name": "skip_ssl_certificate_verification", "in": "query", - "description": "[Master API] Provider key of the account.", + "description": "Skip SSL certificate verification. False by default.", "schema": { - "type": "string" + "type": "boolean" } }, { - "name": "buyer_service_token", + "name": "published", "in": "query", - "description": "[Master API] Service token of the account service.", + "description": "Published authentication provider. False by default", "schema": { - "type": "string" + "type": "boolean" } } ], @@ -4629,9 +4664,10 @@ } } }, - "/admin/api/services/{service_id}/service_plans/{id}.xml": { + "/admin/api/account/authentication_providers/{id}.xml": { "get": { - "summary": "Service Plan Read", + "summary": "Authentication Provider Admin Portal Read", + "tags": ["Admin Portal Authentication Providers"], "parameters": [ { "name": "access_token", @@ -4642,24 +4678,13 @@ "type": "string" } }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, { "name": "id", "in": "path", - "description": "ID of the service plan.", + "description": "ID of the authentication provider.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "string" } } ], @@ -4671,7 +4696,8 @@ } }, "put": { - "summary": "Service Plan Update", + "summary": "Authentication Provider Admin Portal Update", + "tags": ["Admin Portal Authentication Providers"], "parameters": [ { "name": "access_token", @@ -4683,47 +4709,52 @@ } }, { - "name": "service_id", + "name": "id", "in": "path", - "description": "ID of the service.", + "description": "ID of the authentication provider.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { - "name": "id", - "in": "path", - "description": "ID of the service plan.", - "required": true, + "name": "client_id", + "in": "query", + "description": "Client ID of the authentication provider.", "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { - "name": "name", + "name": "client_secret", "in": "query", - "description": "Name of the service plan.", + "description": "Client Secret of the authentication provider.", "schema": { "type": "string" } }, { - "name": "approval_required", + "name": "site", "in": "query", - "description": "Set the 'Service subscriptions require approval?' to 'true' or 'false'", + "description": "Site o Realm of the authentication provider.", + "schema": { + "type": "string" + } + }, + { + "name": "skip_ssl_certificate_verification", + "in": "query", + "description": "Skip SSL certificate verification. False by default.", "schema": { "type": "boolean" } }, { - "name": "state_event", + "name": "published", "in": "query", - "description": "State event of the service plan. It can be 'publish' or 'hide'", + "description": "Published authentication provider. False by default", "schema": { - "type": "string" + "type": "boolean" } } ], @@ -4733,9 +4764,12 @@ "content": {} } } - }, - "delete": { - "summary": "Service Plan Delete", + } + }, + "/admin/api/authentication_providers.xml": { + "get": { + "summary": "Authentication Providers Developer Portal List", + "tags": ["Developer Portal Authentication Providers"], "parameters": [ { "name": "access_token", @@ -4745,26 +4779,6 @@ "schema": { "type": "string" } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the service plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } } ], "responses": { @@ -4773,223 +4787,10 @@ "content": {} } } - } - }, - "/admin/api/account/proxy_configs/{environment}.json": { - "get": { - "summary": "Proxy Configs List (Provider)", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "environment", - "in": "path", - "description": "Gateway environment. Must be 'sandbox' or 'production'", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "host", - "in": "query", - "description": "Filter by host", - "schema": { - "type": "string" - } - }, - { - "name": "version", - "in": "query", - "description": "Filter by version", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/service_plans/{service_plan_id}/features.xml": { - "get": { - "summary": "Service Plan Feature List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_plan_id", - "in": "path", - "description": "ID of the service plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Service Plan Feature Add", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_plan_id", - "in": "path", - "description": "ID of the service plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "feature_id", - "in": "query", - "description": "ID of the feature.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/policies.json": { - "get": { - "summary": "APIcast Policy Registry", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/applications/{application_id}/keys/{key}.xml": { - "delete": { - "summary": "Application Key Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "application_id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "key", - "in": "path", - "description": "app_key to be deleted.", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/authentication_providers.xml": { - "get": { - "summary": "Authentication Providers Developer Portal List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Authentication Provider Developer Portal Create", + }, + "post": { + "summary": "Authentication Provider Developer Portal Create", + "tags": ["Developer Portal Authentication Providers"], "parameters": [ { "name": "access_token", @@ -5138,41 +4939,10 @@ } } }, - "/admin/api/services/{service_id}/proxy/deploy.xml": { - "post": { - "summary": "Proxy Deploy", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/account/authentication_providers/{id}.xml": { + "/admin/api/authentication_providers/{id}.xml": { "get": { - "summary": "Authentication Provider Admin Portal Read", + "summary": "Authentication Provider Read", + "tags": ["Developer Portal Authentication Providers"], "parameters": [ { "name": "access_token", @@ -5201,7 +4971,8 @@ } }, "put": { - "summary": "Authentication Provider Admin Portal Update", + "summary": "Authentication Provider Developer Portal Update", + "tags": ["Developer Portal Authentication Providers"], "parameters": [ { "name": "access_token", @@ -5246,17 +5017,25 @@ } }, { - "name": "skip_ssl_certificate_verification", + "name": "published", "in": "query", - "description": "Skip SSL certificate verification. False by default.", + "description": "Published authentication provider. False by default", "schema": { "type": "boolean" } }, { - "name": "published", + "name": "skip_ssl_certificate_verification", "in": "query", - "description": "Published authentication provider. False by default", + "description": "Skip SSL certificate verification. False by default.", + "schema": { + "type": "boolean" + } + }, + { + "name": "automatically_approve_accounts", + "in": "query", + "description": "Automatically approve accounts. False by default.", "schema": { "type": "boolean" } @@ -5270,9 +5049,10 @@ } } }, - "/admin/api/accounts/{account_id}/applications/{id}/resume.xml": { - "put": { - "summary": "Application Resume", + "/admin/api/backend_apis.json": { + "get": { + "summary": "Backend List", + "tags": ["Backend APIs"], "parameters": [ { "name": "access_token", @@ -5284,23 +5064,78 @@ } }, { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", "schema": { "type": "integer", - "format": "int32" + "format": "int32", + "default": 1 } }, { - "name": "id", - "in": "path", - "description": "ID of the application.", - "required": true, + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 500.", "schema": { "type": "integer", - "format": "int32" + "format": "int32", + "default": 500 + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Backend Create", + "tags": ["Backend APIs"], + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "query", + "description": "Name of the Backend", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the Backend", + "schema": { + "type": "string" + } + }, + { + "name": "private_endpoint", + "in": "query", + "description": "Private Base URL (your API)", + "required": true, + "schema": { + "type": "string" } } ], @@ -5312,9 +5147,10 @@ } } }, - "/admin/api/services/{service_id}/proxy/policies.json": { + "/admin/api/backend_apis/{id}.json": { "get": { - "summary": "Proxy Policies Chain Show", + "summary": "Backend Read", + "tags": ["Backend APIs"], "parameters": [ { "name": "access_token", @@ -5326,9 +5162,9 @@ } }, { - "name": "service_id", + "name": "id", "in": "path", - "description": "ID of the service.", + "description": "ID of the Backend.", "required": true, "schema": { "type": "integer", @@ -5344,7 +5180,8 @@ } }, "put": { - "summary": "Proxy Policies Chain Update", + "summary": "Backend Update", + "tags": ["Backend APIs"], "parameters": [ { "name": "access_token", @@ -5356,9 +5193,9 @@ } }, { - "name": "service_id", + "name": "id", "in": "path", - "description": "ID of the service.", + "description": "ID of the Backend.", "required": true, "schema": { "type": "integer", @@ -5366,10 +5203,25 @@ } }, { - "name": "policies_config", + "name": "name", "in": "query", - "description": "Proxy policies chain", - "required": true, + "description": "Name of the Backend", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the Backend", + "schema": { + "type": "string" + } + }, + { + "name": "private_endpoint", + "in": "query", + "description": "Private Base URL (your API)", "schema": { "type": "string" } @@ -5381,11 +5233,10 @@ "content": {} } } - } - }, - "/admin/api/accounts/{id}/make_pending.xml": { - "put": { - "summary": "Account Reset to Pending", + }, + "delete": { + "summary": "Backend Delete", + "tags": ["Backend APIs"], "parameters": [ { "name": "access_token", @@ -5399,7 +5250,7 @@ { "name": "id", "in": "path", - "description": "ID of the account.", + "description": "ID of the Backend.", "required": true, "schema": { "type": "integer", @@ -5415,9 +5266,10 @@ } } }, - "/admin/api/services/{service_id}/metrics/{metric_id}/methods.xml": { + "/admin/api/backend_apis/{backend_api_id}/mapping_rules.json": { "get": { - "summary": "Service Method List", + "summary": "Backend Mapping Rules List", + "tags": ["Backend APIs"], "parameters": [ { "name": "access_token", @@ -5429,9 +5281,9 @@ } }, { - "name": "service_id", + "name": "backend_api_id", "in": "path", - "description": "ID of the service.", + "description": "ID of the Backend.", "required": true, "schema": { "type": "integer", @@ -5439,13 +5291,23 @@ } }, { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", "schema": { "type": "integer", - "format": "int32" + "format": "int32", + "default": 1 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 500.", + "schema": { + "type": "integer", + "format": "int32", + "default": 500 } } ], @@ -5457,7 +5319,8 @@ } }, "post": { - "summary": "Service Method Create", + "summary": "Backend Mapping Rule Create", + "tags": ["Backend APIs"], "parameters": [ { "name": "access_token", @@ -5469,9 +5332,9 @@ } }, { - "name": "service_id", + "name": "backend_api_id", "in": "path", - "description": "ID of the service.", + "description": "ID of the Backend.", "required": true, "schema": { "type": "integer", @@ -5479,45 +5342,56 @@ } }, { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", + "name": "http_method", + "in": "query", + "description": "HTTP method.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { - "name": "friendly_name", + "name": "pattern", "in": "query", - "description": "Name of the method.", + "description": "Mapping Rule pattern.", "required": true, "schema": { "type": "string" } }, { - "name": "system_name", + "name": "delta", "in": "query", - "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", + "description": "Increase the metric by this delta.", + "required": true, "schema": { - "type": "string" + "type": "integer", + "format": "int32" } }, { - "name": "unit", + "name": "metric_id", "in": "query", - "description": "Measure unit of the method.", + "description": "Metric ID.", "required": true, "schema": { - "type": "string" + "type": "integer", + "format": "int32" } }, { - "name": "description", + "name": "position", "in": "query", - "description": "Description of the method.", + "description": "Mapping Rule position", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "last", + "in": "query", + "description": "Last matched Mapping Rule to process", "schema": { "type": "ref" } @@ -5531,9 +5405,10 @@ } } }, - "/admin/api/accounts/{account_id}/applications/{id}/decustomize_plan.xml": { - "put": { - "summary": "Application Delete Plan Customization", + "/admin/api/backend_apis/{backend_api_id}/mapping_rules/{id}.json": { + "get": { + "summary": "Backend Mapping Rules Read", + "tags": ["Backend APIs"], "parameters": [ { "name": "access_token", @@ -5545,9 +5420,9 @@ } }, { - "name": "account_id", + "name": "backend_api_id", "in": "path", - "description": "ID of the account.", + "description": "ID of the Backend.", "required": true, "schema": { "type": "integer", @@ -5557,7 +5432,7 @@ { "name": "id", "in": "path", - "description": "ID of the application.", + "description": "Mapping Rule ID.", "required": true, "schema": { "type": "integer", @@ -5571,11 +5446,10 @@ "content": {} } } - } - }, - "/admin/api/accounts/{account_id}/users/{id}.xml": { - "get": { - "summary": "User Read", + }, + "put": { + "summary": "Backend Mapping Rule Update", + "tags": ["Backend APIs"], "parameters": [ { "name": "access_token", @@ -5587,9 +5461,9 @@ } }, { - "name": "account_id", + "name": "backend_api_id", "in": "path", - "description": "ID of the account.", + "description": "ID of the Backend.", "required": true, "schema": { "type": "integer", @@ -5599,88 +5473,62 @@ { "name": "id", "in": "path", - "description": "ID of the user.", + "description": "Mapping Rule ID.", "required": true, "schema": { "type": "integer", "format": "int32" } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "User Update", - "parameters": [ + }, { - "name": "access_token", + "name": "http_method", "in": "query", - "description": "A personal Access Token", - "required": true, + "description": "HTTP method.", "schema": { "type": "string" } }, { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, + "name": "pattern", + "in": "query", + "description": "Mapping Rule pattern.", "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, + "name": "delta", + "in": "query", + "description": "Increase the metric by this delta.", "schema": { "type": "integer", "format": "int32" } }, { - "name": "username", - "in": "query", - "description": "Username of the user.", - "schema": { - "type": "string" - } - }, - { - "name": "email", + "name": "metric_id", "in": "query", - "description": "Email of the user.", + "description": "Metric ID.", "schema": { - "type": "string" + "type": "integer", + "format": "int32" } }, { - "name": "password", + "name": "position", "in": "query", - "description": "Password of the user.", + "description": "Mapping Rule position", "schema": { - "type": "string" + "type": "integer", + "format": "int32" } }, { - "name": "additional_fields", + "name": "last", "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, + "description": "Last matched Mapping Rule to process", "schema": { - "type": "array", - "items": { - "type": "object" - } + "type": "ref" } } ], @@ -5692,7 +5540,8 @@ } }, "delete": { - "summary": "User Delete", + "summary": "Backend Mapping Rule Delete", + "tags": ["Backend APIs"], "parameters": [ { "name": "access_token", @@ -5704,9 +5553,9 @@ } }, { - "name": "account_id", + "name": "backend_api_id", "in": "path", - "description": "ID of the account.", + "description": "ID of the Backend.", "required": true, "schema": { "type": "integer", @@ -5716,7 +5565,7 @@ { "name": "id", "in": "path", - "description": "ID of the user.", + "description": "Mapping Rule ID.", "required": true, "schema": { "type": "integer", @@ -5732,9 +5581,10 @@ } } }, - "/admin/api/accounts/{account_id}/users/{id}/activate.xml": { - "put": { - "summary": "User Activate", + "/admin/api/backend_apis/{backend_api_id}/metrics.json": { + "get": { + "summary": "Backend Metric List", + "tags": ["Backend APIs"], "parameters": [ { "name": "access_token", @@ -5746,9 +5596,9 @@ } }, { - "name": "account_id", + "name": "backend_api_id", "in": "path", - "description": "ID of the account.", + "description": "ID of the Backend.", "required": true, "schema": { "type": "integer", @@ -5756,35 +5606,23 @@ } }, { - "name": "id", - "in": "path", - "description": "ID of the user.", - "required": true, + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", "schema": { "type": "integer", - "format": "int32" + "format": "int32", + "default": 1 } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/fields_definitions.json": { - "get": { - "summary": "Fields Definitions List", - "parameters": [ + }, { - "name": "access_token", + "name": "per_page", "in": "query", - "description": "A personal Access Token", - "required": true, + "description": "Number of results per page. Default and max is 500.", "schema": { - "type": "string" + "type": "integer", + "format": "int32", + "default": 500 } } ], @@ -5796,7 +5634,8 @@ } }, "post": { - "summary": "Fields Definition Create", + "summary": "Backend Metric Create", + "tags": ["Backend APIs"], "parameters": [ { "name": "access_token", @@ -5808,73 +5647,47 @@ } }, { - "name": "target", - "in": "query", - "description": "Target entity of fields definition.", + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", "required": true, "schema": { - "type": "string", - "default": "account", - "enum": [ - "Account", - "User", - "Cinstance" - ] + "type": "integer", + "format": "int32" } }, { - "name": "name", + "name": "friendly_name", "in": "query", - "description": "Name of the fields definition to be created.", + "description": "Descriptive Name of the metric.", "required": true, "schema": { "type": "string" } }, { - "name": "label", + "name": "system_name", "in": "query", - "description": "The field title your developers will see.", - "required": true, + "description": "System Name of the metric. If blank a system_name will be generated for you from the friendly_name parameter", "schema": { "type": "string" } }, { - "name": "required", - "in": "query", - "description": "If 'true' the field will be required for developers.", - "schema": { - "type": "boolean" - } - }, - { - "name": "hidden", - "in": "query", - "description": "If 'true' the developers won't be able to see this field.", - "schema": { - "type": "boolean" - } - }, - { - "name": "read_only", + "name": "unit", "in": "query", - "description": "If 'true' the developers won't be able to change this field.", + "description": "Measure unit of the metric.", + "required": true, "schema": { - "type": "boolean" + "type": "string" } }, { - "name": "choices", + "name": "description", "in": "query", - "description": "The list of predefined options for this field, URL-encoded array.", - "style": "form", - "explode": false, + "description": "Description of the metric.", "schema": { - "type": "array", - "items": { - "type": "object" - } + "type": "ref" } } ], @@ -5886,9 +5699,10 @@ } } }, - "/admin/api/accounts/{id}/approve.xml": { - "put": { - "summary": "Account Approve", + "/admin/api/backend_apis/{backend_api_id}/metrics/{id}.json": { + "get": { + "summary": "Backend Metric Read", + "tags": ["Backend APIs"], "parameters": [ { "name": "access_token", @@ -5899,10 +5713,20 @@ "type": "string" } }, + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, { "name": "id", "in": "path", - "description": "ID of the account.", + "description": "ID of the metric.", "required": true, "schema": { "type": "integer", @@ -5916,12 +5740,10 @@ "content": {} } } - } - }, - "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/limits.xml": { - "get": { - "summary": "Limit List per Metric", - "operationId": "limits", + }, + "put": { + "summary": "Backend Metric Update", + "tags": ["Backend APIs"], "parameters": [ { "name": "access_token", @@ -5933,9 +5755,9 @@ } }, { - "name": "application_plan_id", + "name": "backend_api_id", "in": "path", - "description": "ID of the application plan.", + "description": "ID of the Backend.", "required": true, "schema": { "type": "integer", @@ -5943,7 +5765,7 @@ } }, { - "name": "metric_id", + "name": "id", "in": "path", "description": "ID of the metric.", "required": true, @@ -5951,6 +5773,30 @@ "type": "integer", "format": "int32" } + }, + { + "name": "friendly_name", + "in": "query", + "description": "Name of the metric.", + "schema": { + "type": "string" + } + }, + { + "name": "unit", + "in": "query", + "description": "Measure unit of the metric.", + "schema": { + "type": "string" + } + }, + { + "name": "description", + "in": "query", + "description": "Description of the metric.", + "schema": { + "type": "ref" + } } ], "responses": { @@ -5960,8 +5806,9 @@ } } }, - "post": { - "summary": "Limit Create", + "delete": { + "summary": "Backend Metric Delete", + "tags": ["Backend APIs"], "parameters": [ { "name": "access_token", @@ -5973,9 +5820,9 @@ } }, { - "name": "application_plan_id", + "name": "backend_api_id", "in": "path", - "description": "ID of the application plan.", + "description": "ID of the Backend.", "required": true, "schema": { "type": "integer", @@ -5983,7 +5830,7 @@ } }, { - "name": "metric_id", + "name": "id", "in": "path", "description": "ID of the metric.", "required": true, @@ -5991,35 +5838,6 @@ "type": "integer", "format": "int32" } - }, - { - "name": "period", - "in": "query", - "description": "Period of the limit.", - "required": true, - "schema": { - "type": "string", - "default": "minute", - "enum": [ - "eternity", - "year", - "month", - "week", - "day", - "hour", - "minute" - ] - } - }, - { - "name": "value", - "in": "query", - "description": "Value of the limit.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } } ], "responses": { @@ -6030,9 +5848,10 @@ } } }, - "/admin/api/signup.xml": { - "post": { - "summary": "Signup Express (Account Create)", + "/admin/api/backend_apis/{backend_api_id}/metrics/{metric_id}/methods.json": { + "get": { + "summary": "Backend Method List", + "tags": ["Backend APIs"], "parameters": [ { "name": "access_token", @@ -6044,79 +5863,43 @@ } }, { - "name": "org_name", - "in": "query", - "description": "Organization Name of the developer account.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "username", - "in": "query", - "description": "Username of the admin user (on the new developer account).", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "email", - "in": "query", - "description": "Email of the admin user.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "password", - "in": "query", - "description": "Password of the admin user.", + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_plan_id", - "in": "query", - "description": "ID of the account plan (if not assigned default will be used instead).", "schema": { "type": "integer", "format": "int32" } }, { - "name": "service_plan_id", - "in": "query", - "description": "ID of the service plan (if not assigned default will be used instead).", + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, "schema": { "type": "integer", "format": "int32" } }, { - "name": "application_plan_id", + "name": "page", "in": "query", - "description": "ID of the application plan (if not assigned default will be used instead).", + "description": "Page in the paginated list. Defaults to 1.", "schema": { "type": "integer", - "format": "int32" + "format": "int32", + "default": 1 } }, { - "name": "additional_fields", + "name": "per_page", "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, + "description": "Number of results per page. Default and max is 500.", "schema": { - "type": "array", - "items": { - "type": "object" - } + "type": "integer", + "format": "int32", + "default": 500 } } ], @@ -6126,11 +5909,10 @@ "content": {} } } - } - }, - "/admin/api/account_plans/{account_plan_id}/features.xml": { - "get": { - "summary": "Account Plan Features List", + }, + "post": { + "summary": "Backend Method Create", + "tags": ["Backend APIs"], "parameters": [ { "name": "access_token", @@ -6142,68 +5924,57 @@ } }, { - "name": "account_plan_id", + "name": "backend_api_id", "in": "path", - "description": "ID of the account plan.", + "description": "ID of the Backend.", "required": true, "schema": { "type": "integer", "format": "int32" } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/applications/find.xml": { - "get": { - "summary": "Application Find", - "parameters": [ + }, { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", "required": true, "schema": { - "type": "string" + "type": "integer", + "format": "int32" } }, { - "name": "application_id", + "name": "friendly_name", "in": "query", - "description": "ID of the application.", + "description": "Descriptive Name of the metric.", + "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { - "name": "user_key", + "name": "system_name", "in": "query", - "description": "user_key of the application (for user_key authentication mode).", + "description": "System Name of the metric. If blank a system_name will be generated for you from the friendly_name parameter", "schema": { "type": "string" } }, { - "name": "app_id", + "name": "unit", "in": "query", - "description": "app_id of the application (for app_id/app_key and oauth authentication modes).", + "description": "Measure unit of the metric.", + "required": true, "schema": { "type": "string" } }, { - "name": "service_id", + "name": "description", "in": "query", - "description": "Filter by service", + "description": "Description of the metric.", "schema": { - "type": "string" + "type": "ref" } } ], @@ -6215,10 +5986,10 @@ } } }, - "/admin/api/services/{service_id}/metrics/{id}.xml": { + "/admin/api/backend_apis/{backend_api_id}/metrics/{metric_id}/methods/{id}.json": { "get": { - "summary": "Service Metric Read", - "operationId": "service_metric", + "summary": "Backend Method Read", + "tags": ["Backend APIs"], "parameters": [ { "name": "access_token", @@ -6230,9 +6001,9 @@ } }, { - "name": "service_id", + "name": "backend_api_id", "in": "path", - "description": "ID of the service.", + "description": "ID of the Backend.", "required": true, "schema": { "type": "integer", @@ -6240,7 +6011,7 @@ } }, { - "name": "id", + "name": "metric_id", "in": "path", "description": "ID of the metric.", "required": true, @@ -6248,6 +6019,16 @@ "type": "integer", "format": "int32" } + }, + { + "name": "id", + "in": "path", + "description": "ID of the method.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { @@ -6258,7 +6039,8 @@ } }, "put": { - "summary": "Service Metric Update", + "summary": "Backend Method Update", + "tags": ["Backend APIs"], "parameters": [ { "name": "access_token", @@ -6270,9 +6052,9 @@ } }, { - "name": "service_id", + "name": "backend_api_id", "in": "path", - "description": "ID of the service.", + "description": "ID of the Backend.", "required": true, "schema": { "type": "integer", @@ -6280,7 +6062,7 @@ } }, { - "name": "id", + "name": "metric_id", "in": "path", "description": "ID of the metric.", "required": true, @@ -6289,10 +6071,20 @@ "format": "int32" } }, + { + "name": "id", + "in": "path", + "description": "ID of the method.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, { "name": "friendly_name", "in": "query", - "description": "Name of the metric.", + "description": "Name of the method.", "schema": { "type": "string" } @@ -6300,7 +6092,7 @@ { "name": "unit", "in": "query", - "description": "Measure unit of the metric.", + "description": "Measure unit of the method.", "schema": { "type": "string" } @@ -6308,7 +6100,7 @@ { "name": "description", "in": "query", - "description": "Description of the metric.", + "description": "Description of the method.", "schema": { "type": "ref" } @@ -6322,7 +6114,8 @@ } }, "delete": { - "summary": "Service Metric Delete", + "summary": "Backend Method Delete", + "tags": ["Backend APIs"], "parameters": [ { "name": "access_token", @@ -6334,9 +6127,9 @@ } }, { - "name": "service_id", + "name": "backend_api_id", "in": "path", - "description": "ID of the service.", + "description": "ID of the Backend.", "required": true, "schema": { "type": "integer", @@ -6344,7 +6137,7 @@ } }, { - "name": "id", + "name": "metric_id", "in": "path", "description": "ID of the metric.", "required": true, @@ -6352,6 +6145,16 @@ "type": "integer", "format": "int32" } + }, + { + "name": "id", + "in": "path", + "description": "ID of the method.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { @@ -6362,9 +6165,10 @@ } } }, - "/admin/api/services/{service_id}/application_plans/{id}/default.xml": { - "put": { - "summary": "Application Plan Set to Default", + "/admin/api/services/{service_id}/backend_usages.json": { + "get": { + "summary": "Backend Usage List", + "tags": ["Backends"], "parameters": [ { "name": "access_token", @@ -6384,16 +6188,6 @@ "type": "integer", "format": "int32" } - }, - { - "name": "id", - "in": "path", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } } ], "responses": { @@ -6402,11 +6196,10 @@ "content": {} } } - } - }, - "/admin/api/service_plans/{service_plan_id}/features/{id}.xml": { - "delete": { - "summary": "Service Plan Features Delete", + }, + "post": { + "summary": "Backend Usage Create", + "tags": ["Backends"], "parameters": [ { "name": "access_token", @@ -6418,9 +6211,9 @@ } }, { - "name": "service_plan_id", + "name": "service_id", "in": "path", - "description": "ID of the service plan.", + "description": "ID of the service.", "required": true, "schema": { "type": "integer", @@ -6428,10 +6221,18 @@ } }, { - "name": "id", - "in": "path", - "description": "ID of the feature.", + "name": "backend_api_id", + "in": "query", + "description": "Backend to be added to the Service (Product).", "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "path", + "in": "query", + "description": "Path of the Backend for this product.", "schema": { "type": "integer", "format": "int32" @@ -6446,9 +6247,10 @@ } } }, - "/admin/api/services/{service_id}/application_plans/{id}.xml": { + "/admin/api/services/{service_id}/backend_usages/{id}.json": { "get": { - "summary": "Application Plan Read", + "summary": "Backend Usage Read", + "tags": ["Backends"], "parameters": [ { "name": "access_token", @@ -6472,7 +6274,7 @@ { "name": "id", "in": "path", - "description": "ID of the application plan.", + "description": "ID of the Backend Usage.", "required": true, "schema": { "type": "integer", @@ -6488,7 +6290,8 @@ } }, "put": { - "summary": "Application Plan Update", + "summary": "Backend Usage Update", + "tags": ["Backends"], "parameters": [ { "name": "access_token", @@ -6512,7 +6315,7 @@ { "name": "id", "in": "path", - "description": "ID of the application plan.", + "description": "ID of the Backend Usage.", "required": true, "schema": { "type": "integer", @@ -6520,51 +6323,12 @@ } }, { - "name": "name", + "name": "path", "in": "query", - "description": "Name of the application plan.", + "description": "Path of the Backend for this product.", "schema": { - "type": "string" - } - }, - { - "name": "approval_required", - "in": "query", - "description": "Set the 'Applications require approval?' to 'true' or 'false'", - "schema": { - "type": "boolean" - } - }, - { - "name": "cost_per_month", - "in": "query", - "description": "Cost per month", - "schema": { - "type": "ref" - } - }, - { - "name": "setup_fee", - "in": "query", - "description": "Setup fee", - "schema": { - "type": "ref" - } - }, - { - "name": "trial_period_days", - "in": "query", - "description": "Trial period days", - "schema": { - "type": "ref" - } - }, - { - "name": "state_event", - "in": "query", - "description": "State event of the application plan. It can be 'publish' or 'hide'", - "schema": { - "type": "string" + "type": "integer", + "format": "int32" } } ], @@ -6576,7 +6340,8 @@ } }, "delete": { - "summary": "Application Plan Delete", + "summary": "Backend Usage Delete", + "tags": ["Backends"], "parameters": [ { "name": "access_token", @@ -6600,7 +6365,7 @@ { "name": "id", "in": "path", - "description": "ID of the application plan.", + "description": "ID of the Backend Usage.", "required": true, "schema": { "type": "integer", @@ -6616,9 +6381,10 @@ } } }, - "/admin/api/features/{id}.xml": { + "/admin/api/features.xml": { "get": { - "summary": "Account Feature Read", + "summary": "Account Features List", + "tags": ["Account Features"], "parameters": [ { "name": "access_token", @@ -6628,16 +6394,6 @@ "schema": { "type": "string" } - }, - { - "name": "id", - "in": "path", - "description": "ID of the feature.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } } ], "responses": { @@ -6647,8 +6403,9 @@ } } }, - "put": { - "summary": "Account Feature Update", + "post": { + "summary": "Account Feature Create", + "tags": ["Account Features"], "parameters": [ { "name": "access_token", @@ -6660,20 +6417,18 @@ } }, { - "name": "id", - "in": "path", - "description": "ID of the feature.", + "name": "name", + "in": "query", + "description": "Name of the feature.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { - "name": "name", + "name": "system_name", "in": "query", - "description": "Name of the feature.", - "required": true, + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", "schema": { "type": "string" } @@ -6685,9 +6440,12 @@ "content": {} } } - }, - "delete": { - "summary": "Account Feature Delete", + } + }, + "/admin/api/features/{id}.xml": { + "get": { + "summary": "Account Feature Read", + "tags": ["Account Features"], "parameters": [ { "name": "access_token", @@ -6715,11 +6473,10 @@ "content": {} } } - } - }, - "/admin/api/accounts/{account_id}/service_contracts/{id}.xml": { - "delete": { - "summary": "Service Subscription Delete", + }, + "put": { + "summary": "Account Feature Update", + "tags": ["Account Features"], "parameters": [ { "name": "access_token", @@ -6731,9 +6488,9 @@ } }, { - "name": "account_id", + "name": "id", "in": "path", - "description": "ID of the account.", + "description": "ID of the feature.", "required": true, "schema": { "type": "integer", @@ -6741,13 +6498,12 @@ } }, { - "name": "id", - "in": "path", - "description": "ID of the service contract.", + "name": "name", + "in": "query", + "description": "Name of the feature.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "string" } } ], @@ -6757,11 +6513,10 @@ "content": {} } } - } - }, - "/admin/api/account_plans/{id}.xml": { - "get": { - "summary": "Account Plan Read", + }, + "delete": { + "summary": "Account Feature Delete", + "tags": ["Account Features"], "parameters": [ { "name": "access_token", @@ -6775,7 +6530,7 @@ { "name": "id", "in": "path", - "description": "ID of the account plan.", + "description": "ID of the feature.", "required": true, "schema": { "type": "integer", @@ -6789,9 +6544,33 @@ "content": {} } } + } + }, + "/admin/api/fields_definitions.json": { + "get": { + "summary": "Fields Definitions List", + "tags": ["Fields Definitions"], + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } }, - "put": { - "summary": "Account Plan Update", + "post": { + "summary": "Fields Definition Create", + "tags": ["Fields Definitions"], "parameters": [ { "name": "access_token", @@ -6803,67 +6582,73 @@ } }, { - "name": "id", - "in": "path", - "description": "ID of the account plan.", + "name": "target", + "in": "query", + "description": "Target entity of fields definition.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "string", + "default": "account", + "enum": [ + "Account", + "User", + "Cinstance" + ] } }, { "name": "name", "in": "query", - "description": "Name of the account plan.", + "description": "Name of the fields definition to be created.", + "required": true, "schema": { "type": "string" } }, { - "name": "approval_required", + "name": "label", "in": "query", - "description": "Set the 'Accounts require approval?' to 'true' or 'false'", + "description": "The field title your developers will see.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "required", + "in": "query", + "description": "If 'true' the field will be required for developers.", "schema": { "type": "boolean" } }, { - "name": "state_event", + "name": "hidden", "in": "query", - "description": "State event of the account plan. It can be 'publish' or 'hide'", + "description": "If 'true' the developers won't be able to see this field.", "schema": { - "type": "string" + "type": "boolean" } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Account Plan Delete", - "parameters": [ + }, { - "name": "access_token", + "name": "read_only", "in": "query", - "description": "A personal Access Token", - "required": true, + "description": "If 'true' the developers won't be able to change this field.", "schema": { - "type": "string" + "type": "boolean" } }, { - "name": "id", - "in": "path", - "description": "ID of the account plan.", - "required": true, + "name": "choices", + "in": "query", + "description": "The list of predefined options for this field, URL-encoded array.", + "style": "form", + "explode": false, "schema": { - "type": "integer", - "format": "int32" + "type": "array", + "items": { + "type": "object" + } } } ], @@ -6875,9 +6660,10 @@ } } }, - "/admin/api/services/{service_id}/application_plans.xml": { + "/admin/api/fields_definitions/{id}.json": { "get": { - "summary": "Application Plan List", + "summary": "Fields Definition Read", + "tags": ["Fields Definitions"], "parameters": [ { "name": "access_token", @@ -6889,9 +6675,9 @@ } }, { - "name": "service_id", + "name": "id", "in": "path", - "description": "ID of the service.", + "description": "ID of the fields definition.", "required": true, "schema": { "type": "integer", @@ -6906,8 +6692,9 @@ } } }, - "post": { - "summary": "Application Plan Create", + "put": { + "summary": "Fields Definition Update", + "tags": ["Fields Definitions"], "parameters": [ { "name": "access_token", @@ -6919,9 +6706,9 @@ } }, { - "name": "service_id", + "name": "id", "in": "path", - "description": "ID of the service.", + "description": "ID of the fields definition.", "required": true, "schema": { "type": "integer", @@ -6929,58 +6716,141 @@ } }, { - "name": "name", + "name": "target", "in": "query", - "description": "Name of the application plan.", + "description": "Target entity of fields definition.", "required": true, "schema": { - "type": "string" + "type": "string", + "default": "account", + "enum": [ + "Account", + "User", + "Cinstance" + ] } }, { - "name": "approval_required", + "name": "label", "in": "query", - "description": "Set the 'Applications require approval?' to 'true' or 'false'", + "description": "The field title your developers will see.", "schema": { - "type": "boolean" + "type": "string" } }, { - "name": "cost_per_month", + "name": "required", "in": "query", - "description": "Cost per month", + "description": "If 'true' the field will be required for developers.", "schema": { - "type": "ref" + "type": "boolean" } }, { - "name": "setup_fee", + "name": "hidden", "in": "query", - "description": "Setup fee", + "description": "If 'true' the developers won't be able to see this field.", "schema": { - "type": "ref" + "type": "boolean" } }, { - "name": "trial_period_days", + "name": "read_only", "in": "query", - "description": "Trial period days", + "description": "If 'true' the developers won't be able to change this field.", + "schema": { + "type": "boolean" + } + }, + { + "name": "position", + "in": "query", + "description": "Position of the fields definition.", "schema": { "type": "ref" } }, { - "name": "system_name", + "name": "choices", "in": "query", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "description": "The list of predefined options for this field, URL-encoded array.", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Fields Definition Delete", + "tags": ["Fields Definitions"], + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, "schema": { "type": "string" } }, { - "name": "state_event", + "name": "id", + "in": "path", + "description": "ID of the fields definition.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/objects/status.json": { + "get": { + "summary": "Object deletion status for objects that are deleted asynchronously", + "tags": ["Object Deletion Status"], + "parameters": [ + { + "name": "access_token", "in": "query", - "description": "State event of the application plan. It can be 'publish' or 'hide'", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "object_type", + "in": "query", + "description": "Object type has to be service, account, proxy or backend_api.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "object_id", + "in": "query", + "description": "Object ID.", + "required": true, "schema": { "type": "string" } @@ -6997,6 +6867,7 @@ "/admin/api/personal/access_tokens.json": { "get": { "summary": "Personal Access Token List", + "tags": ["Access Tokens"], "parameters": [ { "name": "name", @@ -7025,6 +6896,7 @@ }, "post": { "summary": "Personal Access Token Create", + "tags": ["Access Tokens"], "parameters": [ { "name": "name", @@ -7076,27 +6948,27 @@ } } }, - "/admin/api/application_plans/{application_plan_id}/features.xml": { + "/admin/api/personal/access_tokens/{id}.json": { "get": { - "summary": "Application Plan Feature List", + "summary": "Personal Access Token Read", + "tags": ["Access Tokens"], "parameters": [ { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", + "name": "id", + "in": "path", + "description": "ID or value of the access token.", "required": true, "schema": { - "type": "string" + "type": "ref" } }, { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", + "name": "access_token", + "in": "query", + "description": "A personal Access Token", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "string" } } ], @@ -7107,36 +6979,26 @@ } } }, - "post": { - "summary": "Application Plan Feature Create", + "delete": { + "summary": "Personal Access Token Delete", + "tags": ["Access Tokens"], "parameters": [ { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "application_plan_id", + "name": "id", "in": "path", - "description": "ID of the application plan.", + "description": "ID or value of the access token.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "ref" } }, { - "name": "feature_id", + "name": "access_token", "in": "query", - "description": "ID of the feature.", + "description": "A personal Access Token", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "string" } } ], @@ -7148,9 +7010,10 @@ } } }, - "/admin/api/authentication_providers/{id}.xml": { + "/admin/api/policies.json": { "get": { - "summary": "Authentication Provider Read", + "summary": "APIcast Policy Registry", + "tags": ["APIcast Policies"], "parameters": [ { "name": "access_token", @@ -7160,11 +7023,25 @@ "schema": { "type": "string" } - }, + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/provider.xml": { + "get": { + "summary": "Provider Account Read", + "tags": ["Provider Account"], + "parameters": [ { - "name": "id", - "in": "path", - "description": "ID of the authentication provider.", + "name": "access_token", + "in": "query", + "description": "A personal Access Token", "required": true, "schema": { "type": "string" @@ -7179,7 +7056,8 @@ } }, "put": { - "summary": "Authentication Provider Developer Portal Update", + "summary": "Provider Account Update", + "tags": ["Provider Account"], "parameters": [ { "name": "access_token", @@ -7191,60 +7069,91 @@ } }, { - "name": "id", - "in": "path", - "description": "ID of the authentication provider.", - "required": true, + "name": "from_email", + "in": "query", + "description": "New outgoing email.", "schema": { "type": "string" } }, { - "name": "client_id", + "name": "support_email", "in": "query", - "description": "Client ID of the authentication provider.", + "description": "New support email.", "schema": { "type": "string" } }, { - "name": "client_secret", + "name": "finance_support_email", "in": "query", - "description": "Client Secret of the authentication provider.", + "description": "New finance support email.", "schema": { "type": "string" } }, { - "name": "site", + "name": "site_access_code", "in": "query", - "description": "Site o Realm of the authentication provider.", + "description": "Developer Portal Access Code.", "schema": { "type": "string" } - }, + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/service_plans.xml": { + "get": { + "summary": "Service Plan List (all services)", + "tags": ["Service Plans"], + "parameters": [ { - "name": "published", + "name": "access_token", "in": "query", - "description": "Published authentication provider. False by default", + "description": "A personal Access Token", + "required": true, "schema": { - "type": "boolean" + "type": "string" } - }, + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/service_plans/{service_plan_id}/features.xml": { + "get": { + "summary": "Service Plan Feature List", + "tags": ["Service Plans"], + "parameters": [ { - "name": "skip_ssl_certificate_verification", + "name": "access_token", "in": "query", - "description": "Skip SSL certificate verification. False by default.", + "description": "A personal Access Token", + "required": true, "schema": { - "type": "boolean" + "type": "string" } }, { - "name": "automatically_approve_accounts", - "in": "query", - "description": "Automatically approve accounts. False by default.", + "name": "service_plan_id", + "in": "path", + "description": "ID of the service plan.", + "required": true, "schema": { - "type": "boolean" + "type": "integer", + "format": "int32" } } ], @@ -7254,11 +7163,10 @@ "content": {} } } - } - }, - "/admin/api/backend_apis/{backend_api_id}/metrics/{metric_id}/methods.json": { - "get": { - "summary": "Backend Method List", + }, + "post": { + "summary": "Service Plan Feature Add", + "tags": ["Service Plans"], "parameters": [ { "name": "access_token", @@ -7270,9 +7178,9 @@ } }, { - "name": "backend_api_id", + "name": "service_plan_id", "in": "path", - "description": "ID of the Backend.", + "description": "ID of the service plan.", "required": true, "schema": { "type": "integer", @@ -7280,16 +7188,82 @@ } }, { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", + "name": "feature_id", + "in": "query", + "description": "ID of the feature.", "required": true, "schema": { "type": "integer", "format": "int32" } - }, - { + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/service_plans/{service_plan_id}/features/{id}.xml": { + "delete": { + "summary": "Service Plan Features Delete", + "tags": ["Service Plans"], + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_plan_id", + "in": "path", + "description": "ID of the service plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services.xml": { + "get": { + "summary": "Service List", + "tags": ["Services"], + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { "name": "page", "in": "query", "description": "Page in the paginated list. Defaults to 1.", @@ -7318,7 +7292,8 @@ } }, "post": { - "summary": "Backend Method Create", + "summary": "Service Create", + "tags": ["Services"], "parameters": [ { "name": "access_token", @@ -7330,57 +7305,57 @@ } }, { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", + "name": "name", + "in": "query", + "description": "Name of the service to be created.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, + "name": "description", + "in": "query", + "description": "Description of the service to be created.", "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { - "name": "friendly_name", + "name": "deployment_option", "in": "query", - "description": "Descriptive Name of the metric.", - "required": true, + "description": "Deployment option for the gateway: 'hosted' for APIcast hosted, 'self_managed' for APIcast Self-managed, 'service_mesh_istio' for Istio service mesh option", "schema": { "type": "string" } }, { - "name": "system_name", + "name": "backend_version", "in": "query", - "description": "System Name of the metric. If blank a system_name will be generated for you from the friendly_name parameter", + "description": "Authentication mode: '1' for API key, '2' for App Id / App Key, 'oidc' for OpenID Connect", "schema": { "type": "string" } }, { - "name": "unit", + "name": "system_name", "in": "query", - "description": "Measure unit of the metric.", - "required": true, + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", "schema": { "type": "string" } }, { - "name": "description", + "name": " ", "in": "query", - "description": "Description of the metric.", + "description": "Extra parameters", + "style": "form", + "explode": false, "schema": { - "type": "ref" + "type": "array", + "items": { + "type": "object" + } } } ], @@ -7392,9 +7367,10 @@ } } }, - "/admin/api/accounts/{id}/change_plan.xml": { - "put": { - "summary": "Account Change Plan", + "/admin/api/services/{id}.xml": { + "get": { + "summary": "Service Read", + "tags": ["Services"], "parameters": [ { "name": "access_token", @@ -7408,17 +7384,7 @@ { "name": "id", "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "plan_id", - "in": "query", - "description": "ID of the target account plan", + "description": "ID of the service.", "required": true, "schema": { "type": "integer", @@ -7432,11 +7398,10 @@ "content": {} } } - } - }, - "/admin/api/accounts/{account_id}/applications/{id}/change_plan.xml": { + }, "put": { - "summary": "Application Change Plan", + "summary": "Service Update", + "tags": ["Services"], "parameters": [ { "name": "access_token", @@ -7448,9 +7413,9 @@ } }, { - "name": "account_id", + "name": "id", "in": "path", - "description": "ID of the account.", + "description": "ID of the service.", "required": true, "schema": { "type": "integer", @@ -7458,23 +7423,56 @@ } }, { - "name": "id", - "in": "path", - "description": "ID of the application.", - "required": true, + "name": "name", + "in": "query", + "description": "New name for the service.", "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { - "name": "plan_id", + "name": "description", "in": "query", - "description": "ID of the new application plan.", - "required": true, + "description": "New description for the service.", "schema": { - "type": "integer", - "format": "int32" + "type": "string" + } + }, + { + "name": "support_email", + "in": "query", + "description": "New support email.", + "schema": { + "type": "string" + } + }, + { + "name": "deployment_option", + "in": "query", + "description": "Deployment option for the gateway: 'hosted' for APIcast hosted, 'self_managed' for APIcast Self-managed, 'service_mesh_istio' for Istio service mesh option", + "schema": { + "type": "string" + } + }, + { + "name": "backend_version", + "in": "query", + "description": "Authentication mode: '1' for API key, '2' for App Id / App Key, 'oidc' for OpenID Connect", + "schema": { + "type": "string" + } + }, + { + "name": " ", + "in": "query", + "description": "Extra parameters", + "style": "form", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } } } ], @@ -7484,11 +7482,10 @@ "content": {} } } - } - }, - "/admin/api/services/{service_id}/backend_usages.json": { - "get": { - "summary": "Backend Usage List", + }, + "delete": { + "summary": "Service Delete", + "tags": ["Services"], "parameters": [ { "name": "access_token", @@ -7500,7 +7497,7 @@ } }, { - "name": "service_id", + "name": "id", "in": "path", "description": "ID of the service.", "required": true, @@ -7516,9 +7513,12 @@ "content": {} } } - }, - "post": { - "summary": "Backend Usage Create", + } + }, + "/admin/api/services/{id}/service_plans.xml": { + "get": { + "summary": "Service Plan List", + "tags": ["Service Plans"], "parameters": [ { "name": "access_token", @@ -7530,7 +7530,7 @@ } }, { - "name": "service_id", + "name": "id", "in": "path", "description": "ID of the service.", "required": true, @@ -7538,24 +7538,6 @@ "type": "integer", "format": "int32" } - }, - { - "name": "backend_api_id", - "in": "query", - "description": "Backend to be added to the Service (Product).", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "path", - "in": "query", - "description": "Path of the Backend for this product.", - "schema": { - "type": "integer", - "format": "int32" - } } ], "responses": { @@ -7564,11 +7546,10 @@ "content": {} } } - } - }, - "/admin/api/backend_apis/{backend_api_id}/mapping_rules.json": { - "get": { - "summary": "Backend Mapping Rules List", + }, + "post": { + "summary": "Service Plan Create", + "tags": ["Service Plans"], "parameters": [ { "name": "access_token", @@ -7580,9 +7561,9 @@ } }, { - "name": "backend_api_id", + "name": "id", "in": "path", - "description": "ID of the Backend.", + "description": "ID of the service.", "required": true, "schema": { "type": "integer", @@ -7590,23 +7571,36 @@ } }, { - "name": "page", + "name": "name", "in": "query", - "description": "Page in the paginated list. Defaults to 1.", + "description": "Name of the service plan.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 1 + "type": "string" } }, { - "name": "per_page", + "name": "approval_required", "in": "query", - "description": "Number of results per page. Default and max is 500.", + "description": "Set the 'Service subscriptions require approval?' to 'true' or 'false'", "schema": { - "type": "integer", - "format": "int32", - "default": 500 + "type": "boolean" + } + }, + { + "name": "system_name", + "in": "query", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "schema": { + "type": "string" + } + }, + { + "name": "state_event", + "in": "query", + "description": "State event of the service plan. It can be 'publish' or 'hide'", + "schema": { + "type": "string" } } ], @@ -7616,9 +7610,12 @@ "content": {} } } - }, - "post": { - "summary": "Backend Mapping Rule Create", + } + }, + "/admin/api/services/{service_id}/metrics.xml": { + "get": { + "summary": "Service Metric List", + "tags": ["Services"], "parameters": [ { "name": "access_token", @@ -7630,66 +7627,84 @@ } }, { - "name": "backend_api_id", + "name": "service_id", "in": "path", - "description": "ID of the Backend.", + "description": "ID of the service.", "required": true, "schema": { "type": "integer", "format": "int32" } - }, + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Service Metric Create", + "tags": ["Services"], + "parameters": [ { - "name": "http_method", + "name": "access_token", "in": "query", - "description": "HTTP method.", + "description": "A personal Access Token", "required": true, "schema": { "type": "string" } }, { - "name": "pattern", + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "friendly_name", "in": "query", - "description": "Mapping Rule pattern.", + "description": "Descriptive Name of the metric.", "required": true, "schema": { "type": "string" } }, { - "name": "delta", + "name": "system_name", "in": "query", - "description": "Increase the metric by this delta.", - "required": true, + "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", "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { - "name": "metric_id", + "name": "name", "in": "query", - "description": "Metric ID.", - "required": true, + "description": "DEPRECATED: Please use system_name parameter", "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { - "name": "position", + "name": "unit", "in": "query", - "description": "Mapping Rule position", + "description": "Measure unit of the metric.", + "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { - "name": "last", + "name": "description", "in": "query", - "description": "Last matched Mapping Rule to process", + "description": "Description of the metric.", "schema": { "type": "ref" } @@ -7703,9 +7718,11 @@ } } }, - "/admin/api/accounts/{account_id}/users/{id}/suspend.xml": { - "put": { - "summary": "User Suspend", + "/admin/api/services/{service_id}/metrics/{id}.xml": { + "get": { + "summary": "Service Metric Read", + "tags": ["Services"], + "operationId": "service_metric", "parameters": [ { "name": "access_token", @@ -7717,9 +7734,9 @@ } }, { - "name": "account_id", + "name": "service_id", "in": "path", - "description": "ID of the account.", + "description": "ID of the service.", "required": true, "schema": { "type": "integer", @@ -7729,7 +7746,7 @@ { "name": "id", "in": "path", - "description": "ID of the user.", + "description": "ID of the metric.", "required": true, "schema": { "type": "integer", @@ -7743,11 +7760,10 @@ "content": {} } } - } - }, - "/admin/api/accounts/{account_id}/applications/{id}/suspend.xml": { + }, "put": { - "summary": "Application Suspend", + "summary": "Service Metric Update", + "tags": ["Services"], "parameters": [ { "name": "access_token", @@ -7759,9 +7775,9 @@ } }, { - "name": "account_id", + "name": "service_id", "in": "path", - "description": "ID of the account.", + "description": "ID of the service.", "required": true, "schema": { "type": "integer", @@ -7771,53 +7787,35 @@ { "name": "id", "in": "path", - "description": "ID of the application.", + "description": "ID of the metric.", "required": true, "schema": { "type": "integer", "format": "int32" } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/applications/{application_id}/keys.xml": { - "get": { - "summary": "Application Key List", - "parameters": [ + }, { - "name": "access_token", + "name": "friendly_name", "in": "query", - "description": "A personal Access Token", - "required": true, + "description": "Name of the metric.", "schema": { "type": "string" } }, { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, + "name": "unit", + "in": "query", + "description": "Measure unit of the metric.", "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { - "name": "application_id", - "in": "path", - "description": "ID of the application.", - "required": true, + "name": "description", + "in": "query", + "description": "Description of the metric.", "schema": { - "type": "integer", - "format": "int32" + "type": "ref" } } ], @@ -7828,9 +7826,9 @@ } } }, - "post": { - "summary": "Application Key Create", - "operationId": "key_create", + "delete": { + "summary": "Service Metric Delete", + "tags": ["Services"], "parameters": [ { "name": "access_token", @@ -7842,9 +7840,9 @@ } }, { - "name": "account_id", + "name": "service_id", "in": "path", - "description": "ID of the account.", + "description": "ID of the service.", "required": true, "schema": { "type": "integer", @@ -7852,23 +7850,14 @@ } }, { - "name": "application_id", + "name": "id", "in": "path", - "description": "ID of the application.", + "description": "ID of the metric.", "required": true, "schema": { "type": "integer", "format": "int32" } - }, - { - "name": "key", - "in": "query", - "description": "app_key to be added", - "required": true, - "schema": { - "type": "string" - } } ], "responses": { @@ -7879,9 +7868,10 @@ } } }, - "/admin/api/active_docs/{id}.json": { + "/admin/api/services/{service_id}/metrics/{metric_id}/methods.xml": { "get": { - "summary": "ActiveDocs Spec Read", + "summary": "Service Method List", + "tags": ["Services"], "parameters": [ { "name": "access_token", @@ -7893,9 +7883,19 @@ } }, { - "name": "id", + "name": "service_id", "in": "path", - "description": "ID of the ActiveDocs spec", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", "required": true, "schema": { "type": "integer", @@ -7910,8 +7910,9 @@ } } }, - "put": { - "summary": "ActiveDocs Spec Update", + "post": { + "summary": "Service Method Create", + "tags": ["Services"], "parameters": [ { "name": "access_token", @@ -7923,9 +7924,9 @@ } }, { - "name": "id", + "name": "service_id", "in": "path", - "description": "ID of the ActiveDocs spec", + "description": "ID of the service.", "required": true, "schema": { "type": "integer", @@ -7933,52 +7934,47 @@ } }, { - "name": "name", - "in": "query", - "description": "Name of the ActiveDocs spec", - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "query", - "description": "Service ID of the ActiveDocs spec", + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, "schema": { "type": "integer", "format": "int32" } }, { - "name": "body", + "name": "friendly_name", "in": "query", - "description": "ActiveDocs specification in JSON format (based on Swagger)", + "description": "Name of the method.", + "required": true, "schema": { "type": "string" } }, { - "name": "description", + "name": "system_name", "in": "query", - "description": "Description of the ActiveDocs spec", + "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", "schema": { "type": "string" } }, { - "name": "published", + "name": "unit", "in": "query", - "description": "Set to 'true' to publish the spec on the developer portal, or 'false' to hide it", + "description": "Measure unit of the method.", + "required": true, "schema": { - "type": "boolean" + "type": "string" } }, { - "name": "skip_swagger_validations", + "name": "description", "in": "query", - "description": "Set to 'true' to skip validation of the Swagger specification, or 'false' to validate the spec", + "description": "Description of the method.", "schema": { - "type": "boolean" + "type": "ref" } } ], @@ -7988,9 +7984,12 @@ "content": {} } } - }, - "delete": { - "summary": "ActiveDocs Spec Delete", + } + }, + "/admin/api/services/{service_id}/metrics/{metric_id}/methods/{id}.xml": { + "get": { + "summary": "Service Method Read", + "tags": ["Services"], "parameters": [ { "name": "access_token", @@ -8002,73 +8001,29 @@ } }, { - "name": "id", + "name": "service_id", "in": "path", - "description": "ID of the ActiveDocs spec", + "description": "ID of the service.", "required": true, "schema": { "type": "integer", "format": "int32" } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/plan.xml": { - "get": { - "summary": "Account Fetch Account Plan", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } }, { - "name": "account_id", + "name": "metric_id", "in": "path", - "description": "ID of the account.", + "description": "ID of the metric.", "required": true, "schema": { "type": "integer", "format": "int32" } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/accounts/{account_id}/applications.xml": { - "get": { - "summary": "Application List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } }, { - "name": "account_id", + "name": "id", "in": "path", - "description": "ID of the account.", + "description": "ID of the method.", "required": true, "schema": { "type": "integer", @@ -8083,8 +8038,9 @@ } } }, - "post": { - "summary": "Application Create", + "put": { + "summary": "Service Method Update", + "tags": ["Services"], "parameters": [ { "name": "access_token", @@ -8096,9 +8052,9 @@ } }, { - "name": "account_id", + "name": "service_id", "in": "path", - "description": "ID of the account.", + "description": "ID of the service.", "required": true, "schema": { "type": "integer", @@ -8106,9 +8062,9 @@ } }, { - "name": "plan_id", - "in": "query", - "description": "ID of the application plan.", + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", "required": true, "schema": { "type": "integer", @@ -8116,87 +8072,88 @@ } }, { - "name": "name", - "in": "query", - "description": "Name of the application to be created.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the application to be created.", + "name": "id", + "in": "path", + "description": "ID of the method.", "required": true, "schema": { - "type": "string" + "type": "integer", + "format": "int32" } }, { - "name": "user_key", + "name": "friendly_name", "in": "query", - "description": "User Key (API Key) of the application to be created.", + "description": "Name of the method.", "schema": { "type": "string" } }, { - "name": "application_id", + "name": "unit", "in": "query", - "description": "App ID or Client ID (for OAuth and OpenID Connect authentication modes) of the application to be created.", + "description": "Measure unit of the method.", "schema": { "type": "string" } }, { - "name": "application_key", + "name": "description", "in": "query", - "description": "App Key(s) or Client Secret (for OAuth and OpenID Connect authentication modes) of the application to be created.", - "style": "form", - "explode": false, + "description": "Description of the method.", "schema": { - "type": "array", - "items": { - "type": "string" - } + "type": "ref" } - }, + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Service Method Delete", + "tags": ["Services"], + "parameters": [ { - "name": "redirect_url", + "name": "access_token", "in": "query", - "description": "Redirect URL for the OAuth request.", + "description": "A personal Access Token", + "required": true, "schema": { "type": "string" } }, { - "name": "first_traffic_at", - "in": "query", - "description": "Timestamp of the first call made by the application.", + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, "schema": { - "type": "string" + "type": "integer", + "format": "int32" } }, { - "name": "first_daily_traffic_at", - "in": "query", - "description": "Timestamp of the first call on the last day when traffic was registered for the application ('Traffic On').", + "name": "metric_id", + "in": "path", + "description": "ID of the metric.", + "required": true, "schema": { - "type": "string" + "type": "integer", + "format": "int32" } }, { - "name": "additional_fields", - "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, + "name": "id", + "in": "path", + "description": "ID of the method.", + "required": true, "schema": { - "type": "array", - "items": { - "type": "object" - } + "type": "integer", + "format": "int32" } } ], @@ -8208,10 +8165,10 @@ } } }, - "/admin/api/applications.xml": { + "/admin/api/account/proxy_configs/{environment}.json": { "get": { - "summary": "Application List (all services)", - "operationId": "applications", + "summary": "Proxy Configs List (Provider)", + "tags": ["Proxy Configs for Provider"], "parameters": [ { "name": "access_token", @@ -8223,68 +8180,29 @@ } }, { - "name": "page", - "in": "query", - "description": "Page in the paginated list. Defaults to 1.", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "per_page", - "in": "query", - "description": "Number of results per page. Default and max is 500.", - "schema": { - "type": "integer", - "format": "int32", - "default": 500 - } - }, - { - "name": "active_since", - "in": "query", - "description": "Filter date", - "schema": { - "type": "string" - } - }, - { - "name": "inactive_since", - "in": "query", - "description": "Filter date", + "name": "environment", + "in": "path", + "description": "Gateway environment. Must be 'sandbox' or 'production'", + "required": true, "schema": { "type": "string" } }, { - "name": "service_id", + "name": "host", "in": "query", - "description": "Filter by service", + "description": "Filter by host", "schema": { "type": "string" } }, { - "name": "plan_id", + "name": "version", "in": "query", - "description": "Filter by plan", + "description": "Filter by version", "schema": { "type": "string" } - }, - { - "name": "plan_type", - "in": "query", - "description": "Filter by plan type", - "schema": { - "type": "string", - "enum": [ - "free", - "paid" - ] - } } ], "responses": { @@ -8295,9 +8213,10 @@ } } }, - "/admin/api/accounts/{account_id}/applications/{id}.xml": { + "/admin/api/services/{service_id}/proxy.xml": { "get": { - "summary": "Application Read", + "summary": "Proxy Read", + "tags": ["Gateway"], "parameters": [ { "name": "access_token", @@ -8309,19 +8228,9 @@ } }, { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", + "name": "service_id", "in": "path", - "description": "ID of the application.", + "description": "ID of the service.", "required": true, "schema": { "type": "integer", @@ -8336,8 +8245,9 @@ } } }, - "put": { - "summary": "Application Update", + "patch": { + "summary": "Proxy Update", + "tags": ["Gateway"], "parameters": [ { "name": "access_token", @@ -8349,9 +8259,9 @@ } }, { - "name": "account_id", + "name": "service_id", "in": "path", - "description": "ID of the account.", + "description": "ID of the service.", "required": true, "schema": { "type": "integer", @@ -8359,331 +8269,224 @@ } }, { - "name": "id", - "in": "path", - "description": "ID of the application.", - "required": true, + "name": "endpoint", + "in": "query", + "description": "Public Base URL for production environment.", "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { - "name": "name", + "name": "api_backend", "in": "query", - "description": "Name of the application.", + "description": "Private Base URL. Caution! Do not use it if the account has API as a Product enabled. It may cause API backend usages to be removed from the Product.", "schema": { "type": "string" } }, { - "name": "description", + "name": "credentials_location", "in": "query", - "description": "Description of the application.", + "description": "Credentials Location. Either headers, query or authorization for the Basic Authorization.", "schema": { "type": "string" } }, { - "name": "redirect_url", + "name": "auth_app_key", "in": "query", - "description": "Redirect URL for the OAuth request.", + "description": "Parameter/Header where App Key is expected.", "schema": { "type": "string" } }, { - "name": "first_traffic_at", + "name": "auth_app_id", "in": "query", - "description": "Timestamp of the first call made by the application.", + "description": "Parameter/Header where App ID is expected.", "schema": { "type": "string" } }, { - "name": "first_daily_traffic_at", + "name": "auth_user_key", "in": "query", - "description": "Timestamp of the first call on the last day when traffic was registered for the application ('Traffic On').", + "description": "Parameter/Header where User Key is expected.", "schema": { "type": "string" } }, { - "name": "additional_fields", - "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Application Delete", - "parameters": [ - { - "name": "access_token", + "name": "error_auth_failed", "in": "query", - "description": "A personal Access Token", - "required": true, + "description": "Error message on failed authentication.", "schema": { "type": "string" } }, { - "name": "account_id", - "in": "path", - "description": "ID of the account.", - "required": true, + "name": "error_status_auth_failed", + "in": "query", + "description": "Status code on failed authentication.", "schema": { "type": "integer", "format": "int32" } }, { - "name": "id", - "in": "path", - "description": "ID of the application.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/pricing_rules.xml": { - "get": { - "summary": "Pricing Rules List per Metric", - "operationId": "metric_pricing_rules", - "parameters": [ - { - "name": "access_token", + "name": "error_headers_auth_failed", "in": "query", - "description": "A personal Access Token", - "required": true, + "description": "Content-Type header on failed authentication.", "schema": { "type": "string" } }, { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", - "required": true, + "name": "error_auth_missing", + "in": "query", + "description": "Error message on missing authentication.", "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, + "name": "error_status_auth_missing", + "in": "query", + "description": "Status code on missing authentication.", "schema": { "type": "integer", "format": "int32" } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Pricing Rule Create", - "parameters": [ + }, { - "name": "access_token", + "name": "error_headers_auth_missing", "in": "query", - "description": "A personal Access Token", - "required": true, + "description": "Content-Type header on missing authentication.", "schema": { "type": "string" } }, { - "name": "application_plan_id", - "in": "path", - "description": "ID of the application plan.", - "required": true, + "name": "error_no_match", + "in": "query", + "description": "Error message when no mapping rule is matched.", "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { - "name": "metric_id", - "in": "path", - "description": "ID of the metric.", - "required": true, + "name": "error_status_no_match", + "in": "query", + "description": "Status code when no mapping rule is matched.", "schema": { "type": "integer", "format": "int32" } }, { - "name": "min", + "name": "error_headers_no_match", "in": "query", - "description": "From (min) hit", + "description": "Content-Type header when no mapping rule is matched.", "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { - "name": "max", + "name": "error_status_limits_exceeded", "in": "query", - "description": "To (max) hit", + "description": "Status code when usage limit exceeded.", "schema": { "type": "integer", "format": "int32" } }, { - "name": "cost_per_unit", - "in": "query", - "description": "Cost per unit", - "schema": { - "type": "ref" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services.xml": { - "get": { - "summary": "Service List", - "parameters": [ - { - "name": "access_token", + "name": "error_headers_limits_exceeded", "in": "query", - "description": "A personal Access Token", - "required": true, + "description": "Content-Type header when usage limit exceeded.", "schema": { "type": "string" } }, { - "name": "page", + "name": "error_limits_exceeded", "in": "query", - "description": "Page in the paginated list. Defaults to 1.", + "description": "Error message on usage limit exceeded.", "schema": { - "type": "integer", - "format": "int32", - "default": 1 + "type": "string" } }, { - "name": "per_page", - "in": "query", - "description": "Number of results per page. Default and max is 500.", - "schema": { - "type": "integer", - "format": "int32", - "default": 500 - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "Service Create", - "parameters": [ - { - "name": "access_token", + "name": "oidc_issuer_endpoint", "in": "query", - "description": "A personal Access Token", - "required": true, + "description": "Location of your OpenID Provider.", "schema": { "type": "string" } }, { - "name": "name", + "name": "oidc_issuer_type", "in": "query", - "description": "Name of the service to be created.", - "required": true, + "description": "Type of your OpenID Provider.", "schema": { "type": "string" } }, { - "name": "description", + "name": "sandbox_endpoint", "in": "query", - "description": "Description of the service to be created.", + "description": "Sandbox endpoint.", "schema": { "type": "string" } }, { - "name": "deployment_option", + "name": "jwt_claim_with_client_id", "in": "query", - "description": "Deployment option for the gateway: 'hosted' for APIcast hosted, 'self_managed' for APIcast Self-managed, 'service_mesh_istio' for Istio service mesh option", + "description": "JWT Claim With ClientId Location.", "schema": { "type": "string" } }, { - "name": "backend_version", + "name": "jwt_claim_with_client_id_type", "in": "query", - "description": "Authentication mode: '1' for API key, '2' for App Id / App Key, 'oidc' for OpenID Connect", + "description": "JWT Claim With ClientId Type. Either `plain` or `liquid`", "schema": { "type": "string" } - }, + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/proxy/deploy.xml": { + "post": { + "summary": "Proxy Deploy", + "tags": ["Gateway"], + "parameters": [ { - "name": "system_name", + "name": "access_token", "in": "query", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "description": "A personal Access Token", + "required": true, "schema": { "type": "string" } }, { - "name": " ", - "in": "query", - "description": "Extra parameters", - "style": "form", - "explode": false, + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, "schema": { - "type": "array", - "items": { - "type": "object" - } + "type": "integer", + "format": "int32" } } ], @@ -8698,6 +8501,7 @@ "/admin/api/services/{service_id}/proxy/mapping_rules.xml": { "get": { "summary": "Proxy Mapping Rules List", + "tags": ["Gateway"], "parameters": [ { "name": "access_token", @@ -8728,6 +8532,7 @@ }, "post": { "summary": "Proxy Mapping Rule Create", + "tags": ["Gateway"], "parameters": [ { "name": "access_token", @@ -8812,9 +8617,10 @@ } } }, - "/admin/api/active_docs.json": { + "/admin/api/services/{service_id}/proxy/mapping_rules/{id}.xml": { "get": { - "summary": "ActiveDocs Spec List", + "summary": "Proxy Mapping Rules Show", + "tags": ["Gateway"], "parameters": [ { "name": "access_token", @@ -8824,6 +8630,26 @@ "schema": { "type": "string" } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "Mapping Rule ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { @@ -8833,8 +8659,9 @@ } } }, - "post": { - "summary": "ActiveDocs Spec Create", + "delete": { + "summary": "Proxy Mapping Rule Delete", + "tags": ["Gateway"], "parameters": [ { "name": "access_token", @@ -8846,62 +8673,115 @@ } }, { - "name": "name", - "in": "query", - "description": "Name of the ActiveDocs spec", + "name": "service_id", + "in": "path", + "description": "ID of the service.", "required": true, "schema": { - "type": "string" + "type": "integer", + "format": "int32" } }, { - "name": "system_name", + "name": "id", + "in": "path", + "description": "Mapping Rule ID.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "patch": { + "summary": "Proxy Mapping Rule Update", + "tags": ["Gateway"], + "parameters": [ + { + "name": "access_token", "in": "query", - "description": "System Name of the ActiveDocs spec. Only ASCII letters, numbers, dashes and underscores are allowed. If blank, 'system_name' will be generated from the 'name' parameter", + "description": "A personal Access Token", + "required": true, "schema": { "type": "string" } }, { "name": "service_id", - "in": "query", - "description": "Service ID of the ActiveDocs spec", + "in": "path", + "description": "ID of the service.", + "required": true, "schema": { "type": "integer", "format": "int32" } }, { - "name": "body", - "in": "query", - "description": "ActiveDocs specification in JSON format (based on Swagger)", + "name": "id", + "in": "path", + "description": "Mapping Rule ID.", "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "http_method", + "in": "query", + "description": "HTTP method.", "schema": { "type": "string" } }, { - "name": "description", + "name": "pattern", "in": "query", - "description": "Description of the ActiveDocs spec", + "description": "Mapping Rule pattern.", "schema": { "type": "string" } }, { - "name": "published", + "name": "delta", "in": "query", - "description": "Set to 'true' to publish the spec on the developer portal, or 'false' to hide it. The default value is 'false'", + "description": "Increase the metric by this delta.", "schema": { - "type": "boolean" + "type": "integer", + "format": "int32" } }, { - "name": "skip_swagger_validations", + "name": "metric_id", "in": "query", - "description": "Set to 'true' to skip validation of the Swagger specification, or 'false' to validate the spec. The default value is 'false'", + "description": "Metric ID.", "schema": { - "type": "boolean" + "type": "integer", + "format": "int32" + } + }, + { + "name": "position", + "in": "query", + "description": "Mapping Rule position", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "last", + "in": "query", + "description": "Last matched Mapping Rule to process", + "schema": { + "type": "ref" } } ], @@ -8913,9 +8793,10 @@ } } }, - "/admin/api/backend_apis.json": { + "/admin/api/services/{service_id}/proxy/oidc_configuration.xml": { "get": { - "summary": "Backend List", + "summary": "OIDC Configuration Show", + "tags": ["Gateway"], "parameters": [ { "name": "access_token", @@ -8927,23 +8808,13 @@ } }, { - "name": "page", - "in": "query", - "description": "Page in the paginated list. Defaults to 1.", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "per_page", - "in": "query", - "description": "Number of results per page. Default and max is 500.", + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, "schema": { "type": "integer", - "format": "int32", - "default": 500 + "format": "int32" } } ], @@ -8954,8 +8825,9 @@ } } }, - "post": { - "summary": "Backend Create", + "patch": { + "summary": "OIDC Configuration Update", + "tags": ["Gateway"], "parameters": [ { "name": "access_token", @@ -8967,59 +8839,45 @@ } }, { - "name": "name", - "in": "query", - "description": "Name of the Backend", + "name": "service_id", + "in": "path", + "description": "ID of the service.", "required": true, "schema": { - "type": "string" + "type": "integer", + "format": "int32" } }, { - "name": "system_name", + "name": "standard_flow_enabled", "in": "query", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "description": "Enable Authorization Code Flow (Standard Flow)", "schema": { - "type": "string" + "type": "boolean" } }, { - "name": "description", + "name": "implicit_flow_enabled", "in": "query", - "description": "Description of the Backend", + "description": "Enable Implicit Flow", "schema": { - "type": "string" + "type": "boolean" } }, { - "name": "private_endpoint", + "name": "service_accounts_enabled", "in": "query", - "description": "Private Base URL (your API)", - "required": true, + "description": "Enable Service Account Flow (Standard Flow)", "schema": { - "type": "string" + "type": "boolean" } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/features.xml": { - "get": { - "summary": "Account Features List", - "parameters": [ + }, { - "name": "access_token", + "name": "direct_access_grants_enabled", "in": "query", - "description": "A personal Access Token", - "required": true, + "description": "Enable Direct Access Grant Flow", "schema": { - "type": "string" + "type": "boolean" } } ], @@ -9029,9 +8887,12 @@ "content": {} } } - }, - "post": { - "summary": "Account Feature Create", + } + }, + "/admin/api/services/{service_id}/proxy/configs/{environment}.json": { + "get": { + "summary": "Proxy Configs List (Service)", + "tags": ["Gateway"], "parameters": [ { "name": "access_token", @@ -9043,18 +8904,20 @@ } }, { - "name": "name", - "in": "query", - "description": "Name of the feature.", + "name": "service_id", + "in": "path", + "description": "ID of the service.", "required": true, "schema": { - "type": "string" + "type": "integer", + "format": "int32" } }, { - "name": "system_name", - "in": "query", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "name": "environment", + "in": "path", + "description": "Gateway environment. Must be 'sandbox' or 'production'", + "required": true, "schema": { "type": "string" } @@ -9068,9 +8931,10 @@ } } }, - "/admin/api/accounts/{id}.xml": { + "/admin/api/services/{service_id}/proxy/configs/{environment}/latest.json": { "get": { - "summary": "Account Read", + "summary": "Proxy Config Show Latest", + "tags": ["Gateway"], "parameters": [ { "name": "access_token", @@ -9082,14 +8946,23 @@ } }, { - "name": "id", + "name": "service_id", "in": "path", - "description": "ID of the account.", + "description": "ID of the service.", "required": true, "schema": { "type": "integer", "format": "int32" } + }, + { + "name": "environment", + "in": "path", + "description": "Gateway environment. Must be 'sandbox' or 'production'", + "required": true, + "schema": { + "type": "string" + } } ], "responses": { @@ -9098,9 +8971,12 @@ "content": {} } } - }, - "put": { - "summary": "Account Update", + } + }, + "/admin/api/services/{service_id}/proxy/configs/{environment}/{version}.json": { + "get": { + "summary": "Proxy Config Show", + "tags": ["Gateway"], "parameters": [ { "name": "access_token", @@ -9112,9 +8988,9 @@ } }, { - "name": "id", + "name": "service_id", "in": "path", - "description": "ID of the account.", + "description": "ID of the service.", "required": true, "schema": { "type": "integer", @@ -9122,66 +8998,18 @@ } }, { - "name": "org_name", - "in": "query", - "description": "Organization name of the account.", + "name": "environment", + "in": "path", + "description": "Gateway environment. Must be 'sandbox' or 'production'", + "required": true, "schema": { "type": "string" } }, { - "name": "monthly_billing_enabled", - "in": "query", - "description": "Updates monthly billing status.", - "schema": { - "type": "boolean" - } - }, - { - "name": "monthly_charging_enabled", - "in": "query", - "description": "Updates monthly charging status.", - "schema": { - "type": "boolean" - } - }, - { - "name": "additional_fields", - "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "summary": "Account Delete ", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", + "name": "version", "in": "path", - "description": "ID of the account.", + "description": "Version of the Proxy config.", "required": true, "schema": { "type": "integer", @@ -9197,9 +9025,10 @@ } } }, - "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/pricing_rules/{id}.json": { - "delete": { - "summary": "Pricing Rule Delete", + "/admin/api/services/{service_id}/proxy/configs/{environment}/{version}/promote.json": { + "post": { + "summary": "Proxy Config Promote", + "tags": ["Gateway"], "parameters": [ { "name": "access_token", @@ -9211,9 +9040,9 @@ } }, { - "name": "application_plan_id", + "name": "service_id", "in": "path", - "description": "ID of the application plan.", + "description": "ID of the service.", "required": true, "schema": { "type": "integer", @@ -9221,24 +9050,32 @@ } }, { - "name": "metric_id", + "name": "environment", "in": "path", - "description": "ID of the metric.", + "description": "Gateway environment. Must be 'sandbox' or 'production'", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "string" } }, { - "name": "id", + "name": "version", "in": "path", - "description": "ID of the pricing rule.", + "description": "Version of the Proxy config.", "required": true, "schema": { "type": "integer", "format": "int32" } + }, + { + "name": "to", + "in": "query", + "description": "the name of the destination environment", + "required": true, + "schema": { + "type": "string" + } } ], "responses": { @@ -9249,10 +9086,10 @@ } } }, - "/admin/api/application_plans/{application_plan_id}/pricing_rules.xml": { + "/admin/api/services/{service_id}/proxy/policies.json": { "get": { - "summary": "Pricing Rules List per Application Plan", - "operationId": "pricing_rules", + "summary": "Proxy Policies Chain Show", + "tags": ["Gateway"], "parameters": [ { "name": "access_token", @@ -9264,9 +9101,9 @@ } }, { - "name": "application_plan_id", + "name": "service_id", "in": "path", - "description": "ID of the application plan.", + "description": "ID of the service.", "required": true, "schema": { "type": "integer", @@ -9280,11 +9117,10 @@ "content": {} } } - } - }, - "/admin/api/services/{service_id}/proxy/mapping_rules/{id}.xml": { - "get": { - "summary": "Proxy Mapping Rules Show", + }, + "put": { + "summary": "Proxy Policies Chain Update", + "tags": ["Gateway"], "parameters": [ { "name": "access_token", @@ -9306,13 +9142,12 @@ } }, { - "name": "id", - "in": "path", - "description": "Mapping Rule ID.", + "name": "policies_config", + "in": "query", + "description": "Proxy policies chain", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "string" } } ], @@ -9322,9 +9157,12 @@ "content": {} } } - }, - "delete": { - "summary": "Proxy Mapping Rule Delete", + } + }, + "/admin/api/services/{service_id}/service_plans/{id}.xml": { + "get": { + "summary": "Service Plan Read", + "tags": ["Service Plans"], "parameters": [ { "name": "access_token", @@ -9348,7 +9186,7 @@ { "name": "id", "in": "path", - "description": "Mapping Rule ID.", + "description": "ID of the service plan.", "required": true, "schema": { "type": "integer", @@ -9363,8 +9201,9 @@ } } }, - "patch": { - "summary": "Proxy Mapping Rule Update", + "put": { + "summary": "Service Plan Update", + "tags": ["Service Plans"], "parameters": [ { "name": "access_token", @@ -9388,7 +9227,7 @@ { "name": "id", "in": "path", - "description": "Mapping Rule ID.", + "description": "ID of the service plan.", "required": true, "schema": { "type": "integer", @@ -9396,54 +9235,27 @@ } }, { - "name": "http_method", - "in": "query", - "description": "HTTP method.", - "schema": { - "type": "string" - } - }, - { - "name": "pattern", + "name": "name", "in": "query", - "description": "Mapping Rule pattern.", + "description": "Name of the service plan.", "schema": { "type": "string" } }, { - "name": "delta", - "in": "query", - "description": "Increase the metric by this delta.", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_id", - "in": "query", - "description": "Metric ID.", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "position", + "name": "approval_required", "in": "query", - "description": "Mapping Rule position", + "description": "Set the 'Service subscriptions require approval?' to 'true' or 'false'", "schema": { - "type": "integer", - "format": "int32" + "type": "boolean" } }, { - "name": "last", + "name": "state_event", "in": "query", - "description": "Last matched Mapping Rule to process", + "description": "State event of the service plan. It can be 'publish' or 'hide'", "schema": { - "type": "ref" + "type": "string" } } ], @@ -9453,11 +9265,10 @@ "content": {} } } - } - }, - "/admin/api/service_plans.xml": { - "get": { - "summary": "Service Plan List (all services)", + }, + "delete": { + "summary": "Service Plan Delete", + "tags": ["Service Plans"], "parameters": [ { "name": "access_token", @@ -9467,6 +9278,26 @@ "schema": { "type": "string" } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the service plan.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { @@ -9477,9 +9308,10 @@ } } }, - "/admin/api/services/{service_id}/proxy/configs/{environment}/{version}/promote.json": { - "post": { - "summary": "Proxy Config Promote", + "/admin/api/services/{service_id}/service_plans/{id}/default.xml": { + "put": { + "summary": "Service Plan Set to Default", + "tags": ["Service Plans"], "parameters": [ { "name": "access_token", @@ -9501,32 +9333,14 @@ } }, { - "name": "environment", - "in": "path", - "description": "Gateway environment. Must be 'sandbox' or 'production'", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "version", + "name": "id", "in": "path", - "description": "Version of the Proxy config.", + "description": "ID of the service plan.", "required": true, "schema": { "type": "integer", "format": "int32" } - }, - { - "name": "to", - "in": "query", - "description": "the name of the destination environment", - "required": true, - "schema": { - "type": "string" - } } ], "responses": { @@ -9537,9 +9351,10 @@ } } }, - "/admin/api/services/{id}/service_plans.xml": { + "/admin/api/services/{service_id}/features.xml": { "get": { - "summary": "Service Plan List", + "summary": "Service Feature List", + "tags": ["Service Features"], "parameters": [ { "name": "access_token", @@ -9551,7 +9366,7 @@ } }, { - "name": "id", + "name": "service_id", "in": "path", "description": "ID of the service.", "required": true, @@ -9569,7 +9384,8 @@ } }, "post": { - "summary": "Service Plan Create", + "summary": "Service Feature Create", + "tags": ["Service Features"], "parameters": [ { "name": "access_token", @@ -9581,7 +9397,7 @@ } }, { - "name": "id", + "name": "service_id", "in": "path", "description": "ID of the service.", "required": true, @@ -9593,36 +9409,45 @@ { "name": "name", "in": "query", - "description": "Name of the service plan.", + "description": "Name of the feature.", "required": true, "schema": { "type": "string" } }, { - "name": "approval_required", + "name": "system_name", "in": "query", - "description": "Set the 'Service subscriptions require approval?' to 'true' or 'false'", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", "schema": { - "type": "boolean" + "type": "string" } }, { - "name": "system_name", + "name": "description", "in": "query", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", + "description": "Description of the feature.", "schema": { - "type": "string" + "type": "ref" } }, { - "name": "state_event", + "name": "scope", "in": "query", - "description": "State event of the service plan. It can be 'publish' or 'hide'", + "description": "Type of plan that the feature will be available for.", + "style": "form", + "explode": false, "schema": { - "type": "string" - } - } + "type": "array", + "items": { + "type": "string" + }, + "enum": [ + "ApplicationPlan", + "ServicePlan" + ] + } + } ], "responses": { "default": { @@ -9632,9 +9457,10 @@ } } }, - "/admin/api/account/authentication_providers.xml": { + "/admin/api/services/{service_id}/features/{id}.xml": { "get": { - "summary": "Authentication Providers Admin Portal List", + "summary": "Service Feature Read", + "tags": ["Service Features"], "parameters": [ { "name": "access_token", @@ -9644,6 +9470,26 @@ "schema": { "type": "string" } + }, + { + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } } ], "responses": { @@ -9653,8 +9499,9 @@ } } }, - "post": { - "summary": "Authentication Provider Admin Portal Create", + "put": { + "summary": "Service Feature Update", + "tags": ["Service Features"], "parameters": [ { "name": "access_token", @@ -9666,69 +9513,417 @@ } }, { - "name": "kind", - "in": "query", - "description": "The kind of authentication provider which can be either 'auth0' or 'keycloak'. Use 'keycloak' for Red Hat Single Sign-On.", + "name": "service_id", + "in": "path", + "description": "ID of the service.", "required": true, "schema": { - "type": "string" + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" } }, { "name": "name", "in": "query", - "description": "Name of the authentication provider.", + "description": "Name of the feature.", "schema": { "type": "string" } }, { - "name": "system_name", + "name": "description", "in": "query", - "description": "System Name of the authentication provider.", + "description": "Description of the feature.", + "schema": { + "type": "ref" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Service Feature Delete", + "tags": ["Service Features"], + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, "schema": { "type": "string" } }, { - "name": "client_id", + "name": "service_id", + "in": "path", + "description": "ID of the service.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the feature.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/settings.json": { + "get": { + "summary": "Settings Read", + "tags": ["Settings"], + "operationId": "service_metric", + "parameters": [ + { + "name": "access_token", "in": "query", - "description": "Client ID of the authentication provider.", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Settings Update", + "tags": ["Settings"], + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, "schema": { "type": "string" } }, { - "name": "client_secret", + "name": "useraccountarea_enabled", "in": "query", - "description": "Client Secret of the authentication provider.", + "description": "Allow the user to edit their submitted details, change passwords, etc", + "schema": { + "type": "boolean" + } + }, + { + "name": "hide_service", + "in": "query", + "description": "Used a default service plan", + "schema": { + "type": "boolean" + } + }, + { + "name": "signups_enabled", + "in": "query", + "description": "Developers are allowed sign up themselves.", + "schema": { + "type": "boolean" + } + }, + { + "name": "account_approval_required", + "in": "query", + "description": "Approval is required by you before developer accounts are activated.", + "schema": { + "type": "boolean" + } + }, + { + "name": "strong_passwords_enabled", + "in": "query", + "description": "Require strong passwords from your users: Password must be at least 8 characters long, and contain both upper and lowercase letters, a digit and one special character of -+=><_$#.:;!?@&*()~][}{|. Existing passwords will still work. ", + "schema": { + "type": "boolean" + } + }, + { + "name": "public_search", + "in": "query", + "description": "Enables public search on Developer Portal", + "schema": { + "type": "boolean" + } + }, + { + "name": "account_plans_ui_visible", + "in": "query", + "description": "Enables visibility of Account Plans", + "schema": { + "type": "boolean" + } + }, + { + "name": "change_account_plan_permission", + "in": "query", + "description": "Account Plans changing", "schema": { "type": "string" } }, { - "name": "site", + "name": "service_plans_ui_visible", "in": "query", - "description": "Site o Realm of the authentication provider.", + "description": "Enables visibility of Service Plans", + "schema": { + "type": "boolean" + } + }, + { + "name": "change_service_plan_permission", + "in": "query", + "description": "Service Plans changing", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/webhooks.json": { + "put": { + "summary": "WebHooks Update", + "tags": ["Webhooks"], + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, "schema": { "type": "string" } }, { - "name": "skip_ssl_certificate_verification", + "name": "url", "in": "query", - "description": "Skip SSL certificate verification. False by default.", + "description": "URL that will be notified about all the events", + "schema": { + "type": "string" + } + }, + { + "name": "active", + "in": "query", + "description": "Activate/Disable WebHooks", "schema": { "type": "boolean" } }, { - "name": "published", + "name": "provider_actions", + "in": "query", + "description": "Dashboard actions fire webhooks. If false, only user actions in the portal trigger events.", + "schema": { + "type": "boolean" + } + }, + { + "name": "account_created_on", "in": "query", - "description": "Published authentication provider. False by default", "schema": { "type": "boolean" } + }, + { + "name": "account_updated_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "account_deleted_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "user_created_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "user_updated_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "user_deleted_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_created_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_updated_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_deleted_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "account_plan_changed_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_plan_changed_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_user_key_updated_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_key_created_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_key_deleted_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_suspended_on", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "application_key_updated_on", + "in": "query", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/webhooks/failures.xml": { + "get": { + "summary": "Webhooks List Failed Deliveries", + "tags": ["Webhooks"], + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "summary": "Webhooks Delete Failed Deliveries", + "tags": ["Webhooks"], + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "time", + "in": "query", + "description": "Only failed webhook deliveries whose time is less than or equal to the passed time are destroyed (if used).", + "schema": { + "type": "ref" + } } ], "responses": { From 35cd82188ace180dee31af9ff0e160baca8f79bf Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Mon, 30 Jan 2023 10:35:47 +0100 Subject: [PATCH 19/85] Reorder and tag Dev Portal API --- doc/active_docs/CMS API.json | 534 ++++++++++++++++------------------- 1 file changed, 251 insertions(+), 283 deletions(-) diff --git a/doc/active_docs/CMS API.json b/doc/active_docs/CMS API.json index ef3e27a94f..0c0750b8a4 100644 --- a/doc/active_docs/CMS API.json +++ b/doc/active_docs/CMS API.json @@ -11,12 +11,10 @@ } ], "paths": { - "/admin/api/cms/templates/{id}/publish.xml": { - "put": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "Template Publish", + "/admin/api/cms/templates.xml": { + "get": { + "tags": ["Templates"], + "summary": "Template List", "parameters": [ { "name": "access_token", @@ -27,32 +25,6 @@ "type": "string" } }, - { - "name": "id", - "in": "path", - "description": "ID of the template", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/cms/files.xml": { - "get": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "File List", - "parameters": [ { "name": "page", "in": "query", @@ -70,15 +42,6 @@ "type": "integer", "format": "int32" } - }, - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } } ], "responses": { @@ -89,10 +52,8 @@ } }, "post": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "File Create", + "tags": ["Templates"], + "summary": "Template Create", "parameters": [ { "name": "access_token", @@ -104,118 +65,54 @@ } }, { - "name": "path", + "name": "type", "in": "query", - "description": "URI of the file", "required": true, "schema": { - "type": "string" - } - }, - { - "name": "section_id", - "in": "query", - "description": "ID of a section (valid only for pages)", - "schema": { - "type": "ref" + "type": "string", + "enum": [ + "page", + "layout", + "partial" + ] } }, { - "name": "tag_list", + "name": "system_name", "in": "query", - "description": "List of the tags", + "description": "Human readable and unique identifier", "schema": { "type": "string" } }, { - "name": "attachment", + "name": "title", "in": "query", - "required": true, + "description": "Title of the template", "schema": { "type": "string" } }, { - "name": "downloadable", - "in": "query", - "description": "Checked sets the content-disposition to attachment", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/cms/files/{id}.xml": { - "get": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "File Read", - "parameters": [ - { - "name": "access_token", + "name": "path", "in": "query", - "description": "Your access token", - "required": true, + "description": "URI of the page", "schema": { "type": "string" } }, { - "name": "id", - "in": "path", - "description": "ID of the file", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "File Update", - "parameters": [ - { - "name": "access_token", + "name": "draft", "in": "query", - "description": "Your access token", - "required": true, + "description": "Text content of the template (you have to publish the template)", "schema": { "type": "string" } }, { - "name": "id", - "in": "path", - "description": "ID of the file", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "path", + "name": "section_name", "in": "query", - "description": "URI of the file", + "description": "system name of a section", "schema": { "type": "string" } @@ -229,59 +126,39 @@ } }, { - "name": "tag_list", + "name": "layout_name", "in": "query", - "description": "List of the tags", + "description": "system name of a layout (valid only for pages)", "schema": { "type": "string" } }, { - "name": "attachment", + "name": "layout_id", "in": "query", + "description": "ID of a layout - overrides layout_name", "schema": { - "type": "string" + "type": "ref" } }, { - "name": "downloadable", + "name": "liquid_enabled", "in": "query", - "description": "Checked sets the content-disposition to attachment", + "description": "liquid processing of the template content on/off", "schema": { "type": "boolean" } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "File Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } }, { - "name": "id", - "in": "path", - "description": "ID of the file", - "required": true, + "name": "handler", + "in": "query", + "description": "text will be processed by the handler before rendering", "schema": { - "type": "integer", - "format": "int32" + "type": "string", + "enum": [ + "textile", + "markdown" + ] } } ], @@ -293,12 +170,10 @@ } } }, - "/admin/api/cms/templates.xml": { + "/admin/api/cms/templates/{id}.xml": { "get": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "Template List", + "tags": ["Templates"], + "summary": "Template Read", "parameters": [ { "name": "access_token", @@ -310,18 +185,10 @@ } }, { - "name": "page", - "in": "query", - "description": "Current page of the list", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "per_page", - "in": "query", - "description": "Total number of records per one page (maximum 100)", + "name": "id", + "in": "path", + "description": "ID of the template", + "required": true, "schema": { "type": "integer", "format": "int32" @@ -335,11 +202,9 @@ } } }, - "post": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "Template Create", + "put": { + "tags": ["Templates"], + "summary": "Template Update", "parameters": [ { "name": "access_token", @@ -351,16 +216,13 @@ } }, { - "name": "type", - "in": "query", + "name": "id", + "in": "path", + "description": "ID of the template", "required": true, "schema": { - "type": "string", - "enum": [ - "page", - "layout", - "partial" - ] + "type": "integer", + "format": "int32" } }, { @@ -454,13 +316,75 @@ "content": {} } } + }, + "delete": { + "tags": ["Templates"], + "summary": "Template Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the template", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/cms/templates/{id}/publish.xml": { + "put": { + "tags": ["Templates"], + "summary": "Template Publish", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the template", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } } }, "/admin/api/cms/sections.xml": { "get": { - "tags": [ - "adminapicmstemplates" - ], + "tags": ["Sections"], "summary": "Section List", "parameters": [ { @@ -499,9 +423,7 @@ } }, "post": { - "tags": [ - "adminapicmstemplates" - ], + "tags": ["Sections"], "summary": "Section Create", "parameters": [ { @@ -555,12 +477,10 @@ } } }, - "/admin/api/cms/templates/{id}.xml": { + "/admin/api/cms/sections/{id}.xml": { "get": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "Template Read", + "tags": ["Sections"], + "summary": "Section Read", "parameters": [ { "name": "access_token", @@ -574,7 +494,7 @@ { "name": "id", "in": "path", - "description": "ID of the template", + "description": "ID of the section", "required": true, "schema": { "type": "integer", @@ -590,10 +510,8 @@ } }, "put": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "Template Update", + "tags": ["Sections"], + "summary": "Section Update", "parameters": [ { "name": "access_token", @@ -607,95 +525,115 @@ { "name": "id", "in": "path", - "description": "ID of the template", + "description": "ID of the section", "required": true, "schema": { "type": "integer", "format": "int32" } }, - { - "name": "system_name", - "in": "query", - "description": "Human readable and unique identifier", - "schema": { - "type": "string" - } - }, { "name": "title", "in": "query", - "description": "Title of the template", + "description": "Title of the section", "schema": { "type": "string" } }, { - "name": "path", + "name": "public", "in": "query", - "description": "URI of the page", + "description": "Public or not", "schema": { - "type": "string" + "type": "boolean" } }, { - "name": "draft", + "name": "parent_id", "in": "query", - "description": "Text content of the template (you have to publish the template)", + "description": "ID of a parent section", "schema": { - "type": "string" + "type": "ref" } }, { - "name": "section_name", + "name": "partial_path", "in": "query", - "description": "system name of a section", + "description": "Path of the section", "schema": { "type": "string" } - }, + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "tags": ["Sections"], + "summary": "Section Delete", + "parameters": [ { - "name": "section_id", + "name": "access_token", "in": "query", - "description": "ID of a section (valid only for pages)", + "description": "Your access token", + "required": true, "schema": { - "type": "ref" + "type": "string" } }, { - "name": "layout_name", - "in": "query", - "description": "system name of a layout (valid only for pages)", + "name": "id", + "in": "path", + "description": "ID of the section", + "required": true, "schema": { - "type": "string" + "type": "integer", + "format": "int32" } - }, + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/cms/files.xml": { + "get": { + "tags": ["Files"], + "summary": "File List", + "parameters": [ { - "name": "layout_id", + "name": "page", "in": "query", - "description": "ID of a layout - overrides layout_name", + "description": "Current page of the list", "schema": { - "type": "ref" + "type": "integer", + "format": "int32" } }, { - "name": "liquid_enabled", + "name": "per_page", "in": "query", - "description": "liquid processing of the template content on/off", + "description": "Total number of records per one page (maximum 100)", "schema": { - "type": "boolean" + "type": "integer", + "format": "int32" } }, { - "name": "handler", + "name": "access_token", "in": "query", - "description": "text will be processed by the handler before rendering", + "description": "Your access token", + "required": true, "schema": { - "type": "string", - "enum": [ - "textile", - "markdown" - ] + "type": "string" } } ], @@ -706,11 +644,9 @@ } } }, - "delete": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "Template Delete", + "post": { + "tags": ["Files"], + "summary": "File Create", "parameters": [ { "name": "access_token", @@ -722,13 +658,44 @@ } }, { - "name": "id", - "in": "path", - "description": "ID of the template", + "name": "path", + "in": "query", + "description": "URI of the file", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "string" + } + }, + { + "name": "section_id", + "in": "query", + "description": "ID of a section (valid only for pages)", + "schema": { + "type": "ref" + } + }, + { + "name": "tag_list", + "in": "query", + "description": "List of the tags", + "schema": { + "type": "string" + } + }, + { + "name": "attachment", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "downloadable", + "in": "query", + "description": "Checked sets the content-disposition to attachment", + "schema": { + "type": "boolean" } } ], @@ -740,12 +707,10 @@ } } }, - "/admin/api/cms/sections/{id}.xml": { + "/admin/api/cms/files/{id}.xml": { "get": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "Section Read", + "tags": ["Files"], + "summary": "File Read", "parameters": [ { "name": "access_token", @@ -759,7 +724,7 @@ { "name": "id", "in": "path", - "description": "ID of the section", + "description": "ID of the file", "required": true, "schema": { "type": "integer", @@ -775,10 +740,8 @@ } }, "put": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "Section Update", + "tags": ["Files"], + "summary": "File Update", "parameters": [ { "name": "access_token", @@ -792,7 +755,7 @@ { "name": "id", "in": "path", - "description": "ID of the section", + "description": "ID of the file", "required": true, "schema": { "type": "integer", @@ -800,36 +763,43 @@ } }, { - "name": "title", + "name": "path", "in": "query", - "description": "Title of the section", + "description": "URI of the file", "schema": { "type": "string" } }, { - "name": "public", + "name": "section_id", "in": "query", - "description": "Public or not", + "description": "ID of a section (valid only for pages)", "schema": { - "type": "boolean" + "type": "ref" } }, { - "name": "parent_id", + "name": "tag_list", "in": "query", - "description": "ID of a parent section", + "description": "List of the tags", "schema": { - "type": "ref" + "type": "string" } }, { - "name": "partial_path", + "name": "attachment", "in": "query", - "description": "Path of the section", "schema": { "type": "string" } + }, + { + "name": "downloadable", + "in": "query", + "description": "Checked sets the content-disposition to attachment", + "schema": { + "type": "boolean" + } } ], "responses": { @@ -840,10 +810,8 @@ } }, "delete": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "Section Delete", + "tags": ["Files"], + "summary": "File Delete", "parameters": [ { "name": "access_token", @@ -857,7 +825,7 @@ { "name": "id", "in": "path", - "description": "ID of the section", + "description": "ID of the file", "required": true, "schema": { "type": "integer", From 871939d6fb14df09decf1b1a8e9cbd5a486564cd Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Tue, 31 Jan 2023 14:04:33 +0530 Subject: [PATCH 20/85] THREESCALE-3927 Fixed test cases --- test/integration/api_docs/services_controller_test.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/test/integration/api_docs/services_controller_test.rb b/test/integration/api_docs/services_controller_test.rb index 72b2138912..a016fe84cf 100644 --- a/test/integration/api_docs/services_controller_test.rb +++ b/test/integration/api_docs/services_controller_test.rb @@ -78,7 +78,7 @@ def test_show_service_management Logic::RollingUpdates.stubs(enabled?: true) select_endpoints = Proc.new do |api, collection_paths| - path = api['path'] + path = api[0] collection_paths << path if path.match(name_or_path_regex) end @@ -87,7 +87,7 @@ def test_show_service_management # ignore stats endpoint name.to_s.match(name_or_path_regex) && name.to_s !~ /stats/ } - assert_equal actual_backed_api_routes.length, JSON.parse(response.body)['paths'].select{ |url| url.exclude?('stats') && url.include?('backend_')}.length + assert_equal actual_backed_api_routes.length, JSON.parse(response.body)['paths'].each_with_object(Set.new, &select_endpoints).length end end @@ -101,14 +101,14 @@ def test_show_onprem_account_management_api ThreeScale.config.stubs(onpremises: true) get '/api_docs/services/account_management_api.json' - select_endpoint = Proc.new { |api| api['path'] == '/admin/api/account_plans/{id}.xml' } + select_endpoint = Proc.new { |api| api == '/admin/api/account_plans/{id}.xml' } ThreeScale.config.stubs(onpremises: false) get '/api_docs/services/account_management_api.json' - assert_not_empty JSON.parse(response.body)['paths'].keys + assert_not_empty JSON.parse(response.body)['paths'].select(&select_endpoint) ThreeScale.config.stubs(onpremises: true) get '/api_docs/services/account_management_api.json' - assert_empty JSON.parse(response.body)['paths'].select{ |url| url.exclude?('admin')} + assert_empty JSON.parse(response.body)['paths'].select(&select_endpoint) end def test_index_and_show From f9a1d4da4bc4d2db1f4eac0dc3c568a0652c75be Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Tue, 31 Jan 2023 14:08:34 +0530 Subject: [PATCH 21/85] THREESCALE-8394 code clean --- app/controllers/api_docs/services_controller.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/controllers/api_docs/services_controller.rb b/app/controllers/api_docs/services_controller.rb index 2ac482fe19..71f8bdf25c 100644 --- a/app/controllers/api_docs/services_controller.rb +++ b/app/controllers/api_docs/services_controller.rb @@ -123,9 +123,7 @@ def show private def exclude_forbidden_endpoints(paths) - paths.select do |url| - url.exclude?('plan') - end + paths.select { |url| url.exclude?('plan') } end def allowed_api?(api) From d029760a177d6c37d7820b0c09578170f1f93b4b Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Tue, 31 Jan 2023 15:49:00 +0530 Subject: [PATCH 22/85] THREESCALE-3927 added assertionf for open api version --- test/integration/api_docs/services_controller_test.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/integration/api_docs/services_controller_test.rb b/test/integration/api_docs/services_controller_test.rb index a016fe84cf..6efc7a5d27 100644 --- a/test/integration/api_docs/services_controller_test.rb +++ b/test/integration/api_docs/services_controller_test.rb @@ -62,6 +62,7 @@ def test_index_and_show assert_response :success assert show_result.has_key?('paths') + assert_equal show_result["openapi"], "3.0.1" end end @@ -134,6 +135,7 @@ def test_index_and_show assert_response :success assert show_result.has_key?('paths') + assert_equal show_result["openapi"], "3.0.1" end end end From 37279ec18c8f12764128141ff720f38b502673ec Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Wed, 1 Feb 2023 13:29:00 +0530 Subject: [PATCH 23/85] THREESCALE-3927 Added Tags in the API --- doc/active_docs/Analytics API.json | 4 ++++ doc/active_docs/Billing API.json | 11 +++++++++++ doc/active_docs/Policy Registry API.json | 4 ++++ doc/active_docs/Service Management API.json | 5 +++++ 4 files changed, 24 insertions(+) diff --git a/doc/active_docs/Analytics API.json b/doc/active_docs/Analytics API.json index 0b04b2cda5..07a394f3b7 100644 --- a/doc/active_docs/Analytics API.json +++ b/doc/active_docs/Analytics API.json @@ -14,6 +14,7 @@ "/stats/backend_apis/{backend_api_id}/usage.json": { "get": { "summary": "Backend Traffic by Metric", + "tags": ["Stats"], "parameters": [ { "name": "format", @@ -279,6 +280,7 @@ "/stats/services/{service_id}/usage.{format}": { "get": { "summary": "Service Traffic by Metric", + "tags": ["Stats"], "parameters": [ { "name": "format", @@ -545,6 +547,7 @@ "/stats/services/{service_id}/top_applications.{format}": { "get": { "summary": "Service Top Applications", + "tags": ["Stats"], "parameters": [ { "name": "format", @@ -624,6 +627,7 @@ "/stats/applications/{application_id}/usage.{format}": { "get": { "summary": "Application Traffic by Metric", + "tags": ["Stats"], "parameters": [ { "name": "format", diff --git a/doc/active_docs/Billing API.json b/doc/active_docs/Billing API.json index b0e2d2c5a1..8e0ba2956b 100644 --- a/doc/active_docs/Billing API.json +++ b/doc/active_docs/Billing API.json @@ -14,6 +14,7 @@ "/api/accounts/{account_id}/invoices/{id}.xml": { "get": { "summary": "Invoice by Account", + "tags": ["Invoices"], "parameters": [ { "name": "access_token", @@ -56,6 +57,7 @@ "/api/invoices/{invoice_id}/line_items.xml": { "get": { "summary": "Invoice Line Items List", + "tags": ["Invoices"], "parameters": [ { "name": "access_token", @@ -86,6 +88,7 @@ }, "post": { "summary": "Create Line Item for an Invoice", + "tags": ["Invoices"], "parameters": [ { "name": "access_token", @@ -182,6 +185,7 @@ "/api/invoices/{invoice_id}/payment_transactions.xml": { "get": { "summary": "Invoice Payment Transactions List", + "tags": ["Invoices"], "parameters": [ { "name": "access_token", @@ -214,6 +218,7 @@ "/api/invoices/{id}.xml": { "get": { "summary": "Invoice Read", + "tags": ["Invoices"], "parameters": [ { "name": "access_token", @@ -244,6 +249,7 @@ }, "put": { "summary": "Invoice Update", + "tags": ["Invoices"], "parameters": [ { "name": "access_token", @@ -292,6 +298,7 @@ "/api/invoices/{id}/state.xml": { "put": { "summary": "Invoice Update state", + "tags": ["Invoices"], "parameters": [ { "name": "access_token", @@ -333,6 +340,7 @@ "/api/invoices/{invoice_id}/line_items/{id}.xml": { "delete": { "summary": "Delete Line Item of an Invoice", + "tags": ["Invoices"], "parameters": [ { "name": "access_token", @@ -375,6 +383,7 @@ "/api/invoices.xml": { "get": { "summary": "Invoice List", + "tags": ["Invoices"], "parameters": [ { "name": "access_token", @@ -438,6 +447,7 @@ }, "post": { "summary": "Invoice Create", + "tags": ["Invoices"], "parameters": [ { "name": "access_token", @@ -478,6 +488,7 @@ "/api/accounts/{account_id}/invoices.xml": { "get": { "summary": "Invoice List by Account", + "tags": ["Invoices"], "parameters": [ { "name": "access_token", diff --git a/doc/active_docs/Policy Registry API.json b/doc/active_docs/Policy Registry API.json index 437611c480..3c369cf3c1 100644 --- a/doc/active_docs/Policy Registry API.json +++ b/doc/active_docs/Policy Registry API.json @@ -14,6 +14,7 @@ "/admin/api/registry/policies.json":{ "get":{ "summary": "APIcast Policy Registry List", + "tags": ["Policies"], "parameters": [ { "name": "access_token", @@ -33,6 +34,7 @@ }, "post":{ "summary": "APIcast Policy Registry Create", + "tags": ["Policies"], "parameters": [ { "name": "access_token", @@ -76,6 +78,7 @@ "get" :{ "summary": "APIcast Policy Registry Read", "description": "Returns the APIcast policy by ID", + "tags": ["Policies"], "parameters": [ { "name": "access_token", @@ -104,6 +107,7 @@ "put": { "summary": "APIcast Policy Registry Update", "description": "Updates an APIcast Policy", + "tags": ["Policies"], "parameters": [ { "name": "access_token", diff --git a/doc/active_docs/Service Management API.json b/doc/active_docs/Service Management API.json index 57789cdf71..3f8cdf2a3c 100644 --- a/doc/active_docs/Service Management API.json +++ b/doc/active_docs/Service Management API.json @@ -14,6 +14,7 @@ "/transactions/oauth_authorize.xml": { "get": { "summary": "Authorize (OAuth authentication mode pattern)", + "tags": ["Authorization"], "operationId": "oauth_authorize", "parameters": [ { @@ -94,6 +95,7 @@ "/transactions/authrep.xml": { "get": { "summary": "AuthRep (Authorize + Report for the API Key authentication pattern)", + "tags": ["Authorization"], "parameters": [ { "name": "service_token", @@ -158,6 +160,7 @@ "/transactions/oauth_authrep.xml": { "get": { "summary": "AuthRep (OAuth authentication mode pattern)", + "tags": ["Authorization"], "operationId": "oauth_authrep", "parameters": [ { @@ -246,6 +249,7 @@ "/transactions/authorize.xml": { "get": { "summary": "Authorize (API Key authentication pattern)", + "tags": ["Authorization"], "operationId": "authorize_user_key", "parameters": [ { @@ -303,6 +307,7 @@ "/transactions.xml": { "post": { "summary": "Report (OAuth authentication pattern)", + "tags": ["Authorization"], "parameters": [ { "name": "service_token", From e2896885cba2e644ab23148d2698ae4c36ab0fcb Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Wed, 1 Feb 2023 14:12:22 +0530 Subject: [PATCH 24/85] THREESCALE-3927 added assertion to check API version --- test/integration/api_docs/services_controller_test.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/integration/api_docs/services_controller_test.rb b/test/integration/api_docs/services_controller_test.rb index 6efc7a5d27..11a886ff9b 100644 --- a/test/integration/api_docs/services_controller_test.rb +++ b/test/integration/api_docs/services_controller_test.rb @@ -62,7 +62,7 @@ def test_index_and_show assert_response :success assert show_result.has_key?('paths') - assert_equal show_result["openapi"], "3.0.1" + assert_match /^3\.[0-9]+\.[0-9]+$/, show_result["openapi"] end end @@ -135,7 +135,8 @@ def test_index_and_show assert_response :success assert show_result.has_key?('paths') - assert_equal show_result["openapi"], "3.0.1" + debugger + assert_match /^3\.[0-9]+\.[0-9]+$/, show_result["openapi"] end end end From 7af296eb15216fef43a5dc111fc83e709dfd23a6 Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Wed, 1 Feb 2023 10:18:42 +0100 Subject: [PATCH 25/85] Update Service Management API --- doc/active_docs/Service Management API.json | 267 ++++++++++++++------ 1 file changed, 184 insertions(+), 83 deletions(-) diff --git a/doc/active_docs/Service Management API.json b/doc/active_docs/Service Management API.json index 3f8cdf2a3c..9ae7473d2d 100644 --- a/doc/active_docs/Service Management API.json +++ b/doc/active_docs/Service Management API.json @@ -11,16 +11,19 @@ } ], "paths": { - "/transactions/oauth_authorize.xml": { + "/transactions/authorize.xml": { "get": { - "summary": "Authorize (OAuth authentication mode pattern)", - "tags": ["Authorization"], - "operationId": "oauth_authorize", + "summary": "Authorize (API Key and App ID / App Key authentication patterns)", + "operationId": "authorize", + "description": "Read-only operation to authorize an application in the API Key or App ID / App Key authentication pattern.\n\n**Either `user_key`, or `app_id` and `app_key` pair must be provided, according to the authentication pattern of the API.**\n\nIt is used to check if a particular application exists, is active and is within its usage limits. It can be optionally used to authenticate a call using an application key. It's possible to pass a 'predicted usage' to the authorize call. This can serve three purposes:\n1) To make sure an API call won't go over the limits before the call is made, if the usage of the call is known in advance. In this case, the estimated usage can be passed to the authorize call, and it will respond whether the actual API call is still within limit.\n2) To limit the authorization only to a subset of metrics. If usage is passed in, only the metrics listed in it will be checked against the limits. For example: There are two metrics defined: _searches_ and _updates_. _updates_ are already over limit, but _searches_ are not. In this case, the user should still be allowed to do a search call, but not an update one.\n3) If no usage is passed then any metric with a limit exceeded state will result in an _authorization_failed_ response.\n\n**Note:** Even if the predicted usage is passed in, authorize is still a **read-only** operation. You have to make the report call to report the usage.\n\nThe response can have an HTTP response code: `200` OK (if authorization is granted), `409` (if it's not granted, typically application over limits or keys missing, check 'reason' tag), `403` (for authentication errors, check 'error' tag) and `404` (not found).", + "tags": [ + "API Key and App ID / App Key" + ], "parameters": [ { "name": "service_token", "in": "query", - "description": "Your service api key with 3scale (also known as service token).", + "description": "Service token for the API service.", "required": true, "schema": { "type": "string" @@ -29,16 +32,17 @@ { "name": "service_id", "in": "query", - "description": "Service id. Required.", + "description": "Service ID.", "required": true, "schema": { - "type": "string" + "type": "integer" } }, { - "name": "access_token", + "name": "user_key", "in": "query", - "description": "OAuth token used for authorizing if you don't use client_id with client_secret.", + "description": "User Key (API key) - identifier and shared secret of the application if the authentication pattern is API Key.", + "required": false, "schema": { "type": "string" } @@ -46,42 +50,37 @@ { "name": "app_id", "in": "query", - "description": "Client Id (identifier of the application if the auth. pattern is OAuth, note that client_id == app_id)", + "description": "App Id (identifier of the application if the authentication pattern is App ID / App Key).", "schema": { "type": "string" } }, { - "name": "referrer", + "name": "app_key", "in": "query", - "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed.", + "description": "App Key (shared secret of the application if the authentication pattern is App ID / App Key). The App Key is required if the application has one or more keys defined.", + "required": false, "schema": { "type": "string" } }, { - "name": "usage", - "in": "query", - "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.", - "schema": { - "type": "ref" - } - }, - { - "name": "redirect_url", + "name": "referrer", "in": "query", - "description": "Optional redirect URL for OAuth. Will be validated if sent.", + "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed.", "schema": { "type": "string" } }, { - "name": "redirect_uri", + "name": "usage", "in": "query", - "description": "Optional redirect URI for OAuth. This is the same as 'redirect_url', but if used you should expect a matching 'redirect_uri' response field.", + "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.", "schema": { - "type": "string" - } + "$ref": "#/components/schemas/Usage" + }, + "style": "deepObject", + "explode": true } ], "responses": { @@ -94,13 +93,17 @@ }, "/transactions/authrep.xml": { "get": { - "summary": "AuthRep (Authorize + Report for the API Key authentication pattern)", - "tags": ["Authorization"], + "summary": "AuthRep (Authorize + Report for the API Key and App ID / App Key authentication patterns)", + "operationId": "authrep", + "description": "AuthRep is a 'one-shot' operation to authorize an application and report the associated transaction at the same time.\n\n**Either `user_key`, or `app_id` and `app_key` pair must be provided, according to the authentication pattern of the API.**\n\nThe main difference between this call and the regular authorize call is that usage will be reported if the authorization is successful. AuthRep is the most convenient way to integrate your API with the 3scale's Service Manangement API since it does a 1:1 mapping between a request to your API and a request to 3scale's API.\n\nIf you do not want to do a request to 3scale for each request to your API or batch the reports you should use the Authorize and Report methods instead.\n\nAuthrep is **not a read-only** operation and will increment the values if the authorization step is a success.", + "tags": [ + "API Key and App ID / App Key" + ], "parameters": [ { "name": "service_token", "in": "query", - "description": "Your service api key with 3scale (also known as service token).", + "description": "Service token for the API service.", "required": true, "schema": { "type": "string" @@ -109,17 +112,34 @@ { "name": "service_id", "in": "query", - "description": "Service id. Required.", + "description": "Service ID.", "required": true, "schema": { - "type": "string" + "type": "integer" } }, { "name": "user_key", "in": "query", - "description": "User Key (identifier and shared secret of the application if the auth. pattern is Api Key)", - "required": true, + "description": "User Key (API key) - identifier and shared secret of the application if the authentication pattern is API Key.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "app_id", + "in": "query", + "description": "App Id (identifier of the application if the authentication pattern is App ID / App Key).", + "schema": { + "type": "string" + } + }, + { + "name": "app_key", + "in": "query", + "description": "App Key (shared secret of the application if the authentication pattern is App ID / App Key). The App Key is required if the application has one or more keys defined.", + "required": false, "schema": { "type": "string" } @@ -137,16 +157,20 @@ "in": "query", "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", "schema": { - "type": "ref" - } + "$ref": "#/components/schemas/Usage" + }, + "style": "deepObject", + "explode": true }, { "name": "log", "in": "query", - "description": "Request Log allows to log the requests/responses/status_codes of your API back to 3scale to maintain a log of the latest activity on your API. Request Logs are optional and not available in all 3scale plans.", + "description": "Request Log allows to log status codes of your API back to 3scale to maintain a log of the latest activity on your API. Request Logs are optional and not available in all 3scale plans.", "schema": { - "type": "ref" - } + "$ref": "#/components/schemas/Log" + }, + "style": "deepObject", + "explode": true } ], "responses": { @@ -157,16 +181,19 @@ } } }, - "/transactions/oauth_authrep.xml": { + "/transactions/oauth_authorize.xml": { "get": { - "summary": "AuthRep (OAuth authentication mode pattern)", - "tags": ["Authorization"], - "operationId": "oauth_authrep", + "summary": "Authorize (OAuth authentication mode pattern)", + "operationId": "authorizeOauth", + "description": "Read-only operation to authorize an application in the OAuth authentication pattern.\n\nWhen using this endpoint please pay attention at your handling of app_id and app_key parameters. If you don't specify an app_key, the endpoint assumes the app_id specified has already been authenticated by other means. If you specify the app_key parameter, even if it is empty, it will be checked against the application's keys. If you don't trust the app_id value you have, use app keys and specify one.\n\nThis calls returns extra data (secret and redirect_url) needed to power OAuth APIs. It's only available for users with OAuth enabled APIs.\n\nIt is used to check if a particular application exists, is active and is within its usage limits. It can be optionally used to authenticate a call using an application key. It's possible to pass a 'predicted usage' to the authorize call. This can serve three purposes:\n1) To make sure an API call won't go over the limits before the call is made, if the usage of the call is known in advance. In this case, the estimated usage can be passed to the authorize call, and it will respond whether the actual API call is still within limit.\n2) To limit the authorization only to a subset of metrics. If usage is passed in, only the metrics listed in it will be checked against the limits. For example: There are two metrics defined: _searches_ and _updates_. _updates_ are already over limit, but _searches_ are not. In this case, the user should still be allowed to do a search call, but not an update one.\n\n3) If no usage is passed then any metric with a limit exceeded state will result in an _authorization_failed_ response.\n\n**Note:** Even if the predicted usage is passed in, authorize is still a **read-only** operation. You have to make the report call to report the usage.\n\nThe response can have an HTTP response code: `200` OK (if authorization is granted), `409` (if it's not granted, typically application over limits or keys missing, check 'reason' tag), `403` (for authentication errors, check 'error' tag) and `404` (not found).", + "tags": [ + "OAuth" + ], "parameters": [ { "name": "service_token", "in": "query", - "description": "Your service api key with 3scale (also known as service token).", + "description": "Service token for the API service.", "required": true, "schema": { "type": "string" @@ -175,24 +202,24 @@ { "name": "service_id", "in": "query", - "description": "Service id. Required.", + "description": "Service ID.", "required": true, "schema": { - "type": "string" + "type": "integer" } }, { - "name": "access_token", + "name": "app_id", "in": "query", - "description": "OAuth token used for authorizing if you don't use client_id with client_secret.", + "description": "Client ID (identifier of the application if the authentication pattern is OAuth, note that client_id == app_id)", "schema": { "type": "string" } }, { - "name": "app_id", + "name": "app_key", "in": "query", - "description": "Client Id (identifier of the application if the auth. pattern is OAuth, note that client_id == app_id)", + "description": "App Key (shared secret of the application). The app key, if present, must match a key defined for the application. Note that empty values are considered invalid.", "schema": { "type": "string" } @@ -208,18 +235,12 @@ { "name": "usage", "in": "query", - "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", + "description": "Predicted usage. Actual usage will need to be reported with a report or an authrep call.", "schema": { - "type": "ref" - } - }, - { - "name": "log", - "in": "query", - "description": "Request Log allows to log the requests/responses/status_codes of your API back to 3scale to maintain a log of the latest activity on your API. Request Logs are optional and not available in all 3scale plans.", - "schema": { - "type": "ref" - } + "$ref": "#/components/schemas/Usage" + }, + "style": "deepObject", + "explode": true }, { "name": "redirect_url", @@ -246,16 +267,19 @@ } } }, - "/transactions/authorize.xml": { + "/transactions/oauth_authrep.xml": { "get": { - "summary": "Authorize (API Key authentication pattern)", - "tags": ["Authorization"], - "operationId": "authorize_user_key", + "summary": "AuthRep (OAuth authentication mode pattern)", + "operationId": "authrepOauth", + "description": "AuthRep is a 'one-shot' operation to authorize an application and report the associated transaction at the same time in the OAuth authentication pattern.\n\nThe main difference between this call and the regular authorize call is that usage will be reported if the authorization is successful. Authrep is the most convenient way to integrate your API with the 3scale's Service Manangement API since it does a 1:1 mapping between a request to your API and a request to 3scale's API.\n\nIf you do not want to do a request to 3scale for each request to your API or batch the reports you should use the Authorize and Report methods instead.\n\nAuthrep is **not a read-only** operation and will increment the values if the authorization step is a success.\n\nWhen using this endpoint please pay attention at your handling of app_id and app_key parameters. If you don't specify an app_key, the endpoint assumes the app_id specified has already been authenticated by other means. If you specify the app_key parameter, even if it is empty, it will be checked against the application's keys. If you don't trust the app_id value you have, use app keys and specify one.\n\nThis call returns extra data (secret and redirect_url) needed to power OAuth APIs. It's only available for users with OAuth enabled APIs.", + "tags": [ + "OAuth" + ], "parameters": [ { "name": "service_token", "in": "query", - "description": "Your service api key with 3scale (also known as service token).", + "description": "Service token for the API service.", "required": true, "schema": { "type": "string" @@ -264,17 +288,24 @@ { "name": "service_id", "in": "query", - "description": "Service id. Required.", + "description": "Service ID.", "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "app_id", + "in": "query", + "description": "Client ID (identifier of the application if the authentication pattern is OAuth, note that client_id == app_id)", "schema": { "type": "string" } }, { - "name": "user_key", + "name": "app_key", "in": "query", - "description": "User Key (identifier and shared secret of the application if the auth. pattern is Api Key)", - "required": true, + "description": "App Key (shared secret of the application). The app key, if present, must match a key defined for the application. Note that empty values are considered invalid.", "schema": { "type": "string" } @@ -290,9 +321,37 @@ { "name": "usage", "in": "query", - "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.", + "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", + "schema": { + "$ref": "#/components/schemas/Usage" + }, + "style": "deepObject", + "explode": true + }, + { + "name": "log", + "in": "query", + "description": "Request Log allows to log status codes of your API back to 3scale to maintain a log of the latest activity on your API. Request Logs are optional and not available in all 3scale plans.", + "schema": { + "$ref": "#/components/schemas/Log" + }, + "style": "deepObject", + "explode": true + }, + { + "name": "redirect_url", + "in": "query", + "description": "Optional redirect URL for OAuth. Will be validated if sent.", + "schema": { + "type": "string" + } + }, + { + "name": "redirect_uri", + "in": "query", + "description": "Optional redirect URI for OAuth. This is the same as 'redirect_url', but if used you should expect a matching 'redirect_uri' response field.", "schema": { - "type": "ref" + "type": "string" } } ], @@ -306,13 +365,18 @@ }, "/transactions.xml": { "post": { - "summary": "Report (OAuth authentication pattern)", - "tags": ["Authorization"], + "summary": "Report", + "operationId": "report", + "description": "Report the transactions to 3scale backend.\n\nThis operation updates the metrics passed in the usage parameter. You can send up to 1K transactions in a single POST request. Transactions are processed asynchronously by the 3scale's backend.\n\nTransactions from a single batch are reported only if all of them are valid. If there is an error in processing of at least one of them, none is reported.\n\nNote that a batch can only report transactions to the same service, `service_id` is at the same level as `service_token`. Multiple report calls will have to be issued to report transactions to different services.\n\nBe aware that reporting metrics that are limited at the time of reporting will have no effect.\n\nSupported Content-Type values for this POST call are: `application/x-www-form-urlencoded`.", + "tags": [ + "API Key and App ID / App Key", + "OAuth" + ], "parameters": [ { "name": "service_token", "in": "query", - "description": "Your service api key with 3scale (also known as service token).", + "description": "Service token for the API service.", "required": true, "schema": { "type": "string" @@ -321,10 +385,10 @@ { "name": "service_id", "in": "query", - "description": "Service id. Required.", + "description": "Service ID.", "required": true, "schema": { - "type": "string" + "type": "integer" } }, { @@ -332,13 +396,8 @@ "in": "query", "description": "Transactions to be reported. There is a limit of 1000 transactions to be reported on a single request.", "required": true, - "style": "form", - "explode": false, "schema": { - "type": "array", - "items": { - "type": "object" - } + "$ref": "#/components/schemas/Transaction" } } ], @@ -351,5 +410,47 @@ } } }, - "components": {} + "components": { + "schemas": { + "Usage": { + "type": "object", + "additionalProperties": { + "type": "integer" + }, + "example": { + "hits": 1 + } + }, + "Transaction": { + "type": "array", + "items": { + "properties": { + "user_key": { + "type": "string" + }, + "app_id": { + "type": "string" + }, + "timestamp": { + "type": "string", + "pattern": "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}( \\d{2}:\\d{2})?$", + "example": "2022-02-01 22:15:31 -08:00" + }, + "usage": { + "$ref": "#/components/schemas/Usage" + } + } + } + }, + "Log": { + "type": "object", + "properties": { + "code": { + "type": "string", + "example": 200 + } + } + } + } + } } \ No newline at end of file From 2542482b3d621e62e4c3a6f65ff5bec33bd1392c Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Wed, 1 Feb 2023 14:53:04 +0530 Subject: [PATCH 26/85] THREESCALE-3927 removed extra space and breakpoint --- test/integration/api_docs/services_controller_test.rb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/test/integration/api_docs/services_controller_test.rb b/test/integration/api_docs/services_controller_test.rb index 11a886ff9b..80bed1f1cd 100644 --- a/test/integration/api_docs/services_controller_test.rb +++ b/test/integration/api_docs/services_controller_test.rb @@ -62,7 +62,7 @@ def test_index_and_show assert_response :success assert show_result.has_key?('paths') - assert_match /^3\.[0-9]+\.[0-9]+$/, show_result["openapi"] + assert_match /^3\.[0-9]+\.[0-9]+$/, show_result["openapi"] end end @@ -135,8 +135,7 @@ def test_index_and_show assert_response :success assert show_result.has_key?('paths') - debugger - assert_match /^3\.[0-9]+\.[0-9]+$/, show_result["openapi"] + assert_match /^3\.[0-9]+\.[0-9]+$/, show_result["openapi"] end end end From f1462ae0701cd51556cd183b7574ac7ce9526a5b Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Thu, 2 Feb 2023 16:31:33 +0100 Subject: [PATCH 27/85] Service Management API: transactions in request body --- doc/active_docs/Service Management API.json | 106 ++++++++++++-------- 1 file changed, 63 insertions(+), 43 deletions(-) diff --git a/doc/active_docs/Service Management API.json b/doc/active_docs/Service Management API.json index 9ae7473d2d..405f12efe3 100644 --- a/doc/active_docs/Service Management API.json +++ b/doc/active_docs/Service Management API.json @@ -372,35 +372,42 @@ "API Key and App ID / App Key", "OAuth" ], - "parameters": [ - { - "name": "service_token", - "in": "query", - "description": "Service token for the API service.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "query", - "description": "Service ID.", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "transactions", - "in": "query", - "description": "Transactions to be reported. There is a limit of 1000 transactions to be reported on a single request.", - "required": true, - "schema": { - "$ref": "#/components/schemas/Transaction" + "requestBody": { + "description": "Transactions to be reported. There is a limit of 1000 transactions to be reported on a single request.", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "service_token": { + "type": "string", + "description": "Service token for the API service." + }, + "service_id": { + "type": "integer", + "description": "Service ID." + }, + "transactions": { + "$ref": "#/components/schemas/Transactions" + } + }, + "required": [ + "service_token", + "service_id", + "transactions" + ] + }, + "encoding": { + "transactions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } } } - ], + }, "responses": { "default": { "description": "success", @@ -421,24 +428,37 @@ "hits": 1 } }, - "Transaction": { + "Transactions": { "type": "array", "items": { - "properties": { - "user_key": { - "type": "string" - }, - "app_id": { - "type": "string" - }, - "timestamp": { - "type": "string", - "pattern": "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}( \\d{2}:\\d{2})?$", - "example": "2022-02-01 22:15:31 -08:00" - }, - "usage": { - "$ref": "#/components/schemas/Usage" - } + "$ref": "#/components/schemas/Transaction" + } + }, + "Transaction": { + "type": "object", + "properties": { + "user_key": { + "type": "string", + "description": "User Key (API key) - identifier and shared secret of the application if the authentication pattern is API Key." + }, + "app_id": { + "type": "string", + "description": "App Id (identifier of the application if the authentication pattern is App ID / App Key)." + }, + "timestamp": { + "type": "string", + "pattern": "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}( [+-]\\d{2}:\\d{2})?$", + "description": "If passed, it should be the time when the transaction took place. Format: YYYY-MM-DD HH:MM:SS for UTC, add -HH:MM or +HH:MM for time offset. For instance, 2022-02-01 22:15:31 -08:00", + "example": "2022-02-01 22:15:31 -08:00" + }, + "usage": { + "$ref": "#/components/schemas/Usage" + } + }, + "example": { + "user_key": "example", + "usage": { + "hits": 1 } } }, From 60b6c159edf329515fe5428ef19a632aac1ebd88 Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Mon, 6 Feb 2023 17:41:16 +0530 Subject: [PATCH 28/85] THREESCALE-3927 Fixed permission api --- doc/active_docs/Account Management API.json | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/doc/active_docs/Account Management API.json b/doc/active_docs/Account Management API.json index 6c8a5f6461..ba2157c615 100644 --- a/doc/active_docs/Account Management API.json +++ b/doc/active_docs/Account Management API.json @@ -2634,10 +2634,7 @@ "style": "form", "explode": false, "schema": { - "type": "array", - "items": { - "type": "object" - } + "$ref": "#/components/schemas/Permissions" } }, { @@ -2647,10 +2644,7 @@ "style": "form", "explode": false, "schema": { - "type": "array", - "items": { - "type": "object" - } + "$ref": "#/components/schemas/Permissions" } } ], @@ -9935,5 +9929,14 @@ } } }, - "components": {} + "components": { + "schemas":{ + "Permissions":{ + "type": "array", + "items": { + "$ref": "#/components/schemas/Permissions" + } + } + } + } } \ No newline at end of file From 07c9060f4592568985a83c055af8e911a84e1566 Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Mon, 6 Feb 2023 17:50:30 +0530 Subject: [PATCH 29/85] THREESCALE-3927 added required space at the last --- doc/active_docs/Account Management API.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/active_docs/Account Management API.json b/doc/active_docs/Account Management API.json index ba2157c615..9c46bfa68a 100644 --- a/doc/active_docs/Account Management API.json +++ b/doc/active_docs/Account Management API.json @@ -9939,4 +9939,4 @@ } } } -} \ No newline at end of file +} From 4b54cf24ce1cdfacfd14a034def22fe4fd9abf6a Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Tue, 7 Feb 2023 14:34:26 +0530 Subject: [PATCH 30/85] THREESCALE-3927 make enum for array of strings --- doc/active_docs/Account Management API.json | 24 +++++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/doc/active_docs/Account Management API.json b/doc/active_docs/Account Management API.json index 9c46bfa68a..7a1fe8af1e 100644 --- a/doc/active_docs/Account Management API.json +++ b/doc/active_docs/Account Management API.json @@ -2628,7 +2628,7 @@ } }, { - "name": "allowed_service_ids", + "name": "allowed_service_ids[]", "in": "query", "description": "IDs of the services that need to be enabled, URL-encoded array. To disable all services, set the value to '[]'. To enable all services, add parameter 'allowed_service_ids[]' with no value to the 'curl' command (can't be done in ActiveDocs)", "style": "form", @@ -2638,13 +2638,26 @@ } }, { - "name": "allowed_sections", + "name": "allowed_sections[]", "in": "query", "description": "The list of sections in the admin portal that the user can access, URL-encoded array. Possible values: 'portal' (Developer Portal), 'finance' (Billing), 'settings', 'partners' (Accounts -- Applications), 'monitoring' (Analytics), 'plans' (Integration & Application Plans), 'policy_registry'. To disable all sections, set the value to '[]'.", "style": "form", "explode": false, "schema": { - "$ref": "#/components/schemas/Permissions" + "type": "array", + "items": { + "type": "string" + }, + "enum": [ + "portal", + "finance", + "partners", + "monitoring", + "settings", + "plans", + "policy_registry" + + ] } } ], @@ -9932,10 +9945,7 @@ "components": { "schemas":{ "Permissions":{ - "type": "array", - "items": { - "$ref": "#/components/schemas/Permissions" - } + "type": "array" } } } From 8c22c5a6658e5b139939a79840f5518b7d9808fa Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Thu, 9 Feb 2023 15:08:31 +0530 Subject: [PATCH 31/85] THREESCALE-3927 fixed service management api url issue --- app/controllers/api_docs/services_controller.rb | 2 +- app/views/provider/admin/api_docs/show.html.erb | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/app/controllers/api_docs/services_controller.rb b/app/controllers/api_docs/services_controller.rb index 71f8bdf25c..cc4d2de268 100644 --- a/app/controllers/api_docs/services_controller.rb +++ b/app/controllers/api_docs/services_controller.rb @@ -41,7 +41,7 @@ def initialize(name, system_name) def json parsed_content = JSON.parse(file_content) - parsed_content['basePath'] = backend_base_host if backend_api? + parsed_content['servers'][0]['url'] = backend_base_host if backend_api? parsed_content end diff --git a/app/views/provider/admin/api_docs/show.html.erb b/app/views/provider/admin/api_docs/show.html.erb index c67a1d13ea..dbe0806e2b 100644 --- a/app/views/provider/admin/api_docs/show.html.erb +++ b/app/views/provider/admin/api_docs/show.html.erb @@ -30,10 +30,15 @@ } }); path.forEach(function (url) { - var serviceEndpoint = "<%=j base_url.gsub(%r{/$}, '') %>" - dom_name = url.substring(url.lastIndexOf('/') + 1).replace(/\.json/g, '').replace(/\_/g, '-'); - $('#api-containers').append($(`
`)); - SwaggerUI({ url: url, dom_id: '#' + ''+ dom_name }, serviceEndpoint); + var serviceEndpoint = "<%=j base_url.gsub(%r{/$}, '') %>" + dom_name = url.substring(url.lastIndexOf('/') + 1).replace(/\.json/g, '').replace(/\_/g, '-'); + $('#api-containers').append($(`
`)); + + if (dom_name == 'service-management-api') { + SwaggerUI({ url: url, dom_id: '#' + ''+ dom_name}); + } else { + SwaggerUI({ url: url, dom_id: '#' + ''+ dom_name }, serviceEndpoint); + } }); }); From 05929bb6afbbba9b23aa00a8c5174266d6ea21a4 Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Thu, 9 Feb 2023 13:19:05 +0100 Subject: [PATCH 32/85] Some fixes for the Account Management API --- doc/active_docs/Account Management API.json | 1685 ++++++++++--------- 1 file changed, 896 insertions(+), 789 deletions(-) diff --git a/doc/active_docs/Account Management API.json b/doc/active_docs/Account Management API.json index 7a1fe8af1e..52e58bdcfc 100644 --- a/doc/active_docs/Account Management API.json +++ b/doc/active_docs/Account Management API.json @@ -14,7 +14,9 @@ "/admin/api/signup.xml": { "post": { "summary": "Signup Express (Account Create)", - "tags": ["Accounts"], + "tags": [ + "Accounts" + ], "parameters": [ { "name": "access_token", @@ -66,8 +68,7 @@ "in": "query", "description": "ID of the account plan (if not assigned default will be used instead).", "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -75,8 +76,7 @@ "in": "query", "description": "ID of the service plan (if not assigned default will be used instead).", "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -84,8 +84,7 @@ "in": "query", "description": "ID of the application plan (if not assigned default will be used instead).", "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -113,7 +112,9 @@ "/admin/api/accounts.xml": { "get": { "summary": "Account List", - "tags": ["Accounts"], + "tags": [ + "Accounts" + ], "parameters": [ { "name": "access_token", @@ -143,7 +144,6 @@ "description": "Page in the paginated list. Defaults to 1.", "schema": { "type": "integer", - "format": "int32", "default": 1 } }, @@ -153,7 +153,6 @@ "description": "Number of results per page. Default and max is 500.", "schema": { "type": "integer", - "format": "int32", "default": 500 } } @@ -169,7 +168,9 @@ "/admin/api/accounts/{id}.xml": { "get": { "summary": "Account Read", - "tags": ["Accounts"], + "tags": [ + "Accounts" + ], "parameters": [ { "name": "access_token", @@ -186,8 +187,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -200,7 +200,9 @@ }, "put": { "summary": "Account Update", - "tags": ["Accounts"], + "tags": [ + "Accounts" + ], "parameters": [ { "name": "access_token", @@ -217,8 +219,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -268,7 +269,9 @@ }, "delete": { "summary": "Account Delete ", - "tags": ["Accounts"], + "tags": [ + "Accounts" + ], "parameters": [ { "name": "access_token", @@ -285,8 +288,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -301,7 +303,9 @@ "/admin/api/accounts/find.xml": { "get": { "summary": "Account Find", - "tags": ["Accounts"], + "tags": [ + "Accounts" + ], "parameters": [ { "name": "access_token", @@ -333,7 +337,7 @@ "in": "query", "description": "ID of the account user.", "schema": { - "type": "ref" + "type": "string" } }, { @@ -364,7 +368,9 @@ "/admin/api/accounts/{account_id}/applications.xml": { "get": { "summary": "Application List", - "tags": ["Account Applications"], + "tags": [ + "Account Applications" + ], "parameters": [ { "name": "access_token", @@ -381,8 +387,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -395,7 +400,9 @@ }, "post": { "summary": "Application Create", - "tags": ["Account Applications"], + "tags": [ + "Account Applications" + ], "parameters": [ { "name": "access_token", @@ -412,8 +419,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -422,8 +428,7 @@ "description": "ID of the application plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -522,7 +527,9 @@ "/admin/api/accounts/{account_id}/applications/{id}.xml": { "get": { "summary": "Application Read", - "tags": ["Account Applications"], + "tags": [ + "Account Applications" + ], "parameters": [ { "name": "access_token", @@ -539,8 +546,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -549,8 +555,7 @@ "description": "ID of the application.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -563,7 +568,9 @@ }, "put": { "summary": "Application Update", - "tags": ["Account Applications"], + "tags": [ + "Account Applications" + ], "parameters": [ { "name": "access_token", @@ -580,8 +587,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -590,8 +596,7 @@ "description": "ID of the application.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -657,7 +662,9 @@ }, "delete": { "summary": "Application Delete", - "tags": ["Account Applications"], + "tags": [ + "Account Applications" + ], "parameters": [ { "name": "access_token", @@ -674,8 +681,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -684,8 +690,7 @@ "description": "ID of the application.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -700,7 +705,9 @@ "/admin/api/accounts/{account_id}/applications/{id}/accept.xml": { "put": { "summary": "Application Accept", - "tags": ["Account Applications"], + "tags": [ + "Account Applications" + ], "parameters": [ { "name": "access_token", @@ -717,8 +724,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -727,8 +733,7 @@ "description": "ID of the application.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -743,7 +748,9 @@ "/admin/api/accounts/{account_id}/applications/{id}/change_plan.xml": { "put": { "summary": "Application Change Plan", - "tags": ["Account Applications"], + "tags": [ + "Account Applications" + ], "parameters": [ { "name": "access_token", @@ -760,8 +767,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -770,8 +776,7 @@ "description": "ID of the application.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -780,8 +785,7 @@ "description": "ID of the new application plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -796,7 +800,9 @@ "/admin/api/accounts/{account_id}/applications/{id}/customize_plan.xml": { "put": { "summary": "Application Create Plan Customization", - "tags": ["Account Applications"], + "tags": [ + "Account Applications" + ], "parameters": [ { "name": "access_token", @@ -813,8 +819,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -823,8 +828,7 @@ "description": "ID of the application.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -839,7 +843,9 @@ "/admin/api/accounts/{account_id}/applications/{id}/decustomize_plan.xml": { "put": { "summary": "Application Delete Plan Customization", - "tags": ["Account Applications"], + "tags": [ + "Account Applications" + ], "parameters": [ { "name": "access_token", @@ -856,8 +862,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -866,8 +871,7 @@ "description": "ID of the application.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -882,7 +886,9 @@ "/admin/api/accounts/{account_id}/applications/{id}/resume.xml": { "put": { "summary": "Application Resume", - "tags": ["Account Applications"], + "tags": [ + "Account Applications" + ], "parameters": [ { "name": "access_token", @@ -899,8 +905,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -909,8 +914,7 @@ "description": "ID of the application.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -925,7 +929,9 @@ "/admin/api/accounts/{account_id}/applications/{id}/suspend.xml": { "put": { "summary": "Application Suspend", - "tags": ["Account Applications"], + "tags": [ + "Account Applications" + ], "parameters": [ { "name": "access_token", @@ -942,8 +948,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -952,8 +957,7 @@ "description": "ID of the application.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -968,7 +972,9 @@ "/admin/api/accounts/{account_id}/applications/{application_id}/keys.xml": { "get": { "summary": "Application Key List", - "tags": ["Account Applications"], + "tags": [ + "Account Applications" + ], "parameters": [ { "name": "access_token", @@ -985,8 +991,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -995,8 +1000,7 @@ "description": "ID of the application.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -1009,8 +1013,9 @@ }, "post": { "summary": "Application Key Create", - "tags": ["Account Applications"], - "operationId": "key_create", + "tags": [ + "Account Applications" + ], "parameters": [ { "name": "access_token", @@ -1027,8 +1032,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -1037,8 +1041,7 @@ "description": "ID of the application.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -1062,7 +1065,9 @@ "/admin/api/accounts/{account_id}/applications/{application_id}/keys/{key}.xml": { "delete": { "summary": "Application Key Delete", - "tags": ["Account Applications"], + "tags": [ + "Account Applications" + ], "parameters": [ { "name": "access_token", @@ -1079,8 +1084,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -1089,8 +1093,7 @@ "description": "ID of the application.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -1114,7 +1117,9 @@ "/admin/api/accounts/{account_id}/applications/{application_id}/referrer_filters.xml": { "get": { "summary": "Application Referrer Filter List", - "tags": ["Account Applications"], + "tags": [ + "Account Applications" + ], "parameters": [ { "name": "access_token", @@ -1131,8 +1136,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -1141,8 +1145,7 @@ "description": "ID of the application.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -1155,7 +1158,9 @@ }, "post": { "summary": "Application Referrer Filter Create", - "tags": ["Account Applications"], + "tags": [ + "Account Applications" + ], "parameters": [ { "name": "access_token", @@ -1172,8 +1177,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -1182,8 +1186,7 @@ "description": "ID of the application.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -1207,7 +1210,9 @@ "/admin/api/accounts/{account_id}/applications/{application_id}/referrer_filters/{id}.xml": { "delete": { "summary": "Application Referrer Filter Delete", - "tags": ["Account Applications"], + "tags": [ + "Account Applications" + ], "parameters": [ { "name": "access_token", @@ -1224,8 +1229,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -1234,8 +1238,7 @@ "description": "ID of the application.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -1244,8 +1247,7 @@ "description": "ID of referrer filter to be deleted.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -1260,7 +1262,9 @@ "/admin/api/accounts/{account_id}/messages.xml": { "post": { "summary": "Account Message", - "tags": ["Accounts"], + "tags": [ + "Accounts" + ], "parameters": [ { "name": "access_token", @@ -1277,8 +1281,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -1311,7 +1314,9 @@ "/admin/api/accounts/{account_id}/plan.xml": { "get": { "summary": "Account Fetch Account Plan", - "tags": ["Accounts"], + "tags": [ + "Accounts" + ], "parameters": [ { "name": "access_token", @@ -1328,8 +1333,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -1344,7 +1348,9 @@ "/admin/api/accounts/{account_id}/service_contracts.xml": { "get": { "summary": "Service Subscription List", - "tags": ["Accounts"], + "tags": [ + "Accounts" + ], "parameters": [ { "name": "access_token", @@ -1361,8 +1367,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -1377,7 +1382,9 @@ "/admin/api/accounts/{account_id}/service_contracts/{id}.xml": { "delete": { "summary": "Service Subscription Delete", - "tags": ["Accounts"], + "tags": [ + "Accounts" + ], "parameters": [ { "name": "access_token", @@ -1394,8 +1401,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -1404,8 +1410,7 @@ "description": "ID of the service contract.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -1420,7 +1425,9 @@ "/admin/api/accounts/{id}/approve.xml": { "put": { "summary": "Account Approve", - "tags": ["Accounts"], + "tags": [ + "Accounts" + ], "parameters": [ { "name": "access_token", @@ -1437,8 +1444,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -1453,7 +1459,9 @@ "/admin/api/accounts/{id}/change_plan.xml": { "put": { "summary": "Account Change Plan", - "tags": ["Accounts"], + "tags": [ + "Accounts" + ], "parameters": [ { "name": "access_token", @@ -1470,8 +1478,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -1480,8 +1487,7 @@ "description": "ID of the target account plan", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -1496,7 +1502,9 @@ "/admin/api/accounts/{id}/credit_card.xml": { "put": { "summary": "Account Set Credit Card", - "tags": ["Accounts"], + "tags": [ + "Accounts" + ], "parameters": [ { "name": "access_token", @@ -1513,8 +1521,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -1630,7 +1637,9 @@ }, "delete": { "summary": "Account Delete Credit Card", - "tags": ["Accounts"], + "tags": [ + "Accounts" + ], "parameters": [ { "name": "access_token", @@ -1647,8 +1656,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -1663,7 +1671,9 @@ "/admin/api/accounts/{id}/make_pending.xml": { "put": { "summary": "Account Reset to Pending", - "tags": ["Accounts"], + "tags": [ + "Accounts" + ], "parameters": [ { "name": "access_token", @@ -1680,8 +1690,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -1696,7 +1705,9 @@ "/admin/api/accounts/{id}/reject.xml": { "put": { "summary": "Account Reject", - "tags": ["Accounts"], + "tags": [ + "Accounts" + ], "parameters": [ { "name": "access_token", @@ -1713,8 +1724,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -1729,7 +1739,9 @@ "/admin/api/accounts/{account_id}/users.xml": { "get": { "summary": "User List", - "tags": ["Users"], + "tags": [ + "Users" + ], "parameters": [ { "name": "access_token", @@ -1746,8 +1758,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -1785,7 +1796,9 @@ }, "post": { "summary": "User Create", - "tags": ["Users"], + "tags": [ + "Users" + ], "parameters": [ { "name": "access_token", @@ -1802,8 +1815,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -1858,7 +1870,9 @@ "/admin/api/accounts/{account_id}/users/{id}.xml": { "get": { "summary": "User Read", - "tags": ["Users"], + "tags": [ + "Users" + ], "parameters": [ { "name": "access_token", @@ -1875,8 +1889,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -1885,8 +1898,7 @@ "description": "ID of the user.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -1899,7 +1911,9 @@ }, "put": { "summary": "User Update", - "tags": ["Users"], + "tags": [ + "Users" + ], "parameters": [ { "name": "access_token", @@ -1916,8 +1930,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -1926,8 +1939,7 @@ "description": "ID of the user.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -1977,7 +1989,9 @@ }, "delete": { "summary": "User Delete", - "tags": ["Users"], + "tags": [ + "Users" + ], "parameters": [ { "name": "access_token", @@ -1994,8 +2008,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -2004,8 +2017,7 @@ "description": "ID of the user.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -2020,7 +2032,9 @@ "/admin/api/accounts/{account_id}/users/{id}/activate.xml": { "put": { "summary": "User Activate", - "tags": ["Users"], + "tags": [ + "Users" + ], "parameters": [ { "name": "access_token", @@ -2037,8 +2051,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -2047,8 +2060,7 @@ "description": "ID of the user.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -2063,7 +2075,9 @@ "/admin/api/accounts/{account_id}/users/{id}/admin.xml": { "put": { "summary": "User change Role to Admin", - "tags": ["Users"], + "tags": [ + "Users" + ], "parameters": [ { "name": "access_token", @@ -2080,8 +2094,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -2090,8 +2103,7 @@ "description": "ID of the user.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -2106,7 +2118,9 @@ "/admin/api/accounts/{account_id}/users/{id}/member.xml": { "put": { "summary": "User Change Role to Member", - "tags": ["Users"], + "tags": [ + "Users" + ], "parameters": [ { "name": "access_token", @@ -2123,8 +2137,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -2133,8 +2146,7 @@ "description": "ID of the user.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -2149,7 +2161,9 @@ "/admin/api/accounts/{account_id}/users/{id}/suspend.xml": { "put": { "summary": "User Suspend", - "tags": ["Users"], + "tags": [ + "Users" + ], "parameters": [ { "name": "access_token", @@ -2166,8 +2180,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -2176,8 +2189,7 @@ "description": "ID of the user.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -2192,7 +2204,9 @@ "/admin/api/accounts/{account_id}/users/{id}/unsuspend.xml": { "put": { "summary": "User Unsuspend", - "tags": ["Users"], + "tags": [ + "Users" + ], "parameters": [ { "name": "access_token", @@ -2209,8 +2223,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -2219,8 +2232,7 @@ "description": "ID of the user.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -2235,7 +2247,9 @@ "/admin/api/users.xml": { "get": { "summary": "User List (provider account)", - "tags": ["Users"], + "tags": [ + "Users" + ], "parameters": [ { "name": "access_token", @@ -2281,7 +2295,9 @@ }, "post": { "summary": "User Create (provider account)", - "tags": ["Users"], + "tags": [ + "Users" + ], "parameters": [ { "name": "access_token", @@ -2344,7 +2360,9 @@ "/admin/api/users/{id}.xml": { "get": { "summary": "User Read (provider account)", - "tags": ["Provider Users"], + "tags": [ + "Provider Users" + ], "parameters": [ { "name": "access_token", @@ -2361,8 +2379,7 @@ "description": "ID of the user.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -2375,7 +2392,9 @@ }, "put": { "summary": "User Update (provider account)", - "tags": ["Provider Users"], + "tags": [ + "Provider Users" + ], "parameters": [ { "name": "access_token", @@ -2392,8 +2411,7 @@ "description": "ID of the user.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -2443,7 +2461,9 @@ }, "delete": { "summary": "User Delete (provider account)", - "tags": ["Provider Users"], + "tags": [ + "Provider Users" + ], "parameters": [ { "name": "access_token", @@ -2460,8 +2480,7 @@ "description": "ID of the user.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -2476,7 +2495,9 @@ "/admin/api/users/{id}/activate.xml": { "put": { "summary": "User Activate (provider account)", - "tags": ["Users"], + "tags": [ + "Users" + ], "parameters": [ { "name": "access_token", @@ -2493,8 +2514,7 @@ "description": "ID of the user.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -2509,7 +2529,9 @@ "/admin/api/users/{id}/admin.xml": { "put": { "summary": "User Change Role to Admin (provider account)", - "tags": ["Users"], + "tags": [ + "Users" + ], "parameters": [ { "name": "access_token", @@ -2526,8 +2548,7 @@ "description": "ID of the user.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -2542,7 +2563,9 @@ "/admin/api/users/{id}/member.xml": { "put": { "summary": "User Change Role to Member (provider account)", - "tags": ["Users"], + "tags": [ + "Users" + ], "parameters": [ { "name": "access_token", @@ -2559,8 +2582,7 @@ "description": "ID of the user.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -2575,7 +2597,9 @@ "/admin/api/users/{id}/permissions.xml": { "get": { "summary": "User Permissions Read", - "tags": ["Users"], + "tags": [ + "Users" + ], "parameters": [ { "name": "access_token", @@ -2592,8 +2616,7 @@ "description": "ID of the user.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -2606,7 +2629,9 @@ }, "put": { "summary": "User Permissions Update", - "tags": ["Users"], + "tags": [ + "Users" + ], "parameters": [ { "name": "access_token", @@ -2623,8 +2648,7 @@ "description": "ID of the user.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -2672,7 +2696,9 @@ "/admin/api/users/{id}/suspend.xml": { "put": { "summary": "User Suspend (provider account)", - "tags": ["Users"], + "tags": [ + "Users" + ], "parameters": [ { "name": "access_token", @@ -2689,8 +2715,7 @@ "description": "ID of the user.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -2705,7 +2730,9 @@ "/admin/api/users/{id}/unsuspend.xml": { "put": { "summary": "User Unsuspend (provider account)", - "tags": ["Users"], + "tags": [ + "Users" + ], "parameters": [ { "name": "access_token", @@ -2722,8 +2749,7 @@ "description": "ID of the user.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -2738,7 +2764,9 @@ "/admin/api/users/{user_id}/access_tokens.json": { "post": { "summary": "Access Token Create", - "tags": ["Access Tokens"], + "tags": [ + "Access Tokens" + ], "parameters": [ { "name": "user_id", @@ -2746,7 +2774,7 @@ "description": "ID of the user.", "required": true, "schema": { - "type": "ref" + "type": "string" } }, { @@ -2802,7 +2830,9 @@ "/admin/api/account_plans.xml": { "get": { "summary": "Account Plan List", - "tags": ["Account Plans"], + "tags": [ + "Account Plans" + ], "parameters": [ { "name": "access_token", @@ -2823,7 +2853,9 @@ }, "post": { "summary": "Account Plan Create", - "tags": ["Account Plans"], + "tags": [ + "Account Plans" + ], "parameters": [ { "name": "access_token", @@ -2879,7 +2911,9 @@ "/admin/api/account_plans/{account_plan_id}/features.xml": { "get": { "summary": "Account Plan Features List", - "tags": ["Account Plans"], + "tags": [ + "Account Plans" + ], "parameters": [ { "name": "access_token", @@ -2896,8 +2930,7 @@ "description": "ID of the account plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -2912,7 +2945,9 @@ "/admin/api/account_plans/{account_plan_id}/features/{id}.xml": { "post": { "summary": "Account Plan Features Create", - "tags": ["Account Plans"], + "tags": [ + "Account Plans" + ], "parameters": [ { "name": "access_token", @@ -2929,8 +2964,7 @@ "description": "ID of the account plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -2939,8 +2973,7 @@ "description": "ID of the feature.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -2953,7 +2986,9 @@ }, "delete": { "summary": "Account Plan Features Delete", - "tags": ["Account Plans"], + "tags": [ + "Account Plans" + ], "parameters": [ { "name": "access_token", @@ -2970,8 +3005,7 @@ "description": "ID of the account plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -2980,8 +3014,7 @@ "description": "ID of the feature.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -2996,7 +3029,9 @@ "/admin/api/account_plans/{id}.xml": { "get": { "summary": "Account Plan Read", - "tags": ["Account Plans"], + "tags": [ + "Account Plans" + ], "parameters": [ { "name": "access_token", @@ -3013,8 +3048,7 @@ "description": "ID of the account plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -3027,7 +3061,9 @@ }, "put": { "summary": "Account Plan Update", - "tags": ["Account Plans"], + "tags": [ + "Account Plans" + ], "parameters": [ { "name": "access_token", @@ -3044,8 +3080,7 @@ "description": "ID of the account plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -3082,7 +3117,9 @@ }, "delete": { "summary": "Account Plan Delete", - "tags": ["Account Plans"], + "tags": [ + "Account Plans" + ], "parameters": [ { "name": "access_token", @@ -3099,8 +3136,7 @@ "description": "ID of the account plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -3115,7 +3151,9 @@ "/admin/api/account_plans/{id}/default.xml": { "put": { "summary": "Account Plan set to Default", - "tags": ["Account Plans"], + "tags": [ + "Account Plans" + ], "parameters": [ { "name": "access_token", @@ -3132,8 +3170,7 @@ "description": "ID of the account plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -3148,7 +3185,9 @@ "/admin/api/active_docs.json": { "get": { "summary": "ActiveDocs Spec List", - "tags": ["Active Docs"], + "tags": [ + "Active Docs" + ], "parameters": [ { "name": "access_token", @@ -3169,7 +3208,9 @@ }, "post": { "summary": "ActiveDocs Spec Create", - "tags": ["Active Docs"], + "tags": [ + "Active Docs" + ], "parameters": [ { "name": "access_token", @@ -3202,8 +3243,7 @@ "in": "query", "description": "Service ID of the ActiveDocs spec", "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -3251,7 +3291,9 @@ "/admin/api/active_docs/{id}.json": { "get": { "summary": "ActiveDocs Spec Read", - "tags": ["Active Docs"], + "tags": [ + "Active Docs" + ], "parameters": [ { "name": "access_token", @@ -3268,8 +3310,7 @@ "description": "ID of the ActiveDocs spec", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -3282,7 +3323,9 @@ }, "put": { "summary": "ActiveDocs Spec Update", - "tags": ["Active Docs"], + "tags": [ + "Active Docs" + ], "parameters": [ { "name": "access_token", @@ -3299,8 +3342,7 @@ "description": "ID of the ActiveDocs spec", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -3316,8 +3358,7 @@ "in": "query", "description": "Service ID of the ActiveDocs spec", "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -3362,7 +3403,9 @@ }, "delete": { "summary": "ActiveDocs Spec Delete", - "tags": ["Active Docs"], + "tags": [ + "Active Docs" + ], "parameters": [ { "name": "access_token", @@ -3379,8 +3422,7 @@ "description": "ID of the ActiveDocs spec", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -3395,7 +3437,9 @@ "/admin/api/application_plans.xml": { "get": { "summary": "Application Plan List (all services)", - "tags": ["Application Plans"], + "tags": [ + "Application Plans" + ], "parameters": [ { "name": "access_token", @@ -3418,7 +3462,9 @@ "/admin/api/application_plans/{application_plan_id}/features.xml": { "get": { "summary": "Application Plan Feature List", - "tags": ["Application Plans"], + "tags": [ + "Application Plans" + ], "parameters": [ { "name": "access_token", @@ -3435,8 +3481,7 @@ "description": "ID of the application plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -3449,7 +3494,9 @@ }, "post": { "summary": "Application Plan Feature Create", - "tags": ["Application Plans"], + "tags": [ + "Application Plans" + ], "parameters": [ { "name": "access_token", @@ -3466,8 +3513,7 @@ "description": "ID of the application plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -3476,8 +3522,7 @@ "description": "ID of the feature.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -3492,7 +3537,9 @@ "/admin/api/application_plans/{application_plan_id}/features/{id}.xml": { "delete": { "summary": "Application Plan Feature Delete", - "tags": ["Application Plans"], + "tags": [ + "Application Plans" + ], "parameters": [ { "name": "access_token", @@ -3509,8 +3556,7 @@ "description": "ID of the application plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -3519,8 +3565,7 @@ "description": "ID of the feature.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -3535,8 +3580,9 @@ "/admin/api/application_plans/{application_plan_id}/limits.xml": { "get": { "summary": "Limits List per Application Plan", - "tags": ["Application Plans"], - "operationId": "plan_limits", + "tags": [ + "Application Plans" + ], "parameters": [ { "name": "access_token", @@ -3553,7 +3599,6 @@ "description": "Page in the paginated list. Defaults to 1.", "schema": { "type": "integer", - "format": "int32", "default": 1 } }, @@ -3563,7 +3608,6 @@ "description": "Number of results per page. Default and max is 50.", "schema": { "type": "integer", - "format": "int32", "default": 50 } }, @@ -3573,8 +3617,7 @@ "description": "ID of the application plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -3589,8 +3632,9 @@ "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/limits.xml": { "get": { "summary": "Limit List per Metric", - "tags": ["Application Plans"], - "operationId": "limits", + "tags": [ + "Application Plans" + ], "parameters": [ { "name": "access_token", @@ -3607,8 +3651,7 @@ "description": "ID of the application plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -3617,8 +3660,7 @@ "description": "ID of the metric.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -3631,7 +3673,9 @@ }, "post": { "summary": "Limit Create", - "tags": ["Application Plans"], + "tags": [ + "Application Plans" + ], "parameters": [ { "name": "access_token", @@ -3648,8 +3692,7 @@ "description": "ID of the application plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -3658,8 +3701,7 @@ "description": "ID of the metric.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -3687,8 +3729,7 @@ "description": "Value of the limit.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -3703,7 +3744,9 @@ "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/limits/{id}.xml": { "get": { "summary": "Limit Read", - "tags": ["Application Plans"], + "tags": [ + "Application Plans" + ], "parameters": [ { "name": "access_token", @@ -3720,8 +3763,7 @@ "description": "ID of the application plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -3730,8 +3772,7 @@ "description": "ID of the metric.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -3740,8 +3781,7 @@ "description": "ID of the limit.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -3754,7 +3794,9 @@ }, "put": { "summary": "Limit Update", - "tags": ["Application Plans"], + "tags": [ + "Application Plans" + ], "parameters": [ { "name": "access_token", @@ -3771,8 +3813,7 @@ "description": "ID of the application plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -3781,8 +3822,7 @@ "description": "ID of the metric.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -3791,8 +3831,7 @@ "description": "ID of the limit.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -3819,8 +3858,7 @@ "in": "query", "description": "Value of the limit.", "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -3833,7 +3871,9 @@ }, "delete": { "summary": "Limit Delete", - "tags": ["Application Plans"], + "tags": [ + "Application Plans" + ], "parameters": [ { "name": "access_token", @@ -3850,8 +3890,7 @@ "description": "ID of the application plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -3860,8 +3899,7 @@ "description": "ID of the metric.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -3870,8 +3908,7 @@ "description": "ID of the limit.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -3886,8 +3923,9 @@ "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/pricing_rules.xml": { "get": { "summary": "Pricing Rules List per Metric", - "tags": ["Application Plans"], - "operationId": "metric_pricing_rules", + "tags": [ + "Application Plans" + ], "parameters": [ { "name": "access_token", @@ -3904,8 +3942,7 @@ "description": "ID of the application plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -3914,8 +3951,7 @@ "description": "ID of the metric.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -3928,7 +3964,9 @@ }, "post": { "summary": "Pricing Rule Create", - "tags": ["Application Plans"], + "tags": [ + "Application Plans" + ], "parameters": [ { "name": "access_token", @@ -3945,8 +3983,7 @@ "description": "ID of the application plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -3955,8 +3992,7 @@ "description": "ID of the metric.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -3964,8 +4000,7 @@ "in": "query", "description": "From (min) hit", "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -3973,8 +4008,7 @@ "in": "query", "description": "To (max) hit", "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -3982,7 +4016,8 @@ "in": "query", "description": "Cost per unit", "schema": { - "type": "ref" + "type": "number", + "format": "float" } } ], @@ -3997,7 +4032,9 @@ "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/pricing_rules/{id}.json": { "delete": { "summary": "Pricing Rule Delete", - "tags": ["Application Plans"], + "tags": [ + "Application Plans" + ], "parameters": [ { "name": "access_token", @@ -4014,8 +4051,7 @@ "description": "ID of the application plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -4024,8 +4060,7 @@ "description": "ID of the metric.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -4034,8 +4069,7 @@ "description": "ID of the pricing rule.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -4050,8 +4084,9 @@ "/admin/api/application_plans/{application_plan_id}/pricing_rules.xml": { "get": { "summary": "Pricing Rules List per Application Plan", - "tags": ["Application Plans"], - "operationId": "pricing_rules", + "tags": [ + "Application Plans" + ], "parameters": [ { "name": "access_token", @@ -4068,8 +4103,7 @@ "description": "ID of the application plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -4084,7 +4118,9 @@ "/admin/api/services/{service_id}/application_plans.xml": { "get": { "summary": "Application Plan List", - "tags": ["Application Plans"], + "tags": [ + "Application Plans" + ], "parameters": [ { "name": "access_token", @@ -4101,8 +4137,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -4115,7 +4150,9 @@ }, "post": { "summary": "Application Plan Create", - "tags": ["Application Plans"], + "tags": [ + "Application Plans" + ], "parameters": [ { "name": "access_token", @@ -4132,8 +4169,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -4158,7 +4194,8 @@ "in": "query", "description": "Cost per month", "schema": { - "type": "ref" + "type": "number", + "format": "float" } }, { @@ -4166,7 +4203,8 @@ "in": "query", "description": "Setup fee", "schema": { - "type": "ref" + "type": "number", + "format": "float" } }, { @@ -4174,7 +4212,7 @@ "in": "query", "description": "Trial period days", "schema": { - "type": "ref" + "type": "integer" } }, { @@ -4190,7 +4228,11 @@ "in": "query", "description": "State event of the application plan. It can be 'publish' or 'hide'", "schema": { - "type": "string" + "type": "string", + "enum": [ + "publish", + "hide" + ] } } ], @@ -4205,7 +4247,9 @@ "/admin/api/services/{service_id}/application_plans/{id}.xml": { "get": { "summary": "Application Plan Read", - "tags": ["Application Plans"], + "tags": [ + "Application Plans" + ], "parameters": [ { "name": "access_token", @@ -4222,8 +4266,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -4232,8 +4275,7 @@ "description": "ID of the application plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -4246,7 +4288,9 @@ }, "put": { "summary": "Application Plan Update", - "tags": ["Application Plans"], + "tags": [ + "Application Plans" + ], "parameters": [ { "name": "access_token", @@ -4263,8 +4307,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -4273,8 +4316,7 @@ "description": "ID of the application plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -4298,7 +4340,8 @@ "in": "query", "description": "Cost per month", "schema": { - "type": "ref" + "type": "number", + "format": "float" } }, { @@ -4306,7 +4349,8 @@ "in": "query", "description": "Setup fee", "schema": { - "type": "ref" + "type": "number", + "format": "float" } }, { @@ -4314,7 +4358,7 @@ "in": "query", "description": "Trial period days", "schema": { - "type": "ref" + "type": "integer" } }, { @@ -4335,7 +4379,9 @@ }, "delete": { "summary": "Application Plan Delete", - "tags": ["Application Plans"], + "tags": [ + "Application Plans" + ], "parameters": [ { "name": "access_token", @@ -4352,8 +4398,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -4362,8 +4407,7 @@ "description": "ID of the application plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -4378,7 +4422,9 @@ "/admin/api/services/{service_id}/application_plans/{id}/default.xml": { "put": { "summary": "Application Plan Set to Default", - "tags": ["Application Plans"], + "tags": [ + "Application Plans" + ], "parameters": [ { "name": "access_token", @@ -4395,8 +4441,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -4405,8 +4450,7 @@ "description": "ID of the application plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -4421,8 +4465,9 @@ "/admin/api/applications.xml": { "get": { "summary": "Application List (all services)", - "tags": ["Service Applications"], - "operationId": "applications", + "tags": [ + "Service Applications" + ], "parameters": [ { "name": "access_token", @@ -4439,7 +4484,6 @@ "description": "Page in the paginated list. Defaults to 1.", "schema": { "type": "integer", - "format": "int32", "default": 1 } }, @@ -4449,7 +4493,6 @@ "description": "Number of results per page. Default and max is 500.", "schema": { "type": "integer", - "format": "int32", "default": 500 } }, @@ -4509,7 +4552,9 @@ "/admin/api/applications/find.xml": { "get": { "summary": "Application Find", - "tags": ["Service Applications"], + "tags": [ + "Service Applications" + ], "parameters": [ { "name": "access_token", @@ -4525,8 +4570,7 @@ "in": "query", "description": "ID of the application.", "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -4565,7 +4609,9 @@ "/admin/api/account/authentication_providers.xml": { "get": { "summary": "Authentication Providers Admin Portal List", - "tags": ["Admin Portal Authentication Providers"], + "tags": [ + "Admin Portal Authentication Providers" + ], "parameters": [ { "name": "access_token", @@ -4586,7 +4632,9 @@ }, "post": { "summary": "Authentication Provider Admin Portal Create", - "tags": ["Admin Portal Authentication Providers"], + "tags": [ + "Admin Portal Authentication Providers" + ], "parameters": [ { "name": "access_token", @@ -4674,7 +4722,9 @@ "/admin/api/account/authentication_providers/{id}.xml": { "get": { "summary": "Authentication Provider Admin Portal Read", - "tags": ["Admin Portal Authentication Providers"], + "tags": [ + "Admin Portal Authentication Providers" + ], "parameters": [ { "name": "access_token", @@ -4704,7 +4754,9 @@ }, "put": { "summary": "Authentication Provider Admin Portal Update", - "tags": ["Admin Portal Authentication Providers"], + "tags": [ + "Admin Portal Authentication Providers" + ], "parameters": [ { "name": "access_token", @@ -4776,7 +4828,9 @@ "/admin/api/authentication_providers.xml": { "get": { "summary": "Authentication Providers Developer Portal List", - "tags": ["Developer Portal Authentication Providers"], + "tags": [ + "Developer Portal Authentication Providers" + ], "parameters": [ { "name": "access_token", @@ -4797,7 +4851,9 @@ }, "post": { "summary": "Authentication Provider Developer Portal Create", - "tags": ["Developer Portal Authentication Providers"], + "tags": [ + "Developer Portal Authentication Providers" + ], "parameters": [ { "name": "access_token", @@ -4949,7 +5005,9 @@ "/admin/api/authentication_providers/{id}.xml": { "get": { "summary": "Authentication Provider Read", - "tags": ["Developer Portal Authentication Providers"], + "tags": [ + "Developer Portal Authentication Providers" + ], "parameters": [ { "name": "access_token", @@ -4979,7 +5037,9 @@ }, "put": { "summary": "Authentication Provider Developer Portal Update", - "tags": ["Developer Portal Authentication Providers"], + "tags": [ + "Developer Portal Authentication Providers" + ], "parameters": [ { "name": "access_token", @@ -5059,7 +5119,9 @@ "/admin/api/backend_apis.json": { "get": { "summary": "Backend List", - "tags": ["Backend APIs"], + "tags": [ + "Backend APIs" + ], "parameters": [ { "name": "access_token", @@ -5076,7 +5138,6 @@ "description": "Page in the paginated list. Defaults to 1.", "schema": { "type": "integer", - "format": "int32", "default": 1 } }, @@ -5086,7 +5147,6 @@ "description": "Number of results per page. Default and max is 500.", "schema": { "type": "integer", - "format": "int32", "default": 500 } } @@ -5100,7 +5160,9 @@ }, "post": { "summary": "Backend Create", - "tags": ["Backend APIs"], + "tags": [ + "Backend APIs" + ], "parameters": [ { "name": "access_token", @@ -5157,7 +5219,9 @@ "/admin/api/backend_apis/{id}.json": { "get": { "summary": "Backend Read", - "tags": ["Backend APIs"], + "tags": [ + "Backend APIs" + ], "parameters": [ { "name": "access_token", @@ -5174,8 +5238,7 @@ "description": "ID of the Backend.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -5188,7 +5251,9 @@ }, "put": { "summary": "Backend Update", - "tags": ["Backend APIs"], + "tags": [ + "Backend APIs" + ], "parameters": [ { "name": "access_token", @@ -5205,8 +5270,7 @@ "description": "ID of the Backend.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -5243,7 +5307,9 @@ }, "delete": { "summary": "Backend Delete", - "tags": ["Backend APIs"], + "tags": [ + "Backend APIs" + ], "parameters": [ { "name": "access_token", @@ -5260,8 +5326,7 @@ "description": "ID of the Backend.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -5276,7 +5341,9 @@ "/admin/api/backend_apis/{backend_api_id}/mapping_rules.json": { "get": { "summary": "Backend Mapping Rules List", - "tags": ["Backend APIs"], + "tags": [ + "Backend APIs" + ], "parameters": [ { "name": "access_token", @@ -5293,8 +5360,7 @@ "description": "ID of the Backend.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -5303,7 +5369,6 @@ "description": "Page in the paginated list. Defaults to 1.", "schema": { "type": "integer", - "format": "int32", "default": 1 } }, @@ -5313,7 +5378,6 @@ "description": "Number of results per page. Default and max is 500.", "schema": { "type": "integer", - "format": "int32", "default": 500 } } @@ -5327,7 +5391,9 @@ }, "post": { "summary": "Backend Mapping Rule Create", - "tags": ["Backend APIs"], + "tags": [ + "Backend APIs" + ], "parameters": [ { "name": "access_token", @@ -5344,8 +5410,7 @@ "description": "ID of the Backend.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -5372,8 +5437,7 @@ "description": "Increase the metric by this delta.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -5382,8 +5446,7 @@ "description": "Metric ID.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -5391,8 +5454,7 @@ "in": "query", "description": "Mapping Rule position", "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -5400,7 +5462,7 @@ "in": "query", "description": "Last matched Mapping Rule to process", "schema": { - "type": "ref" + "type": "boolean" } } ], @@ -5415,7 +5477,9 @@ "/admin/api/backend_apis/{backend_api_id}/mapping_rules/{id}.json": { "get": { "summary": "Backend Mapping Rules Read", - "tags": ["Backend APIs"], + "tags": [ + "Backend APIs" + ], "parameters": [ { "name": "access_token", @@ -5432,8 +5496,7 @@ "description": "ID of the Backend.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -5442,8 +5505,7 @@ "description": "Mapping Rule ID.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -5456,7 +5518,9 @@ }, "put": { "summary": "Backend Mapping Rule Update", - "tags": ["Backend APIs"], + "tags": [ + "Backend APIs" + ], "parameters": [ { "name": "access_token", @@ -5473,8 +5537,7 @@ "description": "ID of the Backend.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -5483,8 +5546,7 @@ "description": "Mapping Rule ID.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -5508,8 +5570,7 @@ "in": "query", "description": "Increase the metric by this delta.", "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -5517,8 +5578,7 @@ "in": "query", "description": "Metric ID.", "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -5526,8 +5586,7 @@ "in": "query", "description": "Mapping Rule position", "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -5535,7 +5594,7 @@ "in": "query", "description": "Last matched Mapping Rule to process", "schema": { - "type": "ref" + "type": "boolean" } } ], @@ -5548,7 +5607,9 @@ }, "delete": { "summary": "Backend Mapping Rule Delete", - "tags": ["Backend APIs"], + "tags": [ + "Backend APIs" + ], "parameters": [ { "name": "access_token", @@ -5565,8 +5626,7 @@ "description": "ID of the Backend.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -5575,8 +5635,7 @@ "description": "Mapping Rule ID.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -5591,7 +5650,9 @@ "/admin/api/backend_apis/{backend_api_id}/metrics.json": { "get": { "summary": "Backend Metric List", - "tags": ["Backend APIs"], + "tags": [ + "Backend APIs" + ], "parameters": [ { "name": "access_token", @@ -5608,8 +5669,7 @@ "description": "ID of the Backend.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -5618,7 +5678,6 @@ "description": "Page in the paginated list. Defaults to 1.", "schema": { "type": "integer", - "format": "int32", "default": 1 } }, @@ -5628,7 +5687,6 @@ "description": "Number of results per page. Default and max is 500.", "schema": { "type": "integer", - "format": "int32", "default": 500 } } @@ -5642,7 +5700,9 @@ }, "post": { "summary": "Backend Metric Create", - "tags": ["Backend APIs"], + "tags": [ + "Backend APIs" + ], "parameters": [ { "name": "access_token", @@ -5659,8 +5719,7 @@ "description": "ID of the Backend.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -5694,7 +5753,7 @@ "in": "query", "description": "Description of the metric.", "schema": { - "type": "ref" + "type": "string" } } ], @@ -5709,7 +5768,9 @@ "/admin/api/backend_apis/{backend_api_id}/metrics/{id}.json": { "get": { "summary": "Backend Metric Read", - "tags": ["Backend APIs"], + "tags": [ + "Backend APIs" + ], "parameters": [ { "name": "access_token", @@ -5726,8 +5787,7 @@ "description": "ID of the Backend.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -5736,8 +5796,7 @@ "description": "ID of the metric.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -5750,7 +5809,9 @@ }, "put": { "summary": "Backend Metric Update", - "tags": ["Backend APIs"], + "tags": [ + "Backend APIs" + ], "parameters": [ { "name": "access_token", @@ -5767,8 +5828,7 @@ "description": "ID of the Backend.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -5777,8 +5837,7 @@ "description": "ID of the metric.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -5802,7 +5861,7 @@ "in": "query", "description": "Description of the metric.", "schema": { - "type": "ref" + "type": "string" } } ], @@ -5815,7 +5874,9 @@ }, "delete": { "summary": "Backend Metric Delete", - "tags": ["Backend APIs"], + "tags": [ + "Backend APIs" + ], "parameters": [ { "name": "access_token", @@ -5832,8 +5893,7 @@ "description": "ID of the Backend.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -5842,8 +5902,7 @@ "description": "ID of the metric.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -5858,7 +5917,9 @@ "/admin/api/backend_apis/{backend_api_id}/metrics/{metric_id}/methods.json": { "get": { "summary": "Backend Method List", - "tags": ["Backend APIs"], + "tags": [ + "Backend APIs" + ], "parameters": [ { "name": "access_token", @@ -5875,8 +5936,7 @@ "description": "ID of the Backend.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -5885,8 +5945,7 @@ "description": "ID of the metric.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -5895,7 +5954,6 @@ "description": "Page in the paginated list. Defaults to 1.", "schema": { "type": "integer", - "format": "int32", "default": 1 } }, @@ -5905,7 +5963,6 @@ "description": "Number of results per page. Default and max is 500.", "schema": { "type": "integer", - "format": "int32", "default": 500 } } @@ -5919,7 +5976,9 @@ }, "post": { "summary": "Backend Method Create", - "tags": ["Backend APIs"], + "tags": [ + "Backend APIs" + ], "parameters": [ { "name": "access_token", @@ -5936,8 +5995,7 @@ "description": "ID of the Backend.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -5946,8 +6004,7 @@ "description": "ID of the metric.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -5981,7 +6038,7 @@ "in": "query", "description": "Description of the metric.", "schema": { - "type": "ref" + "type": "string" } } ], @@ -5996,7 +6053,9 @@ "/admin/api/backend_apis/{backend_api_id}/metrics/{metric_id}/methods/{id}.json": { "get": { "summary": "Backend Method Read", - "tags": ["Backend APIs"], + "tags": [ + "Backend APIs" + ], "parameters": [ { "name": "access_token", @@ -6013,8 +6072,7 @@ "description": "ID of the Backend.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -6023,8 +6081,7 @@ "description": "ID of the metric.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -6033,8 +6090,7 @@ "description": "ID of the method.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -6047,7 +6103,9 @@ }, "put": { "summary": "Backend Method Update", - "tags": ["Backend APIs"], + "tags": [ + "Backend APIs" + ], "parameters": [ { "name": "access_token", @@ -6064,8 +6122,7 @@ "description": "ID of the Backend.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -6074,8 +6131,7 @@ "description": "ID of the metric.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -6084,8 +6140,7 @@ "description": "ID of the method.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -6109,7 +6164,7 @@ "in": "query", "description": "Description of the method.", "schema": { - "type": "ref" + "type": "string" } } ], @@ -6122,7 +6177,9 @@ }, "delete": { "summary": "Backend Method Delete", - "tags": ["Backend APIs"], + "tags": [ + "Backend APIs" + ], "parameters": [ { "name": "access_token", @@ -6139,8 +6196,7 @@ "description": "ID of the Backend.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -6149,8 +6205,7 @@ "description": "ID of the metric.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -6159,8 +6214,7 @@ "description": "ID of the method.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -6175,7 +6229,9 @@ "/admin/api/services/{service_id}/backend_usages.json": { "get": { "summary": "Backend Usage List", - "tags": ["Backends"], + "tags": [ + "Backends" + ], "parameters": [ { "name": "access_token", @@ -6192,8 +6248,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -6206,7 +6261,9 @@ }, "post": { "summary": "Backend Usage Create", - "tags": ["Backends"], + "tags": [ + "Backends" + ], "parameters": [ { "name": "access_token", @@ -6223,8 +6280,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -6241,8 +6297,7 @@ "in": "query", "description": "Path of the Backend for this product.", "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -6257,7 +6312,9 @@ "/admin/api/services/{service_id}/backend_usages/{id}.json": { "get": { "summary": "Backend Usage Read", - "tags": ["Backends"], + "tags": [ + "Backends" + ], "parameters": [ { "name": "access_token", @@ -6274,8 +6331,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -6284,8 +6340,7 @@ "description": "ID of the Backend Usage.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -6298,7 +6353,9 @@ }, "put": { "summary": "Backend Usage Update", - "tags": ["Backends"], + "tags": [ + "Backends" + ], "parameters": [ { "name": "access_token", @@ -6315,8 +6372,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -6325,8 +6381,7 @@ "description": "ID of the Backend Usage.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -6334,8 +6389,7 @@ "in": "query", "description": "Path of the Backend for this product.", "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -6348,7 +6402,9 @@ }, "delete": { "summary": "Backend Usage Delete", - "tags": ["Backends"], + "tags": [ + "Backends" + ], "parameters": [ { "name": "access_token", @@ -6365,8 +6421,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -6375,8 +6430,7 @@ "description": "ID of the Backend Usage.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -6391,7 +6445,9 @@ "/admin/api/features.xml": { "get": { "summary": "Account Features List", - "tags": ["Account Features"], + "tags": [ + "Account Features" + ], "parameters": [ { "name": "access_token", @@ -6412,7 +6468,9 @@ }, "post": { "summary": "Account Feature Create", - "tags": ["Account Features"], + "tags": [ + "Account Features" + ], "parameters": [ { "name": "access_token", @@ -6452,7 +6510,9 @@ "/admin/api/features/{id}.xml": { "get": { "summary": "Account Feature Read", - "tags": ["Account Features"], + "tags": [ + "Account Features" + ], "parameters": [ { "name": "access_token", @@ -6469,8 +6529,7 @@ "description": "ID of the feature.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -6483,7 +6542,9 @@ }, "put": { "summary": "Account Feature Update", - "tags": ["Account Features"], + "tags": [ + "Account Features" + ], "parameters": [ { "name": "access_token", @@ -6500,8 +6561,7 @@ "description": "ID of the feature.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -6523,7 +6583,9 @@ }, "delete": { "summary": "Account Feature Delete", - "tags": ["Account Features"], + "tags": [ + "Account Features" + ], "parameters": [ { "name": "access_token", @@ -6540,8 +6602,7 @@ "description": "ID of the feature.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -6556,7 +6617,9 @@ "/admin/api/fields_definitions.json": { "get": { "summary": "Fields Definitions List", - "tags": ["Fields Definitions"], + "tags": [ + "Fields Definitions" + ], "parameters": [ { "name": "access_token", @@ -6577,7 +6640,9 @@ }, "post": { "summary": "Fields Definition Create", - "tags": ["Fields Definitions"], + "tags": [ + "Fields Definitions" + ], "parameters": [ { "name": "access_token", @@ -6591,11 +6656,11 @@ { "name": "target", "in": "query", - "description": "Target entity of fields definition.", + "description": "Target entity of fields definition (use Cinstance for Application).", "required": true, "schema": { "type": "string", - "default": "account", + "default": "Account", "enum": [ "Account", "User", @@ -6670,7 +6735,9 @@ "/admin/api/fields_definitions/{id}.json": { "get": { "summary": "Fields Definition Read", - "tags": ["Fields Definitions"], + "tags": [ + "Fields Definitions" + ], "parameters": [ { "name": "access_token", @@ -6687,8 +6754,7 @@ "description": "ID of the fields definition.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -6701,7 +6767,9 @@ }, "put": { "summary": "Fields Definition Update", - "tags": ["Fields Definitions"], + "tags": [ + "Fields Definitions" + ], "parameters": [ { "name": "access_token", @@ -6718,18 +6786,17 @@ "description": "ID of the fields definition.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { "name": "target", "in": "query", - "description": "Target entity of fields definition.", + "description": "Target entity of fields definition (use Cinstance for Application).", "required": true, "schema": { "type": "string", - "default": "account", + "default": "Account", "enum": [ "Account", "User", @@ -6774,7 +6841,7 @@ "in": "query", "description": "Position of the fields definition.", "schema": { - "type": "ref" + "type": "integer" } }, { @@ -6800,7 +6867,9 @@ }, "delete": { "summary": "Fields Definition Delete", - "tags": ["Fields Definitions"], + "tags": [ + "Fields Definitions" + ], "parameters": [ { "name": "access_token", @@ -6817,8 +6886,7 @@ "description": "ID of the fields definition.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -6833,7 +6901,9 @@ "/admin/api/objects/status.json": { "get": { "summary": "Object deletion status for objects that are deleted asynchronously", - "tags": ["Object Deletion Status"], + "tags": [ + "Object Deletion Status" + ], "parameters": [ { "name": "access_token", @@ -6874,7 +6944,9 @@ "/admin/api/personal/access_tokens.json": { "get": { "summary": "Personal Access Token List", - "tags": ["Access Tokens"], + "tags": [ + "Access Tokens" + ], "parameters": [ { "name": "name", @@ -6903,7 +6975,9 @@ }, "post": { "summary": "Personal Access Token Create", - "tags": ["Access Tokens"], + "tags": [ + "Access Tokens" + ], "parameters": [ { "name": "name", @@ -6958,7 +7032,9 @@ "/admin/api/personal/access_tokens/{id}.json": { "get": { "summary": "Personal Access Token Read", - "tags": ["Access Tokens"], + "tags": [ + "Access Tokens" + ], "parameters": [ { "name": "id", @@ -6966,7 +7042,7 @@ "description": "ID or value of the access token.", "required": true, "schema": { - "type": "ref" + "type": "integer" } }, { @@ -6988,7 +7064,9 @@ }, "delete": { "summary": "Personal Access Token Delete", - "tags": ["Access Tokens"], + "tags": [ + "Access Tokens" + ], "parameters": [ { "name": "id", @@ -6996,7 +7074,7 @@ "description": "ID or value of the access token.", "required": true, "schema": { - "type": "ref" + "type": "integer" } }, { @@ -7020,7 +7098,9 @@ "/admin/api/policies.json": { "get": { "summary": "APIcast Policy Registry", - "tags": ["APIcast Policies"], + "tags": [ + "APIcast Policies" + ], "parameters": [ { "name": "access_token", @@ -7043,7 +7123,9 @@ "/admin/api/provider.xml": { "get": { "summary": "Provider Account Read", - "tags": ["Provider Account"], + "tags": [ + "Provider Account" + ], "parameters": [ { "name": "access_token", @@ -7064,7 +7146,9 @@ }, "put": { "summary": "Provider Account Update", - "tags": ["Provider Account"], + "tags": [ + "Provider Account" + ], "parameters": [ { "name": "access_token", @@ -7119,7 +7203,9 @@ "/admin/api/service_plans.xml": { "get": { "summary": "Service Plan List (all services)", - "tags": ["Service Plans"], + "tags": [ + "Service Plans" + ], "parameters": [ { "name": "access_token", @@ -7142,7 +7228,9 @@ "/admin/api/service_plans/{service_plan_id}/features.xml": { "get": { "summary": "Service Plan Feature List", - "tags": ["Service Plans"], + "tags": [ + "Service Plans" + ], "parameters": [ { "name": "access_token", @@ -7159,8 +7247,7 @@ "description": "ID of the service plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -7173,7 +7260,9 @@ }, "post": { "summary": "Service Plan Feature Add", - "tags": ["Service Plans"], + "tags": [ + "Service Plans" + ], "parameters": [ { "name": "access_token", @@ -7190,8 +7279,7 @@ "description": "ID of the service plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -7200,8 +7288,7 @@ "description": "ID of the feature.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -7216,7 +7303,9 @@ "/admin/api/service_plans/{service_plan_id}/features/{id}.xml": { "delete": { "summary": "Service Plan Features Delete", - "tags": ["Service Plans"], + "tags": [ + "Service Plans" + ], "parameters": [ { "name": "access_token", @@ -7233,8 +7322,7 @@ "description": "ID of the service plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -7243,8 +7331,7 @@ "description": "ID of the feature.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -7259,7 +7346,9 @@ "/admin/api/services.xml": { "get": { "summary": "Service List", - "tags": ["Services"], + "tags": [ + "Services" + ], "parameters": [ { "name": "access_token", @@ -7276,7 +7365,6 @@ "description": "Page in the paginated list. Defaults to 1.", "schema": { "type": "integer", - "format": "int32", "default": 1 } }, @@ -7286,7 +7374,6 @@ "description": "Number of results per page. Default and max is 500.", "schema": { "type": "integer", - "format": "int32", "default": 500 } } @@ -7300,7 +7387,9 @@ }, "post": { "summary": "Service Create", - "tags": ["Services"], + "tags": [ + "Services" + ], "parameters": [ { "name": "access_token", @@ -7377,7 +7466,9 @@ "/admin/api/services/{id}.xml": { "get": { "summary": "Service Read", - "tags": ["Services"], + "tags": [ + "Services" + ], "parameters": [ { "name": "access_token", @@ -7394,8 +7485,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -7408,7 +7498,9 @@ }, "put": { "summary": "Service Update", - "tags": ["Services"], + "tags": [ + "Services" + ], "parameters": [ { "name": "access_token", @@ -7425,8 +7517,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -7492,7 +7583,9 @@ }, "delete": { "summary": "Service Delete", - "tags": ["Services"], + "tags": [ + "Services" + ], "parameters": [ { "name": "access_token", @@ -7509,8 +7602,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -7525,7 +7617,9 @@ "/admin/api/services/{id}/service_plans.xml": { "get": { "summary": "Service Plan List", - "tags": ["Service Plans"], + "tags": [ + "Service Plans" + ], "parameters": [ { "name": "access_token", @@ -7542,8 +7636,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -7556,7 +7649,9 @@ }, "post": { "summary": "Service Plan Create", - "tags": ["Service Plans"], + "tags": [ + "Service Plans" + ], "parameters": [ { "name": "access_token", @@ -7573,8 +7668,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -7622,7 +7716,9 @@ "/admin/api/services/{service_id}/metrics.xml": { "get": { "summary": "Service Metric List", - "tags": ["Services"], + "tags": [ + "Services" + ], "parameters": [ { "name": "access_token", @@ -7639,8 +7735,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -7653,7 +7748,9 @@ }, "post": { "summary": "Service Metric Create", - "tags": ["Services"], + "tags": [ + "Services" + ], "parameters": [ { "name": "access_token", @@ -7670,8 +7767,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -7713,7 +7809,7 @@ "in": "query", "description": "Description of the metric.", "schema": { - "type": "ref" + "type": "string" } } ], @@ -7728,8 +7824,9 @@ "/admin/api/services/{service_id}/metrics/{id}.xml": { "get": { "summary": "Service Metric Read", - "tags": ["Services"], - "operationId": "service_metric", + "tags": [ + "Services" + ], "parameters": [ { "name": "access_token", @@ -7746,8 +7843,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -7756,8 +7852,7 @@ "description": "ID of the metric.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -7770,7 +7865,9 @@ }, "put": { "summary": "Service Metric Update", - "tags": ["Services"], + "tags": [ + "Services" + ], "parameters": [ { "name": "access_token", @@ -7787,8 +7884,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -7797,8 +7893,7 @@ "description": "ID of the metric.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -7822,7 +7917,7 @@ "in": "query", "description": "Description of the metric.", "schema": { - "type": "ref" + "type": "string" } } ], @@ -7835,7 +7930,9 @@ }, "delete": { "summary": "Service Metric Delete", - "tags": ["Services"], + "tags": [ + "Services" + ], "parameters": [ { "name": "access_token", @@ -7852,8 +7949,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -7862,8 +7958,7 @@ "description": "ID of the metric.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -7878,7 +7973,9 @@ "/admin/api/services/{service_id}/metrics/{metric_id}/methods.xml": { "get": { "summary": "Service Method List", - "tags": ["Services"], + "tags": [ + "Services" + ], "parameters": [ { "name": "access_token", @@ -7895,8 +7992,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -7905,8 +8001,7 @@ "description": "ID of the metric.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -7919,7 +8014,9 @@ }, "post": { "summary": "Service Method Create", - "tags": ["Services"], + "tags": [ + "Services" + ], "parameters": [ { "name": "access_token", @@ -7936,8 +8033,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -7946,8 +8042,7 @@ "description": "ID of the metric.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -7981,7 +8076,7 @@ "in": "query", "description": "Description of the method.", "schema": { - "type": "ref" + "type": "string" } } ], @@ -7996,7 +8091,9 @@ "/admin/api/services/{service_id}/metrics/{metric_id}/methods/{id}.xml": { "get": { "summary": "Service Method Read", - "tags": ["Services"], + "tags": [ + "Services" + ], "parameters": [ { "name": "access_token", @@ -8013,8 +8110,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -8023,8 +8119,7 @@ "description": "ID of the metric.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -8033,8 +8128,7 @@ "description": "ID of the method.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -8047,7 +8141,9 @@ }, "put": { "summary": "Service Method Update", - "tags": ["Services"], + "tags": [ + "Services" + ], "parameters": [ { "name": "access_token", @@ -8064,8 +8160,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -8074,8 +8169,7 @@ "description": "ID of the metric.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -8084,8 +8178,7 @@ "description": "ID of the method.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -8109,7 +8202,7 @@ "in": "query", "description": "Description of the method.", "schema": { - "type": "ref" + "type": "string" } } ], @@ -8122,7 +8215,9 @@ }, "delete": { "summary": "Service Method Delete", - "tags": ["Services"], + "tags": [ + "Services" + ], "parameters": [ { "name": "access_token", @@ -8139,8 +8234,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -8149,8 +8243,7 @@ "description": "ID of the metric.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -8159,8 +8252,7 @@ "description": "ID of the method.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -8175,7 +8267,9 @@ "/admin/api/account/proxy_configs/{environment}.json": { "get": { "summary": "Proxy Configs List (Provider)", - "tags": ["Proxy Configs for Provider"], + "tags": [ + "Proxy Configs for Provider" + ], "parameters": [ { "name": "access_token", @@ -8223,7 +8317,9 @@ "/admin/api/services/{service_id}/proxy.xml": { "get": { "summary": "Proxy Read", - "tags": ["Gateway"], + "tags": [ + "Gateway" + ], "parameters": [ { "name": "access_token", @@ -8240,8 +8336,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -8254,7 +8349,9 @@ }, "patch": { "summary": "Proxy Update", - "tags": ["Gateway"], + "tags": [ + "Gateway" + ], "parameters": [ { "name": "access_token", @@ -8271,8 +8368,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -8336,8 +8432,7 @@ "in": "query", "description": "Status code on failed authentication.", "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -8361,8 +8456,7 @@ "in": "query", "description": "Status code on missing authentication.", "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -8386,8 +8480,7 @@ "in": "query", "description": "Status code when no mapping rule is matched.", "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -8403,8 +8496,7 @@ "in": "query", "description": "Status code when usage limit exceeded.", "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -8475,7 +8567,9 @@ "/admin/api/services/{service_id}/proxy/deploy.xml": { "post": { "summary": "Proxy Deploy", - "tags": ["Gateway"], + "tags": [ + "Gateway" + ], "parameters": [ { "name": "access_token", @@ -8492,8 +8586,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -8508,7 +8601,9 @@ "/admin/api/services/{service_id}/proxy/mapping_rules.xml": { "get": { "summary": "Proxy Mapping Rules List", - "tags": ["Gateway"], + "tags": [ + "Gateway" + ], "parameters": [ { "name": "access_token", @@ -8525,8 +8620,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -8539,7 +8633,9 @@ }, "post": { "summary": "Proxy Mapping Rule Create", - "tags": ["Gateway"], + "tags": [ + "Gateway" + ], "parameters": [ { "name": "access_token", @@ -8556,8 +8652,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -8584,8 +8679,7 @@ "description": "Increase the metric by this delta.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -8594,8 +8688,7 @@ "description": "Metric ID.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -8603,8 +8696,7 @@ "in": "query", "description": "Mapping Rule position", "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -8612,7 +8704,7 @@ "in": "query", "description": "Last matched Mapping Rule to process", "schema": { - "type": "ref" + "type": "boolean" } } ], @@ -8627,7 +8719,9 @@ "/admin/api/services/{service_id}/proxy/mapping_rules/{id}.xml": { "get": { "summary": "Proxy Mapping Rules Show", - "tags": ["Gateway"], + "tags": [ + "Gateway" + ], "parameters": [ { "name": "access_token", @@ -8644,8 +8738,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -8654,8 +8747,7 @@ "description": "Mapping Rule ID.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -8668,7 +8760,9 @@ }, "delete": { "summary": "Proxy Mapping Rule Delete", - "tags": ["Gateway"], + "tags": [ + "Gateway" + ], "parameters": [ { "name": "access_token", @@ -8685,8 +8779,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -8695,8 +8788,7 @@ "description": "Mapping Rule ID.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -8709,7 +8801,9 @@ }, "patch": { "summary": "Proxy Mapping Rule Update", - "tags": ["Gateway"], + "tags": [ + "Gateway" + ], "parameters": [ { "name": "access_token", @@ -8726,8 +8820,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -8736,8 +8829,7 @@ "description": "Mapping Rule ID.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -8761,8 +8853,7 @@ "in": "query", "description": "Increase the metric by this delta.", "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -8770,8 +8861,7 @@ "in": "query", "description": "Metric ID.", "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -8779,8 +8869,7 @@ "in": "query", "description": "Mapping Rule position", "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -8788,7 +8877,7 @@ "in": "query", "description": "Last matched Mapping Rule to process", "schema": { - "type": "ref" + "type": "boolean" } } ], @@ -8803,7 +8892,9 @@ "/admin/api/services/{service_id}/proxy/oidc_configuration.xml": { "get": { "summary": "OIDC Configuration Show", - "tags": ["Gateway"], + "tags": [ + "Gateway" + ], "parameters": [ { "name": "access_token", @@ -8820,8 +8911,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -8834,7 +8924,9 @@ }, "patch": { "summary": "OIDC Configuration Update", - "tags": ["Gateway"], + "tags": [ + "Gateway" + ], "parameters": [ { "name": "access_token", @@ -8851,8 +8943,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -8899,7 +8990,9 @@ "/admin/api/services/{service_id}/proxy/configs/{environment}.json": { "get": { "summary": "Proxy Configs List (Service)", - "tags": ["Gateway"], + "tags": [ + "Gateway" + ], "parameters": [ { "name": "access_token", @@ -8916,8 +9009,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -8941,7 +9033,9 @@ "/admin/api/services/{service_id}/proxy/configs/{environment}/latest.json": { "get": { "summary": "Proxy Config Show Latest", - "tags": ["Gateway"], + "tags": [ + "Gateway" + ], "parameters": [ { "name": "access_token", @@ -8958,8 +9052,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -8983,7 +9076,9 @@ "/admin/api/services/{service_id}/proxy/configs/{environment}/{version}.json": { "get": { "summary": "Proxy Config Show", - "tags": ["Gateway"], + "tags": [ + "Gateway" + ], "parameters": [ { "name": "access_token", @@ -9000,8 +9095,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -9019,8 +9113,7 @@ "description": "Version of the Proxy config.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -9035,7 +9128,9 @@ "/admin/api/services/{service_id}/proxy/configs/{environment}/{version}/promote.json": { "post": { "summary": "Proxy Config Promote", - "tags": ["Gateway"], + "tags": [ + "Gateway" + ], "parameters": [ { "name": "access_token", @@ -9052,8 +9147,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -9071,8 +9165,7 @@ "description": "Version of the Proxy config.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -9096,7 +9189,9 @@ "/admin/api/services/{service_id}/proxy/policies.json": { "get": { "summary": "Proxy Policies Chain Show", - "tags": ["Gateway"], + "tags": [ + "Gateway" + ], "parameters": [ { "name": "access_token", @@ -9113,8 +9208,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -9127,7 +9221,9 @@ }, "put": { "summary": "Proxy Policies Chain Update", - "tags": ["Gateway"], + "tags": [ + "Gateway" + ], "parameters": [ { "name": "access_token", @@ -9144,8 +9240,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -9169,7 +9264,9 @@ "/admin/api/services/{service_id}/service_plans/{id}.xml": { "get": { "summary": "Service Plan Read", - "tags": ["Service Plans"], + "tags": [ + "Service Plans" + ], "parameters": [ { "name": "access_token", @@ -9186,8 +9283,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -9196,8 +9292,7 @@ "description": "ID of the service plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -9210,7 +9305,9 @@ }, "put": { "summary": "Service Plan Update", - "tags": ["Service Plans"], + "tags": [ + "Service Plans" + ], "parameters": [ { "name": "access_token", @@ -9227,8 +9324,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -9237,8 +9333,7 @@ "description": "ID of the service plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -9275,7 +9370,9 @@ }, "delete": { "summary": "Service Plan Delete", - "tags": ["Service Plans"], + "tags": [ + "Service Plans" + ], "parameters": [ { "name": "access_token", @@ -9292,8 +9389,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -9302,8 +9398,7 @@ "description": "ID of the service plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -9318,7 +9413,9 @@ "/admin/api/services/{service_id}/service_plans/{id}/default.xml": { "put": { "summary": "Service Plan Set to Default", - "tags": ["Service Plans"], + "tags": [ + "Service Plans" + ], "parameters": [ { "name": "access_token", @@ -9335,8 +9432,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -9345,8 +9441,7 @@ "description": "ID of the service plan.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -9361,7 +9456,9 @@ "/admin/api/services/{service_id}/features.xml": { "get": { "summary": "Service Feature List", - "tags": ["Service Features"], + "tags": [ + "Service Features" + ], "parameters": [ { "name": "access_token", @@ -9378,8 +9475,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -9392,7 +9488,9 @@ }, "post": { "summary": "Service Feature Create", - "tags": ["Service Features"], + "tags": [ + "Service Features" + ], "parameters": [ { "name": "access_token", @@ -9409,8 +9507,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -9435,7 +9532,7 @@ "in": "query", "description": "Description of the feature.", "schema": { - "type": "ref" + "type": "string" } }, { @@ -9467,7 +9564,9 @@ "/admin/api/services/{service_id}/features/{id}.xml": { "get": { "summary": "Service Feature Read", - "tags": ["Service Features"], + "tags": [ + "Service Features" + ], "parameters": [ { "name": "access_token", @@ -9484,8 +9583,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -9494,8 +9592,7 @@ "description": "ID of the feature.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -9508,7 +9605,9 @@ }, "put": { "summary": "Service Feature Update", - "tags": ["Service Features"], + "tags": [ + "Service Features" + ], "parameters": [ { "name": "access_token", @@ -9525,8 +9624,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -9535,8 +9633,7 @@ "description": "ID of the feature.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -9552,7 +9649,7 @@ "in": "query", "description": "Description of the feature.", "schema": { - "type": "ref" + "type": "string" } } ], @@ -9565,7 +9662,9 @@ }, "delete": { "summary": "Service Feature Delete", - "tags": ["Service Features"], + "tags": [ + "Service Features" + ], "parameters": [ { "name": "access_token", @@ -9582,8 +9681,7 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -9592,8 +9690,7 @@ "description": "ID of the feature.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -9608,8 +9705,9 @@ "/admin/api/settings.json": { "get": { "summary": "Settings Read", - "tags": ["Settings"], - "operationId": "service_metric", + "tags": [ + "Settings" + ], "parameters": [ { "name": "access_token", @@ -9630,7 +9728,9 @@ }, "put": { "summary": "Settings Update", - "tags": ["Settings"], + "tags": [ + "Settings" + ], "parameters": [ { "name": "access_token", @@ -9733,7 +9833,9 @@ "/admin/api/webhooks.json": { "put": { "summary": "WebHooks Update", - "tags": ["Webhooks"], + "tags": [ + "Webhooks" + ], "parameters": [ { "name": "access_token", @@ -9892,7 +9994,9 @@ "/admin/api/webhooks/failures.xml": { "get": { "summary": "Webhooks List Failed Deliveries", - "tags": ["Webhooks"], + "tags": [ + "Webhooks" + ], "parameters": [ { "name": "access_token", @@ -9913,7 +10017,9 @@ }, "delete": { "summary": "Webhooks Delete Failed Deliveries", - "tags": ["Webhooks"], + "tags": [ + "Webhooks" + ], "parameters": [ { "name": "access_token", @@ -9929,7 +10035,8 @@ "in": "query", "description": "Only failed webhook deliveries whose time is less than or equal to the passed time are destroyed (if used).", "schema": { - "type": "ref" + "type": "string", + "format": "date-time" } } ], From 2cd854b022e306d0f2842f6df5296109aedb63bf Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Mon, 13 Feb 2023 20:17:00 +0530 Subject: [PATCH 33/85] THREESCALE-3927 updated PUT API params in request body --- doc/active_docs/Account Management API.json | 167 +++++++++----------- 1 file changed, 74 insertions(+), 93 deletions(-) diff --git a/doc/active_docs/Account Management API.json b/doc/active_docs/Account Management API.json index 52e58bdcfc..5017b3fbab 100644 --- a/doc/active_docs/Account Management API.json +++ b/doc/active_docs/Account Management API.json @@ -6768,103 +6768,84 @@ "put": { "summary": "Fields Definition Update", "tags": [ - "Fields Definitions" - ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the fields definition.", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "target", - "in": "query", - "description": "Target entity of fields definition (use Cinstance for Application).", - "required": true, - "schema": { - "type": "string", - "default": "Account", - "enum": [ - "Account", - "User", - "Cinstance" - ] - } - }, - { - "name": "label", - "in": "query", - "description": "The field title your developers will see.", - "schema": { - "type": "string" - } - }, - { - "name": "required", - "in": "query", - "description": "If 'true' the field will be required for developers.", - "schema": { - "type": "boolean" - } - }, - { - "name": "hidden", - "in": "query", - "description": "If 'true' the developers won't be able to see this field.", - "schema": { - "type": "boolean" - } - }, - { - "name": "read_only", - "in": "query", - "description": "If 'true' the developers won't be able to change this field.", - "schema": { - "type": "boolean" - } - }, - { - "name": "position", - "in": "query", - "description": "Position of the fields definition.", - "schema": { - "type": "integer" + "Fields Definitions" + ], + "requestBody": { + "description": "Update Fields Definitions", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "id": { + "type": "integer", + "description": "ID of the fields definition." + }, + "target":{ + "type": "string", + "description": "Target entity of fields definition (use Cinstance for Application).", + "default": "Account", + "enum": [ + "Account", + "User", + "Cinstance" + ] + }, + "label": { + "type": "string", + "description": "The field title your developers will see." + }, + "read_only": { + "type": "boolean", + "description": "If 'true' the developers won't be able to change this field." + }, + "required": { + "type": "boolean", + "description": "If 'true' the field will be required for developers." + }, + "position": { + "type": "integer", + "description": "Position of the fields definition." + }, + "hidden": { + "type": "boolean", + "description": "If 'true' the developers won't be able to see this field." + }, + "choices[]": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "access_token", + "id", + "target" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } } }, - { - "name": "choices", - "in": "query", - "description": "The list of predefined options for this field, URL-encoded array.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" + "responses": { + "default": { + "description": "success", + "content": {} } } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, + }, "delete": { "summary": "Fields Definition Delete", "tags": [ From dc6b27ccea29da68a7139c33c79dc2ca80783172 Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Tue, 14 Feb 2023 17:40:59 +0530 Subject: [PATCH 34/85] THREESCALE-3927 converted post API into request body format --- doc/active_docs/Account Management API.json | 142 +++++++++----------- 1 file changed, 64 insertions(+), 78 deletions(-) diff --git a/doc/active_docs/Account Management API.json b/doc/active_docs/Account Management API.json index 5017b3fbab..dd3df58553 100644 --- a/doc/active_docs/Account Management API.json +++ b/doc/active_docs/Account Management API.json @@ -6643,87 +6643,73 @@ "tags": [ "Fields Definitions" ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "target", - "in": "query", - "description": "Target entity of fields definition (use Cinstance for Application).", - "required": true, - "schema": { - "type": "string", - "default": "Account", - "enum": [ - "Account", - "User", - "Cinstance" - ] - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the fields definition to be created.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "label", - "in": "query", - "description": "The field title your developers will see.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "required", - "in": "query", - "description": "If 'true' the field will be required for developers.", - "schema": { - "type": "boolean" - } - }, - { - "name": "hidden", - "in": "query", - "description": "If 'true' the developers won't be able to see this field.", - "schema": { - "type": "boolean" - } - }, - { - "name": "read_only", - "in": "query", - "description": "If 'true' the developers won't be able to change this field.", - "schema": { - "type": "boolean" - } - }, - { - "name": "choices", - "in": "query", - "description": "The list of predefined options for this field, URL-encoded array.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" + "requestBody": { + "description": "Create Fields Definitions", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token.", + "required": true + }, + "target":{ + "type": "string", + "description": "Target entity of fields definition (use Cinstance for Application).", + "default": "Account", + "enum": [ + "Account", + "User", + "Cinstance" + ] + }, + "name": { + "type": "string", + "description": "Name of the fields definition to be created." + }, + "label": { + "type": "string", + "description": "The field title your developers will see." + }, + "required": { + "type": "boolean", + "description": "If 'true' the field will be required for developers." + }, + "hidden": { + "type": "boolean", + "description": "If 'true' the developers won't be able to see this field." + }, + "read_only": { + "type": "boolean", + "description": "If 'true' the developers won't be able to change this field." + }, + "choices[]": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "name", + "target", + "label", + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } } } } - ], + }, "responses": { "default": { "description": "success", From 24af41b5d6fef632a9535efcb501d56e0d2e6d2e Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Wed, 15 Feb 2023 19:31:10 +0530 Subject: [PATCH 35/85] THREESCALE-3927 Updated Accounts API's of Account Management API --- doc/active_docs/Account Management API.json | 681 ++++++++++---------- 1 file changed, 358 insertions(+), 323 deletions(-) diff --git a/doc/active_docs/Account Management API.json b/doc/active_docs/Account Management API.json index dd3df58553..80be855ba5 100644 --- a/doc/active_docs/Account Management API.json +++ b/doc/active_docs/Account Management API.json @@ -17,90 +17,72 @@ "tags": [ "Accounts" ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "org_name", - "in": "query", - "description": "Organization Name of the developer account.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "username", - "in": "query", - "description": "Username of the admin user (on the new developer account).", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "email", - "in": "query", - "description": "Email of the admin user.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "password", - "in": "query", - "description": "Password of the admin user.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_plan_id", - "in": "query", - "description": "ID of the account plan (if not assigned default will be used instead).", - "schema": { - "type": "integer" - } - }, - { - "name": "service_plan_id", - "in": "query", - "description": "ID of the service plan (if not assigned default will be used instead).", - "schema": { - "type": "integer" - } - }, - { - "name": "application_plan_id", - "in": "query", - "description": "ID of the application plan (if not assigned default will be used instead).", - "schema": { - "type": "integer" - } - }, - { - "name": "additional_fields", - "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" + "requestBody": { + "description": "Create Account", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "org_name": { + "type": "string", + "description": "Organization Name of the developer account." + }, + "username": { + "type": "string", + "description": "Username of the admin user (on the new developer account)." + }, + "email": { + "type": "string", + "description": "Email of the admin user." + }, + "password": { + "type": "string", + "description": "Password of the admin user." + }, + "account_plan_id": { + "type": "integer", + "description": "ID of the account plan (if not assigned default will be used instead)." + }, + "service_plan_id": { + "type": "integer", + "description": "ID of the service plan (if not assigned default will be used instead)." + }, + "application_plan_id": { + "type": "integer", + "description": "ID of the application plan (if not assigned default will be used instead)." + }, + "additional_fields[]": { + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "access_token", + "org_name", + "username", + "email", + "password" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } } } } - ], + }, "responses": { "default": { "description": "success", @@ -204,62 +186,62 @@ "Accounts" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "id", "in": "path", - "description": "ID of the account.", + "description": "ID of the fields definition.", "required": true, "schema": { "type": "integer" } - }, - { - "name": "org_name", - "in": "query", - "description": "Organization name of the account.", - "schema": { - "type": "string" - } - }, - { - "name": "monthly_billing_enabled", - "in": "query", - "description": "Updates monthly billing status.", - "schema": { - "type": "boolean" - } - }, - { - "name": "monthly_charging_enabled", - "in": "query", - "description": "Updates monthly charging status.", - "schema": { - "type": "boolean" - } - }, - { - "name": "additional_fields", - "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" + } + ], + "requestBody": { + "description": "Update Accounts", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "org_name": { + "type": "string", + "description": "Organization name of the account." + }, + "monthly_billing_enabled": { + "type": "boolean", + "description": "Updates monthly billing status." + }, + "monthly_charging_enabled": { + "type": "boolean", + "description": "Updates monthly charging status." + }, + "additional_fields[]": { + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } } } } - ], + }, "responses": { "default": { "description": "success", @@ -1266,15 +1248,6 @@ "Accounts" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "account_id", "in": "path", @@ -1283,26 +1256,43 @@ "schema": { "type": "integer" } - }, - { - "name": "body", - "in": "query", - "description": "Text to send", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "subject", - "in": "query", - "description": "Subject of the message", - "required": true, - "schema": { - "type": "string" - } } ], + "requestBody": { + "description": "Account Message", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "body": { + "type": "string", + "description": "Text to send" + }, + "subject": { + "type": "string", + "description": "Subject of the message" + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -1429,25 +1419,43 @@ "Accounts" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "id", "in": "path", - "description": "ID of the account.", + "description": "ID of the fields definition.", "required": true, "schema": { "type": "integer" } } ], + "requestBody": { + "description": "Account Approve", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -1463,15 +1471,6 @@ "Accounts" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "id", "in": "path", @@ -1480,17 +1479,40 @@ "schema": { "type": "integer" } - }, - { - "name": "plan_id", - "in": "query", - "description": "ID of the target account plan", - "required": true, - "schema": { - "type": "integer" - } } ], + "requestBody": { + "description": "Account Change Plan", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "plan_id":{ + "type": "integer", + "description": "ID of the target account plan" + } + }, + "required": [ + "access_token", + "plan_id" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -1506,15 +1528,6 @@ "Accounts" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "id", "in": "path", @@ -1523,111 +1536,91 @@ "schema": { "type": "integer" } - }, - { - "name": "credit_card_token", - "in": "query", - "description": "Token used by the payment gateway to identify the buyer, customer profile ID (Authorize.net), customer ID (Braintree and Stripe), customer alias (Ogone-Ingenico). Some payment gateways may store more than one card under the same buyer reference and/or require an additional identifier for recurring payment. If you are using Braintree, there is no need for additional identifier -- the first credit card available will always be charged. For Authorize.net, see `credit_card_authorize_net_payment_profile_token`.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "credit_card_authorize_net_payment_profile_token", - "in": "query", - "description": "Additional reference provided by the payment gateway to identify a specific card under the same buyer reference. For Authorize.net, you MUST fill with the 'Payment profile token'", - "schema": { - "type": "string" - } - }, - { - "name": "credit_card_expiration_year", - "in": "query", - "description": "Year of expiration of credit card. Two digit number", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "credit_card_expiration_month", - "in": "query", - "description": "Month of expiration of credit card. Two digit number", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "billing_address_name", - "in": "query", - "description": "Name of the person/company to bill", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "billing_address_address", - "in": "query", - "description": "Address associated to the credit card", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "billing_address_city", - "in": "query", - "description": "Billing address city", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "billing_address_country", - "in": "query", - "description": "Billing address country", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "billing_address_state", - "in": "query", - "description": "Billing address state", - "schema": { - "type": "string" - } - }, - { - "name": "billing_address_phone", - "in": "query", - "description": "Billing address phone", - "schema": { - "type": "string" - } - }, - { - "name": "billing_address_zip", - "in": "query", - "description": "Billing address ZIP Code", - "schema": { - "type": "string" - } - }, - { - "name": "credit_card_partial_number", - "in": "query", - "description": "Last four digits on the credit card", - "schema": { - "type": "string" - } } ], + "requestBody": { + "description": "Account Set Credit Card", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "credit_card_token":{ + "type": "string", + "description": "Token used by the payment gateway to identify the buyer, customer profile ID (Authorize.net), customer ID (Braintree and Stripe), customer alias (Ogone-Ingenico). Some payment gateways may store more than one card under the same buyer reference and/or require an additional identifier for recurring payment. If you are using Braintree, there is no need for additional identifier -- the first credit card available will always be charged. For Authorize.net, see `credit_card_authorize_net_payment_profile_token`." + }, + "credit_card_authorize_net_payment_profile_token": { + "type": "string", + "description": "Additional reference provided by the payment gateway to identify a specific card under the same buyer reference. For Authorize.net, you MUST fill with the 'Payment profile token'" + }, + "credit_card_expiration_year": { + "type": "string", + "description": "Year of expiration of credit card. Two digit number" + }, + "credit_card_expiration_month": { + "type": "string", + "description": "Month of expiration of credit card. Two digit number" + }, + "billing_address_name":{ + "type": "string", + "description": "Name of the person/company to bill" + }, + "billing_address_address": { + "type": "string", + "description": "Address associated to the credit card" + }, + "billing_address_city": { + "type": "string", + "description": "Billing address city" + }, + "billing_address_country": { + "type": "string", + "description": "Billing address country" + }, + "billing_address_state": { + "type": "string", + "description": "Billing address state" + }, + "billing_address_phone": { + "type": "string", + "description": "Billing address phone" + }, + "billing_address_zip": { + "type": "string", + "description": "Billing address ZIP Code" + }, + "credit_card_partial_number": { + "type": "string", + "description": "Last four digits on the credit card" + } + }, + "required": [ + "access_token", + "id", + "credit_card_token", + "credit_card_expiration_year", + "credit_card_expiration_month", + "billing_address_name", + "billing_address_address", + "billing_address_city", + "billing_address_country" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -1675,15 +1668,6 @@ "Accounts" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "id", "in": "path", @@ -1694,6 +1678,33 @@ } } ], + "requestBody": { + "description": "Account Reset to Pending", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -1709,25 +1720,43 @@ "Accounts" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "id", "in": "path", - "description": "ID of the account.", + "description": "ID of the fields definition.", "required": true, "schema": { "type": "integer" } } ], + "requestBody": { + "description": "Account Reject", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -6756,6 +6785,17 @@ "tags": [ "Fields Definitions" ], + "parameters": [ + { + "name": "id", + "in": "path", + "description": "ID of the fields definition.", + "required": true, + "schema": { + "type": "integer" + } + } + ], "requestBody": { "description": "Update Fields Definitions", "required": true, @@ -6768,10 +6808,6 @@ "type": "string", "description": "A personal Access Token." }, - "id": { - "type": "integer", - "description": "ID of the fields definition." - }, "target":{ "type": "string", "description": "Target entity of fields definition (use Cinstance for Application).", @@ -6811,7 +6847,6 @@ }, "required": [ "access_token", - "id", "target" ] }, @@ -6826,11 +6861,11 @@ } }, "responses": { - "default": { - "description": "success", - "content": {} - } - } + "default": { + "description": "success", + "content": {} + } + } }, "delete": { "summary": "Fields Definition Delete", From 5e4cdf5222437ddba33f47af759f9fd9e7e24595 Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Wed, 15 Feb 2023 23:25:39 +0530 Subject: [PATCH 36/85] THREESCALE-3927 Updated Account Applications API's of AMI --- doc/active_docs/Account Management API.json | 645 ++++++++++++-------- 1 file changed, 374 insertions(+), 271 deletions(-) diff --git a/doc/active_docs/Account Management API.json b/doc/active_docs/Account Management API.json index 80be855ba5..b21a3f327e 100644 --- a/doc/active_docs/Account Management API.json +++ b/doc/active_docs/Account Management API.json @@ -385,16 +385,7 @@ "tags": [ "Account Applications" ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, + "parameters": [ { "name": "account_id", "in": "path", @@ -403,101 +394,86 @@ "schema": { "type": "integer" } - }, - { - "name": "plan_id", - "in": "query", - "description": "ID of the application plan.", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the application to be created.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the application to be created.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "user_key", - "in": "query", - "description": "User Key (API Key) of the application to be created.", - "schema": { - "type": "string" - } - }, - { - "name": "application_id", - "in": "query", - "description": "App ID or Client ID (for OAuth and OpenID Connect authentication modes) of the application to be created.", - "schema": { - "type": "string" - } - }, - { - "name": "application_key", - "in": "query", - "description": "App Key(s) or Client Secret (for OAuth and OpenID Connect authentication modes) of the application to be created.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "redirect_url", - "in": "query", - "description": "Redirect URL for the OAuth request.", - "schema": { - "type": "string" - } - }, - { - "name": "first_traffic_at", - "in": "query", - "description": "Timestamp of the first call made by the application.", - "schema": { - "type": "string" - } - }, - { - "name": "first_daily_traffic_at", - "in": "query", - "description": "Timestamp of the first call on the last day when traffic was registered for the application ('Traffic On').", - "schema": { - "type": "string" - } - }, - { - "name": "additional_fields", - "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" + } + ], + "requestBody": { + "description": "Application Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "plan_id": { + "type": "integer", + "description": "ID of the application plan." + }, + "name": { + "type": "string", + "description": "Name of the application to be created." + }, + "description": { + "type": "string", + "description": "Description of the application to be created." + }, + "user_key": { + "type": "string", + "description": "User Key (API Key) of the application to be created." + }, + "application_id": { + "type": "string", + "description": "App ID or Client ID (for OAuth and OpenID Connect authentication modes) of the application to be created." + }, + "application_key[]": { + "description": "App Key(s) or Client Secret (for OAuth and OpenID Connect authentication modes) of the application to be created.", + "type": "array", + "explode": false, + "items": { + "type": "string" + } + }, + "redirect_url": { + "type": "string", + "description": "Redirect URL for the OAuth request." + }, + "first_traffic_at": { + "type": "string", + "description": "Timestamp of the first call made by the application." + }, + "first_daily_traffic_at": { + "type": "string", + "description": "Timestamp of the first call on the last day when traffic was registered for the application ('Traffic On')." + }, + "additional_fields[]": { + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "type": "array", + "explode": false, + "items": { + "type": "string" + } + } + }, + "required": [ + "access_token", + "plan_id", + "name", + "description" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } } } } - ], + }, "responses": { "default": { "description": "success", @@ -553,16 +529,7 @@ "tags": [ "Account Applications" ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, + "parameters": [ { "name": "account_id", "in": "path", @@ -580,61 +547,65 @@ "schema": { "type": "integer" } - }, - { - "name": "name", - "in": "query", - "description": "Name of the application.", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the application.", - "schema": { - "type": "string" - } - }, - { - "name": "redirect_url", - "in": "query", - "description": "Redirect URL for the OAuth request.", - "schema": { - "type": "string" - } - }, - { - "name": "first_traffic_at", - "in": "query", - "description": "Timestamp of the first call made by the application.", - "schema": { - "type": "string" - } - }, - { - "name": "first_daily_traffic_at", - "in": "query", - "description": "Timestamp of the first call on the last day when traffic was registered for the application ('Traffic On').", - "schema": { - "type": "string" - } - }, - { - "name": "additional_fields", - "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" + } + ], + "requestBody": { + "description": "Application Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "name": { + "type": "string", + "description": "Name of the application" + }, + "description": { + "type": "string", + "description": "Description of the application" + }, + "redirect_url": { + "type": "string", + "description": "Redirect URL for the OAuth request." + }, + "first_traffic_at": { + "type": "string", + "description": "Timestamp of the first call made by the application." + }, + "first_daily_traffic_at": { + "type": "string", + "description": "Timestamp of the first call on the last day when traffic was registered for the application ('Traffic On')." + }, + + "additional_fields[]": { + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "type": "array", + "explode": false, + "items": { + "type": "string" + } + } + }, + "required": [ + "access_token", + "name" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } } } } - ], + }, "responses": { "default": { "description": "success", @@ -690,16 +661,7 @@ "tags": [ "Account Applications" ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, + "parameters": [ { "name": "account_id", "in": "path", @@ -719,6 +681,33 @@ } } ], + "requestBody": { + "description": "Application Accept", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -733,16 +722,7 @@ "tags": [ "Account Applications" ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, + "parameters": [ { "name": "account_id", "in": "path", @@ -760,17 +740,40 @@ "schema": { "type": "integer" } - }, - { - "name": "plan_id", - "in": "query", - "description": "ID of the new application plan.", - "required": true, - "schema": { - "type": "integer" + } + ], + "requestBody": { + "description": "Application Change Plan", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + } + }, + "plan_id": { + "type": "integer", + "description": "ID of the new application plan." + }, + "required": [ + "access_token", + "plan_id" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } } } - ], + }, "responses": { "default": { "description": "success", @@ -785,16 +788,7 @@ "tags": [ "Account Applications" ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, + "parameters": [ { "name": "account_id", "in": "path", @@ -814,6 +808,33 @@ } } ], + "requestBody": { + "description": "Application Create Plan Customization", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -828,16 +849,7 @@ "tags": [ "Account Applications" ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, + "parameters": [ { "name": "account_id", "in": "path", @@ -857,6 +869,33 @@ } } ], + "requestBody": { + "description": "Application Delete Plan Customization", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -871,16 +910,7 @@ "tags": [ "Account Applications" ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, + "parameters": [ { "name": "account_id", "in": "path", @@ -900,6 +930,33 @@ } } ], + "requestBody": { + "description": "Application Resume", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -914,16 +971,7 @@ "tags": [ "Account Applications" ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, + "parameters": [ { "name": "account_id", "in": "path", @@ -943,6 +991,33 @@ } } ], + "requestBody": { + "description": "Application Suspend", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -998,16 +1073,7 @@ "tags": [ "Account Applications" ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, + "parameters": [ { "name": "account_id", "in": "path", @@ -1025,17 +1091,40 @@ "schema": { "type": "integer" } - }, - { - "name": "key", - "in": "query", - "description": "app_key to be added", - "required": true, - "schema": { - "type": "string" - } } ], + "requestBody": { + "description": "Application Key Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "key": { + "type": "string", + "description": "app_key to be added" + } + }, + "required": [ + "access_token", + "key" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -1143,16 +1232,7 @@ "tags": [ "Account Applications" ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, + "parameters": [ { "name": "account_id", "in": "path", @@ -1170,17 +1250,40 @@ "schema": { "type": "integer" } - }, - { - "name": "referrer_filter", - "in": "query", - "description": "Referrer filter to be created.", - "required": true, - "schema": { - "type": "string" - } } ], + "requestBody": { + "description": "Application Referrer Filter Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "referrer_filter": { + "type": "string", + "description": "Referrer filter to be created." + } + }, + "required": [ + "access_token", + "referrer_filter" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", From b332e1abe2d3267cd09db620f638a6f806fb62a8 Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Tue, 21 Feb 2023 13:39:17 +0530 Subject: [PATCH 37/85] THREESCALE-3927 updated Api's --- doc/active_docs/Account Management API.json | 2769 ++++++++++--------- 1 file changed, 1477 insertions(+), 1292 deletions(-) diff --git a/doc/active_docs/Account Management API.json b/doc/active_docs/Account Management API.json index b21a3f327e..bc24514a3a 100644 --- a/doc/active_docs/Account Management API.json +++ b/doc/active_docs/Account Management API.json @@ -1932,15 +1932,6 @@ "Users" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "account_id", "in": "path", @@ -1949,48 +1940,58 @@ "schema": { "type": "integer" } - }, - { - "name": "username", - "in": "query", - "description": "Username of the user.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "email", - "in": "query", - "description": "Email of the user.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "password", - "in": "query", - "description": "Password of the user.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "additional_fields", - "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" + } + ], + "requestBody": { + "description": "User Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "username": { + "type": "string", + "description": "Username of the user." + }, + "email":{ + "type": "string", + "description": "Email of the user." + }, + "password": { + "type": "string", + "description": "Password of the user." + }, + "additional_fields[]": { + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "type": "array", + "explode": false, + "items": { + "type": "string" + } + } + }, + "required": [ + "access_token", + "username", + "email", + "password" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } } } } - ], + }, "responses": { "default": { "description": "success", @@ -2047,15 +2048,6 @@ "Users" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "account_id", "in": "path", @@ -2073,45 +2065,55 @@ "schema": { "type": "integer" } - }, - { - "name": "username", - "in": "query", - "description": "Username of the user.", - "schema": { - "type": "string" - } - }, - { - "name": "email", - "in": "query", - "description": "Email of the user.", - "schema": { - "type": "string" - } - }, - { - "name": "password", - "in": "query", - "description": "Password of the user.", - "schema": { - "type": "string" - } - }, - { - "name": "additional_fields", - "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" + } + ], + "requestBody": { + "description": "User Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "username": { + "type": "string", + "description": "Username of the user." + }, + "email":{ + "type": "string", + "description": "Email of the user." + }, + "password": { + "type": "string", + "description": "Password of the user." + }, + "additional_fields[]": { + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "type": "array", + "explode": false, + "items": { + "type": "string" + } + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } } } } - ], + }, "responses": { "default": { "description": "success", @@ -2168,15 +2170,6 @@ "Users" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "account_id", "in": "path", @@ -2196,6 +2189,41 @@ } } ], + "requestBody": { + "description": "User Activate", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "additional_fields[]": { + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "type": "array", + "explode": false, + "items": { + "type": "string" + } + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -2211,15 +2239,6 @@ "Users" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "account_id", "in": "path", @@ -2239,6 +2258,41 @@ } } ], + "requestBody": { + "description": "User change Role to Admin", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "additional_fields[]": { + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "type": "array", + "explode": false, + "items": { + "type": "string" + } + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -2254,15 +2308,6 @@ "Users" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "account_id", "in": "path", @@ -2282,6 +2327,33 @@ } } ], + "requestBody": { + "description": "User Change Role to Member", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -2340,15 +2412,6 @@ "Users" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "account_id", "in": "path", @@ -2368,6 +2431,33 @@ } } ], + "requestBody": { + "description": "User Unsuspend", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -2430,57 +2520,53 @@ "tags": [ "Users" ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "username", - "in": "query", - "description": "Username of the user.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "email", - "in": "query", - "description": "Email of the user.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "password", - "in": "query", - "description": "Password of the user.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "additional_fields", - "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). Additional fields are the custom fields declared for your tenant, you can find them in 'Settings >> Personal Details' for the account and in 'Settings >> Account >> Users >> Personal Details' for users. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" + "requestBody": { + "description": "User Create (provider account)", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "username": { + "type": "string", + "description": "Username of the user." + }, + "email":{ + "type": "string", + "description": "Email of the user." + }, + "password": { + "type": "string", + "description": "Password of the user." + }, + "additional_fields[]": { + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "type": "array", + "explode": false, + "items": { + "type": "string" + } + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } } } } - ], + }, "responses": { "default": { "description": "success", @@ -2528,62 +2614,63 @@ "Provider Users" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "id", - "in": "path", + "in": "query", "description": "ID of the user.", "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "username", - "in": "query", - "description": "Username of the user.", - "schema": { - "type": "string" - } - }, - { - "name": "email", - "in": "query", - "description": "Email of the user.", - "schema": { - "type": "string" - } - }, - { - "name": "password", - "in": "query", - "description": "Password of the user.", "schema": { "type": "string" } - }, - { - "name": "additional_fields", - "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). Additional fields are the custom fields declared for your tenant, you can find them in 'Settings >> Personal Details' for the account and in 'Settings >> Account >> Users >> Personal Details' for users. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" + } + ], + "requestBody": { + "description": "User Update (provider account)", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "username": { + "type": "string", + "description": "Username of the user." + }, + "email":{ + "type": "string", + "description": "Email of the user." + }, + "password": { + "type": "string", + "description": "Password of the user." + }, + "additional_fields[]": { + "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", + "type": "array", + "explode": false, + "items": { + "type": "string" + } + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } } } } - ], + }, "responses": { "default": { "description": "success", @@ -2631,59 +2718,95 @@ "Users" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "id", - "in": "path", + "in": "query", "description": "ID of the user.", "required": true, "schema": { - "type": "integer" + "type": "string" } } ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/users/{id}/admin.xml": { - "put": { - "summary": "User Change Role to Admin (provider account)", - "tags": [ - "Users" - ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" + "requestBody": { + "description": "User Activate (provider account)", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } } - }, + } + }, + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/users/{id}/admin.xml": { + "put": { + "summary": "User Change Role to Admin (provider account)", + "tags": [ + "Users" + ], + "parameters": [ { "name": "id", - "in": "path", + "in": "query", "description": "ID of the user.", "required": true, "schema": { - "type": "integer" + "type": "string" } } ], + "requestBody": { + "description": "User Change Role to Admin (provider account)", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -2699,25 +2822,43 @@ "Users" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "id", - "in": "path", + "in": "query", "description": "ID of the user.", "required": true, "schema": { - "type": "integer" + "type": "string" } } ], + "requestBody": { + "description": "User Change Role to Member (provider account)", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -2832,15 +2973,6 @@ "Users" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "id", "in": "path", @@ -2851,6 +2983,33 @@ } } ], + "requestBody": { + "description": "User Suspend (provider account)", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -2866,18 +3025,9 @@ "Users" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "id", - "in": "path", + "in": "query", "description": "ID of the user.", "required": true, "schema": { @@ -2885,6 +3035,33 @@ } } ], + "requestBody": { + "description": "User Unsuspend (provider account)", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -2906,70 +3083,73 @@ "description": "ID of the user.", "required": true, "schema": { - "type": "string" + "type": "integer" } - }, + } + ], + "requestBody": { + "description": "Access Token Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "name": { + "type": "string", + "description": "Name of the access token." + }, + "permission": { + "type": "string", + "description": "Permission of the access token. It must be either 'ro' (read only) or 'rw' (read and write)." + }, + "scopes[]": { + "type": "array", + "description": "Scope of the access token. URL-encoded array containing one or more of the possible values. The possible values are, for a master user [\"account_management\", \"stats\"], and for a tenant user [\"finance\", \"account_management\", \"stats\"]", + "items": { + "type": "string" + } + } + }, + "required": [ + "access_token", + "permission", + "name" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/account_plans.xml": { + "get": { + "summary": "Account Plan List", + "tags": [ + "Account Plans" + ], + "parameters": [ { - "name": "name", + "name": "access_token", "in": "query", - "description": "Name of the access token.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "permission", - "in": "query", - "description": "Permission of the access token. It must be either 'ro' (read only) or 'rw' (read and write).", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "scopes", - "in": "query", - "description": "Scope of the access token. URL-encoded array containing one or more of the possible values. The possible values are, for a master user [\"account_management\", \"stats\"], and for a tenant user [\"finance\", \"account_management\", \"stats\"]", - "required": true, - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - }, - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/account_plans.xml": { - "get": { - "summary": "Account Plan List", - "tags": [ - "Account Plans" - ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", + "description": "A personal Access Token", "required": true, "schema": { "type": "string" @@ -2988,50 +3168,50 @@ "tags": [ "Account Plans" ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the account plan.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "approval_required", - "in": "query", - "description": "Set the 'Accounts require approval?' to 'true' or 'false'", - "schema": { - "type": "boolean" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "schema": { - "type": "string" - } - }, - { - "name": "state_event", - "in": "query", - "description": "State event of the account plan. It can be 'publish' or 'hide'", - "schema": { - "type": "string" + "requestBody": { + "description": "Account Plan Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "name": { + "type": "string", + "description": "Name of the account plan." + }, + "approval_required": { + "type": "boolean", + "description": "Set the 'Accounts require approval?' to 'true' or 'false'" + }, + "system_name": { + "type": "string", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects." + }, + "state_event": { + "type": "string", + "description": "State event of the account plan. It can be 'publish' or 'hide'" + } + }, + "required": [ + "access_token", + "name" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } } } - ], + }, "responses": { "default": { "description": "success", @@ -3081,15 +3261,6 @@ "Account Plans" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "account_plan_id", "in": "path", @@ -3109,6 +3280,33 @@ } } ], + "requestBody": { + "description": "Account Plan Features Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -3197,15 +3395,6 @@ "Account Plans" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "id", "in": "path", @@ -3214,32 +3403,47 @@ "schema": { "type": "integer" } - }, - { - "name": "name", - "in": "query", - "description": "Name of the account plan.", - "schema": { - "type": "string" - } - }, - { - "name": "approval_required", - "in": "query", - "description": "Set the 'Accounts require approval?' to 'true' or 'false'", - "schema": { - "type": "boolean" - } - }, - { - "name": "state_event", - "in": "query", - "description": "State event of the account plan. It can be 'publish' or 'hide'", - "schema": { - "type": "string" - } } ], + "requestBody": { + "description": "Account Plan Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "name": { + "type": "string", + "description": "Name of the account plan." + }, + "approval_required": { + "type": "boolean", + "description": "Set the 'Accounts require approval?' to 'true' or 'false'" + }, + "state_event": { + "type": "string", + "description": "State event of the account plan. It can be 'publish' or 'hide'" + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -3287,15 +3491,6 @@ "Account Plans" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "id", "in": "path", @@ -3306,40 +3501,44 @@ } } ], + "requestBody": { + "description": "Account Plan set to Default", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", "content": {} } } - } - }, - "/admin/api/active_docs.json": { - "get": { - "summary": "ActiveDocs Spec List", - "tags": [ - "Active Docs" - ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "summary": "ActiveDocs Spec Create", + } + }, + "/admin/api/active_docs.json": { + "get": { + "summary": "ActiveDocs Spec List", "tags": [ "Active Docs" ], @@ -3352,64 +3551,6 @@ "schema": { "type": "string" } - }, - { - "name": "name", - "in": "query", - "description": "Name of the ActiveDocs spec", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the ActiveDocs spec. Only ASCII letters, numbers, dashes and underscores are allowed. If blank, 'system_name' will be generated from the 'name' parameter", - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "query", - "description": "Service ID of the ActiveDocs spec", - "schema": { - "type": "integer" - } - }, - { - "name": "body", - "in": "query", - "description": "ActiveDocs specification in JSON format (based on Swagger)", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the ActiveDocs spec", - "schema": { - "type": "string" - } - }, - { - "name": "published", - "in": "query", - "description": "Set to 'true' to publish the spec on the developer portal, or 'false' to hide it. The default value is 'false'", - "schema": { - "type": "boolean" - } - }, - { - "name": "skip_swagger_validations", - "in": "query", - "description": "Set to 'true' to skip validation of the Swagger specification, or 'false' to validate the spec. The default value is 'false'", - "schema": { - "type": "boolean" - } } ], "responses": { @@ -3418,6 +3559,75 @@ "content": {} } } + }, + "post": { + "summary": "ActiveDocs Spec Create", + "tags": [ + "Active Docs" + ], + "requestBody": { + "description": "ActiveDocs Spec Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "name": { + "type": "string", + "description": "Name of the account plan." + }, + "system_name": { + "type": "string", + "description": "System Name of the ActiveDocs spec. Only ASCII letters, numbers, dashes and underscores are allowed. If blank, 'system_name' will be generated from the 'name' parameter" + }, + "service_id": { + "type": "integer", + "description": "Service ID of the ActiveDocs spec" + }, + "body": { + "type": "string", + "description": "ActiveDocs specification in JSON format (based on Swagger)" + }, + "description": { + "type": "string", + "description": "Description of the ActiveDocs spec" + }, + "published": { + "type": "boolean", + "description": "Set to 'true' to publish the spec on the developer portal, or 'false' to hide it. The default value is 'false'" + }, + "skip_swagger_validations": { + "type": "boolean", + "description": "Set to 'true' to skip validation of the Swagger specification, or 'false' to validate the spec. The default value is 'false'" + } + }, + "required": [ + "access_token", + "name", + "body" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, + "responses": { + "default": { + "description": "success", + "content": {} + } + } } }, "/admin/api/active_docs/{id}.json": { @@ -3459,15 +3669,6 @@ "Active Docs" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "id", "in": "path", @@ -3476,56 +3677,59 @@ "schema": { "type": "integer" } - }, - { - "name": "name", - "in": "query", - "description": "Name of the ActiveDocs spec", - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "query", - "description": "Service ID of the ActiveDocs spec", - "schema": { - "type": "integer" - } - }, - { - "name": "body", - "in": "query", - "description": "ActiveDocs specification in JSON format (based on Swagger)", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the ActiveDocs spec", - "schema": { - "type": "string" - } - }, - { - "name": "published", - "in": "query", - "description": "Set to 'true' to publish the spec on the developer portal, or 'false' to hide it", - "schema": { - "type": "boolean" - } - }, - { - "name": "skip_swagger_validations", - "in": "query", - "description": "Set to 'true' to skip validation of the Swagger specification, or 'false' to validate the spec", - "schema": { - "type": "boolean" - } } ], + "requestBody": { + "description": "ActiveDocs Spec Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "name": { + "type": "string", + "description": "Name of the account plan." + }, + "service_id": { + "type": "integer", + "description": "Service ID of the ActiveDocs spec" + }, + "body": { + "type": "string", + "description": "ActiveDocs specification in JSON format (based on Swagger)" + }, + "description": { + "type": "string", + "description": "Description of the ActiveDocs spec" + }, + "published": { + "type": "boolean", + "description": "Set to 'true' to publish the spec on the developer portal, or 'false' to hide it. The default value is 'false'" + }, + "skip_swagger_validations": { + "type": "boolean", + "description": "Set to 'true' to skip validation of the Swagger specification, or 'false' to validate the spec. The default value is 'false'" + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -3630,15 +3834,6 @@ "Application Plans" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "application_plan_id", "in": "path", @@ -3647,28 +3842,51 @@ "schema": { "type": "integer" } - }, - { - "name": "feature_id", - "in": "query", - "description": "ID of the feature.", - "required": true, - "schema": { - "type": "integer" - } } ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/application_plans/{application_plan_id}/features/{id}.xml": { - "delete": { - "summary": "Application Plan Feature Delete", + "requestBody": { + "description": "Application Plan Feature Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "feature_id": { + "type": "integer", + "description": "ID of the feature." + } + }, + "required": [ + "access_token", + "feature_id" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/application_plans/{application_plan_id}/features/{id}.xml": { + "delete": { + "summary": "Application Plan Feature Delete", "tags": [ "Application Plans" ], @@ -3809,15 +4027,6 @@ "Application Plans" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "application_plan_id", "in": "path", @@ -3835,36 +4044,55 @@ "schema": { "type": "integer" } - }, - { - "name": "period", - "in": "query", - "description": "Period of the limit.", - "required": true, - "schema": { - "type": "string", - "default": "minute", - "enum": [ - "eternity", - "year", - "month", - "week", - "day", - "hour", - "minute" - ] - } - }, - { - "name": "value", - "in": "query", - "description": "Value of the limit.", - "required": true, - "schema": { - "type": "integer" - } } ], + "requestBody": { + "description": "Limit Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "value": { + "type": "integer", + "description": "Value of the limit." + }, + "period": { + "type": "string", + "description": "Period of the limit.", + "default": "minute", + "enum": [ + "eternity", + "year", + "month", + "week", + "day", + "hour", + "minute" + ] + } + }, + "required": [ + "access_token", + "period", + "value" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -3930,15 +4158,6 @@ "Application Plans" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "application_plan_id", "in": "path", @@ -3965,35 +4184,55 @@ "schema": { "type": "integer" } - }, - { - "name": "period", - "in": "query", - "description": "Period of the limit.", - "required": true, - "schema": { - "type": "string", - "default": "minute", - "enum": [ - "eternity", - "year", - "month", - "week", - "day", - "hour", - "minute" - ] - } - }, - { - "name": "value", - "in": "query", - "description": "Value of the limit.", - "schema": { - "type": "integer" - } } ], + "requestBody": { + "description": "Limit Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "value": { + "type": "integer", + "description": "Value of the limit." + }, + "period": { + "type": "string", + "description": "Period of the limit.", + "default": "minute", + "enum": [ + "eternity", + "year", + "month", + "week", + "day", + "hour", + "minute" + ] + } + }, + "required": [ + "access_token", + "period", + "value" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -4100,15 +4339,6 @@ "Application Plans" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "application_plan_id", "in": "path", @@ -4126,33 +4356,48 @@ "schema": { "type": "integer" } - }, - { - "name": "min", - "in": "query", - "description": "From (min) hit", - "schema": { - "type": "integer" - } - }, - { - "name": "max", - "in": "query", - "description": "To (max) hit", - "schema": { - "type": "integer" - } - }, - { - "name": "cost_per_unit", - "in": "query", - "description": "Cost per unit", - "schema": { - "type": "number", - "format": "float" - } } ], + "requestBody": { + "description": "Pricing Rule Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "min": { + "type": "integer", + "description": "From (min) hit" + }, + "max": { + "type": "integer", + "description": "To (max) hit" + }, + "cost_per_unit": { + "type": "number", + "format": "float", + "description": "Cost per unit" + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -4286,15 +4531,6 @@ "Application Plans" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "service_id", "in": "path", @@ -4303,71 +4539,66 @@ "schema": { "type": "integer" } - }, - { - "name": "name", - "in": "query", - "description": "Name of the application plan.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "approval_required", - "in": "query", - "description": "Set the 'Applications require approval?' to 'true' or 'false'", - "schema": { - "type": "boolean" - } - }, - { - "name": "cost_per_month", - "in": "query", - "description": "Cost per month", - "schema": { - "type": "number", - "format": "float" - } - }, - { - "name": "setup_fee", - "in": "query", - "description": "Setup fee", - "schema": { - "type": "number", - "format": "float" - } - }, - { - "name": "trial_period_days", - "in": "query", - "description": "Trial period days", - "schema": { - "type": "integer" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "schema": { - "type": "string" - } - }, - { - "name": "state_event", - "in": "query", - "description": "State event of the application plan. It can be 'publish' or 'hide'", - "schema": { - "type": "string", - "enum": [ - "publish", - "hide" - ] - } } ], + "requestBody": { + "description": "Application Plan Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "name": { + "type": "string", + "description": "Name of the application plan." + }, + "approval_required": { + "type": "boolean", + "description": "Set the 'Applications require approval?' to 'true' or 'false'" + }, + "cost_per_month": { + "type": "number", + "format": "float", + "description": "Cost per month" + }, + "setup_fee": { + "type": "number", + "format": "float", + "description": "Setup fee" + }, + "trial_period_days": { + "type": "integer", + "description": "Trial period days" + }, + "state_event": { + "type": "string", + "description": "State event of the application plan. It can be 'publish' or 'hide'", + "enum": [ + "publish", + "hide" + ] + } + }, + "required": [ + "access_token", + "name" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -4424,15 +4655,6 @@ "Application Plans" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "service_id", "in": "path", @@ -4450,58 +4672,65 @@ "schema": { "type": "integer" } - }, - { - "name": "name", - "in": "query", - "description": "Name of the application plan.", - "schema": { - "type": "string" - } - }, - { - "name": "approval_required", - "in": "query", - "description": "Set the 'Applications require approval?' to 'true' or 'false'", - "schema": { - "type": "boolean" - } - }, - { - "name": "cost_per_month", - "in": "query", - "description": "Cost per month", - "schema": { - "type": "number", - "format": "float" - } - }, - { - "name": "setup_fee", - "in": "query", - "description": "Setup fee", - "schema": { - "type": "number", - "format": "float" - } - }, - { - "name": "trial_period_days", - "in": "query", - "description": "Trial period days", - "schema": { - "type": "integer" - } - }, - { - "name": "state_event", - "in": "query", - "description": "State event of the application plan. It can be 'publish' or 'hide'", - "schema": { - "type": "string" - } } ], + "requestBody": { + "description": "Application Plan Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "name": { + "type": "string", + "description": "Name of the application plan." + }, + "approval_required": { + "type": "boolean", + "description": "Set the 'Applications require approval?' to 'true' or 'false'" + }, + "cost_per_month": { + "type": "number", + "format": "float", + "description": "Cost per month" + }, + "setup_fee": { + "type": "number", + "format": "float", + "description": "Setup fee" + }, + "trial_period_days": { + "type": "integer", + "description": "Trial period days" + }, + "state_event": { + "type": "string", + "description": "State event of the application plan. It can be 'publish' or 'hide'", + "enum": [ + "publish", + "hide" + ] + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -4558,15 +4787,6 @@ "Application Plans" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "service_id", "in": "path", @@ -4586,6 +4806,33 @@ } } ], + "requestBody": { + "description": "Application Plan Set to Default", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -4767,6 +5014,80 @@ "tags": [ "Admin Portal Authentication Providers" ], + "requestBody": { + "description": "Authentication Provider Admin Portal Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "kind": { + "type": "string", + "description": "The kind of authentication provider which can be either 'auth0' or 'keycloak'. Use 'keycloak' for Red Hat Single Sign-On." + }, + "name": { + "type": "string", + "description": "Name of the authentication provider." + }, + "system_name": { + "type": "string", + "description": "System Name of the authentication provider." + }, + "client_id": { + "type": "string", + "description": "Client ID of the authentication provider." + }, + "client_secret": { + "type": "string", + "description": "Client Secret of the authentication provider." + }, + "site": { + "type": "string", + "description": "Site o Realm of the authentication provider." + }, + "skip_ssl_certificate_verification": { + "type": "boolean", + "description": "Skip SSL certificate verification. False by default." + }, + "published": { + "type": "boolean", + "description": "Published authentication provider. False by default" + } + }, + "required": [ + "access_token", + "kind" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/account/authentication_providers/{id}.xml": { + "get": { + "summary": "Authentication Provider Admin Portal Read", + "tags": [ + "Admin Portal Authentication Providers" + ], "parameters": [ { "name": "access_token", @@ -4778,177 +5099,85 @@ } }, { - "name": "kind", - "in": "query", - "description": "The kind of authentication provider which can be either 'auth0' or 'keycloak'. Use 'keycloak' for Red Hat Single Sign-On.", + "name": "id", + "in": "path", + "description": "ID of the authentication provider.", "required": true, "schema": { "type": "string" } - }, - { - "name": "name", - "in": "query", - "description": "Name of the authentication provider.", - "schema": { - "type": "string" - } - }, + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Authentication Provider Admin Portal Update", + "tags": [ + "Admin Portal Authentication Providers" + ], + "parameters": [ { - "name": "system_name", - "in": "query", - "description": "System Name of the authentication provider.", + "name": "id", + "in": "path", + "description": "ID of the authentication provider.", + "required": true, "schema": { "type": "string" } - }, - { - "name": "client_id", - "in": "query", - "description": "Client ID of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "client_secret", - "in": "query", - "description": "Client Secret of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "site", - "in": "query", - "description": "Site o Realm of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "skip_ssl_certificate_verification", - "in": "query", - "description": "Skip SSL certificate verification. False by default.", - "schema": { - "type": "boolean" - } - }, - { - "name": "published", - "in": "query", - "description": "Published authentication provider. False by default", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/account/authentication_providers/{id}.xml": { - "get": { - "summary": "Authentication Provider Admin Portal Read", - "tags": [ - "Admin Portal Authentication Providers" - ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the authentication provider.", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} } - } - }, - "put": { - "summary": "Authentication Provider Admin Portal Update", - "tags": [ - "Admin Portal Authentication Providers" ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the authentication provider.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "client_id", - "in": "query", - "description": "Client ID of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "client_secret", - "in": "query", - "description": "Client Secret of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "site", - "in": "query", - "description": "Site o Realm of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "skip_ssl_certificate_verification", - "in": "query", - "description": "Skip SSL certificate verification. False by default.", - "schema": { - "type": "boolean" - } - }, - { - "name": "published", - "in": "query", - "description": "Published authentication provider. False by default", - "schema": { - "type": "boolean" + "requestBody": { + "description": "Authentication Provider Admin Portal Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "client_id": { + "type": "string", + "description": "Client ID of the authentication provider." + }, + "client_secret": { + "type": "string", + "description": "Client Secret of the authentication provider." + }, + "site": { + "type": "string", + "description": "Site o Realm of the authentication provider." + }, + "skip_ssl_certificate_verification": { + "type": "boolean", + "description": "Skip SSL certificate verification. False by default." + }, + "published": { + "type": "boolean", + "description": "Published authentication provider. False by default" + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } } } - ], + }, "responses": { "default": { "description": "success", @@ -4986,146 +5215,98 @@ "tags": [ "Developer Portal Authentication Providers" ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "kind", - "in": "query", - "description": "The kind of authentication provider which can be either 'github', 'auth0', 'keycloak' or a custom one. Use 'keycloak' for Red Hat Single Sign-On.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "client_id", - "in": "query", - "description": "Client ID of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "client_secret", - "in": "query", - "description": "Client Secret of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "site", - "in": "query", - "description": "Site o Realm of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "token_url", - "in": "query", - "description": "Token URL of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "user_info_url", - "in": "query", - "description": "User info URL of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "authorize_url", - "in": "query", - "description": "Authorize URL of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "identifier_key", - "in": "query", - "description": "Identifier key. 'id' by default.", - "schema": { - "type": "string" - } - }, - { - "name": "username_key", - "in": "query", - "description": "Username key. 'login' by default.", - "schema": { - "type": "string" - } - }, - { - "name": "trust_email", - "in": "query", - "description": "Trust emails automatically. False by default", - "schema": { - "type": "boolean" - } - }, - { - "name": "published", - "in": "query", - "description": "Published authentication provider. False by default", - "schema": { - "type": "boolean" - } - }, - { - "name": "branding_state_event", - "in": "query", - "description": "Branding state event of the authentication provider. Only available for Github. It can be either 'brand_as_threescale' (the default one) or 'custom_brand'", - "schema": { - "type": "string" - } - }, - { - "name": "skip_ssl_certificate_verification", - "in": "query", - "description": "Skip SSL certificate verification. False by default.", - "schema": { - "type": "boolean" - } - }, - { - "name": "automatically_approve_accounts", - "in": "query", - "description": "Automatically approve accounts. False by default.", - "schema": { - "type": "boolean" + "requestBody": { + "description": "Authentication Provider Developer Portal Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "kind": { + "type": "string", + "description": "The kind of authentication provider which can be either 'github', 'auth0', 'keycloak' or a custom one. Use 'keycloak' for Red Hat Single Sign-On." + }, + "name": { + "type": "string", + "description": "Name of the authentication provider." + }, + "system_name": { + "type": "string", + "description": "System Name of the authentication provider." + }, + "client_id": { + "type": "string", + "description": "Client ID of the authentication provider." + }, + "client_secret": { + "type": "string", + "description": "Client Secret of the authentication provider." + }, + "site": { + "type": "string", + "description": "Site o Realm of the authentication provider." + }, + "token_url": { + "type": "string", + "description": "Token URL of the authentication provider." + }, + "user_info_url": { + "type": "string", + "description": "User info URL of the authentication provider." + }, + "authorize_url": { + "type": "string", + "description": "Authorize URL of the authentication provider." + }, + "identifier_key": { + "type": "string", + "description": "Identifier key. 'id' by default." + }, + "username_key": { + "type": "string", + "description": "Username key. 'login' by default." + }, + "trust_email": { + "type": "boolean", + "description": "Trust emails automatically. False by default" + }, + "published": { + "type": "boolean", + "description": "Published authentication provider. False by default" + }, + "branding_state_event": { + "type": "string", + "description": "Branding state event of the authentication provider. Only available for Github. It can be either 'brand_as_threescale' (the default one) or 'custom_brand'" + }, + "skip_ssl_certificate_verification": { + "type": "boolean", + "description": "Skip SSL certificate verification. False by default." + }, + "automatically_approve_accounts": { + "type": "boolean", + "description": "Automatically approve accounts. False by default." + } + }, + "required": [ + "access_token", + "kind" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } } } - ], + }, "responses": { "default": { "description": "success", @@ -5173,15 +5354,6 @@ "Developer Portal Authentication Providers" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "id", "in": "path", @@ -5190,56 +5362,59 @@ "schema": { "type": "string" } - }, - { - "name": "client_id", - "in": "query", - "description": "Client ID of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "client_secret", - "in": "query", - "description": "Client Secret of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "site", - "in": "query", - "description": "Site o Realm of the authentication provider.", - "schema": { - "type": "string" - } - }, - { - "name": "published", - "in": "query", - "description": "Published authentication provider. False by default", - "schema": { - "type": "boolean" - } - }, - { - "name": "skip_ssl_certificate_verification", - "in": "query", - "description": "Skip SSL certificate verification. False by default.", - "schema": { - "type": "boolean" - } - }, - { - "name": "automatically_approve_accounts", - "in": "query", - "description": "Automatically approve accounts. False by default.", - "schema": { - "type": "boolean" - } } ], + "requestBody": { + "description": "Authentication Provider Developer Portal Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "client_id": { + "type": "string", + "description": "Client ID of the authentication provider." + }, + "client_secret": { + "type": "string", + "description": "Client Secret of the authentication provider." + }, + "site": { + "type": "string", + "description": "Site o Realm of the authentication provider." + }, + "published": { + "type": "boolean", + "description": "Published authentication provider. False by default" + }, + "skip_ssl_certificate_verification": { + "type": "boolean", + "description": "Skip SSL certificate verification. False by default." + }, + "automatically_approve_accounts": { + "type": "boolean", + "description": "Automatically approve accounts. False by default." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -5295,51 +5470,51 @@ "tags": [ "Backend APIs" ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the Backend", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the Backend", - "schema": { - "type": "string" - } - }, - { - "name": "private_endpoint", - "in": "query", - "description": "Private Base URL (your API)", - "required": true, - "schema": { - "type": "string" + "requestBody": { + "description": "Backend Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "name": { + "type": "string", + "description": "Name of the Backend" + }, + "system_name": { + "type": "string", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects." + }, + "description": { + "type": "string", + "description": "Description of the Backend" + }, + "private_endpoint": { + "type": "string", + "description": "Private Base URL (your API)" + } + }, + "required": [ + "access_token", + "name", + "private_endpoint" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } } } - ], + }, "responses": { "default": { "description": "success", @@ -5387,15 +5562,6 @@ "Backend APIs" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "id", "in": "path", @@ -5404,32 +5570,51 @@ "schema": { "type": "integer" } - }, - { - "name": "name", - "in": "query", - "description": "Name of the Backend", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the Backend", - "schema": { - "type": "string" - } - }, - { - "name": "private_endpoint", - "in": "query", - "description": "Private Base URL (your API)", - "schema": { - "type": "string" - } } ], + "requestBody": { + "description": "Backend Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "name": { + "type": "string", + "description": "Name of the Backend" + }, + "system_name": { + "type": "string", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects." + }, + "description": { + "type": "string", + "description": "Description of the Backend" + }, + "private_endpoint": { + "type": "string", + "description": "Private Base URL (your API)" + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", From 0df1c2415017d713a1b65f91820645aa1d1b7dfa Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Mon, 27 Feb 2023 13:14:58 +0530 Subject: [PATCH 38/85] THREESCALE-3927 covnverted API parameters passsing to new correct format --- doc/active_docs/Account Management API.json | 2640 ++++++++++--------- 1 file changed, 1349 insertions(+), 1291 deletions(-) diff --git a/doc/active_docs/Account Management API.json b/doc/active_docs/Account Management API.json index bc24514a3a..10c7d9713c 100644 --- a/doc/active_docs/Account Management API.json +++ b/doc/active_docs/Account Management API.json @@ -5712,15 +5712,6 @@ "Backend APIs" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "backend_api_id", "in": "path", @@ -5729,60 +5720,63 @@ "schema": { "type": "integer" } - }, - { - "name": "http_method", - "in": "query", - "description": "HTTP method.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "pattern", - "in": "query", - "description": "Mapping Rule pattern.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "delta", - "in": "query", - "description": "Increase the metric by this delta.", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "metric_id", - "in": "query", - "description": "Metric ID.", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "position", - "in": "query", - "description": "Mapping Rule position", - "schema": { - "type": "integer" - } - }, - { - "name": "last", - "in": "query", - "description": "Last matched Mapping Rule to process", - "schema": { - "type": "boolean" - } } ], + "requestBody": { + "description": "Backend Mapping Rule Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "http_method": { + "type": "string", + "description": "HTTP method." + }, + "pattern": { + "type": "string", + "description": "Mapping Rule pattern." + }, + "delta": { + "type": "integer", + "description": "Increase the metric by this delta." + }, + "metric_id": { + "type": "integer", + "description": "Metric ID." + }, + "position": { + "type": "integer", + "description": "Mapping Rule position" + }, + "last": { + "type": "boolean", + "description": "Last matched Mapping Rule to process" + } + }, + "required": [ + "access_token", + "http_method", + "pattern", + "delta", + "metric_id" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -5839,15 +5833,6 @@ "Backend APIs" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "backend_api_id", "in": "path", @@ -5865,56 +5850,59 @@ "schema": { "type": "integer" } - }, - { - "name": "http_method", - "in": "query", - "description": "HTTP method.", - "schema": { - "type": "string" - } - }, - { - "name": "pattern", - "in": "query", - "description": "Mapping Rule pattern.", - "schema": { - "type": "string" - } - }, - { - "name": "delta", - "in": "query", - "description": "Increase the metric by this delta.", - "schema": { - "type": "integer" - } - }, - { - "name": "metric_id", - "in": "query", - "description": "Metric ID.", - "schema": { - "type": "integer" - } - }, - { - "name": "position", - "in": "query", - "description": "Mapping Rule position", - "schema": { - "type": "integer" - } - }, - { - "name": "last", - "in": "query", - "description": "Last matched Mapping Rule to process", - "schema": { - "type": "boolean" - } } ], + "requestBody": { + "description": "Backend Mapping Rule Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "http_method": { + "type": "string", + "description": "HTTP method." + }, + "pattern": { + "type": "string", + "description": "Mapping Rule pattern." + }, + "delta": { + "type": "integer", + "description": "Increase the metric by this delta." + }, + "metric_id": { + "type": "integer", + "description": "Metric ID." + }, + "position": { + "type": "integer", + "description": "Mapping Rule position" + }, + "last": { + "type": "boolean", + "description": "Last matched Mapping Rule to process" + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -6017,74 +6005,76 @@ }, "post": { "summary": "Backend Metric Create", - "tags": [ - "Backend APIs" - ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "backend_api_id", - "in": "path", - "description": "ID of the Backend.", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "friendly_name", - "in": "query", - "description": "Descriptive Name of the metric.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the metric. If blank a system_name will be generated for you from the friendly_name parameter", - "schema": { - "type": "string" - } - }, - { - "name": "unit", - "in": "query", - "description": "Measure unit of the metric.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the metric.", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/backend_apis/{backend_api_id}/metrics/{id}.json": { - "get": { - "summary": "Backend Metric Read", + "tags": [ + "Backend APIs" + ], + "parameters": [ + { + "name": "backend_api_id", + "in": "path", + "description": "ID of the Backend.", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "description": "Backend Metric Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "friendly_name": { + "type": "string", + "description": "Descriptive Name of the metric." + }, + "system_name": { + "type": "string", + "description": "System Name of the metric. If blank a system_name will be generated for you from the friendly_name parameter." + }, + "unit": { + "type": "string", + "description": "Measure unit of the metric." + }, + "description": { + "type": "string", + "description": "Description of the metric." + } + }, + "required": [ + "access_token", + "unit", + "friendly_name" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/backend_apis/{backend_api_id}/metrics/{id}.json": { + "get": { + "summary": "Backend Metric Read", "tags": [ "Backend APIs" ], @@ -6130,15 +6120,6 @@ "Backend APIs" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "backend_api_id", "in": "path", @@ -6156,32 +6137,47 @@ "schema": { "type": "integer" } - }, - { - "name": "friendly_name", - "in": "query", - "description": "Name of the metric.", - "schema": { - "type": "string" - } - }, - { - "name": "unit", - "in": "query", - "description": "Measure unit of the metric.", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the metric.", - "schema": { - "type": "string" - } } ], + "requestBody": { + "description": "Backend Metric Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "friendly_name": { + "type": "string", + "description": "Descriptive Name of the metric." + }, + "unit": { + "type": "string", + "description": "Measure unit of the metric." + }, + "description": { + "type": "string", + "description": "Description of the metric." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -6297,15 +6293,6 @@ "Backend APIs" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "backend_api_id", "in": "path", @@ -6323,42 +6310,53 @@ "schema": { "type": "integer" } - }, - { - "name": "friendly_name", - "in": "query", - "description": "Descriptive Name of the metric.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the metric. If blank a system_name will be generated for you from the friendly_name parameter", - "schema": { - "type": "string" - } - }, - { - "name": "unit", - "in": "query", - "description": "Measure unit of the metric.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the metric.", - "schema": { - "type": "string" - } } ], + "requestBody": { + "description": "Backend Method Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "friendly_name": { + "type": "string", + "description": "Descriptive Name of the metric." + }, + "system_name": { + "type": "string", + "description": "System Name of the metric. If blank a system_name will be generated for you from the friendly_name parameter." + }, + "unit": { + "type": "string", + "description": "Measure unit of the metric." + }, + "description": { + "type": "string", + "description": "Description of the metric." + } + }, + "required": [ + "access_token", + "friendly_name", + "unit" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -6424,15 +6422,6 @@ "Backend APIs" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "backend_api_id", "in": "path", @@ -6459,32 +6448,47 @@ "schema": { "type": "integer" } - }, - { - "name": "friendly_name", - "in": "query", - "description": "Name of the method.", - "schema": { - "type": "string" - } - }, - { - "name": "unit", - "in": "query", - "description": "Measure unit of the method.", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the method.", - "schema": { - "type": "string" - } } ], + "requestBody": { + "description": "Backend Method Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "friendly_name": { + "type": "string", + "description": "Descriptive Name of the metric." + }, + "unit": { + "type": "string", + "description": "Measure unit of the metric." + }, + "description": { + "type": "string", + "description": "Description of the metric." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -6582,15 +6586,6 @@ "Backends" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "service_id", "in": "path", @@ -6599,25 +6594,44 @@ "schema": { "type": "integer" } - }, - { - "name": "backend_api_id", - "in": "query", - "description": "Backend to be added to the Service (Product).", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "path", - "in": "query", - "description": "Path of the Backend for this product.", - "schema": { - "type": "integer" - } } ], + "requestBody": { + "description": "Backend Usage Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "backend_api_id": { + "type": "string", + "description": "Backend to be added to the Service (Product)." + }, + "path": { + "type": "integer", + "description": "Path of the Backend for this product." + } + }, + "required": [ + "access_token", + "backend_api_id" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -6674,15 +6688,6 @@ "Backends" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "service_id", "in": "path", @@ -6700,16 +6705,39 @@ "schema": { "type": "integer" } - }, - { - "name": "path", - "in": "query", - "description": "Path of the Backend for this product.", - "schema": { - "type": "integer" - } } ], + "requestBody": { + "description": "Backend Usage Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "path": { + "type": "integer", + "description": "Path of the Backend for this product." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -6788,34 +6816,42 @@ "tags": [ "Account Features" ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "name", - "in": "query", - "description": "Name of the feature.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "schema": { - "type": "string" + "requestBody": { + "description": "Account Feature Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "name": { + "type": "string", + "description": "Name of the feature." + }, + "system_name": { + "type": "string", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects." + } + }, + "required": [ + "access_token", + "name" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } } } - ], + }, "responses": { "default": { "description": "success", @@ -6863,15 +6899,6 @@ "Account Features" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "id", "in": "path", @@ -6880,17 +6907,40 @@ "schema": { "type": "integer" } - }, - { - "name": "name", - "in": "query", - "description": "Name of the feature.", - "required": true, - "schema": { - "type": "string" - } } ], + "requestBody": { + "description": "Account Feature Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "name": { + "type": "string", + "description": "Name of the feature." + } + }, + "required": [ + "access_token", + "name" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -7268,71 +7318,73 @@ "tags": [ "Access Tokens" ], + "requestBody": { + "description": "Personal Access Token Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "name": { + "type": "string", + "description": "Name of the access token." + }, + "permission": { + "type": "string", + "description": "Permission of the access token. It must be either 'ro' (read only) or 'rw' (read and write)." + }, + "scopes[]": { + "type": "array", + "description": "Scope of the access token. URL-encoded array containing one or more of the possible values. The possible values are, for a master user [\"account_management\", \"stats\", \"policy_registry\"], and for a tenant user [\"finance\", \"account_management\", \"stats\", \"policy_registry\"]", + "items": { + "type": "string" + } + } + }, + "required": [ + "access_token", + "name", + "permission", + "scopes" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/personal/access_tokens/{id}.json": { + "get": { + "summary": "Personal Access Token Read", + "tags": [ + "Access Tokens" + ], "parameters": [ { - "name": "name", - "in": "query", - "description": "Name of the access token.", + "name": "id", + "in": "path", + "description": "ID or value of the access token.", "required": true, "schema": { - "type": "string" - } - }, - { - "name": "permission", - "in": "query", - "description": "Permission of the access token. It must be either 'ro' (read only) or 'rw' (read and write).", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "scopes", - "in": "query", - "description": "Scope of the access token. URL-encoded array containing one or more of the possible values. The possible values are, for a master user [\"account_management\", \"stats\", \"policy_registry\"], and for a tenant user [\"finance\", \"account_management\", \"stats\", \"policy_registry\"]", - "required": true, - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - }, - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/personal/access_tokens/{id}.json": { - "get": { - "summary": "Personal Access Token Read", - "tags": [ - "Access Tokens" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "description": "ID or value of the access token.", - "required": true, - "schema": { - "type": "integer" + "type": "integer" } }, { @@ -7439,49 +7491,49 @@ "tags": [ "Provider Account" ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "from_email", - "in": "query", - "description": "New outgoing email.", - "schema": { - "type": "string" - } - }, - { - "name": "support_email", - "in": "query", - "description": "New support email.", - "schema": { - "type": "string" - } - }, - { - "name": "finance_support_email", - "in": "query", - "description": "New finance support email.", - "schema": { - "type": "string" - } - }, - { - "name": "site_access_code", - "in": "query", - "description": "Developer Portal Access Code.", - "schema": { - "type": "string" + "requestBody": { + "description": "Provider Account Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "from_email": { + "type": "string", + "description": "New outgoing email." + }, + "support_email": { + "type": "string", + "description": "New support email." + }, + "finance_support_email": { + "type": "string", + "description": "New finance support email." + }, + "site_access_code": { + "type": "string", + "description": "Developer Portal Access Code." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } } } - ], + }, "responses": { "default": { "description": "success", @@ -7554,15 +7606,6 @@ "Service Plans" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "service_plan_id", "in": "path", @@ -7571,17 +7614,40 @@ "schema": { "type": "integer" } - }, - { - "name": "feature_id", - "in": "query", - "description": "ID of the feature.", - "required": true, - "schema": { - "type": "integer" - } } ], + "requestBody": { + "description": "Service Plan Feature Add", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "feature_id": { + "type": "integer", + "description": "ID of the feature." + } + }, + "required": [ + "access_token", + "feature_id" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -7680,6 +7746,76 @@ "tags": [ "Services" ], + "requestBody": { + "description": "Service Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "name": { + "type": "string", + "description": "Name of the service to be created." + }, + "description": { + "type": "string", + "description": "Description of the service to be created." + }, + "deployment_option": { + "type": "string", + "description": "Deployment option for the gateway: 'hosted' for APIcast hosted, 'self_managed' for APIcast Self-managed, 'service_mesh_istio' for Istio service mesh option" + }, + "backend_version": { + "type": "string", + "description": "Authentication mode: '1' for API key, '2' for App Id / App Key, 'oidc' for OpenID Connect" + }, + "system_name": { + "type": "string", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects." + }, + " ": { + "type": "array", + "description": "Extra parameters", + "explode": false, + "items": { + "type": "object" + } + } + }, + "required": [ + "access_token", + "name" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{id}.xml": { + "get": { + "summary": "Service Read", + "tags": [ + "Services" + ], "parameters": [ { "name": "access_token", @@ -7691,112 +7827,33 @@ } }, { - "name": "name", - "in": "query", - "description": "Name of the service to be created.", + "name": "id", + "in": "path", + "description": "ID of the service.", "required": true, "schema": { - "type": "string" + "type": "integer" } - }, + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Service Update", + "tags": [ + "Services" + ], + "parameters": [ { - "name": "description", + "name": "access_token", "in": "query", - "description": "Description of the service to be created.", - "schema": { - "type": "string" - } - }, - { - "name": "deployment_option", - "in": "query", - "description": "Deployment option for the gateway: 'hosted' for APIcast hosted, 'self_managed' for APIcast Self-managed, 'service_mesh_istio' for Istio service mesh option", - "schema": { - "type": "string" - } - }, - { - "name": "backend_version", - "in": "query", - "description": "Authentication mode: '1' for API key, '2' for App Id / App Key, 'oidc' for OpenID Connect", - "schema": { - "type": "string" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "schema": { - "type": "string" - } - }, - { - "name": " ", - "in": "query", - "description": "Extra parameters", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{id}.xml": { - "get": { - "summary": "Service Read", - "tags": [ - "Services" - ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Service Update", - "tags": [ - "Services" - ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, + "description": "A personal Access Token", + "required": true, "schema": { "type": "string" } @@ -7943,15 +8000,6 @@ "Service Plans" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "id", "in": "path", @@ -7960,41 +8008,52 @@ "schema": { "type": "integer" } - }, - { - "name": "name", - "in": "query", - "description": "Name of the service plan.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "approval_required", - "in": "query", - "description": "Set the 'Service subscriptions require approval?' to 'true' or 'false'", - "schema": { - "type": "boolean" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "schema": { - "type": "string" - } - }, - { - "name": "state_event", - "in": "query", - "description": "State event of the service plan. It can be 'publish' or 'hide'", - "schema": { - "type": "string" - } } ], + "requestBody": { + "description": "Service Plan Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "name": { + "type": "string", + "description": "Name of the service plan." + }, + "approval_required": { + "type": "boolean", + "description": "Set the 'Service subscriptions require approval?' to 'true' or 'false'" + }, + "system_name": { + "type": "string", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects." + }, + "state_event":{ + "type": "string", + "description": "State event of the service plan. It can be 'publish' or 'hide'" + } + }, + "required": [ + "access_token", + "name" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -8042,15 +8101,6 @@ "Services" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "service_id", "in": "path", @@ -8059,50 +8109,57 @@ "schema": { "type": "integer" } - }, - { - "name": "friendly_name", - "in": "query", - "description": "Descriptive Name of the metric.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "system_name", - "in": "query", - "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", - "schema": { - "type": "string" - } - }, - { - "name": "name", - "in": "query", - "description": "DEPRECATED: Please use system_name parameter", - "schema": { - "type": "string" - } - }, - { - "name": "unit", - "in": "query", - "description": "Measure unit of the metric.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the metric.", - "schema": { - "type": "string" - } } ], + "requestBody": { + "description": "Service Metric Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "friendly_name": { + "type": "string", + "description": "Descriptive Name of the metric." + }, + "system_name": { + "type": "string", + "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" + }, + "name": { + "type": "string", + "description": "DEPRECATED: Please use system_name parameter" + }, + "unit": { + "type": "string", + "description": "Measure unit of the metric." + }, + "description": { + "type": "string", + "description": "Description of the metric." + } + }, + "required": [ + "access_token", + "friendly_name", + "unit" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -8160,12 +8217,12 @@ ], "parameters": [ { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", + "name": "id", + "in": "path", + "description": "ID of the metric.", "required": true, "schema": { - "type": "string" + "type": "integer" } }, { @@ -8176,41 +8233,47 @@ "schema": { "type": "integer" } - }, - { - "name": "id", - "in": "path", - "description": "ID of the metric.", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "friendly_name", - "in": "query", - "description": "Name of the metric.", - "schema": { - "type": "string" - } - }, - { - "name": "unit", - "in": "query", - "description": "Measure unit of the metric.", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the metric.", - "schema": { - "type": "string" - } } ], + "requestBody": { + "description": "Service Metric Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "friendly_name": { + "type": "string", + "description": "Descriptive Name of the metric." + }, + "unit": { + "type": "string", + "description": "Measure unit of the metric." + }, + "description": { + "type": "string", + "description": "Description of the metric." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -8308,24 +8371,6 @@ "Services" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer" - } - }, { "name": "metric_id", "in": "path", @@ -8336,40 +8381,60 @@ } }, { - "name": "friendly_name", - "in": "query", - "description": "Name of the method.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "system_name", - "in": "query", - "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", - "schema": { - "type": "string" - } - }, - { - "name": "unit", - "in": "query", - "description": "Measure unit of the method.", + "name": "service_id", + "in": "path", + "description": "ID of the service.", "required": true, "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the method.", - "schema": { - "type": "string" + "type": "integer" } } ], + "requestBody": { + "description": "Service Method Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "friendly_name": { + "type": "string", + "description": "Name of the method." + }, + "system_name": { + "type": "string", + "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" + }, + "unit": { + "type": "string", + "description": "Measure unit of the method." + }, + "description": { + "type": "string", + "description": "Description of the method." + } + }, + "required": [ + "access_token", + "friendly_name", + "unit" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -8435,15 +8500,6 @@ "Services" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "service_id", "in": "path", @@ -8470,32 +8526,47 @@ "schema": { "type": "integer" } - }, - { - "name": "friendly_name", - "in": "query", - "description": "Name of the method.", - "schema": { - "type": "string" - } - }, - { - "name": "unit", - "in": "query", - "description": "Measure unit of the method.", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the method.", - "schema": { - "type": "string" - } } ], + "requestBody": { + "description": "Service Method Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "friendly_name": { + "type": "string", + "description": "Name of the method." + }, + "unit": { + "type": "string", + "description": "Measure unit of the metric." + }, + "description": { + "type": "string", + "description": "Description of the metric." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -8861,15 +8932,6 @@ "Gateway" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "service_id", "in": "path", @@ -8880,6 +8942,33 @@ } } ], + "requestBody": { + "description": "Proxy Deploy", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -8927,15 +9016,6 @@ "Gateway" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "service_id", "in": "path", @@ -8944,60 +9024,63 @@ "schema": { "type": "integer" } - }, - { - "name": "http_method", - "in": "query", - "description": "HTTP method.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "pattern", - "in": "query", - "description": "Mapping Rule pattern.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "delta", - "in": "query", - "description": "Increase the metric by this delta.", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "metric_id", - "in": "query", - "description": "Metric ID.", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "position", - "in": "query", - "description": "Mapping Rule position", - "schema": { - "type": "integer" - } - }, - { - "name": "last", - "in": "query", - "description": "Last matched Mapping Rule to process", - "schema": { - "type": "boolean" - } } ], + "requestBody": { + "description": "Proxy Mapping Rule Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "http_method": { + "type": "string", + "description": "HTTP method." + }, + "pattern": { + "type": "string", + "description": "Mapping Rule pattern." + }, + "delta": { + "type": "integer", + "description": "Increase the metric by this delta." + }, + "metric_id": { + "type": "integer", + "description": "Metric ID." + }, + "position": { + "type": "integer", + "description": "Mapping Rule position" + }, + "last": { + "type": "boolean", + "description": "Last matched Mapping Rule to process" + } + }, + "required": [ + "access_token", + "http_method", + "pattern", + "delta", + "metric_id" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -9422,15 +9505,6 @@ "Gateway" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "service_id", "in": "path", @@ -9457,17 +9531,40 @@ "schema": { "type": "integer" } - }, - { - "name": "to", - "in": "query", - "description": "the name of the destination environment", - "required": true, - "schema": { - "type": "string" - } } ], + "requestBody": { + "description": "Proxy Config Promote", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "to": { + "type": "string", + "description": "the name of the destination environment" + } + }, + "required": [ + "access_token", + "to" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -9515,15 +9612,6 @@ "Gateway" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "service_id", "in": "path", @@ -9532,17 +9620,40 @@ "schema": { "type": "integer" } - }, - { - "name": "policies_config", - "in": "query", - "description": "Proxy policies chain", - "required": true, - "schema": { - "type": "string" - } } ], + "requestBody": { + "description": "Proxy Policies Chain Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "policies_config": { + "type": "string", + "description": "Proxy policies chain" + } + }, + "required": [ + "access_token", + "policies_config" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -9599,15 +9710,6 @@ "Service Plans" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "service_id", "in": "path", @@ -9625,32 +9727,48 @@ "schema": { "type": "integer" } - }, - { - "name": "name", - "in": "query", - "description": "Name of the service plan.", - "schema": { - "type": "string" - } - }, - { - "name": "approval_required", - "in": "query", - "description": "Set the 'Service subscriptions require approval?' to 'true' or 'false'", - "schema": { - "type": "boolean" - } - }, - { - "name": "state_event", - "in": "query", - "description": "State event of the service plan. It can be 'publish' or 'hide'", - "schema": { - "type": "string" - } } ], + "requestBody": { + "description": "Service Plan Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "name": { + "type": "string", + "description": "Name of the service plan." + }, + "approval_required": { + "type": "boolean", + "description": "Set the 'Service subscriptions require approval?' to 'true' or 'false'" + }, + "state_event": { + "type": "string", + "description": "State event of the service plan. It can be 'publish' or 'hide'" + } + }, + "required": [ + "access_token", + "policies_config" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -9707,15 +9825,6 @@ "Service Plans" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "service_id", "in": "path", @@ -9735,25 +9844,52 @@ } } ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/services/{service_id}/features.xml": { - "get": { - "summary": "Service Feature List", - "tags": [ - "Service Features" - ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", + "requestBody": { + "description": "Service Plan Set to Default", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/services/{service_id}/features.xml": { + "get": { + "summary": "Service Feature List", + "tags": [ + "Service Features" + ], + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", "required": true, "schema": { "type": "string" @@ -9782,15 +9918,6 @@ "Service Features" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "service_id", "in": "path", @@ -9799,50 +9926,59 @@ "schema": { "type": "integer" } - }, - { - "name": "name", - "in": "query", - "description": "Name of the feature.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "system_name", - "in": "query", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects.", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the feature.", - "schema": { - "type": "string" - } - }, - { - "name": "scope", - "in": "query", - "description": "Type of plan that the feature will be available for.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "string" + } + ], + "requestBody": { + "description": "Service Feature Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "name": { + "type": "string", + "description": "Name of the feature." + }, + "system_name": { + "type": "string", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects." + }, + "description": { + "type": "string", + "description": "Description of the feature." + }, + "scope": { + "type": "array", + "items": { + "type": "string" + }, + "explode": false, + "enum": [ + "ApplicationPlan", + "ServicePlan" + ] + } + }, + "required": [ + "access_token", + "name" + ] }, - "enum": [ - "ApplicationPlan", - "ServicePlan" - ] + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } } } - ], + }, "responses": { "default": { "description": "success", @@ -9899,15 +10035,6 @@ "Service Features" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "service_id", "in": "path", @@ -9925,24 +10052,43 @@ "schema": { "type": "integer" } - }, - { - "name": "name", - "in": "query", - "description": "Name of the feature.", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the feature.", - "schema": { - "type": "string" - } } ], + "requestBody": { + "description": "Service Feature Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "name": { + "type": "string", + "description": "Name of the feature." + }, + "description": { + "type": "string", + "description": "Description of the feature." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -10020,98 +10166,70 @@ "summary": "Settings Update", "tags": [ "Settings" - ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "useraccountarea_enabled", - "in": "query", - "description": "Allow the user to edit their submitted details, change passwords, etc", - "schema": { - "type": "boolean" - } - }, - { - "name": "hide_service", - "in": "query", - "description": "Used a default service plan", - "schema": { - "type": "boolean" - } - }, - { - "name": "signups_enabled", - "in": "query", - "description": "Developers are allowed sign up themselves.", - "schema": { - "type": "boolean" - } - }, - { - "name": "account_approval_required", - "in": "query", - "description": "Approval is required by you before developer accounts are activated.", - "schema": { - "type": "boolean" - } - }, - { - "name": "strong_passwords_enabled", - "in": "query", - "description": "Require strong passwords from your users: Password must be at least 8 characters long, and contain both upper and lowercase letters, a digit and one special character of -+=><_$#.:;!?@&*()~][}{|. Existing passwords will still work. ", - "schema": { - "type": "boolean" - } - }, - { - "name": "public_search", - "in": "query", - "description": "Enables public search on Developer Portal", - "schema": { - "type": "boolean" - } - }, - { - "name": "account_plans_ui_visible", - "in": "query", - "description": "Enables visibility of Account Plans", - "schema": { - "type": "boolean" - } - }, - { - "name": "change_account_plan_permission", - "in": "query", - "description": "Account Plans changing", - "schema": { - "type": "string" - } - }, - { - "name": "service_plans_ui_visible", - "in": "query", - "description": "Enables visibility of Service Plans", - "schema": { - "type": "boolean" - } - }, - { - "name": "change_service_plan_permission", - "in": "query", - "description": "Service Plans changing", - "schema": { - "type": "string" + ], + "requestBody": { + "description": "Settings Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "useraccountarea_enabled": { + "type": "boolean", + "description": "Allow the user to edit their submitted details, change passwords, etc" + }, + "hide_service": { + "type": "boolean", + "description": "Used a default service plan" + }, + "signups_enabled": { + "type": "boolean", + "description": "Developers are allowed sign up themselves." + }, + "account_approval_required": { + "type": "boolean", + "description": "Approval is required by you before developer accounts are activated." + }, + "strong_passwords_enabled": { + "type": "boolean", + "description": "Require strong passwords from your users: Password must be at least 8 characters long, and contain both upper and lowercase letters, a digit and one special character of -+=><_$#.:;!?@&*()~][}{|. Existing passwords will still work. " + }, + "public_search": { + "type": "boolean", + "description": "Enables public search on Developer Portal" + }, + "account_plans_ui_visible": { + "type": "boolean", + "description": "Enables visibility of Account Plans" + }, + "change_account_plan_permission": { + "type": "boolean", + "description": "Enables visibility of Service Plans" + }, + "change_service_plan_permission": { + "type": "string", + "description": "Service Plans changing" + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } } } - ], + }, "responses": { "default": { "description": "success", @@ -10125,154 +10243,94 @@ "summary": "WebHooks Update", "tags": [ "Webhooks" - ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "url", - "in": "query", - "description": "URL that will be notified about all the events", - "schema": { - "type": "string" - } - }, - { - "name": "active", - "in": "query", - "description": "Activate/Disable WebHooks", - "schema": { - "type": "boolean" - } - }, - { - "name": "provider_actions", - "in": "query", - "description": "Dashboard actions fire webhooks. If false, only user actions in the portal trigger events.", - "schema": { - "type": "boolean" - } - }, - { - "name": "account_created_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "account_updated_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "account_deleted_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "user_created_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "user_updated_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "user_deleted_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "application_created_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "application_updated_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "application_deleted_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "account_plan_changed_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "application_plan_changed_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "application_user_key_updated_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "application_key_created_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "application_key_deleted_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "application_suspended_on", - "in": "query", - "schema": { - "type": "boolean" - } - }, - { - "name": "application_key_updated_on", - "in": "query", - "schema": { - "type": "boolean" + ], + "requestBody": { + "description": "WebHooks Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "url": { + "type": "string", + "description": "URL that will be notified about all the events" + }, + "active": { + "type": "boolean", + "description": "Activate/Disable WebHooks" + }, + "provider_actions": { + "type": "boolean", + "description": "Dashboard actions fire webhooks. If false, only user actions in the portal trigger events." + }, + "account_created_on": { + "type": "boolean" + }, + "account_updated_on": { + "type": "boolean" + }, + "account_deleted_on": { + "type": "boolean" + }, + "user_created_on": { + "type": "boolean" + }, + "user_updated_on": { + "type": "boolean" + }, + "user_deleted_on": { + "type": "boolean" + }, + "application_created_on": { + "type": "boolean" + }, + "application_updated_on": { + "type": "boolean" + }, + "application_deleted_on": { + "type": "boolean" + }, + "account_plan_changed_on": { + "type": "boolean" + }, + "application_plan_changed_on": { + "type": "boolean" + }, + "application_user_key_updated_on": { + "type": "boolean" + }, + "application_key_created_on": { + "type": "boolean" + }, + "application_key_deleted_on": { + "type": "boolean" + }, + "application_suspended_on": { + "type": "boolean" + }, + "application_key_updated_on": { + "type": "boolean" + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } } } - ], + }, "responses": { "default": { "description": "success", From b7658fc2cdfa8f9256d069ff7eaeee8d826b3615 Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Mon, 27 Feb 2023 17:19:01 +0530 Subject: [PATCH 39/85] THREESCALE Updated patch api --- doc/active_docs/Account Management API.json | 500 ++++++++------------ 1 file changed, 209 insertions(+), 291 deletions(-) diff --git a/doc/active_docs/Account Management API.json b/doc/active_docs/Account Management API.json index 10c7d9713c..ed0f220dc0 100644 --- a/doc/active_docs/Account Management API.json +++ b/doc/active_docs/Account Management API.json @@ -8714,15 +8714,6 @@ "Gateway" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "service_id", "in": "path", @@ -8731,192 +8722,123 @@ "schema": { "type": "integer" } - }, - { - "name": "endpoint", - "in": "query", - "description": "Public Base URL for production environment.", - "schema": { - "type": "string" - } - }, - { - "name": "api_backend", - "in": "query", - "description": "Private Base URL. Caution! Do not use it if the account has API as a Product enabled. It may cause API backend usages to be removed from the Product.", - "schema": { - "type": "string" - } - }, - { - "name": "credentials_location", - "in": "query", - "description": "Credentials Location. Either headers, query or authorization for the Basic Authorization.", - "schema": { - "type": "string" - } - }, - { - "name": "auth_app_key", - "in": "query", - "description": "Parameter/Header where App Key is expected.", - "schema": { - "type": "string" - } - }, - { - "name": "auth_app_id", - "in": "query", - "description": "Parameter/Header where App ID is expected.", - "schema": { - "type": "string" - } - }, - { - "name": "auth_user_key", - "in": "query", - "description": "Parameter/Header where User Key is expected.", - "schema": { - "type": "string" - } - }, - { - "name": "error_auth_failed", - "in": "query", - "description": "Error message on failed authentication.", - "schema": { - "type": "string" - } - }, - { - "name": "error_status_auth_failed", - "in": "query", - "description": "Status code on failed authentication.", - "schema": { - "type": "integer" - } - }, - { - "name": "error_headers_auth_failed", - "in": "query", - "description": "Content-Type header on failed authentication.", - "schema": { - "type": "string" - } - }, - { - "name": "error_auth_missing", - "in": "query", - "description": "Error message on missing authentication.", - "schema": { - "type": "string" - } - }, - { - "name": "error_status_auth_missing", - "in": "query", - "description": "Status code on missing authentication.", - "schema": { - "type": "integer" - } - }, - { - "name": "error_headers_auth_missing", - "in": "query", - "description": "Content-Type header on missing authentication.", - "schema": { - "type": "string" - } - }, - { - "name": "error_no_match", - "in": "query", - "description": "Error message when no mapping rule is matched.", - "schema": { - "type": "string" - } - }, - { - "name": "error_status_no_match", - "in": "query", - "description": "Status code when no mapping rule is matched.", - "schema": { - "type": "integer" - } - }, - { - "name": "error_headers_no_match", - "in": "query", - "description": "Content-Type header when no mapping rule is matched.", - "schema": { - "type": "string" - } - }, - { - "name": "error_status_limits_exceeded", - "in": "query", - "description": "Status code when usage limit exceeded.", - "schema": { - "type": "integer" - } - }, - { - "name": "error_headers_limits_exceeded", - "in": "query", - "description": "Content-Type header when usage limit exceeded.", - "schema": { - "type": "string" - } - }, - { - "name": "error_limits_exceeded", - "in": "query", - "description": "Error message on usage limit exceeded.", - "schema": { - "type": "string" - } - }, - { - "name": "oidc_issuer_endpoint", - "in": "query", - "description": "Location of your OpenID Provider.", - "schema": { - "type": "string" - } - }, - { - "name": "oidc_issuer_type", - "in": "query", - "description": "Type of your OpenID Provider.", - "schema": { - "type": "string" - } - }, - { - "name": "sandbox_endpoint", - "in": "query", - "description": "Sandbox endpoint.", - "schema": { - "type": "string" - } - }, - { - "name": "jwt_claim_with_client_id", - "in": "query", - "description": "JWT Claim With ClientId Location.", - "schema": { - "type": "string" - } - }, - { - "name": "jwt_claim_with_client_id_type", - "in": "query", - "description": "JWT Claim With ClientId Type. Either `plain` or `liquid`", - "schema": { - "type": "string" - } } ], + "requestBody": { + "description": "Proxy Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "endpoint": { + "type": "string", + "description": "Public Base URL for production environment." + }, + "api_backend": { + "type": "string", + "description": "Private Base URL. Caution! Do not use it if the account has API as a Product enabled. It may cause API backend usages to be removed from the Product." + }, + "credentials_location": { + "type": "string", + "description": "Credentials Location. Either headers, query or authorization for the Basic Authorization." + }, + "auth_app_key": { + "type": "string", + "description": "Parameter/Header where App Key is expected." + }, + "auth_app_id": { + "type": "string", + "description": "Parameter/Header where App ID is expected." + }, + "auth_user_key": { + "type": "string", + "description": "Parameter/Header where User Key is expected." + }, + "error_auth_failed": { + "type": "string", + "description": "Error message on failed authentication." + }, + "error_status_auth_failed": { + "type": "integer", + "description": "Status code on failed authentication." + }, + "error_headers_auth_failed": { + "type": "string", + "description": "Content-Type header on failed authentication." + }, + "error_auth_missing": { + "type": "string", + "description": "Error message on missing authentication." + }, + "error_status_auth_missing": { + "type": "integer", + "description": "Status code on missing authentication." + }, + "error_headers_auth_missing": { + "type": "string", + "description": "Content-Type header on missing authentication." + }, + "error_no_match": { + "type": "string", + "description": "Error message when no mapping rule is matched." + }, + "error_status_no_match": { + "type": "string", + "description": "Content-Type header when no mapping rule is matched." + }, + "error_status_limits_exceeded": { + "type": "integer", + "description": "Status code when usage limit exceeded." + }, + "error_headers_limits_exceeded": { + "type": "string", + "description": "Content-Type header when usage limit exceeded." + }, + "error_limits_exceeded": { + "type": "string", + "description": "Error message on usage limit exceeded." + }, + "oidc_issuer_endpoint": { + "type": "string", + "description": "Location of your OpenID Provider." + }, + "oidc_issuer_type": { + "type": "string", + "description": "Type of your OpenID Provider." + }, + "sandbox_endpoint": { + "type": "string", + "description": "Sandbox endpoint." + }, + "jwt_claim_with_client_id": { + "type": "string", + "description": "JWT Claim With ClientId Location." + }, + "jwt_claim_with_client_id_type": { + "type": "string", + "description": "JWT Claim With ClientId Type. Either `plain` or `liquid`" + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -9178,15 +9100,6 @@ "Gateway" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "service_id", "in": "path", @@ -9204,56 +9117,59 @@ "schema": { "type": "integer" } - }, - { - "name": "http_method", - "in": "query", - "description": "HTTP method.", - "schema": { - "type": "string" - } - }, - { - "name": "pattern", - "in": "query", - "description": "Mapping Rule pattern.", - "schema": { - "type": "string" - } - }, - { - "name": "delta", - "in": "query", - "description": "Increase the metric by this delta.", - "schema": { - "type": "integer" - } - }, - { - "name": "metric_id", - "in": "query", - "description": "Metric ID.", - "schema": { - "type": "integer" - } - }, - { - "name": "position", - "in": "query", - "description": "Mapping Rule position", - "schema": { - "type": "integer" - } - }, - { - "name": "last", - "in": "query", - "description": "Last matched Mapping Rule to process", - "schema": { - "type": "boolean" - } } ], + "requestBody": { + "description": "Proxy Mapping Rule Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "http_method": { + "type": "string", + "description": "HTTP method." + }, + "pattern": { + "type": "string", + "description": "Mapping Rule pattern." + }, + "delta": { + "type": "integer", + "description": "Increase the metric by this delta." + }, + "metric_id": { + "type": "integer", + "description": "Metric ID." + }, + "position": { + "type": "integer", + "description": "Mapping Rule position" + }, + "last": { + "type": "boolean", + "description": "Last matched Mapping Rule to process" + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -9301,15 +9217,6 @@ "Gateway" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "service_id", "in": "path", @@ -9318,40 +9225,51 @@ "schema": { "type": "integer" } - }, - { - "name": "standard_flow_enabled", - "in": "query", - "description": "Enable Authorization Code Flow (Standard Flow)", - "schema": { - "type": "boolean" - } - }, - { - "name": "implicit_flow_enabled", - "in": "query", - "description": "Enable Implicit Flow", - "schema": { - "type": "boolean" - } - }, - { - "name": "service_accounts_enabled", - "in": "query", - "description": "Enable Service Account Flow (Standard Flow)", - "schema": { - "type": "boolean" - } - }, - { - "name": "direct_access_grants_enabled", - "in": "query", - "description": "Enable Direct Access Grant Flow", - "schema": { - "type": "boolean" - } } ], + "requestBody": { + "description": "OIDC Configuration Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "standard_flow_enabled": { + "type": "boolean", + "description": "Enable Authorization Code Flow (Standard Flow)" + }, + "implicit_flow_enabled": { + "type": "boolean", + "description": "Enable Implicit Flow" + }, + "service_accounts_enabled": { + "type": "boolean", + "description": "Enable Service Account Flow (Standard Flow)" + }, + "direct_access_grants_enabled": { + "type": "boolean", + "description": "Enable Direct Access Grant Flow" + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", From 4daad6d1081e05f4bba3dbca0ec1515cf91a4deb Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Tue, 28 Feb 2023 14:23:11 +0530 Subject: [PATCH 40/85] THREESCALE-3927 Fixed failed integration tests --- .byebug_history | 106 ++++++++++++++++++ .../api_docs/services_controller_test.rb | 15 +-- 2 files changed, 114 insertions(+), 7 deletions(-) create mode 100644 .byebug_history diff --git a/.byebug_history b/.byebug_history new file mode 100644 index 0000000000..8d597fd15d --- /dev/null +++ b/.byebug_history @@ -0,0 +1,106 @@ +c +api_json +q +apis +c +file_content +c +file_content +c +file_content +c +file_content +c +file_content +c +file_content +c +file_content +c +file_content +c +file_path +c +file_content +c +file_content +c +file_content +c +file_content +c +file_content +c +file_content +c +file_content +c +file_content +c +file_content +c +file_content +c +File.exist?(file_path) +c +file_content +c +File.read(file_path) +File.exist?(file_path) +c +file_content +c +backend_base_host +backend_api? +file_content +parsed_content = JSON.parse(file_content) +c +JSON.parse(api_json) + api_json = ApiFile.new('API', 'service_management_api') + api_json = ApiFile.new('API', 'service_management_api').to_json + api_json = ApiFile.new('API', 'service_management_api') + api_json = ApiFile.new('API', 'service_management_api').json +api_json = ApiFile.new('API', 'service_management_api') +c +parsed_content = JSON.parse(file_content) +c +api_json = ApiFile.new('API', 'service_management_api') +api_json = ApiFile.new('API', 'service_management_api').json +api_json = ApiFile.new('API', 'service_management_api') +api_json = ApiFile.new('API', 'service_management_api').system_name +api_json = ApiFile.new('API', 'service_management_api').@system_name= +api_json = ApiFile.new('API', 'service_management_api') +api_json = ApiFile.new('API', 'service_management_api').json +c +system_name +c +backend_api? +c + parsed_content = JSON.parse(file_content) +c +system_name +name +c +backend_base_host +c + ApiFile.new('API', 'service_management_api').json + System::Application.config.stubs(backend_client: { url: 'example-localhost:3001', host: 'example.com' }) +c +backend_base_host +c +backend_base_host +c +backend_base_host +parsed_content['servers'][0]['url'] +backend_api? +c +api_json +c +"https://#{backend_config[:host]}" +json["servers"][0]["url"] +json["servers"][0] +json["servers"] +json["servers"]["url"] +json["servers"] +json +"https://#{backend_config[:host]}" diff --git a/test/integration/api_docs/services_controller_test.rb b/test/integration/api_docs/services_controller_test.rb index 80bed1f1cd..013cd79493 100644 --- a/test/integration/api_docs/services_controller_test.rb +++ b/test/integration/api_docs/services_controller_test.rb @@ -71,7 +71,7 @@ def test_show_service_management get api_docs_service_path(format: :json, id: 'service_management_api') assert_response :success json = JSON.parse(response.body) - assert_equal "https://#{backend_config[:host]}", json['basePath'] + assert_equal "https://#{backend_config[:host]}", json["servers"][0]["url"] end test 'show backend_api endpoints only under rolling update enabled' do @@ -147,21 +147,22 @@ class ApiFileTest < ActiveSupport::TestCase def test_backend_base_host System::Application.config.stubs(backend_client: { url: 'example-localhost:3001', host: 'example.com' }) - api_json = ApiFile.new('API', 'service_management_api').json - assert_equal 'example-localhost:3001', api_json['basePath'] + + api_json = ApiFile.new('Service Management API', 'service_management_api').json + assert_equal 'example-localhost:3001', api_json["servers"][0]["url"] System::Application.config.stubs(backend_client: { host: 'example.com' }) - api_json = ApiFile.new('API', 'service_management_api').json - assert_equal 'https://example.com', api_json['basePath'] + api_json = ApiFile.new('Service Management API', 'service_management_api').json + assert_equal 'https://example.com', api_json["servers"][0]["url"] end def test_file_path Rails.application.config.three_scale.stubs(onpremises_api_docs_version: false) - api_file = ApiFile.new('API', 'service_management_api') + api_file = ApiFile.new('Service Management API', 'service_management_api') assert_not_match '(on-premises)', api_file.file_path.to_s Rails.application.config.three_scale.stubs(onpremises_api_docs_version: true) - api_file = ApiFile.new('API', 'service_management_api') + api_file = ApiFile.new('Service Management API', 'service_management_api') assert_match '(on-premises)', api_file.file_path.to_s end end From 11dc573baf3834bb56cd31f25165bc0b1bbe240b Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Wed, 1 Mar 2023 15:07:56 +0530 Subject: [PATCH 41/85] THREESCALE-3927 fixed conflicts --- .byebug_history | 106 -- Gemfile.lock | 7 +- doc/active_docs/CMS API.json | 846 ---------------- .../Developer Portal API (Tech Preview).json | 929 +----------------- 4 files changed, 5 insertions(+), 1883 deletions(-) delete mode 100644 .byebug_history delete mode 100644 doc/active_docs/CMS API.json diff --git a/.byebug_history b/.byebug_history deleted file mode 100644 index 8d597fd15d..0000000000 --- a/.byebug_history +++ /dev/null @@ -1,106 +0,0 @@ -c -api_json -q -apis -c -file_content -c -file_content -c -file_content -c -file_content -c -file_content -c -file_content -c -file_content -c -file_content -c -file_path -c -file_content -c -file_content -c -file_content -c -file_content -c -file_content -c -file_content -c -file_content -c -file_content -c -file_content -c -file_content -c -File.exist?(file_path) -c -file_content -c -File.read(file_path) -File.exist?(file_path) -c -file_content -c -backend_base_host -backend_api? -file_content -parsed_content = JSON.parse(file_content) -c -JSON.parse(api_json) - api_json = ApiFile.new('API', 'service_management_api') - api_json = ApiFile.new('API', 'service_management_api').to_json - api_json = ApiFile.new('API', 'service_management_api') - api_json = ApiFile.new('API', 'service_management_api').json -api_json = ApiFile.new('API', 'service_management_api') -c -parsed_content = JSON.parse(file_content) -c -api_json = ApiFile.new('API', 'service_management_api') -api_json = ApiFile.new('API', 'service_management_api').json -api_json = ApiFile.new('API', 'service_management_api') -api_json = ApiFile.new('API', 'service_management_api').system_name -api_json = ApiFile.new('API', 'service_management_api').@system_name= -api_json = ApiFile.new('API', 'service_management_api') -api_json = ApiFile.new('API', 'service_management_api').json -c -system_name -c -backend_api? -c - parsed_content = JSON.parse(file_content) -c -system_name -name -c -backend_base_host -c - ApiFile.new('API', 'service_management_api').json - System::Application.config.stubs(backend_client: { url: 'example-localhost:3001', host: 'example.com' }) -c -backend_base_host -c -backend_base_host -c -backend_base_host -parsed_content['servers'][0]['url'] -backend_api? -c -api_json -c -"https://#{backend_config[:host]}" -json["servers"][0]["url"] -json["servers"][0] -json["servers"] -json["servers"]["url"] -json["servers"] -json -"https://#{backend_config[:host]}" diff --git a/Gemfile.lock b/Gemfile.lock index b5e540748e..16c528a5bf 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -685,7 +685,8 @@ GEM rspec (~> 3.0) rspec_junit_formatter (0.4.1) rspec-core (>= 2, < 4, != 2.12.0) - rubocop (1.31.0) + rubocop (1.39.0) + json (~> 2.3) parallel (~> 1.10) parser (>= 3.1.2.1) rainbow (>= 2.2.2, < 4.0) @@ -1014,7 +1015,7 @@ DEPENDENCIES rspec-rails (~> 4.1) rspec_api_documentation rspec_junit_formatter - rubocop (= 1.31) + rubocop (= 1.39) rubocop-performance rubocop-rails ruby-oci8 @@ -1060,4 +1061,4 @@ DEPENDENCIES zip-zip BUNDLED WITH - 2.2.25 + 2.2.25 \ No newline at end of file diff --git a/doc/active_docs/CMS API.json b/doc/active_docs/CMS API.json deleted file mode 100644 index 0c0750b8a4..0000000000 --- a/doc/active_docs/CMS API.json +++ /dev/null @@ -1,846 +0,0 @@ -{ - "openapi": "3.0.1", - "info": { - "title": "Developer Portal API (Tech Preview)", - "description": "API for managing the templates, files and sections of the Developer Portal CMS", - "version": "1.0" - }, - "servers": [ - { - "url": "/" - } - ], - "paths": { - "/admin/api/cms/templates.xml": { - "get": { - "tags": ["Templates"], - "summary": "Template List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Current page of the list", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "per_page", - "in": "query", - "description": "Total number of records per one page (maximum 100)", - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "tags": ["Templates"], - "summary": "Template Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "type", - "in": "query", - "required": true, - "schema": { - "type": "string", - "enum": [ - "page", - "layout", - "partial" - ] - } - }, - { - "name": "system_name", - "in": "query", - "description": "Human readable and unique identifier", - "schema": { - "type": "string" - } - }, - { - "name": "title", - "in": "query", - "description": "Title of the template", - "schema": { - "type": "string" - } - }, - { - "name": "path", - "in": "query", - "description": "URI of the page", - "schema": { - "type": "string" - } - }, - { - "name": "draft", - "in": "query", - "description": "Text content of the template (you have to publish the template)", - "schema": { - "type": "string" - } - }, - { - "name": "section_name", - "in": "query", - "description": "system name of a section", - "schema": { - "type": "string" - } - }, - { - "name": "section_id", - "in": "query", - "description": "ID of a section (valid only for pages)", - "schema": { - "type": "ref" - } - }, - { - "name": "layout_name", - "in": "query", - "description": "system name of a layout (valid only for pages)", - "schema": { - "type": "string" - } - }, - { - "name": "layout_id", - "in": "query", - "description": "ID of a layout - overrides layout_name", - "schema": { - "type": "ref" - } - }, - { - "name": "liquid_enabled", - "in": "query", - "description": "liquid processing of the template content on/off", - "schema": { - "type": "boolean" - } - }, - { - "name": "handler", - "in": "query", - "description": "text will be processed by the handler before rendering", - "schema": { - "type": "string", - "enum": [ - "textile", - "markdown" - ] - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/cms/templates/{id}.xml": { - "get": { - "tags": ["Templates"], - "summary": "Template Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the template", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "tags": ["Templates"], - "summary": "Template Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the template", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "system_name", - "in": "query", - "description": "Human readable and unique identifier", - "schema": { - "type": "string" - } - }, - { - "name": "title", - "in": "query", - "description": "Title of the template", - "schema": { - "type": "string" - } - }, - { - "name": "path", - "in": "query", - "description": "URI of the page", - "schema": { - "type": "string" - } - }, - { - "name": "draft", - "in": "query", - "description": "Text content of the template (you have to publish the template)", - "schema": { - "type": "string" - } - }, - { - "name": "section_name", - "in": "query", - "description": "system name of a section", - "schema": { - "type": "string" - } - }, - { - "name": "section_id", - "in": "query", - "description": "ID of a section (valid only for pages)", - "schema": { - "type": "ref" - } - }, - { - "name": "layout_name", - "in": "query", - "description": "system name of a layout (valid only for pages)", - "schema": { - "type": "string" - } - }, - { - "name": "layout_id", - "in": "query", - "description": "ID of a layout - overrides layout_name", - "schema": { - "type": "ref" - } - }, - { - "name": "liquid_enabled", - "in": "query", - "description": "liquid processing of the template content on/off", - "schema": { - "type": "boolean" - } - }, - { - "name": "handler", - "in": "query", - "description": "text will be processed by the handler before rendering", - "schema": { - "type": "string", - "enum": [ - "textile", - "markdown" - ] - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "tags": ["Templates"], - "summary": "Template Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the template", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/cms/templates/{id}/publish.xml": { - "put": { - "tags": ["Templates"], - "summary": "Template Publish", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the template", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/cms/sections.xml": { - "get": { - "tags": ["Sections"], - "summary": "Section List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Current page of the list", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "per_page", - "in": "query", - "description": "Total number of records per one page (maximum 100)", - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "tags": ["Sections"], - "summary": "Section Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "title", - "in": "query", - "description": "Title of the section", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "public", - "in": "query", - "description": "Public or not", - "schema": { - "type": "boolean" - } - }, - { - "name": "parent_id", - "in": "query", - "description": "ID of a parent section", - "schema": { - "type": "ref" - } - }, - { - "name": "partial_path", - "in": "query", - "description": "Path of the section", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/cms/sections/{id}.xml": { - "get": { - "tags": ["Sections"], - "summary": "Section Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the section", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "tags": ["Sections"], - "summary": "Section Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the section", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "title", - "in": "query", - "description": "Title of the section", - "schema": { - "type": "string" - } - }, - { - "name": "public", - "in": "query", - "description": "Public or not", - "schema": { - "type": "boolean" - } - }, - { - "name": "parent_id", - "in": "query", - "description": "ID of a parent section", - "schema": { - "type": "ref" - } - }, - { - "name": "partial_path", - "in": "query", - "description": "Path of the section", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "tags": ["Sections"], - "summary": "Section Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the section", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/cms/files.xml": { - "get": { - "tags": ["Files"], - "summary": "File List", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "Current page of the list", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "per_page", - "in": "query", - "description": "Total number of records per one page (maximum 100)", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "tags": ["Files"], - "summary": "File Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "path", - "in": "query", - "description": "URI of the file", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "section_id", - "in": "query", - "description": "ID of a section (valid only for pages)", - "schema": { - "type": "ref" - } - }, - { - "name": "tag_list", - "in": "query", - "description": "List of the tags", - "schema": { - "type": "string" - } - }, - { - "name": "attachment", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "downloadable", - "in": "query", - "description": "Checked sets the content-disposition to attachment", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/cms/files/{id}.xml": { - "get": { - "tags": ["Files"], - "summary": "File Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the file", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "tags": ["Files"], - "summary": "File Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the file", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "path", - "in": "query", - "description": "URI of the file", - "schema": { - "type": "string" - } - }, - { - "name": "section_id", - "in": "query", - "description": "ID of a section (valid only for pages)", - "schema": { - "type": "ref" - } - }, - { - "name": "tag_list", - "in": "query", - "description": "List of the tags", - "schema": { - "type": "string" - } - }, - { - "name": "attachment", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "downloadable", - "in": "query", - "description": "Checked sets the content-disposition to attachment", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "tags": ["Files"], - "summary": "File Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the file", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - } - }, - "components": {} -} \ No newline at end of file diff --git a/doc/active_docs/Developer Portal API (Tech Preview).json b/doc/active_docs/Developer Portal API (Tech Preview).json index 35bf23e30d..44bb6ad3f5 100644 --- a/doc/active_docs/Developer Portal API (Tech Preview).json +++ b/doc/active_docs/Developer Portal API (Tech Preview).json @@ -1,5 +1,4 @@ { -<<<<<<< HEAD:doc/active_docs/Developer Portal API (Tech Preview).json "basePath": "", "resourcePath": "/admin/api/cms/templates", "swaggerVersion": "1.1", @@ -662,932 +661,6 @@ ] } ] -======= - "openapi": "3.0.1", - "info": { - "version": "1.0" - }, - "servers": [ - { - "url": "/" ->>>>>>> 593be7e27 (THREESCALE-3927 converted to openapi 3.0):doc/active_docs/CMS API.json - } - ], - "paths": { - "/admin/api/cms/templates/{id}/publish.xml": { - "put": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "Template Publish", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the template", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/cms/files.xml": { - "get": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "File List", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "Current page of the list", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "per_page", - "in": "query", - "description": "Total number of records per one page (maximum 100)", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "File Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "path", - "in": "query", - "description": "URI of the file", - "schema": { - "type": "string" - } - }, - { - "name": "section_id", - "in": "query", - "description": "ID of a section (valid only for pages)", - "schema": { - "type": "ref" - } - }, - { - "name": "tag_list", - "in": "query", - "description": "List of the tags", - "schema": { - "type": "string" - } - }, - { - "name": "attachment", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "downloadable", - "in": "query", - "description": "Checked sets the content-disposition to attachment", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/cms/files/{id}.xml": { - "get": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "File Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the file", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "File Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the file", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "path", - "in": "query", - "description": "URI of the file", - "schema": { - "type": "string" - } - }, - { - "name": "section_id", - "in": "query", - "description": "ID of a section (valid only for pages)", - "schema": { - "type": "ref" - } - }, - { - "name": "tag_list", - "in": "query", - "description": "List of the tags", - "schema": { - "type": "string" - } - }, - { - "name": "attachment", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "downloadable", - "in": "query", - "description": "Checked sets the content-disposition to attachment", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "File Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the file", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "path", - "in": "query", - "description": "URI of the file", - "schema": { - "type": "string" - } - }, - { - "name": "section_id", - "in": "query", - "description": "ID of a section (valid only for pages)", - "schema": { - "type": "ref" - } - }, - { - "name": "tag_list", - "in": "query", - "description": "List of the tags", - "schema": { - "type": "string" - } - }, - { - "name": "attachment", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "downloadable", - "in": "query", - "description": "Checked sets the content-disposition to attachment", - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/cms/templates.xml": { - "get": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "Template List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Current page of the list", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "per_page", - "in": "query", - "description": "Total number of records per one page (maximum 100)", - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "Template Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "type", - "in": "query", - "required": true, - "schema": { - "type": "string", - "enum": [ - "page", - "layout", - "partial" - ] - } - }, - { - "name": "system_name", - "in": "query", - "description": "Human readable and unique identifier", - "schema": { - "type": "string" - } - }, - { - "name": "title", - "in": "query", - "description": "Title of the template", - "schema": { - "type": "string" - } - }, - { - "name": "path", - "in": "query", - "description": "URI of the page", - "schema": { - "type": "string" - } - }, - { - "name": "draft", - "in": "query", - "description": "Text content of the template (you have to publish the template)", - "schema": { - "type": "string" - } - }, - { - "name": "section_name", - "in": "query", - "description": "system name of a section", - "schema": { - "type": "string" - } - }, - { - "name": "section_id", - "in": "query", - "description": "ID of a section (valid only for pages)", - "schema": { - "type": "ref" - } - }, - { - "name": "layout_name", - "in": "query", - "description": "system name of a layout (valid only for pages)", - "schema": { - "type": "string" - } - }, - { - "name": "layout_id", - "in": "query", - "description": "ID of a layout - overrides layout_name", - "schema": { - "type": "ref" - } - }, - { - "name": "liquid_enabled", - "in": "query", - "description": "liquid processing of the template content on/off", - "schema": { - "type": "boolean" - } - }, - { - "name": "handler", - "in": "query", - "description": "text will be processed by the handler before rendering", - "schema": { - "type": "string", - "enum": [ - "textile", - "markdown" - ] - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/cms/sections.xml": { - "get": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "Section List", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Current page of the list", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "per_page", - "in": "query", - "description": "Total number of records per one page (maximum 100)", - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "post": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "Section Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "system_name", - "in": "query", - "description": "Human readable and unique identifier", - "schema": { - "type": "string" - } - }, - { - "name": "title", - "in": "query", - "description": "Title of the section", - "schema": { - "type": "string" - } - }, - { - "name": "public", - "in": "query", - "description": "Public or not", - "schema": { - "type": "boolean" - } - }, - { - "name": "parent_id", - "in": "query", - "description": "ID of a parent section", - "schema": { - "type": "ref" - } - }, - { - "name": "partial_path", - "in": "query", - "description": "Path of the section", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/cms/templates/{id}.xml": { - "get": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "Template Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the template", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "Template Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the template", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "system_name", - "in": "query", - "description": "Human readable and unique identifier", - "schema": { - "type": "string" - } - }, - { - "name": "title", - "in": "query", - "description": "Title of the template", - "schema": { - "type": "string" - } - }, - { - "name": "path", - "in": "query", - "description": "URI of the page", - "schema": { - "type": "string" - } - }, - { - "name": "draft", - "in": "query", - "description": "Text content of the template (you have to publish the template)", - "schema": { - "type": "string" - } - }, - { - "name": "section_name", - "in": "query", - "description": "system name of a section", - "schema": { - "type": "string" - } - }, - { - "name": "section_id", - "in": "query", - "description": "ID of a section (valid only for pages)", - "schema": { - "type": "ref" - } - }, - { - "name": "layout_name", - "in": "query", - "description": "system name of a layout (valid only for pages)", - "schema": { - "type": "string" - } - }, - { - "name": "layout_id", - "in": "query", - "description": "ID of a layout - overrides layout_name", - "schema": { - "type": "ref" - } - }, - { - "name": "liquid_enabled", - "in": "query", - "description": "liquid processing of the template content on/off", - "schema": { - "type": "boolean" - } - }, - { - "name": "handler", - "in": "query", - "description": "text will be processed by the handler before rendering", - "schema": { - "type": "string", - "enum": [ - "textile", - "markdown" - ] - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "Template Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the template", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/cms/sections/{id}.xml": { - "get": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "Section Read", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the section", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "Section Update", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the section", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "system_name", - "in": "query", - "description": "Human readable and unique identifier", - "schema": { - "type": "string" - } - }, - { - "name": "title", - "in": "query", - "description": "Title of the section", - "schema": { - "type": "string" - } - }, - { - "name": "public", - "in": "query", - "description": "Public or not", - "schema": { - "type": "boolean" - } - }, - { - "name": "parent_id", - "in": "query", - "description": "ID of a parent section", - "schema": { - "type": "ref" - } - }, - { - "name": "partial_path", - "in": "query", - "description": "Path of the section", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "delete": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "Section Delete", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the section", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } } - }, - "components": {} + ] } \ No newline at end of file From d69be1cb17eaf7e68d24c41959dedf24572171d1 Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Wed, 1 Mar 2023 15:17:44 +0530 Subject: [PATCH 42/85] THREESCALE-3927 Fixed lint issues --- app/javascript/packs/provider_active_docs.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/javascript/packs/provider_active_docs.js b/app/javascript/packs/provider_active_docs.js index 475158ea65..456bcf1b3a 100644 --- a/app/javascript/packs/provider_active_docs.js +++ b/app/javascript/packs/provider_active_docs.js @@ -1,8 +1,9 @@ // We can define the 3scale plugins here and export the modified bundle import SwaggerUI from 'swagger-ui' -import { autocompleteOAS3 } from './OAS3Autocomplete' import 'swagger-ui/dist/swagger-ui.css' + import 'ActiveDocs/swagger-ui-3-patch.scss' +import { autocompleteOAS3 } from './OAS3Autocomplete' const accountDataUrl = '/p/admin/api_docs/account_data.json' From 2ba20d4c1c4a2f0450ff1c7dad5298edc1842cd6 Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Wed, 1 Mar 2023 15:33:45 +0530 Subject: [PATCH 43/85] THREESCALE-3927 fixed few lint issues --- app/javascript/packs/provider_active_docs.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/javascript/packs/provider_active_docs.js b/app/javascript/packs/provider_active_docs.js index 456bcf1b3a..dcc9afeaea 100644 --- a/app/javascript/packs/provider_active_docs.js +++ b/app/javascript/packs/provider_active_docs.js @@ -3,7 +3,8 @@ import SwaggerUI from 'swagger-ui' import 'swagger-ui/dist/swagger-ui.css' import 'ActiveDocs/swagger-ui-3-patch.scss' -import { autocompleteOAS3 } from './OAS3Autocomplete' + +import { autocompleteOAS3 } from 'ActiveDocs/OAS3Autocomplete' const accountDataUrl = '/p/admin/api_docs/account_data.json' From dd881832dffba1b0106dc61e9d045b7a77495160 Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Wed, 1 Mar 2023 15:47:02 +0530 Subject: [PATCH 44/85] THREESCALE-3927 rearranged importing sequence --- app/javascript/packs/provider_active_docs.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/javascript/packs/provider_active_docs.js b/app/javascript/packs/provider_active_docs.js index dcc9afeaea..20f2750717 100644 --- a/app/javascript/packs/provider_active_docs.js +++ b/app/javascript/packs/provider_active_docs.js @@ -2,10 +2,10 @@ import SwaggerUI from 'swagger-ui' import 'swagger-ui/dist/swagger-ui.css' -import 'ActiveDocs/swagger-ui-3-patch.scss' - import { autocompleteOAS3 } from 'ActiveDocs/OAS3Autocomplete' +import 'ActiveDocs/swagger-ui-3-patch.scss' + const accountDataUrl = '/p/admin/api_docs/account_data.json' window.SwaggerUI = (args, serviceEndpoint) => { From 30155834b5fa691a79ebc7cd02d9e9344c9b250b Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Wed, 1 Mar 2023 16:23:07 +0530 Subject: [PATCH 45/85] THREESCALE-3927 added new lines, updated cms api to new version and fixed lint --- Gemfile.lock | 2 +- ...active_docs.js => provider_active_docs.ts} | 6 +- .../provider/admin/api_docs/show.html.erb | 2 +- .../Developer Portal API (Tech Preview).json | 1506 ++++++++++------- 4 files changed, 863 insertions(+), 653 deletions(-) rename app/javascript/packs/{provider_active_docs.js => provider_active_docs.ts} (60%) diff --git a/Gemfile.lock b/Gemfile.lock index 16c528a5bf..0f146b9b83 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1061,4 +1061,4 @@ DEPENDENCIES zip-zip BUNDLED WITH - 2.2.25 \ No newline at end of file + 2.2.25 diff --git a/app/javascript/packs/provider_active_docs.js b/app/javascript/packs/provider_active_docs.ts similarity index 60% rename from app/javascript/packs/provider_active_docs.js rename to app/javascript/packs/provider_active_docs.ts index 20f2750717..9c14c66c66 100644 --- a/app/javascript/packs/provider_active_docs.js +++ b/app/javascript/packs/provider_active_docs.ts @@ -8,11 +8,11 @@ import 'ActiveDocs/swagger-ui-3-patch.scss' const accountDataUrl = '/p/admin/api_docs/account_data.json' -window.SwaggerUI = (args, serviceEndpoint) => { - const responseInterceptor = (response) => autocompleteOAS3(response, accountDataUrl, serviceEndpoint) +window.SwaggerUI = (args: SwaggerUI.SwaggerUIOptions, serviceEndpoint: string) => { + const responseInterceptor = (response: SwaggerUI.Response) => autocompleteOAS3(response, accountDataUrl, serviceEndpoint) SwaggerUI({ ...args, responseInterceptor - }) + } as SwaggerUI.SwaggerUIOptions) } diff --git a/app/views/provider/admin/api_docs/show.html.erb b/app/views/provider/admin/api_docs/show.html.erb index dbe0806e2b..a43d67616c 100644 --- a/app/views/provider/admin/api_docs/show.html.erb +++ b/app/views/provider/admin/api_docs/show.html.erb @@ -1,7 +1,7 @@ <%= javascript_tag do %> window.enableApiDocsProxy = <%= Rails.configuration.three_scale.active_docs_proxy_disabled.blank? %>; <% end %> -<%= javascript_pack_tag 'provider_active_docs.js' %> +<%= javascript_pack_tag 'provider_active_docs' %> <%= javascript_include_tag 'active-docs/application.js' %> <% content_for :title do %> 3scale API Documentation diff --git a/doc/active_docs/Developer Portal API (Tech Preview).json b/doc/active_docs/Developer Portal API (Tech Preview).json index 44bb6ad3f5..e9e8e0723c 100644 --- a/doc/active_docs/Developer Portal API (Tech Preview).json +++ b/doc/active_docs/Developer Portal API (Tech Preview).json @@ -1,666 +1,876 @@ { - "basePath": "", - "resourcePath": "/admin/api/cms/templates", - "swaggerVersion": "1.1", - "apiVersion": "1.0", - "apis": [ + "openapi": "3.0.1", + "info": { + "version": "1.0" + }, + "servers": [ { - "path": "/admin/api/cms/files.xml", - "responseClass": "List[short-file]", - "operations": [ - { - "httpMethod": "GET", - "summary": "File List", - "description": "List all files", - "group": "cms_files", - "parameters": [ - { - "name": "page", - "description": "Current page of the list", - "dataType": "int", - "paramType": "query", - "default": 1 - }, - { - "name": "per_page", - "description": "Total number of records per one page (maximum 100)", - "dataType": "int", - "paramType": "query", - "default": 20 - }, - { - "name": "access_token", - "description": "Your access token", - "dataType": "string", - "required": true, - "paramType": "query", - "allowMultiple": false - } - ] - }, - { - "httpMethod": "POST", - "summary": "File Create", - "description": "Create file", - "group": "cms_files", - "parameters": [ - { - "name": "access_token", - "description": "Your access token", - "dataType": "string", - "required": true, - "paramType": "query", - "allowMultiple": false - }, - { - "name": "path", - "description": "URI of the file", - "paramType": "query", - "required": true - }, - { - "name": "section_id", - "description": "ID of a section (valid only for pages)", - "type": "int", - "default": "root section id", - "paramType": "query" - }, - { - "name": "tag_list", - "description": "List of the tags", - "paramType": "query" - }, - { - "name": "attachment", - "paramType": "query", - "required": true - }, - { - "name": "downloadable", - "description": "Checked sets the content-disposition to attachment", - "type": "boolean", - "paramType": "query", - "default": "false" - } - ] + "url": "/" + } + ], + "paths": { + "/admin/api/cms/templates/{id}/publish.xml": { + "put": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Template Publish", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the template", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } }, - { - "path": "/admin/api/cms/files/{id}.xml", - "responseClass": "file", - "operations": [ - { - "httpMethod": "GET", - "summary": "File Read", - "description": "View file", - "group": "cms_files", - "parameters": [ - { - "name": "access_token", - "description": "Your access token", - "dataType": "string", - "required": true, - "paramType": "query", - "allowMultiple": false - }, - { - "name": "id", - "description": "ID of the file", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] - }, - { - "httpMethod": "PUT", - "summary": "File Update", - "description": "Update file", - "group": "cms_files", - "parameters": [ - { - "name": "access_token", - "description": "Your access token", - "dataType": "string", - "required": true, - "paramType": "query", - "allowMultiple": false - }, - { - "name": "id", - "description": "ID of the file", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "name": "path", - "description": "URI of the file", - "paramType": "query" - }, - { - "name": "section_id", - "description": "ID of a section (valid only for pages)", - "type": "int", - "default": "root section id", - "paramType": "query" - }, - { - "name": "tag_list", - "description": "List of the tags", - "paramType": "query" - }, - { - "name": "attachment", - "paramType": "query" - }, - { - "name": "downloadable", - "description": "Checked sets the content-disposition to attachment", - "type": "boolean", - "paramType": "query", - "default": "false" - } - ] - }, - { - "httpMethod": "DELETE", - "summary": "File Delete", - "description": "Delete file", - "group": "cms_files", - "parameters": [ - { - "name": "access_token", - "description": "Your access token", - "dataType": "string", - "required": true, - "paramType": "query", - "allowMultiple": false - }, - { - "name": "id", - "description": "ID of the file", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] + "/admin/api/cms/files.xml": { + "get": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "File List", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "Current page of the list", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "per_page", + "in": "query", + "description": "Total number of records per one page (maximum 100)", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + }, + "post": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "File Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "path", + "in": "query", + "description": "URI of the file", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "section_id", + "in": "query", + "description": "ID of a section (valid only for pages)", + "schema": { + "type": "ref" + } + }, + { + "name": "tag_list", + "in": "query", + "description": "List of the tags", + "schema": { + "type": "string" + } + }, + { + "name": "attachment", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "downloadable", + "in": "query", + "description": "Checked sets the content-disposition to attachment", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } }, - { - "path": "/admin/api/cms/sections.xml", - "responseClass": "List[short-section]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Section List", - "description": "List all sections", - "group": "cms_sections", - "parameters": [ - { - "name": "access_token", - "description": "Your access token", - "dataType": "string", - "required": true, - "paramType": "query", - "allowMultiple": false - }, - { - "name": "page", - "description": "Current page of the list", - "dataType": "int", - "paramType": "query", - "default": 1 - }, - { - "name": "per_page", - "description": "Total number of records per one page (maximum 100)", - "dataType": "int", - "paramType": "query", - "default": 20 - } - ] - }, - { - "httpMethod": "POST", - "summary": "Section Create", - "description": "Create section", - "group": "cms_sections", - "parameters": [ - { - "name": "access_token", - "description": "Your access token", - "dataType": "string", - "required": true, - "paramType": "query", - "allowMultiple": false - }, - { - "name": "title", - "description": "Title of the section", - "paramType": "query", - "required": true - }, - { - "name": "public", - "description": "Public or not", - "default": "true", - "type": "boolean", - "paramType": "query" - }, - { - "name": "parent_id", - "description": "ID of a parent section", - "paramType": "query", - "default": "root section id", - "type": "int" - }, - { - "name": "partial_path", - "description": "Path of the section", - "paramType": "query" - } - ] + "/admin/api/cms/files/{id}.xml": { + "get": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "File Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the file", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + }, + "put": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "File Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the file", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "path", + "in": "query", + "description": "URI of the file", + "schema": { + "type": "string" + } + }, + { + "name": "section_id", + "in": "query", + "description": "ID of a section (valid only for pages)", + "schema": { + "type": "ref" + } + }, + { + "name": "tag_list", + "in": "query", + "description": "List of the tags", + "schema": { + "type": "string" + } + }, + { + "name": "attachment", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "downloadable", + "in": "query", + "description": "Checked sets the content-disposition to attachment", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "File Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the file", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } }, - { - "path": "/admin/api/cms/sections/{id}.xml", - "responseClass": "template", - "operations": [ - { - "httpMethod": "GET", - "summary": "Section Read", - "description": "View section", - "group": "cms_sections", - "parameters": [ - { - "name": "access_token", - "description": "Your access token", - "dataType": "string", - "required": true, - "paramType": "query", - "allowMultiple": false - }, - { - "name": "id", - "description": "ID of the section", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] - }, - { - "httpMethod": "PUT", - "summary": "Section Update", - "description": "Update section", - "group": "cms_sections", - "parameters": [ - { - "name": "access_token", - "description": "Your access token", - "dataType": "string", - "required": true, - "paramType": "query", - "allowMultiple": false - }, - { - "name": "id", - "description": "ID of the section", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "name": "title", - "description": "Title of the section", - "paramType": "query" - }, - { - "name": "public", - "description": "Public or not", - "default": "true", - "type": "boolean", - "paramType": "query" - }, - { - "name": "parent_id", - "description": "ID of a parent section", - "paramType": "query", - "default": "root section id", - "type": "int" - }, - { - "name": "partial_path", - "description": "Path of the section", - "paramType": "query" - } - ] - }, - { - "httpMethod": "DELETE", - "summary": "Section Delete", - "description": "Delete section", - "group": "cms_sections", - "parameters": [ - { - "name": "access_token", - "description": "Your access token", - "dataType": "string", - "required": true, - "paramType": "query", - "allowMultiple": false - }, - { - "name": "id", - "description": "ID of the section", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] + "/admin/api/cms/templates.xml": { + "get": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Template List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "description": "Current page of the list", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "per_page", + "in": "query", + "description": "Total number of records per one page (maximum 100)", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + }, + "post": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Template Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "type", + "in": "query", + "required": true, + "schema": { + "type": "string", + "enum": [ + "page", + "layout", + "partial" + ] + } + }, + { + "name": "system_name", + "in": "query", + "description": "Human readable and unique identifier", + "schema": { + "type": "string" + } + }, + { + "name": "title", + "in": "query", + "description": "Title of the template", + "schema": { + "type": "string" + } + }, + { + "name": "path", + "in": "query", + "description": "URI of the page", + "schema": { + "type": "string" + } + }, + { + "name": "draft", + "in": "query", + "description": "Text content of the template (you have to publish the template)", + "schema": { + "type": "string" + } + }, + { + "name": "section_name", + "in": "query", + "description": "system name of a section", + "schema": { + "type": "string" + } + }, + { + "name": "section_id", + "in": "query", + "description": "ID of a section (valid only for pages)", + "schema": { + "type": "ref" + } + }, + { + "name": "layout_name", + "in": "query", + "description": "system name of a layout (valid only for pages)", + "schema": { + "type": "string" + } + }, + { + "name": "layout_id", + "in": "query", + "description": "ID of a layout - overrides layout_name", + "schema": { + "type": "ref" + } + }, + { + "name": "liquid_enabled", + "in": "query", + "description": "liquid processing of the template content on/off", + "schema": { + "type": "boolean" + } + }, + { + "name": "handler", + "in": "query", + "description": "text will be processed by the handler before rendering", + "schema": { + "type": "string", + "enum": [ + "textile", + "markdown" + ] + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } }, - { - "path": "/admin/api/cms/templates.xml", - "responseClass": "List[short-template]", - "operations": [ - { - "httpMethod": "GET", - "summary": "Template List", - "description": "List all templates", - "group": "cms_templates", - "parameters": [ - { - "name": "access_token", - "description": "Your access token", - "dataType": "string", - "required": true, - "paramType": "query", - "allowMultiple": false - }, - { - "name": "page", - "description": "Current page of the list", - "dataType": "int", - "paramType": "query", - "default": 1 - }, - { - "name": "per_page", - "description": "Total number of records per one page (maximum 100)", - "dataType": "int", - "paramType": "query", - "default": 20 - } - ] - }, - { - "httpMethod": "POST", - "summary": "Template Create", - "description": "Create partial, layout or page", - "group": "cms_templates", - "parameters": [ - { - "name": "access_token", - "description": "Your access token", - "dataType": "string", - "required": true, - "paramType": "query", - "allowMultiple": false - }, - { - "name": "type", - "paramType": "query", - "required": true, - "allowableValues": { - "valueType": "LIST", - "values": [ - "page", - "layout", - "partial" - ] - } - }, - { - "name": "system_name", - "description": "Human readable and unique identifier", - "paramType": "query" - }, - { - "name": "title", - "description": "Title of the template", - "paramType": "query" - }, - { - "name": "path", - "description": "URI of the page", - "paramType": "query" - }, - { - "name": "draft", - "description": "Text content of the template (you have to publish the template)", - "paramType": "query" - }, - { - "name": "section_name", - "description": "system name of a section", - "paramType": "query", - "type": "string" - }, - { - "name": "section_id", - "description": "ID of a section (valid only for pages)", - "paramType": "query", - "type": "int", - "default": "root section id" - }, - { - "name": "layout_name", - "description": "system name of a layout (valid only for pages)", - "paramType": "query", - "type": "string" - }, - { - "name": "layout_id", - "description": "ID of a layout - overrides layout_name", - "paramType": "query", - "type": "int" - }, - { - "name": "liquid_enabled", - "description": "liquid processing of the template content on/off", - "paramType": "query", + "/admin/api/cms/sections.xml": { + "get": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Section List", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "description": "Current page of the list", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "per_page", + "in": "query", + "description": "Total number of records per one page (maximum 100)", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Section Create", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "title", + "in": "query", + "description": "Title of the section", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "public", + "in": "query", + "description": "Public or not", + "schema": { "type": "boolean" - }, - { - "name": "handler", - "paramType": "query", - "description": "text will be processed by the handler before rendering", - "required": false, - "allowableValues": { - "valueType": "LIST", - "values": [ - "textile", - "markdown" - ] - } - } - ] + } + }, + { + "name": "parent_id", + "in": "query", + "description": "ID of a parent section", + "schema": { + "type": "ref" + } + }, + { + "name": "partial_path", + "in": "query", + "description": "Path of the section", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } }, - { - "path": "/admin/api/cms/templates/{id}.xml", - "responseClass": "template", - "operations": [ - { - "httpMethod": "GET", - "summary": "Template Read", - "description": "View template", - "group": "cms_templates", - "parameters": [ - { - "name": "access_token", - "description": "Your access token", - "dataType": "string", - "required": true, - "paramType": "query", - "allowMultiple": false - }, - { - "name": "id", - "description": "ID of the template", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] - }, - { - "httpMethod": "PUT", - "summary": "Template Update", - "description": "Update [builtin] page, partial or layout and draft content.", - "group": "cms_templates", - "parameters": [ - { - "name": "access_token", - "description": "Your access token", - "dataType": "string", - "required": true, - "paramType": "query", - "allowMultiple": false - }, - { - "name": "id", - "description": "ID of the template", - "dataType": "int", - "required": true, - "paramType": "path" - }, - { - "name": "system_name", - "description": "Human readable and unique identifier", - "paramType": "query" - }, - { - "name": "title", - "description": "Title of the template", - "paramType": "query" - }, - { - "name": "path", - "description": "URI of the page", - "paramType": "query" - }, - { - "name": "draft", - "description": "Text content of the template (you have to publish the template)", - "paramType": "query" - }, - { - "name": "section_name", - "description": "system name of a section", - "paramType": "query", - "type": "string" - }, - { - "name": "section_id", - "description": "ID of a section (valid only for pages)", - "paramType": "query", - "type": "int", - "default": "root section id" - }, - { - "name": "layout_name", - "description": "system name of a layout (valid only for pages)", - "paramType": "query", - "type": "string" - }, - { - "name": "layout_id", - "description": "ID of a layout - overrides layout_name", - "paramType": "query", - "type": "int" - }, - { - "name": "liquid_enabled", - "description": "liquid processing of the template content on/off", - "paramType": "query", + "/admin/api/cms/templates/{id}.xml": { + "get": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Template Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the template", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Template Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the template", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "system_name", + "in": "query", + "description": "Human readable and unique identifier", + "schema": { + "type": "string" + } + }, + { + "name": "title", + "in": "query", + "description": "Title of the template", + "schema": { + "type": "string" + } + }, + { + "name": "path", + "in": "query", + "description": "URI of the page", + "schema": { + "type": "string" + } + }, + { + "name": "draft", + "in": "query", + "description": "Text content of the template (you have to publish the template)", + "schema": { + "type": "string" + } + }, + { + "name": "section_name", + "in": "query", + "description": "system name of a section", + "schema": { + "type": "string" + } + }, + { + "name": "section_id", + "in": "query", + "description": "ID of a section (valid only for pages)", + "schema": { + "type": "ref" + } + }, + { + "name": "layout_name", + "in": "query", + "description": "system name of a layout (valid only for pages)", + "schema": { + "type": "string" + } + }, + { + "name": "layout_id", + "in": "query", + "description": "ID of a layout - overrides layout_name", + "schema": { + "type": "ref" + } + }, + { + "name": "liquid_enabled", + "in": "query", + "description": "liquid processing of the template content on/off", + "schema": { "type": "boolean" - }, - { - "name": "handler", - "paramType": "query", - "description": "text will be processed by the handler before rendering", - "required": false, - "allowableValues": { - "valueType": "LIST", - "values": [ - "textile", - "markdown" - ] - } - } - ] - }, - { - "httpMethod": "DELETE", - "summary": "Template Delete", - "description": "Delete page, partial or layout.", - "group": "cms_templates", - "parameters": [ - { - "name": "access_token", - "description": "Your access token", - "dataType": "string", - "required": true, - "paramType": "query", - "allowMultiple": false - }, - { - "name": "id", - "description": "ID of the template", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] + } + }, + { + "name": "handler", + "in": "query", + "description": "text will be processed by the handler before rendering", + "schema": { + "type": "string", + "enum": [ + "textile", + "markdown" + ] + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Template Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the template", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } }, - { - "path": "/admin/api/cms/templates/{id}/publish.xml", - "responseClass": "template", - "operations": [ - { - "httpMethod": "PUT", - "summary": "Template Publish", - "description": "The current draft will be published and visible by all users.", - "group": "cms_templates", - "parameters": [ - { - "name": "access_token", - "description": "Your access token", - "dataType": "string", - "required": true, - "paramType": "query", - "allowMultiple": false - }, - { - "name": "id", - "description": "ID of the template", - "dataType": "int", - "required": true, - "paramType": "path" - } - ] + "/admin/api/cms/sections/{id}.xml": { + "get": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Section Read", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the section", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Section Update", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the section", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "title", + "in": "query", + "description": "Title of the section", + "schema": { + "type": "string" + } + }, + { + "name": "public", + "in": "query", + "description": "Public or not", + "schema": { + "type": "boolean" + } + }, + { + "name": "parent_id", + "in": "query", + "description": "ID of a parent section", + "schema": { + "type": "ref" + } + }, + { + "name": "partial_path", + "in": "query", + "description": "Path of the section", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "delete": { + "tags": [ + "adminapicmstemplates" + ], + "summary": "Section Delete", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "ID of the section", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } } - ] + } } - ] -} \ No newline at end of file + }, + "components": {} +} From 1a39f520ea786fa0ae93caa7fe7534e219277851 Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Wed, 1 Mar 2023 18:22:12 +0530 Subject: [PATCH 46/85] THREESCALE-3927 updated remainin api syntaxes --- doc/active_docs/Billing API.json | 362 ++++---- .../Developer Portal API (Tech Preview).json | 771 +++++++++--------- doc/active_docs/Policy Registry API.json | 166 ++-- 3 files changed, 666 insertions(+), 633 deletions(-) diff --git a/doc/active_docs/Billing API.json b/doc/active_docs/Billing API.json index 8e0ba2956b..2714378cf9 100644 --- a/doc/active_docs/Billing API.json +++ b/doc/active_docs/Billing API.json @@ -88,17 +88,10 @@ }, "post": { "summary": "Create Line Item for an Invoice", - "tags": ["Invoices"], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, + "tags": [ + "Invoices" + ], + "parameters": [ { "name": "invoice_id", "in": "path", @@ -108,72 +101,67 @@ "type": "integer", "format": "int32" } - }, - { - "name": "name", - "in": "query", - "description": "Name of the Line Item", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "Description of the Line Item", - "schema": { - "type": "string" - } - }, - { - "name": "quantity", - "in": "query", - "description": "Quantity of the Line Item", - "schema": { - "type": "string" - } - }, - { - "name": "cost", - "in": "query", - "description": "Total cost/price of the Line Item considering the quantity", - "schema": { - "type": "string" - } - }, - { - "name": "metric_id", - "in": "query", - "description": "Metric that have generated this Line Item", - "schema": { - "type": "string" - } - }, - { - "name": "contract_id", - "in": "query", - "description": "Contract that have generated this Line Item", - "schema": { - "type": "string" - } - }, - { - "name": "type", - "in": "query", - "description": "Type of cost. Can be [LineItem::PlanCost, LineItem::VariableCost]", - "schema": { - "type": "string" - } - }, - { - "name": "plan_id", - "in": "query", - "description": "The ID of the plan.", - "schema": { - "type": "string" - } } ], + "requestBody": { + "description": "Create Line Item for an Invoice", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "name": { + "type": "string", + "description": "Name of the Line Item" + }, + "description": { + "type": "string", + "description": "Description of the Line Item" + }, + "quantity": { + "type": "string", + "description": "Quantity of the Line Item" + }, + "cost": { + "type": "string", + "description": "Total cost/price of the Line Item considering the quantity" + }, + "metric_id": { + "type": "string", + "description": "Metric that have generated this Line Item" + }, + "contract_id": { + "type": "string", + "description": "Contract that have generated this Line Item" + }, + "type": { + "type": "string", + "description": "Type of cost. Can be [LineItem::PlanCost, LineItem::VariableCost]" + }, + "plan_id": { + "type": "string", + "description": "The ID of the plan." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -249,17 +237,10 @@ }, "put": { "summary": "Invoice Update", - "tags": ["Invoices"], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, + "tags": [ + "Invoices" + ], + "parameters": [ { "name": "id", "in": "path", @@ -269,24 +250,43 @@ "type": "integer", "format": "int32" } - }, - { - "name": "period", - "in": "query", - "description": "Billing period of the Invoice. The format should be YYYY-MM.", - "schema": { - "type": "string" - } - }, - { - "name": "friendly_id", - "in": "query", - "description": "Friendly ID of the Invoice. The format should be YYYY-MM-XXXXXXXX or YYYY-XXXXXXXX.", - "schema": { - "type": "string" - } } ], + "requestBody": { + "description": "Invoice Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "period": { + "type": "string", + "description": "Billing period of the Invoice. The format should be YYYY-MM." + }, + "friendly_id": { + "type": "string", + "description": "Friendly ID of the Invoice. The format should be YYYY-MM-XXXXXXXX or YYYY-XXXXXXXX." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -298,17 +298,10 @@ "/api/invoices/{id}/state.xml": { "put": { "summary": "Invoice Update state", - "tags": ["Invoices"], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, + "tags": [ + "Invoices" + ], + "parameters": [ { "name": "id", "in": "path", @@ -318,17 +311,40 @@ "type": "integer", "format": "int32" } - }, - { - "name": "state", - "in": "query", - "description": "State of the Invoice to set. Values allowed (depend on the previous state): cancelled, failed, paid, unpaid, pending, finalized", - "required": true, - "schema": { - "type": "string" - } } ], + "requestBody": { + "description": "Invoice Update state", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "state": { + "type": "string", + "description": "State of the Invoice to set. Values allowed (depend on the previous state): cancelled, failed, paid, unpaid, pending, finalized" + } + }, + "required": [ + "access_token", + "state" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -447,36 +463,44 @@ }, "post": { "summary": "Invoice Create", - "tags": ["Invoices"], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "account_id", - "in": "query", - "description": "ID of the account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "period", - "in": "query", - "description": "Billing period of the Invoice. The format should be YYYY-MM.", - "schema": { - "type": "string" + "tags": [ + "Invoices" + ], + "requestBody": { + "description": "Invoice Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "account_id": { + "type": "integer", + "description": "ID of the account." + }, + "period": { + "type": "string", + "description": "Billing period of the Invoice. The format should be YYYY-MM." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } } } - ], + }, "responses": { "default": { "description": "success", @@ -565,15 +589,6 @@ "post": { "summary": "Invoice Charge", "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "id", "in": "path", @@ -585,6 +600,33 @@ } } ], + "requestBody": { + "description": "Invoice Charge", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -595,4 +637,4 @@ } }, "components": {} -} \ No newline at end of file +} diff --git a/doc/active_docs/Developer Portal API (Tech Preview).json b/doc/active_docs/Developer Portal API (Tech Preview).json index e9e8e0723c..972b6ada1a 100644 --- a/doc/active_docs/Developer Portal API (Tech Preview).json +++ b/doc/active_docs/Developer Portal API (Tech Preview).json @@ -1,6 +1,8 @@ { "openapi": "3.0.1", "info": { + "title": "Developer Portal API", + "description": "API for managing the Developer Portal.", "version": "1.0" }, "servers": [ @@ -11,20 +13,11 @@ "paths": { "/admin/api/cms/templates/{id}/publish.xml": { "put": { + "summary": "Template Publish", "tags": [ "adminapicmstemplates" ], - "summary": "Template Publish", "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "id", "in": "path", @@ -36,6 +29,33 @@ } } ], + "requestBody": { + "description": "Template Publish", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -87,62 +107,59 @@ } }, "post": { + "summary": "File Create", "tags": [ "adminapicmstemplates" ], - "summary": "File Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "path", - "in": "query", - "description": "URI of the file", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "section_id", - "in": "query", - "description": "ID of a section (valid only for pages)", - "schema": { - "type": "ref" - } - }, - { - "name": "tag_list", - "in": "query", - "description": "List of the tags", - "schema": { - "type": "string" - } - }, - { - "name": "attachment", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "downloadable", - "in": "query", - "description": "Checked sets the content-disposition to attachment", - "schema": { - "type": "boolean" - } - } - ], + + "requestBody": { + "description": "File Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "path": { + "type": "string", + "description": "URI of the file" + }, + "section_id": { + "type": "ref", + "description": "ID of a section (valid only for pages)" + }, + "tag_list": { + "type": "string", + "description": "List of the tags" + }, + "attachment": { + "type": "string" + }, + "downloadable": { + "type": "boolean", + "description": "Checked sets the content-disposition to attachment" + } + }, + "required": [ + "access_token", + "path", + "attachment" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -186,20 +203,11 @@ } }, "put": { + "summary": "File Update", "tags": [ "adminapicmstemplates" ], - "summary": "File Update", "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "id", "in": "path", @@ -209,47 +217,54 @@ "type": "integer", "format": "int32" } - }, - { - "name": "path", - "in": "query", - "description": "URI of the file", - "schema": { - "type": "string" - } - }, - { - "name": "section_id", - "in": "query", - "description": "ID of a section (valid only for pages)", - "schema": { - "type": "ref" - } - }, - { - "name": "tag_list", - "in": "query", - "description": "List of the tags", - "schema": { - "type": "string" - } - }, - { - "name": "attachment", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "downloadable", - "in": "query", - "description": "Checked sets the content-disposition to attachment", - "schema": { - "type": "boolean" - } } ], + "requestBody": { + "description": "File Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "path": { + "type": "string", + "description": "URI of the file" + }, + "section_id": { + "type": "ref", + "description": "ID of a section (valid only for pages)" + }, + "tag_list": { + "type": "string", + "description": "List of the tags" + }, + "attachment": { + "type": "string" + }, + "downloadable": { + "type": "boolean", + "description": "Checked sets the content-disposition to attachment" + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -334,118 +349,90 @@ } }, "post": { + "summary": "Template Create", "tags": [ "adminapicmstemplates" ], - "summary": "Template Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "type", - "in": "query", - "required": true, - "schema": { - "type": "string", - "enum": [ - "page", - "layout", - "partial" - ] - } - }, - { - "name": "system_name", - "in": "query", - "description": "Human readable and unique identifier", - "schema": { - "type": "string" - } - }, - { - "name": "title", - "in": "query", - "description": "Title of the template", - "schema": { - "type": "string" - } - }, - { - "name": "path", - "in": "query", - "description": "URI of the page", - "schema": { - "type": "string" - } - }, - { - "name": "draft", - "in": "query", - "description": "Text content of the template (you have to publish the template)", - "schema": { - "type": "string" - } - }, - { - "name": "section_name", - "in": "query", - "description": "system name of a section", - "schema": { - "type": "string" - } - }, - { - "name": "section_id", - "in": "query", - "description": "ID of a section (valid only for pages)", - "schema": { - "type": "ref" - } - }, - { - "name": "layout_name", - "in": "query", - "description": "system name of a layout (valid only for pages)", - "schema": { - "type": "string" - } - }, - { - "name": "layout_id", - "in": "query", - "description": "ID of a layout - overrides layout_name", - "schema": { - "type": "ref" - } - }, - { - "name": "liquid_enabled", - "in": "query", - "description": "liquid processing of the template content on/off", - "schema": { - "type": "boolean" - } - }, - { - "name": "handler", - "in": "query", - "description": "text will be processed by the handler before rendering", - "schema": { - "type": "string", - "enum": [ - "textile", - "markdown" - ] - } - } - ], + "requestBody": { + "description": "Template Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "Your access token" + }, + "type": { + "type": "string", + "enum": [ + "page", + "layout", + "partial" + ] + }, + "system_name": { + "type": "string", + "description": "Human readable and unique identifier" + }, + "title": { + "type": "string", + "description": "Title of the template" + }, + "path": { + "type": "string", + "description": "URI of the page" + }, + "draft": { + "type": "string", + "description": "Text content of the template (you have to publish the template)" + }, + "section_name": { + "type": "string", + "description": "system name of a section" + }, + "section_id": { + "type": "ref", + "description": "ID of a section (valid only for pages)" + }, + "layout_name": { + "type": "string", + "description": "system name of a layout (valid only for pages)" + }, + "layout_id": { + "type": "ref", + "description": "ID of a layout - overrides layout_name" + }, + "liquid_enabled": { + "type": "boolean", + "description": "liquid processing of the template content on/off" + }, + "handler": { + "type": "string", + "description": "text will be processed by the handler before rendering", + "enum": [ + "textile", + "markdown" + ] + } + }, + "required": [ + "access_token", + "type" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -497,54 +484,54 @@ } }, "post": { + "summary": "Section Create", "tags": [ "adminapicmstemplates" ], - "summary": "Section Create", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "title", - "in": "query", - "description": "Title of the section", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "public", - "in": "query", - "description": "Public or not", - "schema": { - "type": "boolean" - } - }, - { - "name": "parent_id", - "in": "query", - "description": "ID of a parent section", - "schema": { - "type": "ref" - } - }, - { - "name": "partial_path", - "in": "query", - "description": "Path of the section", - "schema": { - "type": "string" - } - } - ], + "requestBody": { + "description": "Section Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "Your access token" + }, + "title": { + "type": "string", + "description": "Title of the section" + }, + "public": { + "type": "boolean", + "description": "Public or not" + }, + "parent_id": { + "type": "ref", + "description": "ID of a parent section" + }, + "partial_path": { + "type": "string", + "description": "Path of the section" + } + }, + "required": [ + "access_token", + "title" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -588,20 +575,11 @@ } }, "put": { + "summary": "Template Update", "tags": [ "adminapicmstemplates" ], - "summary": "Template Update", "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "id", "in": "path", @@ -611,92 +589,79 @@ "type": "integer", "format": "int32" } - }, - { - "name": "system_name", - "in": "query", - "description": "Human readable and unique identifier", - "schema": { - "type": "string" - } - }, - { - "name": "title", - "in": "query", - "description": "Title of the template", - "schema": { - "type": "string" - } - }, - { - "name": "path", - "in": "query", - "description": "URI of the page", - "schema": { - "type": "string" - } - }, - { - "name": "draft", - "in": "query", - "description": "Text content of the template (you have to publish the template)", - "schema": { - "type": "string" - } - }, - { - "name": "section_name", - "in": "query", - "description": "system name of a section", - "schema": { - "type": "string" - } - }, - { - "name": "section_id", - "in": "query", - "description": "ID of a section (valid only for pages)", - "schema": { - "type": "ref" - } - }, - { - "name": "layout_name", - "in": "query", - "description": "system name of a layout (valid only for pages)", - "schema": { - "type": "string" - } - }, - { - "name": "layout_id", - "in": "query", - "description": "ID of a layout - overrides layout_name", - "schema": { - "type": "ref" - } - }, - { - "name": "liquid_enabled", - "in": "query", - "description": "liquid processing of the template content on/off", - "schema": { - "type": "boolean" - } - }, - { - "name": "handler", - "in": "query", - "description": "text will be processed by the handler before rendering", - "schema": { - "type": "string", - "enum": [ - "textile", - "markdown" - ] - } } ], + "requestBody": { + "description": "Template Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "Your access token" + }, + "system_name": { + "type": "string", + "description": "Human readable and unique identifier" + }, + "title": { + "type": "string", + "description": "Title of the template" + }, + "path": { + "type": "string", + "description": "URI of the page" + }, + "draft": { + "type": "string", + "description": "Text content of the template (you have to publish the template)" + }, + "section_name": { + "type": "string", + "description": "system name of a section" + }, + "section_id": { + "type": "ref", + "description": "ID of a section (valid only for pages)" + }, + "layout_name": { + "type": "string", + "description": "system name of a layout (valid only for pages)" + }, + "layout_id": { + "type": "ref", + "description": "ID of a layout - overrides layout_name" + }, + "liquid_enabled": { + "type": "boolean", + "description": "liquid processing of the template content on/off" + }, + "handler": { + "type": "string", + "description": "text will be processed by the handler before rendering", + "enum": [ + "textile", + "markdown" + ] + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", @@ -773,20 +738,11 @@ } }, "put": { + "summary": "Section Update", "tags": [ "adminapicmstemplates" ], - "summary": "Section Update", "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "id", "in": "path", @@ -796,40 +752,51 @@ "type": "integer", "format": "int32" } - }, - { - "name": "title", - "in": "query", - "description": "Title of the section", - "schema": { - "type": "string" - } - }, - { - "name": "public", - "in": "query", - "description": "Public or not", - "schema": { - "type": "boolean" - } - }, - { - "name": "parent_id", - "in": "query", - "description": "ID of a parent section", - "schema": { - "type": "ref" - } - }, - { - "name": "partial_path", - "in": "query", - "description": "Path of the section", - "schema": { - "type": "string" - } } ], + "requestBody": { + "description": "Section Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "Your access token" + }, + "title": { + "type": "string", + "description": "Title of the section" + }, + "public": { + "type": "boolean", + "description": "Public or not" + }, + "parent_id": { + "type": "ref", + "description": "ID of a parent section" + }, + "partial_path": { + "type": "string", + "description": "Path of the section" + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, "responses": { "default": { "description": "success", diff --git a/doc/active_docs/Policy Registry API.json b/doc/active_docs/Policy Registry API.json index 3c369cf3c1..3e98c217b4 100644 --- a/doc/active_docs/Policy Registry API.json +++ b/doc/active_docs/Policy Registry API.json @@ -32,40 +32,53 @@ } } }, - "post":{ + "post": { "summary": "APIcast Policy Registry Create", - "tags": ["Policies"], - "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "name", - "description": "Name of the policy", - "required": true, - "dataType": "string", - "paramType": "query" - }, - { - "name": "version", - "description": "Version of the policy", - "required": true, - "dataType": "string", - "paramType": "query" - }, - { - "name": "schema", - "description": "JSON Schema of the policy", - "required": true, - "dataType": "string", - "paramType": "query" + "tags": [ + "Policies" + ], + "requestBody": { + "description": "APIcast Policy Registry Create", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "name": { + "type": "string", + "description": "Name of the policy" + }, + "version": { + "type": "string", + "description": "Version of the policy" + }, + "schema": { + "type": "string", + "description": "JSON Schema of the policy" + } + }, + "required": [ + "access_token", + "name", + "version", + "schema" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } } - ], + } + }, "responses": { "default": { "description": "success", @@ -106,47 +119,58 @@ }, "put": { "summary": "APIcast Policy Registry Update", - "description": "Updates an APIcast Policy", - "tags": ["Policies"], + "tags": [ + "Policies" + ], "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the policy. It can be an integer value or a combination 'name-version' of the policy (e.g. 'mypolicy-1.0')", - "dataType": "string", - "required": true, - "paramType": "path" - }, - { - "name": "name", - "description": "New name of the policy", - "required": false, - "dataType": "string", - "paramType": "query" - }, - { - "name": "version", - "description": "New version of the policy", - "required": false, - "dataType": "string", - "paramType": "query" - }, - { - "name": "schema", - "description": "New JSON Schema of the policy", - "required": false, - "dataType": "string", - "paramType": "query" + { + "name": "id", + "description": "ID of the policy. It can be an integer value or a combination 'name-version' of the policy (e.g. 'mypolicy-1.0')", + "dataType": "string", + "required": true, + "paramType": "path" + } + ], + "requestBody": { + "description": "APIcast Policy Registry Update", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "name": { + "type": "string", + "description": "New name of the policy" + }, + "version": { + "type": "string", + "description": "New Version of the policy" + }, + "schema": { + "type": "string", + "description": "New JSON Schema of the policy" + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } } - ], - "responses": { + } + }, + "responses": { "default": { "description": "success", "content": {} From a0f20ee2152cc5d1cbfdc5fd9b92e90a3f684788 Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Thu, 2 Mar 2023 12:34:44 +0100 Subject: [PATCH 47/85] Fixes and updates for Acc Mgmt API spec --- doc/active_docs/Account Management API.json | 2015 +++++++------------ 1 file changed, 753 insertions(+), 1262 deletions(-) diff --git a/doc/active_docs/Account Management API.json b/doc/active_docs/Account Management API.json index ed0f220dc0..fa52329004 100644 --- a/doc/active_docs/Account Management API.json +++ b/doc/active_docs/Account Management API.json @@ -14,6 +14,7 @@ "/admin/api/signup.xml": { "post": { "summary": "Signup Express (Account Create)", + "description": "This request allows you to reproduce a developer sign-up in a single API call. It will create an Account, an Admin User for the account, and optionally an Application with its keys. If the plan_id is not passed, the default plan will be used instead. You can add additional custom parameters in Fields Definition on your Admin Portal.", "tags": [ "Accounts" ], @@ -23,62 +24,7 @@ "content": { "application/x-www-form-urlencoded": { "schema": { - "type": "object", - "properties": { - "access_token": { - "type": "string", - "description": "A personal Access Token." - }, - "org_name": { - "type": "string", - "description": "Organization Name of the developer account." - }, - "username": { - "type": "string", - "description": "Username of the admin user (on the new developer account)." - }, - "email": { - "type": "string", - "description": "Email of the admin user." - }, - "password": { - "type": "string", - "description": "Password of the admin user." - }, - "account_plan_id": { - "type": "integer", - "description": "ID of the account plan (if not assigned default will be used instead)." - }, - "service_plan_id": { - "type": "integer", - "description": "ID of the service plan (if not assigned default will be used instead)." - }, - "application_plan_id": { - "type": "integer", - "description": "ID of the application plan (if not assigned default will be used instead)." - }, - "additional_fields[]": { - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "access_token", - "org_name", - "username", - "email", - "password" - ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } + "$ref": "#/components/schemas/SignupExpressRequest" } } } @@ -94,6 +40,7 @@ "/admin/api/accounts.xml": { "get": { "summary": "Account List", + "description": "Returns the list of buyer accounts (the accounts that consume your API). Filters by state are available and the results can be paginated.", "tags": [ "Accounts" ], @@ -150,6 +97,7 @@ "/admin/api/accounts/{id}.xml": { "get": { "summary": "Account Read", + "description": "Returns a buyer account.", "tags": [ "Accounts" ], @@ -182,6 +130,7 @@ }, "put": { "summary": "Account Update", + "description": "Updates a buyer account by ID. You can modify all the fields on the account, including custom fields defined in the fields definition section of your admin portal. Additional fields have to be defined by name and value (i.e &name=value).", "tags": [ "Accounts" ], @@ -197,47 +146,11 @@ } ], "requestBody": { - "description": "Update Accounts", "required": true, "content": { "application/x-www-form-urlencoded": { "schema": { - "type": "object", - "properties": { - "access_token": { - "type": "string", - "description": "A personal Access Token." - }, - "org_name": { - "type": "string", - "description": "Organization name of the account." - }, - "monthly_billing_enabled": { - "type": "boolean", - "description": "Updates monthly billing status." - }, - "monthly_charging_enabled": { - "type": "boolean", - "description": "Updates monthly charging status." - }, - "additional_fields[]": { - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "access_token" - ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } + "$ref": "#/components/schemas/AccountUpdateRequest" } } } @@ -250,7 +163,8 @@ } }, "delete": { - "summary": "Account Delete ", + "summary": "Account Delete", + "description": "Deletes a buyer account. Deleting an account removes all users, applications and service subscriptions to the account.", "tags": [ "Accounts" ], @@ -285,6 +199,7 @@ "/admin/api/accounts/find.xml": { "get": { "summary": "Account Find", + "description": "Find an account by the username or email of its users (username takes precedence over email).", "tags": [ "Accounts" ], @@ -350,6 +265,7 @@ "/admin/api/accounts/{account_id}/applications.xml": { "get": { "summary": "Application List", + "description": "Returns the list of application of an account.", "tags": [ "Account Applications" ], @@ -382,10 +298,11 @@ }, "post": { "summary": "Application Create", + "description": "Create an application. The application object can be extended with Fields Definitions in the Admin Portal where you can add/remove fields, for instance token (string), age (int), third name (string optional), etc.", "tags": [ "Account Applications" ], - "parameters": [ + "parameters": [ { "name": "account_id", "in": "path", @@ -397,79 +314,11 @@ } ], "requestBody": { - "description": "Application Create", "required": true, "content": { "application/x-www-form-urlencoded": { "schema": { - "type": "object", - "properties": { - "access_token": { - "type": "string", - "description": "A personal Access Token." - }, - "plan_id": { - "type": "integer", - "description": "ID of the application plan." - }, - "name": { - "type": "string", - "description": "Name of the application to be created." - }, - "description": { - "type": "string", - "description": "Description of the application to be created." - }, - "user_key": { - "type": "string", - "description": "User Key (API Key) of the application to be created." - }, - "application_id": { - "type": "string", - "description": "App ID or Client ID (for OAuth and OpenID Connect authentication modes) of the application to be created." - }, - "application_key[]": { - "description": "App Key(s) or Client Secret (for OAuth and OpenID Connect authentication modes) of the application to be created.", - "type": "array", - "explode": false, - "items": { - "type": "string" - } - }, - "redirect_url": { - "type": "string", - "description": "Redirect URL for the OAuth request." - }, - "first_traffic_at": { - "type": "string", - "description": "Timestamp of the first call made by the application." - }, - "first_daily_traffic_at": { - "type": "string", - "description": "Timestamp of the first call on the last day when traffic was registered for the application ('Traffic On')." - }, - "additional_fields[]": { - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "type": "array", - "explode": false, - "items": { - "type": "string" - } - } - }, - "required": [ - "access_token", - "plan_id", - "name", - "description" - ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } + "$ref": "#/components/schemas/ApplicationCreateRequest" } } } @@ -485,6 +334,7 @@ "/admin/api/accounts/{account_id}/applications/{id}.xml": { "get": { "summary": "Application Read", + "description": "Returns the application by id.", "tags": [ "Account Applications" ], @@ -526,10 +376,11 @@ }, "put": { "summary": "Application Update", + "description": "Updates an application. All fields of the application object can be updated except the id and the app_id (when using OAuth or app_id/app_key authentication pattern).", "tags": [ "Account Applications" ], - "parameters": [ + "parameters": [ { "name": "account_id", "in": "path", @@ -550,58 +401,11 @@ } ], "requestBody": { - "description": "Application Update", "required": true, "content": { "application/x-www-form-urlencoded": { "schema": { - "type": "object", - "properties": { - "access_token": { - "type": "string", - "description": "A personal Access Token." - }, - "name": { - "type": "string", - "description": "Name of the application" - }, - "description": { - "type": "string", - "description": "Description of the application" - }, - "redirect_url": { - "type": "string", - "description": "Redirect URL for the OAuth request." - }, - "first_traffic_at": { - "type": "string", - "description": "Timestamp of the first call made by the application." - }, - "first_daily_traffic_at": { - "type": "string", - "description": "Timestamp of the first call on the last day when traffic was registered for the application ('Traffic On')." - }, - - "additional_fields[]": { - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "type": "array", - "explode": false, - "items": { - "type": "string" - } - } - }, - "required": [ - "access_token", - "name" - ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } + "$ref": "#/components/schemas/ApplicationUpdateRequest" } } } @@ -615,6 +419,7 @@ }, "delete": { "summary": "Application Delete", + "description": "Deletes the application.", "tags": [ "Account Applications" ], @@ -658,10 +463,11 @@ "/admin/api/accounts/{account_id}/applications/{id}/accept.xml": { "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.", "tags": [ "Account Applications" ], - "parameters": [ + "parameters": [ { "name": "account_id", "in": "path", @@ -682,7 +488,6 @@ } ], "requestBody": { - "description": "Application Accept", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -697,13 +502,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -719,10 +517,11 @@ "/admin/api/accounts/{account_id}/applications/{id}/change_plan.xml": { "put": { "summary": "Application Change Plan", + "description": "Changes the application plan of an application.", "tags": [ "Account Applications" ], - "parameters": [ + "parameters": [ { "name": "account_id", "in": "path", @@ -743,7 +542,6 @@ } ], "requestBody": { - "description": "Application Change Plan", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -753,23 +551,16 @@ "access_token": { "type": "string", "description": "A personal Access Token." + }, + "plan_id": { + "type": "integer", + "description": "ID of the new application plan." } }, - "plan_id": { - "type": "integer", - "description": "ID of the new application plan." - }, "required": [ "access_token", "plan_id" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -785,10 +576,11 @@ "/admin/api/accounts/{account_id}/applications/{id}/customize_plan.xml": { "put": { "summary": "Application Create Plan Customization", + "description": "Creates a customized application plan for the application.", "tags": [ "Account Applications" ], - "parameters": [ + "parameters": [ { "name": "account_id", "in": "path", @@ -809,7 +601,6 @@ } ], "requestBody": { - "description": "Application Create Plan Customization", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -824,13 +615,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -846,10 +630,11 @@ "/admin/api/accounts/{account_id}/applications/{id}/decustomize_plan.xml": { "put": { "summary": "Application Delete Plan Customization", + "description": "Decustomizes the plan of an application.", "tags": [ "Account Applications" ], - "parameters": [ + "parameters": [ { "name": "account_id", "in": "path", @@ -870,7 +655,6 @@ } ], "requestBody": { - "description": "Application Delete Plan Customization", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -885,13 +669,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -907,10 +684,11 @@ "/admin/api/accounts/{account_id}/applications/{id}/resume.xml": { "put": { "summary": "Application Resume", + "description": "Resume a suspended application. Once a suspended application is resumed it will be authorized on API requests.", "tags": [ "Account Applications" ], - "parameters": [ + "parameters": [ { "name": "account_id", "in": "path", @@ -931,7 +709,6 @@ } ], "requestBody": { - "description": "Application Resume", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -946,13 +723,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -968,10 +738,11 @@ "/admin/api/accounts/{account_id}/applications/{id}/suspend.xml": { "put": { "summary": "Application Suspend", + "description": "Suspends an application (changes the state to suspended). Suspending an application will stop the application from authorizing API requests.", "tags": [ "Account Applications" ], - "parameters": [ + "parameters": [ { "name": "account_id", "in": "path", @@ -992,7 +763,6 @@ } ], "requestBody": { - "description": "Application Suspend", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -1007,13 +777,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -1073,7 +836,7 @@ "tags": [ "Account Applications" ], - "parameters": [ + "parameters": [ { "name": "account_id", "in": "path", @@ -1114,13 +877,6 @@ "access_token", "key" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -1232,7 +988,7 @@ "tags": [ "Account Applications" ], - "parameters": [ + "parameters": [ { "name": "account_id", "in": "path", @@ -1273,13 +1029,6 @@ "access_token", "referrer_filter" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -1347,6 +1096,7 @@ "/admin/api/accounts/{account_id}/messages.xml": { "post": { "summary": "Account Message", + "description": "Sends a message to the account.", "tags": [ "Accounts" ], @@ -1362,7 +1112,6 @@ } ], "requestBody": { - "description": "Account Message", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -1385,13 +1134,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -1441,6 +1183,7 @@ "/admin/api/accounts/{account_id}/service_contracts.xml": { "get": { "summary": "Service Subscription List", + "description": "List all the service_contracts of an account", "tags": [ "Accounts" ], @@ -1475,6 +1218,7 @@ "/admin/api/accounts/{account_id}/service_contracts/{id}.xml": { "delete": { "summary": "Service Subscription Delete", + "description": "Unsubscribe from a service. This endpoint will delete all the applications that are under the subscribed service.", "tags": [ "Accounts" ], @@ -1518,6 +1262,7 @@ "/admin/api/accounts/{id}/approve.xml": { "put": { "summary": "Account Approve", + "description": "Approves the account (changes the state to live). Accounts need to be approved explicitly via this API after creation. The state can also be updated by PUT on /admin/api/accounts/{id}.xml", "tags": [ "Accounts" ], @@ -1533,7 +1278,6 @@ } ], "requestBody": { - "description": "Account Approve", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -1548,13 +1292,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -1570,6 +1307,7 @@ "/admin/api/accounts/{id}/change_plan.xml": { "put": { "summary": "Account Change Plan", + "description": "Changes the account plan for the buyer account.", "tags": [ "Accounts" ], @@ -1585,7 +1323,6 @@ } ], "requestBody": { - "description": "Account Change Plan", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -1596,7 +1333,7 @@ "type": "string", "description": "A personal Access Token." }, - "plan_id":{ + "plan_id": { "type": "integer", "description": "ID of the target account plan" } @@ -1605,13 +1342,6 @@ "access_token", "plan_id" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -1653,7 +1383,7 @@ "type": "string", "description": "A personal Access Token." }, - "credit_card_token":{ + "credit_card_token": { "type": "string", "description": "Token used by the payment gateway to identify the buyer, customer profile ID (Authorize.net), customer ID (Braintree and Stripe), customer alias (Ogone-Ingenico). Some payment gateways may store more than one card under the same buyer reference and/or require an additional identifier for recurring payment. If you are using Braintree, there is no need for additional identifier -- the first credit card available will always be charged. For Authorize.net, see `credit_card_authorize_net_payment_profile_token`." }, @@ -1669,7 +1399,7 @@ "type": "string", "description": "Month of expiration of credit card. Two digit number" }, - "billing_address_name":{ + "billing_address_name": { "type": "string", "description": "Name of the person/company to bill" }, @@ -1713,13 +1443,6 @@ "billing_address_city", "billing_address_country" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -1767,6 +1490,7 @@ "/admin/api/accounts/{id}/make_pending.xml": { "put": { "summary": "Account Reset to Pending", + "description": "Resets the state of the account to pending so that it can be approved or rejected again.", "tags": [ "Accounts" ], @@ -1782,7 +1506,6 @@ } ], "requestBody": { - "description": "Account Reset to Pending", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -1797,13 +1520,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -1819,6 +1535,7 @@ "/admin/api/accounts/{id}/reject.xml": { "put": { "summary": "Account Reject", + "description": "Rejects the account (changes the state to rejected). An account can be rejected after creation, the workflow for account creation can have a validation process that ends in approving or rejecting the account submission. The state can also be updated by PUT on /admin/api/accounts/{id}.xml", "tags": [ "Accounts" ], @@ -1834,7 +1551,6 @@ } ], "requestBody": { - "description": "Account Reject", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -1849,13 +1565,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -1871,6 +1580,7 @@ "/admin/api/accounts/{account_id}/users.xml": { "get": { "summary": "User List", + "description": "Returns the list of users of an account. The list can be filtered by the state or role of the users.", "tags": [ "Users" ], @@ -1928,6 +1638,7 @@ }, "post": { "summary": "User Create", + "description": "Creates a new user of the account (account_id). Do not forget to activate the user otherwise he/she will be unable to sign-in. After creation the default state is pending and the default role is member. The user object can be extended using Fields Definitions in the Admin Portal. You can add/remove fields, for instance token (string), age (int), third name (string optional), etc. ", "tags": [ "Users" ], @@ -1943,51 +1654,11 @@ } ], "requestBody": { - "description": "User Create", "required": true, "content": { "application/x-www-form-urlencoded": { "schema": { - "type": "object", - "properties": { - "access_token": { - "type": "string", - "description": "A personal Access Token." - }, - "username": { - "type": "string", - "description": "Username of the user." - }, - "email":{ - "type": "string", - "description": "Email of the user." - }, - "password": { - "type": "string", - "description": "Password of the user." - }, - "additional_fields[]": { - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "type": "array", - "explode": false, - "items": { - "type": "string" - } - } - }, - "required": [ - "access_token", - "username", - "email", - "password" - ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } + "$ref": "#/components/schemas/UserCreateRequest" } } } @@ -2003,6 +1674,7 @@ "/admin/api/accounts/{account_id}/users/{id}.xml": { "get": { "summary": "User Read", + "description": "Returns the user of an account.", "tags": [ "Users" ], @@ -2044,6 +1716,7 @@ }, "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. Additional fields have to be defined by name and value (i.e &name=value). Remember that you can define custom fields on your Admin Portal.", "tags": [ "Users" ], @@ -2068,48 +1741,11 @@ } ], "requestBody": { - "description": "User Update", "required": true, "content": { "application/x-www-form-urlencoded": { "schema": { - "type": "object", - "properties": { - "access_token": { - "type": "string", - "description": "A personal Access Token." - }, - "username": { - "type": "string", - "description": "Username of the user." - }, - "email":{ - "type": "string", - "description": "Email of the user." - }, - "password": { - "type": "string", - "description": "Password of the user." - }, - "additional_fields[]": { - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "type": "array", - "explode": false, - "items": { - "type": "string" - } - } - }, - "required": [ - "access_token" - ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } + "$ref": "#/components/schemas/UserUpdateRequest" } } } @@ -2123,6 +1759,7 @@ }, "delete": { "summary": "User Delete", + "description": "Deletes a user of an account. The last user can't be deleted", "tags": [ "Users" ], @@ -2166,6 +1803,7 @@ "/admin/api/accounts/{account_id}/users/{id}/activate.xml": { "put": { "summary": "User Activate", + "description": "Activate the user of an account. A user is created in the pending state and needs to be activated before he/she is able to sign-in.", "tags": [ "Users" ], @@ -2190,7 +1828,6 @@ } ], "requestBody": { - "description": "User Activate", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -2204,7 +1841,6 @@ "additional_fields[]": { "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", "type": "array", - "explode": false, "items": { "type": "string" } @@ -2213,13 +1849,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -2235,6 +1864,7 @@ "/admin/api/accounts/{account_id}/users/{id}/admin.xml": { "put": { "summary": "User change Role to Admin", + "description": "Changes the role of the user to admin.", "tags": [ "Users" ], @@ -2259,7 +1889,6 @@ } ], "requestBody": { - "description": "User change Role to Admin", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -2269,26 +1898,11 @@ "access_token": { "type": "string", "description": "A personal Access Token." - }, - "additional_fields[]": { - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "type": "array", - "explode": false, - "items": { - "type": "string" - } } }, "required": [ "access_token" - ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } + ] } } } @@ -2304,6 +1918,7 @@ "/admin/api/accounts/{account_id}/users/{id}/member.xml": { "put": { "summary": "User Change Role to Member", + "description": "Changes the role of the user to member.", "tags": [ "Users" ], @@ -2328,7 +1943,6 @@ } ], "requestBody": { - "description": "User Change Role to Member", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -2343,13 +1957,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -2365,6 +1972,7 @@ "/admin/api/accounts/{account_id}/users/{id}/suspend.xml": { "put": { "summary": "User Suspend", + "description": "Changes the state of the user to suspended. A suspended user cannot sign-in.", "tags": [ "Users" ], @@ -2408,6 +2016,7 @@ "/admin/api/accounts/{account_id}/users/{id}/unsuspend.xml": { "put": { "summary": "User Unsuspend", + "description": "Change the state of the user back to active.", "tags": [ "Users" ], @@ -2432,7 +2041,6 @@ } ], "requestBody": { - "description": "User Unsuspend", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -2447,13 +2055,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -2469,6 +2070,7 @@ "/admin/api/users.xml": { "get": { "summary": "User List (provider account)", + "description": "Lists the users of the provider account. You can apply filters by state and/or role.", "tags": [ "Users" ], @@ -2517,52 +2119,16 @@ }, "post": { "summary": "User Create (provider account)", + "description": "Creates a new user in the provider account. Do not forget to activate it, otherwise he/she will not be able to sign-in. After creation the default state is pending and the default role is member. The user object can be extended using Fields Definitions in the Admin Portal where you can add/remove fields, for instance token (string), age (int), third name (string optional), etc. Additional fields have to be defined by name and value (i.e &name=value). Additional fields are the custom fields declared in the Fields Definitions section in your API Admin Portal.", "tags": [ "Users" ], "requestBody": { - "description": "User Create (provider account)", "required": true, "content": { "application/x-www-form-urlencoded": { "schema": { - "type": "object", - "properties": { - "access_token": { - "type": "string", - "description": "A personal Access Token." - }, - "username": { - "type": "string", - "description": "Username of the user." - }, - "email":{ - "type": "string", - "description": "Email of the user." - }, - "password": { - "type": "string", - "description": "Password of the user." - }, - "additional_fields[]": { - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "type": "array", - "explode": false, - "items": { - "type": "string" - } - } - }, - "required": [ - "access_token" - ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } + "$ref": "#/components/schemas/UserCreateRequest" } } } @@ -2578,6 +2144,7 @@ "/admin/api/users/{id}.xml": { "get": { "summary": "User Read (provider account)", + "description": "Gets the user of the provider account by ID.", "tags": [ "Provider Users" ], @@ -2610,13 +2177,14 @@ }, "put": { "summary": "User Update (provider account)", + "description": "Modifies the user of the provider account by ID. You can update any field, not only those in the form of the ActiveDocs but also fields that belong to the User object. Remember that you can define custom fields on your Admin Portal.", "tags": [ "Provider Users" ], "parameters": [ { "name": "id", - "in": "query", + "in": "path", "description": "ID of the user.", "required": true, "schema": { @@ -2625,48 +2193,11 @@ } ], "requestBody": { - "description": "User Update (provider account)", "required": true, "content": { "application/x-www-form-urlencoded": { "schema": { - "type": "object", - "properties": { - "access_token": { - "type": "string", - "description": "A personal Access Token." - }, - "username": { - "type": "string", - "description": "Username of the user." - }, - "email":{ - "type": "string", - "description": "Email of the user." - }, - "password": { - "type": "string", - "description": "Password of the user." - }, - "additional_fields[]": { - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "type": "array", - "explode": false, - "items": { - "type": "string" - } - } - }, - "required": [ - "access_token" - ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } + "$ref": "#/components/schemas/UserUpdateRequest" } } } @@ -2680,6 +2211,7 @@ }, "delete": { "summary": "User Delete (provider account)", + "description": "Deletes the user of the provider account by ID.", "tags": [ "Provider Users" ], @@ -2714,13 +2246,14 @@ "/admin/api/users/{id}/activate.xml": { "put": { "summary": "User Activate (provider account)", + "description": "Changes the state of the user of the provider account to active (after sign-up). You can also perform this operation with a PUT on /admin/api/users/{id}.xml to change the state parameter.", "tags": [ "Users" ], "parameters": [ { "name": "id", - "in": "query", + "in": "path", "description": "ID of the user.", "required": true, "schema": { @@ -2729,7 +2262,6 @@ } ], "requestBody": { - "description": "User Activate (provider account)", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -2744,13 +2276,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -2766,13 +2291,14 @@ "/admin/api/users/{id}/admin.xml": { "put": { "summary": "User Change Role to Admin (provider account)", + "description": "Changes the role of the provider account to admin (full rights and privileges).", "tags": [ "Users" ], "parameters": [ { "name": "id", - "in": "query", + "in": "path", "description": "ID of the user.", "required": true, "schema": { @@ -2796,13 +2322,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -2818,13 +2337,14 @@ "/admin/api/users/{id}/member.xml": { "put": { "summary": "User Change Role to Member (provider account)", + "description": "Changes the role of the user of the provider account to member.", "tags": [ "Users" ], "parameters": [ { "name": "id", - "in": "query", + "in": "path", "description": "ID of the user.", "required": true, "schema": { @@ -2833,7 +2353,6 @@ } ], "requestBody": { - "description": "User Change Role to Member (provider account)", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -2848,13 +2367,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -2870,6 +2382,7 @@ "/admin/api/users/{id}/permissions.xml": { "get": { "summary": "User Permissions Read", + "description": "Shows the permissions of the user of the provider account.", "tags": [ "Users" ], @@ -2902,19 +2415,11 @@ }, "put": { "summary": "User Permissions Update", + "description": "Updates the permissions of member user of the provider account.", "tags": [ "Users" ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "id", "in": "path", @@ -2923,41 +2428,60 @@ "schema": { "type": "integer" } - }, - { - "name": "allowed_service_ids[]", - "in": "query", - "description": "IDs of the services that need to be enabled, URL-encoded array. To disable all services, set the value to '[]'. To enable all services, add parameter 'allowed_service_ids[]' with no value to the 'curl' command (can't be done in ActiveDocs)", - "style": "form", - "explode": false, - "schema": { - "$ref": "#/components/schemas/Permissions" - } - }, - { - "name": "allowed_sections[]", - "in": "query", - "description": "The list of sections in the admin portal that the user can access, URL-encoded array. Possible values: 'portal' (Developer Portal), 'finance' (Billing), 'settings', 'partners' (Accounts -- Applications), 'monitoring' (Analytics), 'plans' (Integration & Application Plans), 'policy_registry'. To disable all sections, set the value to '[]'.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "string" + } + ], + "requestBody": { + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "allowed_service_ids[]": { + "type": "array", + "description": "IDs of the services that need to be enabled, URL-encoded array. To disable all services, set the value to '[]'. To enable all services, add parameter 'allowed_service_ids[]' with no value to the 'curl' command (can't be done in ActiveDocs)", + "items": { + "type": "integer" + } + }, + "allowed_sections[]": { + "type": "array", + "description": "The list of sections in the admin portal that the user can access, URL-encoded array. Possible values: 'portal' (Developer Portal), 'finance' (Billing), 'settings', 'partners' (Accounts -- Applications), 'monitoring' (Analytics), 'plans' (Integration & Application Plans), 'policy_registry'. To disable all sections, set the value to '[]'.", + "items": { + "type": "string", + "enum": [ + "portal", + "finance", + "partners", + "monitoring", + "settings", + "plans", + "policy_registry" + ] + } + } + }, + "required": [ + "access_token" + ] }, - "enum": [ - "portal", - "finance", - "partners", - "monitoring", - "settings", - "plans", - "policy_registry" - - ] + "encoding": { + "allowed_service_ids[]": { + "style": "form", + "explode": true + }, + "allowed_sections[]": { + "style": "form", + "explode": true + } + } } } - ], + }, "responses": { "default": { "description": "success", @@ -2969,6 +2493,7 @@ "/admin/api/users/{id}/suspend.xml": { "put": { "summary": "User Suspend (provider account)", + "description": "Changes the state of the user of the provider account to suspended, which removes the user's ability to sign-in. You can also perform this operation with a PUT on /admin/api/users/{id}.xml to change the state parameter.", "tags": [ "Users" ], @@ -2984,7 +2509,6 @@ } ], "requestBody": { - "description": "User Suspend (provider account)", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -2999,13 +2523,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -3021,13 +2538,14 @@ "/admin/api/users/{id}/unsuspend.xml": { "put": { "summary": "User Unsuspend (provider account)", + "description": "Revokes the suspension of a user of the provider account. You can also perform this operation with a PUT on /admin/api/users/{id}.xml to change the state parameter.", "tags": [ "Users" ], "parameters": [ { "name": "id", - "in": "query", + "in": "path", "description": "ID of the user.", "required": true, "schema": { @@ -3036,7 +2554,6 @@ } ], "requestBody": { - "description": "User Unsuspend (provider account)", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -3051,13 +2568,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -3073,6 +2583,7 @@ "/admin/api/users/{user_id}/access_tokens.json": { "post": { "summary": "Access Token Create", + "description": "[Deprecated API] Use \"Personal Access Tokens Create\". Creates an access token. Make sure to copy your new personal access token now. You will not be able to see it again as it is not stored for security reasons.", "tags": [ "Access Tokens" ], @@ -3088,7 +2599,6 @@ } ], "requestBody": { - "description": "Access Token Create", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -3105,26 +2615,38 @@ }, "permission": { "type": "string", - "description": "Permission of the access token. It must be either 'ro' (read only) or 'rw' (read and write)." + "description": "Permission of the access token. It must be either 'ro' (read only) or 'rw' (read and write).", + "enum": [ + "ro", + "rw" + ] }, "scopes[]": { "type": "array", - "description": "Scope of the access token. URL-encoded array containing one or more of the possible values. The possible values are, for a master user [\"account_management\", \"stats\"], and for a tenant user [\"finance\", \"account_management\", \"stats\"]", + "description": "Scope of the access token. URL-encoded array containing one or more of the possible values. The possible values are, for a master user [\"account_management\", \"stats\"], and for a tenant user [\"finance\", \"account_management\", \"stats\", \"cms\", \"policy_registry\"]", "items": { - "type": "string" + "type": "string", + "enum": [ + "account_management", + "stats", + "finance", + "cms", + "policy_registry" + ] } } }, "required": [ "access_token", "permission", - "name" + "name", + "scopes[]" ] }, "encoding": { - "field_definitions": { + "scopes[]": { "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", + "style": "form", "explode": true } } @@ -3142,6 +2664,7 @@ "/admin/api/account_plans.xml": { "get": { "summary": "Account Plan List", + "description": "Returns the list of all available account plans.", "tags": [ "Account Plans" ], @@ -3165,11 +2688,11 @@ }, "post": { "summary": "Account Plan Create", + "description": "Creates an account plan.", "tags": [ "Account Plans" ], "requestBody": { - "description": "Account Plan Create", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -3194,20 +2717,17 @@ }, "state_event": { "type": "string", - "description": "State event of the account plan. It can be 'publish' or 'hide'" + "description": "State event of the account plan. It can be 'publish' or 'hide'", + "enum": [ + "publish", + "hide" + ] } }, "required": [ "access_token", "name" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -3223,6 +2743,7 @@ "/admin/api/account_plans/{account_plan_id}/features.xml": { "get": { "summary": "Account Plan Features List", + "description": "Returns the list of the features associated to an account plan.", "tags": [ "Account Plans" ], @@ -3257,6 +2778,7 @@ "/admin/api/account_plans/{account_plan_id}/features/{id}.xml": { "post": { "summary": "Account Plan Features Create", + "description": "Associate an account feature to an account plan.", "tags": [ "Account Plans" ], @@ -3281,7 +2803,6 @@ } ], "requestBody": { - "description": "Account Plan Features Create", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -3296,13 +2817,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -3316,6 +2830,7 @@ }, "delete": { "summary": "Account Plan Features Delete", + "description": "Deletes the association of an account feature to an account plan.", "tags": [ "Account Plans" ], @@ -3359,6 +2874,7 @@ "/admin/api/account_plans/{id}.xml": { "get": { "summary": "Account Plan Read", + "description": "Returns the account plan by ID.", "tags": [ "Account Plans" ], @@ -3391,6 +2907,7 @@ }, "put": { "summary": "Account Plan Update", + "description": "Updates an account plan.", "tags": [ "Account Plans" ], @@ -3406,7 +2923,6 @@ } ], "requestBody": { - "description": "Account Plan Update", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -3427,19 +2943,16 @@ }, "state_event": { "type": "string", - "description": "State event of the account plan. It can be 'publish' or 'hide'" + "description": "State event of the account plan. It can be 'publish' or 'hide'", + "enum": [ + "publish", + "hide" + ] } }, "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -3453,6 +2966,7 @@ }, "delete": { "summary": "Account Plan Delete", + "description": "Deletes an account plan.", "tags": [ "Account Plans" ], @@ -3487,6 +3001,7 @@ "/admin/api/account_plans/{id}/default.xml": { "put": { "summary": "Account Plan set to Default", + "description": "Set the account plan to be the default one. The default account plan is used unless another account plan is passed explicitly, for instance on the signup express.", "tags": [ "Account Plans" ], @@ -3502,7 +3017,6 @@ } ], "requestBody": { - "description": "Account Plan set to Default", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -3517,13 +3031,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -3539,6 +3046,7 @@ "/admin/api/active_docs.json": { "get": { "summary": "ActiveDocs Spec List", + "description": "Lists all ActiveDocs specs", "tags": [ "Active Docs" ], @@ -3562,11 +3070,11 @@ }, "post": { "summary": "ActiveDocs Spec Create", + "description": "Creates a new ActiveDocs spec", "tags": [ "Active Docs" ], "requestBody": { - "description": "ActiveDocs Spec Create", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -3611,13 +3119,6 @@ "name", "body" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -3633,6 +3134,7 @@ "/admin/api/active_docs/{id}.json": { "get": { "summary": "ActiveDocs Spec Read", + "description": "Returns the ActiveDocs spec by ID", "tags": [ "Active Docs" ], @@ -3665,6 +3167,7 @@ }, "put": { "summary": "ActiveDocs Spec Update", + "description": "Updates the ActiveDocs spec by ID", "tags": [ "Active Docs" ], @@ -3680,7 +3183,6 @@ } ], "requestBody": { - "description": "ActiveDocs Spec Update", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -3719,13 +3221,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -3739,6 +3234,7 @@ }, "delete": { "summary": "ActiveDocs Spec Delete", + "description": "Deletes the ActiveDocs spec by ID", "tags": [ "Active Docs" ], @@ -3798,6 +3294,7 @@ "/admin/api/application_plans/{application_plan_id}/features.xml": { "get": { "summary": "Application Plan Feature List", + "description": "Returns the list of features of the application plan.", "tags": [ "Application Plans" ], @@ -3830,6 +3327,7 @@ }, "post": { "summary": "Application Plan Feature Create", + "description": "Associates a feature to an application plan.", "tags": [ "Application Plans" ], @@ -3845,7 +3343,6 @@ } ], "requestBody": { - "description": "Application Plan Feature Create", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -3865,13 +3362,6 @@ "access_token", "feature_id" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -3887,6 +3377,7 @@ "/admin/api/application_plans/{application_plan_id}/features/{id}.xml": { "delete": { "summary": "Application Plan Feature Delete", + "description": "Removes the association of a feature to an application plan.", "tags": [ "Application Plans" ], @@ -3930,6 +3421,7 @@ "/admin/api/application_plans/{application_plan_id}/limits.xml": { "get": { "summary": "Limits List per Application Plan", + "description": "Returns the list of all limits associated to an application plan.", "tags": [ "Application Plans" ], @@ -3982,6 +3474,7 @@ "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/limits.xml": { "get": { "summary": "Limit List per Metric", + "description": "Returns the list of all limits associated to a metric of an application plan.", "tags": [ "Application Plans" ], @@ -4023,6 +3516,7 @@ }, "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).", "tags": [ "Application Plans" ], @@ -4047,7 +3541,6 @@ } ], "requestBody": { - "description": "Limit Create", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -4066,7 +3559,7 @@ "type": "string", "description": "Period of the limit.", "default": "minute", - "enum": [ + "enum": [ "eternity", "year", "month", @@ -4082,13 +3575,6 @@ "period", "value" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -4104,6 +3590,7 @@ "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/limits/{id}.xml": { "get": { "summary": "Limit Read", + "description": "Returns a limit on a metric of an application plan.", "tags": [ "Application Plans" ], @@ -4154,6 +3641,7 @@ }, "put": { "summary": "Limit Update", + "description": "Updates a limit on a metric of an application plan.", "tags": [ "Application Plans" ], @@ -4187,7 +3675,6 @@ } ], "requestBody": { - "description": "Limit Update", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -4206,7 +3693,7 @@ "type": "string", "description": "Period of the limit.", "default": "minute", - "enum": [ + "enum": [ "eternity", "year", "month", @@ -4222,13 +3709,6 @@ "period", "value" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -4242,6 +3722,7 @@ }, "delete": { "summary": "Limit Delete", + "description": "Deletes a limit on a metric of an application plan.", "tags": [ "Application Plans" ], @@ -4294,6 +3775,7 @@ "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/pricing_rules.xml": { "get": { "summary": "Pricing Rules List per Metric", + "description": "Returns the list of all pricing rules associated to a metric of an application plan.", "tags": [ "Application Plans" ], @@ -4335,6 +3817,7 @@ }, "post": { "summary": "Pricing Rule Create", + "description": "Creates a pricing rule for an associated application plan.", "tags": [ "Application Plans" ], @@ -4359,7 +3842,6 @@ } ], "requestBody": { - "description": "Pricing Rule Create", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -4387,13 +3869,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -4409,6 +3884,7 @@ "/admin/api/application_plans/{application_plan_id}/metrics/{metric_id}/pricing_rules/{id}.json": { "delete": { "summary": "Pricing Rule Delete", + "description": "Deletes a pricing rule for a given application plan and metric.", "tags": [ "Application Plans" ], @@ -4461,6 +3937,7 @@ "/admin/api/application_plans/{application_plan_id}/pricing_rules.xml": { "get": { "summary": "Pricing Rules List per Application Plan", + "description": "Returns the list of all pricing rules associated to an application plan.", "tags": [ "Application Plans" ], @@ -4495,6 +3972,7 @@ "/admin/api/services/{service_id}/application_plans.xml": { "get": { "summary": "Application Plan List", + "description": "Returns the list of all application plans of a service.", "tags": [ "Application Plans" ], @@ -4588,13 +4066,6 @@ "access_token", "name" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -4720,13 +4191,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -4822,13 +4286,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -4844,6 +4301,7 @@ "/admin/api/applications.xml": { "get": { "summary": "Application List (all services)", + "description": "Returns the list of applications across all services. Note that applications are scoped by service and can be paginated.", "tags": [ "Service Applications" ], @@ -4988,6 +4446,7 @@ "/admin/api/account/authentication_providers.xml": { "get": { "summary": "Authentication Providers Admin Portal List", + "description": "Returns the list of all the authentication providers for the admin portal.", "tags": [ "Admin Portal Authentication Providers" ], @@ -5011,11 +4470,11 @@ }, "post": { "summary": "Authentication Provider Admin Portal Create", + "description": "Creates an authentication provider for the admin portal.", "tags": [ "Admin Portal Authentication Providers" ], "requestBody": { - "description": "Authentication Provider Admin Portal Create", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -5028,7 +4487,11 @@ }, "kind": { "type": "string", - "description": "The kind of authentication provider which can be either 'auth0' or 'keycloak'. Use 'keycloak' for Red Hat Single Sign-On." + "description": "The kind of authentication provider which can be either 'auth0' or 'keycloak'. Use 'keycloak' for Red Hat Single Sign-On.", + "enum": [ + "keycloak", + "auth0" + ] }, "name": { "type": "string", @@ -5063,13 +4526,6 @@ "access_token", "kind" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -5085,6 +4541,7 @@ "/admin/api/account/authentication_providers/{id}.xml": { "get": { "summary": "Authentication Provider Admin Portal Read", + "description": "Read an authentication provider for the admin portal.", "tags": [ "Admin Portal Authentication Providers" ], @@ -5117,6 +4574,7 @@ }, "put": { "summary": "Authentication Provider Admin Portal Update", + "description": "Updates an authentication provider for the admin portal.", "tags": [ "Admin Portal Authentication Providers" ], @@ -5132,7 +4590,6 @@ } ], "requestBody": { - "description": "Authentication Provider Admin Portal Update", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -5167,13 +4624,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -5189,6 +4639,7 @@ "/admin/api/authentication_providers.xml": { "get": { "summary": "Authentication Providers Developer Portal List", + "description": "Returns the list of all the authentication providers for the developer portal.", "tags": [ "Developer Portal Authentication Providers" ], @@ -5212,11 +4663,11 @@ }, "post": { "summary": "Authentication Provider Developer Portal Create", + "description": "Creates an authentication provider for the developer portal.", "tags": [ "Developer Portal Authentication Providers" ], "requestBody": { - "description": "Authentication Provider Developer Portal Create", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -5281,7 +4732,11 @@ }, "branding_state_event": { "type": "string", - "description": "Branding state event of the authentication provider. Only available for Github. It can be either 'brand_as_threescale' (the default one) or 'custom_brand'" + "description": "Branding state event of the authentication provider. Only available for Github. It can be either 'brand_as_threescale' (the default one) or 'custom_brand'", + "enum": [ + "brand_as_threescale", + "custom_brand" + ] }, "skip_ssl_certificate_verification": { "type": "boolean", @@ -5296,13 +4751,6 @@ "access_token", "kind" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -5318,6 +4766,7 @@ "/admin/api/authentication_providers/{id}.xml": { "get": { "summary": "Authentication Provider Read", + "description": "Returns an authentication provider.", "tags": [ "Developer Portal Authentication Providers" ], @@ -5350,6 +4799,7 @@ }, "put": { "summary": "Authentication Provider Developer Portal Update", + "description": "Updates an authentication provider for the developer portal.", "tags": [ "Developer Portal Authentication Providers" ], @@ -5365,7 +4815,6 @@ } ], "requestBody": { - "description": "Authentication Provider Developer Portal Update", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -5404,13 +4853,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -5504,13 +4946,6 @@ "name", "private_endpoint" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -5604,13 +5039,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -5766,13 +5194,6 @@ "delta", "metric_id" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -5892,13 +5313,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -6031,7 +5445,7 @@ "type": "string", "description": "A personal Access Token." }, - "friendly_name": { + "friendly_name": { "type": "string", "description": "Descriptive Name of the metric." }, @@ -6053,13 +5467,6 @@ "unit", "friendly_name" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -6151,7 +5558,7 @@ "type": "string", "description": "A personal Access Token." }, - "friendly_name": { + "friendly_name": { "type": "string", "description": "Descriptive Name of the metric." }, @@ -6167,13 +5574,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -6346,13 +5746,6 @@ "friendly_name", "unit" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -6478,13 +5871,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -6550,6 +5936,7 @@ "/admin/api/services/{service_id}/backend_usages.json": { "get": { "summary": "Backend Usage List", + "description": "Returns the list of all Backend being used by a Service (Product) with the corresponding path.", "tags": [ "Backends" ], @@ -6582,6 +5969,7 @@ }, "post": { "summary": "Backend Usage Create", + "description": "Adds a Backend to a Service (Product).", "tags": [ "Backends" ], @@ -6597,7 +5985,6 @@ } ], "requestBody": { - "description": "Backend Usage Create", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -6609,11 +5996,11 @@ "description": "A personal Access Token." }, "backend_api_id": { - "type": "string", + "type": "integer", "description": "Backend to be added to the Service (Product)." }, "path": { - "type": "integer", + "type": "string", "description": "Path of the Backend for this product." } }, @@ -6621,13 +6008,6 @@ "access_token", "backend_api_id" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -6643,6 +6023,7 @@ "/admin/api/services/{service_id}/backend_usages/{id}.json": { "get": { "summary": "Backend Usage Read", + "description": "Show the usage of a Backend within the scope of the Service (Product).", "tags": [ "Backends" ], @@ -6684,6 +6065,7 @@ }, "put": { "summary": "Backend Usage Update", + "description": "Updates the path of a Backend within the scope of the Service (Product).", "tags": [ "Backends" ], @@ -6708,7 +6090,6 @@ } ], "requestBody": { - "description": "Backend Usage Update", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -6722,18 +6103,11 @@ "path": { "type": "integer", "description": "Path of the Backend for this product." - } + } }, "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -6747,6 +6121,7 @@ }, "delete": { "summary": "Backend Usage Delete", + "description": "Removes the backend from a Service (Product).", "tags": [ "Backends" ], @@ -6790,6 +6165,7 @@ "/admin/api/features.xml": { "get": { "summary": "Account Features List", + "description": "Returns the list of the features available to accounts. Account features are globally scoped.", "tags": [ "Account Features" ], @@ -6813,11 +6189,11 @@ }, "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.", "tags": [ "Account Features" ], "requestBody": { - "description": "Account Feature Create", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -6835,19 +6211,12 @@ "system_name": { "type": "string", "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects." - } + } }, "required": [ "access_token", "name" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -6863,6 +6232,7 @@ "/admin/api/features/{id}.xml": { "get": { "summary": "Account Feature Read", + "description": "Returns an account feature.", "tags": [ "Account Features" ], @@ -6895,6 +6265,7 @@ }, "put": { "summary": "Account Feature Update", + "description": "Updates an account feature.", "tags": [ "Account Features" ], @@ -6910,7 +6281,6 @@ } ], "requestBody": { - "description": "Account Feature Update", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -6924,19 +6294,12 @@ "name": { "type": "string", "description": "Name of the feature." - } + } }, "required": [ "access_token", "name" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -6950,6 +6313,7 @@ }, "delete": { "summary": "Account Feature Delete", + "description": "Deletes an account feature.", "tags": [ "Account Features" ], @@ -6984,6 +6348,7 @@ "/admin/api/fields_definitions.json": { "get": { "summary": "Fields Definitions List", + "description": "Returns the list of all fields definitions.", "tags": [ "Fields Definitions" ], @@ -7007,11 +6372,11 @@ }, "post": { "summary": "Fields Definition Create", + "description": "Creates a new fields definition.", "tags": [ "Fields Definitions" ], "requestBody": { - "description": "Create Fields Definitions", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -7020,18 +6385,17 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "required": true + "description": "A personal Access Token." }, - "target":{ + "target": { "type": "string", "description": "Target entity of fields definition (use Cinstance for Application).", "default": "Account", - "enum": [ - "Account", - "User", - "Cinstance" - ] + "enum": [ + "Account", + "User", + "Cinstance" + ] }, "name": { "type": "string", @@ -7068,9 +6432,8 @@ ] }, "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", + "choices[]": { + "style": "form", "explode": true } } @@ -7088,6 +6451,7 @@ "/admin/api/fields_definitions/{id}.json": { "get": { "summary": "Fields Definition Read", + "description": "Returns the fields definition by id.", "tags": [ "Fields Definitions" ], @@ -7120,9 +6484,10 @@ }, "put": { "summary": "Fields Definition Update", + "description": "Updates the fields definition.", "tags": [ - "Fields Definitions" - ], + "Fields Definitions" + ], "parameters": [ { "name": "id", @@ -7132,81 +6497,80 @@ "schema": { "type": "integer" } - } + } ], "requestBody": { - "description": "Update Fields Definitions", "required": true, "content": { "application/x-www-form-urlencoded": { "schema": { "type": "object", - "properties": { - "access_token": { - "type": "string", - "description": "A personal Access Token." - }, - "target":{ - "type": "string", - "description": "Target entity of fields definition (use Cinstance for Application).", - "default": "Account", - "enum": [ - "Account", - "User", - "Cinstance" - ] - }, - "label": { - "type": "string", - "description": "The field title your developers will see." - }, - "read_only": { - "type": "boolean", - "description": "If 'true' the developers won't be able to change this field." - }, - "required": { - "type": "boolean", - "description": "If 'true' the field will be required for developers." - }, - "position": { - "type": "integer", - "description": "Position of the fields definition." - }, - "hidden": { - "type": "boolean", - "description": "If 'true' the developers won't be able to see this field." - }, - "choices[]": { - "type": "array", - "items": { - "type": "string" - } + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "target": { + "type": "string", + "description": "Target entity of fields definition (use Cinstance for Application).", + "default": "Account", + "enum": [ + "Account", + "User", + "Cinstance" + ] + }, + "label": { + "type": "string", + "description": "The field title your developers will see." + }, + "read_only": { + "type": "boolean", + "description": "If 'true' the developers won't be able to change this field." + }, + "required": { + "type": "boolean", + "description": "If 'true' the field will be required for developers." + }, + "position": { + "type": "integer", + "description": "Position of the fields definition." + }, + "hidden": { + "type": "boolean", + "description": "If 'true' the developers won't be able to see this field." + }, + "choices[]": { + "type": "array", + "items": { + "type": "string" } - }, - "required": [ - "access_token", - "target" - ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true } + }, + "required": [ + "access_token", + "target" + ] + }, + "encoding": { + "choices[]": { + "style": "form", + "explode": true } } } - }, + } + }, "responses": { "default": { "description": "success", "content": {} } } - }, + }, "delete": { "summary": "Fields Definition Delete", + "description": "Deletes the fields definition.", "tags": [ "Fields Definitions" ], @@ -7241,6 +6605,7 @@ "/admin/api/objects/status.json": { "get": { "summary": "Object deletion status for objects that are deleted asynchronously", + "description": "Returns an object status. (200/404). Useful for those objects that deleted asynchronously in order to know if the deletion has been completed(404) or not(200)", "tags": [ "Object Deletion Status" ], @@ -7284,6 +6649,7 @@ "/admin/api/personal/access_tokens.json": { "get": { "summary": "Personal Access Token List", + "description": "Returns the list of access tokens of the user. If the parameter name is sent, it returns only those whose name contain the string of the param", "tags": [ "Access Tokens" ], @@ -7315,11 +6681,11 @@ }, "post": { "summary": "Personal Access Token Create", + "description": "Creates an access token. Make sure to copy your new personal access token now. You will not be able to see it again as it is not stored for security reasons.", "tags": [ "Access Tokens" ], "requestBody": { - "description": "Personal Access Token Create", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -7336,13 +6702,24 @@ }, "permission": { "type": "string", - "description": "Permission of the access token. It must be either 'ro' (read only) or 'rw' (read and write)." + "description": "Permission of the access token. It must be either 'ro' (read only) or 'rw' (read and write).", + "enum": [ + "ro", + "rw" + ] }, "scopes[]": { "type": "array", - "description": "Scope of the access token. URL-encoded array containing one or more of the possible values. The possible values are, for a master user [\"account_management\", \"stats\", \"policy_registry\"], and for a tenant user [\"finance\", \"account_management\", \"stats\", \"policy_registry\"]", + "description": "Scope of the access token. URL-encoded array containing one or more of the possible values. The possible values are, for a master user [\"account_management\", \"stats\", \"policy_registry\"], and for a tenant user [\"finance\", \"account_management\", \"stats\", \"policy_registry\", \"cms\"]", "items": { - "type": "string" + "type": "string", + "enum": [ + "account_management", + "stats", + "finance", + "cms", + "policy_registry" + ] } } }, @@ -7350,13 +6727,12 @@ "access_token", "name", "permission", - "scopes" + "scopes[]" ] }, "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", + "scopes[]": { + "style": "form", "explode": true } } @@ -7374,6 +6750,7 @@ "/admin/api/personal/access_tokens/{id}.json": { "get": { "summary": "Personal Access Token Read", + "description": "Shows an access token.", "tags": [ "Access Tokens" ], @@ -7406,6 +6783,7 @@ }, "delete": { "summary": "Personal Access Token Delete", + "description": "Deletes an access token.", "tags": [ "Access Tokens" ], @@ -7440,6 +6818,7 @@ "/admin/api/policies.json": { "get": { "summary": "APIcast Policy Registry", + "description": "Returns APIcast Policy Registry", "tags": [ "APIcast Policies" ], @@ -7465,6 +6844,7 @@ "/admin/api/provider.xml": { "get": { "summary": "Provider Account Read", + "description": "Returns your account.", "tags": [ "Provider Account" ], @@ -7488,11 +6868,11 @@ }, "put": { "summary": "Provider Account Update", + "description": "Updates email addresses used to deliver email notifications to customers.", "tags": [ "Provider Account" ], "requestBody": { - "description": "Provider Account Update", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -7523,13 +6903,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -7545,6 +6918,7 @@ "/admin/api/service_plans.xml": { "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.", "tags": [ "Service Plans" ], @@ -7570,6 +6944,7 @@ "/admin/api/service_plans/{service_plan_id}/features.xml": { "get": { "summary": "Service Plan Feature List", + "description": "Returns the list of features of a service plan.", "tags": [ "Service Plans" ], @@ -7602,6 +6977,7 @@ }, "post": { "summary": "Service Plan Feature Add", + "description": "Associates an existing feature to a service plan.", "tags": [ "Service Plans" ], @@ -7617,7 +6993,6 @@ } ], "requestBody": { - "description": "Service Plan Feature Add", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -7637,13 +7012,6 @@ "access_token", "feature_id" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -7659,6 +7027,7 @@ "/admin/api/service_plans/{service_plan_id}/features/{id}.xml": { "delete": { "summary": "Service Plan Features Delete", + "description": "Removes the association of a feature to a service plan.", "tags": [ "Service Plans" ], @@ -7702,6 +7071,7 @@ "/admin/api/services.xml": { "get": { "summary": "Service List", + "description": "Returns the list of all services.", "tags": [ "Services" ], @@ -7743,61 +7113,16 @@ }, "post": { "summary": "Service Create", + "description": "Creates a new service.", "tags": [ "Services" ], "requestBody": { - "description": "Service Create", "required": true, "content": { "application/x-www-form-urlencoded": { "schema": { - "type": "object", - "properties": { - "access_token": { - "type": "string", - "description": "A personal Access Token." - }, - "name": { - "type": "string", - "description": "Name of the service to be created." - }, - "description": { - "type": "string", - "description": "Description of the service to be created." - }, - "deployment_option": { - "type": "string", - "description": "Deployment option for the gateway: 'hosted' for APIcast hosted, 'self_managed' for APIcast Self-managed, 'service_mesh_istio' for Istio service mesh option" - }, - "backend_version": { - "type": "string", - "description": "Authentication mode: '1' for API key, '2' for App Id / App Key, 'oidc' for OpenID Connect" - }, - "system_name": { - "type": "string", - "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects." - }, - " ": { - "type": "array", - "description": "Extra parameters", - "explode": false, - "items": { - "type": "object" - } - } - }, - "required": [ - "access_token", - "name" - ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } + "$ref": "#/components/schemas/ServiceCreateRequest" } } } @@ -7812,115 +7137,65 @@ }, "/admin/api/services/{id}.xml": { "get": { - "summary": "Service Read", - "tags": [ - "Services" - ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - }, - "put": { - "summary": "Service Update", - "tags": [ - "Services" - ], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the service.", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "name", - "in": "query", - "description": "New name for the service.", - "schema": { - "type": "string" - } - }, - { - "name": "description", - "in": "query", - "description": "New description for the service.", - "schema": { - "type": "string" - } - }, + "summary": "Service Read", + "description": "Returns the service by id.", + "tags": [ + "Services" + ], + "parameters": [ { - "name": "support_email", + "name": "access_token", "in": "query", - "description": "New support email.", + "description": "A personal Access Token", + "required": true, "schema": { "type": "string" } }, { - "name": "deployment_option", - "in": "query", - "description": "Deployment option for the gateway: 'hosted' for APIcast hosted, 'self_managed' for APIcast Self-managed, 'service_mesh_istio' for Istio service mesh option", + "name": "id", + "in": "path", + "description": "ID of the service.", + "required": true, "schema": { - "type": "string" + "type": "integer" } - }, + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "put": { + "summary": "Service Update", + "description": "Update the service.", + "tags": [ + "Services" + ], + "parameters": [ { - "name": "backend_version", - "in": "query", - "description": "Authentication mode: '1' for API key, '2' for App Id / App Key, 'oidc' for OpenID Connect", + "name": "id", + "in": "path", + "description": "ID of the service.", + "required": true, "schema": { - "type": "string" + "type": "integer" } - }, - { - "name": " ", - "in": "query", - "description": "Extra parameters", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" + } + ], + "requestBody": { + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "$ref": "#/components/schemas/ServiceUpdateRequest" } } } - ], + }, "responses": { "default": { "description": "success", @@ -7930,6 +7205,7 @@ }, "delete": { "summary": "Service Delete", + "description": "Delete the service. Deleting a service removes all applications and service subscriptions.", "tags": [ "Services" ], @@ -7964,6 +7240,7 @@ "/admin/api/services/{id}/service_plans.xml": { "get": { "summary": "Service Plan List", + "description": "Returns a list of all service plans for a service.", "tags": [ "Service Plans" ], @@ -7996,6 +7273,7 @@ }, "post": { "summary": "Service Plan Create", + "description": "Creates a new service plan in a service.", "tags": [ "Service Plans" ], @@ -8011,7 +7289,6 @@ } ], "requestBody": { - "description": "Service Plan Create", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -8034,22 +7311,19 @@ "type": "string", "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects." }, - "state_event":{ + "state_event": { "type": "string", - "description": "State event of the service plan. It can be 'publish' or 'hide'" + "description": "State event of the service plan. It can be 'publish' or 'hide'", + "enum": [ + "publish", + "hide" + ] } }, "required": [ "access_token", "name" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -8065,6 +7339,7 @@ "/admin/api/services/{service_id}/metrics.xml": { "get": { "summary": "Service Metric List", + "description": "Returns the list of metrics of a service.", "tags": [ "Services" ], @@ -8097,6 +7372,7 @@ }, "post": { "summary": "Service Metric Create", + "description": "Creates a metric on a service.", "tags": [ "Services" ], @@ -8112,7 +7388,6 @@ } ], "requestBody": { - "description": "Service Metric Create", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -8149,13 +7424,6 @@ "friendly_name", "unit" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -8171,6 +7439,7 @@ "/admin/api/services/{service_id}/metrics/{id}.xml": { "get": { "summary": "Service Metric Read", + "description": "Returns the metric of a service.", "tags": [ "Services" ], @@ -8212,6 +7481,7 @@ }, "put": { "summary": "Service Metric Update", + "description": "Updates the metric of a service.", "tags": [ "Services" ], @@ -8236,7 +7506,6 @@ } ], "requestBody": { - "description": "Service Metric Update", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -8263,13 +7532,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -8283,6 +7545,7 @@ }, "delete": { "summary": "Service 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.", "tags": [ "Services" ], @@ -8326,6 +7589,7 @@ "/admin/api/services/{service_id}/metrics/{metric_id}/methods.xml": { "get": { "summary": "Service Method List", + "description": "List the methods of a metric that belongs to a service. Methods are metrics that are children of a parent metric.", "tags": [ "Services" ], @@ -8367,6 +7631,7 @@ }, "post": { "summary": "Service Method Create", + "description": "Creates a method under a metric that belongs to a service.", "tags": [ "Services" ], @@ -8391,7 +7656,6 @@ } ], "requestBody": { - "description": "Service Method Create", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -8424,13 +7688,6 @@ "friendly_name", "unit" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -8446,6 +7703,7 @@ "/admin/api/services/{service_id}/metrics/{metric_id}/methods/{id}.xml": { "get": { "summary": "Service Method Read", + "description": "Returns the method of a metric that belongs to a service.", "tags": [ "Services" ], @@ -8496,6 +7754,7 @@ }, "put": { "summary": "Service Method Update", + "description": "Updates a method of a metric that belongs to a service.", "tags": [ "Services" ], @@ -8529,7 +7788,6 @@ } ], "requestBody": { - "description": "Service Method Update", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -8556,13 +7814,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -8576,6 +7827,7 @@ }, "delete": { "summary": "Service Method Delete", + "description": "Deletes the method of a metric that belongs to a service.", "tags": [ "Services" ], @@ -8628,6 +7880,7 @@ "/admin/api/account/proxy_configs/{environment}.json": { "get": { "summary": "Proxy Configs List (Provider)", + "description": "Returns the Proxy Configs of the provider", "tags": [ "Proxy Configs for Provider" ], @@ -8647,7 +7900,11 @@ "description": "Gateway environment. Must be 'sandbox' or 'production'", "required": true, "schema": { - "type": "string" + "type": "string", + "enum": [ + "sandbox", + "production" + ] } }, { @@ -8678,6 +7935,7 @@ "/admin/api/services/{service_id}/proxy.xml": { "get": { "summary": "Proxy Read", + "description": "Returns the Proxy of a Service.", "tags": [ "Gateway" ], @@ -8710,6 +7968,7 @@ }, "patch": { "summary": "Proxy Update", + "description": "Changes the Proxy settings. This will create a new APIcast configuration version for the Staging environment with the updated settings.", "tags": [ "Gateway" ], @@ -8725,7 +7984,6 @@ } ], "requestBody": { - "description": "Proxy Update", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -8790,7 +8048,7 @@ }, "error_status_no_match": { "type": "string", - "description": "Content-Type header when no mapping rule is matched." + "description": "Content-Type header when no mapping rule is matched." }, "error_status_limits_exceeded": { "type": "integer", @@ -8828,13 +8086,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -8850,6 +8101,7 @@ "/admin/api/services/{service_id}/proxy/deploy.xml": { "post": { "summary": "Proxy Deploy", + "description": "Promotes the APIcast configuration to the Staging Environment (Production Environment in case of Service Mesh).", "tags": [ "Gateway" ], @@ -8865,7 +8117,6 @@ } ], "requestBody": { - "description": "Proxy Deploy", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -8875,18 +8126,11 @@ "access_token": { "type": "string", "description": "A personal Access Token." - } + } }, "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -8902,6 +8146,7 @@ "/admin/api/services/{service_id}/proxy/mapping_rules.xml": { "get": { "summary": "Proxy Mapping Rules List", + "description": "Returns the Mapping Rules of a Proxy.", "tags": [ "Gateway" ], @@ -8934,6 +8179,7 @@ }, "post": { "summary": "Proxy Mapping Rule Create", + "description": "Creates a Proxy Mapping Rule. The proxy object needs to be updated after a mapping rule is added to apply the change to the APIcast configuration. If adding multiple mapping rules then only one call to the Proxy Update endpoint is necessary after all mapping rules have been created.", "tags": [ "Gateway" ], @@ -8949,7 +8195,6 @@ } ], "requestBody": { - "description": "Proxy Mapping Rule Create", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -8992,13 +8237,6 @@ "delta", "metric_id" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -9014,6 +8252,7 @@ "/admin/api/services/{service_id}/proxy/mapping_rules/{id}.xml": { "get": { "summary": "Proxy Mapping Rules Show", + "description": "Returns the Mapping Rule.", "tags": [ "Gateway" ], @@ -9055,6 +8294,7 @@ }, "delete": { "summary": "Proxy Mapping Rule Delete", + "description": "Deletes a Proxy Mapping Rule. The proxy object needs to be updated after a mapping rule is deleted to apply the change to the APIcast configuration. If deleting multiple mapping rules then only one call to the Proxy Update endpoint is necessary after all desired mapping rules have been deleted.", "tags": [ "Gateway" ], @@ -9096,6 +8336,7 @@ }, "patch": { "summary": "Proxy Mapping Rule Update", + "description": "Updates a Proxy Mapping Rule. The proxy object needs to be updated after a mapping rule is updated to apply the change to the APIcast configuration. If updating multiple mapping rules then only one call to the Proxy Update endpoint is necessary after all mapping rules have been updated.", "tags": [ "Gateway" ], @@ -9120,7 +8361,6 @@ } ], "requestBody": { - "description": "Proxy Mapping Rule Update", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -9159,13 +8399,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -9181,6 +8414,7 @@ "/admin/api/services/{service_id}/proxy/oidc_configuration.xml": { "get": { "summary": "OIDC Configuration Show", + "description": "Get the Proxy OIDC configuration.", "tags": [ "Gateway" ], @@ -9213,6 +8447,7 @@ }, "patch": { "summary": "OIDC Configuration Update", + "description": "Changes the Proxy OIDC configuration.", "tags": [ "Gateway" ], @@ -9259,13 +8494,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -9281,6 +8509,7 @@ "/admin/api/services/{service_id}/proxy/configs/{environment}.json": { "get": { "summary": "Proxy Configs List (Service)", + "description": "Returns the Proxy Configs of a Service", "tags": [ "Gateway" ], @@ -9309,7 +8538,11 @@ "description": "Gateway environment. Must be 'sandbox' or 'production'", "required": true, "schema": { - "type": "string" + "type": "string", + "enum": [ + "sandbox", + "production" + ] } } ], @@ -9324,6 +8557,7 @@ "/admin/api/services/{service_id}/proxy/configs/{environment}/latest.json": { "get": { "summary": "Proxy Config Show Latest", + "description": "Returns the latest Proxy Config.", "tags": [ "Gateway" ], @@ -9352,7 +8586,11 @@ "description": "Gateway environment. Must be 'sandbox' or 'production'", "required": true, "schema": { - "type": "string" + "type": "string", + "enum": [ + "sandbox", + "production" + ] } } ], @@ -9367,6 +8605,7 @@ "/admin/api/services/{service_id}/proxy/configs/{environment}/{version}.json": { "get": { "summary": "Proxy Config Show", + "description": "Returns a Proxy Config.", "tags": [ "Gateway" ], @@ -9395,7 +8634,11 @@ "description": "Gateway environment. Must be 'sandbox' or 'production'", "required": true, "schema": { - "type": "string" + "type": "string", + "enum": [ + "sandbox", + "production" + ] } }, { @@ -9419,6 +8662,7 @@ "/admin/api/services/{service_id}/proxy/configs/{environment}/{version}/promote.json": { "post": { "summary": "Proxy Config Promote", + "description": "Promotes a Proxy Config from one environment to another environment.", "tags": [ "Gateway" ], @@ -9438,7 +8682,11 @@ "description": "Gateway environment. Must be 'sandbox' or 'production'", "required": true, "schema": { - "type": "string" + "type": "string", + "enum": [ + "sandbox", + "production" + ] } }, { @@ -9452,7 +8700,6 @@ } ], "requestBody": { - "description": "Proxy Config Promote", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -9465,20 +8712,17 @@ }, "to": { "type": "string", - "description": "the name of the destination environment" + "description": "The name of the destination environment", + "enum": [ + "sandbox", + "production" + ] } }, "required": [ "access_token", "to" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -9494,6 +8738,7 @@ "/admin/api/services/{service_id}/proxy/policies.json": { "get": { "summary": "Proxy Policies Chain Show", + "description": "Returns a Proxy Policies Chain.", "tags": [ "Gateway" ], @@ -9526,6 +8771,7 @@ }, "put": { "summary": "Proxy Policies Chain Update", + "description": "Updates a Proxy Policies Chain.", "tags": [ "Gateway" ], @@ -9541,7 +8787,6 @@ } ], "requestBody": { - "description": "Proxy Policies Chain Update", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -9561,13 +8806,6 @@ "access_token", "policies_config" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -9583,6 +8821,7 @@ "/admin/api/services/{service_id}/service_plans/{id}.xml": { "get": { "summary": "Service Plan Read", + "description": "Returns a service plan by ID.", "tags": [ "Service Plans" ], @@ -9624,6 +8863,7 @@ }, "put": { "summary": "Service Plan Update", + "description": "Updates a service plan by ID.", "tags": [ "Service Plans" ], @@ -9648,7 +8888,6 @@ } ], "requestBody": { - "description": "Service Plan Update", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -9669,20 +8908,16 @@ }, "state_event": { "type": "string", - "description": "State event of the service plan. It can be 'publish' or 'hide'" + "description": "State event of the service plan. It can be 'publish' or 'hide'", + "enum": [ + "publish", + "hide" + ] } }, "required": [ - "access_token", - "policies_config" + "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -9696,6 +8931,7 @@ }, "delete": { "summary": "Service Plan Delete", + "description": "Deletes a service plan by ID.", "tags": [ "Service Plans" ], @@ -9739,6 +8975,7 @@ "/admin/api/services/{service_id}/service_plans/{id}/default.xml": { "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.", "tags": [ "Service Plans" ], @@ -9763,7 +9000,6 @@ } ], "requestBody": { - "description": "Service Plan Set to Default", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -9778,13 +9014,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -9832,6 +9061,7 @@ }, "post": { "summary": "Service Feature Create", + "description": "Creates a feature on a service. Features are usually associated to a particular type of plan; you can associate the plan on the scope parameter. Note that account plans are not scoped by service.", "tags": [ "Service Features" ], @@ -9847,7 +9077,6 @@ } ], "requestBody": { - "description": "Service Feature Create", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -9871,11 +9100,7 @@ "description": "Description of the feature." }, "scope": { - "type": "array", - "items": { - "type": "string" - }, - "explode": false, + "type": "string", "enum": [ "ApplicationPlan", "ServicePlan" @@ -9886,13 +9111,6 @@ "access_token", "name" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -9908,6 +9126,7 @@ "/admin/api/services/{service_id}/features/{id}.xml": { "get": { "summary": "Service Feature Read", + "description": "Returns a feature of a service.", "tags": [ "Service Features" ], @@ -9949,6 +9168,7 @@ }, "put": { "summary": "Service Feature Update", + "description": "Updates a feature of a service.", "tags": [ "Service Features" ], @@ -9973,7 +9193,6 @@ } ], "requestBody": { - "description": "Service Feature Update", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -9996,13 +9215,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -10016,6 +9228,7 @@ }, "delete": { "summary": "Service Feature Delete", + "description": "Deletes a feature of a service.", "tags": [ "Service Features" ], @@ -10059,6 +9272,7 @@ "/admin/api/settings.json": { "get": { "summary": "Settings Read", + "description": "Returns the general settings of an account.", "tags": [ "Settings" ], @@ -10082,11 +9296,11 @@ }, "put": { "summary": "Settings Update", + "description": "Updates general settings.", "tags": [ "Settings" - ], + ], "requestBody": { - "description": "Settings Update", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -10137,13 +9351,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -10159,11 +9366,11 @@ "/admin/api/webhooks.json": { "put": { "summary": "WebHooks Update", + "description": "Updates webhooks.", "tags": [ "Webhooks" - ], + ], "requestBody": { - "description": "WebHooks Update", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -10232,19 +9439,12 @@ "type": "boolean" }, "application_key_updated_on": { - "type": "boolean" + "type": "boolean" } }, "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -10260,6 +9460,7 @@ "/admin/api/webhooks/failures.xml": { "get": { "summary": "Webhooks List Failed Deliveries", + "description": "Lists of webhooks that could not be delivered to your end-point after 5 trials. A webhook is considered delivered if your end-point responds with a 200, otherwise it retries 5 times at 60 second intervals.", "tags": [ "Webhooks" ], @@ -10283,6 +9484,7 @@ }, "delete": { "summary": "Webhooks Delete Failed Deliveries", + "description": "Deletes failed delivery records. It is advisable to delete the records past the time of the last webhook failure that was received instead of deleting them all. Between the GET and the DELETE other webhooks failures may have arrived.", "tags": [ "Webhooks" ], @@ -10316,10 +9518,299 @@ } }, "components": { - "schemas":{ - "Permissions":{ - "type": "array" + "schemas": { + "AccountUpdateRequest": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "org_name": { + "type": "string", + "description": "Organization name of the account." + }, + "monthly_billing_enabled": { + "type": "boolean", + "description": "Updates monthly billing status." + }, + "monthly_charging_enabled": { + "type": "boolean", + "description": "Updates monthly charging status." + } + }, + "required": [ + "access_token" + ], + "additionalProperties": { + "type": "string" + } + }, + "ApplicationCreateRequest": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "plan_id": { + "type": "integer", + "description": "ID of the application plan." + }, + "name": { + "type": "string", + "description": "Name of the application to be created." + }, + "description": { + "type": "string", + "description": "Description of the application to be created." + }, + "user_key": { + "type": "string", + "description": "User Key (API Key) of the application to be created." + }, + "application_id": { + "type": "string", + "description": "App ID or Client ID (for OAuth and OpenID Connect authentication modes) of the application to be created." + }, + "application_key": { + "description": "App Key or Client Secret (for OAuth and OpenID Connect authentication modes) of the application to be created.", + "type": "string" + }, + "redirect_url": { + "type": "string", + "description": "Redirect URL for the OAuth request." + }, + "first_traffic_at": { + "type": "string", + "description": "Timestamp of the first call made by the application." + }, + "first_daily_traffic_at": { + "type": "string", + "description": "Timestamp of the first call on the last day when traffic was registered for the application ('Traffic On')." + } + }, + "required": [ + "access_token", + "plan_id", + "name", + "description" + ], + "additionalProperties": { + "type": "string" + } + }, + "ApplicationUpdateRequest": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "name": { + "type": "string", + "description": "Name of the application" + }, + "description": { + "type": "string", + "description": "Description of the application" + }, + "redirect_url": { + "type": "string", + "description": "Redirect URL for the OAuth request." + }, + "first_traffic_at": { + "type": "string", + "description": "Timestamp of the first call made by the application." + }, + "first_daily_traffic_at": { + "type": "string", + "description": "Timestamp of the first call on the last day when traffic was registered for the application ('Traffic On')." + } + }, + "required": [ + "access_token", + "name" + ], + "additionalProperties": { + "type": "string" + } + }, + "UserCreateRequest": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "username": { + "type": "string", + "description": "Username of the user." + }, + "email": { + "type": "string", + "description": "Email of the user." + }, + "password": { + "type": "string", + "description": "Password of the user." + } + }, + "required": [ + "access_token", + "username", + "email", + "password" + ], + "additionalProperties": { + "type": "string" + } + }, + "UserUpdateRequest": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "username": { + "type": "string", + "description": "Username of the user." + }, + "email": { + "type": "string", + "description": "Email of the user." + }, + "password": { + "type": "string", + "description": "Password of the user." + } + }, + "required": [ + "access_token" + ], + "additionalProperties": { + "type": "string" + } + }, + "ServiceCreateRequest": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "name": { + "type": "string", + "description": "Name of the service to be created." + }, + "description": { + "type": "string", + "description": "Description of the service to be created." + }, + "deployment_option": { + "type": "string", + "description": "Deployment option for the gateway: 'hosted' for APIcast hosted, 'self_managed' for APIcast Self-managed, 'service_mesh_istio' for Istio service mesh option" + }, + "backend_version": { + "type": "string", + "description": "Authentication mode: '1' for API key, '2' for App Id / App Key, 'oidc' for OpenID Connect" + }, + "system_name": { + "type": "string", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects." + } + }, + "additionalProperties": { + "type": "string" + }, + "required": [ + "access_token", + "name" + ] + }, + "ServiceUpdateRequest": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "name": { + "type": "string", + "description": "Name of the service to be created." + }, + "description": { + "type": "string", + "description": "Description of the service to be created." + }, + "deployment_option": { + "type": "string", + "description": "Deployment option for the gateway: 'hosted' for APIcast hosted, 'self_managed' for APIcast Self-managed, 'service_mesh_istio' for Istio service mesh option" + }, + "backend_version": { + "type": "string", + "description": "Authentication mode: '1' for API key, '2' for App Id / App Key, 'oidc' for OpenID Connect" + }, + "system_name": { + "type": "string", + "description": "System Name of the object to be created. System names cannot be modified after creation, they are used as the key to identify the objects." + } + }, + "additionalProperties": { + "type": "string" + }, + "required": [ + "access_token" + ] + }, + "SignupExpressRequest": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "org_name": { + "type": "string", + "description": "Organization Name of the developer account." + }, + "username": { + "type": "string", + "description": "Username of the admin user (on the new developer account)." + }, + "email": { + "type": "string", + "description": "Email of the admin user." + }, + "password": { + "type": "string", + "description": "Password of the admin user." + }, + "account_plan_id": { + "type": "integer", + "description": "ID of the account plan (if not assigned default will be used instead)." + }, + "service_plan_id": { + "type": "integer", + "description": "ID of the service plan (if not assigned default will be used instead)." + }, + "application_plan_id": { + "type": "integer", + "description": "ID of the application plan (if not assigned default will be used instead)." + } + }, + "additionalProperties": { + "type": "string" + }, + "required": [ + "access_token", + "org_name", + "username", + "email", + "password" + ] } } } -} +} \ No newline at end of file From 2cc5d0ba6e2a71d0e188ca04f8d453acdde33dfa Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Fri, 3 Mar 2023 16:40:51 +0100 Subject: [PATCH 48/85] Fix styles in Swagger UI v3 --- app/javascript/packs/provider_active_docs.ts | 2 +- app/javascript/packs/service_active_docs.ts | 2 ++ .../swagger-ui-3-provider-patch.scss | 24 +++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 app/javascript/src/ActiveDocs/swagger-ui-3-provider-patch.scss diff --git a/app/javascript/packs/provider_active_docs.ts b/app/javascript/packs/provider_active_docs.ts index 9c14c66c66..eaa0c44e60 100644 --- a/app/javascript/packs/provider_active_docs.ts +++ b/app/javascript/packs/provider_active_docs.ts @@ -4,7 +4,7 @@ import 'swagger-ui/dist/swagger-ui.css' import { autocompleteOAS3 } from 'ActiveDocs/OAS3Autocomplete' -import 'ActiveDocs/swagger-ui-3-patch.scss' +import 'ActiveDocs/swagger-ui-3-provider-patch.scss' const accountDataUrl = '/p/admin/api_docs/account_data.json' diff --git a/app/javascript/packs/service_active_docs.ts b/app/javascript/packs/service_active_docs.ts index 7857418414..34a7339d7c 100644 --- a/app/javascript/packs/service_active_docs.ts +++ b/app/javascript/packs/service_active_docs.ts @@ -3,6 +3,8 @@ import 'swagger-ui/dist/swagger-ui.css' import { autocompleteOAS3 } from 'ActiveDocs/OAS3Autocomplete' +import 'ActiveDocs/swagger-ui-3-provider-patch.scss' + document.addEventListener('DOMContentLoaded', () => { const containerId = 'swagger-ui-container' const DATA_URL = 'p/admin/api_docs/account_data.json' diff --git a/app/javascript/src/ActiveDocs/swagger-ui-3-provider-patch.scss b/app/javascript/src/ActiveDocs/swagger-ui-3-provider-patch.scss new file mode 100644 index 0000000000..1ffa680316 --- /dev/null +++ b/app/javascript/src/ActiveDocs/swagger-ui-3-provider-patch.scss @@ -0,0 +1,24 @@ +// Reset some inherited styles so that Swagger UI looks good in the admin portal +.swagger-ui { + table { + all: unset; + } + + pre code { + all: unset; + } + + select { + width: unset; + height: unset; + } + + button { + min-width: unset; + width: unset; + } + + .curl-command .copy-to-clipboard button { + padding: 0 0 0 25px; + } +} From dd43896cade502a75818ab723c7748dbe2d40833 Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Mon, 6 Mar 2023 16:03:11 +0530 Subject: [PATCH 49/85] THREESCALE-3927 removed servers from response body --- app/javascript/packs/active_docs.ts | 4 ++-- app/javascript/packs/provider_active_docs.ts | 4 ++-- app/javascript/packs/service_active_docs.ts | 4 ++-- .../src/ActiveDocs/OAS3Autocomplete.ts | 23 ++++--------------- .../ActiveDocs/OAS3Autocomplete.spec.ts | 8 +------ 5 files changed, 11 insertions(+), 32 deletions(-) diff --git a/app/javascript/packs/active_docs.ts b/app/javascript/packs/active_docs.ts index 43b9dd2c84..0a77b62556 100644 --- a/app/javascript/packs/active_docs.ts +++ b/app/javascript/packs/active_docs.ts @@ -8,8 +8,8 @@ import 'ActiveDocs/swagger-ui-3-patch.scss' const accountDataUrl = '/api_docs/account_data.json' -window.SwaggerUI = (args: SwaggerUI.SwaggerUIOptions, serviceEndpoint: string) => { - const responseInterceptor = (response: SwaggerUI.Response) => autocompleteOAS3(response, accountDataUrl, serviceEndpoint) +window.SwaggerUI = (args: SwaggerUI.SwaggerUIOptions) => { + const responseInterceptor = (response: SwaggerUI.Response) => autocompleteOAS3(response, accountDataUrl) SwaggerUI({ ...args, diff --git a/app/javascript/packs/provider_active_docs.ts b/app/javascript/packs/provider_active_docs.ts index eaa0c44e60..40bb079df8 100644 --- a/app/javascript/packs/provider_active_docs.ts +++ b/app/javascript/packs/provider_active_docs.ts @@ -8,8 +8,8 @@ import 'ActiveDocs/swagger-ui-3-provider-patch.scss' const accountDataUrl = '/p/admin/api_docs/account_data.json' -window.SwaggerUI = (args: SwaggerUI.SwaggerUIOptions, serviceEndpoint: string) => { - const responseInterceptor = (response: SwaggerUI.Response) => autocompleteOAS3(response, accountDataUrl, serviceEndpoint) +window.SwaggerUI = (args: SwaggerUI.SwaggerUIOptions) => { + const responseInterceptor = (response: SwaggerUI.Response) => autocompleteOAS3(response, accountDataUrl) SwaggerUI({ ...args, diff --git a/app/javascript/packs/service_active_docs.ts b/app/javascript/packs/service_active_docs.ts index 34a7339d7c..9353c8be4a 100644 --- a/app/javascript/packs/service_active_docs.ts +++ b/app/javascript/packs/service_active_docs.ts @@ -13,11 +13,11 @@ document.addEventListener('DOMContentLoaded', () => { if (!container) { throw new Error('The target ID was not found: ' + containerId) } - const { url, baseUrl, serviceEndpoint = '' } = container.dataset + const { url, baseUrl } = container.dataset // eslint-disable-next-line @typescript-eslint/restrict-template-expressions -- FIXME const accountDataUrl = `${baseUrl}${DATA_URL}` - const responseInterceptor: SwaggerUI.SwaggerUIOptions['responseInterceptor'] = (response) => autocompleteOAS3(response, accountDataUrl, serviceEndpoint) + const responseInterceptor: SwaggerUI.SwaggerUIOptions['responseInterceptor'] = (response) => autocompleteOAS3(response, accountDataUrl) SwaggerUI({ url, diff --git a/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts b/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts index b4ac082aaa..b0910a6418 100644 --- a/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts +++ b/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts @@ -76,20 +76,6 @@ const injectAutocompleteToResponseBody = (responseBody: string | { paths?: Recor return res } -const injectServerToResponseBody = (responseBody: any | string, serviceEndpoint: string): any | string => { - if (typeof responseBody === 'string') { - return responseBody - } - - const originalServers = responseBody.servers || [] - const servers = serviceEndpoint ? [{ url: serviceEndpoint }] : originalServers - - return { - ...responseBody, - servers - } -} - export interface Response extends SwaggerUIResponse { body: { servers: unknown; @@ -99,18 +85,17 @@ export interface Response extends SwaggerUIResponse { text: string; } -export const autocompleteOAS3 = async (response: SwaggerUIResponse, accountDataUrl: string, serviceEndpoint: string): Promise => { - const bodyWithServer = injectServerToResponseBody(response.body, serviceEndpoint) +export const autocompleteOAS3 = async (response: SwaggerUIResponse, accountDataUrl: string): Promise => { const data = await fetchData<{ results: AccountData }>(accountDataUrl) let body = undefined try { body = data.results - ? injectAutocompleteToResponseBody(bodyWithServer, data.results) - : bodyWithServer + ? injectAutocompleteToResponseBody(response.body, data.results) + : response.body } catch (error: unknown) { console.error(error) - body = bodyWithServer + body = response.body } return { diff --git a/spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts b/spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts index 0feb6162ea..7b772d88f4 100644 --- a/spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts +++ b/spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts @@ -52,14 +52,8 @@ const accountData = { const fetchDataSpy = jest.spyOn(utils, 'fetchData') fetchDataSpy.mockResolvedValue(accountData) -it('should inject servers to response body', () => { - return autocompleteOAS3(response, accountDataUrl, serviceEndpoint).then(res => { - expect(res.body.servers).toEqual([{ 'url': 'foo/bar/serviceEndpoint' }]) - }) -}) - it('should autocomplete fields with x-data-threescale-name property', () => { - return autocompleteOAS3(response, accountDataUrl, serviceEndpoint).then(res => { + return autocompleteOAS3(response, accountDataUrl).then(res => { const examplesFirstParam = res.body.paths['/'].get.parameters[0].examples const examplesSecondParam = res.body.paths['/'].get.parameters[1].examples From 64aa8f084bbbb9e9cb8044a0c8c2e15bb0a427aa Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Mon, 6 Mar 2023 17:27:28 +0530 Subject: [PATCH 50/85] Revert "THREESCALE-3927 removed servers from response body" This reverts commit dd43896cade502a75818ab723c7748dbe2d40833. --- app/javascript/packs/active_docs.ts | 4 ++-- app/javascript/packs/provider_active_docs.ts | 4 ++-- app/javascript/packs/service_active_docs.ts | 4 ++-- .../src/ActiveDocs/OAS3Autocomplete.ts | 23 +++++++++++++++---- .../ActiveDocs/OAS3Autocomplete.spec.ts | 8 ++++++- 5 files changed, 32 insertions(+), 11 deletions(-) diff --git a/app/javascript/packs/active_docs.ts b/app/javascript/packs/active_docs.ts index 0a77b62556..43b9dd2c84 100644 --- a/app/javascript/packs/active_docs.ts +++ b/app/javascript/packs/active_docs.ts @@ -8,8 +8,8 @@ import 'ActiveDocs/swagger-ui-3-patch.scss' const accountDataUrl = '/api_docs/account_data.json' -window.SwaggerUI = (args: SwaggerUI.SwaggerUIOptions) => { - const responseInterceptor = (response: SwaggerUI.Response) => autocompleteOAS3(response, accountDataUrl) +window.SwaggerUI = (args: SwaggerUI.SwaggerUIOptions, serviceEndpoint: string) => { + const responseInterceptor = (response: SwaggerUI.Response) => autocompleteOAS3(response, accountDataUrl, serviceEndpoint) SwaggerUI({ ...args, diff --git a/app/javascript/packs/provider_active_docs.ts b/app/javascript/packs/provider_active_docs.ts index 40bb079df8..eaa0c44e60 100644 --- a/app/javascript/packs/provider_active_docs.ts +++ b/app/javascript/packs/provider_active_docs.ts @@ -8,8 +8,8 @@ import 'ActiveDocs/swagger-ui-3-provider-patch.scss' const accountDataUrl = '/p/admin/api_docs/account_data.json' -window.SwaggerUI = (args: SwaggerUI.SwaggerUIOptions) => { - const responseInterceptor = (response: SwaggerUI.Response) => autocompleteOAS3(response, accountDataUrl) +window.SwaggerUI = (args: SwaggerUI.SwaggerUIOptions, serviceEndpoint: string) => { + const responseInterceptor = (response: SwaggerUI.Response) => autocompleteOAS3(response, accountDataUrl, serviceEndpoint) SwaggerUI({ ...args, diff --git a/app/javascript/packs/service_active_docs.ts b/app/javascript/packs/service_active_docs.ts index 9353c8be4a..34a7339d7c 100644 --- a/app/javascript/packs/service_active_docs.ts +++ b/app/javascript/packs/service_active_docs.ts @@ -13,11 +13,11 @@ document.addEventListener('DOMContentLoaded', () => { if (!container) { throw new Error('The target ID was not found: ' + containerId) } - const { url, baseUrl } = container.dataset + const { url, baseUrl, serviceEndpoint = '' } = container.dataset // eslint-disable-next-line @typescript-eslint/restrict-template-expressions -- FIXME const accountDataUrl = `${baseUrl}${DATA_URL}` - const responseInterceptor: SwaggerUI.SwaggerUIOptions['responseInterceptor'] = (response) => autocompleteOAS3(response, accountDataUrl) + const responseInterceptor: SwaggerUI.SwaggerUIOptions['responseInterceptor'] = (response) => autocompleteOAS3(response, accountDataUrl, serviceEndpoint) SwaggerUI({ url, diff --git a/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts b/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts index b0910a6418..b4ac082aaa 100644 --- a/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts +++ b/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts @@ -76,6 +76,20 @@ const injectAutocompleteToResponseBody = (responseBody: string | { paths?: Recor return res } +const injectServerToResponseBody = (responseBody: any | string, serviceEndpoint: string): any | string => { + if (typeof responseBody === 'string') { + return responseBody + } + + const originalServers = responseBody.servers || [] + const servers = serviceEndpoint ? [{ url: serviceEndpoint }] : originalServers + + return { + ...responseBody, + servers + } +} + export interface Response extends SwaggerUIResponse { body: { servers: unknown; @@ -85,17 +99,18 @@ export interface Response extends SwaggerUIResponse { text: string; } -export const autocompleteOAS3 = async (response: SwaggerUIResponse, accountDataUrl: string): Promise => { +export const autocompleteOAS3 = async (response: SwaggerUIResponse, accountDataUrl: string, serviceEndpoint: string): Promise => { + const bodyWithServer = injectServerToResponseBody(response.body, serviceEndpoint) const data = await fetchData<{ results: AccountData }>(accountDataUrl) let body = undefined try { body = data.results - ? injectAutocompleteToResponseBody(response.body, data.results) - : response.body + ? injectAutocompleteToResponseBody(bodyWithServer, data.results) + : bodyWithServer } catch (error: unknown) { console.error(error) - body = response.body + body = bodyWithServer } return { diff --git a/spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts b/spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts index 7b772d88f4..0feb6162ea 100644 --- a/spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts +++ b/spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts @@ -52,8 +52,14 @@ const accountData = { const fetchDataSpy = jest.spyOn(utils, 'fetchData') fetchDataSpy.mockResolvedValue(accountData) +it('should inject servers to response body', () => { + return autocompleteOAS3(response, accountDataUrl, serviceEndpoint).then(res => { + expect(res.body.servers).toEqual([{ 'url': 'foo/bar/serviceEndpoint' }]) + }) +}) + it('should autocomplete fields with x-data-threescale-name property', () => { - return autocompleteOAS3(response, accountDataUrl).then(res => { + return autocompleteOAS3(response, accountDataUrl, serviceEndpoint).then(res => { const examplesFirstParam = res.body.paths['/'].get.parameters[0].examples const examplesSecondParam = res.body.paths['/'].get.parameters[1].examples From 8d92098d3fa819b77aad1a9130135bebe92164e7 Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Mon, 6 Mar 2023 15:49:13 +0100 Subject: [PATCH 51/85] Some fixes and updates for Analytics, Billing and Policy Registry specs --- doc/active_docs/Analytics API.json | 768 +++++++---------------- doc/active_docs/Billing API.json | 523 +++++++-------- doc/active_docs/Policy Registry API.json | 133 ++-- 3 files changed, 562 insertions(+), 862 deletions(-) diff --git a/doc/active_docs/Analytics API.json b/doc/active_docs/Analytics API.json index 07a394f3b7..f9b35800ff 100644 --- a/doc/active_docs/Analytics API.json +++ b/doc/active_docs/Analytics API.json @@ -11,10 +11,12 @@ } ], "paths": { - "/stats/backend_apis/{backend_api_id}/usage.json": { + "/stats/applications/{application_id}/usage.{format}": { "get": { - "summary": "Backend Traffic by Metric", - "tags": ["Stats"], + "summary": "Application Traffic by Metric", + "tags": [ + "Application Analytics" + ], "parameters": [ { "name": "format", @@ -40,13 +42,12 @@ } }, { - "name": "backend_api_id", + "name": "application_id", "in": "path", - "description": "ID of the Backend.", + "description": "ID of the application", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -55,7 +56,8 @@ "description": "System name of metric to get data for.", "required": true, "schema": { - "type": "string" + "type": "string", + "default": "hits" } }, { @@ -109,154 +111,7 @@ "in": "query", "description": "Time zone for calculations.", "schema": { - "type": "string", - "default": "UTC", - "enum": [ - "International Date Line West", - "Midway Island", - "American Samoa", - "Hawaii", - "Alaska", - "Pacific Time (US & Canada)", - "Tijuana", - "Mountain Time (US & Canada)", - "Arizona", - "Chihuahua", - "Mazatlan", - "Central Time (US & Canada)", - "Saskatchewan", - "Guadalajara", - "Mexico City", - "Monterrey", - "Central America", - "Eastern Time (US & Canada)", - "Indiana (East)", - "Bogota", - "Lima", - "Quito", - "Atlantic Time (Canada)", - "Caracas", - "La Paz", - "Santiago", - "Newfoundland", - "Brasilia", - "Buenos Aires", - "Georgetown", - "Greenland", - "Mid-Atlantic", - "Azores", - "Cape Verde Is.", - "Dublin", - "Edinburgh", - "Lisbon", - "London", - "Casablanca", - "Monrovia", - "UTC", - "Belgrade", - "Bratislava", - "Budapest", - "Ljubljana", - "Prague", - "Sarajevo", - "Skopje", - "Warsaw", - "Zagreb", - "Brussels", - "Copenhagen", - "Madrid", - "Paris", - "Amsterdam", - "Berlin", - "Bern", - "Rome", - "Stockholm", - "Vienna", - "West Central Africa", - "Bucharest", - "Cairo", - "Helsinki", - "Kyiv", - "Riga", - "Sofia", - "Tallinn", - "Vilnius", - "Athens", - "Istanbul", - "Minsk", - "Jerusalem", - "Harare", - "Pretoria", - "Moscow", - "St. Petersburg", - "Volgograd", - "Kuwait", - "Riyadh", - "Nairobi", - "Baghdad", - "Tehran", - "Abu Dhabi", - "Muscat", - "Baku", - "Tbilisi", - "Yerevan", - "Kabul", - "Ekaterinburg", - "Islamabad", - "Karachi", - "Tashkent", - "Chennai", - "Kolkata", - "Mumbai", - "New Delhi", - "Kathmandu", - "Astana", - "Dhaka", - "Sri Jayawardenepura", - "Almaty", - "Novosibirsk", - "Rangoon", - "Bangkok", - "Hanoi", - "Jakarta", - "Krasnoyarsk", - "Beijing", - "Chongqing", - "Hong Kong", - "Urumqi", - "Kuala Lumpur", - "Singapore", - "Taipei", - "Perth", - "Irkutsk", - "Ulaan Bataar", - "Seoul", - "Osaka", - "Sapporo", - "Tokyo", - "Yakutsk", - "Darwin", - "Adelaide", - "Canberra", - "Melbourne", - "Sydney", - "Brisbane", - "Hobart", - "Vladivostok", - "Guam", - "Port Moresby", - "Magadan", - "Solomon Is.", - "New Caledonia", - "Fiji", - "Kamchatka", - "Marshall Is.", - "Auckland", - "Wellington", - "Nuku'alofa", - "Tokelau Is.", - "Samoa" - ] + "$ref": "#/components/schemas/Timezone" } }, { @@ -277,25 +132,13 @@ } } }, - "/stats/services/{service_id}/usage.{format}": { + "/stats/backend_apis/{backend_api_id}/usage.json": { "get": { - "summary": "Service Traffic by Metric", - "tags": ["Stats"], + "summary": "Backend Traffic by Metric", + "tags": [ + "Backend Analytics" + ], "parameters": [ - { - "name": "format", - "in": "path", - "description": "Response format.", - "required": true, - "schema": { - "type": "string", - "default": "json", - "enum": [ - "json", - "xml" - ] - } - }, { "name": "access_token", "in": "query", @@ -306,13 +149,12 @@ } }, { - "name": "service_id", + "name": "backend_api_id", "in": "path", - "description": "ID of the service.", + "description": "ID of the Backend.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -321,8 +163,7 @@ "description": "System name of metric to get data for.", "required": true, "schema": { - "type": "string", - "default": "hits" + "type": "string" } }, { @@ -376,154 +217,7 @@ "in": "query", "description": "Time zone for calculations.", "schema": { - "type": "string", - "default": "UTC", - "enum": [ - "International Date Line West", - "Midway Island", - "American Samoa", - "Hawaii", - "Alaska", - "Pacific Time (US & Canada)", - "Tijuana", - "Mountain Time (US & Canada)", - "Arizona", - "Chihuahua", - "Mazatlan", - "Central Time (US & Canada)", - "Saskatchewan", - "Guadalajara", - "Mexico City", - "Monterrey", - "Central America", - "Eastern Time (US & Canada)", - "Indiana (East)", - "Bogota", - "Lima", - "Quito", - "Atlantic Time (Canada)", - "Caracas", - "La Paz", - "Santiago", - "Newfoundland", - "Brasilia", - "Buenos Aires", - "Georgetown", - "Greenland", - "Mid-Atlantic", - "Azores", - "Cape Verde Is.", - "Dublin", - "Edinburgh", - "Lisbon", - "London", - "Casablanca", - "Monrovia", - "UTC", - "Belgrade", - "Bratislava", - "Budapest", - "Ljubljana", - "Prague", - "Sarajevo", - "Skopje", - "Warsaw", - "Zagreb", - "Brussels", - "Copenhagen", - "Madrid", - "Paris", - "Amsterdam", - "Berlin", - "Bern", - "Rome", - "Stockholm", - "Vienna", - "West Central Africa", - "Bucharest", - "Cairo", - "Helsinki", - "Kyiv", - "Riga", - "Sofia", - "Tallinn", - "Vilnius", - "Athens", - "Istanbul", - "Minsk", - "Jerusalem", - "Harare", - "Pretoria", - "Moscow", - "St. Petersburg", - "Volgograd", - "Kuwait", - "Riyadh", - "Nairobi", - "Baghdad", - "Tehran", - "Abu Dhabi", - "Muscat", - "Baku", - "Tbilisi", - "Yerevan", - "Kabul", - "Ekaterinburg", - "Islamabad", - "Karachi", - "Tashkent", - "Chennai", - "Kolkata", - "Mumbai", - "New Delhi", - "Kathmandu", - "Astana", - "Dhaka", - "Sri Jayawardenepura", - "Almaty", - "Novosibirsk", - "Rangoon", - "Bangkok", - "Hanoi", - "Jakarta", - "Krasnoyarsk", - "Beijing", - "Chongqing", - "Hong Kong", - "Urumqi", - "Kuala Lumpur", - "Singapore", - "Taipei", - "Perth", - "Irkutsk", - "Ulaan Bataar", - "Seoul", - "Osaka", - "Sapporo", - "Tokyo", - "Yakutsk", - "Darwin", - "Adelaide", - "Canberra", - "Melbourne", - "Sydney", - "Brisbane", - "Hobart", - "Vladivostok", - "Guam", - "Port Moresby", - "Magadan", - "Solomon Is.", - "New Caledonia", - "Fiji", - "Kamchatka", - "Marshall Is.", - "Auckland", - "Wellington", - "Nuku'alofa", - "Tokelau Is.", - "Samoa" - ] + "$ref": "#/components/schemas/Timezone" } }, { @@ -544,10 +238,12 @@ } } }, - "/stats/services/{service_id}/top_applications.{format}": { + "/stats/services/{service_id}/usage.{format}": { "get": { - "summary": "Service Top Applications", - "tags": ["Stats"], + "summary": "Service Traffic by Metric", + "tags": [ + "Service Analytics" + ], "parameters": [ { "name": "format", @@ -578,8 +274,17 @@ "description": "ID of the service.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" + } + }, + { + "name": "metric_name", + "in": "query", + "description": "System name of metric to get data for.", + "required": true, + "schema": { + "type": "string", + "default": "hits" } }, { @@ -606,13 +311,43 @@ } }, { - "name": "metric_name", + "name": "until", "in": "query", - "description": "System name of metric to get data for.", + "description": "Time range end. Format YYYY-MM-DD HH:MM:SS", + "schema": { + "type": "string" + } + }, + { + "name": "granularity", + "in": "query", + "description": "Granularity of results, each period has an associated granularity.", "required": true, "schema": { "type": "string", - "default": "hits" + "default": "month", + "enum": [ + "month", + "day", + "hour" + ] + } + }, + { + "name": "timezone", + "in": "query", + "description": "Time zone for calculations.", + "schema": { + "$ref": "#/components/schemas/Timezone" + } + }, + { + "name": "skip_change", + "in": "query", + "description": "Skip period over period calculations (defaults to true).", + "schema": { + "type": "boolean", + "default": true } } ], @@ -624,10 +359,12 @@ } } }, - "/stats/applications/{application_id}/usage.{format}": { + "/stats/services/{service_id}/top_applications.{format}": { "get": { - "summary": "Application Traffic by Metric", - "tags": ["Stats"], + "summary": "Service Top Applications", + "tags": [ + "Service Analytics" + ], "parameters": [ { "name": "format", @@ -653,23 +390,12 @@ } }, { - "name": "application_id", + "name": "service_id", "in": "path", - "description": "ID of the application", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "metric_name", - "in": "query", - "description": "System name of metric to get data for.", + "description": "ID of the service.", "required": true, "schema": { - "type": "string", - "default": "hits" + "type": "integer" } }, { @@ -696,190 +422,13 @@ } }, { - "name": "until", - "in": "query", - "description": "Time range end. Format YYYY-MM-DD HH:MM:SS", - "schema": { - "type": "string" - } - }, - { - "name": "granularity", + "name": "metric_name", "in": "query", - "description": "Granularity of results, each period has an associated granularity.", + "description": "System name of metric to get data for.", "required": true, "schema": { "type": "string", - "default": "month", - "enum": [ - "month", - "day", - "hour" - ] - } - }, - { - "name": "timezone", - "in": "query", - "description": "Time zone for calculations.", - "schema": { - "type": "string", - "default": "UTC", - "enum": [ - "International Date Line West", - "Midway Island", - "American Samoa", - "Hawaii", - "Alaska", - "Pacific Time (US & Canada)", - "Tijuana", - "Mountain Time (US & Canada)", - "Arizona", - "Chihuahua", - "Mazatlan", - "Central Time (US & Canada)", - "Saskatchewan", - "Guadalajara", - "Mexico City", - "Monterrey", - "Central America", - "Eastern Time (US & Canada)", - "Indiana (East)", - "Bogota", - "Lima", - "Quito", - "Atlantic Time (Canada)", - "Caracas", - "La Paz", - "Santiago", - "Newfoundland", - "Brasilia", - "Buenos Aires", - "Georgetown", - "Greenland", - "Mid-Atlantic", - "Azores", - "Cape Verde Is.", - "Dublin", - "Edinburgh", - "Lisbon", - "London", - "Casablanca", - "Monrovia", - "UTC", - "Belgrade", - "Bratislava", - "Budapest", - "Ljubljana", - "Prague", - "Sarajevo", - "Skopje", - "Warsaw", - "Zagreb", - "Brussels", - "Copenhagen", - "Madrid", - "Paris", - "Amsterdam", - "Berlin", - "Bern", - "Rome", - "Stockholm", - "Vienna", - "West Central Africa", - "Bucharest", - "Cairo", - "Helsinki", - "Kyiv", - "Riga", - "Sofia", - "Tallinn", - "Vilnius", - "Athens", - "Istanbul", - "Minsk", - "Jerusalem", - "Harare", - "Pretoria", - "Moscow", - "St. Petersburg", - "Volgograd", - "Kuwait", - "Riyadh", - "Nairobi", - "Baghdad", - "Tehran", - "Abu Dhabi", - "Muscat", - "Baku", - "Tbilisi", - "Yerevan", - "Kabul", - "Ekaterinburg", - "Islamabad", - "Karachi", - "Tashkent", - "Chennai", - "Kolkata", - "Mumbai", - "New Delhi", - "Kathmandu", - "Astana", - "Dhaka", - "Sri Jayawardenepura", - "Almaty", - "Novosibirsk", - "Rangoon", - "Bangkok", - "Hanoi", - "Jakarta", - "Krasnoyarsk", - "Beijing", - "Chongqing", - "Hong Kong", - "Urumqi", - "Kuala Lumpur", - "Singapore", - "Taipei", - "Perth", - "Irkutsk", - "Ulaan Bataar", - "Seoul", - "Osaka", - "Sapporo", - "Tokyo", - "Yakutsk", - "Darwin", - "Adelaide", - "Canberra", - "Melbourne", - "Sydney", - "Brisbane", - "Hobart", - "Vladivostok", - "Guam", - "Port Moresby", - "Magadan", - "Solomon Is.", - "New Caledonia", - "Fiji", - "Kamchatka", - "Marshall Is.", - "Auckland", - "Wellington", - "Nuku'alofa", - "Tokelau Is.", - "Samoa" - ] - } - }, - { - "name": "skip_change", - "in": "query", - "description": "Skip period over period calculations (defaults to true).", - "schema": { - "type": "boolean", - "default": true + "default": "hits" } } ], @@ -892,5 +441,158 @@ } } }, - "components": {} + "components": { + "schemas": { + "Timezone": { + "type": "string", + "default": "UTC", + "enum": [ + "International Date Line West", + "Midway Island", + "American Samoa", + "Hawaii", + "Alaska", + "Pacific Time (US & Canada)", + "Tijuana", + "Mountain Time (US & Canada)", + "Arizona", + "Chihuahua", + "Mazatlan", + "Central Time (US & Canada)", + "Saskatchewan", + "Guadalajara", + "Mexico City", + "Monterrey", + "Central America", + "Eastern Time (US & Canada)", + "Indiana (East)", + "Bogota", + "Lima", + "Quito", + "Atlantic Time (Canada)", + "Caracas", + "La Paz", + "Santiago", + "Newfoundland", + "Brasilia", + "Buenos Aires", + "Georgetown", + "Greenland", + "Mid-Atlantic", + "Azores", + "Cape Verde Is.", + "Dublin", + "Edinburgh", + "Lisbon", + "London", + "Casablanca", + "Monrovia", + "UTC", + "Belgrade", + "Bratislava", + "Budapest", + "Ljubljana", + "Prague", + "Sarajevo", + "Skopje", + "Warsaw", + "Zagreb", + "Brussels", + "Copenhagen", + "Madrid", + "Paris", + "Amsterdam", + "Berlin", + "Bern", + "Rome", + "Stockholm", + "Vienna", + "West Central Africa", + "Bucharest", + "Cairo", + "Helsinki", + "Kyiv", + "Riga", + "Sofia", + "Tallinn", + "Vilnius", + "Athens", + "Istanbul", + "Minsk", + "Jerusalem", + "Harare", + "Pretoria", + "Moscow", + "St. Petersburg", + "Volgograd", + "Kuwait", + "Riyadh", + "Nairobi", + "Baghdad", + "Tehran", + "Abu Dhabi", + "Muscat", + "Baku", + "Tbilisi", + "Yerevan", + "Kabul", + "Ekaterinburg", + "Islamabad", + "Karachi", + "Tashkent", + "Chennai", + "Kolkata", + "Mumbai", + "New Delhi", + "Kathmandu", + "Astana", + "Dhaka", + "Sri Jayawardenepura", + "Almaty", + "Novosibirsk", + "Rangoon", + "Bangkok", + "Hanoi", + "Jakarta", + "Krasnoyarsk", + "Beijing", + "Chongqing", + "Hong Kong", + "Urumqi", + "Kuala Lumpur", + "Singapore", + "Taipei", + "Perth", + "Irkutsk", + "Ulaan Bataar", + "Seoul", + "Osaka", + "Sapporo", + "Tokyo", + "Yakutsk", + "Darwin", + "Adelaide", + "Canberra", + "Melbourne", + "Sydney", + "Brisbane", + "Hobart", + "Vladivostok", + "Guam", + "Port Moresby", + "Magadan", + "Solomon Is.", + "New Caledonia", + "Fiji", + "Kamchatka", + "Marshall Is.", + "Auckland", + "Wellington", + "Nuku'alofa", + "Tokelau Is.", + "Samoa" + ] + } + } + } } \ No newline at end of file diff --git a/doc/active_docs/Billing API.json b/doc/active_docs/Billing API.json index 2714378cf9..2ba3a6c2d5 100644 --- a/doc/active_docs/Billing API.json +++ b/doc/active_docs/Billing API.json @@ -14,7 +14,9 @@ "/api/accounts/{account_id}/invoices/{id}.xml": { "get": { "summary": "Invoice by Account", - "tags": ["Invoices"], + "tags": [ + "Invoices by Account" + ], "parameters": [ { "name": "access_token", @@ -31,8 +33,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -41,8 +42,7 @@ "description": "ID of the Invoice.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -54,10 +54,12 @@ } } }, - "/api/invoices/{invoice_id}/line_items.xml": { + "/api/accounts/{account_id}/invoices.xml": { "get": { - "summary": "Invoice Line Items List", - "tags": ["Invoices"], + "summary": "Invoice List by Account", + "tags": [ + "Invoices by Account" + ], "parameters": [ { "name": "access_token", @@ -69,13 +71,54 @@ } }, { - "name": "invoice_id", + "name": "account_id", "in": "path", - "description": "ID of the invoice.", + "description": "ID of the account.", "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "state", + "in": "query", + "description": "Filter Invoices by state. 'open': line items can be added (via web interface). 'pending': the Invoice has been issued, no items can be added, the PDF has been generated and the Invoice is waiting to be charged. 'paid': sucessfully paid. 'unpaid': charging failed at least once. 'cancelled': the Invoice was explicitly cancelled and is out of the normal life-cycle.", + "schema": { + "type": "string", + "enum": [ + "open", + "pending", + "paid", + "unpaid", + "cancelled" + ] + } + }, + { + "name": "month", + "in": "query", + "description": "Filter Invoices by month. Format YYYY-MM, e.g. '2012-03'.", + "schema": { + "type": "string", + "pattern": "^\\d{4}-\\d{2}$" + } + }, + { + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", "schema": { "type": "integer", - "format": "int32" + "default": 1 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 20.", + "schema": { + "type": "integer", + "default": 20 } } ], @@ -85,26 +128,81 @@ "content": {} } } - }, - "post": { - "summary": "Create Line Item for an Invoice", + } + }, + "/api/invoices.xml": { + "get": { + "summary": "Invoice List", "tags": [ "Invoices" ], - "parameters": [ + "parameters": [ { - "name": "invoice_id", - "in": "path", - "description": "ID of the invoice.", + "name": "access_token", + "in": "query", + "description": "A personal Access Token", "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "state", + "in": "query", + "description": "Filter Invoices by state. 'open': line items can be added (via web interface). 'pending': the Invoice has been issued, no items can be added, the PDF has been generated and the Invoice is waiting to be charged. 'paid': sucessfully paid. 'unpaid': charging failed at least once. 'cancelled': the Invoice was explicitly cancelled and is out of the normal life-cycle.", + "schema": { + "type": "string", + "enum": [ + "open", + "pending", + "paid", + "unpaid", + "cancelled" + ] + } + }, + { + "name": "month", + "in": "query", + "description": "Filter Invoices by month. Format YYYY-MM, e.g. '2012-03'.", + "schema": { + "type": "string", + "pattern": "^\\d{4}-\\d{2}$" + } + }, + { + "name": "page", + "in": "query", + "description": "Page in the paginated list. Defaults to 1.", "schema": { "type": "integer", - "format": "int32" + "default": 1 + } + }, + { + "name": "per_page", + "in": "query", + "description": "Number of results per page. Default and max is 20.", + "schema": { + "type": "integer", + "default": 20 } } ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "Invoice Create", + "tags": [ + "Invoices" + ], "requestBody": { - "description": "Create Line Item for an Invoice", + "description": "Invoice Create", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -115,37 +213,13 @@ "type": "string", "description": "A personal Access Token." }, - "name": { - "type": "string", - "description": "Name of the Line Item" - }, - "description": { - "type": "string", - "description": "Description of the Line Item" - }, - "quantity": { - "type": "string", - "description": "Quantity of the Line Item" - }, - "cost": { - "type": "string", - "description": "Total cost/price of the Line Item considering the quantity" - }, - "metric_id": { - "type": "string", - "description": "Metric that have generated this Line Item" - }, - "contract_id": { - "type": "string", - "description": "Contract that have generated this Line Item" - }, - "type": { - "type": "string", - "description": "Type of cost. Can be [LineItem::PlanCost, LineItem::VariableCost]" + "account_id": { + "type": "integer", + "description": "ID of the account." }, - "plan_id": { + "period": { "type": "string", - "description": "The ID of the plan." + "description": "Billing period of the Invoice. The format should be YYYY-MM." } }, "required": [ @@ -170,43 +244,12 @@ } } }, - "/api/invoices/{invoice_id}/payment_transactions.xml": { - "get": { - "summary": "Invoice Payment Transactions List", - "tags": ["Invoices"], - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "invoice_id", - "in": "path", - "description": "ID of the invoice.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, "/api/invoices/{id}.xml": { "get": { "summary": "Invoice Read", - "tags": ["Invoices"], + "tags": [ + "Invoices" + ], "parameters": [ { "name": "access_token", @@ -223,8 +266,7 @@ "description": "ID of the Invoice.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -240,15 +282,14 @@ "tags": [ "Invoices" ], - "parameters": [ + "parameters": [ { "name": "id", "in": "path", "description": "ID of the Invoice.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -266,11 +307,13 @@ }, "period": { "type": "string", - "description": "Billing period of the Invoice. The format should be YYYY-MM." + "description": "Billing period of the Invoice. The format should be YYYY-MM.", + "pattern": "^\\d{4}-\\d{2}$" }, "friendly_id": { "type": "string", - "description": "Friendly ID of the Invoice. The format should be YYYY-MM-XXXXXXXX or YYYY-XXXXXXXX." + "description": "Friendly ID of the Invoice. The format should be YYYY-MM-XXXXXXXX or YYYY-XXXXXXXX", + "pattern": "^\\d{4}(-\\d{2})?-\\d{8}$" } }, "required": [ @@ -301,15 +344,14 @@ "tags": [ "Invoices" ], - "parameters": [ + "parameters": [ { "name": "id", "in": "path", "description": "ID of the Invoice.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -327,7 +369,15 @@ }, "state": { "type": "string", - "description": "State of the Invoice to set. Values allowed (depend on the previous state): cancelled, failed, paid, unpaid, pending, finalized" + "description": "State of the Invoice to set. Values allowed (depend on the previous state): cancelled, failed, paid, unpaid, pending, finalized", + "enum": [ + "finalized", + "pending", + "paid", + "unpaid", + "cancelled", + "failed" + ] } }, "required": [ @@ -353,10 +403,64 @@ } } }, - "/api/invoices/{invoice_id}/line_items/{id}.xml": { - "delete": { - "summary": "Delete Line Item of an Invoice", - "tags": ["Invoices"], + "/api/invoices/{id}/charge.xml": { + "post": { + "summary": "Invoice Charge", + "tags": [ + "Invoices" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "description": "ID of the Invoice.", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "requestBody": { + "description": "Invoice Charge", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + } + }, + "required": [ + "access_token" + ] + }, + "encoding": { + "field_definitions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/api/invoices/{invoice_id}/payment_transactions.xml": { + "get": { + "summary": "Invoice Payment Transactions List", + "tags": [ + "Invoices" + ], "parameters": [ { "name": "access_token", @@ -373,18 +477,7 @@ "description": "ID of the invoice.", "required": true, "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "id", - "in": "path", - "description": "ID of the Line Item.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -396,10 +489,12 @@ } } }, - "/api/invoices.xml": { + "/api/invoices/{invoice_id}/line_items.xml": { "get": { - "summary": "Invoice List", - "tags": ["Invoices"], + "summary": "Invoice Line Items List", + "tags": [ + "Invoice Line Items" + ], "parameters": [ { "name": "access_token", @@ -411,46 +506,12 @@ } }, { - "name": "state", - "in": "query", - "description": "Filter Invoices by state. 'open': line items can be added (via web interface). 'pending': the Invoice has been issued, no items can be added, the PDF has been generated and the Invoice is waiting to be charged. 'paid': sucessfully paid. 'unpaid': charging failed at least once. 'cancelled': the Invoice was explicitly cancelled and is out of the normal life-cycle.", - "schema": { - "type": "string", - "enum": [ - "open", - "pending", - "paid", - "unpaid", - "cancelled" - ] - } - }, - { - "name": "month", - "in": "query", - "description": "Filter Invoices by month. Format YYYY-MM, e.g. '2012-03'.", - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Page in the paginated list. Defaults to 1.", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "per_page", - "in": "query", - "description": "Number of results per page. Default and max is 20.", + "name": "invoice_id", + "in": "path", + "description": "ID of the invoice.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 20 + "type": "integer" } } ], @@ -462,12 +523,23 @@ } }, "post": { - "summary": "Invoice Create", + "summary": "Create Line Item for an Invoice", "tags": [ - "Invoices" + "Invoice Line Items" + ], + "parameters": [ + { + "name": "invoice_id", + "in": "path", + "description": "ID of the invoice.", + "required": true, + "schema": { + "type": "integer" + } + } ], "requestBody": { - "description": "Invoice Create", + "description": "Create Line Item for an Invoice", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -478,13 +550,37 @@ "type": "string", "description": "A personal Access Token." }, - "account_id": { - "type": "integer", - "description": "ID of the account." + "name": { + "type": "string", + "description": "Name of the Line Item" }, - "period": { + "description": { "type": "string", - "description": "Billing period of the Invoice. The format should be YYYY-MM." + "description": "Description of the Line Item" + }, + "quantity": { + "type": "string", + "description": "Quantity of the Line Item" + }, + "cost": { + "type": "string", + "description": "Total cost/price of the Line Item considering the quantity" + }, + "metric_id": { + "type": "string", + "description": "Metric that have generated this Line Item" + }, + "contract_id": { + "type": "string", + "description": "Contract that have generated this Line Item" + }, + "type": { + "type": "string", + "description": "Type of cost. Can be [LineItem::PlanCost, LineItem::VariableCost]" + }, + "plan_id": { + "type": "string", + "description": "The ID of the plan." } }, "required": [ @@ -509,10 +605,12 @@ } } }, - "/api/accounts/{account_id}/invoices.xml": { - "get": { - "summary": "Invoice List by Account", - "tags": ["Invoices"], + "/api/invoices/{invoice_id}/line_items/{id}.xml": { + "delete": { + "summary": "Delete Line Item of an Invoice", + "tags": [ + "Invoice Line Items" + ], "parameters": [ { "name": "access_token", @@ -524,109 +622,24 @@ } }, { - "name": "account_id", + "name": "invoice_id", "in": "path", - "description": "ID of the account.", + "description": "ID of the invoice.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, - { - "name": "state", - "in": "query", - "description": "Filter Invoices by state. 'open': line items can be added (via web interface). 'pending': the Invoice has been issued, no items can be added, the PDF has been generated and the Invoice is waiting to be charged. 'paid': sucessfully paid. 'unpaid': charging failed at least once. 'cancelled': the Invoice was explicitly cancelled and is out of the normal life-cycle.", - "schema": { - "type": "string", - "enum": [ - "open", - "pending", - "paid", - "unpaid", - "cancelled" - ] - } - }, - { - "name": "month", - "in": "query", - "description": "Filter Invoices by month. Format YYYY-MM, e.g. '2012-03'.", - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Page in the paginated list. Defaults to 1.", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "per_page", - "in": "query", - "description": "Number of results per page. Default and max is 20.", - "schema": { - "type": "integer", - "format": "int32", - "default": 20 - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/api/invoices/{id}/charge.xml": { - "post": { - "summary": "Invoice Charge", - "parameters": [ { "name": "id", "in": "path", - "description": "ID of the Invoice.", + "description": "ID of the Line Item.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], - "requestBody": { - "description": "Invoice Charge", - "required": true, - "content": { - "application/x-www-form-urlencoded": { - "schema": { - "type": "object", - "properties": { - "access_token": { - "type": "string", - "description": "A personal Access Token." - } - }, - "required": [ - "access_token" - ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } - } - } - } - }, "responses": { "default": { "description": "success", @@ -637,4 +650,4 @@ } }, "components": {} -} +} \ No newline at end of file diff --git a/doc/active_docs/Policy Registry API.json b/doc/active_docs/Policy Registry API.json index 3e98c217b4..ae6fd74ffd 100644 --- a/doc/active_docs/Policy Registry API.json +++ b/doc/active_docs/Policy Registry API.json @@ -10,21 +10,25 @@ "url": "/" } ], - "paths":{ - "/admin/api/registry/policies.json":{ - "get":{ + "paths": { + "/admin/api/registry/policies.json": { + "get": { "summary": "APIcast Policy Registry List", - "tags": ["Policies"], + "description": "List the APIcast Policies", + "tags": [ + "Policies" + ], "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" } - ], + } + ], "responses": { "default": { "description": "success", @@ -34,11 +38,11 @@ }, "post": { "summary": "APIcast Policy Registry Create", + "description": "Creates an APIcast Policy", "tags": [ "Policies" ], "requestBody": { - "description": "APIcast Policy Registry Create", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -68,13 +72,6 @@ "version", "schema" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -88,51 +85,48 @@ } }, "/admin/api/registry/policies/{id}.json": { - "get" :{ + "parameters": [ + { + "name": "id", + "in": "path", + "description": "ID of the policy. It can be an integer value or a combination 'name-version' of the policy (e.g. 'mypolicy-1.0')", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "get": { "summary": "APIcast Policy Registry Read", "description": "Returns the APIcast policy by ID", - "tags": ["Policies"], + "tags": [ + "Policies" + ], "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the policy. It can be an integer value or a combination 'name-version' of the policy (e.g. 'mypolicy-1.0')", - "dataType": "string", - "required": true, - "paramType": "path" + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" } - ], + } + ], "responses": { "default": { "description": "success", "content": {} } } - }, "put": { "summary": "APIcast Policy Registry Update", + "description": "Updates an APIcast Policy", "tags": [ "Policies" ], - "parameters": [ - { - "name": "id", - "description": "ID of the policy. It can be an integer value or a combination 'name-version' of the policy (e.g. 'mypolicy-1.0')", - "dataType": "string", - "required": true, - "paramType": "path" - } - ], "requestBody": { - "description": "APIcast Policy Registry Update", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -159,13 +153,6 @@ "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -178,31 +165,29 @@ } }, "delete": { + "summary": "APIcast Policy Registry Delete", + "description": "Deletes an APIcast policy by ID", + "tags": [ + "Policies" + ], "parameters": [ - { - "name": "access_token", - "description": "A personal Access Token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "access_token" - }, - { - "name": "id", - "description": "ID of the policy. It can be an integer value or a combination 'name-version' of the policy (e.g. 'mypolicy-1.0')", - "dataType": "string", - "required": true, - "paramType": "path" + { + "name": "access_token", + "in": "query", + "description": "A personal Access Token", + "required": true, + "schema": { + "type": "string" } - ], + } + ], "responses": { "default": { "description": "success", "content": {} } } - } - } - } -} + } + } +} \ No newline at end of file From b7d8f01f42747079622d58ea567753c89ad0da6a Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Mon, 6 Mar 2023 23:07:30 +0100 Subject: [PATCH 52/85] Some fixes and update for Master API --- doc/active_docs/Master API.json | 357 ++++++++++++++++---------------- 1 file changed, 176 insertions(+), 181 deletions(-) diff --git a/doc/active_docs/Master API.json b/doc/active_docs/Master API.json index d4461b719c..e7293a3460 100644 --- a/doc/active_docs/Master API.json +++ b/doc/active_docs/Master API.json @@ -11,50 +11,23 @@ } ], "paths": { - "/master/api/providers/{provider_id}/accounts/{account_id}/billing_jobs.xml": { + "/master/api/providers.xml": { "post": { - "summary": "Trigger Billing by Account", - "operationId": "trigger_developer_billing", - "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "provider_id", - "in": "path", - "description": "ID of the tenant account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "account_id", - "in": "path", - "description": "ID of the developer account.", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "date", - "in": "query", - "description": "Base date for the billing process. Format YYYY-MM-DD (UTC).", - "required": true, - "schema": { - "type": "string" + "summary": "Tenant Create", + "description": "This request allows you to reproduce a sign-up from a tenant in a single API call. It will create an Account, an Admin User for the account, and optionally an Application with its keys. If the plan_id is not passed, the default plan will be used instead. You can add additional custom parameters in Fields Definition on your Admin Portal.", + "tags": [ + "Tenants" + ], + "requestBody": { + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "$ref": "#/components/schemas/TenantCreateRequest" + } } } - ], + }, "responses": { "default": { "description": "success", @@ -66,6 +39,10 @@ "/master/api/providers/{id}.xml": { "get": { "summary": "Tenant Show", + "description": "Show a tenant account.", + "tags": [ + "Tenants" + ], "parameters": [ { "name": "access_token", @@ -82,8 +59,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -96,80 +72,31 @@ }, "put": { "summary": "Tenant Update", + "description": "Updates email addresses used to deliver email notifications to customers.", + "tags": [ + "Tenants" + ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "id", "in": "path", "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "from_email", - "in": "query", - "description": "New outgoing email.", - "schema": { - "type": "string" - } - }, - { - "name": "support_email", - "in": "query", - "description": "New support email.", - "schema": { - "type": "string" - } - }, - { - "name": "finance_support_email", - "in": "query", - "description": "New finance support email.", - "schema": { - "type": "string" - } - }, - { - "name": "site_access_code", - "in": "query", - "description": "Developer Portal Access Code.", - "schema": { - "type": "string" - } - }, - { - "name": "state_event", - "in": "query", - "description": "Change the state of the tenant. It can be either 'make_pending', 'approve', 'reject', 'suspend', or 'resume' depending on the current state", - "schema": { - "type": "string" + "type": "integer" } - }, - { - "name": "additional_fields", - "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" + } + ], + "requestBody": { + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "$ref": "#/components/schemas/TenantUpdateRequest" } } } - ], + }, "responses": { "default": { "description": "success", @@ -179,6 +106,10 @@ }, "delete": { "summary": "Tenant Delete", + "description": "Schedules a tenant account to be permanently deleted in 15 days. At that time all its users, services, plans and developer accounts subscribed to it will be deleted too. When a tenant account is scheduled for deletion it can no longer be edited (except except its state) and its admin portal and developer portal cannot be accessible. Update with 'resume' state event to unschedule a tenant for deletion.", + "tags": [ + "Tenants" + ], "parameters": [ { "name": "access_token", @@ -195,8 +126,7 @@ "description": "ID of the account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -208,69 +138,34 @@ } } }, - "/master/api/providers.xml": { + "/master/api/providers/{provider_id}/billing_jobs.xml": { "post": { - "summary": "Tenant Create", + "summary": "Trigger Billing", + "description": "Triggers billing process for all developer accounts.", + "tags": [ + "Tenant Billing" + ], "parameters": [ { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "org_name", - "in": "query", - "description": "Organization Name of the tenant account.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "username", - "in": "query", - "description": "Username of the admin user (on the new tenant account).", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "email", - "in": "query", - "description": "Email of the admin user.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "password", - "in": "query", - "description": "Password of the admin user.", + "name": "provider_id", + "in": "path", + "description": "ID of the tenant account.", "required": true, "schema": { - "type": "string" + "type": "integer" } - }, - { - "name": "additional_fields", - "in": "query", - "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" + } + ], + "requestBody": { + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "$ref": "#/components/schemas/TriggerBillingRequest" } } } - ], + }, "responses": { "default": { "description": "success", @@ -279,40 +174,43 @@ } } }, - "/master/api/providers/{provider_id}/billing_jobs.xml": { + "/master/api/providers/{provider_id}/accounts/{account_id}/billing_jobs.xml": { "post": { - "summary": "Trigger Billing", - "operationId": "trigger_tenant_billing", + "summary": "Trigger Billing by Account", + "description": "Triggers billing process for a specific developer account.", + "tags": [ + "Tenant Billing" + ], "parameters": [ - { - "name": "access_token", - "in": "query", - "description": "A personal Access Token", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "provider_id", "in": "path", "description": "ID of the tenant account.", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { - "name": "date", - "in": "query", - "description": "Base date for the billing process. Format YYYY-MM-DD (UTC).", + "name": "account_id", + "in": "path", + "description": "ID of the developer account.", "required": true, "schema": { - "type": "string" + "type": "integer" } } ], + "requestBody": { + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "$ref": "#/components/schemas/TriggerBillingRequest" + } + } + } + }, "responses": { "default": { "description": "success", @@ -322,5 +220,102 @@ } } }, - "components": {} + "components": { + "schemas": { + "TenantCreateRequest": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "org_name": { + "type": "string", + "description": "Organization Name of the tenant account." + }, + "username": { + "type": "string", + "description": "Username of the admin user (on the new tenant account)." + }, + "email": { + "type": "string", + "description": "Email of the admin user." + }, + "password": { + "type": "string", + "description": "Password of the admin user." + } + }, + "additionalProperties": { + "type": "string" + }, + "required": [ + "access_token", + "org_name", + "username", + "email", + "password" + ] + }, + "TenantUpdateRequest": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "from_email": { + "type": "string", + "description": "New outgoing email." + }, + "support_email": { + "type": "string", + "description": "New support email." + }, + "finance_support_email": { + "type": "string", + "description": "New finance support email." + }, + "site_access_code": { + "type": "string", + "description": "Developer Portal Access Code." + }, + "state_event": { + "type": "string", + "description": "Change the state of the tenant. It can be either 'make_pending', 'approve', 'reject', 'suspend', or 'resume' depending on the current state", + "enum": [ + "make_pending", + "approve", + "reject", + "suspend", + "resume" + ] + } + }, + "additionalProperties": { + "type": "string" + }, + "required": [ + "access_token" + ] + }, + "TriggerBillingRequest": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "date": { + "type": "string", + "description": "Base date for the billing process. Format YYYY-MM-DD (UTC)." + } + }, + "required": [ + "access_token", + "date" + ] + } + } + } } \ No newline at end of file From 47af16b9b9bc031b8a6b06f7cc14ab4b622c3998 Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Mon, 6 Mar 2023 23:40:25 +0100 Subject: [PATCH 53/85] Fixes and updates for CMS API --- .../Developer Portal API (Tech Preview).json | 615 ++++++++---------- 1 file changed, 280 insertions(+), 335 deletions(-) diff --git a/doc/active_docs/Developer Portal API (Tech Preview).json b/doc/active_docs/Developer Portal API (Tech Preview).json index 972b6ada1a..cda621e29c 100644 --- a/doc/active_docs/Developer Portal API (Tech Preview).json +++ b/doc/active_docs/Developer Portal API (Tech Preview).json @@ -11,73 +11,29 @@ } ], "paths": { - "/admin/api/cms/templates/{id}/publish.xml": { - "put": { - "summary": "Template Publish", + "/admin/api/cms/templates.xml": { + "get": { "tags": [ - "adminapicmstemplates" + "Templates" ], + "summary": "Template List", + "description": "List all templates", "parameters": [ { - "name": "id", - "in": "path", - "description": "ID of the template", + "name": "access_token", + "in": "query", + "description": "Your access token", "required": true, "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "requestBody": { - "description": "Template Publish", - "required": true, - "content": { - "application/x-www-form-urlencoded": { - "schema": { - "type": "object", - "properties": { - "access_token": { - "type": "string", - "description": "A personal Access Token." - } - }, - "required": [ - "access_token" - ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } - } + "type": "string" } - } - }, - "responses": { - "default": { - "description": "success", - "content": {} - } - } - } - }, - "/admin/api/cms/files.xml": { - "get": { - "tags": [ - "adminapicmstemplates" - ], - "summary": "File List", - "parameters": [ + }, { "name": "page", "in": "query", "description": "Current page of the list", "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -85,17 +41,7 @@ "in": "query", "description": "Total number of records per one page (maximum 100)", "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "access_token", - "in": "query", - "description": "Your access token", - "required": true, - "schema": { - "type": "string" + "type": "integer" } } ], @@ -107,13 +53,12 @@ } }, "post": { - "summary": "File Create", + "summary": "Template Create", + "description": "Create partial, layout or page", "tags": [ - "adminapicmstemplates" + "Templates" ], - "requestBody": { - "description": "File Create", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -122,40 +67,65 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "Your access token" + }, + "type": { + "type": "string", + "enum": [ + "page", + "layout", + "partial" + ] + }, + "system_name": { + "type": "string", + "description": "Human readable and unique identifier" + }, + "title": { + "type": "string", + "description": "Title of the template" }, "path": { "type": "string", - "description": "URI of the file" + "description": "URI of the page" + }, + "draft": { + "type": "string", + "description": "Text content of the template (you have to publish the template)" + }, + "section_name": { + "type": "string", + "description": "system name of a section" }, "section_id": { - "type": "ref", + "type": "integer", "description": "ID of a section (valid only for pages)" }, - "tag_list": { + "layout_name": { "type": "string", - "description": "List of the tags" + "description": "system name of a layout (valid only for pages)" }, - "attachment": { - "type": "string" + "layout_id": { + "type": "integer", + "description": "ID of a layout - overrides layout_name" }, - "downloadable": { + "liquid_enabled": { "type": "boolean", - "description": "Checked sets the content-disposition to attachment" + "description": "liquid processing of the template content on/off" + }, + "handler": { + "type": "string", + "description": "text will be processed by the handler before rendering", + "enum": [ + "textile", + "markdown" + ] } }, "required": [ "access_token", - "path", - "attachment" + "type" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -168,12 +138,13 @@ } } }, - "/admin/api/cms/files/{id}.xml": { + "/admin/api/cms/templates/{id}.xml": { "get": { "tags": [ - "adminapicmstemplates" + "Templates" ], - "summary": "File Read", + "summary": "Template Read", + "description": "View template", "parameters": [ { "name": "access_token", @@ -187,11 +158,10 @@ { "name": "id", "in": "path", - "description": "ID of the file", + "description": "ID of the template", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -203,24 +173,23 @@ } }, "put": { - "summary": "File Update", + "summary": "Template Update", + "description": "Update [builtin] page, partial or layout and draft content.", "tags": [ - "adminapicmstemplates" + "Templates" ], "parameters": [ { "name": "id", "in": "path", - "description": "ID of the file", + "description": "ID of the template", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], "requestBody": { - "description": "File Update", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -229,38 +198,56 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "Your access token" + }, + "system_name": { + "type": "string", + "description": "Human readable and unique identifier" + }, + "title": { + "type": "string", + "description": "Title of the template" }, "path": { "type": "string", - "description": "URI of the file" + "description": "URI of the page" + }, + "draft": { + "type": "string", + "description": "Text content of the template (you have to publish the template)" + }, + "section_name": { + "type": "string", + "description": "system name of a section" }, "section_id": { - "type": "ref", + "type": "integer", "description": "ID of a section (valid only for pages)" }, - "tag_list": { + "layout_name": { "type": "string", - "description": "List of the tags" + "description": "system name of a layout (valid only for pages)" }, - "attachment": { - "type": "string" + "layout_id": { + "type": "integer", + "description": "ID of a layout - overrides layout_name" }, - "downloadable": { + "liquid_enabled": { "type": "boolean", - "description": "Checked sets the content-disposition to attachment" + "description": "liquid processing of the template content on/off" + }, + "handler": { + "type": "string", + "description": "text will be processed by the handler before rendering", + "enum": [ + "textile", + "markdown" + ] } }, "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -274,9 +261,10 @@ }, "delete": { "tags": [ - "adminapicmstemplates" + "Templates" ], - "summary": "File Delete", + "summary": "Template Delete", + "description": "Delete page, partial or layout.", "parameters": [ { "name": "access_token", @@ -290,11 +278,10 @@ { "name": "id", "in": "path", - "description": "ID of the file", + "description": "ID of the template", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -306,55 +293,25 @@ } } }, - "/admin/api/cms/templates.xml": { - "get": { + "/admin/api/cms/templates/{id}/publish.xml": { + "put": { + "summary": "Template Publish", + "description": "The current draft will be published and visible by all users.", "tags": [ - "adminapicmstemplates" + "Templates" ], - "summary": "Template List", "parameters": [ { - "name": "access_token", - "in": "query", - "description": "Your access token", + "name": "id", + "in": "path", + "description": "ID of the template", "required": true, "schema": { - "type": "string" + "type": "integer" } - }, - { - "name": "page", - "in": "query", - "description": "Current page of the list", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "per_page", - "in": "query", - "description": "Total number of records per one page (maximum 100)", - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} } - } - }, - "post": { - "summary": "Template Create", - "tags": [ - "adminapicmstemplates" ], "requestBody": { - "description": "Template Create", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -363,72 +320,12 @@ "properties": { "access_token": { "type": "string", - "description": "Your access token" - }, - "type": { - "type": "string", - "enum": [ - "page", - "layout", - "partial" - ] - }, - "system_name": { - "type": "string", - "description": "Human readable and unique identifier" - }, - "title": { - "type": "string", - "description": "Title of the template" - }, - "path": { - "type": "string", - "description": "URI of the page" - }, - "draft": { - "type": "string", - "description": "Text content of the template (you have to publish the template)" - }, - "section_name": { - "type": "string", - "description": "system name of a section" - }, - "section_id": { - "type": "ref", - "description": "ID of a section (valid only for pages)" - }, - "layout_name": { - "type": "string", - "description": "system name of a layout (valid only for pages)" - }, - "layout_id": { - "type": "ref", - "description": "ID of a layout - overrides layout_name" - }, - "liquid_enabled": { - "type": "boolean", - "description": "liquid processing of the template content on/off" - }, - "handler": { - "type": "string", - "description": "text will be processed by the handler before rendering", - "enum": [ - "textile", - "markdown" - ] + "description": "A personal Access Token." } }, "required": [ - "access_token", - "type" + "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -444,9 +341,10 @@ "/admin/api/cms/sections.xml": { "get": { "tags": [ - "adminapicmstemplates" + "Sections" ], "summary": "Section List", + "description": "List all sections", "parameters": [ { "name": "access_token", @@ -462,8 +360,7 @@ "in": "query", "description": "Current page of the list", "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } }, { @@ -471,8 +368,7 @@ "in": "query", "description": "Total number of records per one page (maximum 100)", "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -485,11 +381,11 @@ }, "post": { "summary": "Section Create", + "description": "Create section", "tags": [ - "adminapicmstemplates" + "Sections" ], "requestBody": { - "description": "Section Create", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -509,7 +405,7 @@ "description": "Public or not" }, "parent_id": { - "type": "ref", + "type": "integer", "description": "ID of a parent section" }, "partial_path": { @@ -521,13 +417,6 @@ "access_token", "title" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -540,12 +429,13 @@ } } }, - "/admin/api/cms/templates/{id}.xml": { + "/admin/api/cms/sections/{id}.xml": { "get": { "tags": [ - "adminapicmstemplates" + "Sections" ], - "summary": "Template Read", + "summary": "Section Read", + "description": "View section", "parameters": [ { "name": "access_token", @@ -559,11 +449,10 @@ { "name": "id", "in": "path", - "description": "ID of the template", + "description": "ID of the section", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -575,24 +464,23 @@ } }, "put": { - "summary": "Template Update", + "summary": "Section Update", + "description": "Update section", "tags": [ - "adminapicmstemplates" + "Sections" ], "parameters": [ { "name": "id", "in": "path", - "description": "ID of the template", + "description": "ID of the section", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], "requestBody": { - "description": "Template Update", "required": true, "content": { "application/x-www-form-urlencoded": { @@ -603,61 +491,26 @@ "type": "string", "description": "Your access token" }, - "system_name": { - "type": "string", - "description": "Human readable and unique identifier" - }, "title": { "type": "string", - "description": "Title of the template" - }, - "path": { - "type": "string", - "description": "URI of the page" - }, - "draft": { - "type": "string", - "description": "Text content of the template (you have to publish the template)" - }, - "section_name": { - "type": "string", - "description": "system name of a section" - }, - "section_id": { - "type": "ref", - "description": "ID of a section (valid only for pages)" - }, - "layout_name": { - "type": "string", - "description": "system name of a layout (valid only for pages)" - }, - "layout_id": { - "type": "ref", - "description": "ID of a layout - overrides layout_name" + "description": "Title of the section" }, - "liquid_enabled": { + "public": { "type": "boolean", - "description": "liquid processing of the template content on/off" + "description": "Public or not" }, - "handler": { + "parent_id": { + "type": "integer", + "description": "ID of a parent section" + }, + "partial_path": { "type": "string", - "description": "text will be processed by the handler before rendering", - "enum": [ - "textile", - "markdown" - ] + "description": "Path of the section" } }, "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -671,9 +524,10 @@ }, "delete": { "tags": [ - "adminapicmstemplates" + "Sections" ], - "summary": "Template Delete", + "summary": "Section Delete", + "description": "Delete section", "parameters": [ { "name": "access_token", @@ -687,11 +541,10 @@ { "name": "id", "in": "path", - "description": "ID of the template", + "description": "ID of the section", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -703,12 +556,109 @@ } } }, - "/admin/api/cms/sections/{id}.xml": { + "/admin/api/cms/files.xml": { "get": { "tags": [ - "adminapicmstemplates" + "Files" ], - "summary": "Section Read", + "summary": "File List", + "description": "List all files", + "parameters": [ + { + "name": "access_token", + "in": "query", + "description": "Your access token", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "description": "Current page of the list", + "schema": { + "type": "integer" + } + }, + { + "name": "per_page", + "in": "query", + "description": "Total number of records per one page (maximum 100)", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + }, + "post": { + "summary": "File Create", + "description": "Create file", + "tags": [ + "Files" + ], + "requestBody": { + "required": true, + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "A personal Access Token." + }, + "path": { + "type": "string", + "description": "URI of the file" + }, + "section_id": { + "type": "integer", + "description": "ID of a section (valid only for pages)" + }, + "tag_list": { + "type": "string", + "description": "List of the tags" + }, + "attachment": { + "type": "string", + "format": "binary" + }, + "downloadable": { + "type": "boolean", + "description": "Checked sets the content-disposition to attachment" + } + }, + "required": [ + "access_token", + "path", + "attachment" + ] + } + } + } + }, + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/admin/api/cms/files/{id}.xml": { + "get": { + "tags": [ + "Files" + ], + "summary": "File Read", + "description": "View file", "parameters": [ { "name": "access_token", @@ -722,11 +672,10 @@ { "name": "id", "in": "path", - "description": "ID of the section", + "description": "ID of the file", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -738,61 +687,57 @@ } }, "put": { - "summary": "Section Update", + "summary": "File Update", + "description": "Update file", "tags": [ - "adminapicmstemplates" + "Files" ], "parameters": [ { "name": "id", "in": "path", - "description": "ID of the section", + "description": "ID of the file", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], "requestBody": { - "description": "Section Update", "required": true, "content": { - "application/x-www-form-urlencoded": { + "multipart/form-data": { "schema": { "type": "object", "properties": { "access_token": { "type": "string", - "description": "Your access token" + "description": "A personal Access Token." }, - "title": { + "path": { "type": "string", - "description": "Title of the section" + "description": "URI of the file" }, - "public": { - "type": "boolean", - "description": "Public or not" + "section_id": { + "type": "integer", + "description": "ID of a section (valid only for pages)" }, - "parent_id": { - "type": "ref", - "description": "ID of a parent section" + "tag_list": { + "type": "string", + "description": "List of the tags" }, - "partial_path": { + "attachment": { "type": "string", - "description": "Path of the section" + "format": "binary" + }, + "downloadable": { + "type": "boolean", + "description": "Checked sets the content-disposition to attachment" } }, "required": [ "access_token" ] - }, - "encoding": { - "field_definitions": { - "contentType": "application/x-www-form-urlencoded", - "style": "deepObject", - "explode": true - } } } } @@ -806,9 +751,10 @@ }, "delete": { "tags": [ - "adminapicmstemplates" + "Files" ], - "summary": "Section Delete", + "summary": "File Delete", + "description": "Delete file", "parameters": [ { "name": "access_token", @@ -822,11 +768,10 @@ { "name": "id", "in": "path", - "description": "ID of the section", + "description": "ID of the file", "required": true, "schema": { - "type": "integer", - "format": "int32" + "type": "integer" } } ], @@ -840,4 +785,4 @@ } }, "components": {} -} +} \ No newline at end of file From 63010ac8717ce26e7679ee8280659e571d651395 Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Tue, 7 Mar 2023 00:18:38 +0100 Subject: [PATCH 54/85] Restore newline at the end of file --- doc/active_docs/Account Management API.json | 2 +- doc/active_docs/Billing API.json | 2 +- doc/active_docs/Developer Portal API (Tech Preview).json | 2 +- doc/active_docs/Master API.json | 2 +- doc/active_docs/Policy Registry API.json | 2 +- doc/active_docs/Service Management API.json | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/active_docs/Account Management API.json b/doc/active_docs/Account Management API.json index fa52329004..8da87a493d 100644 --- a/doc/active_docs/Account Management API.json +++ b/doc/active_docs/Account Management API.json @@ -9813,4 +9813,4 @@ } } } -} \ No newline at end of file +} diff --git a/doc/active_docs/Billing API.json b/doc/active_docs/Billing API.json index 2ba3a6c2d5..d81cf0526a 100644 --- a/doc/active_docs/Billing API.json +++ b/doc/active_docs/Billing API.json @@ -650,4 +650,4 @@ } }, "components": {} -} \ No newline at end of file +} diff --git a/doc/active_docs/Developer Portal API (Tech Preview).json b/doc/active_docs/Developer Portal API (Tech Preview).json index cda621e29c..f21e3e8975 100644 --- a/doc/active_docs/Developer Portal API (Tech Preview).json +++ b/doc/active_docs/Developer Portal API (Tech Preview).json @@ -785,4 +785,4 @@ } }, "components": {} -} \ No newline at end of file +} diff --git a/doc/active_docs/Master API.json b/doc/active_docs/Master API.json index e7293a3460..aa1289f018 100644 --- a/doc/active_docs/Master API.json +++ b/doc/active_docs/Master API.json @@ -318,4 +318,4 @@ } } } -} \ No newline at end of file +} diff --git a/doc/active_docs/Policy Registry API.json b/doc/active_docs/Policy Registry API.json index ae6fd74ffd..b32fe73b99 100644 --- a/doc/active_docs/Policy Registry API.json +++ b/doc/active_docs/Policy Registry API.json @@ -190,4 +190,4 @@ } } } -} \ No newline at end of file +} diff --git a/doc/active_docs/Service Management API.json b/doc/active_docs/Service Management API.json index 405f12efe3..1301857d01 100644 --- a/doc/active_docs/Service Management API.json +++ b/doc/active_docs/Service Management API.json @@ -473,4 +473,4 @@ } } } -} \ No newline at end of file +} From 1b8207308e1a0e2ed34fc876c6a2c09a441384df Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Thu, 9 Mar 2023 22:12:57 +0530 Subject: [PATCH 55/85] THREESCALE-3927 Fixed Account Management API autocompletes --- .../src/ActiveDocs/OAS3Autocomplete.ts | 17 +- doc/active_docs/Account Management API.json | 566 ++++++++++++++---- 2 files changed, 481 insertions(+), 102 deletions(-) diff --git a/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts b/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts index b4ac082aaa..7f986355e2 100644 --- a/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts +++ b/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts @@ -18,9 +18,22 @@ import type { AccountData } from 'Types/SwaggerTypes' const X_DATA_ATTRIBUTE = 'x-data-threescale-name' const X_DATA_PARAMS_DESCRIPTIONS = { - user_keys: 'First user key from latest 5 applications', + metric_names: 'Latest 5 metrics', + metric_ids: 'Latest 5 metrics', + app_keys: 'First application key from the latest five applications', app_ids: 'Latest 5 applications (across all accounts and services)', - app_keys: 'First application key from the latest five applications' + application_ids: 'Latest 5 applications', + user_keys: 'First user key from latest 5 applications', + account_ids: 'Latest 5 accounts', + access_token: 'Access Token', + user_ids: 'First user (admin) of the latest 5 account', + service_ids: 'Latest 5 services', + admin_ids: 'Latest 5 users (admin) from your account', + service_plan_ids: 'Latest 5 service plans', + application_plan_ids: 'Latest 5 application plans', + account_plan_ids: 'Latest 5 account plans', + client_ids: 'Client IDs from the latest five applications', + client_secrets: 'Client secrets from the latest five applications' } as const const addAutocompleteToParam = (param: any, accountData: AccountData): any => { diff --git a/doc/active_docs/Account Management API.json b/doc/active_docs/Account Management API.json index 8da87a493d..d5f2a429a0 100644 --- a/doc/active_docs/Account Management API.json +++ b/doc/active_docs/Account Management API.json @@ -49,6 +49,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -106,6 +107,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -115,6 +117,7 @@ "name": "id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -173,6 +176,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -182,6 +186,7 @@ "name": "id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -208,6 +213,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -233,6 +239,7 @@ "name": "user_id", "in": "query", "description": "ID of the account user.", + "x-data-threescale-name": "user_ids", "schema": { "type": "string" } @@ -274,6 +281,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -283,6 +291,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -307,6 +316,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -343,6 +353,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -352,6 +363,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -361,6 +373,7 @@ "name": "id", "in": "path", "description": "ID of the application.", + "x-data-threescale-name": "application_ids", "required": true, "schema": { "type": "integer" @@ -385,6 +398,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -394,6 +408,7 @@ "name": "id", "in": "path", "description": "ID of the application.", + "x-data-threescale-name": "application_ids", "required": true, "schema": { "type": "integer" @@ -428,6 +443,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -437,6 +453,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -446,6 +463,7 @@ "name": "id", "in": "path", "description": "ID of the application.", + "x-data-threescale-name": "application_ids", "required": true, "schema": { "type": "integer" @@ -472,6 +490,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -481,6 +500,7 @@ "name": "id", "in": "path", "description": "ID of the application.", + "x-data-threescale-name": "application_ids", "required": true, "schema": { "type": "integer" @@ -496,7 +516,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" } }, "required": [ @@ -526,6 +547,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -535,6 +557,7 @@ "name": "id", "in": "path", "description": "ID of the application.", + "x-data-threescale-name": "application_ids", "required": true, "schema": { "type": "integer" @@ -550,11 +573,13 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "plan_id": { "type": "integer", - "description": "ID of the new application plan." + "description": "ID of the new application plan.", + "x-data-threescale-name": "application_plan_ids" } }, "required": [ @@ -585,6 +610,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -594,6 +620,7 @@ "name": "id", "in": "path", "description": "ID of the application.", + "x-data-threescale-name": "application_ids", "required": true, "schema": { "type": "integer" @@ -609,7 +636,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" } }, "required": [ @@ -639,6 +667,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -648,6 +677,7 @@ "name": "id", "in": "path", "description": "ID of the application.", + "x-data-threescale-name": "application_ids", "required": true, "schema": { "type": "integer" @@ -663,7 +693,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" } }, "required": [ @@ -693,6 +724,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -702,6 +734,7 @@ "name": "id", "in": "path", "description": "ID of the application.", + "x-data-threescale-name": "application_ids", "required": true, "schema": { "type": "integer" @@ -717,7 +750,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" } }, "required": [ @@ -747,6 +781,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -756,6 +791,7 @@ "name": "id", "in": "path", "description": "ID of the application.", + "x-data-threescale-name": "application_ids", "required": true, "schema": { "type": "integer" @@ -771,7 +807,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" } }, "required": [ @@ -800,6 +837,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -809,6 +847,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -818,6 +857,7 @@ "name": "application_id", "in": "path", "description": "ID of the application.", + "x-data-threescale-name": "application_ids", "required": true, "schema": { "type": "integer" @@ -841,6 +881,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -850,6 +891,7 @@ "name": "application_id", "in": "path", "description": "ID of the application.", + "x-data-threescale-name": "application_ids", "required": true, "schema": { "type": "integer" @@ -866,7 +908,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "key": { "type": "string", @@ -900,6 +943,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -909,6 +953,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -918,6 +963,7 @@ "name": "application_id", "in": "path", "description": "ID of the application.", + "x-data-threescale-name": "application_ids", "required": true, "schema": { "type": "integer" @@ -952,6 +998,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -961,6 +1008,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -970,6 +1018,7 @@ "name": "application_id", "in": "path", "description": "ID of the application.", + "x-data-threescale-name": "application_ids", "required": true, "schema": { "type": "integer" @@ -993,6 +1042,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -1002,6 +1052,7 @@ "name": "application_id", "in": "path", "description": "ID of the application.", + "x-data-threescale-name": "application_ids", "required": true, "schema": { "type": "integer" @@ -1018,7 +1069,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "referrer_filter": { "type": "string", @@ -1052,6 +1104,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -1061,6 +1114,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -1070,6 +1124,7 @@ "name": "application_id", "in": "path", "description": "ID of the application.", + "x-data-threescale-name": "application_ids", "required": true, "schema": { "type": "integer" @@ -1105,6 +1160,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -1120,7 +1176,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "body": { "type": "string", @@ -1157,6 +1214,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -1166,6 +1224,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -1192,6 +1251,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -1201,6 +1261,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -1227,6 +1288,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -1236,6 +1298,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -1286,7 +1349,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" } }, "required": [ @@ -1316,6 +1380,7 @@ "name": "id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -1331,11 +1396,13 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "plan_id": { "type": "integer", - "description": "ID of the target account plan" + "description": "ID of the target account plan", + "x-data-threescale-name": "account_plan_ids" } }, "required": [ @@ -1365,6 +1432,7 @@ "name": "id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -1381,7 +1449,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "credit_card_token": { "type": "string", @@ -1464,6 +1533,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -1473,6 +1543,7 @@ "name": "id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -1499,6 +1570,7 @@ "name": "id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -1514,7 +1586,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" } }, "required": [ @@ -1559,7 +1632,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" } }, "required": [ @@ -1589,6 +1663,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -1598,6 +1673,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -1647,6 +1723,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -1683,6 +1760,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -1692,6 +1770,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -1701,6 +1780,7 @@ "name": "id", "in": "path", "description": "ID of the user.", + "x-data-threescale-name": "user_ids", "required": true, "schema": { "type": "integer" @@ -1725,6 +1805,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -1734,6 +1815,7 @@ "name": "id", "in": "path", "description": "ID of the user.", + "x-data-threescale-name": "user_ids", "required": true, "schema": { "type": "integer" @@ -1768,6 +1850,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -1777,6 +1860,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -1786,6 +1870,7 @@ "name": "id", "in": "path", "description": "ID of the user.", + "x-data-threescale-name": "user_ids", "required": true, "schema": { "type": "integer" @@ -1812,6 +1897,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -1821,6 +1907,7 @@ "name": "id", "in": "path", "description": "ID of the user.", + "x-data-threescale-name": "user_ids", "required": true, "schema": { "type": "integer" @@ -1836,7 +1923,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "additional_fields[]": { "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", @@ -1873,6 +1961,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -1882,6 +1971,7 @@ "name": "id", "in": "path", "description": "ID of the user.", + "x-data-threescale-name": "user_ids", "required": true, "schema": { "type": "integer" @@ -1897,7 +1987,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" } }, "required": [ @@ -1927,6 +2018,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -1936,6 +2028,7 @@ "name": "id", "in": "path", "description": "ID of the user.", + "x-data-threescale-name": "user_ids", "required": true, "schema": { "type": "integer" @@ -1951,7 +2044,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" } }, "required": [ @@ -1981,6 +2075,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -1990,6 +2085,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -1999,6 +2095,7 @@ "name": "id", "in": "path", "description": "ID of the user.", + "x-data-threescale-name": "user_ids", "required": true, "schema": { "type": "integer" @@ -2025,6 +2122,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -2034,6 +2132,7 @@ "name": "id", "in": "path", "description": "ID of the user.", + "x-data-threescale-name": "user_ids", "required": true, "schema": { "type": "integer" @@ -2049,7 +2148,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" } }, "required": [ @@ -2079,6 +2179,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -2153,6 +2254,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -2162,6 +2264,7 @@ "name": "id", "in": "path", "description": "ID of the user.", + "x-data-threescale-name": "user_ids", "required": true, "schema": { "type": "integer" @@ -2186,6 +2289,7 @@ "name": "id", "in": "path", "description": "ID of the user.", + "x-data-threescale-name": "user_ids", "required": true, "schema": { "type": "string" @@ -2220,6 +2324,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -2229,6 +2334,7 @@ "name": "id", "in": "path", "description": "ID of the user.", + "x-data-threescale-name": "user_ids", "required": true, "schema": { "type": "integer" @@ -2255,6 +2361,7 @@ "name": "id", "in": "path", "description": "ID of the user.", + "x-data-threescale-name": "user_ids", "required": true, "schema": { "type": "string" @@ -2270,7 +2377,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" } }, "required": [ @@ -2300,6 +2408,7 @@ "name": "id", "in": "path", "description": "ID of the user.", + "x-data-threescale-name": "user_ids", "required": true, "schema": { "type": "string" @@ -2316,7 +2425,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" } }, "required": [ @@ -2346,6 +2456,7 @@ "name": "id", "in": "path", "description": "ID of the user.", + "x-data-threescale-name": "user_ids", "required": true, "schema": { "type": "string" @@ -2361,7 +2472,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" } }, "required": [ @@ -2391,6 +2503,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -2400,6 +2513,7 @@ "name": "id", "in": "path", "description": "ID of the user.", + "x-data-threescale-name": "user_ids", "required": true, "schema": { "type": "integer" @@ -2424,6 +2538,7 @@ "name": "id", "in": "path", "description": "ID of the user.", + "x-data-threescale-name": "user_ids", "required": true, "schema": { "type": "integer" @@ -2439,7 +2554,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "allowed_service_ids[]": { "type": "array", @@ -2502,6 +2618,7 @@ "name": "id", "in": "path", "description": "ID of the user.", + "x-data-threescale-name": "user_ids", "required": true, "schema": { "type": "integer" @@ -2517,7 +2634,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" } }, "required": [ @@ -2547,6 +2665,7 @@ "name": "id", "in": "path", "description": "ID of the user.", + "x-data-threescale-name": "user_ids", "required": true, "schema": { "type": "integer" @@ -2562,7 +2681,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" } }, "required": [ @@ -2592,6 +2712,7 @@ "name": "user_id", "in": "path", "description": "ID of the user.", + "x-data-threescale-name": "user_ids", "required": true, "schema": { "type": "integer" @@ -2607,7 +2728,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "name": { "type": "string", @@ -2673,6 +2795,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -2701,7 +2824,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "name": { "type": "string", @@ -2752,6 +2876,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -2761,6 +2886,7 @@ "name": "account_plan_id", "in": "path", "description": "ID of the account plan.", + "x-data-threescale-name": "account_plan_ids", "required": true, "schema": { "type": "integer" @@ -2787,6 +2913,7 @@ "name": "account_plan_id", "in": "path", "description": "ID of the account plan.", + "x-data-threescale-name": "account_plan_ids", "required": true, "schema": { "type": "integer" @@ -2811,7 +2938,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" } }, "required": [ @@ -2839,6 +2967,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -2848,6 +2977,7 @@ "name": "account_plan_id", "in": "path", "description": "ID of the account plan.", + "x-data-threescale-name": "account_plan_ids", "required": true, "schema": { "type": "integer" @@ -2883,6 +3013,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -2892,6 +3023,7 @@ "name": "id", "in": "path", "description": "ID of the account plan.", + "x-data-threescale-name": "account_plan_ids", "required": true, "schema": { "type": "integer" @@ -2916,6 +3048,7 @@ "name": "id", "in": "path", "description": "ID of the account plan.", + "x-data-threescale-name": "account_plan_ids", "required": true, "schema": { "type": "integer" @@ -2931,7 +3064,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "name": { "type": "string", @@ -2975,6 +3109,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -2984,6 +3119,7 @@ "name": "id", "in": "path", "description": "ID of the account plan.", + "x-data-threescale-name": "account_plan_ids", "required": true, "schema": { "type": "integer" @@ -3010,6 +3146,7 @@ "name": "id", "in": "path", "description": "ID of the account plan.", + "x-data-threescale-name": "account_plan_ids", "required": true, "schema": { "type": "integer" @@ -3025,7 +3162,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" } }, "required": [ @@ -3055,6 +3193,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -3083,7 +3222,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "name": { "type": "string", @@ -3143,6 +3283,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -3191,7 +3332,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "name": { "type": "string", @@ -3243,6 +3385,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -3277,6 +3420,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -3303,6 +3447,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -3312,6 +3457,7 @@ "name": "application_plan_id", "in": "path", "description": "ID of the application plan.", + "x-data-threescale-name": "application_plan_ids", "required": true, "schema": { "type": "integer" @@ -3336,6 +3482,7 @@ "name": "application_plan_id", "in": "path", "description": "ID of the application plan.", + "x-data-threescale-name": "application_plan_ids", "required": true, "schema": { "type": "integer" @@ -3351,7 +3498,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "feature_id": { "type": "integer", @@ -3386,6 +3534,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -3395,6 +3544,7 @@ "name": "application_plan_id", "in": "path", "description": "ID of the application plan.", + "x-data-threescale-name": "application_plan_ids", "required": true, "schema": { "type": "integer" @@ -3430,6 +3580,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -3457,6 +3608,7 @@ "name": "application_plan_id", "in": "path", "description": "ID of the application plan.", + "x-data-threescale-name": "application_plan_ids", "required": true, "schema": { "type": "integer" @@ -3483,6 +3635,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -3492,6 +3645,7 @@ "name": "application_plan_id", "in": "path", "description": "ID of the application plan.", + "x-data-threescale-name": "application_plan_ids", "required": true, "schema": { "type": "integer" @@ -3525,6 +3679,7 @@ "name": "application_plan_id", "in": "path", "description": "ID of the application plan.", + "x-data-threescale-name": "application_plan_ids", "required": true, "schema": { "type": "integer" @@ -3549,7 +3704,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "value": { "type": "integer", @@ -3599,6 +3755,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -3608,6 +3765,7 @@ "name": "application_plan_id", "in": "path", "description": "ID of the application plan.", + "x-data-threescale-name": "application_plan_ids", "required": true, "schema": { "type": "integer" @@ -3650,6 +3808,7 @@ "name": "application_plan_id", "in": "path", "description": "ID of the application plan.", + "x-data-threescale-name": "application_plan_ids", "required": true, "schema": { "type": "integer" @@ -3683,7 +3842,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "value": { "type": "integer", @@ -3731,6 +3891,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -3740,6 +3901,7 @@ "name": "application_plan_id", "in": "path", "description": "ID of the application plan.", + "x-data-threescale-name": "application_plan_ids", "required": true, "schema": { "type": "integer" @@ -3784,6 +3946,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -3793,6 +3956,7 @@ "name": "application_plan_id", "in": "path", "description": "ID of the application plan.", + "x-data-threescale-name": "application_plan_ids", "required": true, "schema": { "type": "integer" @@ -3826,6 +3990,7 @@ "name": "application_plan_id", "in": "path", "description": "ID of the application plan.", + "x-data-threescale-name": "application_plan_ids", "required": true, "schema": { "type": "integer" @@ -3850,7 +4015,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "min": { "type": "integer", @@ -3893,6 +4059,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -3902,6 +4069,7 @@ "name": "application_plan_id", "in": "path", "description": "ID of the application plan.", + "x-data-threescale-name": "application_plan_ids", "required": true, "schema": { "type": "integer" @@ -3946,6 +4114,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -3955,6 +4124,7 @@ "name": "application_plan_id", "in": "path", "description": "ID of the application plan.", + "x-data-threescale-name": "application_plan_ids", "required": true, "schema": { "type": "integer" @@ -3981,6 +4151,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -3990,6 +4161,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -4013,6 +4185,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -4029,7 +4202,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "name": { "type": "string", @@ -4089,6 +4263,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -4098,6 +4273,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -4107,6 +4283,7 @@ "name": "id", "in": "path", "description": "ID of the application plan.", + "x-data-threescale-name": "account_plan_ids", "required": true, "schema": { "type": "integer" @@ -4130,6 +4307,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -4139,6 +4317,7 @@ "name": "id", "in": "path", "description": "ID of the application plan.", + "x-data-threescale-name": "account_plan_ids", "required": true, "schema": { "type": "integer" @@ -4155,7 +4334,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "name": { "type": "string", @@ -4212,6 +4392,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -4221,6 +4402,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -4230,6 +4412,7 @@ "name": "id", "in": "path", "description": "ID of the application plan.", + "x-data-threescale-name": "application_plan_ids", "required": true, "schema": { "type": "integer" @@ -4255,6 +4438,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -4264,6 +4448,7 @@ "name": "id", "in": "path", "description": "ID of the application plan.", + "x-data-threescale-name": "application_plan_ids", "required": true, "schema": { "type": "integer" @@ -4280,7 +4465,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" } }, "required": [ @@ -4310,6 +4496,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -4353,6 +4540,7 @@ "name": "service_id", "in": "query", "description": "Filter by service", + "x-data-threescale-name": "service_ids", "schema": { "type": "string" } @@ -4397,6 +4585,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -4406,6 +4595,7 @@ "name": "application_id", "in": "query", "description": "ID of the application.", + "x-data-threescale-name": "application_ids", "schema": { "type": "integer" } @@ -4414,6 +4604,7 @@ "name": "user_key", "in": "query", "description": "user_key of the application (for user_key authentication mode).", + "x-data-threescale-name": "user_keys", "schema": { "type": "string" } @@ -4422,6 +4613,7 @@ "name": "app_id", "in": "query", "description": "app_id of the application (for app_id/app_key and oauth authentication modes).", + "x-data-threescale-name": "app_ids", "schema": { "type": "string" } @@ -4430,6 +4622,7 @@ "name": "service_id", "in": "query", "description": "Filter by service", + "x-data-threescale-name": "service_ids", "schema": { "type": "string" } @@ -4455,6 +4648,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -4483,7 +4677,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "kind": { "type": "string", @@ -4503,11 +4698,13 @@ }, "client_id": { "type": "string", - "description": "Client ID of the authentication provider." + "description": "Client ID of the authentication provider.", + "x-data-threescale-name": "client_ids" }, "client_secret": { "type": "string", - "description": "Client Secret of the authentication provider." + "description": "Client Secret of the authentication provider.", + "x-data-threescale-name": "client_secrets" }, "site": { "type": "string", @@ -4550,6 +4747,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -4598,15 +4796,18 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "client_id": { "type": "string", - "description": "Client ID of the authentication provider." + "description": "Client ID of the authentication provider.", + "x-data-threescale-name": "client_ids" }, "client_secret": { "type": "string", - "description": "Client Secret of the authentication provider." + "description": "Client Secret of the authentication provider.", + "x-data-threescale-name": "client_secrets" }, "site": { "type": "string", @@ -4648,6 +4849,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -4676,7 +4878,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "kind": { "type": "string", @@ -4692,11 +4895,13 @@ }, "client_id": { "type": "string", - "description": "Client ID of the authentication provider." + "description": "Client ID of the authentication provider.", + "x-data-threescale-name": "client_ids" }, "client_secret": { "type": "string", - "description": "Client Secret of the authentication provider." + "description": "Client Secret of the authentication provider.", + "x-data-threescale-name": "client_secrets" }, "site": { "type": "string", @@ -4775,6 +4980,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -4823,15 +5029,18 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "client_id": { "type": "string", - "description": "Client ID of the authentication provider." + "description": "Client ID of the authentication provider.", + "x-data-threescale-name": "client_ids" }, "client_secret": { "type": "string", - "description": "Client Secret of the authentication provider." + "description": "Client Secret of the authentication provider.", + "x-data-threescale-name": "client_secrets" }, "site": { "type": "string", @@ -4876,6 +5085,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -4922,7 +5132,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "name": { "type": "string", @@ -4969,6 +5180,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -5017,7 +5229,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "name": { "type": "string", @@ -5060,6 +5273,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -5094,6 +5308,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -5160,7 +5375,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "http_method": { "type": "string", @@ -5217,6 +5433,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -5283,7 +5500,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "http_method": { "type": "string", @@ -5334,6 +5552,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -5377,6 +5596,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -5443,7 +5663,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "friendly_name": { "type": "string", @@ -5490,6 +5711,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -5556,7 +5778,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "friendly_name": { "type": "string", @@ -5595,6 +5818,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -5638,6 +5862,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -5722,7 +5947,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "friendly_name": { "type": "string", @@ -5769,6 +5995,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -5853,7 +6080,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "friendly_name": { "type": "string", @@ -5892,6 +6120,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -5945,6 +6174,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -5954,6 +6184,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -5978,6 +6209,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -5993,7 +6225,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "backend_api_id": { "type": "integer", @@ -6032,6 +6265,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6041,6 +6275,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -6074,6 +6309,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -6098,7 +6334,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "path": { "type": "integer", @@ -6130,6 +6367,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6139,6 +6377,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -6174,6 +6413,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6202,7 +6442,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "name": { "type": "string", @@ -6241,6 +6482,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6289,7 +6531,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "name": { "type": "string", @@ -6322,6 +6565,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6357,6 +6601,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6385,7 +6630,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "target": { "type": "string", @@ -6460,6 +6706,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6508,7 +6755,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "target": { "type": "string", @@ -6579,6 +6827,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6614,6 +6863,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6666,6 +6916,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6694,7 +6945,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "name": { "type": "string", @@ -6768,6 +7020,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6801,6 +7054,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6827,6 +7081,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6853,6 +7108,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6881,7 +7137,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "from_email": { "type": "string", @@ -6927,6 +7184,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6953,6 +7211,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6962,6 +7221,7 @@ "name": "service_plan_id", "in": "path", "description": "ID of the service plan.", + "x-data-threescale-name": "service_plan_ids", "required": true, "schema": { "type": "integer" @@ -6986,6 +7246,7 @@ "name": "service_plan_id", "in": "path", "description": "ID of the service plan.", + "x-data-threescale-name": "service_plan_ids", "required": true, "schema": { "type": "integer" @@ -7001,7 +7262,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "feature_id": { "type": "integer", @@ -7036,6 +7298,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -7045,6 +7308,7 @@ "name": "service_plan_id", "in": "path", "description": "ID of the service plan.", + "x-data-threescale-name": "service_plan_ids", "required": true, "schema": { "type": "integer" @@ -7080,6 +7344,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -7147,6 +7412,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -7156,6 +7422,7 @@ "name": "id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -7180,6 +7447,7 @@ "name": "id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -7214,6 +7482,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -7223,6 +7492,7 @@ "name": "id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -7249,6 +7519,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -7258,6 +7529,7 @@ "name": "id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -7282,6 +7554,7 @@ "name": "id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -7297,7 +7570,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "name": { "type": "string", @@ -7348,6 +7622,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -7357,6 +7632,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -7381,6 +7657,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -7396,7 +7673,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "friendly_name": { "type": "string", @@ -7448,6 +7726,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -7457,6 +7736,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -7499,6 +7779,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -7514,7 +7795,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "friendly_name": { "type": "string", @@ -7554,6 +7836,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -7563,6 +7846,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -7598,6 +7882,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -7607,6 +7892,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -7649,6 +7935,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -7664,7 +7951,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "friendly_name": { "type": "string", @@ -7712,6 +8000,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -7721,6 +8010,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -7763,6 +8053,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -7796,7 +8087,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "friendly_name": { "type": "string", @@ -7836,6 +8128,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -7845,6 +8138,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -7889,6 +8183,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -7944,6 +8239,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -7953,6 +8249,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -7992,7 +8289,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "endpoint": { "type": "string", @@ -8110,6 +8408,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -8125,7 +8424,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" } }, "required": [ @@ -8155,6 +8455,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -8164,6 +8465,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -8188,6 +8490,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -8203,7 +8506,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "http_method": { "type": "string", @@ -8261,6 +8565,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -8270,6 +8575,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -8303,6 +8609,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -8312,6 +8619,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -8345,6 +8653,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -8369,7 +8678,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "http_method": { "type": "string", @@ -8423,6 +8733,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -8432,6 +8743,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -8456,6 +8768,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -8472,7 +8785,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "standard_flow_enabled": { "type": "boolean", @@ -8518,6 +8832,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -8527,6 +8842,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -8566,6 +8882,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -8575,6 +8892,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -8614,6 +8932,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -8623,6 +8942,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -8671,6 +8991,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -8708,7 +9029,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "to": { "type": "string", @@ -8747,6 +9069,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -8756,6 +9079,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -8780,6 +9104,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -8795,7 +9120,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "policies_config": { "type": "string", @@ -8830,6 +9156,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -8839,6 +9166,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -8848,6 +9176,7 @@ "name": "id", "in": "path", "description": "ID of the service plan.", + "x-data-threescale-name": "service_plan_ids", "required": true, "schema": { "type": "integer" @@ -8872,6 +9201,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -8881,6 +9211,7 @@ "name": "id", "in": "path", "description": "ID of the service plan.", + "x-data-threescale-name": "service_plan_ids", "required": true, "schema": { "type": "integer" @@ -8896,7 +9227,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "name": { "type": "string", @@ -8940,6 +9272,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -8949,6 +9282,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -8958,6 +9292,7 @@ "name": "id", "in": "path", "description": "ID of the service plan.", + "x-data-threescale-name": "service_plan_ids", "required": true, "schema": { "type": "integer" @@ -8984,6 +9319,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -8993,6 +9329,7 @@ "name": "id", "in": "path", "description": "ID of the service plan.", + "x-data-threescale-name": "service_plan_ids", "required": true, "schema": { "type": "integer" @@ -9008,7 +9345,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" } }, "required": [ @@ -9037,6 +9375,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -9046,6 +9385,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -9070,6 +9410,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -9085,7 +9426,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "name": { "type": "string", @@ -9135,6 +9477,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -9144,6 +9487,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -9177,6 +9521,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -9201,7 +9546,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "name": { "type": "string", @@ -9237,6 +9583,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -9246,6 +9593,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -9281,6 +9629,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -9309,7 +9658,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "useraccountarea_enabled": { "type": "boolean", @@ -9379,7 +9729,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "url": { "type": "string", @@ -9469,6 +9820,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -9493,6 +9845,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -9524,7 +9877,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "org_name": { "type": "string", @@ -9551,11 +9905,13 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "plan_id": { "type": "integer", - "description": "ID of the application plan." + "description": "ID of the application plan.", + "x-data-threescale-name": "application_plan_ids" }, "name": { "type": "string", @@ -9567,7 +9923,8 @@ }, "user_key": { "type": "string", - "description": "User Key (API Key) of the application to be created." + "description": "User Key (API Key) of the application to be created.", + "x-data-threescale-name": "user_keys" }, "application_id": { "type": "string", @@ -9605,7 +9962,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "name": { "type": "string", @@ -9641,7 +9999,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "username": { "type": "string", @@ -9671,7 +10030,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "username": { "type": "string", @@ -9698,7 +10058,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "name": { "type": "string", @@ -9734,7 +10095,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "name": { "type": "string", @@ -9769,7 +10131,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "org_name": { "type": "string", @@ -9789,15 +10152,18 @@ }, "account_plan_id": { "type": "integer", - "description": "ID of the account plan (if not assigned default will be used instead)." + "description": "ID of the account plan (if not assigned default will be used instead).", + "x-data-threescale-name": "account_plan_ids" }, "service_plan_id": { "type": "integer", - "description": "ID of the service plan (if not assigned default will be used instead)." + "description": "ID of the service plan (if not assigned default will be used instead).", + "x-data-threescale-name": "service_plan_ids" }, "application_plan_id": { "type": "integer", - "description": "ID of the application plan (if not assigned default will be used instead)." + "description": "ID of the application plan (if not assigned default will be used instead).", + "x-data-threescale-name": "application_plan_ids" } }, "additionalProperties": { From d0e290ba991f1c12a68c4f80e6f14d14a7b9372b Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Thu, 9 Mar 2023 22:24:51 +0530 Subject: [PATCH 56/85] THREESCALE-3927 Updated Analytics API autocomplete --- doc/active_docs/Analytics API.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/doc/active_docs/Analytics API.json b/doc/active_docs/Analytics API.json index f9b35800ff..28a5127c45 100644 --- a/doc/active_docs/Analytics API.json +++ b/doc/active_docs/Analytics API.json @@ -36,6 +36,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -45,6 +46,7 @@ "name": "application_id", "in": "path", "description": "ID of the application", + "x-data-threescale-name": "application_ids", "required": true, "schema": { "type": "integer" @@ -143,6 +145,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -263,6 +266,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -272,6 +276,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -384,6 +389,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -393,6 +399,7 @@ "name": "service_id", "in": "path", "description": "ID of the service.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" From 95fee48aa1d6547a7e58dd3e1b74fa7811d2d64e Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Thu, 9 Mar 2023 23:05:48 +0530 Subject: [PATCH 57/85] THREESCALE-3927 Billing API autocomplete --- doc/active_docs/Billing API.json | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/doc/active_docs/Billing API.json b/doc/active_docs/Billing API.json index d81cf0526a..5ded338fdd 100644 --- a/doc/active_docs/Billing API.json +++ b/doc/active_docs/Billing API.json @@ -22,6 +22,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -31,6 +32,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -65,6 +67,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -74,6 +77,7 @@ "name": "account_id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -141,6 +145,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -211,11 +216,13 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "account_id": { "type": "integer", - "description": "ID of the account." + "description": "ID of the account.", + "x-data-threescale-name": "account_ids" }, "period": { "type": "string", @@ -255,6 +262,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -303,7 +311,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "period": { "type": "string", @@ -365,7 +374,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "state": { "type": "string", @@ -430,7 +440,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" } }, "required": [ @@ -466,6 +477,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -500,6 +512,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -548,7 +561,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "name": { "type": "string", @@ -616,6 +630,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" From be40a4c8c332fcad84c42fe9be4e019c9ef57304 Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Thu, 9 Mar 2023 23:32:27 +0530 Subject: [PATCH 58/85] THREESCALE-3927 Master API autocomplete --- doc/active_docs/Master API.json | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/doc/active_docs/Master API.json b/doc/active_docs/Master API.json index aa1289f018..d170c57fb0 100644 --- a/doc/active_docs/Master API.json +++ b/doc/active_docs/Master API.json @@ -48,6 +48,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -57,6 +58,7 @@ "name": "id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -81,6 +83,7 @@ "name": "id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -115,6 +118,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -124,6 +128,7 @@ "name": "id", "in": "path", "description": "ID of the account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -195,6 +200,7 @@ "name": "account_id", "in": "path", "description": "ID of the developer account.", + "x-data-threescale-name": "account_ids", "required": true, "schema": { "type": "integer" @@ -227,7 +233,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "org_name": { "type": "string", @@ -262,7 +269,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "from_email": { "type": "string", @@ -304,7 +312,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "date": { "type": "string", From ba46c194fa9b1b4209a464a1a37bb3b767417de7 Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Thu, 9 Mar 2023 23:55:20 +0530 Subject: [PATCH 59/85] THREESCALE-3927 Fixed Developer Portal API --- .../Developer Portal API (Tech Preview).json | 30 ++++++++++++++----- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/doc/active_docs/Developer Portal API (Tech Preview).json b/doc/active_docs/Developer Portal API (Tech Preview).json index f21e3e8975..a1a23c331d 100644 --- a/doc/active_docs/Developer Portal API (Tech Preview).json +++ b/doc/active_docs/Developer Portal API (Tech Preview).json @@ -23,6 +23,7 @@ "name": "access_token", "in": "query", "description": "Your access token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -67,7 +68,8 @@ "properties": { "access_token": { "type": "string", - "description": "Your access token" + "description": "Your access token", + "x-data-threescale-name": "access_token" }, "type": { "type": "string", @@ -150,6 +152,7 @@ "name": "access_token", "in": "query", "description": "Your access token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -198,7 +201,8 @@ "properties": { "access_token": { "type": "string", - "description": "Your access token" + "description": "Your access token", + "x-data-threescale-name": "access_token" }, "system_name": { "type": "string", @@ -270,6 +274,7 @@ "name": "access_token", "in": "query", "description": "Your access token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -320,7 +325,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" } }, "required": [ @@ -350,6 +356,7 @@ "name": "access_token", "in": "query", "description": "Your access token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -394,7 +401,8 @@ "properties": { "access_token": { "type": "string", - "description": "Your access token" + "description": "Your access token", + "x-data-threescale-name": "access_token" }, "title": { "type": "string", @@ -441,6 +449,7 @@ "name": "access_token", "in": "query", "description": "Your access token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -489,7 +498,8 @@ "properties": { "access_token": { "type": "string", - "description": "Your access token" + "description": "Your access token", + "x-data-threescale-name": "access_token" }, "title": { "type": "string", @@ -533,6 +543,7 @@ "name": "access_token", "in": "query", "description": "Your access token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -568,6 +579,7 @@ "name": "access_token", "in": "query", "description": "Your access token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -612,7 +624,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "path": { "type": "string", @@ -664,6 +677,7 @@ "name": "access_token", "in": "query", "description": "Your access token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -712,7 +726,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "path": { "type": "string", @@ -760,6 +775,7 @@ "name": "access_token", "in": "query", "description": "Your access token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" From 45c28e9d1ffca1104686ea7b3fb28235a46dee72 Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Thu, 9 Mar 2023 23:57:31 +0530 Subject: [PATCH 60/85] THREESCALE-3927 Policy Registry API --- doc/active_docs/Policy Registry API.json | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/doc/active_docs/Policy Registry API.json b/doc/active_docs/Policy Registry API.json index b32fe73b99..41975641d6 100644 --- a/doc/active_docs/Policy Registry API.json +++ b/doc/active_docs/Policy Registry API.json @@ -23,6 +23,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -51,7 +52,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "name": { "type": "string", @@ -107,6 +109,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -135,7 +138,8 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token." + "description": "A personal Access Token.", + "x-data-threescale-name": "access_token" }, "name": { "type": "string", @@ -175,6 +179,7 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" From 731872422bd949bd4dea48ab3145cdd987934561 Mon Sep 17 00:00:00 2001 From: Nidhi Soni Date: Fri, 10 Mar 2023 00:16:45 +0530 Subject: [PATCH 61/85] THREESCALE-3927 Service Management API autocomplete --- doc/active_docs/Service Management API.json | 24 ++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/doc/active_docs/Service Management API.json b/doc/active_docs/Service Management API.json index 1301857d01..c95b648f45 100644 --- a/doc/active_docs/Service Management API.json +++ b/doc/active_docs/Service Management API.json @@ -24,6 +24,7 @@ "name": "service_token", "in": "query", "description": "Service token for the API service.", + "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -33,6 +34,7 @@ "name": "service_id", "in": "query", "description": "Service ID.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -42,6 +44,7 @@ "name": "user_key", "in": "query", "description": "User Key (API key) - identifier and shared secret of the application if the authentication pattern is API Key.", + "x-data-threescale-name": "user_keys", "required": false, "schema": { "type": "string" @@ -51,6 +54,7 @@ "name": "app_id", "in": "query", "description": "App Id (identifier of the application if the authentication pattern is App ID / App Key).", + "x-data-threescale-name": "app_ids", "schema": { "type": "string" } @@ -59,6 +63,7 @@ "name": "app_key", "in": "query", "description": "App Key (shared secret of the application if the authentication pattern is App ID / App Key). The App Key is required if the application has one or more keys defined.", + "x-data-threescale-name": "app_keys", "required": false, "schema": { "type": "string" @@ -113,6 +118,7 @@ "name": "service_id", "in": "query", "description": "Service ID.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -122,6 +128,7 @@ "name": "user_key", "in": "query", "description": "User Key (API key) - identifier and shared secret of the application if the authentication pattern is API Key.", + "x-data-threescale-name": "user_keys", "required": false, "schema": { "type": "string" @@ -131,6 +138,7 @@ "name": "app_id", "in": "query", "description": "App Id (identifier of the application if the authentication pattern is App ID / App Key).", + "x-data-threescale-name": "app_ids", "schema": { "type": "string" } @@ -139,6 +147,7 @@ "name": "app_key", "in": "query", "description": "App Key (shared secret of the application if the authentication pattern is App ID / App Key). The App Key is required if the application has one or more keys defined.", + "x-data-threescale-name": "app_keys", "required": false, "schema": { "type": "string" @@ -203,6 +212,7 @@ "name": "service_id", "in": "query", "description": "Service ID.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -212,6 +222,7 @@ "name": "app_id", "in": "query", "description": "Client ID (identifier of the application if the authentication pattern is OAuth, note that client_id == app_id)", + "x-data-threescale-name": "app_ids", "schema": { "type": "string" } @@ -220,6 +231,7 @@ "name": "app_key", "in": "query", "description": "App Key (shared secret of the application). The app key, if present, must match a key defined for the application. Note that empty values are considered invalid.", + "x-data-threescale-name": "app_keys", "schema": { "type": "string" } @@ -289,6 +301,7 @@ "name": "service_id", "in": "query", "description": "Service ID.", + "x-data-threescale-name": "service_ids", "required": true, "schema": { "type": "integer" @@ -298,6 +311,7 @@ "name": "app_id", "in": "query", "description": "Client ID (identifier of the application if the authentication pattern is OAuth, note that client_id == app_id)", + "x-data-threescale-name": "app_ids", "schema": { "type": "string" } @@ -306,6 +320,7 @@ "name": "app_key", "in": "query", "description": "App Key (shared secret of the application). The app key, if present, must match a key defined for the application. Note that empty values are considered invalid.", + "x-data-threescale-name": "app_keys", "schema": { "type": "string" } @@ -386,7 +401,8 @@ }, "service_id": { "type": "integer", - "description": "Service ID." + "description": "Service ID.", + "x-data-threescale-name": "service_ids" }, "transactions": { "$ref": "#/components/schemas/Transactions" @@ -439,11 +455,13 @@ "properties": { "user_key": { "type": "string", - "description": "User Key (API key) - identifier and shared secret of the application if the authentication pattern is API Key." + "description": "User Key (API key) - identifier and shared secret of the application if the authentication pattern is API Key.", + "x-data-threescale-name": "user_keys" }, "app_id": { "type": "string", - "description": "App Id (identifier of the application if the authentication pattern is App ID / App Key)." + "description": "App Id (identifier of the application if the authentication pattern is App ID / App Key).", + "x-data-threescale-name": "app_ids" }, "timestamp": { "type": "string", From fad2c2529923b4e7e4cd4e874fb35022556011bf Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Fri, 10 Mar 2023 15:41:56 +0100 Subject: [PATCH 62/85] Fixups --- app/javascript/packs/provider_active_docs.ts | 4 +- app/javascript/packs/service_active_docs.ts | 2 - .../Service Management API (on-premises).json | 985 ++++++++++++------ doc/active_docs/accounts-s20.json | 2 +- doc/active_docs/analytics-s20.json | 2 +- 5 files changed, 676 insertions(+), 319 deletions(-) diff --git a/app/javascript/packs/provider_active_docs.ts b/app/javascript/packs/provider_active_docs.ts index eaa0c44e60..cdb2b231b4 100644 --- a/app/javascript/packs/provider_active_docs.ts +++ b/app/javascript/packs/provider_active_docs.ts @@ -2,14 +2,14 @@ import SwaggerUI from 'swagger-ui' import 'swagger-ui/dist/swagger-ui.css' -import { autocompleteOAS3 } from 'ActiveDocs/OAS3Autocomplete' +import { autocompleteInterceptor } from 'ActiveDocs/OAS3Autocomplete' import 'ActiveDocs/swagger-ui-3-provider-patch.scss' const accountDataUrl = '/p/admin/api_docs/account_data.json' window.SwaggerUI = (args: SwaggerUI.SwaggerUIOptions, serviceEndpoint: string) => { - const responseInterceptor = (response: SwaggerUI.Response) => autocompleteOAS3(response, accountDataUrl, serviceEndpoint) + const responseInterceptor = (response: SwaggerUI.Response) => autocompleteInterceptor(response, accountDataUrl, serviceEndpoint, args.url) SwaggerUI({ ...args, diff --git a/app/javascript/packs/service_active_docs.ts b/app/javascript/packs/service_active_docs.ts index 76a62a6702..bf1c7ba4a3 100644 --- a/app/javascript/packs/service_active_docs.ts +++ b/app/javascript/packs/service_active_docs.ts @@ -5,8 +5,6 @@ import { autocompleteInterceptor } from 'ActiveDocs/OAS3Autocomplete' import 'ActiveDocs/swagger-ui-3-provider-patch.scss' -import 'ActiveDocs/swagger-ui-3-provider-patch.scss' - document.addEventListener('DOMContentLoaded', () => { const containerId = 'swagger-ui-container' const DATA_URL = 'p/admin/api_docs/account_data.json' diff --git a/doc/active_docs/Service Management API (on-premises).json b/doc/active_docs/Service Management API (on-premises).json index 24e6f8c113..9af8ef8c0c 100644 --- a/doc/active_docs/Service Management API (on-premises).json +++ b/doc/active_docs/Service Management API (on-premises).json @@ -1,334 +1,693 @@ { - "openapi": "3.0.1", - "info": { - "title": "Service Management API", - "description": "API for authorizing and reporting the API traffic, used by the API gateway.", - "version": "1.0" - }, - "servers": [ + "basePath": "https://su1.3scale.net", + "swaggerVersion": "0.1a", + "apiVersion": "1.0", + "apis": [ { - "url": "https://su1.3scale.net/" - } - ], - "paths": { - "/transactions/oauth_authorize.xml": { - "get": { - "summary": "Authorize (OAuth authentication mode pattern)", - "operationId": "oauth_authorize", - "parameters": [ - { - "name": "service_token", - "in": "query", - "description": "Your service api key with 3scale (also known as service token).", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "query", - "description": "Service id. Required.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "access_token", - "in": "query", - "description": "OAuth token used for authorizing if you don't use client_id with client_secret.", - "schema": { - "type": "string" - } - }, - { - "name": "app_id", - "in": "query", - "description": "Client Id (identifier of the application if the auth. pattern is OAuth, note that client_id == app_id)", - "schema": { - "type": "string" - } - }, - { - "name": "referrer", - "in": "query", - "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed.", - "schema": { - "type": "string" + "path": "/transactions/authorize.xml", + "format": "xml", + "operations": [ + { + "httpMethod": "GET", + "summary": "Authorize (App Id authentication pattern)", + "description": "

Read-only operation to authorize an application in the App Id authentication pattern.

It is used to check if a particular application exists, is active and is within its usage limits. It can be optionally used to authenticate a call using an application key. It's possible to pass a 'predicted usage' to the authorize call. This can serve two purposes:

1) To make sure an API call won't go over the limits before the call is made, if the usage of the call is known in advance. In this case, the estimated usage can be passed to the authorize call, and it will respond whether the actual API call is still within limit. And,

2) To limit the authorization only to a subset of metrics. If usage is passed in, only the metrics listed in it will be checked against the limits. For example: There are two metrics defined: searches and updates. updates are already over limit, but searches are not. In this case, the user should still be allowed to do a search call, but not an update one.

Note: Even if the predicted usage is passed in, authorize is still a read-only operation. You have to make the report call to report the usage.

The response can have an http response code: 200 OK (if authorization is granted), 409 (if it's not granted, typically application over limits or keys missing, check 'reason' tag), or 403 (for authentication errors, check 'error' tag) and 404 (not found).", + "group": "authorize", + "parameters": [ + { + "name": "service_token", + "dataType": "string", + "required": true, + "paramType": "query", + "threescale_name": "service_tokens", + "description": "Your service api key with 3scale (also known as service token)." + }, + { + "name": "service_id", + "dataType": "string", + "required": true, + "paramType": "query", + "threescale_name": "service_ids", + "description": "Service id. Required." + }, + { + "name": "app_id", + "dataType": "string", + "required": true, + "paramType": "query", + "threescale_name": "app_ids", + "description": "App Id (identifier of the application if the auth. pattern is App Id)" + }, + { + "name": "app_key", + "dataType": "string", + "required": false, + "paramType": "query", + "threescale_name": "app_keys", + "description": "App Key (shared secret of the application if the authentication pattern is App Id). The app key is required if the application has one or more keys defined." + }, + { + "name": "referrer", + "dataType": "string", + "required": false, + "paramType": "query", + "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed." + }, + { + "name": "usage", + "dataType": "hash", + "required": false, + "paramType": "query", + "allowMultiple": false, + "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.", + "parameters": [ + { + "name": "metric", + "dataType": "custom", + "required": false, + "paramType": "query", + "allowMultiple": true, + "threescale_name": "metric_names", + "description": "Metric to be reported" + } + ] } - }, - { - "name": "usage", - "in": "query", - "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.", - "schema": { - "type": "ref" - } - }, - { - "name": "redirect_url", - "in": "query", - "description": "Optional redirect URL for OAuth. Will be validated if sent.", - "schema": { - "type": "string" - } - }, - { - "name": "redirect_uri", - "in": "query", - "description": "Optional redirect URI for OAuth. This is the same as 'redirect_url', but if used you should expect a matching 'redirect_uri' response field.", - "schema": { - "type": "string" - } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } + ] } - } + ] }, - "/transactions/authrep.xml": { - "get": { - "summary": "AuthRep (Authorize + Report for the API Key authentication pattern)", - "parameters": [ - { - "name": "service_token", - "in": "query", - "description": "Your service api key with 3scale (also known as service token).", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "query", - "description": "Service id. Required.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "user_key", - "in": "query", - "description": "User Key (identifier and shared secret of the application if the auth. pattern is Api Key)", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "referrer", - "in": "query", - "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed.", - "schema": { - "type": "string" - } - }, - { - "name": "usage", - "in": "query", - "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", - "schema": { - "type": "ref" + { + "path": "/transactions/authorize.xml", + "format": "xml", + "operations": [ + { + "httpMethod": "GET", + "tags": [ + "authorize", + "user_key" + ], + "nickname": "authorize_user_key", + "deprecated": false, + "summary": "Authorize (API Key authentication pattern)", + "description": "Read-only operation to authorize an application in the App Key authentication pattern.

It is used to check if a particular application exists, is active and is within its usage limits. It can be optionally used to authenticate a call using an application key. It's possible to pass a 'predicted usage' to the authorize call. This can serve two purposes:

1) To make sure an API call won't go over the limits before the call is made, if the usage of the call is known in advance. In this case, the estimated usage can be passed to the authorize call, and it will respond whether the actual API call is still within limit. And,

2) To limit the authorization only to a subset of metrics. If usage is passed in, only the metrics listed in it will be checked against the limits. For example: There are two metrics defined: searches and updates. updates are already over limit, but searches are not. In this case, the user should still be allowed to do a search call, but not an update one.

Note: Even if the predicted usage is passed in, authorize is still a read-only operation. You have to make the report call to report the usage.

The response can have an http response code: 200 OK (if authorization is granted), 409 (if it's not granted, typically application over limits or keys missing, check 'reason' tag), or 403 (for authentication errors, check 'error' tag) and 404 (not found).", + "group": "authorize", + "parameters": [ + { + "name": "service_token", + "dataType": "string", + "required": true, + "paramType": "query", + "threescale_name": "service_tokens", + "description": "Your service api key with 3scale (also known as service token)." + }, + { + "name": "service_id", + "dataType": "string", + "required": true, + "paramType": "query", + "threescale_name": "service_ids", + "description": "Service id. Required." + }, + { + "name": "user_key", + "dataType": "string", + "required": true, + "paramType": "query", + "theescale_name": "user_keys", + "description": "User Key (identifier and shared secret of the application if the auth. pattern is Api Key)" + }, + { + "name": "referrer", + "dataType": "string", + "required": false, + "paramType": "query", + "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed." + }, + { + "name": "usage", + "dataType": "hash", + "required": false, + "paramType": "query", + "allowMultiple": false, + "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.", + "parameters": [ + { + "name": "metric", + "dataType": "custom", + "required": false, + "paramType": "query", + "allowMultiple": true, + "threescale_name": "metric_names", + "description": "Metric to be reported" + } + ] } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } + ] } - } + ] }, - "/transactions/oauth_authrep.xml": { - "get": { - "summary": "AuthRep (OAuth authentication mode pattern)", - "operationId": "oauth_authrep", - "parameters": [ - { - "name": "service_token", - "in": "query", - "description": "Your service api key with 3scale (also known as service token).", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "query", - "description": "Service id. Required.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "access_token", - "in": "query", - "description": "OAuth token used for authorizing if you don't use client_id with client_secret.", - "schema": { - "type": "string" - } - }, - { - "name": "app_id", - "in": "query", - "description": "Client Id (identifier of the application if the auth. pattern is OAuth, note that client_id == app_id)", - "schema": { - "type": "string" - } - }, - { - "name": "referrer", - "in": "query", - "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed.", - "schema": { - "type": "string" - } - }, - { - "name": "usage", - "in": "query", - "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", - "schema": { - "type": "ref" - } - }, - { - "name": "redirect_url", - "in": "query", - "description": "Optional redirect URL for OAuth. Will be validated if sent.", - "schema": { - "type": "string" - } - }, - { - "name": "redirect_uri", - "in": "query", - "description": "Optional redirect URI for OAuth. This is the same as 'redirect_url', but if used you should expect a matching 'redirect_uri' response field.", - "schema": { - "type": "string" + { + "path": "/transactions/oauth_authorize.xml", + "format": "xml", + "operations": [ + { + "httpMethod": "GET", + "tags": [ + "authorize", + "user_key" + ], + "nickname": "oauth_authorize", + "deprecated": false, + "summary": "Authorize (OAuth authentication mode pattern)", + "description": "

Read-only operation to authorize an application in the OAuth authentication pattern.

This calls returns extra data (secret and redirect_url) needed to power OAuth APIs. It's only available for users with OAuth enabled APIs.

It is used to check if a particular application exists, is active and is within its usage limits. It can be optionally used to authenticate a call using an application key. It's possible to pass a 'predicted usage' to the authorize call. This can serve two purposes:

1) To make sure an API call won't go over the limits before the call is made, if the usage of the call is known in advance. In this case, the estimated usage can be passed to the authorize call, and it will respond whether the actual API call is still within limit. And,

2) To limit the authorization only to a subset of metrics. If usage is passed in, only the metrics listed in it will be checked against the limits. For example: There are two metrics defined: searches and updates. updates are already over limit, but searches are not. In this case, the user should still be allowed to do a search call, but not an update one.

Note: Even if the predicted usage is passed in, authorize is still a read-only operation. You have to make the report call to report the usage.

The response can have an http response code: 200 OK (if authorization is granted), 409 (if it's not granted, typically application over limits or keys missing, check 'reason' tag), or 403 (for authentication errors, check 'error' tag) and 404 (not found).", + "group": "authorize", + "parameters": [ + { + "name": "service_token", + "dataType": "string", + "required": true, + "paramType": "query", + "threescale_name": "service_tokens", + "description": "Your service api key with 3scale (also known as service token)." + }, + { + "name": "service_id", + "dataType": "string", + "required": true, + "paramType": "query", + "threescale_name": "service_ids", + "description": "Service id. Required." + }, + { + "name": "access_token", + "dataType": "string", + "required": false, + "paramType": "query", + "threescale_name": "access_tokens", + "description": "OAuth token used for authorizing if you don't use client_id with client_secret." + }, + { + "name": "app_id", + "dataType": "string", + "required": false, + "paramType": "query", + "threescale_name": "app_ids", + "description": "Client Id (identifier of the application if the auth. pattern is OAuth, note that client_id == app_id)" + }, + { + "name": "referrer", + "dataType": "string", + "required": false, + "paramType": "query", + "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed." + }, + { + "name": "usage", + "dataType": "hash", + "required": false, + "paramType": "query", + "allowMultiple": false, + "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.", + "parameters": [ + { + "name": "metric", + "dataType": "custom", + "required": false, + "paramType": "query", + "allowMultiple": true, + "threescale_name": "metric_names", + "description": "Metric to be reported" + } + ] + }, + { + "name": "redirect_url", + "dataType": "string", + "required": false, + "paramType": "query", + "description": "Optional redirect URL for OAuth. Will be validated if sent." + }, + { + "name": "redirect_uri", + "dataType": "string", + "required": false, + "paramType": "query", + "description": "Optional redirect URI for OAuth. This is the same as 'redirect_url', but if used you should expect a matching 'redirect_uri' response field." } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } + ] } - } + ] }, - "/transactions/authorize.xml": { - "get": { - "summary": "Authorize (API Key authentication pattern)", - "operationId": "authorize_user_key", - "parameters": [ - { - "name": "service_token", - "in": "query", - "description": "Your service api key with 3scale (also known as service token).", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service_id", - "in": "query", - "description": "Service id. Required.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "user_key", - "in": "query", - "description": "User Key (identifier and shared secret of the application if the auth. pattern is Api Key)", - "required": true, - "schema": { - "type": "string" + { + "path": "/transactions/authrep.xml", + "format": "xml", + "operations": [ + { + "httpMethod": "GET", + "summary": "AuthRep (Authorize + Report for the App Id authentication pattern)", + "description": "

Authrep is a 'one-shot' operation to authorize an application and report the associated transaction at the same time.

The main difference between this call and the regular authorize call is that usage will be reported if the authorization is successful. Authrep is the most convenient way to integrate your API with the 3scale's Service Manangement API since it does a 1:1 mapping between a request to your API and a request to 3scale's API.

If you do not want to do a request to 3scale for each request to your API or batch the reports you should use the Authorize and Report methods instead.

Authrep is not a read-only operation and will increment the values if the authorization step is a success.", + "group": "authrep", + "parameters": [ + { + "name": "service_token", + "dataType": "string", + "required": true, + "paramType": "query", + "threescale_name": "service_tokens", + "description": "Your service api key with 3scale (also known as service token)." + }, + { + "name": "service_id", + "dataType": "string", + "required": true, + "paramType": "query", + "threescale_name": "service_ids", + "description": "Service id. Required." + }, + { + "name": "app_id", + "dataType": "string", + "required": true, + "paramType": "query", + "threescale_name": "app_ids", + "description": "App Id (identifier of the application if the auth. pattern is App Id)" + }, + { + "name": "app_key", + "dataType": "string", + "required": false, + "paramType": "query", + "threescale_name": "app_keys", + "description": "App Key (shared secret of the application if the authentication pattern is App Id). The app key is required if the application has one or more keys defined." + }, + { + "name": "referrer", + "dataType": "string", + "required": false, + "paramType": "query", + "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed." + }, + { + "name": "usage", + "dataType": "hash", + "required": false, + "paramType": "query", + "allowMultiple": false, + "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", + "parameters": [ + { + "name": "metric", + "dataType": "custom", + "required": false, + "paramType": "query", + "allowMultiple": true, + "threescale_name": "metric_names", + "description": "Metric to be reported" + } + ] } - }, - { - "name": "referrer", - "in": "query", - "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed.", - "schema": { - "type": "string" + ] + } + ] + }, + { + "path": "/transactions/authrep.xml", + "format": "xml", + "operations": [ + { + "httpMethod": "GET", + "summary": "AuthRep (Authorize + Report for the API Key authentication pattern)", + "description": "

Authrep is a 'one-shot' operation to authorize an application and report the associated transaction at the same time.

The main difference between this call and the regular authorize call is that usage will be reported if the authorization is successful. Authrep is the most convenient way to integrate your API with the 3scale's Service Manangement API since it does a 1:1 mapping between a request to your API and a request to 3scale's API.

If you do not want to do a request to 3scale for each request to your API or batch the reports you should use the Authorize and Report methods instead.

Authrep is not a read-only operation and will increment the values if the authorization step is a success.", + "group": "authrep", + "parameters": [ + { + "name": "service_token", + "dataType": "string", + "required": true, + "paramType": "query", + "threescale_name": "service_tokens", + "description": "Your service api key with 3scale (also known as service token)." + }, + { + "name": "service_id", + "dataType": "string", + "required": true, + "paramType": "query", + "threescale_name": "service_ids", + "description": "Service id. Required." + }, + { + "name": "user_key", + "dataType": "string", + "required": true, + "paramType": "query", + "theescale_name": "user_keys", + "description": "User Key (identifier and shared secret of the application if the auth. pattern is Api Key)" + }, + { + "name": "referrer", + "dataType": "string", + "required": false, + "paramType": "query", + "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed." + }, + { + "name": "usage", + "dataType": "hash", + "required": false, + "paramType": "query", + "allowMultiple": false, + "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", + "parameters": [ + { + "name": "metric", + "dataType": "custom", + "required": false, + "paramType": "query", + "allowMultiple": true, + "threescale_name": "metric_names", + "description": "Metric to be reported" + } + ] } - }, - { - "name": "usage", - "in": "query", - "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.", - "schema": { - "type": "ref" + ] + } + ] + }, + { + "path": "/transactions/oauth_authrep.xml", + "format": "xml", + "operations": [ + { + "httpMethod": "GET", + "nickname": "oauth_authrep", + "deprecated": false, + "summary": "AuthRep (OAuth authentication mode pattern)", + "description": "

Authrep is a 'one-shot' operation to authorize an application and report the associated transaction at the same time in the OAuth authentication pattern.

The main difference between this call and the regular authorize call is that usage will be reported if the authorization is successful. Authrep is the most convenient way to integrate your API with the 3scale's Service Manangement API since it does a 1:1 mapping between a request to your API and a request to 3scale's API.

If you do not want to do a request to 3scale for each request to your API or batch the reports you should use the Authorize and Report methods instead.

Authrep is not a read-only operation and will increment the values if the authorization step is a success.

This calls returns extra data (secret and redirect_url) needed to power OAuth APIs. It's only available for users with OAuth enabled APIs.", + "group": "authrep", + "parameters": [ + { + "name": "service_token", + "dataType": "string", + "required": true, + "paramType": "query", + "threescale_name": "service_tokens", + "description": "Your service api key with 3scale (also known as service token)." + }, + { + "name": "service_id", + "dataType": "string", + "required": true, + "paramType": "query", + "threescale_name": "service_ids", + "description": "Service id. Required." + }, + { + "name": "access_token", + "dataType": "string", + "required": false, + "paramType": "query", + "threescale_name": "access_tokens", + "description": "OAuth token used for authorizing if you don't use client_id with client_secret." + }, + { + "name": "app_id", + "dataType": "string", + "required": false, + "paramType": "query", + "threescale_name": "app_ids", + "description": "Client Id (identifier of the application if the auth. pattern is OAuth, note that client_id == app_id)" + }, + { + "name": "referrer", + "dataType": "string", + "required": false, + "paramType": "query", + "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed." + }, + { + "name": "usage", + "dataType": "hash", + "required": false, + "paramType": "query", + "allowMultiple": false, + "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", + "parameters": [ + { + "name": "metric", + "dataType": "custom", + "required": false, + "paramType": "query", + "allowMultiple": true, + "threescale_name": "metric_names", + "description": "Metric to be reported" + } + ] + }, + { + "name": "redirect_url", + "dataType": "string", + "required": false, + "paramType": "query", + "description": "Optional redirect URL for OAuth. Will be validated if sent." + }, + { + "name": "redirect_uri", + "dataType": "string", + "required": false, + "paramType": "query", + "description": "Optional redirect URI for OAuth. This is the same as 'redirect_url', but if used you should expect a matching 'redirect_uri' response field." } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } + ] } - } + ] }, - "/transactions.xml": { - "post": { - "summary": "Report (OAuth authentication pattern)", - "parameters": [ - { - "name": "service_token", - "in": "query", - "description": "Your service api key with 3scale (also known as service token).", - "required": true, - "schema": { - "type": "string" + { + "path": "/transactions.xml", + "format": "xml", + "operations": [ + { + "httpMethod": "POST", + "summary": "Report (App Id authentication pattern)", + "description": "

Report the transactions to 3scale backend.

This operation updates the metrics passed in the usage parameter. You can send up to 1K transactions in a single POST request. Transactions are processed asynchronously by the 3scale's backend.

Transactions from a single batch are reported only if all of them are valid. If there is an error in processing of at least one of them, none is reported.

Note that a batch can only report transactions to the same service, service_id is at the same level that service_token. Multiple report calls will have to be issued to report transactions to different services.

Be aware that reporting metrics that are limited at the time of reporting will have no effect.

Supported Content-Type values for this POST call are: application/x-www-form-urlencoded.", + "group": "report", + "parameters": [ + { + "name": "service_token", + "dataType": "string", + "required": true, + "paramType": "query", + "threescale_name": "service_tokens", + "description": "Your service api key with 3scale (also known as service token)." + }, + { + "name": "service_id", + "dataType": "string", + "required": true, + "paramType": "query", + "threescale_name": "service_ids", + "description": "Service id. Required." + }, + { + "name": "transactions", + "dataType": "array", + "required": true, + "paramType": "query", + "allowMultiple": true, + "description": "Transactions to be reported. There is a limit of 1000 transactions to be reported on a single request.", + "parameters": [ + { + "name": "app_id", + "dataType": "string", + "required": true, + "paramType": "query", + "threescale_name": "app_ids", + "description": "App Id (identifier of the application if the auth. pattern is App Id)", + "description_inline": true + }, + { + "name": "timestamp", + "dataType": "string", + "required": false, + "paramType": "query", + "description": "If passed, it should be the time when the transaction took place. Format: YYYY-MM-DD HH:MM:SS for UTC, add -HH:MM or +HH:MM for time offset. For instance, 2011-12-30 22:15:31 -08:00", + "description_inline": true + }, + { + "name": "usage", + "dataType": "hash", + "required": false, + "paramType": "query", + "allowMultiple": false, + "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", + "parameters": [ + { + "name": "metric", + "dataType": "custom", + "required": false, + "paramType": "query", + "allowMultiple": true, + "threescale_name": "metric_names", + "description": "Metric to be reported" + } + ] + } + ] } - }, - { - "name": "service_id", - "in": "query", - "description": "Service id. Required.", - "required": true, - "schema": { - "type": "string" + ] + } + ] + }, + { + "path": "/transactions.xml", + "format": "xml", + "operations": [ + { + "httpMethod": "POST", + "summary": "Report (API Key authentication pattern)", + "description": "

Report the transactions to 3scale backend.

This operation updates the metrics passed in the usage parameter. You can send up to 1K transactions in a single POST request. Transactions are processed asynchronously by the 3scale's backend.

Transactions from a single batch are reported only if all of them are valid. If there is an error in processing of at least one of them, none is reported.

Note that a batch can only report transactions to the same service, service_id is at the same level that service_token. Multiple report calls will have to be issued to report transactions to different services.

Be aware that reporting metrics that are limited at the time of reporting will have no effect.

Supported Content-Type values for this POST call are: application/x-www-form-urlencoded.", + "group": "report", + "parameters": [ + { + "name": "service_token", + "dataType": "string", + "required": true, + "paramType": "query", + "threescale_name": "service_tokens", + "description": "Your service api key with 3scale (also known as service token)." + }, + { + "name": "service_id", + "dataType": "string", + "required": true, + "paramType": "query", + "threescale_name": "service_ids", + "description": "Service id. Required." + }, + { + "name": "transactions", + "dataType": "array", + "required": true, + "paramType": "query", + "allowMultiple": true, + "description": "Transactions to be reported. There is a limit of 1000 transactions to be reported on a single request.", + "parameters": [ + { + "name": "user_key", + "dataType": "string", + "required": true, + "paramType": "query", + "theescale_name": "user_keys", + "description": "User Key (identifier and shared secret of the application if the auth. pattern is Api Key)", + "description_inline": true + }, + { + "name": "timestamp", + "dataType": "string", + "required": false, + "paramType": "query", + "description": "If passed, it should be the time when the transaction took place. Format: YYYY-MM-DD HH:MM:SS for UTC, add -HH:MM or +HH:MM for time offset. For instance, 2011-12-30 22:15:31 -08:00", + "description_inline": true + }, + { + "name": "usage", + "dataType": "hash", + "required": false, + "paramType": "query", + "allowMultiple": false, + "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", + "parameters": [ + { + "name": "metric", + "dataType": "custom", + "required": false, + "paramType": "query", + "allowMultiple": true, + "threescale_name": "metric_names", + "description": "Metric to be reported" + } + ] + } + ] } - }, - { - "name": "transactions", - "in": "query", - "description": "Transactions to be reported. There is a limit of 1000 transactions to be reported on a single request.", - "required": true, - "style": "form", - "explode": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } + ] + } + ] + }, + { + "path": "/transactions.xml", + "format": "xml", + "operations": [ + { + "httpMethod": "POST", + "summary": "Report (OAuth authentication pattern)", + "description": "

Report the transactions to 3scale backend.

This operation updates the metrics passed in the usage parameter. You can send up to 1K transactions in a single POST request. Transactions are processed asynchronously by the 3scale's backend.

Transactions from a single batch are reported only if all of them are valid. If there is an error in processing of at least one of them, none is reported.

Note that a batch can only report transactions to the same service, service_id is at the same level that service_token. Multiple report calls will have to be issued to report transactions to different services.

Be aware that reporting metrics that are limited at the time of reporting will have no effect.

Supported Content-Type values for this POST call are: application/x-www-form-urlencoded.", + "group": "report", + "parameters": [ + { + "name": "service_token", + "dataType": "string", + "required": true, + "paramType": "query", + "threescale_name": "service_tokens", + "description": "Your service api key with 3scale (also known as service token)." + }, + { + "name": "service_id", + "dataType": "string", + "required": true, + "paramType": "query", + "threescale_name": "service_ids", + "description": "Service id. Required." + }, + { + "name": "transactions", + "dataType": "array", + "required": true, + "paramType": "query", + "allowMultiple": true, + "description": "Transactions to be reported. There is a limit of 1000 transactions to be reported on a single request.", + "parameters": [ + { + "name": "app_id", + "dataType": "string", + "required": false, + "paramType": "query", + "threescale_name": "app_ids", + "description": "Client Id (identifier of the application if the auth. pattern is OAuth, note that client_id == app_id)", + "description_inline": true + }, + { + "name": "timestamp", + "dataType": "string", + "required": false, + "paramType": "query", + "description": "If passed, it should be the time when the transaction took place. Format: YYYY-MM-DD HH:MM:SS for UTC, add -HH:MM or +HH:MM for time offset. For instance, 2011-12-30 22:15:31 -08:00", + "description_inline": true + }, + { + "name": "usage", + "dataType": "hash", + "required": false, + "paramType": "query", + "allowMultiple": false, + "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", + "parameters": [ + { + "name": "metric", + "dataType": "custom", + "required": false, + "paramType": "query", + "allowMultiple": true, + "threescale_name": "metric_names", + "description": "Metric to be reported" + } + ] + } + ] } - } - ], - "responses": { - "default": { - "description": "success", - "content": {} - } + ] } - } + ] } - }, - "components": {} -} \ No newline at end of file + ] +} diff --git a/doc/active_docs/accounts-s20.json b/doc/active_docs/accounts-s20.json index ded50163b8..4bbc4732bf 100644 --- a/doc/active_docs/accounts-s20.json +++ b/doc/active_docs/accounts-s20.json @@ -4838,4 +4838,4 @@ } } } -} \ No newline at end of file +} diff --git a/doc/active_docs/analytics-s20.json b/doc/active_docs/analytics-s20.json index 24a0e58b34..68c23d22d6 100644 --- a/doc/active_docs/analytics-s20.json +++ b/doc/active_docs/analytics-s20.json @@ -254,4 +254,4 @@ } } } -} \ No newline at end of file +} From 92810fa955af7e6cb3aaded4d0ded60fec35ced9 Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Fri, 10 Mar 2023 15:45:48 +0100 Subject: [PATCH 63/85] Enable TryItOut by default to improve UX --- app/javascript/packs/provider_active_docs.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/javascript/packs/provider_active_docs.ts b/app/javascript/packs/provider_active_docs.ts index cdb2b231b4..bd87c24851 100644 --- a/app/javascript/packs/provider_active_docs.ts +++ b/app/javascript/packs/provider_active_docs.ts @@ -13,6 +13,7 @@ window.SwaggerUI = (args: SwaggerUI.SwaggerUIOptions, serviceEndpoint: string) = SwaggerUI({ ...args, - responseInterceptor + responseInterceptor, + tryItOutEnabled: true } as SwaggerUI.SwaggerUIOptions) } From 3dc142a4703c26c180868d4ad62dd4057214d403 Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Wed, 15 Mar 2023 13:59:11 +0100 Subject: [PATCH 64/85] Update controller to include the full URL in servers list in the API spec --- .../api_docs/services_controller.rb | 9 ++++++++- doc/active_docs/Analytics API.json | 2 +- .../api_docs/services_controller_test.rb | 19 +++++++++++++++++++ 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/app/controllers/api_docs/services_controller.rb b/app/controllers/api_docs/services_controller.rb index cc4d2de268..82774ac5ac 100644 --- a/app/controllers/api_docs/services_controller.rb +++ b/app/controllers/api_docs/services_controller.rb @@ -2,6 +2,8 @@ class ApiDocs::ServicesController < FrontendController + include ApplicationHelper + class ApiFileDoesNotExist < StandardError; end delegate :api_files, :apis, to: 'self.class' @@ -41,7 +43,7 @@ def initialize(name, system_name) def json parsed_content = JSON.parse(file_content) - parsed_content['servers'][0]['url'] = backend_base_host if backend_api? + parsed_content['servers'] = [{ 'url' => backend_api? ? backend_base_host : '/' }] parsed_content end @@ -115,6 +117,7 @@ def index def show system_name = params[:id].to_sym api_file = (api_files.fetch(system_name) { raise ActiveRecord::RecordNotFound }).dup + update_base_url(api_file) api_file['paths'] = exclude_forbidden_endpoints(api_file['paths']) if master_on_premises? render json: api_file @@ -136,4 +139,8 @@ def allowed_api?(api) true end end + + def update_base_url(api_spec) + api_spec['servers'] = [{ 'url' => base_url.gsub(%r{/$}, '') }] if api_spec['servers'][0]['url'] == '/' + end end diff --git a/doc/active_docs/Analytics API.json b/doc/active_docs/Analytics API.json index 28a5127c45..4a6fb3cce8 100644 --- a/doc/active_docs/Analytics API.json +++ b/doc/active_docs/Analytics API.json @@ -7,7 +7,7 @@ }, "servers": [ { - "url": "http://localhost:3000" + "url": "/" } ], "paths": { diff --git a/test/integration/api_docs/services_controller_test.rb b/test/integration/api_docs/services_controller_test.rb index 013cd79493..ad727aca1b 100644 --- a/test/integration/api_docs/services_controller_test.rb +++ b/test/integration/api_docs/services_controller_test.rb @@ -74,6 +74,16 @@ def test_show_service_management assert_equal "https://#{backend_config[:host]}", json["servers"][0]["url"] end + test 'show the correct url for system APIs' do + system_apis = ApiDocs::ServicesController::API_SYSTEM_NAMES - [:service_management_api] + system_apis.each do |system_name| + get api_docs_service_path(format: :json, id: system_name) + assert_response :success + json = JSON.parse(response.body) + assert_equal request.base_url, json["servers"][0]["url"] + end + end + test 'show backend_api endpoints only under rolling update enabled' do name_or_path_regex = /\A\/?admin[\/|_]api.*backend_(api|usage).*\z/ @@ -156,6 +166,15 @@ def test_backend_base_host assert_equal 'https://example.com', api_json["servers"][0]["url"] end + test 'servers url defaults to / for system apis' do + system_apis = ApiDocs::ServicesController::APIS.reject { |x| x[:system_name] == :service_management_api } + + system_apis.each do |api| + api_json = ApiFile.new(api[:name], api[:system_name]).json + assert_equal '/', api_json["servers"][0]["url"] + end + end + def test_file_path Rails.application.config.three_scale.stubs(onpremises_api_docs_version: false) api_file = ApiFile.new('Service Management API', 'service_management_api') From 12272aed697de545ccb7b0bc3ee198582d7f40ac Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Wed, 15 Mar 2023 14:08:55 +0100 Subject: [PATCH 65/85] Refactor provider active docs --- app/javascript/packs/provider_active_docs.ts | 23 +++++------ .../src/ActiveDocs/ThreeScaleApiDocs.ts | 32 ++++++++++++++++ app/javascript/src/Types/SwaggerTypes.ts | 14 +++++++ .../provider/admin/api_docs/show.html.erb | 38 ++++--------------- 4 files changed, 65 insertions(+), 42 deletions(-) create mode 100644 app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts diff --git a/app/javascript/packs/provider_active_docs.ts b/app/javascript/packs/provider_active_docs.ts index bd87c24851..64de8e6d7c 100644 --- a/app/javascript/packs/provider_active_docs.ts +++ b/app/javascript/packs/provider_active_docs.ts @@ -1,19 +1,20 @@ // We can define the 3scale plugins here and export the modified bundle -import SwaggerUI from 'swagger-ui' import 'swagger-ui/dist/swagger-ui.css' -import { autocompleteInterceptor } from 'ActiveDocs/OAS3Autocomplete' +import { renderApiDocs } from 'ActiveDocs/ThreeScaleApiDocs' import 'ActiveDocs/swagger-ui-3-provider-patch.scss' -const accountDataUrl = '/p/admin/api_docs/account_data.json' +// eslint-disable-next-line @typescript-eslint/no-misused-promises +document.addEventListener('DOMContentLoaded', async () => { + const containerId = 'api-containers' + const container = document.getElementById(containerId) -window.SwaggerUI = (args: SwaggerUI.SwaggerUIOptions, serviceEndpoint: string) => { - const responseInterceptor = (response: SwaggerUI.Response) => autocompleteInterceptor(response, accountDataUrl, serviceEndpoint, args.url) + if (!container) { + throw new Error('The target ID was not found: ' + containerId) + } - SwaggerUI({ - ...args, - responseInterceptor, - tryItOutEnabled: true - } as SwaggerUI.SwaggerUIOptions) -} + const { baseUrl = '', apiDocsPath = '', apiDocsAccountDataPath = '' } = container.dataset + + await renderApiDocs(container, apiDocsPath, baseUrl, apiDocsAccountDataPath) +}) diff --git a/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts b/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts new file mode 100644 index 0000000000..7b87d6f6c5 --- /dev/null +++ b/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts @@ -0,0 +1,32 @@ +import $ from 'jquery' +import SwaggerUI from 'swagger-ui' + +import { fetchData } from 'utilities/fetchData' + +import type { ApiDocsServices } from 'Types/SwaggerTypes' + +import { autocompleteInterceptor } from './OAS3Autocomplete' + +const getApiSpecUrl = (baseUrl: string, specPath: string): string => { + return `${baseUrl.replace(/\/$/, '')}/${specPath}` +} + +const appendSwaggerDiv = (container: HTMLElement, id: string): void => { + $(container).append($(`

`)) +} + +export const renderApiDocs = async (container: HTMLElement, apiDocsPath: string, baseUrl: string, apiDocsAccountDataPath: string): Promise => { + const apiSpecs: ApiDocsServices = await fetchData(apiDocsPath) + apiSpecs.apis.forEach( api => { + const domId = api.system_name.replace(/_/g, '-') + const url = getApiSpecUrl(baseUrl, api.path) + appendSwaggerDiv(container, domId) + SwaggerUI({ + url, + // eslint-disable-next-line @typescript-eslint/naming-convention -- Swagger UI + dom_id: `#${domId}`, + responseInterceptor: (response) => autocompleteInterceptor(response, apiDocsAccountDataPath, '', url), + tryItOutEnabled: true + }) + }) +} diff --git a/app/javascript/src/Types/SwaggerTypes.ts b/app/javascript/src/Types/SwaggerTypes.ts index 389c277182..2e9715df32 100644 --- a/app/javascript/src/Types/SwaggerTypes.ts +++ b/app/javascript/src/Types/SwaggerTypes.ts @@ -1,4 +1,18 @@ +/* eslint-disable @typescript-eslint/naming-convention */ + export type AccountData = Record + +export interface ApiDocsService { + name: string; + system_name: string; + description: string; + path: string; + service_endpoint: string; +} +export interface ApiDocsServices { + host: string; + apis: ApiDocsService[]; +} diff --git a/app/views/provider/admin/api_docs/show.html.erb b/app/views/provider/admin/api_docs/show.html.erb index a43d67616c..0be4c1f79d 100644 --- a/app/views/provider/admin/api_docs/show.html.erb +++ b/app/views/provider/admin/api_docs/show.html.erb @@ -11,34 +11,10 @@

<%= link_to 'Create an access token', provider_admin_user_access_tokens_path %> to authenticate against the Account Management API, the Analytics API and the Billing API.

<% end %> - -
- - +
+
From 126fa27c728928ac8fef83327afa44f3d2ec8f31 Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Wed, 15 Mar 2023 14:36:04 +0100 Subject: [PATCH 66/85] Fix service token auto-complete --- app/javascript/src/ActiveDocs/OAS3Autocomplete.ts | 5 +++-- doc/active_docs/Service Management API.json | 11 +++++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts b/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts index de7e3c4c01..282433bcf7 100644 --- a/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts +++ b/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts @@ -27,7 +27,8 @@ const X_DATA_PARAMS_DESCRIPTIONS = { account_ids: 'Latest 5 accounts', access_token: 'Access Token', user_ids: 'First user (admin) of the latest 5 account', - service_ids: 'Latest 5 services', + service_ids: 'Service IDs', + service_tokens: 'Service tokens', admin_ids: 'Latest 5 users (admin) from your account', service_plan_ids: 'Latest 5 service plans', application_plan_ids: 'Latest 5 application plans', @@ -46,7 +47,7 @@ const addAutocompleteToParam = (param: any, accountData: AccountData): any => { ? { ...param, examples: autocompleteData.reduce<{ summary: string; value: string }[]>((examples, item) => ( - [...examples, { summary: item.name, value: item.value }] + [...examples, { summary: `${item.name} - ${item.value}`, value: item.value }] ), [{ summary: X_DATA_PARAMS_DESCRIPTIONS[xDataKey], value: '-' }]) } : param diff --git a/doc/active_docs/Service Management API.json b/doc/active_docs/Service Management API.json index c95b648f45..c9e96ed6fb 100644 --- a/doc/active_docs/Service Management API.json +++ b/doc/active_docs/Service Management API.json @@ -24,7 +24,7 @@ "name": "service_token", "in": "query", "description": "Service token for the API service.", - "x-data-threescale-name": "access_token", + "x-data-threescale-name": "service_tokens", "required": true, "schema": { "type": "string" @@ -112,7 +112,8 @@ "required": true, "schema": { "type": "string" - } + }, + "x-data-threescale-name": "service_tokens" }, { "name": "service_id", @@ -206,7 +207,8 @@ "required": true, "schema": { "type": "string" - } + }, + "x-data-threescale-name": "service_tokens" }, { "name": "service_id", @@ -295,7 +297,8 @@ "required": true, "schema": { "type": "string" - } + }, + "x-data-threescale-name": "service_tokens" }, { "name": "service_id", From b40039273cc30bf85b53b9821637ba50d52f65ea Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Wed, 15 Mar 2023 14:39:22 +0100 Subject: [PATCH 67/85] Remove access token from active docs autocomplete --- doc/active_docs/Account Management API.json | 363 ++++-------------- doc/active_docs/Analytics API.json | 4 - doc/active_docs/Billing API.json | 22 +- .../Developer Portal API (Tech Preview).json | 30 +- doc/active_docs/Master API.json | 11 +- doc/active_docs/Policy Registry API.json | 9 +- 6 files changed, 102 insertions(+), 337 deletions(-) diff --git a/doc/active_docs/Account Management API.json b/doc/active_docs/Account Management API.json index 19c65b8931..3ab55fac68 100644 --- a/doc/active_docs/Account Management API.json +++ b/doc/active_docs/Account Management API.json @@ -49,7 +49,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -107,7 +106,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -176,7 +174,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -213,7 +210,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -281,7 +277,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -353,7 +348,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -443,7 +437,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -516,8 +509,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." } }, "required": [ @@ -573,8 +565,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "plan_id": { "type": "integer", @@ -636,8 +627,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." } }, "required": [ @@ -693,8 +683,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." } }, "required": [ @@ -750,8 +739,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." } }, "required": [ @@ -807,8 +795,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." } }, "required": [ @@ -838,7 +825,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -910,8 +896,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "key": { "type": "string", @@ -946,7 +931,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -1002,7 +986,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -1074,8 +1057,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "referrer_filter": { "type": "string", @@ -1110,7 +1092,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -1182,8 +1163,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "body": { "type": "string", @@ -1221,7 +1201,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -1258,7 +1237,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -1295,7 +1273,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -1356,8 +1333,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." } }, "required": [ @@ -1403,8 +1379,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "plan_id": { "type": "integer", @@ -1457,8 +1432,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "credit_card_token": { "type": "string", @@ -1542,7 +1516,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -1595,8 +1568,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." } }, "required": [ @@ -1641,8 +1613,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." } }, "required": [ @@ -1672,7 +1643,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -1769,7 +1739,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -1859,7 +1828,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -1932,8 +1900,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "additional_fields[]": { "description": "Additional fields have to be defined by name and value (i.e &name=value). You can add as many as you want. Additional fields are the custom fields declared in 'Settings >> Fields Definitions' on your API Admin Portal. Typical examples are 'url', 'country', etc. Please check your Fields Definitions to get the list of all your custom fields.", @@ -1996,8 +1963,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." } }, "required": [ @@ -2053,8 +2019,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." } }, "required": [ @@ -2084,7 +2049,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -2157,8 +2121,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." } }, "required": [ @@ -2188,7 +2151,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -2263,7 +2225,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -2333,7 +2294,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -2386,8 +2346,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." } }, "required": [ @@ -2434,8 +2393,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." } }, "required": [ @@ -2481,8 +2439,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." } }, "required": [ @@ -2512,7 +2469,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -2563,8 +2519,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "allowed_service_ids[]": { "type": "array", @@ -2643,8 +2598,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." } }, "required": [ @@ -2690,8 +2644,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." } }, "required": [ @@ -2737,8 +2690,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "name": { "type": "string", @@ -2804,7 +2756,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -2833,8 +2784,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "name": { "type": "string", @@ -2885,7 +2835,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -2947,8 +2896,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." } }, "required": [ @@ -2976,7 +2924,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -3022,7 +2969,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -3073,8 +3019,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "name": { "type": "string", @@ -3118,7 +3063,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -3171,8 +3115,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." } }, "required": [ @@ -3202,7 +3145,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -3231,8 +3173,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "name": { "type": "string", @@ -3292,7 +3233,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -3341,8 +3281,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "name": { "type": "string", @@ -3394,7 +3333,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -3430,7 +3368,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -3457,7 +3394,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -3508,8 +3444,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "feature_id": { "type": "integer", @@ -3544,7 +3479,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -3590,7 +3524,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -3645,7 +3578,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -3714,8 +3646,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "value": { "type": "integer", @@ -3765,7 +3696,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -3852,8 +3782,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "value": { "type": "integer", @@ -3901,7 +3830,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -3956,7 +3884,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -4025,8 +3952,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "min": { "type": "integer", @@ -4069,7 +3995,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -4124,7 +4049,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -4161,7 +4085,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -4212,8 +4135,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "name": { "type": "string", @@ -4274,7 +4196,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -4345,8 +4266,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "name": { "type": "string", @@ -4404,7 +4324,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -4478,8 +4397,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." } }, "required": [ @@ -4509,7 +4427,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -4599,7 +4516,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -4662,7 +4578,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -4691,8 +4606,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "kind": { "type": "string", @@ -4761,7 +4675,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -4810,8 +4723,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "client_id": { "type": "string", @@ -4863,7 +4775,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -4892,8 +4803,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "kind": { "type": "string", @@ -4994,7 +4904,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -5043,8 +4952,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "client_id": { "type": "string", @@ -5100,7 +5008,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -5147,8 +5054,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "name": { "type": "string", @@ -5196,7 +5102,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -5245,8 +5150,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "name": { "type": "string", @@ -5290,7 +5194,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -5326,7 +5229,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -5393,8 +5295,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "http_method": { "type": "string", @@ -5452,7 +5353,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -5519,8 +5419,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "http_method": { "type": "string", @@ -5572,7 +5471,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -5617,7 +5515,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -5684,8 +5581,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "friendly_name": { "type": "string", @@ -5733,7 +5629,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -5800,8 +5695,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "friendly_name": { "type": "string", @@ -5841,7 +5735,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -5886,7 +5779,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -5971,8 +5863,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "friendly_name": { "type": "string", @@ -6020,7 +5911,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6105,8 +5995,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "friendly_name": { "type": "string", @@ -6146,7 +6035,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6200,7 +6088,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6251,8 +6138,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "backend_api_id": { "type": "integer", @@ -6291,7 +6177,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6360,8 +6245,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "path": { "type": "integer", @@ -6393,7 +6277,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6439,7 +6322,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6468,8 +6350,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "name": { "type": "string", @@ -6508,7 +6389,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6557,8 +6437,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "name": { "type": "string", @@ -6591,7 +6470,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6627,7 +6505,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6656,8 +6533,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "target": { "type": "string", @@ -6732,7 +6608,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6781,8 +6656,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "target": { "type": "string", @@ -6853,7 +6727,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6889,7 +6762,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6942,7 +6814,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -6971,8 +6842,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "name": { "type": "string", @@ -7046,7 +6916,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -7080,7 +6949,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -7107,7 +6975,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -7134,7 +7001,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -7163,8 +7029,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "from_email": { "type": "string", @@ -7210,7 +7075,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -7237,7 +7101,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -7288,8 +7151,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "feature_id": { "type": "integer", @@ -7324,7 +7186,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -7370,7 +7231,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -7438,7 +7298,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -7508,7 +7367,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -7545,7 +7403,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -7596,8 +7453,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "name": { "type": "string", @@ -7648,7 +7504,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -7699,8 +7554,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "friendly_name": { "type": "string", @@ -7752,7 +7606,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -7821,8 +7674,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "friendly_name": { "type": "string", @@ -7862,7 +7714,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -7908,7 +7759,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -7977,8 +7827,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "friendly_name": { "type": "string", @@ -8026,7 +7875,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -8113,8 +7961,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "friendly_name": { "type": "string", @@ -8154,7 +8001,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -8209,7 +8055,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -8265,7 +8110,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -8315,8 +8159,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "endpoint": { "type": "string", @@ -8450,8 +8293,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." } }, "required": [ @@ -8481,7 +8323,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -8532,8 +8373,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "http_method": { "type": "string", @@ -8591,7 +8431,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -8635,7 +8474,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -8704,8 +8542,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "http_method": { "type": "string", @@ -8759,7 +8596,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -8811,8 +8647,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "standard_flow_enabled": { "type": "boolean", @@ -8858,7 +8693,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -8908,7 +8742,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -8958,7 +8791,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -9055,8 +8887,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "to": { "type": "string", @@ -9095,7 +8926,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -9146,8 +8976,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "policies_config": { "type": "string", @@ -9182,7 +9011,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -9253,8 +9081,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "name": { "type": "string", @@ -9298,7 +9125,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -9371,8 +9197,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." } }, "required": [ @@ -9401,7 +9226,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -9452,8 +9276,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "name": { "type": "string", @@ -9503,7 +9326,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -9572,8 +9394,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "name": { "type": "string", @@ -9609,7 +9430,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -9655,7 +9475,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -9684,8 +9503,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "useraccountarea_enabled": { "type": "boolean", @@ -9755,8 +9573,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "url": { "type": "string", @@ -9846,7 +9663,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -9871,7 +9687,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -9903,8 +9718,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "org_name": { "type": "string", @@ -9931,8 +9745,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "plan_id": { "type": "integer", @@ -9988,8 +9801,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "name": { "type": "string", @@ -10025,8 +9837,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "username": { "type": "string", @@ -10056,8 +9867,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "username": { "type": "string", @@ -10084,8 +9894,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "name": { "type": "string", @@ -10121,8 +9930,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "name": { "type": "string", @@ -10157,8 +9965,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "org_name": { "type": "string", diff --git a/doc/active_docs/Analytics API.json b/doc/active_docs/Analytics API.json index 4a6fb3cce8..e8f466ea95 100644 --- a/doc/active_docs/Analytics API.json +++ b/doc/active_docs/Analytics API.json @@ -36,7 +36,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -145,7 +144,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -266,7 +264,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -389,7 +386,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" diff --git a/doc/active_docs/Billing API.json b/doc/active_docs/Billing API.json index 5ded338fdd..3ed9372866 100644 --- a/doc/active_docs/Billing API.json +++ b/doc/active_docs/Billing API.json @@ -22,7 +22,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -67,7 +66,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -145,7 +143,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -216,8 +213,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "account_id": { "type": "integer", @@ -262,7 +258,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -311,8 +306,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "period": { "type": "string", @@ -374,8 +368,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "state": { "type": "string", @@ -440,8 +433,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." } }, "required": [ @@ -477,7 +469,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -512,7 +503,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -561,8 +551,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "name": { "type": "string", @@ -630,7 +619,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" diff --git a/doc/active_docs/Developer Portal API (Tech Preview).json b/doc/active_docs/Developer Portal API (Tech Preview).json index 309b4e3dc0..4228fb6d99 100644 --- a/doc/active_docs/Developer Portal API (Tech Preview).json +++ b/doc/active_docs/Developer Portal API (Tech Preview).json @@ -23,7 +23,6 @@ "name": "access_token", "in": "query", "description": "Your access token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -68,8 +67,7 @@ "properties": { "access_token": { "type": "string", - "description": "Your access token", - "x-data-threescale-name": "access_token" + "description": "Your access token" }, "type": { "type": "string", @@ -152,7 +150,6 @@ "name": "access_token", "in": "query", "description": "Your access token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -201,8 +198,7 @@ "properties": { "access_token": { "type": "string", - "description": "Your access token", - "x-data-threescale-name": "access_token" + "description": "Your access token" }, "system_name": { "type": "string", @@ -274,7 +270,6 @@ "name": "access_token", "in": "query", "description": "Your access token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -325,8 +320,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." } }, "required": [ @@ -356,7 +350,6 @@ "name": "access_token", "in": "query", "description": "Your access token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -401,8 +394,7 @@ "properties": { "access_token": { "type": "string", - "description": "Your access token", - "x-data-threescale-name": "access_token" + "description": "Your access token" }, "title": { "type": "string", @@ -449,7 +441,6 @@ "name": "access_token", "in": "query", "description": "Your access token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -498,8 +489,7 @@ "properties": { "access_token": { "type": "string", - "description": "Your access token", - "x-data-threescale-name": "access_token" + "description": "Your access token" }, "title": { "type": "string", @@ -543,7 +533,6 @@ "name": "access_token", "in": "query", "description": "Your access token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -579,7 +568,6 @@ "name": "access_token", "in": "query", "description": "Your access token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -624,8 +612,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "path": { "type": "string", @@ -673,7 +660,6 @@ "name": "access_token", "in": "query", "description": "Your access token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -722,8 +708,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "path": { "type": "string", @@ -767,7 +752,6 @@ "name": "access_token", "in": "query", "description": "Your access token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" diff --git a/doc/active_docs/Master API.json b/doc/active_docs/Master API.json index d170c57fb0..010ddc6ab8 100644 --- a/doc/active_docs/Master API.json +++ b/doc/active_docs/Master API.json @@ -48,7 +48,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -118,7 +117,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -233,8 +231,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "org_name": { "type": "string", @@ -269,8 +266,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "from_email": { "type": "string", @@ -312,8 +308,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "date": { "type": "string", diff --git a/doc/active_docs/Policy Registry API.json b/doc/active_docs/Policy Registry API.json index 41975641d6..b32fe73b99 100644 --- a/doc/active_docs/Policy Registry API.json +++ b/doc/active_docs/Policy Registry API.json @@ -23,7 +23,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -52,8 +51,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "name": { "type": "string", @@ -109,7 +107,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" @@ -138,8 +135,7 @@ "properties": { "access_token": { "type": "string", - "description": "A personal Access Token.", - "x-data-threescale-name": "access_token" + "description": "A personal Access Token." }, "name": { "type": "string", @@ -179,7 +175,6 @@ "name": "access_token", "in": "query", "description": "A personal Access Token", - "x-data-threescale-name": "access_token", "required": true, "schema": { "type": "string" From ee9014277ca1d60f50ce459c1204a452ff986eb3 Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Wed, 15 Mar 2023 15:16:49 +0100 Subject: [PATCH 68/85] Auto-complete fixes --- app/javascript/src/ActiveDocs/OAS3Autocomplete.ts | 3 ++- spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts | 8 ++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts b/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts index 282433bcf7..71440d0d11 100644 --- a/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts +++ b/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts @@ -47,7 +47,7 @@ const addAutocompleteToParam = (param: any, accountData: AccountData): any => { ? { ...param, examples: autocompleteData.reduce<{ summary: string; value: string }[]>((examples, item) => ( - [...examples, { summary: `${item.name} - ${item.value}`, value: item.value }] + [...examples, { summary: item.value ? `${item.name} - ${item.value}` : item.name, value: item.value }] ), [{ summary: X_DATA_PARAMS_DESCRIPTIONS[xDataKey], value: '-' }]) } : param @@ -148,5 +148,6 @@ export const autocompleteInterceptor = (response: SwaggerUIResponse, accountData if (specUrl !== response.url) { return response } + console.log(JSON.stringify(response)) return autocompleteOAS3(response, accountDataUrl, serviceEndpoint) } diff --git a/spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts b/spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts index 35fcf2d472..d64aa3b11b 100644 --- a/spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts +++ b/spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts @@ -56,7 +56,10 @@ const apiResponse = { const accountData = { status: 200, results: { - user_keys: [{ name: 'Some App', value: '12345678' }] + user_keys: [ + { name: 'Some App', value: '12345678' }, + { name: 'Another App', value: '' } + ] } } as const @@ -77,7 +80,8 @@ describe('when the request is fetching OpenAPI spec', () => { expect(examplesFirstParam).toEqual([ { summary: 'First user key from latest 5 applications', value: '-' }, - { summary: 'Some App', value: '12345678' } + { summary: 'Some App - 12345678', value: '12345678' }, + { summary: 'Another App', value: '' } ]) expect(examplesSecondParam).toBe(undefined) }) From de22cf2025dece70dba3e04802315246b4f8955b Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Thu, 16 Mar 2023 11:59:35 +0100 Subject: [PATCH 69/85] Small fixes after review --- app/javascript/packs/provider_active_docs.ts | 5 ++--- app/javascript/src/ActiveDocs/OAS3Autocomplete.ts | 1 - app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts | 12 +++++++----- app/javascript/src/Types/SwaggerTypes.ts | 1 + app/views/provider/admin/api_docs/show.html.erb | 5 +---- 5 files changed, 11 insertions(+), 13 deletions(-) diff --git a/app/javascript/packs/provider_active_docs.ts b/app/javascript/packs/provider_active_docs.ts index 64de8e6d7c..aa21c28f11 100644 --- a/app/javascript/packs/provider_active_docs.ts +++ b/app/javascript/packs/provider_active_docs.ts @@ -5,8 +5,7 @@ import { renderApiDocs } from 'ActiveDocs/ThreeScaleApiDocs' import 'ActiveDocs/swagger-ui-3-provider-patch.scss' -// eslint-disable-next-line @typescript-eslint/no-misused-promises -document.addEventListener('DOMContentLoaded', async () => { +document.addEventListener('DOMContentLoaded', () => { const containerId = 'api-containers' const container = document.getElementById(containerId) @@ -16,5 +15,5 @@ document.addEventListener('DOMContentLoaded', async () => { const { baseUrl = '', apiDocsPath = '', apiDocsAccountDataPath = '' } = container.dataset - await renderApiDocs(container, apiDocsPath, baseUrl, apiDocsAccountDataPath) + void renderApiDocs(container, apiDocsPath, baseUrl, apiDocsAccountDataPath) }) diff --git a/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts b/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts index 71440d0d11..5ec177b876 100644 --- a/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts +++ b/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts @@ -148,6 +148,5 @@ export const autocompleteInterceptor = (response: SwaggerUIResponse, accountData if (specUrl !== response.url) { return response } - console.log(JSON.stringify(response)) return autocompleteOAS3(response, accountDataUrl, serviceEndpoint) } diff --git a/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts b/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts index 7b87d6f6c5..adbcb19bd9 100644 --- a/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts +++ b/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts @@ -1,18 +1,20 @@ -import $ from 'jquery' import SwaggerUI from 'swagger-ui' import { fetchData } from 'utilities/fetchData' +import { autocompleteInterceptor } from 'ActiveDocs/OAS3Autocomplete' import type { ApiDocsServices } from 'Types/SwaggerTypes' -import { autocompleteInterceptor } from './OAS3Autocomplete' - const getApiSpecUrl = (baseUrl: string, specPath: string): string => { - return `${baseUrl.replace(/\/$/, '')}/${specPath}` + return `${baseUrl.replace(/\/$/, '')}${specPath}` } const appendSwaggerDiv = (container: HTMLElement, id: string): void => { - $(container).append($(`
`)) + const div = document.createElement('div') + div.setAttribute('class', 'api-docs-wrap') + div.setAttribute('id', id) + + container.appendChild(div) } export const renderApiDocs = async (container: HTMLElement, apiDocsPath: string, baseUrl: string, apiDocsAccountDataPath: string): Promise => { diff --git a/app/javascript/src/Types/SwaggerTypes.ts b/app/javascript/src/Types/SwaggerTypes.ts index 2e9715df32..521639d573 100644 --- a/app/javascript/src/Types/SwaggerTypes.ts +++ b/app/javascript/src/Types/SwaggerTypes.ts @@ -12,6 +12,7 @@ export interface ApiDocsService { path: string; service_endpoint: string; } + export interface ApiDocsServices { host: string; apis: ApiDocsService[]; diff --git a/app/views/provider/admin/api_docs/show.html.erb b/app/views/provider/admin/api_docs/show.html.erb index 0be4c1f79d..ee1a8510bc 100644 --- a/app/views/provider/admin/api_docs/show.html.erb +++ b/app/views/provider/admin/api_docs/show.html.erb @@ -1,8 +1,5 @@ -<%= javascript_tag do %> - window.enableApiDocsProxy = <%= Rails.configuration.three_scale.active_docs_proxy_disabled.blank? %>; -<% end %> <%= javascript_pack_tag 'provider_active_docs' %> -<%= javascript_include_tag 'active-docs/application.js' %> + <% content_for :title do %> 3scale API Documentation <% end %> From 532deeb1951b93730355c68edfa3641751a56cb9 Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Thu, 16 Mar 2023 12:22:12 +0100 Subject: [PATCH 70/85] Rename ActiveDocs specification files --- .../api_docs/services_controller.rb | 4 +- .../Service Management API (on-premises).json | 693 ------------------ ...t API.json => account_management_api.json} | 0 ...{Analytics API.json => analytics_api.json} | 0 .../{Billing API.json => billing_api.json} | 0 ...l API (Tech Preview).json => cms_api.json} | 2 +- .../{Master API.json => master_api.json} | 0 ...stry API.json => policy_registry_api.json} | 0 ...t API.json => service_management_api.json} | 0 .../service_management_api_on_premises.json | 468 ++++++++++++ .../api_docs/services_controller_test.rb | 4 +- 11 files changed, 473 insertions(+), 698 deletions(-) delete mode 100644 doc/active_docs/Service Management API (on-premises).json rename doc/active_docs/{Account Management API.json => account_management_api.json} (100%) rename doc/active_docs/{Analytics API.json => analytics_api.json} (100%) rename doc/active_docs/{Billing API.json => billing_api.json} (100%) rename doc/active_docs/{Developer Portal API (Tech Preview).json => cms_api.json} (99%) rename doc/active_docs/{Master API.json => master_api.json} (100%) rename doc/active_docs/{Policy Registry API.json => policy_registry_api.json} (100%) rename doc/active_docs/{Service Management API.json => service_management_api.json} (100%) create mode 100644 doc/active_docs/service_management_api_on_premises.json diff --git a/app/controllers/api_docs/services_controller.rb b/app/controllers/api_docs/services_controller.rb index 82774ac5ac..177e62d038 100644 --- a/app/controllers/api_docs/services_controller.rb +++ b/app/controllers/api_docs/services_controller.rb @@ -56,9 +56,9 @@ def file_path def file_name if onpremises_version? && onpremises_version_preferred? - "#{name} (on-premises)" + "#{system_name}_on_premises" else - name + system_name end end diff --git a/doc/active_docs/Service Management API (on-premises).json b/doc/active_docs/Service Management API (on-premises).json deleted file mode 100644 index 9af8ef8c0c..0000000000 --- a/doc/active_docs/Service Management API (on-premises).json +++ /dev/null @@ -1,693 +0,0 @@ -{ - "basePath": "https://su1.3scale.net", - "swaggerVersion": "0.1a", - "apiVersion": "1.0", - "apis": [ - { - "path": "/transactions/authorize.xml", - "format": "xml", - "operations": [ - { - "httpMethod": "GET", - "summary": "Authorize (App Id authentication pattern)", - "description": "

Read-only operation to authorize an application in the App Id authentication pattern.

It is used to check if a particular application exists, is active and is within its usage limits. It can be optionally used to authenticate a call using an application key. It's possible to pass a 'predicted usage' to the authorize call. This can serve two purposes:

1) To make sure an API call won't go over the limits before the call is made, if the usage of the call is known in advance. In this case, the estimated usage can be passed to the authorize call, and it will respond whether the actual API call is still within limit. And,

2) To limit the authorization only to a subset of metrics. If usage is passed in, only the metrics listed in it will be checked against the limits. For example: There are two metrics defined: searches and updates. updates are already over limit, but searches are not. In this case, the user should still be allowed to do a search call, but not an update one.

Note: Even if the predicted usage is passed in, authorize is still a read-only operation. You have to make the report call to report the usage.

The response can have an http response code: 200 OK (if authorization is granted), 409 (if it's not granted, typically application over limits or keys missing, check 'reason' tag), or 403 (for authentication errors, check 'error' tag) and 404 (not found).", - "group": "authorize", - "parameters": [ - { - "name": "service_token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_tokens", - "description": "Your service api key with 3scale (also known as service token)." - }, - { - "name": "service_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_ids", - "description": "Service id. Required." - }, - { - "name": "app_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "app_ids", - "description": "App Id (identifier of the application if the auth. pattern is App Id)" - }, - { - "name": "app_key", - "dataType": "string", - "required": false, - "paramType": "query", - "threescale_name": "app_keys", - "description": "App Key (shared secret of the application if the authentication pattern is App Id). The app key is required if the application has one or more keys defined." - }, - { - "name": "referrer", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed." - }, - { - "name": "usage", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.", - "parameters": [ - { - "name": "metric", - "dataType": "custom", - "required": false, - "paramType": "query", - "allowMultiple": true, - "threescale_name": "metric_names", - "description": "Metric to be reported" - } - ] - } - ] - } - ] - }, - { - "path": "/transactions/authorize.xml", - "format": "xml", - "operations": [ - { - "httpMethod": "GET", - "tags": [ - "authorize", - "user_key" - ], - "nickname": "authorize_user_key", - "deprecated": false, - "summary": "Authorize (API Key authentication pattern)", - "description": "Read-only operation to authorize an application in the App Key authentication pattern.

It is used to check if a particular application exists, is active and is within its usage limits. It can be optionally used to authenticate a call using an application key. It's possible to pass a 'predicted usage' to the authorize call. This can serve two purposes:

1) To make sure an API call won't go over the limits before the call is made, if the usage of the call is known in advance. In this case, the estimated usage can be passed to the authorize call, and it will respond whether the actual API call is still within limit. And,

2) To limit the authorization only to a subset of metrics. If usage is passed in, only the metrics listed in it will be checked against the limits. For example: There are two metrics defined: searches and updates. updates are already over limit, but searches are not. In this case, the user should still be allowed to do a search call, but not an update one.

Note: Even if the predicted usage is passed in, authorize is still a read-only operation. You have to make the report call to report the usage.

The response can have an http response code: 200 OK (if authorization is granted), 409 (if it's not granted, typically application over limits or keys missing, check 'reason' tag), or 403 (for authentication errors, check 'error' tag) and 404 (not found).", - "group": "authorize", - "parameters": [ - { - "name": "service_token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_tokens", - "description": "Your service api key with 3scale (also known as service token)." - }, - { - "name": "service_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_ids", - "description": "Service id. Required." - }, - { - "name": "user_key", - "dataType": "string", - "required": true, - "paramType": "query", - "theescale_name": "user_keys", - "description": "User Key (identifier and shared secret of the application if the auth. pattern is Api Key)" - }, - { - "name": "referrer", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed." - }, - { - "name": "usage", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.", - "parameters": [ - { - "name": "metric", - "dataType": "custom", - "required": false, - "paramType": "query", - "allowMultiple": true, - "threescale_name": "metric_names", - "description": "Metric to be reported" - } - ] - } - ] - } - ] - }, - { - "path": "/transactions/oauth_authorize.xml", - "format": "xml", - "operations": [ - { - "httpMethod": "GET", - "tags": [ - "authorize", - "user_key" - ], - "nickname": "oauth_authorize", - "deprecated": false, - "summary": "Authorize (OAuth authentication mode pattern)", - "description": "

Read-only operation to authorize an application in the OAuth authentication pattern.

This calls returns extra data (secret and redirect_url) needed to power OAuth APIs. It's only available for users with OAuth enabled APIs.

It is used to check if a particular application exists, is active and is within its usage limits. It can be optionally used to authenticate a call using an application key. It's possible to pass a 'predicted usage' to the authorize call. This can serve two purposes:

1) To make sure an API call won't go over the limits before the call is made, if the usage of the call is known in advance. In this case, the estimated usage can be passed to the authorize call, and it will respond whether the actual API call is still within limit. And,

2) To limit the authorization only to a subset of metrics. If usage is passed in, only the metrics listed in it will be checked against the limits. For example: There are two metrics defined: searches and updates. updates are already over limit, but searches are not. In this case, the user should still be allowed to do a search call, but not an update one.

Note: Even if the predicted usage is passed in, authorize is still a read-only operation. You have to make the report call to report the usage.

The response can have an http response code: 200 OK (if authorization is granted), 409 (if it's not granted, typically application over limits or keys missing, check 'reason' tag), or 403 (for authentication errors, check 'error' tag) and 404 (not found).", - "group": "authorize", - "parameters": [ - { - "name": "service_token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_tokens", - "description": "Your service api key with 3scale (also known as service token)." - }, - { - "name": "service_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_ids", - "description": "Service id. Required." - }, - { - "name": "access_token", - "dataType": "string", - "required": false, - "paramType": "query", - "threescale_name": "access_tokens", - "description": "OAuth token used for authorizing if you don't use client_id with client_secret." - }, - { - "name": "app_id", - "dataType": "string", - "required": false, - "paramType": "query", - "threescale_name": "app_ids", - "description": "Client Id (identifier of the application if the auth. pattern is OAuth, note that client_id == app_id)" - }, - { - "name": "referrer", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed." - }, - { - "name": "usage", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.", - "parameters": [ - { - "name": "metric", - "dataType": "custom", - "required": false, - "paramType": "query", - "allowMultiple": true, - "threescale_name": "metric_names", - "description": "Metric to be reported" - } - ] - }, - { - "name": "redirect_url", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Optional redirect URL for OAuth. Will be validated if sent." - }, - { - "name": "redirect_uri", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Optional redirect URI for OAuth. This is the same as 'redirect_url', but if used you should expect a matching 'redirect_uri' response field." - } - ] - } - ] - }, - { - "path": "/transactions/authrep.xml", - "format": "xml", - "operations": [ - { - "httpMethod": "GET", - "summary": "AuthRep (Authorize + Report for the App Id authentication pattern)", - "description": "

Authrep is a 'one-shot' operation to authorize an application and report the associated transaction at the same time.

The main difference between this call and the regular authorize call is that usage will be reported if the authorization is successful. Authrep is the most convenient way to integrate your API with the 3scale's Service Manangement API since it does a 1:1 mapping between a request to your API and a request to 3scale's API.

If you do not want to do a request to 3scale for each request to your API or batch the reports you should use the Authorize and Report methods instead.

Authrep is not a read-only operation and will increment the values if the authorization step is a success.", - "group": "authrep", - "parameters": [ - { - "name": "service_token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_tokens", - "description": "Your service api key with 3scale (also known as service token)." - }, - { - "name": "service_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_ids", - "description": "Service id. Required." - }, - { - "name": "app_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "app_ids", - "description": "App Id (identifier of the application if the auth. pattern is App Id)" - }, - { - "name": "app_key", - "dataType": "string", - "required": false, - "paramType": "query", - "threescale_name": "app_keys", - "description": "App Key (shared secret of the application if the authentication pattern is App Id). The app key is required if the application has one or more keys defined." - }, - { - "name": "referrer", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed." - }, - { - "name": "usage", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", - "parameters": [ - { - "name": "metric", - "dataType": "custom", - "required": false, - "paramType": "query", - "allowMultiple": true, - "threescale_name": "metric_names", - "description": "Metric to be reported" - } - ] - } - ] - } - ] - }, - { - "path": "/transactions/authrep.xml", - "format": "xml", - "operations": [ - { - "httpMethod": "GET", - "summary": "AuthRep (Authorize + Report for the API Key authentication pattern)", - "description": "

Authrep is a 'one-shot' operation to authorize an application and report the associated transaction at the same time.

The main difference between this call and the regular authorize call is that usage will be reported if the authorization is successful. Authrep is the most convenient way to integrate your API with the 3scale's Service Manangement API since it does a 1:1 mapping between a request to your API and a request to 3scale's API.

If you do not want to do a request to 3scale for each request to your API or batch the reports you should use the Authorize and Report methods instead.

Authrep is not a read-only operation and will increment the values if the authorization step is a success.", - "group": "authrep", - "parameters": [ - { - "name": "service_token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_tokens", - "description": "Your service api key with 3scale (also known as service token)." - }, - { - "name": "service_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_ids", - "description": "Service id. Required." - }, - { - "name": "user_key", - "dataType": "string", - "required": true, - "paramType": "query", - "theescale_name": "user_keys", - "description": "User Key (identifier and shared secret of the application if the auth. pattern is Api Key)" - }, - { - "name": "referrer", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed." - }, - { - "name": "usage", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", - "parameters": [ - { - "name": "metric", - "dataType": "custom", - "required": false, - "paramType": "query", - "allowMultiple": true, - "threescale_name": "metric_names", - "description": "Metric to be reported" - } - ] - } - ] - } - ] - }, - { - "path": "/transactions/oauth_authrep.xml", - "format": "xml", - "operations": [ - { - "httpMethod": "GET", - "nickname": "oauth_authrep", - "deprecated": false, - "summary": "AuthRep (OAuth authentication mode pattern)", - "description": "

Authrep is a 'one-shot' operation to authorize an application and report the associated transaction at the same time in the OAuth authentication pattern.

The main difference between this call and the regular authorize call is that usage will be reported if the authorization is successful. Authrep is the most convenient way to integrate your API with the 3scale's Service Manangement API since it does a 1:1 mapping between a request to your API and a request to 3scale's API.

If you do not want to do a request to 3scale for each request to your API or batch the reports you should use the Authorize and Report methods instead.

Authrep is not a read-only operation and will increment the values if the authorization step is a success.

This calls returns extra data (secret and redirect_url) needed to power OAuth APIs. It's only available for users with OAuth enabled APIs.", - "group": "authrep", - "parameters": [ - { - "name": "service_token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_tokens", - "description": "Your service api key with 3scale (also known as service token)." - }, - { - "name": "service_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_ids", - "description": "Service id. Required." - }, - { - "name": "access_token", - "dataType": "string", - "required": false, - "paramType": "query", - "threescale_name": "access_tokens", - "description": "OAuth token used for authorizing if you don't use client_id with client_secret." - }, - { - "name": "app_id", - "dataType": "string", - "required": false, - "paramType": "query", - "threescale_name": "app_ids", - "description": "Client Id (identifier of the application if the auth. pattern is OAuth, note that client_id == app_id)" - }, - { - "name": "referrer", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed." - }, - { - "name": "usage", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", - "parameters": [ - { - "name": "metric", - "dataType": "custom", - "required": false, - "paramType": "query", - "allowMultiple": true, - "threescale_name": "metric_names", - "description": "Metric to be reported" - } - ] - }, - { - "name": "redirect_url", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Optional redirect URL for OAuth. Will be validated if sent." - }, - { - "name": "redirect_uri", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "Optional redirect URI for OAuth. This is the same as 'redirect_url', but if used you should expect a matching 'redirect_uri' response field." - } - ] - } - ] - }, - { - "path": "/transactions.xml", - "format": "xml", - "operations": [ - { - "httpMethod": "POST", - "summary": "Report (App Id authentication pattern)", - "description": "

Report the transactions to 3scale backend.

This operation updates the metrics passed in the usage parameter. You can send up to 1K transactions in a single POST request. Transactions are processed asynchronously by the 3scale's backend.

Transactions from a single batch are reported only if all of them are valid. If there is an error in processing of at least one of them, none is reported.

Note that a batch can only report transactions to the same service, service_id is at the same level that service_token. Multiple report calls will have to be issued to report transactions to different services.

Be aware that reporting metrics that are limited at the time of reporting will have no effect.

Supported Content-Type values for this POST call are: application/x-www-form-urlencoded.", - "group": "report", - "parameters": [ - { - "name": "service_token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_tokens", - "description": "Your service api key with 3scale (also known as service token)." - }, - { - "name": "service_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_ids", - "description": "Service id. Required." - }, - { - "name": "transactions", - "dataType": "array", - "required": true, - "paramType": "query", - "allowMultiple": true, - "description": "Transactions to be reported. There is a limit of 1000 transactions to be reported on a single request.", - "parameters": [ - { - "name": "app_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "app_ids", - "description": "App Id (identifier of the application if the auth. pattern is App Id)", - "description_inline": true - }, - { - "name": "timestamp", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "If passed, it should be the time when the transaction took place. Format: YYYY-MM-DD HH:MM:SS for UTC, add -HH:MM or +HH:MM for time offset. For instance, 2011-12-30 22:15:31 -08:00", - "description_inline": true - }, - { - "name": "usage", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", - "parameters": [ - { - "name": "metric", - "dataType": "custom", - "required": false, - "paramType": "query", - "allowMultiple": true, - "threescale_name": "metric_names", - "description": "Metric to be reported" - } - ] - } - ] - } - ] - } - ] - }, - { - "path": "/transactions.xml", - "format": "xml", - "operations": [ - { - "httpMethod": "POST", - "summary": "Report (API Key authentication pattern)", - "description": "

Report the transactions to 3scale backend.

This operation updates the metrics passed in the usage parameter. You can send up to 1K transactions in a single POST request. Transactions are processed asynchronously by the 3scale's backend.

Transactions from a single batch are reported only if all of them are valid. If there is an error in processing of at least one of them, none is reported.

Note that a batch can only report transactions to the same service, service_id is at the same level that service_token. Multiple report calls will have to be issued to report transactions to different services.

Be aware that reporting metrics that are limited at the time of reporting will have no effect.

Supported Content-Type values for this POST call are: application/x-www-form-urlencoded.", - "group": "report", - "parameters": [ - { - "name": "service_token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_tokens", - "description": "Your service api key with 3scale (also known as service token)." - }, - { - "name": "service_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_ids", - "description": "Service id. Required." - }, - { - "name": "transactions", - "dataType": "array", - "required": true, - "paramType": "query", - "allowMultiple": true, - "description": "Transactions to be reported. There is a limit of 1000 transactions to be reported on a single request.", - "parameters": [ - { - "name": "user_key", - "dataType": "string", - "required": true, - "paramType": "query", - "theescale_name": "user_keys", - "description": "User Key (identifier and shared secret of the application if the auth. pattern is Api Key)", - "description_inline": true - }, - { - "name": "timestamp", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "If passed, it should be the time when the transaction took place. Format: YYYY-MM-DD HH:MM:SS for UTC, add -HH:MM or +HH:MM for time offset. For instance, 2011-12-30 22:15:31 -08:00", - "description_inline": true - }, - { - "name": "usage", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", - "parameters": [ - { - "name": "metric", - "dataType": "custom", - "required": false, - "paramType": "query", - "allowMultiple": true, - "threescale_name": "metric_names", - "description": "Metric to be reported" - } - ] - } - ] - } - ] - } - ] - }, - { - "path": "/transactions.xml", - "format": "xml", - "operations": [ - { - "httpMethod": "POST", - "summary": "Report (OAuth authentication pattern)", - "description": "

Report the transactions to 3scale backend.

This operation updates the metrics passed in the usage parameter. You can send up to 1K transactions in a single POST request. Transactions are processed asynchronously by the 3scale's backend.

Transactions from a single batch are reported only if all of them are valid. If there is an error in processing of at least one of them, none is reported.

Note that a batch can only report transactions to the same service, service_id is at the same level that service_token. Multiple report calls will have to be issued to report transactions to different services.

Be aware that reporting metrics that are limited at the time of reporting will have no effect.

Supported Content-Type values for this POST call are: application/x-www-form-urlencoded.", - "group": "report", - "parameters": [ - { - "name": "service_token", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_tokens", - "description": "Your service api key with 3scale (also known as service token)." - }, - { - "name": "service_id", - "dataType": "string", - "required": true, - "paramType": "query", - "threescale_name": "service_ids", - "description": "Service id. Required." - }, - { - "name": "transactions", - "dataType": "array", - "required": true, - "paramType": "query", - "allowMultiple": true, - "description": "Transactions to be reported. There is a limit of 1000 transactions to be reported on a single request.", - "parameters": [ - { - "name": "app_id", - "dataType": "string", - "required": false, - "paramType": "query", - "threescale_name": "app_ids", - "description": "Client Id (identifier of the application if the auth. pattern is OAuth, note that client_id == app_id)", - "description_inline": true - }, - { - "name": "timestamp", - "dataType": "string", - "required": false, - "paramType": "query", - "description": "If passed, it should be the time when the transaction took place. Format: YYYY-MM-DD HH:MM:SS for UTC, add -HH:MM or +HH:MM for time offset. For instance, 2011-12-30 22:15:31 -08:00", - "description_inline": true - }, - { - "name": "usage", - "dataType": "hash", - "required": false, - "paramType": "query", - "allowMultiple": false, - "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", - "parameters": [ - { - "name": "metric", - "dataType": "custom", - "required": false, - "paramType": "query", - "allowMultiple": true, - "threescale_name": "metric_names", - "description": "Metric to be reported" - } - ] - } - ] - } - ] - } - ] - } - ] -} diff --git a/doc/active_docs/Account Management API.json b/doc/active_docs/account_management_api.json similarity index 100% rename from doc/active_docs/Account Management API.json rename to doc/active_docs/account_management_api.json diff --git a/doc/active_docs/Analytics API.json b/doc/active_docs/analytics_api.json similarity index 100% rename from doc/active_docs/Analytics API.json rename to doc/active_docs/analytics_api.json diff --git a/doc/active_docs/Billing API.json b/doc/active_docs/billing_api.json similarity index 100% rename from doc/active_docs/Billing API.json rename to doc/active_docs/billing_api.json diff --git a/doc/active_docs/Developer Portal API (Tech Preview).json b/doc/active_docs/cms_api.json similarity index 99% rename from doc/active_docs/Developer Portal API (Tech Preview).json rename to doc/active_docs/cms_api.json index 4228fb6d99..d5aa2fea67 100644 --- a/doc/active_docs/Developer Portal API (Tech Preview).json +++ b/doc/active_docs/cms_api.json @@ -1,7 +1,7 @@ { "openapi": "3.0.1", "info": { - "title": "Developer Portal API", + "title": "Developer Portal API (Tech Preview)", "description": "API for managing the Developer Portal.", "version": "1.0" }, diff --git a/doc/active_docs/Master API.json b/doc/active_docs/master_api.json similarity index 100% rename from doc/active_docs/Master API.json rename to doc/active_docs/master_api.json diff --git a/doc/active_docs/Policy Registry API.json b/doc/active_docs/policy_registry_api.json similarity index 100% rename from doc/active_docs/Policy Registry API.json rename to doc/active_docs/policy_registry_api.json diff --git a/doc/active_docs/Service Management API.json b/doc/active_docs/service_management_api.json similarity index 100% rename from doc/active_docs/Service Management API.json rename to doc/active_docs/service_management_api.json diff --git a/doc/active_docs/service_management_api_on_premises.json b/doc/active_docs/service_management_api_on_premises.json new file mode 100644 index 0000000000..5dea62c438 --- /dev/null +++ b/doc/active_docs/service_management_api_on_premises.json @@ -0,0 +1,468 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "Service Management API", + "description": "API for authorizing and reporting the API traffic, used by the API gateway.", + "version": "1.0" + }, + "servers": [ + { + "url": "/" + } + ], + "paths": { + "/transactions/authorize.xml": { + "get": { + "summary": "Authorize (API Key and App ID / App Key authentication patterns)", + "operationId": "authorize", + "description": "Read-only operation to authorize an application in the API Key or App ID / App Key authentication pattern.\n\n**Either `user_key`, or `app_id` and `app_key` pair must be provided, according to the authentication pattern of the API.**\n\nIt is used to check if a particular application exists, is active and is within its usage limits. It can be optionally used to authenticate a call using an application key. It's possible to pass a 'predicted usage' to the authorize call. This can serve three purposes:\n1) To make sure an API call won't go over the limits before the call is made, if the usage of the call is known in advance. In this case, the estimated usage can be passed to the authorize call, and it will respond whether the actual API call is still within limit.\n2) To limit the authorization only to a subset of metrics. If usage is passed in, only the metrics listed in it will be checked against the limits. For example: There are two metrics defined: _searches_ and _updates_. _updates_ are already over limit, but _searches_ are not. In this case, the user should still be allowed to do a search call, but not an update one.\n3) If no usage is passed then any metric with a limit exceeded state will result in an _authorization_failed_ response.\n\n**Note:** Even if the predicted usage is passed in, authorize is still a **read-only** operation. You have to make the report call to report the usage.\n\nThe response can have an HTTP response code: `200` OK (if authorization is granted), `409` (if it's not granted, typically application over limits or keys missing, check 'reason' tag), `403` (for authentication errors, check 'error' tag) and `404` (not found).", + "tags": [ + "API Key and App ID / App Key" + ], + "parameters": [ + { + "name": "service_token", + "in": "query", + "description": "Service token for the API service.", + "x-data-threescale-name": "service_tokens", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service_id", + "in": "query", + "description": "Service ID.", + "x-data-threescale-name": "service_ids", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "user_key", + "in": "query", + "description": "User Key (API key) - identifier and shared secret of the application if the authentication pattern is API Key.", + "x-data-threescale-name": "user_keys", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "app_id", + "in": "query", + "description": "App Id (identifier of the application if the authentication pattern is App ID / App Key).", + "x-data-threescale-name": "app_ids", + "schema": { + "type": "string" + } + }, + { + "name": "app_key", + "in": "query", + "description": "App Key (shared secret of the application if the authentication pattern is App ID / App Key). The App Key is required if the application has one or more keys defined.", + "x-data-threescale-name": "app_keys", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "referrer", + "in": "query", + "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed.", + "schema": { + "type": "string" + } + }, + { + "name": "usage", + "in": "query", + "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.", + "schema": { + "$ref": "#/components/schemas/Usage" + }, + "style": "deepObject", + "explode": true + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/transactions/authrep.xml": { + "get": { + "summary": "AuthRep (Authorize + Report for the API Key and App ID / App Key authentication patterns)", + "operationId": "authrep", + "description": "AuthRep is a 'one-shot' operation to authorize an application and report the associated transaction at the same time.\n\n**Either `user_key`, or `app_id` and `app_key` pair must be provided, according to the authentication pattern of the API.**\n\nThe main difference between this call and the regular authorize call is that usage will be reported if the authorization is successful. AuthRep is the most convenient way to integrate your API with the 3scale's Service Manangement API since it does a 1:1 mapping between a request to your API and a request to 3scale's API.\n\nIf you do not want to do a request to 3scale for each request to your API or batch the reports you should use the Authorize and Report methods instead.\n\nAuthrep is **not a read-only** operation and will increment the values if the authorization step is a success.", + "tags": [ + "API Key and App ID / App Key" + ], + "parameters": [ + { + "name": "service_token", + "in": "query", + "description": "Service token for the API service.", + "required": true, + "schema": { + "type": "string" + }, + "x-data-threescale-name": "service_tokens" + }, + { + "name": "service_id", + "in": "query", + "description": "Service ID.", + "x-data-threescale-name": "service_ids", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "user_key", + "in": "query", + "description": "User Key (API key) - identifier and shared secret of the application if the authentication pattern is API Key.", + "x-data-threescale-name": "user_keys", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "app_id", + "in": "query", + "description": "App Id (identifier of the application if the authentication pattern is App ID / App Key).", + "x-data-threescale-name": "app_ids", + "schema": { + "type": "string" + } + }, + { + "name": "app_key", + "in": "query", + "description": "App Key (shared secret of the application if the authentication pattern is App ID / App Key). The App Key is required if the application has one or more keys defined.", + "x-data-threescale-name": "app_keys", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "referrer", + "in": "query", + "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed.", + "schema": { + "type": "string" + } + }, + { + "name": "usage", + "in": "query", + "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", + "schema": { + "$ref": "#/components/schemas/Usage" + }, + "style": "deepObject", + "explode": true + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/transactions/oauth_authorize.xml": { + "get": { + "summary": "Authorize (OAuth authentication mode pattern)", + "operationId": "authorizeOauth", + "description": "Read-only operation to authorize an application in the OAuth authentication pattern.\n\nWhen using this endpoint please pay attention at your handling of app_id and app_key parameters. If you don't specify an app_key, the endpoint assumes the app_id specified has already been authenticated by other means. If you specify the app_key parameter, even if it is empty, it will be checked against the application's keys. If you don't trust the app_id value you have, use app keys and specify one.\n\nThis calls returns extra data (secret and redirect_url) needed to power OAuth APIs. It's only available for users with OAuth enabled APIs.\n\nIt is used to check if a particular application exists, is active and is within its usage limits. It can be optionally used to authenticate a call using an application key. It's possible to pass a 'predicted usage' to the authorize call. This can serve three purposes:\n1) To make sure an API call won't go over the limits before the call is made, if the usage of the call is known in advance. In this case, the estimated usage can be passed to the authorize call, and it will respond whether the actual API call is still within limit.\n2) To limit the authorization only to a subset of metrics. If usage is passed in, only the metrics listed in it will be checked against the limits. For example: There are two metrics defined: _searches_ and _updates_. _updates_ are already over limit, but _searches_ are not. In this case, the user should still be allowed to do a search call, but not an update one.\n\n3) If no usage is passed then any metric with a limit exceeded state will result in an _authorization_failed_ response.\n\n**Note:** Even if the predicted usage is passed in, authorize is still a **read-only** operation. You have to make the report call to report the usage.\n\nThe response can have an HTTP response code: `200` OK (if authorization is granted), `409` (if it's not granted, typically application over limits or keys missing, check 'reason' tag), `403` (for authentication errors, check 'error' tag) and `404` (not found).", + "tags": [ + "OAuth" + ], + "parameters": [ + { + "name": "service_token", + "in": "query", + "description": "Service token for the API service.", + "required": true, + "schema": { + "type": "string" + }, + "x-data-threescale-name": "service_tokens" + }, + { + "name": "service_id", + "in": "query", + "description": "Service ID.", + "x-data-threescale-name": "service_ids", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "app_id", + "in": "query", + "description": "Client ID (identifier of the application if the authentication pattern is OAuth, note that client_id == app_id)", + "x-data-threescale-name": "app_ids", + "schema": { + "type": "string" + } + }, + { + "name": "app_key", + "in": "query", + "description": "App Key (shared secret of the application). The app key, if present, must match a key defined for the application. Note that empty values are considered invalid.", + "x-data-threescale-name": "app_keys", + "schema": { + "type": "string" + } + }, + { + "name": "referrer", + "in": "query", + "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed.", + "schema": { + "type": "string" + } + }, + { + "name": "usage", + "in": "query", + "description": "Predicted usage. Actual usage will need to be reported with a report or an authrep call.", + "schema": { + "$ref": "#/components/schemas/Usage" + }, + "style": "deepObject", + "explode": true + }, + { + "name": "redirect_url", + "in": "query", + "description": "Optional redirect URL for OAuth. Will be validated if sent.", + "schema": { + "type": "string" + } + }, + { + "name": "redirect_uri", + "in": "query", + "description": "Optional redirect URI for OAuth. This is the same as 'redirect_url', but if used you should expect a matching 'redirect_uri' response field.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/transactions/oauth_authrep.xml": { + "get": { + "summary": "AuthRep (OAuth authentication mode pattern)", + "operationId": "authrepOauth", + "description": "AuthRep is a 'one-shot' operation to authorize an application and report the associated transaction at the same time in the OAuth authentication pattern.\n\nThe main difference between this call and the regular authorize call is that usage will be reported if the authorization is successful. Authrep is the most convenient way to integrate your API with the 3scale's Service Manangement API since it does a 1:1 mapping between a request to your API and a request to 3scale's API.\n\nIf you do not want to do a request to 3scale for each request to your API or batch the reports you should use the Authorize and Report methods instead.\n\nAuthrep is **not a read-only** operation and will increment the values if the authorization step is a success.\n\nWhen using this endpoint please pay attention at your handling of app_id and app_key parameters. If you don't specify an app_key, the endpoint assumes the app_id specified has already been authenticated by other means. If you specify the app_key parameter, even if it is empty, it will be checked against the application's keys. If you don't trust the app_id value you have, use app keys and specify one.\n\nThis call returns extra data (secret and redirect_url) needed to power OAuth APIs. It's only available for users with OAuth enabled APIs.", + "tags": [ + "OAuth" + ], + "parameters": [ + { + "name": "service_token", + "in": "query", + "description": "Service token for the API service.", + "required": true, + "schema": { + "type": "string" + }, + "x-data-threescale-name": "service_tokens" + }, + { + "name": "service_id", + "in": "query", + "description": "Service ID.", + "x-data-threescale-name": "service_ids", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "app_id", + "in": "query", + "description": "Client ID (identifier of the application if the authentication pattern is OAuth, note that client_id == app_id)", + "x-data-threescale-name": "app_ids", + "schema": { + "type": "string" + } + }, + { + "name": "app_key", + "in": "query", + "description": "App Key (shared secret of the application). The app key, if present, must match a key defined for the application. Note that empty values are considered invalid.", + "x-data-threescale-name": "app_keys", + "schema": { + "type": "string" + } + }, + { + "name": "referrer", + "in": "query", + "description": "Referrer IP Address or Domain. Required only if referrer filtering is enabled. If special value '*' (wildcard) is passed, the referrer check is bypassed.", + "schema": { + "type": "string" + } + }, + { + "name": "usage", + "in": "query", + "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", + "schema": { + "$ref": "#/components/schemas/Usage" + }, + "style": "deepObject", + "explode": true + }, + { + "name": "redirect_url", + "in": "query", + "description": "Optional redirect URL for OAuth. Will be validated if sent.", + "schema": { + "type": "string" + } + }, + { + "name": "redirect_uri", + "in": "query", + "description": "Optional redirect URI for OAuth. This is the same as 'redirect_url', but if used you should expect a matching 'redirect_uri' response field.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + }, + "/transactions.xml": { + "post": { + "summary": "Report", + "operationId": "report", + "description": "Report the transactions to 3scale backend.\n\nThis operation updates the metrics passed in the usage parameter. You can send up to 1K transactions in a single POST request. Transactions are processed asynchronously by the 3scale's backend.\n\nTransactions from a single batch are reported only if all of them are valid. If there is an error in processing of at least one of them, none is reported.\n\nNote that a batch can only report transactions to the same service, `service_id` is at the same level as `service_token`. Multiple report calls will have to be issued to report transactions to different services.\n\nBe aware that reporting metrics that are limited at the time of reporting will have no effect.\n\nSupported Content-Type values for this POST call are: `application/x-www-form-urlencoded`.", + "tags": [ + "API Key and App ID / App Key", + "OAuth" + ], + "requestBody": { + "description": "Transactions to be reported. There is a limit of 1000 transactions to be reported on a single request.", + "required": true, + "content": { + "application/x-www-form-urlencoded": { + "schema": { + "type": "object", + "properties": { + "service_token": { + "type": "string", + "description": "Service token for the API service." + }, + "service_id": { + "type": "integer", + "description": "Service ID.", + "x-data-threescale-name": "service_ids" + }, + "transactions": { + "$ref": "#/components/schemas/Transactions" + } + }, + "required": [ + "service_token", + "service_id", + "transactions" + ] + }, + "encoding": { + "transactions": { + "contentType": "application/x-www-form-urlencoded", + "style": "deepObject", + "explode": true + } + } + } + } + }, + "responses": { + "default": { + "description": "success", + "content": {} + } + } + } + } + }, + "components": { + "schemas": { + "Usage": { + "type": "object", + "additionalProperties": { + "type": "integer" + }, + "example": { + "hits": 1 + } + }, + "Transactions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Transaction" + } + }, + "Transaction": { + "type": "object", + "properties": { + "user_key": { + "type": "string", + "description": "User Key (API key) - identifier and shared secret of the application if the authentication pattern is API Key.", + "x-data-threescale-name": "user_keys" + }, + "app_id": { + "type": "string", + "description": "App Id (identifier of the application if the authentication pattern is App ID / App Key).", + "x-data-threescale-name": "app_ids" + }, + "timestamp": { + "type": "string", + "pattern": "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}( [+-]\\d{2}:\\d{2})?$", + "description": "If passed, it should be the time when the transaction took place. Format: YYYY-MM-DD HH:MM:SS for UTC, add -HH:MM or +HH:MM for time offset. For instance, 2022-02-01 22:15:31 -08:00", + "example": "2022-02-01 22:15:31 -08:00" + }, + "usage": { + "$ref": "#/components/schemas/Usage" + } + }, + "example": { + "user_key": "example", + "usage": { + "hits": 1 + } + } + } + } + } +} diff --git a/test/integration/api_docs/services_controller_test.rb b/test/integration/api_docs/services_controller_test.rb index ad727aca1b..48fcd35bd9 100644 --- a/test/integration/api_docs/services_controller_test.rb +++ b/test/integration/api_docs/services_controller_test.rb @@ -178,11 +178,11 @@ def test_backend_base_host def test_file_path Rails.application.config.three_scale.stubs(onpremises_api_docs_version: false) api_file = ApiFile.new('Service Management API', 'service_management_api') - assert_not_match '(on-premises)', api_file.file_path.to_s + assert_not_match '_on_premises', api_file.file_path.to_s Rails.application.config.three_scale.stubs(onpremises_api_docs_version: true) api_file = ApiFile.new('Service Management API', 'service_management_api') - assert_match '(on-premises)', api_file.file_path.to_s + assert_match '_on_premises', api_file.file_path.to_s end end From 81a49b9dfa305f0aa3a60adb3b0877e0b26e7435 Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Fri, 17 Mar 2023 12:13:43 +0100 Subject: [PATCH 71/85] Do not include ApplicationHelper --- app/controllers/api_docs/services_controller.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/controllers/api_docs/services_controller.rb b/app/controllers/api_docs/services_controller.rb index 177e62d038..679292f62d 100644 --- a/app/controllers/api_docs/services_controller.rb +++ b/app/controllers/api_docs/services_controller.rb @@ -2,8 +2,6 @@ class ApiDocs::ServicesController < FrontendController - include ApplicationHelper - class ApiFileDoesNotExist < StandardError; end delegate :api_files, :apis, to: 'self.class' @@ -141,6 +139,6 @@ def allowed_api?(api) end def update_base_url(api_spec) - api_spec['servers'] = [{ 'url' => base_url.gsub(%r{/$}, '') }] if api_spec['servers'][0]['url'] == '/' + api_spec['servers'] = [{ 'url' => helpers.base_url.gsub(%r{/$}, '') }] if api_spec['servers'][0]['url'] == '/' end end From 1cbd7eac49a6c4a68d318ccb102462d6286161e3 Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Mon, 27 Mar 2023 15:21:32 +0200 Subject: [PATCH 72/85] Update CMS API according to the latest changes in the PRs: https://github.com/3scale/porta/pull/3255 and https://github.com/3scale/porta/pull/3140 --- doc/active_docs/cms_api.json | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/doc/active_docs/cms_api.json b/doc/active_docs/cms_api.json index d5aa2fea67..3a8d5168a6 100644 --- a/doc/active_docs/cms_api.json +++ b/doc/active_docs/cms_api.json @@ -11,7 +11,7 @@ } ], "paths": { - "/admin/api/cms/templates.xml": { + "/admin/api/cms/templates.json": { "get": { "tags": [ "Templates" @@ -138,7 +138,7 @@ } } }, - "/admin/api/cms/templates/{id}.xml": { + "/admin/api/cms/templates/{id}.json": { "get": { "tags": [ "Templates" @@ -293,7 +293,7 @@ } } }, - "/admin/api/cms/templates/{id}/publish.xml": { + "/admin/api/cms/templates/{id}/publish.json": { "put": { "summary": "Template Publish", "description": "The current draft will be published and visible by all users.", @@ -338,7 +338,7 @@ } } }, - "/admin/api/cms/sections.xml": { + "/admin/api/cms/sections.json": { "get": { "tags": [ "Sections" @@ -400,6 +400,10 @@ "type": "string", "description": "Title of the section" }, + "system_name": { + "type": "string", + "description": "Human readable and unique identifier" + }, "public": { "type": "boolean", "description": "Public or not" @@ -429,7 +433,7 @@ } } }, - "/admin/api/cms/sections/{id}.xml": { + "/admin/api/cms/sections/{id}.json": { "get": { "tags": [ "Sections" @@ -495,6 +499,10 @@ "type": "string", "description": "Title of the section" }, + "system_name": { + "type": "string", + "description": "Human readable and unique identifier" + }, "public": { "type": "boolean", "description": "Public or not" @@ -556,7 +564,7 @@ } } }, - "/admin/api/cms/files.xml": { + "/admin/api/cms/files.json": { "get": { "tags": [ "Files" @@ -648,7 +656,7 @@ } } }, - "/admin/api/cms/files/{id}.xml": { + "/admin/api/cms/files/{id}.json": { "get": { "tags": [ "Files" From b858333f97f25bb3f64ac18be4fdd852affcfff5 Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Mon, 27 Mar 2023 16:30:33 +0200 Subject: [PATCH 73/85] Improve checking for API spec calls for autocomplete --- .../api_docs/services_controller.rb | 7 +------ app/javascript/packs/active_docs.ts | 6 +++--- app/javascript/packs/service_active_docs.ts | 6 +++--- .../src/ActiveDocs/OAS3Autocomplete.ts | 19 +++++++++---------- .../src/ActiveDocs/ThreeScaleApiDocs.ts | 4 ++-- .../api_docs/services_controller_test.rb | 6 +++--- 6 files changed, 21 insertions(+), 27 deletions(-) diff --git a/app/controllers/api_docs/services_controller.rb b/app/controllers/api_docs/services_controller.rb index 679292f62d..7c592e0bdc 100644 --- a/app/controllers/api_docs/services_controller.rb +++ b/app/controllers/api_docs/services_controller.rb @@ -41,7 +41,7 @@ def initialize(name, system_name) def json parsed_content = JSON.parse(file_content) - parsed_content['servers'] = [{ 'url' => backend_api? ? backend_base_host : '/' }] + parsed_content['servers'] = [{ 'url' => backend_base_host }] if backend_api? parsed_content end @@ -115,7 +115,6 @@ def index def show system_name = params[:id].to_sym api_file = (api_files.fetch(system_name) { raise ActiveRecord::RecordNotFound }).dup - update_base_url(api_file) api_file['paths'] = exclude_forbidden_endpoints(api_file['paths']) if master_on_premises? render json: api_file @@ -137,8 +136,4 @@ def allowed_api?(api) true end end - - def update_base_url(api_spec) - api_spec['servers'] = [{ 'url' => helpers.base_url.gsub(%r{/$}, '') }] if api_spec['servers'][0]['url'] == '/' - end end diff --git a/app/javascript/packs/active_docs.ts b/app/javascript/packs/active_docs.ts index a013414d2a..4489050417 100644 --- a/app/javascript/packs/active_docs.ts +++ b/app/javascript/packs/active_docs.ts @@ -2,17 +2,17 @@ import SwaggerUI from 'swagger-ui' import 'swagger-ui/dist/swagger-ui.css' -import { autocompleteInterceptor } from 'ActiveDocs/OAS3Autocomplete' +import { autocompleteRequestInterceptor } from 'ActiveDocs/OAS3Autocomplete' import 'ActiveDocs/swagger-ui-3-patch.scss' const accountDataUrl = '/api_docs/account_data.json' window.SwaggerUI = (args: SwaggerUI.SwaggerUIOptions, serviceEndpoint: string) => { - const responseInterceptor = (response: SwaggerUI.Response) => autocompleteInterceptor(response, accountDataUrl, serviceEndpoint, args.url) + const requestInterceptor = (request: SwaggerUI.Request) => autocompleteRequestInterceptor(request, accountDataUrl, serviceEndpoint) SwaggerUI({ ...args, - responseInterceptor + requestInterceptor } as SwaggerUI.SwaggerUIOptions) } diff --git a/app/javascript/packs/service_active_docs.ts b/app/javascript/packs/service_active_docs.ts index bf1c7ba4a3..01d4001cb2 100644 --- a/app/javascript/packs/service_active_docs.ts +++ b/app/javascript/packs/service_active_docs.ts @@ -1,7 +1,7 @@ import SwaggerUI from 'swagger-ui' import 'swagger-ui/dist/swagger-ui.css' -import { autocompleteInterceptor } from 'ActiveDocs/OAS3Autocomplete' +import { autocompleteRequestInterceptor } from 'ActiveDocs/OAS3Autocomplete' import 'ActiveDocs/swagger-ui-3-provider-patch.scss' @@ -16,12 +16,12 @@ document.addEventListener('DOMContentLoaded', () => { const { url = '', baseUrl = '', serviceEndpoint = '' } = container.dataset const accountDataUrl = `${baseUrl}${DATA_URL}` - const responseInterceptor: SwaggerUI.SwaggerUIOptions['responseInterceptor'] = (response) => autocompleteInterceptor(response, accountDataUrl, serviceEndpoint, url) + const requestInterceptor: SwaggerUI.SwaggerUIOptions['requestInterceptor'] = (request) => autocompleteRequestInterceptor(request, accountDataUrl, serviceEndpoint) SwaggerUI({ url, // eslint-disable-next-line @typescript-eslint/naming-convention -- SwaggerUI API dom_id: `#${containerId}`, - responseInterceptor + requestInterceptor }) }) diff --git a/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts b/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts index 5ec177b876..fb0bb31270 100644 --- a/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts +++ b/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts @@ -12,7 +12,7 @@ import { fetchData } from 'utilities/fetchData' -import type { Response as SwaggerUIResponse } from 'swagger-ui' +import type { Request as SwaggerUIRequest, Response as SwaggerUIResponse } from 'swagger-ui' import type { AccountData } from 'Types/SwaggerTypes' const X_DATA_ATTRIBUTE = 'x-data-threescale-name' @@ -136,17 +136,16 @@ const autocompleteOAS3 = async (response: SwaggerUIResponse, accountDataUrl: str } /** - * Intercept and process the response made by Swagger UI - * Apply transformations (inject servers list and autocomplete data) to the response for OpenAPI spec requests, and + * Intercept the request, and if it fetches the OpenAPI specification, apply a custom responseInterceptor that applies + * transformations (inject servers list and autocomplete data) to the response * keep the responses to the actual API calls (made through 'Try it out') untouched - * @param response response to the request made through Swagger UI - * @param specUrl URL of the OpenAPI specification + * @param request request made through Swagger UI * @param accountDataUrl URL of the data for autocompletion * @param serviceEndpoint Public Base URL of the gateway, that will replace the URL in the "servers" object */ -export const autocompleteInterceptor = (response: SwaggerUIResponse, accountDataUrl: string, serviceEndpoint: string, specUrl?: string): Promise | SwaggerUIResponse => { - if (specUrl !== response.url) { - return response +export const autocompleteRequestInterceptor = (request: SwaggerUIRequest, accountDataUrl: string, serviceEndpoint: string): Promise | SwaggerUIRequest => { + if (request.loadSpec) { + request.responseInterceptor = (response: SwaggerUIResponse) => autocompleteOAS3(response, accountDataUrl, serviceEndpoint) } - return autocompleteOAS3(response, accountDataUrl, serviceEndpoint) -} + return request +} \ No newline at end of file diff --git a/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts b/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts index adbcb19bd9..8a8a7f59b1 100644 --- a/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts +++ b/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts @@ -1,7 +1,7 @@ import SwaggerUI from 'swagger-ui' import { fetchData } from 'utilities/fetchData' -import { autocompleteInterceptor } from 'ActiveDocs/OAS3Autocomplete' +import { autocompleteRequestInterceptor } from 'ActiveDocs/OAS3Autocomplete' import type { ApiDocsServices } from 'Types/SwaggerTypes' @@ -27,7 +27,7 @@ export const renderApiDocs = async (container: HTMLElement, apiDocsPath: string, url, // eslint-disable-next-line @typescript-eslint/naming-convention -- Swagger UI dom_id: `#${domId}`, - responseInterceptor: (response) => autocompleteInterceptor(response, apiDocsAccountDataPath, '', url), + requestInterceptor: (request) => autocompleteRequestInterceptor(request, apiDocsAccountDataPath, ''), tryItOutEnabled: true }) }) diff --git a/test/integration/api_docs/services_controller_test.rb b/test/integration/api_docs/services_controller_test.rb index 48fcd35bd9..c444897503 100644 --- a/test/integration/api_docs/services_controller_test.rb +++ b/test/integration/api_docs/services_controller_test.rb @@ -74,13 +74,13 @@ def test_show_service_management assert_equal "https://#{backend_config[:host]}", json["servers"][0]["url"] end - test 'show the correct url for system APIs' do + test 'show the relative "/" path for system APIs' do system_apis = ApiDocs::ServicesController::API_SYSTEM_NAMES - [:service_management_api] system_apis.each do |system_name| get api_docs_service_path(format: :json, id: system_name) assert_response :success - json = JSON.parse(response.body) - assert_equal request.base_url, json["servers"][0]["url"] + servers = JSON.parse(response.body)["servers"] + assert_equal [{ 'url' => '/' }], servers end end From 39854122aafd62c3d776ad02bb6c59ef8e689b52 Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Thu, 30 Mar 2023 01:03:10 +0200 Subject: [PATCH 74/85] Serialize Service Mgmt API's report endpoint body correctly Restore custom.d.ts Fixes Fix tests --- .../src/ActiveDocs/OAS3Autocomplete.ts | 2 +- .../src/ActiveDocs/ThreeScaleApiDocs.ts | 100 +++++++++++++++++- app/javascript/src/Types/SwaggerTypes.ts | 49 +++++++++ app/javascript/src/Types/swagger.d.ts | 3 + package.json | 1 + .../ActiveDocs/OAS3Autocomplete.spec.ts | 56 ++++++---- .../ActiveDocs/ThreeScaleApiDocs.spec.ts | 61 +++++++++++ .../swagger-client/es/execute/index.js | 3 + 8 files changed, 249 insertions(+), 26 deletions(-) create mode 100644 app/javascript/src/Types/swagger.d.ts create mode 100644 spec/javascripts/ActiveDocs/ThreeScaleApiDocs.spec.ts create mode 100644 spec/javascripts/__mocks__/swagger-client/es/execute/index.js diff --git a/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts b/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts index f0bc1b46f6..1733be0f7f 100644 --- a/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts +++ b/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts @@ -114,7 +114,7 @@ export interface Response extends SwaggerUIResponse { text: string; } -const autocompleteOAS3 = async (response: SwaggerUIResponse, accountDataUrl: string, serviceEndpoint: string): Promise => { +export const autocompleteOAS3 = async (response: SwaggerUIResponse, accountDataUrl: string, serviceEndpoint: string): Promise => { const bodyWithServer = injectServerToResponseBody(response.body, serviceEndpoint) const data = await fetchData<{ results: AccountData }>(accountDataUrl) diff --git a/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts b/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts index 8a8a7f59b1..9e0606eb02 100644 --- a/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts +++ b/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts @@ -1,9 +1,12 @@ import SwaggerUI from 'swagger-ui' +// this is how SwaggerUI imports this function https://github.com/swagger-api/swagger-ui/pull/6208 +import { execute } from 'swagger-client/es/execute' import { fetchData } from 'utilities/fetchData' import { autocompleteRequestInterceptor } from 'ActiveDocs/OAS3Autocomplete' -import type { ApiDocsServices } from 'Types/SwaggerTypes' +import type { ApiDocsServices, BackendApiReportBody, BackendApiTransaction, ExecuteData } from 'Types/SwaggerTypes' +import type { SwaggerUIPlugin } from 'swagger-ui' const getApiSpecUrl = (baseUrl: string, specPath: string): string => { return `${baseUrl.replace(/\/$/, '')}${specPath}` @@ -17,6 +20,96 @@ const appendSwaggerDiv = (container: HTMLElement, id: string): void => { container.appendChild(div) } +/** + * when using Record notation, the following error is thrown: + * 'TS2456: Type alias 'BodyValue' circularly references itself.' + */ +// eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style +type BodyValue = boolean | number | string | { [key: string]: BodyValue } + +/** + * Transforms an object into form data representation, also URL-encoding the values, + * Example: + * { + * a_string: 'hello', + * an_array: [ + * { first: 1 }, + * { second: 1, extra_param: 'with whitespace'} + * ] + * } + * => + * { + * a_string: 'hello', + * 'an_array[0][first]': '1', + * 'an_array[1][second]': '1', + * 'an_array[1][extra_param]': 'with%20whitespace' + * } + * @param object + */ +export const objectToFormData = (object: BodyValue): Record => { + const buildFormData = (formData: Record, data: BodyValue, parentKey?: string) => { + if (data && typeof data === 'object') { + Object.keys(data).forEach((key: string) => { + buildFormData(formData, data[key], parentKey ? `${parentKey}[${key}]` : key) + }) + } else { + if (parentKey) { + formData[parentKey] = data ? data : '' + } + } + } + const formData = {} + buildFormData(formData, object) + return formData +} + +/** + * Transforms the request body of the Service Management API Report, as + * SwaggerUI (or rather swagger-js) does not serialize arrays of objects properly + * The hack is to process the request body in two steps: + * 1. normalize the 'transactions' array, as its elements may be either an object (if the value is taken + * from the example in the spec), or as a serialized JSON (if the field is changed manually) + * 2. "flatten" the objects by transforming them into form-data structure with the entries like + * 'transactions[0][app_id]': 'example' + * 'transactions[0][usage][hits]': 1 + * @param body BackendApiReportBody + */ +export const transformReportRequestBody = (body: BackendApiReportBody): Record => { + if (Array.isArray(body.transactions)) { + body.transactions = body.transactions.map(transaction => { + switch (typeof transaction) { + case 'object': + return transaction + case 'string': + try { + return JSON.parse(transaction) as BackendApiTransaction + } catch (error: unknown) { + return null + } + default: + return null + } + }).filter(element => element != null) as BackendApiTransaction[] + } + return objectToFormData(body as BodyValue) +} + +const RequestBodyTransformerPlugin: SwaggerUIPlugin = () => { + return { + fn: { + execute: (req: ExecuteData): unknown => { + if (req.contextUrl.includes('api_docs/services/service_management_api.json') + && req.operationId === 'report' + && req.requestBody) { + req.requestBody = transformReportRequestBody(req.requestBody as BackendApiReportBody) + } + // eslint-disable-next-line @typescript-eslint/no-unsafe-call + return execute(req) + } + } + } +} + export const renderApiDocs = async (container: HTMLElement, apiDocsPath: string, baseUrl: string, apiDocsAccountDataPath: string): Promise => { const apiSpecs: ApiDocsServices = await fetchData(apiDocsPath) apiSpecs.apis.forEach( api => { @@ -28,7 +121,10 @@ export const renderApiDocs = async (container: HTMLElement, apiDocsPath: string, // eslint-disable-next-line @typescript-eslint/naming-convention -- Swagger UI dom_id: `#${domId}`, requestInterceptor: (request) => autocompleteRequestInterceptor(request, apiDocsAccountDataPath, ''), - tryItOutEnabled: true + tryItOutEnabled: true, + plugins: [ + RequestBodyTransformerPlugin + ] }) }) } diff --git a/app/javascript/src/Types/SwaggerTypes.ts b/app/javascript/src/Types/SwaggerTypes.ts index 521639d573..5fe7134796 100644 --- a/app/javascript/src/Types/SwaggerTypes.ts +++ b/app/javascript/src/Types/SwaggerTypes.ts @@ -1,4 +1,5 @@ /* eslint-disable @typescript-eslint/naming-convention */ +import type { Request, Response, SupportedHTTPMethods } from 'swagger-ui' export type AccountData = Record; + requestInterceptor?: ((request: Request) => Promise | Request) | undefined; + responseInterceptor?: ((response: Response) => Promise | Response) | undefined; +} + +export interface ExecuteData { + contextUrl: string; + fetch: (arg: unknown) => unknown; + method: SupportedHTTPMethods; + operation: unknown; + operationId: string; + parameters: unknown; + pathName: string; + requestBody: unknown; + requestContentType: string; + requestInterceptor?: ((request: Request) => Promise | Request) | undefined; + responseContentType: string; + responseInterceptor?: ((response: Response) => Promise | Response) | undefined; + scheme: string; + securities: unknown; + server: string; + serverVariables: unknown; + spec: unknown; +} + +export interface BackendApiTransaction { + app_id?: string; + user_key?: string; + timestamp?: string; + usage: Record; + log?: { + request?: string; + response?: string; + code?: string; + }; +} + +export interface BackendApiReportBody { + service_token?: string; + service_id?: string; + transactions?: (BackendApiTransaction | string)[]; +} diff --git a/app/javascript/src/Types/swagger.d.ts b/app/javascript/src/Types/swagger.d.ts new file mode 100644 index 0000000000..9d562446fc --- /dev/null +++ b/app/javascript/src/Types/swagger.d.ts @@ -0,0 +1,3 @@ +declare module 'swagger-client/es/execute' { + export function execute (req: unknown): unknown +} diff --git a/package.json b/package.json index 71bb80fda5..3f8011dba7 100644 --- a/package.json +++ b/package.json @@ -107,6 +107,7 @@ "redux-thunk": "^2.3.0", "select2": "^4.0.6-rc.1", "swagger-ui": "^3.51.1", + "swagger-client": "^3.13.5", "validate.js": "^0.13.1", "virtual-dom": "^2.1.1" } diff --git a/spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts b/spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts index f9d4946c7f..faf33d8def 100644 --- a/spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts +++ b/spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts @@ -1,7 +1,7 @@ -import { autocompleteInterceptor } from 'ActiveDocs/OAS3Autocomplete' +import { autocompleteOAS3, autocompleteRequestInterceptor } from 'ActiveDocs/OAS3Autocomplete' import * as utils from 'utilities/fetchData' -import type { Response as SwaggerUIResponse } from 'swagger-ui' +import type { Request as SwaggerUIRequest, Response as SwaggerUIResponse } from 'swagger-ui' const specUrl = 'https://provider.3scale.test/foo/bar.json' const specRelativeUrl = 'foo/bar.json' @@ -67,25 +67,14 @@ const accountData = { const fetchDataSpy = jest.spyOn(utils, 'fetchData') fetchDataSpy.mockResolvedValue(accountData) -describe('when the request is fetching OpenAPI spec', () => { - const response = specResponse - - describe('when spec url is absolute', () => { - it('should inject servers to the spec', async () => { - const res: SwaggerUIResponse = await autocompleteInterceptor(response, accountDataUrl, serviceEndpoint, specUrl) - expect(res.body.servers).toEqual([{ 'url': serviceEndpoint }]) - }) - }) - - describe('when spec url is relative', () => { - it('should inject servers to the spec', async () => { - const res: SwaggerUIResponse = await autocompleteInterceptor(response, accountDataUrl, serviceEndpoint, specRelativeUrl) - expect(res.body.servers).toEqual([{ 'url': serviceEndpoint }]) - }) +describe('autocompleteOAS3', () => { + it('should inject servers to the spec', async () => { + const res: SwaggerUIResponse = await autocompleteOAS3(specResponse, accountDataUrl, serviceEndpoint) + expect(res.body.servers).toEqual([{ 'url': 'foo/bar/serviceEndpoint' }]) }) it('should autocomplete fields of OpenAPI spec with x-data-threescale-name property', async () => { - const res: SwaggerUIResponse = await autocompleteInterceptor(response, accountDataUrl, serviceEndpoint, specUrl) + const res: SwaggerUIResponse = await autocompleteOAS3(specResponse, accountDataUrl, serviceEndpoint) const examplesFirstParam = res.body.paths['/'].get.parameters[0].examples const examplesSecondParam = res.body.paths['/'].get.parameters[1].examples @@ -98,10 +87,31 @@ describe('when the request is fetching OpenAPI spec', () => { }) }) -describe('when the request is fetching API call response', () => { - const response = apiResponse - it('should not inject servers to the response', () => { - const res: SwaggerUIResponse = autocompleteInterceptor(response, accountDataUrl, serviceEndpoint, specUrl) - expect(res.body.servers).toBe(undefined) +describe('autocompleteRequestInterceptor', () => { + describe('when the request is fetching OpenAPI spec', () => { + it('should update the response interceptor', async () => { + let request: SwaggerUIRequest = { loadSpec: true } + request = autocompleteRequestInterceptor(request, accountDataUrl, serviceEndpoint) + + expect(request.responseInterceptor).toBeDefined() + + const res: SwaggerUIResponse = await request.responseInterceptor(specResponse, accountDataUrl, serviceEndpoint) + expect(res.body.servers).toEqual([{ 'url': 'foo/bar/serviceEndpoint' }]) + }) + }) + + describe('when the request is fetching API call response', () => { + const originalInterceptor = jest.fn((res: SwaggerUIRequest)=> { return res }) + let request: SwaggerUIRequest = { responseInterceptor: originalInterceptor } + request = autocompleteRequestInterceptor(request, accountDataUrl, serviceEndpoint) + + it('should not update the response interceptor', () => { + expect(request.responseInterceptor).toEqual(originalInterceptor) + }) + + it('should prevent injecting servers to the response', async () => { + const res: SwaggerUIResponse = await request.responseInterceptor(apiResponse, accountDataUrl, serviceEndpoint, specUrl) + expect(res.body.servers).toBe(undefined) + }) }) }) diff --git a/spec/javascripts/ActiveDocs/ThreeScaleApiDocs.spec.ts b/spec/javascripts/ActiveDocs/ThreeScaleApiDocs.spec.ts new file mode 100644 index 0000000000..d2e4db045f --- /dev/null +++ b/spec/javascripts/ActiveDocs/ThreeScaleApiDocs.spec.ts @@ -0,0 +1,61 @@ +import { transformReportRequestBody } from 'ActiveDocs/ThreeScaleApiDocs' + +import type { BackendApiReportBody } from 'Types/SwaggerTypes' + +const body: BackendApiReportBody = { + service_token: 'token', + service_id: '123', + transactions: [ + { + app_id: 'app-id1', + timestamp: '2023-03-29 00:00:00 -01:00', + usage: { + 'hit1-1': 11, + 'hit1-2': 12 + }, + log: { + request: 'request1', + response: 'response1', + code: '200' + } + }, + { + app_id: 'app-id2', + timestamp: '2023-03-29 00:00:00 -02:00', + usage: { + 'hit2-1': 21, + 'hit2-2': 22 + }, + log: { + request: 'request2', + response: 'response2', + code: '200' + } + } + ] +} + +describe('transformReportRequestBody', () => { + it('transforms the transactions array when transaction is an object', () => { + const result = transformReportRequestBody(body) + + expect(result).toEqual({ + service_token: 'token', + service_id: '123', + 'transactions[0][app_id]': 'app-id1', + 'transactions[0][timestamp]': '2023-03-29 00:00:00 -01:00', + 'transactions[0][usage][hit1-1]': 11, + 'transactions[0][usage][hit1-2]': 12, + 'transactions[0][log][request]': 'request1', + 'transactions[0][log][response]': 'response1', + 'transactions[0][log][code]': '200', + 'transactions[1][app_id]': 'app-id2', + 'transactions[1][timestamp]': '2023-03-29 00:00:00 -02:00', + 'transactions[1][usage][hit2-1]': 21, + 'transactions[1][usage][hit2-2]': 22, + 'transactions[1][log][request]': 'request2', + 'transactions[1][log][response]': 'response2', + 'transactions[1][log][code]': '200' + }) + }) +}) diff --git a/spec/javascripts/__mocks__/swagger-client/es/execute/index.js b/spec/javascripts/__mocks__/swagger-client/es/execute/index.js new file mode 100644 index 0000000000..8cfd7ace8f --- /dev/null +++ b/spec/javascripts/__mocks__/swagger-client/es/execute/index.js @@ -0,0 +1,3 @@ +module.exports = { + execute: jest.fn() +} From 9e39a6756c4b68ca197e49bd7d5e41355690c8a9 Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Wed, 12 Apr 2023 12:47:24 +0200 Subject: [PATCH 75/85] Some small refactoring --- .../src/ActiveDocs/ThreeScaleApiDocs.ts | 56 +++---- app/javascript/src/Types/SwaggerTypes.ts | 21 ++- .../ActiveDocs/ThreeScaleApiDocs.spec.ts | 157 ++++++++++++++---- .../swagger-client/es/execute/index.js | 2 +- 4 files changed, 167 insertions(+), 69 deletions(-) diff --git a/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts b/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts index 9e0606eb02..e1acc3f987 100644 --- a/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts +++ b/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts @@ -3,9 +3,10 @@ import SwaggerUI from 'swagger-ui' import { execute } from 'swagger-client/es/execute' import { fetchData } from 'utilities/fetchData' +import { safeFromJsonString } from 'utilities/json-utils' import { autocompleteRequestInterceptor } from 'ActiveDocs/OAS3Autocomplete' -import type { ApiDocsServices, BackendApiReportBody, BackendApiTransaction, ExecuteData } from 'Types/SwaggerTypes' +import type { ApiDocsServices, BackendApiReportBody, BackendApiTransaction, BodyValue, BodyValueObject, FormData, ExecuteData } from 'Types/SwaggerTypes' import type { SwaggerUIPlugin } from 'swagger-ui' const getApiSpecUrl = (baseUrl: string, specPath: string): string => { @@ -21,14 +22,9 @@ const appendSwaggerDiv = (container: HTMLElement, id: string): void => { } /** - * when using Record notation, the following error is thrown: - * 'TS2456: Type alias 'BodyValue' circularly references itself.' - */ -// eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style -type BodyValue = boolean | number | string | { [key: string]: BodyValue } - -/** - * Transforms an object into form data representation, also URL-encoding the values, + * Transforms an object into form data representation. Does not URL-encode, because it will be done by + * swagger-client itself + * Returns an empty object if the argument is not an object * Example: * { * a_string: 'hello', @@ -42,15 +38,19 @@ type BodyValue = boolean | number | string | { [key: string]: BodyValue } * a_string: 'hello', * 'an_array[0][first]': '1', * 'an_array[1][second]': '1', - * 'an_array[1][extra_param]': 'with%20whitespace' + * 'an_array[1][extra_param]': 'with whitespace' * } * @param object */ -export const objectToFormData = (object: BodyValue): Record => { - const buildFormData = (formData: Record, data: BodyValue, parentKey?: string) => { +export const objectToFormData = (object: BodyValue): FormData => { + if (typeof object !== 'object' || Array.isArray(object)) { + return {} + } + const buildFormData = (formData: FormData, data: BodyValue, parentKey?: string) => { if (data && typeof data === 'object') { - Object.keys(data).forEach((key: string) => { - buildFormData(formData, data[key], parentKey ? `${parentKey}[${key}]` : key) + const dataObject = data as BodyValueObject + Object.keys(dataObject).forEach((key: string) => { + buildFormData(formData, dataObject[key], parentKey ? `${parentKey}[${key}]` : key) }) } else { if (parentKey) { @@ -58,7 +58,7 @@ export const objectToFormData = (object: BodyValue): Record => { +export const transformReportRequestBody = (body: BackendApiReportBody): FormData => { if (Array.isArray(body.transactions)) { - body.transactions = body.transactions.map(transaction => { - switch (typeof transaction) { - case 'object': - return transaction - case 'string': - try { - return JSON.parse(transaction) as BackendApiTransaction - } catch (error: unknown) { - return null - } - default: - return null + body.transactions = body.transactions.reduce((acc: BackendApiTransaction[], transaction) => { + let value = undefined + if (typeof transaction === 'object') { + value = transaction + } else { + value = safeFromJsonString(transaction) + } + if (value) { + acc.push(value) } - }).filter(element => element != null) as BackendApiTransaction[] + return acc + }, []) } return objectToFormData(body as BodyValue) } diff --git a/app/javascript/src/Types/SwaggerTypes.ts b/app/javascript/src/Types/SwaggerTypes.ts index 5fe7134796..8763bf210d 100644 --- a/app/javascript/src/Types/SwaggerTypes.ts +++ b/app/javascript/src/Types/SwaggerTypes.ts @@ -19,16 +19,6 @@ export interface ApiDocsServices { apis: ApiDocsService[]; } -export interface RequestData extends Request { - url: string; - method: SupportedHTTPMethods; - body: string; - credentials: string; - headers: Record; - requestInterceptor?: ((request: Request) => Promise | Request) | undefined; - responseInterceptor?: ((response: Response) => Promise | Response) | undefined; -} - export interface ExecuteData { contextUrl: string; fetch: (arg: unknown) => unknown; @@ -37,7 +27,7 @@ export interface ExecuteData { operationId: string; parameters: unknown; pathName: string; - requestBody: unknown; + requestBody?: unknown; requestContentType: string; requestInterceptor?: ((request: Request) => Promise | Request) | undefined; responseContentType: string; @@ -66,3 +56,12 @@ export interface BackendApiReportBody { service_id?: string; transactions?: (BackendApiTransaction | string)[]; } + +/** + * when using Record notation, the following error is thrown: + * 'TS2456: Type alias 'BodyValue' circularly references itself.' + */ +export type BodyValue = BodyValue[] | boolean | number | string | { [key: string]: BodyValue } | null | undefined +export type BodyValueObject = Record + +export type FormData = Record diff --git a/spec/javascripts/ActiveDocs/ThreeScaleApiDocs.spec.ts b/spec/javascripts/ActiveDocs/ThreeScaleApiDocs.spec.ts index d2e4db045f..6f638fb412 100644 --- a/spec/javascripts/ActiveDocs/ThreeScaleApiDocs.spec.ts +++ b/spec/javascripts/ActiveDocs/ThreeScaleApiDocs.spec.ts @@ -1,40 +1,88 @@ -import { transformReportRequestBody } from 'ActiveDocs/ThreeScaleApiDocs' +import { objectToFormData, transformReportRequestBody } from 'ActiveDocs/ThreeScaleApiDocs' -import type { BackendApiReportBody } from 'Types/SwaggerTypes' +import type { BackendApiReportBody, BackendApiTransaction, BodyValue } from 'Types/SwaggerTypes' +const transaction1: BackendApiTransaction = { + app_id: 'app-id1', + timestamp: '2023-03-29 00:00:00 -01:00', + usage: { + 'hit1-1': 11, + 'hit1-2': 12 + }, + log: { + request: 'request1', + response: 'response1', + code: '200' + } +} +const transaction2: BackendApiTransaction = { + app_id: 'app-id2', + timestamp: '2023-03-29 00:00:00 -02:00', + usage: { + 'hit2-1': 21, + 'hit2-2': 22 + }, + log: { + request: 'request2', + response: 'response2', + code: '200' + } +} const body: BackendApiReportBody = { service_token: 'token', service_id: '123', transactions: [ - { - app_id: 'app-id1', - timestamp: '2023-03-29 00:00:00 -01:00', - usage: { - 'hit1-1': 11, - 'hit1-2': 12 - }, - log: { - request: 'request1', - response: 'response1', - code: '200' - } - }, - { - app_id: 'app-id2', - timestamp: '2023-03-29 00:00:00 -02:00', - usage: { - 'hit2-1': 21, - 'hit2-2': 22 - }, - log: { - request: 'request2', - response: 'response2', - code: '200' - } - } + transaction1, + transaction2 ] } +describe('objectToFormData', () => { + it('transforms the object to form data', () => { + const object: BodyValue = { + number: 1, + string: 'string with whitespace', + object: { + numField: 2, + strField: 'str', + boolField: true + }, + array: [ + { + foo: 'bar' + }, + { + foo: 'baz' + } + ], + nullField: null, + undefinedField: undefined, + emptyField: '' + } + + expect(objectToFormData(object)).toEqual({ + number: 1, + string: 'string with whitespace', + 'object[numField]': 2, + 'object[strField]': 'str', + 'object[boolField]': true, + 'array[0][foo]': 'bar', + 'array[1][foo]': 'baz', + nullField: '', + undefinedField: '', + emptyField: '' + }) + }) + + it('returns an empty object if argument is not a valid object', () => { + expect(objectToFormData('hello')).toEqual({}) + expect(objectToFormData(true)).toEqual({}) + expect(objectToFormData(123)).toEqual({}) + expect(objectToFormData(['q', 'w', 'r'])).toEqual({}) + }) + +}) + describe('transformReportRequestBody', () => { it('transforms the transactions array when transaction is an object', () => { const result = transformReportRequestBody(body) @@ -58,4 +106,57 @@ describe('transformReportRequestBody', () => { 'transactions[1][log][code]': '200' }) }) + + it('transforms the transactions array when a transaction is a serialized JSON', () => { + const bodyWithSerializedTransaction = { + ...body, + transactions: [ + transaction1, + '{\n "app_id": "app-id2",\n "timestamp": "2023-03-29 00:00:00 -02:00",\n "usage": {\n "hit2-1": 21,\n "hit2-2": 22\n },\n "log": {\n "request": "request2",\n "response": "response2",\n "code": "200"\n }\n}'] + } + const result = transformReportRequestBody(bodyWithSerializedTransaction) + + expect(result).toEqual({ + service_token: 'token', + service_id: '123', + 'transactions[0][app_id]': 'app-id1', + 'transactions[0][timestamp]': '2023-03-29 00:00:00 -01:00', + 'transactions[0][usage][hit1-1]': 11, + 'transactions[0][usage][hit1-2]': 12, + 'transactions[0][log][request]': 'request1', + 'transactions[0][log][response]': 'response1', + 'transactions[0][log][code]': '200', + 'transactions[1][app_id]': 'app-id2', + 'transactions[1][timestamp]': '2023-03-29 00:00:00 -02:00', + 'transactions[1][usage][hit2-1]': 21, + 'transactions[1][usage][hit2-2]': 22, + 'transactions[1][log][request]': 'request2', + 'transactions[1][log][response]': 'response2', + 'transactions[1][log][code]': '200' + }) + }) + + it('skips the transactions with invalid format', () => { + const bodyWithInvalidTransactions = { + ...body, + transactions: [transaction1, 'invalid', 'anotherOne'] + } + const consoleErrorMock = jest.spyOn(console, 'error').mockImplementation() + + const result = transformReportRequestBody(bodyWithInvalidTransactions) + expect(result).toEqual({ + service_token: 'token', + service_id: '123', + 'transactions[0][app_id]': 'app-id1', + 'transactions[0][timestamp]': '2023-03-29 00:00:00 -01:00', + 'transactions[0][usage][hit1-1]': 11, + 'transactions[0][usage][hit1-2]': 12, + 'transactions[0][log][request]': 'request1', + 'transactions[0][log][response]': 'response1', + 'transactions[0][log][code]': '200' + }) + + expect(consoleErrorMock).toHaveBeenCalledTimes(2) + consoleErrorMock.mockRestore() + }) }) diff --git a/spec/javascripts/__mocks__/swagger-client/es/execute/index.js b/spec/javascripts/__mocks__/swagger-client/es/execute/index.js index 8cfd7ace8f..9846f0040e 100644 --- a/spec/javascripts/__mocks__/swagger-client/es/execute/index.js +++ b/spec/javascripts/__mocks__/swagger-client/es/execute/index.js @@ -1,3 +1,3 @@ module.exports = { - execute: jest.fn() + execute: jest.fn() } From ffa3f34c9a95d715618391f41dbee05c224bd9f6 Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Wed, 12 Apr 2023 15:47:32 +0200 Subject: [PATCH 76/85] Tiny update --- spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts b/spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts index faf33d8def..d9107afafc 100644 --- a/spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts +++ b/spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts @@ -4,7 +4,6 @@ import * as utils from 'utilities/fetchData' import type { Request as SwaggerUIRequest, Response as SwaggerUIResponse } from 'swagger-ui' const specUrl = 'https://provider.3scale.test/foo/bar.json' -const specRelativeUrl = 'foo/bar.json' const apiUrl = 'https://some.api.domain/foo/bar/api-url' const accountDataUrl = 'foo/bar' const serviceEndpoint = 'foo/bar/serviceEndpoint' @@ -110,7 +109,7 @@ describe('autocompleteRequestInterceptor', () => { }) it('should prevent injecting servers to the response', async () => { - const res: SwaggerUIResponse = await request.responseInterceptor(apiResponse, accountDataUrl, serviceEndpoint, specUrl) + const res: SwaggerUIResponse = await request.responseInterceptor(apiResponse, accountDataUrl, serviceEndpoint) expect(res.body.servers).toBe(undefined) }) }) From 14ac7f08e8ada81e5c07e27709bbaec711fe6152 Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Thu, 13 Apr 2023 12:16:02 +0200 Subject: [PATCH 77/85] Remove cast to BodyValue --- app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts | 4 ++-- app/javascript/src/Types/SwaggerTypes.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts b/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts index e1acc3f987..04f7f8d579 100644 --- a/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts +++ b/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts @@ -42,7 +42,7 @@ const appendSwaggerDiv = (container: HTMLElement, id: string): void => { * } * @param object */ -export const objectToFormData = (object: BodyValue): FormData => { +export const objectToFormData = (object: BodyValueObject): FormData => { if (typeof object !== 'object' || Array.isArray(object)) { return {} } @@ -89,7 +89,7 @@ export const transformReportRequestBody = (body: BackendApiReportBody): FormData return acc }, []) } - return objectToFormData(body as BodyValue) + return objectToFormData(body) } const RequestBodyTransformerPlugin: SwaggerUIPlugin = () => { diff --git a/app/javascript/src/Types/SwaggerTypes.ts b/app/javascript/src/Types/SwaggerTypes.ts index 8763bf210d..025d4494ea 100644 --- a/app/javascript/src/Types/SwaggerTypes.ts +++ b/app/javascript/src/Types/SwaggerTypes.ts @@ -39,7 +39,7 @@ export interface ExecuteData { spec: unknown; } -export interface BackendApiTransaction { +export interface BackendApiTransaction extends BodyValueObject { app_id?: string; user_key?: string; timestamp?: string; @@ -51,7 +51,7 @@ export interface BackendApiTransaction { }; } -export interface BackendApiReportBody { +export interface BackendApiReportBody extends BodyValueObject { service_token?: string; service_id?: string; transactions?: (BackendApiTransaction | string)[]; From 1045e25a1351186fc2de58309041bc5bf8ca09bd Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Thu, 13 Apr 2023 12:41:56 +0200 Subject: [PATCH 78/85] Split objectToFormData into two functions --- .../src/ActiveDocs/ThreeScaleApiDocs.ts | 33 ++++++++++++------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts b/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts index 04f7f8d579..fbb374675b 100644 --- a/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts +++ b/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts @@ -21,6 +21,27 @@ const appendSwaggerDiv = (container: HTMLElement, id: string): void => { container.appendChild(div) } +/** + * A recursive function that traverses the tree of the multi-level object `data` + * and for every leaf (i.e. value of primitive type) adds the value to `formData` single-level object, + * with the key that is the `path` to that leaf, e.g. 'paramName[nestedArray][0][arrayProp]' + * @param formData single-level object used as accumulator + * @param data current node of the object + * @param parentKey part of the formData key inherited from the upper level + */ +const buildFormData = (formData: FormData, data: BodyValue, parentKey?: string) => { + if (data && typeof data === 'object') { + const dataObject = data as BodyValueObject + Object.keys(dataObject).forEach((key: string) => { + buildFormData(formData, dataObject[key], parentKey ? `${parentKey}[${key}]` : key) + }) + } else { + if (parentKey) { + formData[parentKey] = data ? data : '' + } + } +} + /** * Transforms an object into form data representation. Does not URL-encode, because it will be done by * swagger-client itself @@ -46,18 +67,6 @@ export const objectToFormData = (object: BodyValueObject): FormData => { if (typeof object !== 'object' || Array.isArray(object)) { return {} } - const buildFormData = (formData: FormData, data: BodyValue, parentKey?: string) => { - if (data && typeof data === 'object') { - const dataObject = data as BodyValueObject - Object.keys(dataObject).forEach((key: string) => { - buildFormData(formData, dataObject[key], parentKey ? `${parentKey}[${key}]` : key) - }) - } else { - if (parentKey) { - formData[parentKey] = data ? data : '' - } - } - } const formData: FormData = {} buildFormData(formData, object) return formData From f2c9ac473af4e5db5aa6873a28ceceaa93b38d14 Mon Sep 17 00:00:00 2001 From: josemigallas Date: Thu, 13 Apr 2023 14:18:01 +0200 Subject: [PATCH 79/85] =?UTF-8?q?=F0=9F=8F=B7=EF=B8=8F=20move=20swagger-cl?= =?UTF-8?q?ient=20types=20to=20d.ts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/ActiveDocs/ThreeScaleApiDocs.ts | 5 ++-- app/javascript/src/Types/SwaggerTypes.ts | 21 --------------- app/javascript/src/Types/swagger.d.ts | 26 ++++++++++++++++++- 3 files changed, 28 insertions(+), 24 deletions(-) diff --git a/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts b/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts index fbb374675b..91a76ab718 100644 --- a/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts +++ b/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts @@ -6,7 +6,8 @@ import { fetchData } from 'utilities/fetchData' import { safeFromJsonString } from 'utilities/json-utils' import { autocompleteRequestInterceptor } from 'ActiveDocs/OAS3Autocomplete' -import type { ApiDocsServices, BackendApiReportBody, BackendApiTransaction, BodyValue, BodyValueObject, FormData, ExecuteData } from 'Types/SwaggerTypes' +import type { ApiDocsServices, BackendApiReportBody, BackendApiTransaction, BodyValue, BodyValueObject, FormData } from 'Types/SwaggerTypes' +import type { ExecuteData } from 'swagger-client/es/execute' import type { SwaggerUIPlugin } from 'swagger-ui' const getApiSpecUrl = (baseUrl: string, specPath: string): string => { @@ -110,7 +111,7 @@ const RequestBodyTransformerPlugin: SwaggerUIPlugin = () => { && req.requestBody) { req.requestBody = transformReportRequestBody(req.requestBody as BackendApiReportBody) } - // eslint-disable-next-line @typescript-eslint/no-unsafe-call + return execute(req) } } diff --git a/app/javascript/src/Types/SwaggerTypes.ts b/app/javascript/src/Types/SwaggerTypes.ts index 025d4494ea..51026c34b0 100644 --- a/app/javascript/src/Types/SwaggerTypes.ts +++ b/app/javascript/src/Types/SwaggerTypes.ts @@ -1,5 +1,4 @@ /* eslint-disable @typescript-eslint/naming-convention */ -import type { Request, Response, SupportedHTTPMethods } from 'swagger-ui' export type AccountData = Record unknown; - method: SupportedHTTPMethods; - operation: unknown; - operationId: string; - parameters: unknown; - pathName: string; - requestBody?: unknown; - requestContentType: string; - requestInterceptor?: ((request: Request) => Promise | Request) | undefined; - responseContentType: string; - responseInterceptor?: ((response: Response) => Promise | Response) | undefined; - scheme: string; - securities: unknown; - server: string; - serverVariables: unknown; - spec: unknown; -} - export interface BackendApiTransaction extends BodyValueObject { app_id?: string; user_key?: string; diff --git a/app/javascript/src/Types/swagger.d.ts b/app/javascript/src/Types/swagger.d.ts index 9d562446fc..94677ce9be 100644 --- a/app/javascript/src/Types/swagger.d.ts +++ b/app/javascript/src/Types/swagger.d.ts @@ -1,3 +1,27 @@ +// There are no official types for swagger-client. These has been inspired by: +// - https://github.com/swagger-api/swagger-js/blob/master/src/execute/index.js declare module 'swagger-client/es/execute' { - export function execute (req: unknown): unknown + import type { Request, Response, SupportedHTTPMethods } from 'swagger-ui' + + export interface ExecuteData { + contextUrl: string; + fetch: (arg: unknown) => unknown; + method: SupportedHTTPMethods; + operation: unknown; + operationId: string; + parameters: unknown; + pathName: string; + requestBody?: unknown; + requestContentType: string; + requestInterceptor?: ((request: Request) => Promise | Request) | undefined; + responseContentType: string; + responseInterceptor?: ((response: Response) => Promise | Response) | undefined; + scheme: string; + securities: unknown; + server: string; + serverVariables: unknown; + spec: unknown; + } + function execute (req: ExecuteData): unknown + export { execute } } From 1f56654606298ac06c1b0e00159a3e7aa74be5e9 Mon Sep 17 00:00:00 2001 From: josemigallas Date: Thu, 13 Apr 2023 14:27:28 +0200 Subject: [PATCH 80/85] =?UTF-8?q?=E2=9C=85=20fixes=20test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ActiveDocs/ThreeScaleApiDocs.spec.ts | 15 +++++++++------ spec/javascripts/__mocks__/swagger-ui.js | 1 + 2 files changed, 10 insertions(+), 6 deletions(-) create mode 100644 spec/javascripts/__mocks__/swagger-ui.js diff --git a/spec/javascripts/ActiveDocs/ThreeScaleApiDocs.spec.ts b/spec/javascripts/ActiveDocs/ThreeScaleApiDocs.spec.ts index 6f638fb412..2038aaa824 100644 --- a/spec/javascripts/ActiveDocs/ThreeScaleApiDocs.spec.ts +++ b/spec/javascripts/ActiveDocs/ThreeScaleApiDocs.spec.ts @@ -1,6 +1,6 @@ import { objectToFormData, transformReportRequestBody } from 'ActiveDocs/ThreeScaleApiDocs' -import type { BackendApiReportBody, BackendApiTransaction, BodyValue } from 'Types/SwaggerTypes' +import type { BackendApiReportBody, BackendApiTransaction, BodyValue, BodyValueObject } from 'Types/SwaggerTypes' const transaction1: BackendApiTransaction = { app_id: 'app-id1', @@ -75,12 +75,15 @@ describe('objectToFormData', () => { }) it('returns an empty object if argument is not a valid object', () => { - expect(objectToFormData('hello')).toEqual({}) - expect(objectToFormData(true)).toEqual({}) - expect(objectToFormData(123)).toEqual({}) - expect(objectToFormData(['q', 'w', 'r'])).toEqual({}) - }) + const invalidObjects = [ + 'hello', + true, + 123, + ['q', 'w', 'r'] + ] as unknown as BodyValueObject[] + invalidObjects.forEach(i => { expect(objectToFormData(i)).toEqual({}) }) + }) }) describe('transformReportRequestBody', () => { diff --git a/spec/javascripts/__mocks__/swagger-ui.js b/spec/javascripts/__mocks__/swagger-ui.js new file mode 100644 index 0000000000..b4bbacb111 --- /dev/null +++ b/spec/javascripts/__mocks__/swagger-ui.js @@ -0,0 +1 @@ +module.exports = jest.fn() From c42058066dfd0f2727c93008cd38a15335c30730 Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Fri, 14 Apr 2023 10:26:49 +0200 Subject: [PATCH 81/85] Upgrade swagger-ui and swagger-client --- doc/dependency_decisions.yml | 6 + package.json | 4 +- yarn.lock | 847 +++++++++++++++++++++++++++++++---- 3 files changed, 763 insertions(+), 94 deletions(-) diff --git a/doc/dependency_decisions.yml b/doc/dependency_decisions.yml index 892657db8f..b68c0e2010 100644 --- a/doc/dependency_decisions.yml +++ b/doc/dependency_decisions.yml @@ -237,3 +237,9 @@ :why: Package is exclusive for OSX, we don't ship it in production. :versions: [] :when: 2023-03-01 14:38:40.169316108 Z +- - :permit + - Python-2.0 + - :who: Daria Mayorova + :why: License approved by Red Hat + :versions: [] + :when: 2023-04-14 08:25:18.115879534 Z diff --git a/package.json b/package.json index 3f8011dba7..916899be70 100644 --- a/package.json +++ b/package.json @@ -106,8 +106,8 @@ "redux-api-middleware": "^3.0.1", "redux-thunk": "^2.3.0", "select2": "^4.0.6-rc.1", - "swagger-ui": "^3.51.1", - "swagger-client": "^3.13.5", + "swagger-client": "^3.17.0", + "swagger-ui": "^3.52.5", "validate.js": "^0.13.1", "virtual-dom": "^2.1.1" } diff --git a/yarn.lock b/yarn.lock index d08a7b5979..fe14352f3c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1340,7 +1340,7 @@ core-js "^2.6.5" regenerator-runtime "^0.13.4" -"@babel/runtime-corejs3@^7.11.2", "@babel/runtime-corejs3@^7.14.7": +"@babel/runtime-corejs3@^7.14.7": version "7.14.7" resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.14.7.tgz#0ef292bbce40ca00f874c9724ef175a12476465c" integrity sha512-Wvzcw4mBYbTagyBVZpAJWI06auSIj033T/yNE0Zn1xcup83MieCddZA7ls3kme17L4NOGBrQ09Q+nKB41RLWBA== @@ -1348,6 +1348,14 @@ core-js-pure "^3.15.0" regenerator-runtime "^0.13.4" +"@babel/runtime-corejs3@^7.20.13", "@babel/runtime-corejs3@^7.20.7": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.21.0.tgz#6e4939d9d9789ff63e2dc58e88f13a3913a24eba" + integrity sha512-TDD4UJzos3JJtM+tHX+w2Uc+KWj7GV+VKKFdMVd2Rx8sdA19hcc3P3AHFYd5LVOw+pYuSd5lICC3gm52B6Rwxw== + dependencies: + core-js-pure "^3.25.1" + regenerator-runtime "^0.13.11" + "@babel/runtime@^7.1.2", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.9.2": version "7.14.6" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.6.tgz#535203bc0892efc7dec60bdc27b2ecf6e409062d" @@ -2175,6 +2183,299 @@ resolved "https://registry.yarnpkg.com/@stripe/stripe-js/-/stripe-js-1.50.0.tgz#1a5040485ee96fecc67b9d58533bb7ea7b23efc9" integrity sha512-7j52eB98l/oJL1ywREs7UJAKEavM1HTtS8LUHt1dso8TJN8kNz561/847Xqbafe0yCReET8WFeIBvMeewug8xQ== +"@swagger-api/apidom-ast@^0.69.0": + version "0.69.0" + resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ast/-/apidom-ast-0.69.0.tgz#5b1ca845c3d237c3785c78c725a3a556129e8989" + integrity sha512-JsRyi1Ir3VeNSSWmIFqgaFOQCIUvCoKcfmOcU/h4Jz1IOkQij1vj3qEFln4J9sByOWHrhA8zD1Cf+LnXkbGVZg== + dependencies: + "@babel/runtime-corejs3" "^7.20.7" + "@types/ramda" "=0.28.23" + ramda "=0.28.0" + ramda-adjunct "=3.4.0" + stampit "=4.3.2" + unraw "=2.0.1" + +"@swagger-api/apidom-core@>=0.69.2 <1.0.0", "@swagger-api/apidom-core@^0.69.2": + version "0.69.2" + resolved "https://registry.yarnpkg.com/@swagger-api/apidom-core/-/apidom-core-0.69.2.tgz#37df0b8f21be1d81d1f7145fed3ba5e464925431" + integrity sha512-av9vS1SbXxGJvCt4QggrIvS8dr3ZfL6jxrNQGr4cq1wFY/n5ruj0RsXix208c3Zp1Kua3QVOUaJvA+7RdT1VJA== + dependencies: + "@babel/runtime-corejs3" "^7.20.7" + "@swagger-api/apidom-ast" "^0.69.0" + "@types/ramda" "=0.28.23" + minim "=0.23.8" + ramda "=0.28.0" + ramda-adjunct "=3.4.0" + short-unique-id "=4.4.4" + stampit "=4.3.2" + +"@swagger-api/apidom-json-pointer@>=0.69.2 <1.0.0", "@swagger-api/apidom-json-pointer@^0.69.2": + version "0.69.2" + resolved "https://registry.yarnpkg.com/@swagger-api/apidom-json-pointer/-/apidom-json-pointer-0.69.2.tgz#b830ba9de425f36ceafc14bd850f56633d303ce0" + integrity sha512-ipu94QNw8ZKWC+pfie5IyIzVImR5N0PANXkUSfFon5L4aMAtggKpZn7aUv/2Cxn51JsCvjZwkXT7PaJ8RddpxA== + dependencies: + "@babel/runtime-corejs3" "^7.20.7" + "@swagger-api/apidom-core" "^0.69.2" + "@types/ramda" "=0.28.23" + ramda "=0.28.0" + ramda-adjunct "=3.4.0" + +"@swagger-api/apidom-ns-api-design-systems@^0.69.2": + version "0.69.2" + resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-api-design-systems/-/apidom-ns-api-design-systems-0.69.2.tgz#4062943a03225de95a91b2f6f09a6f2558f26565" + integrity sha512-JnOPiDvPfNH/6WWVBqBwK0oIHscHECtL1iZDUE9nB4NSbyoV10oulkuhHNAO9BImqtU4rxtWbXyTL1MEuUdHHQ== + dependencies: + "@babel/runtime-corejs3" "^7.20.7" + "@swagger-api/apidom-core" "^0.69.2" + "@swagger-api/apidom-ns-openapi-3-1" "^0.69.2" + "@types/ramda" "=0.28.23" + ramda "=0.28.0" + ramda-adjunct "=3.4.0" + stampit "=4.3.2" + +"@swagger-api/apidom-ns-asyncapi-2@^0.69.2": + version "0.69.2" + resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-asyncapi-2/-/apidom-ns-asyncapi-2-0.69.2.tgz#b4d0fef1dee9c0ccef551b429157e8c737402fc2" + integrity sha512-SOg9P4rM5Aj2jabt4njmFbZTRMX8/vRHgiDL9vE+uz7s6j64B9QBSFF42j17cEVq6ToqQ7jtu40f1D7K62puQA== + dependencies: + "@babel/runtime-corejs3" "^7.20.7" + "@swagger-api/apidom-core" "^0.69.2" + "@swagger-api/apidom-ns-json-schema-draft-7" "^0.69.2" + "@types/ramda" "=0.28.23" + ramda "=0.28.0" + ramda-adjunct "=3.4.0" + stampit "=4.3.2" + +"@swagger-api/apidom-ns-json-schema-draft-4@^0.69.2": + version "0.69.2" + resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-json-schema-draft-4/-/apidom-ns-json-schema-draft-4-0.69.2.tgz#d558c276b83389d4bf20bb3bacd57955c256596b" + integrity sha512-8yB4afGBAX+vN5oNRxZMWWS/2G0Q9VUzlL2AOu0Q70FQkscbjQcsb6QX9LbHFMrwi3MgOgE0ewMncpcwskuoXA== + dependencies: + "@babel/runtime-corejs3" "^7.20.7" + "@swagger-api/apidom-core" "^0.69.2" + "@types/ramda" "=0.28.23" + ramda "=0.28.0" + ramda-adjunct "=3.4.0" + stampit "=4.3.2" + +"@swagger-api/apidom-ns-json-schema-draft-6@^0.69.2": + version "0.69.2" + resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-json-schema-draft-6/-/apidom-ns-json-schema-draft-6-0.69.2.tgz#c86f17e9cbdea97a1d70b4d9f3584465e5e8f2e9" + integrity sha512-RPazXv7L37vrdqHeFy/ZrKVz+vnVOqEFrHFefaq2L5avnzInVTRsTJm+61q0jqnckozz426Gbg5wJgq+Yvpbqg== + dependencies: + "@babel/runtime-corejs3" "^7.20.7" + "@swagger-api/apidom-core" "^0.69.2" + "@swagger-api/apidom-ns-json-schema-draft-4" "^0.69.2" + "@types/ramda" "=0.28.23" + ramda "=0.28.0" + ramda-adjunct "=3.4.0" + stampit "=4.3.2" + +"@swagger-api/apidom-ns-json-schema-draft-7@^0.69.2": + version "0.69.2" + resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-json-schema-draft-7/-/apidom-ns-json-schema-draft-7-0.69.2.tgz#af2661cb3dfec302f3caba07e25437a35b49d0a7" + integrity sha512-pQQE85xjv+UaObQzkhpOPochQ8GhWETAUuzDxHrgKmw20Ca03QAC7RV3tbSnkIbI5cy9wpb4gRM0T5/PzZnBYA== + dependencies: + "@babel/runtime-corejs3" "^7.20.7" + "@swagger-api/apidom-core" "^0.69.2" + "@swagger-api/apidom-ns-json-schema-draft-6" "^0.69.2" + "@types/ramda" "=0.28.23" + ramda "=0.28.0" + ramda-adjunct "=3.4.0" + stampit "=4.3.2" + +"@swagger-api/apidom-ns-openapi-3-0@^0.69.2": + version "0.69.2" + resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-openapi-3-0/-/apidom-ns-openapi-3-0-0.69.2.tgz#97385359da3bbfe5b51eddeba7cf9879fec9132e" + integrity sha512-OroXRC+Q1btrpuQ3+ZbMi9XGYiab3YQMg/Rx1wpszbW5C5IPtaa2/FtMcBGYWR5IIdxi+bAT8itbMBGSCcz/Ew== + dependencies: + "@babel/runtime-corejs3" "^7.20.7" + "@swagger-api/apidom-core" "^0.69.2" + "@swagger-api/apidom-ns-json-schema-draft-4" "^0.69.2" + "@types/ramda" "=0.28.23" + ramda "=0.28.0" + ramda-adjunct "=3.4.0" + stampit "=4.3.2" + +"@swagger-api/apidom-ns-openapi-3-1@>=0.69.2 <1.0.0", "@swagger-api/apidom-ns-openapi-3-1@^0.69.2": + version "0.69.2" + resolved "https://registry.yarnpkg.com/@swagger-api/apidom-ns-openapi-3-1/-/apidom-ns-openapi-3-1-0.69.2.tgz#58abda9ca82af4cfc49d9aa61c5a87629e40cbe9" + integrity sha512-2yyUmdbvkDnZuOGDduvlp4dtLL/8a1PCR+Ajk9+PR4ZTdbMFtZWcr/knGc33Rtr8eXQwd4NPypFHhTLCEHiGwg== + dependencies: + "@babel/runtime-corejs3" "^7.20.7" + "@swagger-api/apidom-core" "^0.69.2" + "@swagger-api/apidom-ns-openapi-3-0" "^0.69.2" + "@types/ramda" "=0.28.23" + ramda "=0.28.0" + ramda-adjunct "=3.4.0" + stampit "=4.3.2" + +"@swagger-api/apidom-parser-adapter-api-design-systems-json@^0.69.2": + version "0.69.2" + resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-api-design-systems-json/-/apidom-parser-adapter-api-design-systems-json-0.69.2.tgz#779c3dd2e36e576513432d1683aa6663b29b9292" + integrity sha512-qVL8JrnsjuD3uS1PTNoBTKd5YXPs2SfxRGyKwcmrUXFS+jJmbyYF04xmCgXkwI6TZYjY6KlNb8vmOt4Xr8FqnA== + dependencies: + "@babel/runtime-corejs3" "^7.20.7" + "@swagger-api/apidom-core" "^0.69.2" + "@swagger-api/apidom-ns-api-design-systems" "^0.69.2" + "@swagger-api/apidom-parser-adapter-json" "^0.69.2" + "@types/ramda" "=0.28.23" + ramda "=0.28.0" + ramda-adjunct "=3.4.0" + +"@swagger-api/apidom-parser-adapter-api-design-systems-yaml@^0.69.2": + version "0.69.2" + resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-api-design-systems-yaml/-/apidom-parser-adapter-api-design-systems-yaml-0.69.2.tgz#0e4a6843330a9871d189e16a43f18e441fcb92b6" + integrity sha512-vMWfQiXcSeo9XSJJ1Yny4BAUw/3RBbBTsPBbNSsnMtpcDhBbodxdko1CeYkGc8sKM0QyeTFPJuiVhb3kGidbcQ== + dependencies: + "@babel/runtime-corejs3" "^7.20.7" + "@swagger-api/apidom-core" "^0.69.2" + "@swagger-api/apidom-ns-api-design-systems" "^0.69.2" + "@swagger-api/apidom-parser-adapter-yaml-1-2" "^0.69.2" + "@types/ramda" "=0.28.23" + ramda "=0.28.0" + ramda-adjunct "=3.4.0" + +"@swagger-api/apidom-parser-adapter-asyncapi-json-2@^0.69.2": + version "0.69.2" + resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-asyncapi-json-2/-/apidom-parser-adapter-asyncapi-json-2-0.69.2.tgz#7d319ae39c10758b63b32b3dafb85a55651e8642" + integrity sha512-/WDVzOcGFxSgBVCiXHVnfiOeYIWtn2RG/Bnn8leUmWRN9oRBiCS3Lh60qWVpvs4BOVntL7SYJnC+buicKD1iJA== + dependencies: + "@babel/runtime-corejs3" "^7.20.7" + "@swagger-api/apidom-core" "^0.69.2" + "@swagger-api/apidom-ns-asyncapi-2" "^0.69.2" + "@swagger-api/apidom-parser-adapter-json" "^0.69.2" + "@types/ramda" "=0.28.23" + ramda "=0.28.0" + ramda-adjunct "=3.4.0" + +"@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@^0.69.2": + version "0.69.2" + resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-asyncapi-yaml-2/-/apidom-parser-adapter-asyncapi-yaml-2-0.69.2.tgz#13ccfc09e36ccb7e9280bafa85a2112936823c81" + integrity sha512-qr5epdayokdYyPIJITyqWmUxdknhgPbXhWpSxdEvM8UHgtyutvvvFenFM5pXD1ft8I/uv9oj2WNZxCH2mpsR1g== + dependencies: + "@babel/runtime-corejs3" "^7.20.7" + "@swagger-api/apidom-core" "^0.69.2" + "@swagger-api/apidom-ns-asyncapi-2" "^0.69.2" + "@swagger-api/apidom-parser-adapter-yaml-1-2" "^0.69.2" + "@types/ramda" "=0.28.23" + ramda "=0.28.0" + ramda-adjunct "=3.4.0" + +"@swagger-api/apidom-parser-adapter-json@^0.69.2": + version "0.69.2" + resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-json/-/apidom-parser-adapter-json-0.69.2.tgz#178d0c84db723ce05f0e159b2731c57dba7c1660" + integrity sha512-mRXrf9bz2lxf9DY2n2WkB3GlQ8MXRqKBwpXLwjDqqve25Wf6X8QNzfz5ykYORQMuyDIgPq/8aMet7yjHRNtcUQ== + dependencies: + "@babel/runtime-corejs3" "^7.20.7" + "@swagger-api/apidom-ast" "^0.69.0" + "@swagger-api/apidom-core" "^0.69.2" + "@types/ramda" "=0.28.23" + ramda "=0.28.0" + ramda-adjunct "=3.4.0" + stampit "=4.3.2" + tree-sitter "=0.20.1" + tree-sitter-json "=0.20.0" + web-tree-sitter "=0.20.7" + +"@swagger-api/apidom-parser-adapter-openapi-json-3-0@^0.69.2": + version "0.69.2" + resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-openapi-json-3-0/-/apidom-parser-adapter-openapi-json-3-0-0.69.2.tgz#33aeb3315bbec6b8460ea8eaf25659d66299e0b5" + integrity sha512-NGOX9NcrAy1RX1f+uA2rLZbgVWte6O4HRVk0eVjuR3NKjJzuXFdfaYJUpT8IGJx2cW6HsQtJU+BpR+LMfZnM9A== + dependencies: + "@babel/runtime-corejs3" "^7.20.7" + "@swagger-api/apidom-core" "^0.69.2" + "@swagger-api/apidom-ns-openapi-3-0" "^0.69.2" + "@swagger-api/apidom-parser-adapter-json" "^0.69.2" + "@types/ramda" "=0.28.23" + ramda "=0.28.0" + ramda-adjunct "=3.4.0" + +"@swagger-api/apidom-parser-adapter-openapi-json-3-1@^0.69.2": + version "0.69.2" + resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-openapi-json-3-1/-/apidom-parser-adapter-openapi-json-3-1-0.69.2.tgz#4b5daff23257cb1523255739c3fe3b376840b33c" + integrity sha512-agafo94Uru42/nnydZ2wEt3ENAB6LWAd9l4d8wZL0ifAkjx8fv8rfH601LpFBQq3iD2DlGm0+UpFZXLfBuuQbQ== + dependencies: + "@babel/runtime-corejs3" "^7.20.7" + "@swagger-api/apidom-core" "^0.69.2" + "@swagger-api/apidom-ns-openapi-3-1" "^0.69.2" + "@swagger-api/apidom-parser-adapter-json" "^0.69.2" + "@types/ramda" "=0.28.23" + ramda "=0.28.0" + ramda-adjunct "=3.4.0" + +"@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@^0.69.2": + version "0.69.2" + resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-openapi-yaml-3-0/-/apidom-parser-adapter-openapi-yaml-3-0-0.69.2.tgz#2b22bcb7ed376c4612a1157420cb039649fd46c4" + integrity sha512-p7Wqk7vCgh9mkXQmk9I/uXri2+1MLCQ14NHfrVowey4ntH4LzBf0NtvxgfCryzzLb2RpdUwIxoh+uf4ibTzyyA== + dependencies: + "@babel/runtime-corejs3" "^7.20.7" + "@swagger-api/apidom-core" "^0.69.2" + "@swagger-api/apidom-ns-openapi-3-0" "^0.69.2" + "@swagger-api/apidom-parser-adapter-yaml-1-2" "^0.69.2" + "@types/ramda" "=0.28.23" + ramda "=0.28.0" + ramda-adjunct "=3.4.0" + +"@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@^0.69.2": + version "0.69.2" + resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-openapi-yaml-3-1/-/apidom-parser-adapter-openapi-yaml-3-1-0.69.2.tgz#9fc15e0e6024d7ffaaa6f77c5b64781e83a37e47" + integrity sha512-Dq914JCnOqmRl6DyxeaP91MlZvIn62hax4RsANeiHIm2ICwwCQLNM9RNUkWq3iimHZpvTz+etM3QkKMakXUnqQ== + dependencies: + "@babel/runtime-corejs3" "^7.20.7" + "@swagger-api/apidom-core" "^0.69.2" + "@swagger-api/apidom-ns-openapi-3-1" "^0.69.2" + "@swagger-api/apidom-parser-adapter-yaml-1-2" "^0.69.2" + "@types/ramda" "=0.28.23" + ramda "=0.28.0" + ramda-adjunct "=3.4.0" + +"@swagger-api/apidom-parser-adapter-yaml-1-2@^0.69.2": + version "0.69.2" + resolved "https://registry.yarnpkg.com/@swagger-api/apidom-parser-adapter-yaml-1-2/-/apidom-parser-adapter-yaml-1-2-0.69.2.tgz#d558b9a54f31508d8ec4e17148822180ad37d13d" + integrity sha512-5sWKGF/phSd+kvOD8xfB2W26QeN2U6LOoLy6eYvf8DP5q4doiLoEcVIunpcVjl04IWVet+VFH9XFGEMlKk7qKQ== + dependencies: + "@babel/runtime-corejs3" "^7.20.7" + "@swagger-api/apidom-ast" "^0.69.0" + "@swagger-api/apidom-core" "^0.69.2" + "@types/ramda" "=0.28.23" + ramda "=0.28.0" + ramda-adjunct "=3.4.0" + stampit "=4.3.2" + tree-sitter "=0.20.1" + tree-sitter-yaml "=0.5.0" + web-tree-sitter "=0.20.7" + +"@swagger-api/apidom-reference@>=0.69.2 <1.0.0": + version "0.69.2" + resolved "https://registry.yarnpkg.com/@swagger-api/apidom-reference/-/apidom-reference-0.69.2.tgz#dfb0986d440fef7543a5a2569d513cc1751d6f45" + integrity sha512-aJsgtCP71t8a+frS+qn1FW9MqjjK60c3AnB2G3cUXGVwzmEPEkvBFF0LGlPmHftVvzzBvI7AsMC7+HZPM/t7rQ== + dependencies: + "@babel/runtime-corejs3" "^7.20.7" + "@swagger-api/apidom-core" "^0.69.2" + "@types/ramda" "=0.28.23" + axios "=1.3.4" + minimatch "=7.4.3" + process "=0.11.10" + ramda "=0.28.0" + ramda-adjunct "=3.4.0" + stampit "=4.3.2" + optionalDependencies: + "@swagger-api/apidom-json-pointer" "^0.69.2" + "@swagger-api/apidom-ns-asyncapi-2" "^0.69.2" + "@swagger-api/apidom-ns-openapi-3-0" "^0.69.2" + "@swagger-api/apidom-ns-openapi-3-1" "^0.69.2" + "@swagger-api/apidom-parser-adapter-api-design-systems-json" "^0.69.2" + "@swagger-api/apidom-parser-adapter-api-design-systems-yaml" "^0.69.2" + "@swagger-api/apidom-parser-adapter-asyncapi-json-2" "^0.69.2" + "@swagger-api/apidom-parser-adapter-asyncapi-yaml-2" "^0.69.2" + "@swagger-api/apidom-parser-adapter-json" "^0.69.2" + "@swagger-api/apidom-parser-adapter-openapi-json-3-0" "^0.69.2" + "@swagger-api/apidom-parser-adapter-openapi-json-3-1" "^0.69.2" + "@swagger-api/apidom-parser-adapter-openapi-yaml-3-0" "^0.69.2" + "@swagger-api/apidom-parser-adapter-openapi-yaml-3-1" "^0.69.2" + "@swagger-api/apidom-parser-adapter-yaml-1-2" "^0.69.2" + "@tootallnate/once@2": version "2.0.0" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" @@ -2642,6 +2943,13 @@ resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== +"@types/ramda@=0.28.23": + version "0.28.23" + resolved "https://registry.yarnpkg.com/@types/ramda/-/ramda-0.28.23.tgz#d04279865a86c330c03c99ac61161d9905f276f5" + integrity sha512-9TYWiwkew+mCMsL7jZ+kkzy6QXn8PL5/SKmBPmjgUlTpkokZWTBr+OhiIUDztpAEbslWyt24NNfEmZUBFmnXig== + dependencies: + ts-toolbelt "^6.15.1" + "@types/react-dom@^18.0.6": version "18.0.6" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.6.tgz#36652900024842b74607a17786b6662dd1e103a1" @@ -3260,11 +3568,19 @@ append-field@^1.0.0: resolved "https://registry.yarnpkg.com/append-field/-/append-field-1.0.0.tgz#1e3440e915f0b1203d23748e78edd7b9b5b43e56" integrity sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY= -aproba@^1.1.1: +aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== +are-we-there-yet@~1.1.2: + version "1.1.7" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" + integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + argparse@^1.0.10, argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -3272,6 +3588,11 @@ argparse@^1.0.10, argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" @@ -3508,6 +3829,15 @@ available-typed-arrays@^1.0.5: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== +axios@=1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.4.tgz#f5760cefd9cfb51fd2481acf88c05f67c4523024" + integrity sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ== + dependencies: + follow-redirects "^1.15.0" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + babel-jest@^29.5.0: version "29.5.0" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.5.0.tgz#3fe3ddb109198e78b1c88f9ebdecd5e4fc2f50a5" @@ -3714,6 +4044,15 @@ bindings@^1.5.0: dependencies: file-uri-to-path "1.0.0" +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + bluebird@^3.5.5: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" @@ -3793,6 +4132,13 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + braces@^2.3.1, braces@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" @@ -3952,11 +4298,6 @@ bser@2.1.1: dependencies: node-int64 "^0.4.0" -btoa@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.2.1.tgz#01a9909f8b2c93f6bf680ba26131eb30f7fa3d73" - integrity sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g== - buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" @@ -3986,13 +4327,13 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -buffer@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== dependencies: base64-js "^1.3.1" - ieee754 "^1.2.1" + ieee754 "^1.1.13" builtin-status-codes@^3.0.0: version "3.0.0" @@ -4540,6 +4881,11 @@ console-browserify@^1.1.0: resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== + constants-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" @@ -4579,16 +4925,11 @@ cookie-signature@1.0.6: resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== -cookie@0.5.0: +cookie@0.5.0, cookie@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== -cookie@~0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" - integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== - cookiejar@^2.1.0: version "2.1.4" resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.4.tgz#ee669c1fea2cf42dc31585469d193fef0d65771b" @@ -4630,6 +4971,11 @@ core-js-pure@^3.15.0: resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.15.2.tgz#c8e0874822705f3385d3197af9348f7c9ae2e3ce" integrity sha512-D42L7RYh1J2grW8ttxoY1+17Y4wXZeKe7uyplAI3FkNQyI5OgBIAjUfFiTPfL1rs0qLpxaabITNbjKl1Sp82tA== +core-js-pure@^3.25.1: + version "3.30.1" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.30.1.tgz#7d93dc89e7d47b8ef05d7e79f507b0e99ea77eec" + integrity sha512-nXBEVpmUnNRhz83cHd9JRQC52cTMcuXAmR56+9dSMpRdpeA4I1PX6yjmhd71Eyc/wXNsdBdUDIj1QTIeZpU5Tg== + core-js@^1.0.0: version "1.2.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" @@ -4737,7 +5083,7 @@ credit-card-type@9.1.0, credit-card-type@^9.1.0: resolved "https://registry.yarnpkg.com/credit-card-type/-/credit-card-type-9.1.0.tgz#54dd96c93b6579623e9c8656e6798fc2b93f5f05" integrity sha512-CpNFuLxiPFxuZqhSKml3M+t0K/484pMAnfYWH14JoD7OZMnmC0Lmo+P7JX9SobqFpRoo7ifA18kOHdxJywYPEA== -cross-fetch@^3.1.4: +cross-fetch@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== @@ -5115,6 +5461,13 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== +decompress-response@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" + integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== + dependencies: + mimic-response "^2.0.0" + dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" @@ -5132,7 +5485,7 @@ deep-equal@^1.0.1: object-keys "^1.1.1" regexp.prototype.flags "^1.2.0" -deep-extend@0.6.0, deep-extend@~0.6.0: +deep-extend@0.6.0, deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== @@ -5147,6 +5500,11 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== +deepmerge@~4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + default-gateway@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" @@ -5208,6 +5566,11 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== + depd@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" @@ -5241,6 +5604,11 @@ detect-file@^1.0.0: resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" integrity sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q== +detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== + detect-newline@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" @@ -5528,7 +5896,7 @@ encoding@^0.1.11: dependencies: iconv-lite "^0.6.2" -end-of-stream@^1.0.0, end-of-stream@^1.1.0: +end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== @@ -6220,6 +6588,11 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" @@ -6551,6 +6924,11 @@ follow-redirects@^1.0.0: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz#d9114ded0a1cfdd334e164e6662ad02bfd91ff43" integrity sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg== +follow-redirects@^1.15.0: + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + for-each@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" @@ -6563,7 +6941,12 @@ for-in@^1.0.2: resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== -form-data@^2.3.1, form-data@^2.3.2: +form-data-encoder@^1.4.3: + version "1.9.0" + resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.9.0.tgz#fd18d316b1ec830d2a8be8ad86c1cf0317320b34" + integrity sha512-rahaRMkN8P8d/tgK/BLPX+WBVM27NbvdXBxqQujBtkDAIFspaRqN7Od7lfdGQA6KAD+f82fYCLBq1ipvcu8qLw== + +form-data@^2.3.1: version "2.5.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== @@ -6586,6 +6969,14 @@ format@^0.2.0: resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs= +formdata-node@^4.0.0: + version "4.4.1" + resolved "https://registry.yarnpkg.com/formdata-node/-/formdata-node-4.4.1.tgz#23f6a5cb9cb55315912cbec4ff7b0f59bbd191e2" + integrity sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ== + dependencies: + node-domexception "1.0.0" + web-streams-polyfill "4.0.0-beta.3" + formidable@^1.2.0: version "1.2.2" resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.2.tgz#bf69aea2972982675f00865342b982986f6b8dd9" @@ -6623,6 +7014,11 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + fs-extra@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -6702,6 +7098,20 @@ functions-have-names@^1.2.2: resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg== + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" @@ -6779,6 +7189,11 @@ get-value@^2.0.3, get-value@^2.0.6: resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== + glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" @@ -6976,6 +7391,11 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== + has-value@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" @@ -7288,7 +7708,7 @@ icss-utils@^4.0.0, icss-utils@^4.1.0, icss-utils@^4.1.1: dependencies: postcss "^7.0.14" -ieee754@^1.1.4, ieee754@^1.2.1: +ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -7412,7 +7832,7 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== -ini@^1.3.4, ini@^1.3.5: +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== @@ -7785,6 +8205,11 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + is-potential-custom-element-name@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" @@ -7920,13 +8345,6 @@ isomorphic-fetch@^2.1.1: node-fetch "^1.0.1" whatwg-fetch ">=0.10.0" -isomorphic-form-data@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isomorphic-form-data/-/isomorphic-form-data-2.0.0.tgz#9f6adf1c4c61ae3aefd8f110ab60fb9b143d6cec" - integrity sha512-TYgVnXWeESVmQSg4GLVbalmQ+B4NPi/H4eWxqALKj63KsUrcu301YDjBqaOw3h+cbak7Na4Xyps3BiptHtxTfg== - dependencies: - form-data "^2.3.2" - istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" @@ -8378,7 +8796,14 @@ js-file-download@^0.4.12: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.13.1, js-yaml@^3.14.0, js-yaml@^3.14.1, js-yaml@^3.3.1: +js-yaml@=4.1.0, js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +js-yaml@^3.13.1, js-yaml@^3.14.1, js-yaml@^3.3.1: version "3.14.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== @@ -8906,7 +9331,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1: +lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -9164,6 +9589,11 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mimic-response@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" + integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== + min-document@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" @@ -9181,6 +9611,13 @@ mini-css-extract-plugin@^0.9.0: schema-utils "^1.0.0" webpack-sources "^1.1.0" +minim@=0.23.8: + version "0.23.8" + resolved "https://registry.yarnpkg.com/minim/-/minim-0.23.8.tgz#a529837afe1654f119dfb68ce7487dd8d4866b9c" + integrity sha512-bjdr2xW1dBCMsMGGsUeqM4eFI60m94+szhxWys+B1ztIt6gWSfeGBdSVCIawezeHYLYn0j6zrsXdQS/JllBzww== + dependencies: + lodash "^4.15.0" + minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -9198,11 +9635,23 @@ minimalistic-crypto-utils@^1.0.1: dependencies: brace-expansion "^1.1.7" +minimatch@=7.4.3: + version "7.4.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.3.tgz#012cbf110a65134bb354ae9773b55256cdb045a2" + integrity sha512-5UB4yYusDtkRPbRiy1cqZ1IpGNcJCGlEMG17RKzPddpyiPKoCdwohbED8g4QXT0ewCt8LTkQXuljsUfQ3FKM4A== + dependencies: + brace-expansion "^2.0.1" + minimist@^1.2.0, minimist@^1.2.6, minimist@~1.2.5: version "1.2.7" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== +minimist@^1.2.3: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + minipass-collect@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" @@ -9268,6 +9717,11 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + mkdirp@^0.5, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.6, mkdirp@~0.5.1: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" @@ -9371,7 +9825,7 @@ multipipe@^1.0.2: duplexer2 "^0.1.2" object-assign "^4.1.0" -nan@^2.12.1: +nan@^2.12.1, nan@^2.14.0, nan@^2.14.1: version "2.17.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== @@ -9398,6 +9852,11 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" +napi-build-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + native-promise-only@^0.8.1: version "0.8.1" resolved "https://registry.yarnpkg.com/native-promise-only/-/native-promise-only-0.8.1.tgz#20a318c30cb45f71fe7adfbf7b21c99c1472ef11" @@ -9460,6 +9919,18 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" +node-abi@^2.21.0: + version "2.30.1" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.30.1.tgz#c437d4b1fe0e285aaf290d45b45d4d7afedac4cf" + integrity sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w== + dependencies: + semver "^5.4.1" + +node-domexception@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + node-fetch@2.6.7: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" @@ -9572,6 +10043,16 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" +npmlog@^4.0.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + nth-check@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" @@ -10873,6 +11354,25 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2 picocolors "^0.2.1" source-map "^0.6.1" +prebuild-install@^6.0.1: + version "6.1.4" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.1.4.tgz#ae3c0142ad611d58570b89af4986088a4937e00f" + integrity sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ== + dependencies: + detect-libc "^1.0.3" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^1.0.1" + node-abi "^2.21.0" + npmlog "^4.0.1" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^3.0.3" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -10897,10 +11397,15 @@ pretty-format@^29.0.0, pretty-format@^29.5.0: ansi-styles "^5.0.0" react-is "^18.0.0" -prismjs@^1.22.0, prismjs@~1.24.0: - version "1.24.1" - resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.24.1.tgz#c4d7895c4d6500289482fa8936d9cdd192684036" - integrity sha512-mNPsedLuk90RVJioIky8ANZEwYm5w9LcvCXrxHlwf4fNVSn8jEipMybMkWUyyF0JhnC+C4VcOVSBuHRKs1L5Ow== +prismjs@^1.27.0: + version "1.29.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.29.0.tgz#f113555a8fa9b57c35e637bba27509dcf802dd12" + integrity sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q== + +prismjs@~1.27.0: + version "1.27.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.27.0.tgz#bb6ee3138a0b438a3653dd4d6ce0cc6510a45057" + integrity sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA== private@^0.1.6, private@~0.1.5: version "0.1.8" @@ -10912,7 +11417,7 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -process@^0.11.10: +process@=0.11.10, process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== @@ -10997,6 +11502,11 @@ proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" @@ -11074,7 +11584,7 @@ q@^1.1.2: resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== -qs@6.11.0, qs@^6.0.3, qs@^6.5.1, qs@^6.9.4: +qs@6.11.0, qs@^6.0.3, qs@^6.5.1: version "6.11.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== @@ -11086,6 +11596,13 @@ qs@6.5.1: resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" integrity sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A== +qs@^6.10.2: + version "6.11.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.1.tgz#6c29dff97f0c0060765911ba65cbc9764186109f" + integrity sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ== + dependencies: + side-channel "^1.0.4" + query-string@^4.1.0: version "4.3.4" resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" @@ -11094,11 +11611,6 @@ query-string@^4.1.0: object-assign "^4.1.0" strict-uri-encode "^1.0.0" -querystring-browser@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/querystring-browser/-/querystring-browser-1.0.4.tgz#f2e35881840a819bc7b1bf597faf0979e6622dc6" - integrity sha1-8uNYgYQKgZvHsb9Zf68JeeZiLcY= - querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -11131,6 +11643,16 @@ railroad-diagrams@^1.0.0: resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" integrity sha1-635iZ1SN3t+4mcG5Dlc3RVnN234= +ramda-adjunct@=3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/ramda-adjunct/-/ramda-adjunct-3.4.0.tgz#3b07f4d879406b8cbb5415b165bea48d2fe0ab06" + integrity sha512-qKRgqwZzJUZmPJfGK8/uLVxQXkiftKhW6FW9NUCUlQrzsBUZBvFAZUxwH7nTRwDMg+ChRU69rVVuS/4EUgtuIg== + +ramda@=0.28.0: + version "0.28.0" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.28.0.tgz#acd785690100337e8b063cab3470019be427cc97" + integrity sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA== + randexp@0.4.6: version "0.4.6" resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3" @@ -11179,6 +11701,16 @@ raw-body@2.5.1: iconv-lite "0.4.24" unpipe "1.0.0" +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + react-copy-to-clipboard@5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.3.tgz#2a0623b1115a1d8c84144e9434d3342b5af41ab4" @@ -11325,16 +11857,16 @@ react-sortable-hoc@^1.6.1: invariant "^2.2.4" prop-types "^15.5.7" -react-syntax-highlighter@^15.4.3: - version "15.4.3" - resolved "https://registry.yarnpkg.com/react-syntax-highlighter/-/react-syntax-highlighter-15.4.3.tgz#fffe3286677ac470b963b364916d16374996f3a6" - integrity sha512-TnhGgZKXr5o8a63uYdRTzeb8ijJOgRGe0qjrE0eK/gajtdyqnSO6LqB3vW16hHB0cFierYSoy/AOJw8z1Dui8g== +react-syntax-highlighter@^15.4.4: + version "15.5.0" + resolved "https://registry.yarnpkg.com/react-syntax-highlighter/-/react-syntax-highlighter-15.5.0.tgz#4b3eccc2325fa2ec8eff1e2d6c18fa4a9e07ab20" + integrity sha512-+zq2myprEnQmH5yw6Gqc8lD55QHnpKaU8TOcFeC/Lg/MQSs8UknEA0JC4nTZGFAXC2J2Hyj/ijJ7NlabyPi2gg== dependencies: "@babel/runtime" "^7.3.1" highlight.js "^10.4.1" lowlight "^1.17.0" - prismjs "^1.22.0" - refractor "^3.2.0" + prismjs "^1.27.0" + refractor "^3.6.0" react-test-renderer@^16.0.0-0: version "16.14.0" @@ -11396,6 +11928,19 @@ readable-stream@1.1.x: isarray "0.0.1" string_decoder "~0.10.x" +readable-stream@^2.0.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" @@ -11405,6 +11950,15 @@ readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.6.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" +readable-stream@^3.4.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readable-stream@~1.0.17, readable-stream@~1.0.27-1: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" @@ -11495,14 +12049,14 @@ reflect.ownkeys@^0.2.0: resolved "https://registry.yarnpkg.com/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz#749aceec7f3fdf8b63f927a04809e90c5c0b3460" integrity sha1-dJrO7H8/34tj+SegSAnpDFwLNGA= -refractor@^3.2.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/refractor/-/refractor-3.4.0.tgz#62bd274b06c942041f390c371b676eb67cb0a678" - integrity sha512-dBeD02lC5eytm9Gld2Mx0cMcnR+zhSnsTfPpWqFaMgUMJfC9A6bcN3Br/NaXrnBJcuxnLFR90k1jrkaSyV8umg== +refractor@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/refractor/-/refractor-3.6.0.tgz#ac318f5a0715ead790fcfb0c71f4dd83d977935a" + integrity sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA== dependencies: hastscript "^6.0.0" parse-entities "^2.0.0" - prismjs "~1.24.0" + prismjs "~1.27.0" regenerate-unicode-properties@^10.1.0: version "10.1.0" @@ -11937,7 +12491,7 @@ semver@7.x, semver@^7.2.1: dependencies: lru-cache "^6.0.0" -semver@^5.5.0, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: +semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -12024,7 +12578,7 @@ serve-static@1.15.0, serve-static@^1.10.0: parseurl "~1.3.3" send "0.18.0" -set-blocking@^2.0.0: +set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== @@ -12098,6 +12652,11 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +short-unique-id@=4.4.4: + version "4.4.4" + resolved "https://registry.yarnpkg.com/short-unique-id/-/short-unique-id-4.4.4.tgz#a45df68303bbd2dbb5785ed7708e891809c9cb7a" + integrity sha512-oLF1NCmtbiTWl2SqdXZQbo5KM1b7axdp0RgQLq8qCBBLoq+o3A5wmLrNM6bZIh54/a8BJ3l69kTXuxwZ+XCYuw== + shortid@^2.2.14: version "2.2.16" resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.16.tgz#b742b8f0cb96406fd391c76bfc18a67a57fe5608" @@ -12126,6 +12685,20 @@ signal-exit@^3.0.0, signal-exit@^3.0.3, signal-exit@^3.0.7: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.1.tgz#cc7ba77cfbe761036fbfce3d021af25fc5584d55" + integrity sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA== + dependencies: + decompress-response "^4.2.0" + once "^1.3.1" + simple-concat "^1.0.0" + simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" @@ -12344,6 +12917,11 @@ stack-utils@^2.0.3: dependencies: escape-string-regexp "^2.0.0" +stampit@=4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/stampit/-/stampit-4.3.2.tgz#cfd3f607dd628a161ce6305621597994b4d56573" + integrity sha512-pE2org1+ZWQBnIxRPrBM2gVupkuDD0TTNIo1H6GdT/vO82NXli2z8lRE8cu/nBIHrcOCXFBAHpb9ZldrB2/qOA== + static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" @@ -12433,6 +13011,15 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string-width@^2.0.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" @@ -12450,15 +13037,6 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - string.prototype.matchall@^4.0.7: version "4.0.7" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz#8e6ecb0d8a1fb1fda470d81acecb2dba057a481d" @@ -12572,6 +13150,11 @@ strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + style-loader@^0.23.1: version "0.23.1" resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925" @@ -12675,23 +13258,26 @@ svgo@^1.0.0: unquote "~1.1.1" util.promisify "~1.0.0" -swagger-client@^3.13.5: - version "3.13.7" - resolved "https://registry.yarnpkg.com/swagger-client/-/swagger-client-3.13.7.tgz#ba69ce18f0a0b79391bbfd6c35cb7a4fbd1c2cc9" - integrity sha512-mDN3exRoEB+oMdhJHNGqysmspS4wIITSrnVXcLMlrBNhgvt9HHnznUmICzJoiwycCu68GOMKjfitjXbgi/lA4Q== - dependencies: - "@babel/runtime-corejs3" "^7.11.2" - btoa "^1.2.1" - buffer "^6.0.3" - cookie "~0.4.1" - cross-fetch "^3.1.4" - deep-extend "~0.6.0" +swagger-client@^3.17.0: + version "3.19.6" + resolved "https://registry.yarnpkg.com/swagger-client/-/swagger-client-3.19.6.tgz#ca27831b57669194540afa4bf9488d5fe5b0f519" + integrity sha512-fd0XaoKz3lgs6viKkqK+o8QyrOOZULD4tLcUd8wEfsVBjJIAks2Qa1AhGUr87mfCWZw0Z9OXItWF9T477rRXzw== + dependencies: + "@babel/runtime-corejs3" "^7.20.13" + "@swagger-api/apidom-core" ">=0.69.2 <1.0.0" + "@swagger-api/apidom-json-pointer" ">=0.69.2 <1.0.0" + "@swagger-api/apidom-ns-openapi-3-1" ">=0.69.2 <1.0.0" + "@swagger-api/apidom-reference" ">=0.69.2 <1.0.0" + cookie "~0.5.0" + cross-fetch "^3.1.5" + deepmerge "~4.3.0" fast-json-patch "^3.0.0-1" - isomorphic-form-data "~2.0.0" - js-yaml "^3.14.0" - lodash "^4.17.19" - qs "^6.9.4" - querystring-browser "^1.0.4" + form-data-encoder "^1.4.3" + formdata-node "^4.0.0" + is-plain-object "^5.0.0" + js-yaml "^4.1.0" + lodash "^4.17.21" + qs "^6.10.2" traverse "~0.6.6" url "~0.11.0" @@ -12725,10 +13311,10 @@ swagger-tools@^0.10.4: traverse "^0.6.6" z-schema "^3.15.4" -swagger-ui@^3.51.1: - version "3.51.1" - resolved "https://registry.yarnpkg.com/swagger-ui/-/swagger-ui-3.51.1.tgz#572bb255031a46d6982b471385ee7a063b9f075c" - integrity sha512-iLYCozRC5Jj0DQNJ0C46gYDTnv+TfNEnXeNvGIR0qIvyfosmqY11XzVdeibP1fbh/hFTq0GgXCbRm/ctfpqdHw== +swagger-ui@^3.52.5: + version "3.52.5" + resolved "https://registry.yarnpkg.com/swagger-ui/-/swagger-ui-3.52.5.tgz#bffb736e737ad8783d2d8b06d08224ba611d3507" + integrity sha512-GvxNYvSaFkU9OoG4BQxjmengl5fA+A5wAuG4rtAbBLWlrLkBiQiHXKQPzyDMUUa3/8nielKpEK1NunnxwpY9Mg== dependencies: "@babel/runtime-corejs3" "^7.14.7" "@braintree/sanitize-url" "^5.0.2" @@ -12742,7 +13328,7 @@ swagger-ui@^3.51.1: ieee754 "^1.2.1" immutable "^3.x.x" js-file-download "^0.4.12" - js-yaml "^3.13.1" + js-yaml "=4.1.0" lodash "^4.17.21" memoizee "^0.4.15" prop-types "^15.7.2" @@ -12756,15 +13342,15 @@ swagger-ui@^3.51.1: react-inspector "^2.3.0" react-motion "^0.5.2" react-redux "=4.4.10" - react-syntax-highlighter "^15.4.3" + react-syntax-highlighter "^15.4.4" redux "=3.7.2" redux-immutable "3.1.0" remarkable "^2.0.1" reselect "^4.0.0" serialize-error "^8.1.0" sha.js "^2.4.11" - swagger-client "^3.13.5" - url-parse "^1.5.1" + swagger-client "^3.17.0" + url-parse "^1.5.2" xml-but-prettier "^1.0.1" zenscroll "^4.0.2" @@ -12804,6 +13390,27 @@ tapable@^1.0.0, tapable@^1.1.3: resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== +tar-fs@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-stream@^2.1.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + tar@^6.0.2: version "6.1.13" resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.13.tgz#46e22529000f612180601a6fe0680e7da508847b" @@ -13023,6 +13630,28 @@ traverse@^0.6.6, traverse@~0.6.6: resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= +tree-sitter-json@=0.20.0: + version "0.20.0" + resolved "https://registry.yarnpkg.com/tree-sitter-json/-/tree-sitter-json-0.20.0.tgz#e17bb4917e8d5fe9f2f0d5eaec603e2d3552b07c" + integrity sha512-PteOLH+Tx6Bz4ZA/d40/DbkiSXXRM/gKahhHI8hQ1lWNfFvdknnz9k3Mz84ol5srRyLboJ8wp8GSkhZ6ht9EGQ== + dependencies: + nan "^2.14.1" + +tree-sitter-yaml@=0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/tree-sitter-yaml/-/tree-sitter-yaml-0.5.0.tgz#c617ba72837399d8105ec10cdb4c360e1ed76076" + integrity sha512-POJ4ZNXXSWIG/W4Rjuyg36MkUD4d769YRUGKRqN+sVaj/VCo6Dh6Pkssn1Rtewd5kybx+jT1BWMyWN0CijXnMA== + dependencies: + nan "^2.14.0" + +tree-sitter@=0.20.1: + version "0.20.1" + resolved "https://registry.yarnpkg.com/tree-sitter/-/tree-sitter-0.20.1.tgz#1ebed9e22f4d488d74f8f5ce10bfc1953daf37bc" + integrity sha512-Cmb8V0ocamHbgWMVhZIa+78k/7r8VCQ6+ePG8eYEAO7AccwWi06Ct4ATNiI94KwhIkRl0+OwZ42/5nk3GnEMpQ== + dependencies: + nan "^2.14.0" + prebuild-install "^6.0.1" + ts-jest@^29.0.5: version "29.0.5" resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.0.5.tgz#c5557dcec8fe434fcb8b70c3e21c6b143bfce066" @@ -13053,6 +13682,11 @@ ts-pnp@^1.1.6: resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== +ts-toolbelt@^6.15.1: + version "6.15.5" + resolved "https://registry.yarnpkg.com/ts-toolbelt/-/ts-toolbelt-6.15.5.tgz#cb3b43ed725cb63644782c64fbcad7d8f28c0a83" + integrity sha512-FZIXf1ksVyLcfr7M317jbB67XFJhOO1YqdTcuGaq9q5jLUoTikukZ+98TPjKiP2jC5CgmYdWWYs0s2nLSU0/1A== + tsconfig-paths@^3.14.1: version "3.14.1" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" @@ -13095,6 +13729,13 @@ tty-browserify@0.0.0: resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" integrity sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw== +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -13258,6 +13899,11 @@ unquote@~1.1.1: resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" integrity sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg== +unraw@=2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unraw/-/unraw-2.0.1.tgz#7b51dcdfb1e43d59d5e52cdb44d349d029edbaba" + integrity sha512-tdOvLfRzHolwYcHS6HIX860MkK9LQ4+oLuNwFYL7bpgTEO64PZrcQxkisgwJYCfF8sKiWLwwu1c83DvMkbefIQ== + unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" @@ -13296,7 +13942,7 @@ urix@^0.1.0: resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== -url-parse@^1.5.1, url-parse@^1.5.10, url-parse@^1.5.3: +url-parse@^1.5.10, url-parse@^1.5.2, url-parse@^1.5.3: version "1.5.10" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== @@ -13460,6 +14106,16 @@ wbuf@^1.1.0, wbuf@^1.7.3: dependencies: minimalistic-assert "^1.0.0" +web-streams-polyfill@4.0.0-beta.3: + version "4.0.0-beta.3" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz#2898486b74f5156095e473efe989dcf185047a38" + integrity sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug== + +web-tree-sitter@=0.20.7: + version "0.20.7" + resolved "https://registry.yarnpkg.com/web-tree-sitter/-/web-tree-sitter-0.20.7.tgz#b0ddb78e8244221a3100f432c7e162516cd9cd09" + integrity sha512-flC9JJmTII9uAeeYpWF8hxDJ7bfY+leldQryetll8Nv4WgI+MXc6h7TiyAZASWl9uC9TvmfdgOjZn1DAQecb3A== + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" @@ -13684,6 +14340,13 @@ which@^2.0.1: dependencies: isexe "^2.0.0" +wide-align@^1.1.0: + version "1.1.5" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" From 0700720ff1a5def7d4f2e6cbb7139e2d98524210 Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Wed, 19 Apr 2023 16:13:33 +0200 Subject: [PATCH 82/85] Improve documentation to better guide customers and link to the schemas --- doc/active_docs/account_management_api.json | 11 +++++++- doc/active_docs/service_management_api.json | 26 +++++++++---------- .../service_management_api_on_premises.json | 9 ++++--- 3 files changed, 27 insertions(+), 19 deletions(-) diff --git a/doc/active_docs/account_management_api.json b/doc/active_docs/account_management_api.json index 3ab55fac68..4a40e90163 100644 --- a/doc/active_docs/account_management_api.json +++ b/doc/active_docs/account_management_api.json @@ -19,8 +19,8 @@ "Accounts" ], "requestBody": { - "description": "Create Account", "required": true, + "description": "Custom fields can be specified in the request by adding `&custom-field=value` to the body parameters. See SignupExpressRequest schema for the request body definition.", "content": { "application/x-www-form-urlencoded": { "schema": { @@ -148,6 +148,7 @@ ], "requestBody": { "required": true, + "description": "Custom fields can be specified in the request by adding `&custom-field=value` to the body parameters. See AccountUpdateRequest schema for the request body definition.", "content": { "application/x-www-form-urlencoded": { "schema": { @@ -320,6 +321,7 @@ ], "requestBody": { "required": true, + "description": "Custom fields can be specified in the request by adding `&custom-field=value` to the body parameters. See ApplicationCreateRequest schema for the request body definition.", "content": { "application/x-www-form-urlencoded": { "schema": { @@ -411,6 +413,7 @@ ], "requestBody": { "required": true, + "description": "Custom fields can be specified in the request by adding `&custom-field=value` to the body parameters. See ApplicationUpdateRequest schema for the request body definition.", "content": { "application/x-www-form-urlencoded": { "schema": { @@ -1711,6 +1714,7 @@ ], "requestBody": { "required": true, + "description": "Custom fields can be specified in the request by adding `&custom-field=value` to the body parameters. See UserCreateRequest schema for the request body definition.", "content": { "application/x-www-form-urlencoded": { "schema": { @@ -1802,6 +1806,7 @@ ], "requestBody": { "required": true, + "description": "Custom fields can be specified in the request by adding `&custom-field=value` to the body parameters. See UserUpdateRequest schema for the request body definition.", "content": { "application/x-www-form-urlencoded": { "schema": { @@ -2197,6 +2202,7 @@ ], "requestBody": { "required": true, + "description": "Custom fields can be specified in the request by adding `&custom-field=value` to the body parameters. See UserCreateRequest schema for the request body definition.", "content": { "application/x-www-form-urlencoded": { "schema": { @@ -2268,6 +2274,7 @@ ], "requestBody": { "required": true, + "description": "Custom fields can be specified in the request by adding `&custom-field=value` to the body parameters. See UserUpdateRequest schema for the request body definition.", "content": { "application/x-www-form-urlencoded": { "schema": { @@ -7270,6 +7277,7 @@ ], "requestBody": { "required": true, + "description": "Custom fields can be specified in the request by adding `&custom-field=value` to the body parameters. See ServiceCreateRequest schema for the request body definition.", "content": { "application/x-www-form-urlencoded": { "schema": { @@ -7341,6 +7349,7 @@ ], "requestBody": { "required": true, + "description": "Custom fields can be specified in the request by adding `&custom-field=value` to the body parameters. See ServiceUpdateRequest schema for the request body definition.", "content": { "application/x-www-form-urlencoded": { "schema": { diff --git a/doc/active_docs/service_management_api.json b/doc/active_docs/service_management_api.json index c9e96ed6fb..5968a6a7f5 100644 --- a/doc/active_docs/service_management_api.json +++ b/doc/active_docs/service_management_api.json @@ -80,7 +80,7 @@ { "name": "usage", "in": "query", - "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.", + "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.\n\nThe usage object (see Usage schema for definition) may contain multiple fields, where the keys are metrics' system names, and the values are the reported usage.", "schema": { "$ref": "#/components/schemas/Usage" }, @@ -165,7 +165,7 @@ { "name": "usage", "in": "query", - "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", + "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.\n\nThe usage object (see Usage schema for definition) may contain multiple fields, where the keys are metrics' system names, and the values are the reported usage.", "schema": { "$ref": "#/components/schemas/Usage" }, @@ -177,7 +177,13 @@ "in": "query", "description": "Request Log allows to log status codes of your API back to 3scale to maintain a log of the latest activity on your API. Request Logs are optional and not available in all 3scale plans.", "schema": { - "$ref": "#/components/schemas/Log" + "type": "object", + "properties": { + "code": { + "type": "string", + "example": 200 + } + } }, "style": "deepObject", "explode": true @@ -249,7 +255,7 @@ { "name": "usage", "in": "query", - "description": "Predicted usage. Actual usage will need to be reported with a report or an authrep call.", + "description": "Predicted usage. Actual usage will need to be reported with a report or an authrep call.\n\nThe usage object (see Usage schema for definition) may contain multiple fields, where the keys are metrics' system names, and the values are the reported usage.", "schema": { "$ref": "#/components/schemas/Usage" }, @@ -339,7 +345,7 @@ { "name": "usage", "in": "query", - "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", + "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.\n\nThe usage object (see Usage schema for definition) may contain multiple fields, where the keys are metrics' system names, and the values are the reported usage.", "schema": { "$ref": "#/components/schemas/Usage" }, @@ -449,6 +455,7 @@ }, "Transactions": { "type": "array", + "description": "Array of transaction details (see Transaction definition). All transactions must include either `user_key` or `app_id` (the same for all transactions), depending on the API's authentication pattern. Transactions may optionally include the `timestamp` field.", "items": { "$ref": "#/components/schemas/Transaction" } @@ -482,15 +489,6 @@ "hits": 1 } } - }, - "Log": { - "type": "object", - "properties": { - "code": { - "type": "string", - "example": 200 - } - } } } } diff --git a/doc/active_docs/service_management_api_on_premises.json b/doc/active_docs/service_management_api_on_premises.json index 5dea62c438..a65c75351b 100644 --- a/doc/active_docs/service_management_api_on_premises.json +++ b/doc/active_docs/service_management_api_on_premises.json @@ -80,7 +80,7 @@ { "name": "usage", "in": "query", - "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.", + "description": "Predicted Usage. Actual usage will need to be reported with a report or an authrep.\n\nThe usage object (see Usage schema for definition) may contain multiple fields, where the keys are metrics' system names, and the values are the reported usage.", "schema": { "$ref": "#/components/schemas/Usage" }, @@ -165,7 +165,7 @@ { "name": "usage", "in": "query", - "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", + "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.\n\nThe usage object (see Usage schema for definition) may contain multiple fields, where the keys are metrics' system names, and the values are the reported usage.", "schema": { "$ref": "#/components/schemas/Usage" }, @@ -239,7 +239,7 @@ { "name": "usage", "in": "query", - "description": "Predicted usage. Actual usage will need to be reported with a report or an authrep call.", + "description": "Predicted usage. Actual usage will need to be reported with a report or an authrep call.\n\nThe usage object (see Usage schema for definition) may contain multiple fields, where the keys are metrics' system names, and the values are the reported usage.", "schema": { "$ref": "#/components/schemas/Usage" }, @@ -329,7 +329,7 @@ { "name": "usage", "in": "query", - "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.", + "description": "Usage will increment the metrics with the values passed. The value can be only a positive integer (e.g. 1, 50). Reporting usage[hits]=1 will increment the hits counter by +1.\n\nThe usage object (see Usage schema for definition) may contain multiple fields, where the keys are metrics' system names, and the values are the reported usage.", "schema": { "$ref": "#/components/schemas/Usage" }, @@ -429,6 +429,7 @@ }, "Transactions": { "type": "array", + "description": "Array of transaction details (see Transaction definition). All transactions must include either `user_key` or `app_id` (the same for all transactions), depending on the API's authentication pattern. Transactions may optionally include the `timestamp` field.", "items": { "$ref": "#/components/schemas/Transaction" } From e6a77555d0da71469c99ec97f58b16a92c3f80d2 Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Thu, 20 Apr 2023 11:37:53 +0200 Subject: [PATCH 83/85] Get rid of multiple account_data calls for 3scale docs --- app/javascript/packs/active_docs.ts | 17 ++++++++++++----- app/javascript/packs/provider_active_docs.ts | 13 +++++++++---- app/javascript/packs/service_active_docs.ts | 16 +++++++++++++--- .../src/ActiveDocs/OAS3Autocomplete.ts | 17 +++++++---------- .../src/ActiveDocs/ThreeScaleApiDocs.ts | 9 ++++++--- app/javascript/src/Types/SwaggerTypes.ts | 5 +++++ 6 files changed, 52 insertions(+), 25 deletions(-) diff --git a/app/javascript/packs/active_docs.ts b/app/javascript/packs/active_docs.ts index 4489050417..3991c5e693 100644 --- a/app/javascript/packs/active_docs.ts +++ b/app/javascript/packs/active_docs.ts @@ -3,16 +3,23 @@ import SwaggerUI from 'swagger-ui' import 'swagger-ui/dist/swagger-ui.css' import { autocompleteRequestInterceptor } from 'ActiveDocs/OAS3Autocomplete' +import { fetchData } from 'utilities/fetchData' + +import type { AccountDataResponse } from 'Types/SwaggerTypes' import 'ActiveDocs/swagger-ui-3-patch.scss' const accountDataUrl = '/api_docs/account_data.json' window.SwaggerUI = (args: SwaggerUI.SwaggerUIOptions, serviceEndpoint: string) => { - const requestInterceptor = (request: SwaggerUI.Request) => autocompleteRequestInterceptor(request, accountDataUrl, serviceEndpoint) + fetchData(accountDataUrl) + .then(accountData => { + const requestInterceptor = (request: SwaggerUI.Request) => autocompleteRequestInterceptor(request, accountData, serviceEndpoint) - SwaggerUI({ - ...args, - requestInterceptor - } as SwaggerUI.SwaggerUIOptions) + return SwaggerUI({ + ...args, + requestInterceptor + } as SwaggerUI.SwaggerUIOptions) + }) + .catch(error => { console.error(error) }) } diff --git a/app/javascript/packs/provider_active_docs.ts b/app/javascript/packs/provider_active_docs.ts index aa21c28f11..1037f795ca 100644 --- a/app/javascript/packs/provider_active_docs.ts +++ b/app/javascript/packs/provider_active_docs.ts @@ -1,19 +1,24 @@ // We can define the 3scale plugins here and export the modified bundle import 'swagger-ui/dist/swagger-ui.css' -import { renderApiDocs } from 'ActiveDocs/ThreeScaleApiDocs' +import { renderSwaggerUI } from 'ActiveDocs/ThreeScaleApiDocs' import 'ActiveDocs/swagger-ui-3-provider-patch.scss' -document.addEventListener('DOMContentLoaded', () => { +const renderActiveDocs = async () => { const containerId = 'api-containers' const container = document.getElementById(containerId) if (!container) { - throw new Error('The target ID was not found: ' + containerId) + console.error(`The target element with ID ${containerId} was not found`) + return } const { baseUrl = '', apiDocsPath = '', apiDocsAccountDataPath = '' } = container.dataset - void renderApiDocs(container, apiDocsPath, baseUrl, apiDocsAccountDataPath) + await renderSwaggerUI(container, apiDocsPath, baseUrl, apiDocsAccountDataPath) +} + +document.addEventListener('DOMContentLoaded', () => { + renderActiveDocs().catch(error => { console.error(error) }) }) diff --git a/app/javascript/packs/service_active_docs.ts b/app/javascript/packs/service_active_docs.ts index 01d4001cb2..a674fd21a7 100644 --- a/app/javascript/packs/service_active_docs.ts +++ b/app/javascript/packs/service_active_docs.ts @@ -3,20 +3,26 @@ import 'swagger-ui/dist/swagger-ui.css' import { autocompleteRequestInterceptor } from 'ActiveDocs/OAS3Autocomplete' +import type { AccountDataResponse } from 'Types/SwaggerTypes' + import 'ActiveDocs/swagger-ui-3-provider-patch.scss' +import { fetchData } from '../src/utilities/fetchData' -document.addEventListener('DOMContentLoaded', () => { +const renderActiveDocs = async () => { const containerId = 'swagger-ui-container' const DATA_URL = 'p/admin/api_docs/account_data.json' const container = document.getElementById(containerId) if (!container) { - throw new Error('The target ID was not found: ' + containerId) + console.error(`Element with ID ${containerId} not found`) + return } const { url = '', baseUrl = '', serviceEndpoint = '' } = container.dataset const accountDataUrl = `${baseUrl}${DATA_URL}` - const requestInterceptor: SwaggerUI.SwaggerUIOptions['requestInterceptor'] = (request) => autocompleteRequestInterceptor(request, accountDataUrl, serviceEndpoint) + const accountData: AccountDataResponse = await fetchData(accountDataUrl) + + const requestInterceptor: SwaggerUI.SwaggerUIOptions['requestInterceptor'] = (request) => autocompleteRequestInterceptor(request, accountData, serviceEndpoint) SwaggerUI({ url, @@ -24,4 +30,8 @@ document.addEventListener('DOMContentLoaded', () => { dom_id: `#${containerId}`, requestInterceptor }) +} + +document.addEventListener('DOMContentLoaded', () => { + renderActiveDocs().catch(error => { console.error(error) }) }) diff --git a/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts b/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts index 1733be0f7f..7662d4b835 100644 --- a/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts +++ b/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts @@ -11,10 +11,8 @@ /* eslint-disable @typescript-eslint/naming-convention */ /* TODO: this module needs to be properly typed !!! */ -import { fetchData } from 'utilities/fetchData' - import type { Request as SwaggerUIRequest, Response as SwaggerUIResponse } from 'swagger-ui' -import type { AccountData } from 'Types/SwaggerTypes' +import type { AccountData, AccountDataResponse } from 'Types/SwaggerTypes' const X_DATA_ATTRIBUTE = 'x-data-threescale-name' @@ -114,14 +112,13 @@ export interface Response extends SwaggerUIResponse { text: string; } -export const autocompleteOAS3 = async (response: SwaggerUIResponse, accountDataUrl: string, serviceEndpoint: string): Promise => { +export const autocompleteOAS3 = (response: SwaggerUIResponse, accountData: AccountDataResponse, serviceEndpoint: string): Response => { const bodyWithServer = injectServerToResponseBody(response.body, serviceEndpoint) - const data = await fetchData<{ results: AccountData }>(accountDataUrl) let body = undefined try { - body = data.results - ? injectAutocompleteToResponseBody(bodyWithServer, data.results) + body = accountData.results + ? injectAutocompleteToResponseBody(bodyWithServer, accountData.results) : bodyWithServer } catch (error: unknown) { console.error(error) @@ -141,12 +138,12 @@ export const autocompleteOAS3 = async (response: SwaggerUIResponse, accountDataU * transformations (inject servers list and autocomplete data) to the response * keep the responses to the actual API calls (made through 'Try it out') untouched * @param request request made through Swagger UI - * @param accountDataUrl URL of the data for autocompletion + * @param accountData data for autocompletion * @param serviceEndpoint Public Base URL of the gateway, that will replace the URL in the "servers" object */ -export const autocompleteRequestInterceptor = (request: SwaggerUIRequest, accountDataUrl: string, serviceEndpoint: string): Promise | SwaggerUIRequest => { +export const autocompleteRequestInterceptor = (request: SwaggerUIRequest, accountData: AccountDataResponse, serviceEndpoint: string): Promise | SwaggerUIRequest => { if (request.loadSpec) { - request.responseInterceptor = (response: SwaggerUIResponse) => autocompleteOAS3(response, accountDataUrl, serviceEndpoint) + request.responseInterceptor = (response: SwaggerUIResponse) => autocompleteOAS3(response, accountData, serviceEndpoint) } return request } diff --git a/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts b/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts index 91a76ab718..5a474ccc57 100644 --- a/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts +++ b/app/javascript/src/ActiveDocs/ThreeScaleApiDocs.ts @@ -6,7 +6,7 @@ import { fetchData } from 'utilities/fetchData' import { safeFromJsonString } from 'utilities/json-utils' import { autocompleteRequestInterceptor } from 'ActiveDocs/OAS3Autocomplete' -import type { ApiDocsServices, BackendApiReportBody, BackendApiTransaction, BodyValue, BodyValueObject, FormData } from 'Types/SwaggerTypes' +import type { AccountDataResponse, ApiDocsServices, BackendApiReportBody, BackendApiTransaction, BodyValue, BodyValueObject, FormData } from 'Types/SwaggerTypes' import type { ExecuteData } from 'swagger-client/es/execute' import type { SwaggerUIPlugin } from 'swagger-ui' @@ -118,8 +118,11 @@ const RequestBodyTransformerPlugin: SwaggerUIPlugin = () => { } } -export const renderApiDocs = async (container: HTMLElement, apiDocsPath: string, baseUrl: string, apiDocsAccountDataPath: string): Promise => { +export const renderSwaggerUI = async (container: HTMLElement, apiDocsPath: string, baseUrl: string, accountDataUrl: string): Promise => { const apiSpecs: ApiDocsServices = await fetchData(apiDocsPath) + + const accountData: AccountDataResponse = await fetchData(accountDataUrl) + apiSpecs.apis.forEach( api => { const domId = api.system_name.replace(/_/g, '-') const url = getApiSpecUrl(baseUrl, api.path) @@ -128,7 +131,7 @@ export const renderApiDocs = async (container: HTMLElement, apiDocsPath: string, url, // eslint-disable-next-line @typescript-eslint/naming-convention -- Swagger UI dom_id: `#${domId}`, - requestInterceptor: (request) => autocompleteRequestInterceptor(request, apiDocsAccountDataPath, ''), + requestInterceptor: (request) => autocompleteRequestInterceptor(request, accountData, ''), tryItOutEnabled: true, plugins: [ RequestBodyTransformerPlugin diff --git a/app/javascript/src/Types/SwaggerTypes.ts b/app/javascript/src/Types/SwaggerTypes.ts index 51026c34b0..4ace0f00e7 100644 --- a/app/javascript/src/Types/SwaggerTypes.ts +++ b/app/javascript/src/Types/SwaggerTypes.ts @@ -5,6 +5,11 @@ export type AccountData = Record +export interface AccountDataResponse { + status: string; + results: AccountData; +} + export interface ApiDocsService { name: string; system_name: string; From 02ef45a56341b78c82e9ff619b857872be9b2bc5 Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Thu, 20 Apr 2023 11:54:23 +0200 Subject: [PATCH 84/85] Fix autocomplete tests --- .../ActiveDocs/OAS3Autocomplete.spec.ts | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts b/spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts index d9107afafc..57f289f9f4 100644 --- a/spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts +++ b/spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts @@ -1,7 +1,7 @@ import { autocompleteOAS3, autocompleteRequestInterceptor } from 'ActiveDocs/OAS3Autocomplete' -import * as utils from 'utilities/fetchData' import type { Request as SwaggerUIRequest, Response as SwaggerUIResponse } from 'swagger-ui' +import type { AccountDataResponse} from 'Types/SwaggerTypes' const specUrl = 'https://provider.3scale.test/foo/bar.json' const apiUrl = 'https://some.api.domain/foo/bar/api-url' @@ -53,27 +53,24 @@ const apiResponse = { } } -const accountData = { - status: 200, +const accountData: AccountDataResponse = { + status: '200', results: { user_keys: [ { name: 'Some App', value: '12345678' }, { name: 'Another App', value: '' } ] } -} as const - -const fetchDataSpy = jest.spyOn(utils, 'fetchData') -fetchDataSpy.mockResolvedValue(accountData) +} describe('autocompleteOAS3', () => { it('should inject servers to the spec', async () => { - const res: SwaggerUIResponse = await autocompleteOAS3(specResponse, accountDataUrl, serviceEndpoint) + const res: SwaggerUIResponse = await autocompleteOAS3(specResponse, accountData, serviceEndpoint) expect(res.body.servers).toEqual([{ 'url': 'foo/bar/serviceEndpoint' }]) }) it('should autocomplete fields of OpenAPI spec with x-data-threescale-name property', async () => { - const res: SwaggerUIResponse = await autocompleteOAS3(specResponse, accountDataUrl, serviceEndpoint) + const res: SwaggerUIResponse = await autocompleteOAS3(specResponse, accountData, serviceEndpoint) const examplesFirstParam = res.body.paths['/'].get.parameters[0].examples const examplesSecondParam = res.body.paths['/'].get.parameters[1].examples @@ -90,7 +87,7 @@ describe('autocompleteRequestInterceptor', () => { describe('when the request is fetching OpenAPI spec', () => { it('should update the response interceptor', async () => { let request: SwaggerUIRequest = { loadSpec: true } - request = autocompleteRequestInterceptor(request, accountDataUrl, serviceEndpoint) + request = autocompleteRequestInterceptor(request, accountData, serviceEndpoint) expect(request.responseInterceptor).toBeDefined() @@ -100,9 +97,9 @@ describe('autocompleteRequestInterceptor', () => { }) describe('when the request is fetching API call response', () => { - const originalInterceptor = jest.fn((res: SwaggerUIRequest)=> { return res }) + const originalInterceptor = jest.fn((res: SwaggerUIRequest) => { return res }) let request: SwaggerUIRequest = { responseInterceptor: originalInterceptor } - request = autocompleteRequestInterceptor(request, accountDataUrl, serviceEndpoint) + request = autocompleteRequestInterceptor(request, accountData, serviceEndpoint) it('should not update the response interceptor', () => { expect(request.responseInterceptor).toEqual(originalInterceptor) From 8200ed9d7df0f450fcbdb087542493adeadd3bcd Mon Sep 17 00:00:00 2001 From: Daria Mayorova Date: Thu, 20 Apr 2023 12:00:53 +0200 Subject: [PATCH 85/85] Do not export autocompleteOAS3 --- .../src/ActiveDocs/OAS3Autocomplete.ts | 2 +- .../ActiveDocs/OAS3Autocomplete.spec.ts | 45 +++++++++---------- 2 files changed, 21 insertions(+), 26 deletions(-) diff --git a/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts b/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts index 7662d4b835..0bb1e87d43 100644 --- a/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts +++ b/app/javascript/src/ActiveDocs/OAS3Autocomplete.ts @@ -112,7 +112,7 @@ export interface Response extends SwaggerUIResponse { text: string; } -export const autocompleteOAS3 = (response: SwaggerUIResponse, accountData: AccountDataResponse, serviceEndpoint: string): Response => { +const autocompleteOAS3 = (response: SwaggerUIResponse, accountData: AccountDataResponse, serviceEndpoint: string): Response => { const bodyWithServer = injectServerToResponseBody(response.body, serviceEndpoint) let body = undefined diff --git a/spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts b/spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts index 57f289f9f4..29ad5f3298 100644 --- a/spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts +++ b/spec/javascripts/ActiveDocs/OAS3Autocomplete.spec.ts @@ -1,7 +1,7 @@ -import { autocompleteOAS3, autocompleteRequestInterceptor } from 'ActiveDocs/OAS3Autocomplete' +import { autocompleteRequestInterceptor } from 'ActiveDocs/OAS3Autocomplete' import type { Request as SwaggerUIRequest, Response as SwaggerUIResponse } from 'swagger-ui' -import type { AccountDataResponse} from 'Types/SwaggerTypes' +import type { AccountDataResponse } from 'Types/SwaggerTypes' const specUrl = 'https://provider.3scale.test/foo/bar.json' const apiUrl = 'https://some.api.domain/foo/bar/api-url' @@ -63,37 +63,32 @@ const accountData: AccountDataResponse = { } } -describe('autocompleteOAS3', () => { - it('should inject servers to the spec', async () => { - const res: SwaggerUIResponse = await autocompleteOAS3(specResponse, accountData, serviceEndpoint) - expect(res.body.servers).toEqual([{ 'url': 'foo/bar/serviceEndpoint' }]) - }) - - it('should autocomplete fields of OpenAPI spec with x-data-threescale-name property', async () => { - const res: SwaggerUIResponse = await autocompleteOAS3(specResponse, accountData, serviceEndpoint) - const examplesFirstParam = res.body.paths['/'].get.parameters[0].examples - const examplesSecondParam = res.body.paths['/'].get.parameters[1].examples - - expect(examplesFirstParam).toEqual([ - { summary: 'First user key from latest 5 applications', value: '-' }, - { summary: 'Some App - 12345678', value: '12345678' }, - { summary: 'Another App', value: '' } - ]) - expect(examplesSecondParam).toBe(undefined) - }) -}) - describe('autocompleteRequestInterceptor', () => { describe('when the request is fetching OpenAPI spec', () => { - it('should update the response interceptor', async () => { - let request: SwaggerUIRequest = { loadSpec: true } - request = autocompleteRequestInterceptor(request, accountData, serviceEndpoint) + let request: SwaggerUIRequest = { loadSpec: true } + request = autocompleteRequestInterceptor(request, accountData, serviceEndpoint) + it('should update the response interceptor', () => { expect(request.responseInterceptor).toBeDefined() + }) + it('response interceptor should inject servers to the spec', async () => { const res: SwaggerUIResponse = await request.responseInterceptor(specResponse, accountDataUrl, serviceEndpoint) expect(res.body.servers).toEqual([{ 'url': 'foo/bar/serviceEndpoint' }]) }) + + it('response interceptor should autocomplete fields of OpenAPI spec with x-data-threescale-name property', async () => { + const res: SwaggerUIResponse = await request.responseInterceptor(specResponse, accountDataUrl, serviceEndpoint) + const examplesFirstParam = res.body.paths['/'].get.parameters[0].examples + const examplesSecondParam = res.body.paths['/'].get.parameters[1].examples + + expect(examplesFirstParam).toEqual([ + { summary: 'First user key from latest 5 applications', value: '-' }, + { summary: 'Some App - 12345678', value: '12345678' }, + { summary: 'Another App', value: '' } + ]) + expect(examplesSecondParam).toBe(undefined) + }) }) describe('when the request is fetching API call response', () => {