Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Open api
supportedSubmitMethodsnone
showDownloadButtontrue
---
openapi: "3.0.0"
info:
  version: "1.0.01"
  title: "Ceptor Administration API"
paths:
  /configuration:
    get:
      summary: "Get configuration"
      description: "Retrieves the configuration values, including groups, descriptions,\
        \ extends etc."
      tags:
      - "configuration"
      parameters:
      - name: "active"
        in: "query"
        description: "true to get Active configuration, or false to get uncommitted\
          \ configuration values."
        required: true
        schema:
          type: "boolean"
        allowEmptyValue: false
        deprecated: false
      responses:
        200:
          description: "Server configuration"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Configuration"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
    delete:
      summary: "Deletes a configuration entry"
      description: "Deletes a single configuration entry for a server"
      tags:
      - "configuration"
      parameters:
      - name: "servername"
        in: "query"
        description: "Server name"
        required: true
        schema:
          type: "string"
      - name: "group"
        in: "query"
        description: "Group name"
        required: true
        schema:
          type: "string"
      - name: "key"
        in: "query"
        description: "Property name"
        required: true
        schema:
          type: "string"
      responses:
        201:
          description: "Delete confirmation"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
    put:
      summary: "Update a configuration entry"
      description: "Updates a single configuration entry for a server"
      tags:
      - "configuration"
      parameters:
      - name: "servername"
        in: "query"
        description: "Server name"
        required: true
        schema:
          type: "string"
      - name: "group"
        in: "query"
        description: "Group name"
        required: true
        schema:
          type: "string"
      - name: "key"
        in: "query"
        description: "Property name"
        required: true
        schema:
          type: "string"
      - name: "value"
        in: "query"
        required: true
        schema:
          type: "string"
        description: "Property value"
      - name: "description"
        in: "query"
        required: false
        schema:
          type: "string"
        description: "Description of property"
      responses:
        201:
          description: "Update confirmation"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
    post:
      summary: "Create a new configuration entry"
      description: "Creates a single configuration entry for a server"
      tags:
      - "configuration"
      parameters:
      - name: "servername"
        in: "query"
        description: "Server name"
        required: true
        schema:
          type: "string"
      - name: "group"
        in: "query"
        description: "Group name"
        required: true
        schema:
          type: "string"
      - name: "key"
        in: "query"
        description: "Property name"
        required: true
        schema:
          type: "string"
      - name: "value"
        in: "query"
        required: true
        schema:
          type: "string"
        description: "Property value"
      - name: "description"
        in: "query"
        required: false
        schema:
          type: "string"
        description: "Description of property"
      responses:
        201:
          description: "Create confirmation"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /configuration/validate:
    get:
      summary: "Validates a potential configuration change"
      description: "Validates a single configuration property change for a server"
      tags:
      - "configuration"
      parameters:
      - name: "servername"
        in: "query"
        description: "Server name"
        required: true
        schema:
          type: "string"
      - name: "group"
        in: "query"
        description: "Group name"
        required: true
        schema:
          type: "string"
      - name: "key"
        in: "query"
        description: "Property name"
        required: true
        schema:
          type: "string"
      - name: "value"
        in: "query"
        required: true
        schema:
          type: "string"
        description: "Property value"
      responses:
        200:
          description: "Validation result"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Validation"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /configuration/validateall:
    get:
      summary: "Validates all configuration changes before committing them"
      description: "Validates all uncommitted configuration changes - should be called\
        \ before committing to check if any modules has any complaints."
      tags:
      - "configuration"
      responses:
        200:
          description: "Validation result"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Validation"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /configuration/viewchanges:
    get:
      summary: "Gets a diff of any changes made to the configuration not yet committed"
      description: "Gets a diff of any changes made to the configuration as well as\
        \ the complete XML of both the active and uncommitted configuration in case\
        \ there were any differences."
      tags:
      - "configuration"
      responses:
        200:
          description: "Configuration Info"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ConfigInfo"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /configuration/server:
    post:
      summary: "Create a new configuration server entry"
      description: "Creates a single configuration entry for a server"
      tags:
      - "configuration"
      parameters:
      - name: "servername"
        in: "query"
        description: "Server name"
        required: true
        schema:
          type: "string"
      - name: "type"
        in: "query"
        description: "Server Type"
        required: true
        schema:
          type: "string"
      - name: "extends"
        in: "query"
        description: "Extends - define which entries this server extends"
        required: false
        schema:
          type: "string"
      - name: "description"
        in: "query"
        required: false
        schema:
          type: "string"
        description: "Description of this server"
      responses:
        201:
          description: "Create confirmation"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
    put:
      summary: "Updates a configuration server entry"
      description: "Updates a configuration server entry, modifying its description,\
        \ type or extends"
      tags:
      - "configuration"
      parameters:
      - name: "servername"
        in: "query"
        description: "Server name"
        required: true
        schema:
          type: "string"
      - name: "type"
        in: "query"
        description: "Server Type"
        required: true
        schema:
          type: "string"
      - name: "extends"
        in: "query"
        description: "Extends - define which entries this server extends"
        required: false
        schema:
          type: "string"
      - name: "description"
        in: "query"
        required: false
        schema:
          type: "string"
        description: "Description of this server"
      responses:
        201:
          description: "Update confirmation"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
    delete:
      summary: "Deletes a configuration server entry"
      description: "Deletes a configuration server entry"
      tags:
      - "configuration"
      parameters:
      - name: "servername"
        in: "query"
        description: "Server name"
        required: true
        schema:
          type: "string"
      responses:
        201:
          description: "Delete confirmation"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /configuration/group:
    post:
      summary: "Create a new configuration server group entry"
      description: "Creates a single configuration group for a server"
      tags:
      - "configuration"
      parameters:
      - name: "servername"
        in: "query"
        description: "Server name"
        required: true
        schema:
          type: "string"
      - name: "group"
        in: "query"
        description: "Group Name"
        required: true
        schema:
          type: "string"
      - name: "description"
        in: "query"
        required: false
        schema:
          type: "string"
        description: "Description of this group"
      responses:
        201:
          description: "Create confirmation"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
    put:
      summary: "Updates a configuration server group entry"
      description: "Updates a configuration server group entry, modifying its description"
      tags:
      - "configuration"
      parameters:
      - name: "servername"
        in: "query"
        description: "Server name"
        required: true
        schema:
          type: "string"
      - name: "group"
        in: "query"
        description: "Group name"
        required: true
        schema:
          type: "string"
      - name: "description"
        in: "query"
        required: false
        schema:
          type: "string"
        description: "Description of this server"
      responses:
        201:
          description: "Update confirmation"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
    delete:
      summary: "Deletes a configuration server group entry"
      description: "Deletes a configuration server group entry"
      tags:
      - "configuration"
      parameters:
      - name: "servername"
        in: "query"
        description: "Server name"
        required: true
        schema:
          type: "string"
      - name: "group"
        in: "query"
        description: "Group name"
        required: true
        schema:
          type: "string"
      responses:
        201:
          description: "Delete confirmation"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /configuration/properties:
    get:
      summary: "Get configuration properties for a particular server"
      description: "Retrieves the configuration properties for a server - the properties\
        \ are resolved according to inheritance so the details (descriptions / groups)\
        \ are not returned, but only the name/value pairs."
      tags:
      - "configuration"
      parameters:
      - name: "servername"
        in: "query"
        description: "Server name"
        required: true
        schema:
          type: "string"
      - name: "active"
        in: "query"
        description: "true to get Active configuration, or false to get uncommitted\
          \ configuration values."
        required: true
        schema:
          type: "boolean"
        allowEmptyValue: false
        deprecated: false
      responses:
        200:
          description: "Server configuration"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Properties"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /configuration/commit:
    put:
      summary: "Commit configuration"
      description: "Commits any changes made to the configuration - the configuration\
        \ must be committed before it is active."
      tags:
      - "configuration"
      responses:
        201:
          description: "Commit confirmation"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /configuration/rollback:
    put:
      summary: "Rollback configuration"
      description: "Rolls back any uncommited configuration updates, replacing with\
        \ the current active configuration"
      tags:
      - "configuration"
      responses:
        201:
          description: "Rollback confirmation"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /configuration/reload:
    put:
      summary: "Reload configuration"
      description: "Reloads configuration files from disk"
      tags:
      - "configuration"
      responses:
        201:
          description: "Reload confirmation"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /configuration/history:
    get:
      summary: "Retrieve configuration history"
      description: "Read the history of configuration changes"
      tags:
      - "configuration"
      parameters:
      - name: "servername"
        in: "query"
        description: "Name of configuration server to retrieve history from"
        required: true
        schema:
          type: "string"
      responses:
        200:
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/History"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /configuration/gateway/destination:
    get:
      summary: "Read a destination within a gateway configuration"
      description: "Reads a single destination in a gateway configuration."
      tags:
      - "gateway configuration"
      parameters:
      - name: "servername"
        in: "query"
        description: "Name of gateway configuration server entry, e.g. gateways or\
          \ gateway1"
        required: true
        schema:
          type: "string"
      - name: "destinationname"
        in: "query"
        description: "Name of destination name to read"
        required: true
        schema:
          type: "string"
      - name: "isActive"
        in: "query"
        description: "if true, read from the active configuration - otherwise reads\
          \ from the uncommitted one"
        required: false
        schema:
          type: "boolean"
      responses:
        200:
          description: "Operation entry"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GatewayDestination"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
    post:
      summary: "Add or update a destination within a gateway configuration"
      description: "Adds or updates a single destination in a gateway configuration\
        \ - if the destination already exists, it is updated, and created if not."
      tags:
      - "gateway configuration"
      parameters:
      - name: "servername"
        in: "query"
        description: "Name of gateway configuration server entry, e.g. gateways or\
          \ gateway1"
        required: true
        schema:
          type: "string"
      - name: "destinationname"
        in: "query"
        description: "Name of destination name to read"
        required: true
        schema:
          type: "string"
      requestBody:
        description: "Operation entry"
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GatewayDestination"
      responses:
        201:
          description: "Update confirmation"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
    delete:
      summary: "Deletes a destination from a gateway configuration"
      description: "Deletes a single destination from a gateway configuration"
      tags:
      - "gateway configuration"
      parameters:
      - name: "servername"
        in: "query"
        description: "Name of gateway configuration server entry, e.g. gateways or\
          \ gateway1"
        required: true
        schema:
          type: "string"
      - name: "destinationname"
        in: "query"
        description: "Name of destination"
        required: true
        schema:
          type: "string"
      responses:
        201:
          description: "Delete confirmation"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /configuration/gateway/location:
    get:
      summary: "Read a location within a gateway configuration"
      description: "Reads a single location in a gateway configuration"
      tags:
      - "gateway configuration"
      parameters:
      - name: "servername"
        in: "query"
        description: "Name of gateway configuration server entry, e.g. gateways or\
          \ gateway1"
        required: true
        schema:
          type: "string"
      - name: "locationname"
        in: "query"
        description: "Name of location to read"
        required: true
        schema:
          type: "string"
      - name: "parent"
        in: "query"
        description: "Names of parents, if any - can decide the place in the hierarchy\
          \ / nested locations that this location is placed."
        required: false
        schema:
          type: "array"
          items:
            type: "string"
      - name: "isActive"
        in: "query"
        description: "if true, read from the active configuration - otherwise reads\
          \ from the uncommitted one"
        required: false
        schema:
          type: "boolean"
      responses:
        201:
          description: "Location entry"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GatewayLocation"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
    post:
      summary: "Add or update a location within a gateway configuration"
      description: "Adds or updates a single location in a gateway configuration -\
        \ if the location already exists, it is updated, and created if not. Note\
        \ that the entire location with all nested location entries need to be supplied\
        \ - or nested locations need to be created one by one after creating the parent."
      tags:
      - "gateway configuration"
      parameters:
      - name: "servername"
        in: "query"
        description: "Name of gateway configuration server entry, e.g. gateways or\
          \ gateway1"
        required: true
        schema:
          type: "string"
      - name: "locationname"
        in: "query"
        description: "Name of location to update/create"
        required: true
        schema:
          type: "string"
      - name: "index"
        in: "query"
        description: "Index to place the destination at - can be used to specify where\
          \ the location entry should be placed. If not specified, newly created locations\
          \ will be placed at the end, and updated destinations will keep their current\
          \ place"
        required: false
        schema:
          type: "integer"
      - name: "parent"
        in: "query"
        description: "Names of parents, if any - can decide the place in the hierarchy\
          \ / nested locations that this location is placed."
        required: false
        schema:
          type: "array"
          items:
            type: "string"
      requestBody:
        description: "Location entry"
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GatewayLocation"
      responses:
        201:
          description: "Update confirmation"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
    delete:
      summary: "Deletes a location from a gateway configuration"
      description: "Deletes a single location from a gateway configuration"
      tags:
      - "gateway configuration"
      parameters:
      - name: "servername"
        in: "query"
        description: "Name of gateway configuration server entry, e.g. gateways or\
          \ gateway1"
        required: true
        schema:
          type: "string"
      - name: "locationname"
        in: "query"
        description: "Name of location"
        required: true
        schema:
          type: "string"
      - name: "parent"
        in: "query"
        description: "Names of parents, if any - can decide the place in the hierarchy\
          \ / nested locations that this location is placed."
        required: false
        schema:
          type: "array"
          items:
            type: "string"
      responses:
        201:
          description: "Delete confirmation"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /servers:
    get:
      summary: "List servers/services"
      description: "Lists all configured servers/services and their current status"
      tags:
      - "servers"
      responses:
        200:
          description: "Servers"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Servers"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /server/{servername}/status:
    get:
      summary: "Get status for a server"
      description: "Gets the status for a particular server"
      tags:
      - "servers"
      parameters:
      - name: "servername"
        in: "path"
        description: "Server name"
        required: true
        schema:
          type: "string"
      - name: "action"
        in: "query"
        description: "Action to perform, if any"
        required: false
        schema:
          type: "string"
      responses:
        200:
          description: "Status"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Status"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /server/{servername}/start:
    put:
      summary: "Start a server/service"
      description: "Starts a server / service"
      tags:
      - "servers"
      parameters:
      - name: "servername"
        in: "path"
        description: "Server name"
        required: true
        schema:
          type: "string"
      responses:
        201:
          description: "OK"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /server/{servername}/stop:
    put:
      summary: "Stops a server/service"
      description: "Stops a server / service"
      tags:
      - "servers"
      parameters:
      - name: "servername"
        in: "path"
        description: "Server name"
        required: true
        schema:
          type: "string"
      responses:
        201:
          description: "OK"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /server/{servername}/disconnect:
    put:
      summary: "Disconnect a server/service"
      description: "Disconnect a server / service"
      tags:
      - "servers"
      parameters:
      - name: "servername"
        in: "path"
        description: "Server name"
        required: true
        schema:
          type: "string"
      responses:
        201:
          description: "OK"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /server/{servername}/jvmdump:
    put:
      summary: "Obtains JVM threaddump for a server"
      description: "Creates a JVM dump (threaddump and GC status)"
      tags:
      - "servers"
      parameters:
      - name: "servername"
        in: "path"
        description: "Server name"
        required: true
        schema:
          type: "string"
      responses:
        201:
          description: "OK"
        default:
          description: "unexpected error"
          content:
            text/plain:
              schema:
                type: "string"
  /server/{servername}/heapdump:
    put:
      summary: "Performs a heapdump on a server"
      description: "Asks the server to perform a heapdump in the specified target\
        \ directory"
      tags:
      - "servers"
      parameters:
      - name: "servername"
        in: "path"
        description: "Server name"
        required: true
        schema:
          type: "string"
      - name: "directory"
        in: "query"
        description: "Directory name"
        required: false
        schema:
          type: "string"
      responses:
        201:
          description: "OK"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /ping:
    post:
      summary: "List servers/services"
      description: "Pings all servers, returning a list of servers and their status,\
        \ along with a properties object that the  authentication plugins at all available\
        \ sessioncontrollers have filled in. The input properties is passed to each\
        \ authentication plugin which can use the information to determine what to\
        \ do - e.g. to actively ping backend servers or just return previously cached\
        \ data."
      tags:
      - "servers"
      requestBody:
        description: "Properties passed to authentication plugins"
        content:
          application/json:
            schema:
              type: "object"
      responses:
        200:
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PingResult"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /apimgr/apigroups:
    get:
      summary: "List all API Groups"
      description: "List all API Group definitions"
      tags:
      - "api management"
      responses:
        200:
          description: "OK"
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/APIGroup"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /apimgr/apigroup/{groupid}:
    get:
      summary: "Read the contents of an API Group"
      description: "Reads an API Group definition"
      tags:
      - "api management"
      parameters:
      - name: "groupid"
        in: "path"
        description: "API Group ID"
        required: true
        schema:
          type: "string"
      responses:
        200:
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIGroup"
        404:
          description: "Not Found"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
    delete:
      summary: "Delete an API Group"
      description: "Deletes an API Group"
      tags:
      - "api management"
      parameters:
      - name: "groupid"
        in: "path"
        description: "API Group ID"
        required: true
        schema:
          type: "string"
      responses:
        201:
          description: "Delete confirmation"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /apimgr/apigroup:
    post:
      summary: "Create API Group"
      description: "Creates a new API group"
      tags:
      - "api management"
      requestBody:
        description: "API Group to create"
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/APIGroup"
      responses:
        200:
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIGroup"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
    put:
      summary: "Update API Group"
      description: "Updates an existing API Group"
      tags:
      - "api management"
      requestBody:
        description: "API Group to update"
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/APIGroup"
      responses:
        201:
          description: "Update confirmation"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /apimgr/apis/{groupid}:
    get:
      summary: "List all APIs within a specific API Group"
      description: "Returns all APIs within a specific API Group"
      tags:
      - "api management"
      parameters:
      - name: "groupid"
        in: "path"
        description: "API Group ID"
        required: true
        schema:
          type: "string"
      responses:
        200:
          description: "OK"
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/API"
        404:
          description: "Not Found"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /apimgr/api/{apiid}:
    get:
      summary: "Read the contents of an API"
      description: "Reads an API definition"
      tags:
      - "api management"
      parameters:
      - name: "apiid"
        in: "path"
        description: "API ID"
        required: true
        schema:
          type: "string"
      responses:
        200:
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API"
        404:
          description: "Not Found"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
    delete:
      summary: "Delete an API"
      description: "Deletes an API"
      tags:
      - "api management"
      parameters:
      - name: "apiid"
        in: "path"
        description: "API ID"
        required: true
        schema:
          type: "string"
      responses:
        201:
          description: "Delete confirmation"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /apimgr/api:
    post:
      summary: "Create API"
      description: "Creates a new API"
      tags:
      - "api management"
      requestBody:
        description: "API to create"
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/API"
      responses:
        200:
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/API"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
    put:
      summary: "Update API"
      description: "Updates an existing API"
      tags:
      - "api management"
      requestBody:
        description: "API to update"
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/API"
      responses:
        201:
          description: "Update confirmation"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /apimgr/apiversions/{apiid}:
    get:
      summary: "List all API Versions within an API"
      description: "List all API Version definitions within the specified API"
      tags:
      - "api management"
      parameters:
      - name: "apiid"
        in: "path"
        description: "API ID"
        required: true
        schema:
          type: "string"
      responses:
        200:
          description: "OK"
          content:
            application/json:
              schema:
                type: "array"
                items:
                  $ref: "#/components/schemas/APIVersion"
        404:
          description: "Not Found"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /apimgr/apiversion/{apiversionid}:
    get:
      summary: "Read the contents of an API Version"
      description: "Reads an API Version definition"
      tags:
      - "api management"
      parameters:
      - name: "apiversionid"
        in: "path"
        description: "API Version ID"
        required: true
        schema:
          type: "string"
      responses:
        200:
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIVersion"
        404:
          description: "Not Found"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
    delete:
      summary: "Delete an API Version"
      description: "Deletes an API Version"
      tags:
      - "api management"
      parameters:
      - name: "apiversionid"
        in: "path"
        description: "API Version ID"
        required: true
        schema:
          type: "string"
      responses:
        201:
          description: "Delete confirmation"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /apimgr/apiversion:
    post:
      summary: "Create API Version"
      description: "Creates a new API Version"
      tags:
      - "api management"
      requestBody:
        description: "API Version to create"
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/APIVersion"
      responses:
        200:
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APIVersion"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
    put:
      summary: "Update API Version"
      description: "Updates an existing API Version"
      tags:
      - "api management"
      requestBody:
        description: "API Version to update"
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/APIVersion"
      responses:
        201:
          description: "Update confirmation"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /apimgr/search:
    post:
      summary: "Search for API Groups, APIs or API Versions"
      description: "Search for APIs"
      tags:
      - "api management"
      requestBody:
        description: "API Search parameters"
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/APISearchParameters"
      responses:
        200:
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/APISearchResults"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /apimgr/import:
    post:
      summary: "Import from a .zip file"
      description: "Imports API definitions, API Groups and versions from a .zip file"
      tags:
      - "api management"
      requestBody:
        description: ".ZIP file"
        content:
          application/x-zip-compressed:
            schema:
              type: "string"
              format: "binary"
      responses:
        201:
          description: "OK"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /apimgr/export:
    get:
      summary: "Full Export to a .zip file"
      description: "Export API config, API definitions, API Groups and version along\
        \ with Partners, Applications and Developers to a .zip file"
      tags:
      - "api management"
      responses:
        200:
          description: "OK"
          content:
            application/x-zip-compressed:
              schema:
                type: "string"
                format: "binary"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /apimgr/partialexport:
    post:
      summary: "Export selected data to a .zip file"
      description: "Selectively export API config, API definitions, API Groups and\
        \ versions as well as Partners, Applications and Developers to a .zip file"
      tags:
      - "api management"
      requestBody:
        description: "Export parameters, specify what to export"
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ExportParameters"
      responses:
        200:
          description: "OK"
          content:
            application/x-zip-compressed:
              schema:
                type: "string"
                format: "binary"
        default:
          description: "unexpected error"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
