{
"openapi"---
openapi: "3.0.0",
"info":
{ "version": "1.0.0",
"title": "Ceptor API Management Partner",
"description": "Ceptor API Management Partner related APIs - allows administration\
\ of Partners, Partner Applications and Developers."
},
"paths": {
"/apimgr/partners": {
"get": {
"summary": "List all partners",
"description": "List all partners registered in the system",
"tags": [
- "api management",
- "api partner"
responses:
], "responses"200:
{ description: "200OK":
{ "description"content:
"OK", "content": {
"applicationapplication/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/APIPartner"
default:
}description: "unexpected error"
content:
} application/json:
} schema:
} }, $ref: "#/components/schemas/Error"
/apimgr/partners/{developerid}:
"default"get:
{ summary: "List all partners for a "descriptiondeveloper":
"unexpected error", description: "List all partners registered in the "content": {system for a specific developer"
tags:
- "api management"application/json":
{ - "api partner"
"schema"parameters:
{ - name: "developerid"
"$ref"in: "#/components/schemas/Errorpath"
description: "API Developer ID"
} required: true
schema:
} type: "string"
} responses:
} 200:
} description: "OK"
} }, "/apimgr/partners/{developerid}"content:
{ "get": { application/json:
"summary": "List all partners for a developer", schema:
"description": "List all partners registered in the system for a specifictype: developer","array"
"tags": [ items:
"api management", $ref: "api partner#/components/schemas/APIPartner"
],404:
"parameters": [ description: "Not Found"
{ default:
description: "nameunexpected error":
"developerid", content:
"in": "path", application/json:
"description": "API Developer ID", schema:
"required": true, $ref: "schema": {
"#/components/schemas/Error"
/apimgr/partner:
post:
"type"summary: "string"Create a partner"
description: "Creates an partner }from the given data"
tags:
} - "api management"
], - "api partner"responses":
{ requestBody:
"200": { description: "API Partner to create"
"description": "OK", content:
"content"application/json:
{ schema:
"application/json": { $ref: "#/components/schemas/APIPartner"
"schema" responses:
{ 200:
"type"description: "array",OK"
content:
"items": { application/json:
schema:
"$ref": "#/components/schemas/APIPartner"
default:
} description: "unexpected error"
content:
} application/json:
} schema:
} }, $ref: "#/components/schemas/Error"
put:
"404": { summary: "Update a partner"
"description": "NotUpdates Found"a partner from a specific partner ID"
}, tags:
- "api management"default":
{ requestBody:
"description": "unexpectedAPI error",Partner to update"
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorAPIPartner"
responses:
201:
} description: "Update confirmation"
} default:
} description: "unexpected error"
} content:
} } application/json:
}, "/apimgr/partner": { "post"schema:
{ "summary": "Create a partner",
"description": "Creates an partner from the given data",
"tags": [
"api management",
"api partner"
],
"requestBody": {
"description": "API Partner to create",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/APIPartner"
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/APIPartner"
}
}
}
},
"default": {
"description": "unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
},
"put": {
"summary": "Update a partner",
"description": "Updates a partner from a specific partner ID",
"tags": [
"api management"
],
"requestBody": {
"description": "API Partner to update",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/APIPartner"
}
}
}
},
"responses": {
"201": {
"description": "Update confirmation"
},
"default": {
"description": "unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/apimgr/partner/{partnerid}": {
"get": {
"summary": "Get a partner with a specific ID",
"description": "Retrieves a partner from a specific partner ID",
"tags": [
"api management",
"api partner"
],
"parameters": [
{
"name": "partnerid",
"in": "path",
"description": "API Partner ID",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/APIPartner"
}
}
}
},
"404": {
"description": "Not Found"
},
"default": {
"description": "unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
},
"delete": {
"summary": "Delete a partner",
"description": "Deletes an API Partner from the API Management system",
"tags": [
"api management",
"api partner"
],
"parameters": [
{
"name": "partnerid",
"in": "path",
"description": "API Partner ID",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"201": {
"description": "Delete confirmation"
},
"default": {
"description": "unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/apimgr/developer/email/{email}": {
"get": {
"summary": "Get an API developer",
"description": "Get an API developer from a specific email",
"tags": [
"api management",
"api developer"
],
"parameters": [
{
"name": "email",
"in": "path",
"description": "API Developer email",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/APIDeveloper"
}
}
}
},
"404": {
"description": "Not Found"
},
"default": {
"description": "unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/apimgr/developer/{developerid}": {
"get": {
"summary": "Get an API developer",
"description": "Get an API developer from an ID",
"tags": [
"api management",
"api developer"
],
"parameters": [
{
"name": "developerid",
"in": "path",
"description": "API Developer Id",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/APIDeveloper"
}
}
}
},
"default": {
"description": "unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/apimgr/application/{applicationid}": {
"get": {
"summary": "Retrieve a single application",
"description": "Retrieve an application registered in the system",
"tags": [
"api management",
"api partner application"
],
"parameters": [
{
"name": "applicationid",
"in": "path",
"description": "API Application ID",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK", "content": {
$ref: "#/components/schemas/Error"
/apimgr/partner/{partnerid}:
get:
summary: "application/json": {
Get a partner with a specific ID"
description: "Retrieves a partner from "schema": {
a specific partner ID"
tags:
- "$ref": "#/components/schemas/APIPartnerApplicationapi management"
- "api partner"
parameters:
} - name: "partnerid"
} in: "path"
description: }"API Partner ID"
}, required: true
"404"schema:
{ type: "descriptionstring":
"Not Found" responses:
}, 200:
"default": { description: "OK"
"description"content:
"unexpected error", "content": {application/json:
"application/json"schema:
{ $ref: "schema": {#/components/schemas/APIPartner"
404:
"$ref"description: "#/components/schemas/ErrorNot Found"
default:
} description: "unexpected error"
} content:
} application/json:
} schema:
} }, $ref: "delete": {
#/components/schemas/Error"
delete:
"summary": "Delete a single applicationpartner",
"description": "DeleteDeletes an applicationAPI registeredPartner infrom the API Management system",
tags:
"tags": [ - "api management"
- "api management",partner"
parameters:
- name: "apipartnerid"
partner application" in: "path"
], description: "parameters": [API Partner ID"
required: true
{ schema:
"name"type: "applicationidstring",
responses:
"in": "path", 201:
"description": "APIDelete Application IDconfirmation",
default:
"required": true, description: "unexpected error"
"schema": { content:
"type": "string"
application/json:
} schema:
} ],
$ref: "#/components/schemas/Error"
/apimgr/developer/email/{email}:
"responses"get:
{ summary: "Get an API developer"
"201": { description: "Get an API developer from a specific "descriptionemail":
"Delete confirmation" tags:
}, - "api management"
- "default": {api developer"
parameters:
- name: "descriptionemail":
"unexpected error", in: "path"
"content": { description: "API Developer email"
"application/json"required: {true
schema:
"schema": { type: "string"
responses:
"$ref"200:
"#/components/schemas/Error" description: "OK"
} content:
} application/json:
} schema:
} } $ref: "#/components/schemas/APIDeveloper"
} 404:
}, "/apimgr/application": { description: "Not "post": {Found"
"summary"default:
"Creates an application", "description": "Createsunexpected anerror"
application registered in the system", content:
"tags": [ application/json:
"api management", "api partner application"schema:
], $ref: "requestBody": {
#/components/schemas/Error"
/apimgr/developer/{developerid}:
get:
"description": "API Partner Application tosummary: create",Get an API developer"
description: "content":Get {an API developer from an ID"
"application/json"tags:
{ - "api management"
- "schemaapi developer":
{ parameters:
"$ref"- name: "#/components/schemas/APIPartnerApplicationdeveloperid"
in: "path"
} description: "API Developer Id"
} required: true
} schema:
}, type: "string"
"responses": { responses:
"200": {
"description": "OK",
"content": {
"application/json": {
:
"schema": {
"$ref": "#/components/schemas/APIPartnerApplicationAPIDeveloper"
default:
} description: "unexpected error"
} content:
} application/json:
}, schema:
"default": { "description"$ref: "unexpected error",#/components/schemas/Error"
/apimgr/application/{applicationid}:
"content"get:
{ summary: "Retrieve a single "application/json":
{ description: "Retrieve an application registered in "schema": {
the system"
tags:
- "$ref":api "#/components/schemas/Error"management"
- "api partner application"
}parameters:
- name: "applicationid"
} in: "path"
}description: "API Application ID"
} required: true
} schema:
}, type: "putstring":
{ "summary"responses:
"Update an application", "description"200:
"Updates an application registered in the system", description: "tagsOK":
[ content:
"api management", "api partner application"application/json:
], schema:
"requestBody": { "description"$ref: "API Partner Application to update",#/components/schemas/APIPartnerApplication"
404:
"content": { description: "Not Found"
"application/json": { default:
description: "unexpected "schemaerror":
{ content:
"$ref": "#/components/schemas/APIPartnerApplication" application/json:
} schema:
} $ref: }"#/components/schemas/Error"
delete:
}, summary: "Delete a single application"
"responses": { description: "Delete an application registered in the system"201":
{ tags:
"description":- "Updateapi confirmationmanagement"
- "api partner application"
}, parameters:
"default": { - name: "applicationid"
in: "descriptionpath":
"unexpected error", description: "API Application ID"
"content": { required: true
"application/json"schema:
{ type: "string"
"schema" responses:
{ 201:
"$ref"description: "#/components/schemas/ErrorDelete confirmation"
default:
} description: "unexpected error"
} content:
} application/json:
} }schema:
} } }, $ref: "#/components/schemas/Error"
/apimgr/application:
{ "schemas"post:
{ summary: "APIPartner":Creates {an application"
description: "type": "object",
Creates an application registered in the system"
"description": "API Partner", tags:
- "propertiesapi management":
{ - "api partner application"
"id": { requestBody:
"description": "Unique ID of this partner.",API Partner Application to create"
"type"content:
"string" application/json:
}, "name"schema:
{ "description"$ref: "Name of this API Partner","#/components/schemas/APIPartnerApplication"
responses:
"type"200:
"string" },description: "OK"
"description"content:
{ "description"application/json:
"Description of the API Partner", schema:
"type": "string" }, $ref: "#/components/schemas/APIPartnerApplication"
"contact": { default:
"description": "Contactunexpected informationerror",
"type"content:
"string" }, application/json:
"applicationids": { schema:
"description": "List of application IDs identifying each partner application that is registered for this partner.",
$ref: "#/components/schemas/Error"
put:
summary: "Update an application"type":
"array", description: "Updates an application registered in the "itemssystem":
{ tags:
- "api "descriptionmanagement":
"Application ID", - "api partner application"
"type"requestBody:
"string" description: "API Partner Application to }update"
content:
}, application/json:
"roles": { schema:
"description": "The roles assigned to this partner. The roles will be matched against API roles so applications in this partner can only subscripe to API complying with these roles",
$ref: "#/components/schemas/APIPartnerApplication"
responses:
201:
description: "type": "array",Update confirmation"
"items": {default:
description: "unexpected error"
"description": "Role name", content:
"type": "string" application/json:
} schema:
}, $ref: "developers": {#/components/schemas/Error"
components:
schemas:
APIPartner:
type: "descriptionobject":
"List of developers ofdescription: this"API applicationPartner",
properties:
"type": "array", id:
"items"description: {"Unique ID of this partner."
"type": "object",string"
name:
"properties"description: {"Name of this API Partner"
type: "idstring":
{ description:
"description": "DeveloperDescription ID",of the API Partner"
"type": "string"
contact:
}, description: "Contact information"
type: "rolestring":
{ applicationids:
"description": "RoleList nameof (OWNER, READ_ONLY, NONE)",
application IDs identifying each partner application\
\ that is "type": "string",
registered for this partner."
type: "enumarray":
[ "OWNER",items:
description: "Application ID"
"READ_ONLY", type: "string"
roles:
"NONE" description: "The roles assigned to this partner. The roles will be matched\
] \ against API roles so }applications in this partner can only subscripe\
} \ to API complying with these roles"
} type: "array"
} }items:
}, description: "APIDeveloper": {Role name"
"type": "objectstring",
"properties"developers:
{ description: "id":List {of developers of this application"
"description": "The ID of this API Developer - cannot be changed after the developer has been created.",type: "array"
items:
"type": "string"object"
properties:
}, "credentials"id:
{ "description": "TheDeveloper credentialsID"
this user is using to log into the developer portal (matching a challenge in the user admin database)",type: "string"
"type"role:
"string" }, description: "Role name (OWNER, READ_ONLY, NONE)"
"email": { "description"type: "string"Contact
email for the API developer", "type"enum:
"string" }, - "OWNER"
"partners": { - "description": "A list of API Partners this developer is assigned to and which role",READ_ONLY"
- "NONE"
APIDeveloper:
"type": "arrayobject",
properties:
"items"id:
{ description: "The ID of this "type": "object",
API Developer - cannot be changed after the\
"properties": { \ developer has been created."
type: "idstring":
{ credentials:
"description": "The UIDcredentials ofthis theuser partner",is using to log into the developer\
"type": "string"
\ portal (matching a challenge in the user admin database)"
}, type: "string"
"role"email:
{ description: "Contact email for the API developer"
"description": "The developer role for this partner (OWNER, READ_ONLY, NONE)", type: "string"
partners:
"type": "string", description: "A list of API Partners this developer is assigned to and which\
"enum": [ \ role"
type: "OWNERarray",
items:
"READ_ONLY", type: "object"
properties:
"NONE" id:
] description: "The UID of the partner"
} type: "string"
} } role:
}, description: "The developer role "applications": {
for this partner (OWNER, READ_ONLY,\
"description": "A list of API Partner Applications this developer is\ assignedNONE)"
to and which role", "type": "array",string"
"items"enum:
{ - "typeOWNER": "object",
- "propertiesREAD_ONLY":
{ - "idNONE":
{ applications:
"description": "TheA UIDlist of API Partner theApplications application",this developer is assigned\
\ to and "type": "stringwhich role"
type: "array"
}, items:
"role": { type: "object"
properties:
"description": "The developer role for this partner (OWNER, READ_ONLY, DEVELOPER)", id:
"type"description: "string",The UID of the application"
"enum": [ type: "string"
role:
"OWNER", description: "The developer role for this partner (OWNER, "READ_ONLY",\
\ "DEVELOPER)"
type: "string"
] enum:
} } - "OWNER"
} - "READ_ONLY"
} } },
- "DEVELOPER"
"APIPartnerApplication": {
"description": "API Partner Application",
"type": "object",
"properties": {
"id": {
"description": "Unique ID of this Application",
"type": "string"
},
"name": {
"description": "Name of this API Partner application",
"type": "string"
},
"description": {
"description": "Description of the API Partner application",
"type": "string"
},
"partner_id": {
"description": "Unique ID of the application this partner is linked to",
"type": "string to"
},
type: "string"
"client_id":
{ "description": "The client ID that can authenticate this application",
"type": "string"
},
"client_secret": {
"description": "The secret for the provided client id mentioned above",
"type": "string"
},
"apikeys":
{ "description": "List of API keys that can be used to authenticate this application\
if allowed", \ if "type": "array",
"items": {
allowed"
"description"type: "API Keyarray",
items:
"type": "string" description: "API Key"
} },type: "string"
"allowed_scopes": {
"description": "Specifies which scopes the application is allowed to request.",
"type": "array",
"items": {
"description": "OAuth2 Scope name",
"type": "string"
valid_grant_types:
} description: "The },
"valid_grant_types": {
allowed grant types that this application is allowed to\
"description": "The allowed grant types that this application is allowed to\ use",
"type": "array",
"items": {
"description": "grant type name",
"type": "string"
}
},
"accesstoken_type": {
"description": "The type of OAuth2 access token can be either UUID, or JWT\
\ - if it is a UUID, it can be used as a key - e.g. a bearer token, which\
\ is presented during authentication. If JWT, the access token is a signed signed\
\ JWT (JSON Web Token) containing information about the user",
type: "type": "string",string"
enum:
- "UUID"
- "enum": [JWT"
allowed_uris:
description: "UUID",
OAuth2 redirect URIs for the application"
type: "JWTarray"
items:
] description: "Redirect URI"
}, type: "string"
allowed_logout_uris": {
"description": "OAuth2 redirect URIs Logout URIs which are allowed for thethis application",
"type": "array",
"items":
{ "description": "RedirectLogout URI",
"type": "string"
accesstoken_valid_seconds:
} description: "If set, overrides },the time an issued OAuth2 access token is\
"allowed_logout_uris": { \ valid for"
"description": "OAuth2 Logout URIs which are allowed for thistype: application"integer",
refreshtoken_validity_seconds:
"type": "array", description: "If set, this is the number "items": {
of seconds that an OAuth2 access\
"description": "Logout URI",\ token is valid for."
"type": "stringinteger"
subscriptions:
} description: "List of JSON },Objects with API unique ID as key and subscription\
"accesstoken_valid_seconds": { \ plan unique ID "description": "If set, overrides the time an issued OAuth2 access token is valid for",as value."
type: "array"
"type"items:
"integer" }, type: "object"
"refreshtoken_validity_seconds": {
pending_subscriptions:
"description": "If set, this is the number List of secondsJSON thatobjects anwith OAuth2pending access token is valid forsubscriptions requests.",
"type": "integerarray"
items:
}, type: "subscriptionsobject":
{ properties:
"description": "List of JSON Objects with API unique ID as key and subscription planappid:
unique ID as value.", "type": "array",string"
description: "itemsAPI ID":
{ "type"subscriptionplan_id:
"object" } type: "string"
}, description: "developers": {Subscription Plan ID"
"description"comment_requestor:
"List of objects with developers", "type": "arraystring",
"items": { description: "Comment made by the requestor when requesting the "typesubscription":
"object", "properties"comment_response:
{ type: "idstring": {
"description": "TheComment UIDmade ofby the developerapprover/rejector",
"type": "string"unread:
type: "boolean"
}, description: "role":True {if unread by API Partner"
"description"action_id:
"The developer role for this application", type: "string"
"type": "string", description: "ID of corresponding Action created for this request"
"enum": [ approved:
"OWNER", type: "boolean"
"DEVELOPER", description: "True, if request has been approved by administrator"
"READ_ONLY" rejected:
] type: "boolean"
} description: "True, if request has been rejected by administrator"
} developers:
} description: "List of objects with developers"
}, type: "certificatesarray":
{ items:
"description": "List of JSON objects with SSL/TLS client certificatetype: information"object",
"type"properties:
"array", "items"id:
{ "type"description: "object",The UID of the developer"
"properties": { type: "string"
"subject": { role:
"description": "CertificateThe developer Subjectrole DN",for this application"
"type": "string"
},enum:
- "issuerOWNER":
{ - "DEVELOPER"
"description": "Certificate Issuer DN", - "READ_ONLY"
"type": "string" certificates:
description: "List of JSON },objects with SSL/TLS client certificate information"
type: "certificate": {array"
items:
"description"type: "object"certificate,
DER encoded and base64 encoded. Subject and Issuer MUST match the certificate.", properties:
subject:
"type": "string" description: "Certificate Subject DN"
}, type: "developerstring":
{ issuer:
"description": "ID of developer who added the certificate in developer portal, ifdescription: any.",Certificate Issuer DN"
"type": "string"
certificate:
}, description: "certificate.allow.expired": {, DER encoded and base64 encoded. Subject\
"description": "True, if expired certificate is allowed",
\ and Issuer MUST match the certificate."
"type": "booleanstring"
developer:
}, description: "certificate.skip.chain.checks": {
"description": "True, if certificate chain, revocation etc. check should be skipped and request trusted if client cert matches this cert.",
"ID of developer who added the certificate in developer\
\ portal, if any."
"type": "booleanstring"
certificate.allow.expired:
} }description: "True, if expired certificate is allowed"
} type: }"boolean"
} },certificate.skip.chain.checks:
"Error": { description: "required": [
"code",
True, if certificate chain, revocation etc. check should\
"message" ], \ be skipped and request trusted if "properties": {
client cert matches this cert."
"code": { type: "boolean"
"description": "Error:
code", required:
"type":- "integercode",
- "message"
"format": "int32" properties:
code:
}, description: "messageError code":
{ "description"type: "Error messageinteger",
"type"format: "stringint32"
message:
} }description: "Error message"
} }, type: "securitySchemesstring":
{ securitySchemes:
"client_id_secret":
{ "type": "http",
"scheme": "basic",
"description": "Basic authentication using client_id and client_secret from API\
Partner Application" }\ }
},
"security": [
{
"Partner Application"
security:
- client_id_secret": []
}
],
"servers":
[
{
"url"- url: "https://127.0.0.1:9443/api/v1",
"description": "Internal APIs are exposed here, such as APIs for Administration"
}
]
} |