Versions Compared

Key

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

...

Code Block
languagejs
titleSubscription Plan Example
{
  "id": "4841e9f5-2af5-4e42-ac1d-6b19be04c446",
  "name": "Free",
  "description": "Free plan",
  "default": true,
  "requires_approval": true,
  "ratelimitgroup": "7933225d-6593-4201-bf14-c848226c770b"
}

...

NameTypeDescription
idstringID of this subscription plan. Cannot be changed after creation.
namestringName of this subscription plan
descriptionstringDescription of this plan
defaultbooleanIf true, when new APIs are created, this subscription plan will be added to them by default.
ratelimitgroupstringThe ID of the rate limit group that limits the number of calls to the APIs in this subscription plan.
requires_approvalbooleanIf true, subscriptions to this API plan requires administrator approval.

API Profile

An API Profile is used to specify a set of common rules and limitations for API Designers - e.g. allowing publishing APIs in a specific set of environments, specifying common security settings, not allowing overriding of these settings etc. etc.

...

An API Profile has these fields:

NameTypeDescription
namestringName of this API Profile
descriptionstringDescription of this API Profile
rolesarray of stringsIf not empty, an API Designer needs one of these roles in order to be able to use the API Profile and select it for an API.
subscription.allow.overrideboolean
subscription.requiredbooleanIf true, a subscription is required in order to access this API, if false, no subscription is required and the API is accessible for everyone assuming no additional security has been configured for it.
subscriptionplansarray of stringsIf subscription.required is set to true, this contains the list of IDs of the subscription plans that are applicable for this API - this list determines which plans an API Partner Application can subscribe to.
requestmod.specify.defaultsbooleanIf true, request modification defaults are configured in the requestmodification object. See
requestmod.allow.overridebooleanIf true, an API Designer is allowed to override requestmodification settings.
requestmodJSON ObjectSee API Version requestmodification object.
security.specify.defaultsbooleanSet to true to specify security defaults for this API Profile
security.allow.overridebooleanIf true, an API Designer is allowed to override security settings on an API Version
security.allow.override.per.operationbooleanIf true, an API Designer is allowed to specify security settings per operation
securityJSON ObjectSee API Version security object.
implementation.limit.methodsbooleanSet to true to limit implementation options that an API Designer can choose from.
implementation.method.pipelinebooleanTrue to allow using Pipelines and Tasks as implementation method
implementation.method.scriptbooleanTrue to allow using Scripts as implementation method
implementation.method.proxybooleanTrue to allow using Proxy as implementation method
implementation.allow.override.per.operationbooleanIf true, and API Designer can override implementation settings per operation -if false, he can only specify them for the entire API.
publish.allowbooleanSet to true to allow an API Designer to publish APIs
environmentsarray of stringsList of environment names that an API can be published to. Leave empty for no restrictions
destinationsarray of stringsList of destination names that proxying is restricted to. Leave empty for no restrictions

API Group

API Groups contain 0 or more APIs. An API Group is a collection of APIs

...

Code Block
languagejs
titleRate Limit Group Example
{
	"id":"f83bb6fd-4252-4526-8bd0-49d973a41603",
	"name":"MyMobileApplication",
	"description":"The best of our applications",
	"partner_id":"15ed2323-2913-4f09-b1c2-4694c7c50de5",
	"client_id":"1a32f78d-83dc-488b-9e22-50b02e9328d1",
	"client_secret":"f2add5d3-e67a-415f-8163-a751d7566047",
	"apikeys": [
		"1b119b37-e43b-46e3-9343-7cf26cec17ef"
	],
	"allowed_scopes": [
		"openid","email","profile"
	],
	"valid_grant_types": [
		"implicit","authorization_code","hybrid","client_credentials"
	],
	"developers": [
	],
	"accesstoken_type":"UUID",
	"allowed_uris": [
		"/redir1"
	],
	"allowed_logout_uris": [
		"/logoff1"
	],
	"accesstoken_valid_seconds":60,
	"refreshtoken_validity_seconds":60,
	"maximum_idtoken_expiration_minutes":12,
	"subscriptions": {
		"c819724f-69e3-46bf-86d9-b15e59d1ffb0":"4841e9f5-2af5-4e42-ac1d-6b19be04c446"
	},
   	 "certificatespending_subscriptions": [
		{
			"subject": "C=DK,OU=Asseco,CN=Person",
			"issuer": "C=DK,OU=Asseco,CN=CA 1",
			"certificate": "MIIDVDCCAjygAwIBAgIHA9bbH0Y2ADANxxxxxxx ..... ==",
			"developer": null,
			"certificate.allow.expired": false,
			"certificate.skip.chain.checks": false
		}
	]
}

The API Partner application has these fields:

...

        {
            "apiid": "73a02c77-c856-49fa-a1b0-be31ee8d808a",
            "subscriptionplan_id": "4841e9f5-2af5-4e42-ac1d-6b19be04c446",
            "comment_requestor": "Please grant me access",
            "comment_response": "Certainly, enjoy",
            "unread": false,
            "action_id": "xxxxxx",
            "approved": true,
            "rejected": false
        }
    ],
	"certificates": [
		{
			"subject": "C=DK,OU=Asseco,CN=Person",
			"issuer": "C=DK,OU=Asseco,CN=CA 1",
			"certificate": "MIIDVDCCAjygAwIBAgIHA9bbH0Y2ADANxxxxxxx ..... ==",
			"developer": null,
			"certificate.allow.expired": false,
			"certificate.skip.chain.checks": false
		}
	]
}


The API Partner application has these fields:

NameTypeDescription
idstringUnique ID of this application.
namestringName of this API Partner application
descriptionstringDescription of the API Partner application
partner_idstringUnique ID of the application this partner is linked to
client_idstringThe client ID that can authenticate this application
client_secretstringThe secret for the provided client id mentioned above

apikeys

array of stringsList of API keys that can be used to authenticate this application if allowed
allowed_scopesarray of stringsSpecifies which scopes the application is allowed to request.

valid_grant_types

array of stringsThe allowed grant types that this application is allowed to use

accesstoken_type

string

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 JWT (JSON Web Token) containing information about the user

allowed_uris

array of stringsOAuth2 redirect URIs for the application

allowed_logout_uris

array of stringsOAuth2 Logout URIs which are allowed for this application

accesstoken_valid_seconds

numberIf set, overrides the time an issued OAuth2 access token is valid for

refreshtoken_validity_seconds

numberIf set, this is the number of seconds that an OAuth2 access token is valid for.

maximum_idtoken_expiration_minutes

numberIf set, this is the number of minutes that an issued ID token is valid for

subscriptions

array of JSON objectsList of JSON Objects with API unique ID as key and subscription plan unique ID as value.developersarray of JSON ObjectsList of JSON objects with developers
  • id
stringThe UID of the developer
  • role
stringThe developer role for this application (OWNER, DEVELOPER, READ_ONLY)certificatesarray of JSON ObjectsList of JSON objects with SSL/TLS client certificate information
  • subject
stringCertificate Subject DN
  • issuer
stringCertificate Issuer DN
  • certificate
stringcertificate, DER encoded and base64 encoded. Subject and Issuer MUST match the certificate.
  • developer
stringID of developer who added the certificate in developer portal, if any.
  • certificate.allow.expired
booleanTrue if expired certificate is allowed
  • certificate.skip.chain.checks
booleanTrue if certificate chain, revocation etc. check should be skipped and request trusted if client cert matches this cert.

maximum_idtoken_expiration_minutes

numberIf set, this is the number of minutes that an issued ID token is valid for

subscriptions

array of JSON objectsList of JSON Objects with API unique ID as key and subscription plan unique ID as value.
developersarray of JSON ObjectsList of JSON objects with developers
  • id
stringThe UID of the developer
  • role
stringThe developer role for this application (OWNER, DEVELOPER, READ_ONLY)
certificatesarray of JSON ObjectsList of JSON objects with SSL/TLS client certificate information
  • subject
stringCertificate Subject DN
  • issuer
stringCertificate Issuer DN
  • certificate
stringcertificate, DER encoded and base64 encoded. Subject and Issuer MUST match the certificate.
  • developer
stringID of developer who added the certificate in developer portal, if any.
  • certificate.allow.expired
booleanTrue if expired certificate is allowed
  • certificate.skip.chain.checks
booleanTrue if certificate chain, revocation etc. check should be skipped and request trusted if client cert matches this cert.

pending_subscriptions

array of JSON objectsList of JSON objects with pending subscription requests
  • apiid
stringAPI ID
  • subscriptionplan_id
stringSubscription Plan ID
  • comment_requestor
stringComment made by the requestor when requesting the subscription
  • comment_response
stringComment made by the approver/rejector
  • unread
booleanTrue if unread by API Partner
  • action_id
stringID of corresponding Action created for this request
  • approved
booleanTrue, if request has been approved by administrator
  • rejected
booleanTrue, if request has been rejected by administrator


API Developer

An API develop is a user with access to the developer portal and creator/owner/developer of API Partners and applications.

...

One API Developer have these fields:

NameTypeDescription
idstringThe ID of this API Developer - cannot be changed after the developer has been created.
credentialsstringThe credentials this user is using to log into the developer portal (matching a challenge in the user admin database)
emailstringContact email for the API developer
partnersarray of JSON ObjectsA list of API Partners this developer is assigned to and which role
  • id

string

The UID of the partner
  • role
string

The developer role for this partner (OWNER, READ_ONLY, NONE)

applicationsarray of JSON ObjectsA list of API Partner Applications this developer is assigned to and which role
  • id
stringThe UID of the application
  • role
stringThe developer role for this application (OWNER, DEVELOPER, READ_ONLY)