components:   schemas/haspermission:
    Propertiesget:
      descriptionsummary: "ContainsCheck namepermission/value pairsACL"
      typedescription: "objectCheck if permission to a resource/ACL is allowed"
    Configuration  tags:
      type:- "objectother"
      ServiceStateparameters:
      - descriptionname: "Currentresource"
 status"       typein: "objectquery"
      properties:
      description: "Resource / ACL to check permission for"
   state:     required: true
     description:  "Current state"schema:
          type: "string"
        connection_stateallowEmptyValue: false
         descriptiondeprecated: "Connectionfalse
state"      -     typename: "stringpermission"

   Servers:       typein: "arrayquery"
        description: "Array of servers/services"Permission, e.g. read, write or execute"
       items required: true
        $ref: "#/components/schemas/Server"schema:
    Server:       descriptiontype: "string"A
server or service defined within Ceptor - can beallowEmptyValue: afalse
concrete\        deprecated: \false
implementation such as a gateway1 or configserver1,- or it can be an abstract\name: "failIfNotFound"
        in: "query"
  \ definition which contain configuration properties thatdescription: are"If inheritedpermission by\is not found, consider it a failure instead  of\
concrete implementations."       type: "object" \ treating it as an unprotected required:resource."
      - "name" required: true
    - "type"   schema:
   - "status"       properties:type: "boolean"
        nameallowEmptyValue: false
         descriptiondeprecated: "Namefalse
of service"           typeresponses:
"string"         alias200:
          description: "AliasPermission of serviceOK"
          typecontent:
"string"         type:   application/json:
       description: "Server/Service type"           type: "string"
 schema:
      status:           $ref: "#/components/schemas/ServiceStateConfiguration"
        route_node_name403:
          description: "UniquePermission forDenied"
this   instance - contains the route to the service\content:
            \application/json:
via the configuration servers"           typeschema:
"string"         instance_uuid:       $ref: "#/components/schemas/Configuration"
  description:  "Unique ID for this instance"default:
          typedescription: "stringunexpected error"
         connections content:
          description  application/json:
"Describes the connections from this component to other components"      schema:
    type: "object"           properties$ref: "#/components/schemas/Error"
  /action:
    get:
   agent:   summary: "Lists all actions"
        description: "ConnectionsLists toall sessionavailable controllersactions"
      tags:
      - type: "arrayactions"
      responses:
       items 200:
          description: "OK"
    description: "Instance UUID of session controller" content:
            application/json:
  type: "string"           schema:
 gateway_destinations:               type: "array"
                items:
                  description$ref: "A list of the gateways destination, and their current\#/components/schemas/Action"
        default:
          description: "unexpected error"
     \ status"    content:
            typeapplication/json:
"object"                 propertiesschema:
                $ref:  name:"#/components/schemas/Error"
    post:
      summary: "Create an Action"
      description: "Destination nameCreates a new Action"
      tags:
      - "actions"
      typerequestBody:
"string"        description: "Action to create"
       description content:
          application/json:
         description:  "Description ofschema:
the destination"             $ref: "#/components/schemas/Action"
      typeresponses:
"string"        200:
          hostsdescription: "OK"
          content:
        description: "A list of current hosts application/json:
target servers and their\           schema:
           \ status"    $ref: "#/components/schemas/Action"
        default:
      type: "array"   description: "unexpected error"
          content:
    items:        application/json:
              typeschema:
"object"                $ref: "#/components/schemas/Error"
     propertiesput:
      summary: "Update an Action"
      description: "Updates an existing Action"
   name:   tags:
      - "actions"
      requestBody:
        description: "Name of host / target server"Action to update"
        content:
          application/json:
            typeschema:
"string"              $ref: "#/components/schemas/Action"
      responses:
   scheme:     201:
          description: "Update confirmation"
        descriptiondefault:
"Scheme,  http or https"      description: "unexpected error"
          content:
       type: "string"    application/json:
              schema:
     host:           $ref: "#/components/schemas/Error"
  /action/{actionid}:
    get:
      descriptionsummary: "HostnameRead orthe IPcontents Addresssof ofan serverAction"
      description: "Reads an API Version definition"
      tags:
       type:- "stringactions"
      parameters:
      - name: "actionid"
        portin: "path"
        description: "Action ID"
        required: true
    description: "TCP port number ofschema:
server"          type: "string"
      responses:
        type200:
"integer"          description: "OK"
          content:
  marked.unavailable:          application/json:
                descriptionschema:
"True, if this host is currently marked as\         $ref: "#/components/schemas/Action"
        404:
         \ beingdescription: unavailable"Not Found"
        default:
          description: "unexpected error"
   type: "boolean"       content:
            application/json:
    marked.unavailable.newusers:          schema:
                description$ref: "True, if this host is currently marked as\#/components/schemas/Error"
    delete:
      summary: "Delete an Action"
      description: "Deletes an API Version"
      tags:
  \ being unavailable for new users/sessions- "actions"
      parameters:
      - name: "actionid"
          typein: "booleanpath"
        description: "Action ID"
        required: true
   available:     schema:
          type: "string"
      responses:
  description: "True, if this host is currently201:
available\          description: "Delete confirmation"
        default:
         \ anddescription: considered"unexpected workingerror"
          content:
            application/json:
  type: "boolean"            schema:
                last.accessed.at$ref: "#/components/schemas/Error"
components:
  schemas:
    Properties:
      description: "Contains name/value pairs"
      descriptiontype: "Lastobject"
 accessed at (milliseconds sinceConfiguration:
1/1 1970)"     type: "object"
    ServiceState:
      description: "Current status"
      type: "numberobject"
      properties:
        state:
          formatdescription: "int64Current state"
          type: "string"
        connection_state:
   problem.reason:       description: "Connection state"
          type: "string"
     descriptionServers:
"If server is not available or not working,\type: "array"
      description: "Array of servers/services"
      items:
        $ref: "#/components/schemas/Server"
    Server:
  \  this contains thedescription: reason"A server or service defined within Ceptor - can be a concrete\
        \ implementation such as a gateway1  type: "string"
   or configserver1, or it can be an abstract\
    memory_free:    \ definition which contain configuration properties that are inherited description:by\
"The amount of memory free, in kilobytes"  \ concrete implementations."
      type: "integerobject"
      required:
      format:- "int64name"
      -  memory_total:"type"
      - "status"
   description   properties:
 "The total amount of memory available, in kilobytes"name:
          typedescription: "integerName of service"
          formattype: "int64string"
        memory_usedalias:
          description: "The amountAlias of memory used, in kilobytesservice"
          type: "integerstring"
        type:
 format: "int64"         memory_max:
description: "Server/Service type"
         description type: "The maximum amount of memory available, in kilobytesstring"
          typestatus:
"integer"           format$ref: "int64#/components/schemas/ServiceState"
        cpuroute_node_systemname:
          description: "CPUUnique usagefor inthis system.instance Note- thatcontains thisthe isroute ato snapshotthe and canservice\
            \ bevia highlythe inaccurate depending on JVM and operating system.configuration servers"
          type: "numberstring"
        instance_uuid:
 format: "double"         cpu_process:
   description: "Unique ID for this instance"
      description: "CPU usage in process. Note that this is a snapshot and can\
 type: "string"
        connections:
          \description: be"Describes highlythe inaccurateconnections dependingfrom onthis JVMcomponent andto operatingother system.components"
          type: "numberobject"
          formatproperties:
"double"     Status:       typeagent:
"object"        properties:      description: "Connections to name:session controllers"
         description:   "Server / Servicetype: name"array"
          type: "string"   items:
     alias:           description: "Alias, if definedInstance UUID of session controller"
          type: "string"     type: "string"
  status:           description: "Server status text, in HTML"gateway_destinations:
              type: "stringarray"
        state:      items:
    $ref: "#/components/schemas/ServiceState"         ping_time:  description: "A list of the gateways destination, and their description:current\
"Number of milliseconds it took to ping this service from the\        \ status"
   \ configuration server."           type: "integerobject"
        properties:        properties:
  description: "Additional properties for the service"           typename:
"object"         events:           description: "ListDestination name"
of 'significant' events, such as connect/disconnects,\             \ restarts, config updates etc. for this service."type: "string"
              type: "array"   description:
       items:             description: "EventDescription thatof hasthe occurred"destination"
                    type: "string"
    History:        type: "object"     Validationhosts:
      type:  "object"     ConfigInfo:       typedescription: "object"A list of current hosts / target required:servers and their\
    - "has_uncommitted_changes"       properties:         has_uncommitted_changes: \ status"
        type: "boolean"           descriptiontype: "array"True,
 if any changes exists between the active and uncommitted\           items:
 \ configuration"         diff:           descriptiontype: "Contains a string in diff format if any differences between\"object"
                      properties:
       \ the active and uncommitted configuration exists"           typename:
 "string"         active_configuration:           description: "The complete XML of thedescription: active"Name configurationof -host only/ present\target server"
           \ if there are differences"           type: "string"
        uncommitted_configuration:           description: "The complete XML of thescheme:
uncommitted configuration - only present\             \ if there are differences"     description: "Scheme, http or https"
 type: "string"         active_configuration_error:           description: "If serialization of the active configuration failed, this\type: "string"
               \ contains the reason for the failure"   host:
       type: "string"         uncommitted_configuration_error:           description: "IfHostname serializationor ofIP theAddresss uncommitted configuration failed,\of server"
            \ this contains the reason for the failure"           type: "string"
      GatewayDestination:        type: "object"       description: "See https://docs.ceptor.io for detailed description of gateway\port:
             \ destinations"     GatewayLocation:       typedescription: "object"TCP port number     description: "See https://docs.ceptor.io for detailed description of gateway\of server"
             \ locations"     APIGroup:       type: "objectinteger"
      description: "An API Group contains a number of APIs - an API Group is used\    marked.unavailable:
    \ to divide APIs into logical sections or groups - and read/write access to\         \ a group can be limited to certain groups of API Administrators/developers."description: "True, if this host is currently marked as\
         properties:         id:          \ type:being unavailable"string"
           description: "Unique ID for this API Group"         nametype: "boolean"
            type: "string"           descriptionmarked.unavailable.newusers:
"A displayable name for the API Group"         description:           typedescription: "string"
    True, if this host is currently marked as\
     description: "Textual description of the API Group"         apiids:        \ being unavailable type: "array"for new users/sessions"
           description: "List of API IDs identifying all APIs that are currently within\    type: "boolean"
       \ the group"           items:    available:
        description: "API ID"             type: "string"  description: "True, if this host is currently available\
tags:           type: "array"           description: "Tags used for searching, just\ plainand stringsconsidered whichworking"
makes it\             \ easier to tag individual groups with common names."    type: "boolean"
     items:             description: "Tag name"    last.accessed.at:
        type: "string"         restrict.access.read:        description: "Last accessed type: "array"
  at (milliseconds since 1/1 1970)"
       description: "List of groups names - if any are defined, a users needs to\      type: "number"
     \ have one of these groups in order to be able to read the group itself,\      format: "int64"
     \ or any APIs and API versions inside it"           itemsproblem.reason:
            description: "Group name"             typedescription: "string"If server is not available or not working,\
  restrict.access.write:           type: "array"           description: "List of groups\ namesthis -contains ifthe anyreason"
are defined, a users needs to\             \ have one of these groups in order to be able to update the group itself,\
  type: "string"
        memory_free:
         \ ordescription: any"The APIsamount andof APImemory versionsfree, insidein itkilobytes"
          itemstype: "integer"
           descriptionformat: "Groupint64"
name"        memory_total:
    type: "string"     APIdescription: "The total amount of memory available, type:in "object"kilobytes"
          descriptiontype: "integer"An
API is defined within an API Group - an API can have multiple\format: "int64"
        memory_used:
\ APIVersions, where each version is an actual implementation of andescription: API."The amount of memory used, in kilobytes"
 properties:         idtype: "integer"
         type format: "stringint64"
        memory_max:
 description: "Unique ID for this API"    description: "The maximum amount  groupid:of memory available, in kilobytes"
          type: "stringinteger"
          descriptionformat: "int64"ID
 of the API Group that this API iscpu_system:
defined within"         namedescription: "CPU usage in system. Note that this is a snapshot type: "string"and can\
          description: "A displayable\ namebe forhighly theinaccurate API"depending on JVM and      description:operating system."
          type: "stringnumber"
          descriptionformat: "Textual description of the APIdouble"
        versionidscpu_process:
          typedescription: "array"CPU usage in process. Note that this is a snapshot and description:can\
"List of API Version IDs identifying all API Verions that are\  \ be highly inaccurate depending on JVM and    \ currently within the APIoperating system."
          itemstype: "number"
           descriptionformat: "APIVersion IDdouble"
     Status:
      type: "string"object"
      properties:
        tagsname:
          typedescription: "arrayServer / Service name"
          descriptiontype: "Tagsstring"
 used for searching, just plain strings which makesalias:
it\          description: "Alias, if \defined"
easier to tag individual APIs with common names."   type: "string"
      items:  status:
          description: "Tag name"
 Server status text, in HTML"
          type: "string"
        subscription.requiredstate:
          type$ref: "boolean#/components/schemas/ServiceState"
          descriptionping_time:
"If true, subscriptions are required in order to access any\ description: "Number of milliseconds it took to ping this service from the\
\ API Versions inside this API."       \ configuration subscriptionplans:server."
          type: "arrayinteger"
          descriptionproperties:
"List of subscription plan IDs that can be selected for this\description: "Additional properties for the service"
       \ API when subscribing to it."type: "object"
        events:
  items:        description: "List of 'significant'  type: "string"events, such as connect/disconnects,\
            \ restarts, config updates description: "Subscription Plan IDetc. for this service."
    APIVersion:       type: "objectarray"
      description: "An APIVersion is aitems:
specific version of an API - e.g. 1, 1.1 or\   description: "Event that has occurred"
 \ 2 - an API can have many versions concurrently, where some might be published\type: "string"
    History:
     \ and others not.type: "object"
      propertiesValidation:
      type: "object"
id:    ConfigInfo:
      type: "stringobject"
      required:
      description:- "Unique ID for this APIVersion"has_uncommitted_changes"
      properties:
        apiidhas_uncommitted_changes:
          type: "stringboolean"
          description: "IDTrue, ofif the API that this APIVersion is defined within"any changes exists between the active and uncommitted\
           name: \ configuration"
        typediff: "string"
          description: "AContains displayablea namestring forin thediff APIformat Version"if any differences between\
     description:       \ the active and uncommitted type:configuration "stringexists"
          descriptiontype: "Textual description of the API Versionstring"
        tagsactive_configuration:
          typedescription: "array"The complete XML of the active configuration - only present\
  description: "Tags used for searching, just plain strings which makes it\ if there are differences"
        \ easier to tag individual Groups, APIs or API Verions with common names."type: "string"
        uncommitted_configuration:
          itemsdescription: "The complete XML of the uncommitted configuration - only present\
  description: "Tag name"        \ if there are differences"
type: "string"         basepathtype: "string"
         typeactive_configuration_error:
"string"           description: "Define the base path for this API, e.g. /myapi/v1 - when an\
            \ API is published to an environment, the environment definition contains\
  If serialization of the active configuration failed, this\
            \ contains the reason for the failure"
          type: "string"
        uncommitted_configuration_error:
          description: "If serialization of the uncommitted configuration failed,\
            \ this contains the reason for the failure"
          type: "string"
    GatewayDestination:
      type: "object"
      description: "See https://docs.ceptor.io for detailed description of gateway\
        \ destinations"
    GatewayLocation:
      type: "object"
      description: "See https://docs.ceptor.io for detailed description of gateway\
        \ locations"
    APIGroup:
      type: "object"
      description: "An API Group contains a number of APIs - an API Group is used\
        \ to divide APIs into logical sections or groups - and read/write access to\
        \ a group can be limited to certain groups of API Administrators/developers."
      properties:
        id:
          type: "string"
          description: "Unique ID for this API Group"
        name:
          type: "string"
          description: "A displayable name for the API Group"
        description:
          type: "string"
          description: "Textual description of the API Group"
        apiids:
          type: "array"
          description: "List of API IDs identifying all APIs that are currently within\
            \ the group"
          items:
            description: "API ID"
            type: "string"
        tags:
          type: "array"
          description: "Tags used for searching, just plain strings which makes it\
            \ easier to tag individual groups with common names."
          items:
            description: "Tag name"
            type: "string"
        restrict.access.read:
          type: "array"
          description: "List of groups names - if any are defined, a users needs to\
            \ have one of these groups in order to be able to read the group itself,\
            \ or any APIs and API versions inside it"
          items:
            description: "Group name"
            type: "string"
        restrict.access.write:
          type: "array"
          description: "List of groups names - if any are defined, a users needs to\
            \ have one of these groups in order to be able to update the group itself,\
            \ or any APIs and API versions inside it"
          items:
            description: "Group name"
            type: "string"
    API:
      type: "object"
      description: "An API is defined within an API Group - an API can have multiple\
        \ APIVersions, where each version is an actual implementation of an API."
      properties:
        id:
          type: "string"
          description: "Unique ID for this API"
        groupid:
          type: "string"
          description: "ID of the API Group that this API is defined within"
        name:
          type: "string"
          description: "A displayable name for the API"
        description:
          type: "string"
          description: "Textual description of the API"
        versionids:
          type: "array"
          description: "List of API Version IDs identifying all API Verions that are\
            \ currently within the API"
          items:
            description: "APIVersion ID"
            type: "string"
        tags:
          type: "array"
          description: "Tags used for searching, just plain strings which makes it\
            \ easier to tag individual APIs with common names."
          items:
            description: "Tag name"
            type: "string"
        subscription.required:
          type: "boolean"
          description: "If true, subscriptions are required in order to access any\
            \ API Versions inside this API."
        subscriptionplans:
          type: "array"
          description: "List of subscription plan IDs that can be selected for this\
            \ API when subscribing to it."
          items:
            type: "string"
            description: "Subscription Plan ID"
    APIVersion:
      type: "object"
      description: "An APIVersion is a specific version of an API - e.g. 1, 1.1 or\
        \ 2 - an API can have many versions concurrently, where some might be published\
        \ and others not."
      properties:
        id:
          type: "string"
          description: "Unique ID for this APIVersion"
        apiid:
          type: "string"
          description: "ID of the API that this APIVersion is defined within"
        name:
          type: "string"
          description: "A displayable name for the API Version"
        description:
          type: "string"
          description: "Textual description of the API Version"
        tags:
          type: "array"
          description: "Tags used for searching, just plain strings which makes it\
            \ easier to tag individual Groups, APIs or API Verions with common names."
          items:
            description: "Tag name"
            type: "string"
        basepath:
          type: "string"
          description: "Define the base path for this API, e.g. /myapi/v1 - when an\
            \ API is published to an environment, the environment definition contains\
            \ the full URL - e.g. if an environment has URL: https://api.ceptor.io/sandbox/\
            \ and the API Version has base path /myapi/v1 then the full path to the\
            \ API becomes https://api.ceptor.io/sandbox/myapi/v1"
        apitype:
          type: "string"
          description: "API Type, openapi, soap or plainhttp"
        cors:
          type: "boolean"
          description: "If true, CORS headers are automatically created and added\
            \ to the responses, making it possible to use this API within a browser."
        private:
          type: "boolean"
          description: "If true, this API is private and will not be visible in the\
            \ developer portal - it can still be called depending on security / authorization\
            \ settings, but it will not be visible in the portal."
        documentation:
          type: "string"
          description: "Can contain any HTML - this documentation can be viewed inside\
            \ the developer portal - it is a good place to put general information\
            \ about the API version, or to provide links to external sites where implementation,\
            \ users guide etc. can be found."
        openapispec:
          type: "object"
          description: "OpenAPI specification for this API, if any"
        implementation:
          type: "object"
          description: "Contains the implementation details for this API and possibly\
            \ for individual operations - this is the actual implementation that decides\
            \ what happens when the API is called - it could be to proxy the API towards\
            \ a destination / backend service, or it might be to implement the API\
            \ in a script or a set of pipelines/tasks."
        security:
          type: "object"
          description: "Contains information on any security restrictions for this\
            \ API."
        deployed:
          type: "array"
          description: "Contains information about in which environments this API\
            \ is deployed/published."
          items:
            type: "string"
            description: "Environment ID"
    APISearchParameters:
      type: "object"
      properties:
        partnerid:
          description: "Search for APIs subsribed to a particular partner ID"
          type: "string"
        searchstring:
          description: "The string to search for"
          type: "string"
        deployed:
          description: "True, if only deployed API Versions should be matched."
          type: "boolean"
        developerportal:
          description: "True, if search is made from developer portal"
         \ the full URL - e.g. if an environment has URL: https://api.ceptor.io/sandbox/\type: "boolean"
        subscription:
          type: "string"
\ and the API Version has base path /myapi/v1 then the full path to the\ type:
          description: "API Type, openapi, soap or plainhttp"
 \ API becomes https://api.ceptor.io/sandbox/myapi/v1"         apitypetype: "string"
         typeenvironment.name:
"string"
          description: "APIName Type, openapi, soap or plainhttp"of environment"
          corstype: "string"
         typebasepath:
"boolean"           description: "If true, CORS headers are automatically created and added\Pattern that basepath must match"
          type: "string"
    APISearchResults:
  \ to the responses, making it possible to use this API within a browser."type: "object"
      properties:
         privategroups:
          type: "booleanarray"
          descriptionitems:
"If true, this API is private and will not be visible in the\
$ref: "#/components/schemas/APIGroup"
        apis:
  \ developer portal - it can still be called depending on security / authorization\type: "array"
          items:
     \ settings, but it will not be visible in the portal.$ref: "#/components/schemas/API"
        documentationapiversions:
          type: "stringarray"
          descriptionitems: "Can contain any HTML - this documentation can be viewed inside\
            $ref: "#/components/schemas/APIVersion"
    ExportParameters:
      type: "object"
      properties:
\ the developer portal - it is a goodconfiguration:
place to put general information\      type: "boolean"
     \ about the API version, ordescription: to"Specify provideif linksAPI toManager externalConfiguration, sitescontaining whererate implementationlimits,\
            \ subscription usersplans guideand etc.environments canshould be foundexported."
        openapispecpartners:
          type: "objectboolean"
          description: "OpenAPI specification for this API, if anySpecify if Partners, Partner Applications and Developers should\
            \ be exported too."
        implementationgroups:
          typedescription: "objectList of API Group IDs to export"
          descriptiontype: "array"Contains
 the implementation details for this API and possibly\  items:
          \ for individual operations - this is the actual implementation that decides\
type: "string"
        apis:
          description: \"List whatof happensAPI whenIDs theto APIexport"
is called - it could be to proxy the API towards\
type: "array"
          items:
\ a destination / backend service, or it might be to implement the API\type: "string"
        versions:
   \ in a script or a set of pipelines/tasks."
        security:description: "List of API Version IDs to export"
          type: "objectarray"
          descriptionitems:
"Contains information on any security restrictions for this\     type: "string"
    PingResult:
 \ API."    type: "object"
   deployed:   properties:
       type: "array" systemname:
          description: "Contains information about in which environments this API\Name of system"
          type: "string"
      \ is deployed/published." version:
          itemsdescription: "System version"
          type: "string"
        timestamp:
          description: "EnvironmentBuild IDtimestamp"

   APISearchParameters:       type: "objectstring"
 
    properties:         partneridcopyright:
          description: "Search for APIs subsribed to a particular partner IDCopyright"
          type: "string"
        searchstringhostname:
          description: "TheHostname stringof tothe searchconfiguration forserver"
          type: "string"
        deployedip:
          description: "True,IP ifaddress onlyof deployedthe API Versions should be matched.configuration server"
          type: "booleanstring"
        developerportalservices:
          description: "True,List if search is made from developer portalof services/servers"
          type: "booleanarray"
          subscriptionitems:
           type $ref: "string#/components/schemas/Server"
    ActionComment:
   type:   type: "object"
      description: "APIA Type,comment openapi,to soapan or plainhttpAction"
          typeproperties:
"string"         environment.namecreated_at:
          descriptiontype: "Name of environmentnumber"
          typeformat: "stringlong"
         basepath description: "Timestamp this comment was created at - Milliseconds since\
  description: "Pattern that basepath must match"     \ 1/1 1970 UTC"
  type: "string"     APISearchResultscreated_by:
          type: "objectstring"
      properties:    description: "Userid of user that groups:created the comment"
        typetext:
"array"           itemstype: "string"
           $refdescription: "#/components/schemas/APIGroup"
        apis:Comment text"
    Action:
       type: "arrayobject"
      description: "An Action is items:a message/action to an Administrator - it can have\
    $ref: "#/components/schemas/API"   \ different forms, e.g. a TODO apiversions:list item, or a subscription request from a\
   type:  "array"   \ client that must be approved or rejected."
items:      properties:
      $ref: "#/components/schemas/APIVersion"
 id:
   ExportParameters:       type: "objectstring"
         properties: description: "Action ID"
        configurationtype:
          type: "booleanstring"
          description: "Specify if API Manager Configuration, containing rate limits,\Type of Action"
          enum:
       \ subscription plans and- environments"subscriptionrequest"
should be exported."        - partners:"todo"
          type:- "booleanerror"
          description:- "Specify if Partners, Partner Applications and Developers should\warning"
        created_at:
         \ be exported too."type: "number"
         groups: format: "long"
          description: "ListTimestamp this ofAction APIwas Groupcreated IDsat to- export"Milliseconds since\
         type: "array"  \ 1/1 1970 UTC"
     items:   last_updated_at:
          type: "stringnumber"
         apis: format: "long"
          description: "List of API IDs to export"Timestamp this Action was last updated at - Milliseconds since\
          type: "array" \ 1/1 1970 UTC"
      items:  title:
          type: "string"
        versions:  description: "Title of this action"
    description: "List of API Versiontext:
IDs to export"
          type: "arraystring"
          itemsdescription: "Action text"
          typecomments:
"string"     PingResult:       type: "objectarray"
          propertiesitems:
        systemname:    $ref: "#/components/schemas/ActionComment"
     description: "Name of system" cancelled_by_developer:
          typedescription: "string"
     True if this request has been cancelled by a Partner Developer.\
  version:          \ description:Only "Systemfor versionsubscriptionrequest"
          type: "stringboolean"
        timestamppartner_application_id:
          description: "Build timestampApplication ID. Only for subscriptionrequest"
          type: "string"
        copyrightapiid:
          description: "CopyrightAPI ID. Only for subscriptionrequest"
          type: "string"
        hostnamesubscription_plan_id:
          description: "Hostname of the configuration serverSubscription Plan ID. Only for subscriptionrequest"
          type: "string"
        iprejected_by_admin:
          description: "IP address of the configuration serverTrue, if request has been rejected by administrator. Only\
            \ for subscriptionrequest"
          type: "stringboolean"
        servicesapproved_by_admin:
          description: "ListTrue, of services/servers"
     if request has been approved by administrator. Only\
    type: "array"       \ for subscriptionrequest"
 items:             $reftype: "#/components/schemas/Serverboolean"
    Error:
      required:
      - "code"
      - "message"
      properties:
        code:
          type: "integer"
          format: "int32"
        message:
          type: "string"
  securitySchemes:
    client_id_secret:
      type: "http"
      scheme: "basic"
      description: "Basic authentication using client_id and client_secret from API\
        \ Partner Application"
security:
- client_id_secret: []
servers:
- url: "https://127.0.0.1:9443/admin/v1"
  description: "Internal APIs are exposed here, such as APIs for Administration"