openapi: 3.0.3
info:
title: Gravitee.io APIM - Management API - Environments
description: |-
This is the OpenAPI specification for our new version of APIM Management API.
contact:
email: team-apim@graviteesource.com
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
version: 2.0.0
security:
- BasicAuth: [ ]
- CookieAuth: [ ]
servers:
- url: "/management/v2/environments/{envId}"
description: APIM Management API v2 - Default base URL
variables:
envId:
description: The unique ID of your environment
default: DEFAULT
- url: "/management/v2/organizations/{orgId}/environments/{envId}"
description: APIM Management API v2 - Base URL to target specific organizations
variables:
orgId:
description: The unique ID of your organization
default: DEFAULT
envId:
description: The unique ID of your environment
default: DEFAULT
tags:
- name: SharedPolicyGroups
description: Everything about shared policy groups
- name: Scoring
description: Everything about APIs scoring
- name: Clusters
description: Everything about clusters
- name: Newt Ai
description: Everything about Newt Ai
- name: Subscription Forms
description: Everything about subscription forms for API consumers
- name: Portal Categories
description: Everything about Portal Next categories used to group APIs on the New Developer Portal
paths:
# Environment Analytics
/analytics/response-status-ranges:
get:
parameters:
- $ref: "#/components/parameters/from"
- $ref: "#/components/parameters/to"
tags:
- Environment Analytics
summary: Get response status counts for v2 and v4 APIs from specified environment
description: |-
Get v2 and v4 API analytics response status counts. Response statuses are grouped by endpoint and status code hundreds.
operationId: getDashboardResponseStatusCodes
responses:
"200":
$ref: "#/components/responses/EnvironmentAnalyticsResponseStatusRangesResponse"
default:
$ref: "#/components/responses/Error"
/analytics/top-hits:
get:
parameters:
- $ref: "#/components/parameters/from"
- $ref: "#/components/parameters/to"
tags:
- Environment Analytics
summary: Get all v4 APIs with hits count per API sorted by mostly requested
description: |-
Get v4 API analytics top hits counts. All APIs are sorted starting from the most requested ones.
operationId: getDashboardTopHits
responses:
"200":
$ref: "#/components/responses/EnvironmentAnalyticsTopHitsApisResponse"
default:
$ref: "#/components/responses/Error"
/analytics/request-response-time:
get:
parameters:
- $ref: "#/components/parameters/from"
- $ref: "#/components/parameters/to"
tags:
- Environment Analytics
summary: V4 APIs request and response times analytics
description: |-
Get analytics for v2 & v4 APIs regarding number of requests, requests per second and response max, min and average times for
specified time range. Analytics contains data only for HTTP GET, HTTP POST and HTTP PROXY entrypoints.
operationId: getDashboardRequestResponseTime
responses:
"200":
$ref: "#/components/responses/EnvironmentAnalyticsRequestResponseTimeResponse"
default:
$ref: "#/components/responses/Error"
/analytics/response-time-over-time:
parameters:
- $ref: "#/components/parameters/from"
- $ref: "#/components/parameters/to"
get:
tags:
- Environment Analytics
summary: Get Environment Analytics average response time over time
description: |-
Get Environment Analytics average response time over time
User must have the API_ANALYTICS[READ] permission.
operationId: getEnvironmentResponseTimeOverTime
responses:
"200":
$ref: "#/components/responses/EnvironmentAnalyticsOverPeriodResponse"
/analytics/response-status-overtime:
parameters:
- $ref: "#/components/parameters/from"
- $ref: "#/components/parameters/to"
get:
tags:
- API Analytics
summary: Get Environment Analytics response status counts over time
description: |-
Get Environment analytics response status counts over time.
User must have the API_ANALYTICS[READ] permission.
operationId: getEnvironmentResponseStatusOvertime
responses:
"200":
$ref: "#/components/responses/EnvironmentAnalyticsResponseStatusOvertimeResponse"
default:
$ref: "#/components/responses/Error"
/analytics/top-apps-by-request-count:
parameters:
- $ref: "#/components/parameters/from"
- $ref: "#/components/parameters/to"
get:
tags:
- API Analytics
summary: Get Environment Analytics for top applications by the request count
description: |-
Get Environment Analytics for top applications by the request count
User must have the API_ANALYTICS[READ] permission.
operationId: getEnvironmentTopAppByRequestCount
responses:
"200":
$ref: "#/components/responses/EnvironmentAnalyticsTopAppsByRequestCountResponse"
default:
$ref: "#/components/responses/Error"
/analytics/top-failed-apis:
parameters:
- $ref: "#/components/parameters/from"
- $ref: "#/components/parameters/to"
get:
tags:
- API Analytics
summary: Get Environment Analytics for top failed v2 and v4 APIs
description: |-
Get Environment Analytics for top failed v2 and v4 APIs
User must have the API_ANALYTICS[READ] permission.
operationId: getEnvironmentTopFailedApis
responses:
"200":
$ref: "#/components/responses/EnvironmentAnalyticsTopFailedApisResponse"
default:
$ref: "#/components/responses/Error"
# Shared policy group
/shared-policy-groups:
post:
tags:
- SharedPolicyGroups
summary: Create a shared policy group
operationId: createSharedPolicyGroup
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CreateSharedPolicyGroup"
required: true
responses:
"201":
description: Shared policy group created
content:
application/json:
schema:
$ref: "#/components/schemas/SharedPolicyGroup"
default:
$ref: "#/components/responses/Error"
get:
tags:
- SharedPolicyGroups
summary: Search shared policy groups
operationId: searchSharedPolicyGroups
parameters:
- $ref: "#/components/parameters/pageParam"
- $ref: "#/components/parameters/perPageParam"
- $ref: "#/components/parameters/sharedPolicyGroupSortByParam"
- $ref: "#/components/parameters/sharedPolicyGroupSearchParam"
responses:
"200":
$ref: "#/components/responses/SharedPolicyGroupsResponse"
default:
$ref: "#/components/responses/Error"
/shared-policy-groups/policy-plugins:
get:
tags:
- SharedPolicyGroups
summary: Get all shared policy group for a policy plugin usage
operationId: getPolicyPlugins
responses:
"200":
description: Shared policy group found
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/SharedPolicyGroupPolicyPlugin"
default:
$ref: "#/components/responses/Error"
/shared-policy-groups/{sharedPolicyGroupId}:
get:
tags:
- SharedPolicyGroups
summary: Get a shared policy group
operationId: getSharedPolicyGroup
parameters:
- $ref: "#/components/parameters/sharedPolicyGroupId"
responses:
"200":
description: Shared policy group found
content:
application/json:
schema:
$ref: "#/components/schemas/SharedPolicyGroup"
default:
$ref: "#/components/responses/Error"
put:
tags:
- SharedPolicyGroups
summary: Update a shared policy group
operationId: updateSharedPolicyGroup
parameters:
- $ref: "#/components/parameters/sharedPolicyGroupId"
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UpdateSharedPolicyGroup"
required: true
responses:
"200":
description: Shared policy group updated
content:
application/json:
schema:
$ref: "#/components/schemas/SharedPolicyGroup"
default:
$ref: "#/components/responses/Error"
delete:
tags:
- SharedPolicyGroups
summary: Delete a shared policy group
operationId: deleteSharedPolicyGroup
parameters:
- $ref: "#/components/parameters/sharedPolicyGroupId"
responses:
"204":
description: Shared policy group deleted
default:
$ref: "#/components/responses/Error"
/shared-policy-groups/{sharedPolicyGroupId}/histories:
get:
tags:
- SharedPolicyGroups
summary: Get the histories of a shared policy group
operationId: getSharedPolicyGroupHistories
parameters:
- $ref: "#/components/parameters/sharedPolicyGroupId"
- $ref: "#/components/parameters/pageParam"
- $ref: "#/components/parameters/perPageParam"
- $ref: "#/components/parameters/sharedPolicyGroupHistoriesSortByParam"
responses:
"200":
$ref: "#/components/responses/SharedPolicyGroupHistoriesResponse"
default:
$ref: "#/components/responses/Error"
/shared-policy-groups/{sharedPolicyGroupId}/_deploy:
post:
tags:
- SharedPolicyGroups
summary: Deploy a shared policy group
operationId: deploySharedPolicyGroup
parameters:
- $ref: "#/components/parameters/sharedPolicyGroupId"
responses:
"202":
description: Shared policy group deploy request has been accepted
content:
application/json:
schema:
$ref: "#/components/schemas/SharedPolicyGroup"
default:
$ref: "#/components/responses/Error"
/shared-policy-groups/{sharedPolicyGroupId}/_undeploy:
post:
tags:
- SharedPolicyGroups
summary: Undeploy a shared policy group
operationId: undeploySharedPolicyGroup
parameters:
- $ref: "#/components/parameters/sharedPolicyGroupId"
responses:
"202":
description: Shared policy group undeploy request has been accepted
content:
application/json:
schema:
$ref: "#/components/schemas/SharedPolicyGroup"
default:
$ref: "#/components/responses/Error"
# Scoring
/scoring/apis:
get:
tags:
- Scoring
summary: Get the scoring of all APIs
operationId: getApisScoring
parameters:
- $ref: "#/components/parameters/pageParam"
- $ref: "#/components/parameters/perPageParam"
responses:
"200":
$ref: "#/components/responses/EnvironmentApisScoringResponse"
default:
$ref: "#/components/responses/Error"
/scoring/overview:
get:
tags:
- Scoring
summary: Get Scoring Environment Overview
operationId: getScoringEnvironmentOverview
responses:
"200":
description: Scoring overview of the environment
content:
application/json:
schema:
$ref: "#/components/schemas/EnvironmentScoringOverview"
default:
$ref: "#/components/responses/Error"
/scoring/rulesets:
post:
tags:
- Scoring
- Rulesets
summary: Create a new ruleset at environment level
operationId: createEnvironmentRuleset
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ImportScoringRuleset"
required: true
responses:
"201":
description: Ruleset created
default:
$ref: "#/components/responses/Error"
get:
tags:
- Scoring
- Rulesets
summary: Get all rulesets at environment level
operationId: getEnvironmentRulesets
responses:
"200":
$ref: "#/components/responses/ScoringRulesetsResponse"
default:
$ref: "#/components/responses/Error"
/scoring/rulesets/{rulesetId}:
delete:
tags:
- Scoring
- Rulesets
summary: Delete a ruleset
operationId: deleteEnvironmentRuleset
parameters:
- $ref: "#/components/parameters/rulesetId"
responses:
"204":
description: Ruleset deleted
default:
$ref: "#/components/responses/Error"
get:
tags:
- Scoring
- Rulesets
summary: Get a specific ruleset
operationId: getEnvironmentRuleset
parameters:
- $ref: "#/components/parameters/rulesetId"
responses:
"200":
description: Scoring ruleset found
content:
application/json:
schema:
$ref: "#/components/schemas/ScoringRuleset"
default:
$ref: "#/components/responses/Error"
put:
tags:
- Scoring
- Rulesets
summary: Update ruleset
operationId: updateEnvironmentRuleset
parameters:
- $ref: "#/components/parameters/rulesetId"
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UpdateScoringRuleset"
required: true
responses:
"200":
description: Ruleset updated
content:
application/json:
schema:
$ref: "#/components/schemas/ScoringRuleset"
default:
$ref: "#/components/responses/Error"
/scoring/functions:
post:
tags:
- Scoring
- Functions
summary: Create a new scoring function at environment level
operationId: createEnvironmentScoringFunction
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ImportScoringFunction"
required: true
responses:
"201":
description: Scoring functions created
default:
$ref: "#/components/responses/Error"
get:
tags:
- Scoring
- Functions
summary: Get all functions at environment level
operationId: getEnvironmentScoringFunctions
responses:
"200":
$ref: "#/components/responses/ScoringFunctionsResponse"
default:
$ref: "#/components/responses/Error"
/scoring/functions/{scoringFunctionName}:
delete:
tags:
- Scoring
- Functions
summary: Delete a scoring function
operationId: deleteEnvironmentScoringFunction
parameters:
- $ref: "#/components/parameters/scoringFunctionName"
responses:
"204":
description: Scoring function deleted
default:
$ref: "#/components/responses/Error"
# Cluster
/clusters:
post:
tags:
- Clusters
summary: Create a cluster
description: |-
User must have the ENVIRONMENT_CLUSTER[CREATE] permission.
operationId: createCluster
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CreateCluster"
required: true
responses:
"201":
description: Cluster created
content:
application/json:
schema:
$ref: "#/components/schemas/Cluster"
default:
$ref: "#/components/responses/Error"
get:
tags:
- Clusters
summary: Search clusters
description: |-
User must have the ENVIRONMENT_CLUSTER[READ] permission.
operationId: searchClusters
parameters:
- $ref: "#/components/parameters/pageParam"
- $ref: "#/components/parameters/perPageParam"
- $ref: "#/components/parameters/clusterSortByParam"
- $ref: "#/components/parameters/clusterSearchParam"
- $ref: "#/components/parameters/clusterTypeParam"
- $ref: "#/components/parameters/clusterLifecycleStateParam"
responses:
"200":
$ref: "#/components/responses/ClustersResponse"
default:
$ref: "#/components/responses/Error"
/clusters/_stats:
get:
tags:
- Clusters
summary: Count clusters by lifecycle state
description: |-
Returns the total number of clusters and the count per lifecycle state (Deployed / Pending /
Undeployed) for the environment, optionally scoped to a cluster type — the numbers behind the
console cluster stat-strip. User must have the ENVIRONMENT_CLUSTER[READ] permission.
operationId: getClusterLifecycleStateStats
parameters:
- $ref: "#/components/parameters/clusterTypeParam"
responses:
"200":
description: Cluster counts by lifecycle state
content:
application/json:
schema:
$ref: "#/components/schemas/ClusterLifecycleStateStats"
default:
$ref: "#/components/responses/Error"
/clusters/{clusterId}:
parameters:
- $ref: "#/components/parameters/clusterId"
get:
tags:
- Clusters
summary: Get a cluster
description: |-
User must have the CLUSTER_DEFINITION[READ] permission.
operationId: getCluster
responses:
"200":
description: Cluster found
content:
application/json:
schema:
$ref: "#/components/schemas/Cluster"
default:
$ref: "#/components/responses/Error"
put:
tags:
- Clusters
summary: Update a cluster
description: |-
User must have the CLUSTER_DEFINITION[UPDATE] permission.
Kafka virtual cluster lifecycle: removing all backends is a plain edit. On a deployed
virtual cluster the update is accepted (200) and the cluster moves to `lifecycleState`
`PENDING`: the gateway keeps serving the previous configuration, and the emptied
configuration cannot be deployed until at least one backend is added back (the deploy
endpoint rejects virtual clusters without backends).
operationId: updateCluster
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UpdateCluster"
required: true
responses:
"200":
description: Cluster updated
content:
application/json:
schema:
$ref: "#/components/schemas/Cluster"
default:
$ref: "#/components/responses/Error"
delete:
tags:
- Clusters
summary: Delete a cluster
description: |-
User must have the CLUSTER_DEFINITION[DELETE] permission.
operationId: deleteCluster
parameters:
- $ref: "#/components/parameters/clusterId"
responses:
"204":
description: Cluster deleted
default:
$ref: "#/components/responses/Error"
/clusters/{clusterId}/_deploy:
parameters:
- $ref: "#/components/parameters/clusterIdParam"
post:
tags:
- Clusters
summary: Deploy a cluster
description: Deploy the cluster to the gateway. Sets lifecycle state to DEPLOYED and increments version.
operationId: deployCluster
responses:
"200":
description: Cluster deployed
content:
application/json:
schema:
$ref: "#/components/schemas/Cluster"
"400":
description: A Kafka virtual cluster cannot be deployed without at least one backend.
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
default:
$ref: "#/components/responses/Error"
/clusters/{clusterId}/_undeploy:
parameters:
- $ref: "#/components/parameters/clusterIdParam"
post:
tags:
- Clusters
summary: Undeploy a cluster
description: |-
Undeploy the cluster from the gateway. Sets lifecycle state to UNDEPLOYED.
A Kafka virtual cluster cannot be undeployed while a started Kafka Native API is bound to it
(via a `native-kafka-virtual-cluster` endpoint): the request is rejected with 400 so the
started API is never left pointing at an undeployed cluster.
operationId: undeployCluster
responses:
"200":
description: Cluster undeployed
content:
application/json:
schema:
$ref: "#/components/schemas/Cluster"
"400":
description: |-
The Kafka virtual cluster cannot be undeployed because one or more started Kafka Native
APIs are bound to it. Stop those APIs first.
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
default:
$ref: "#/components/responses/Error"
/clusters/{clusterId}/groups:
parameters:
- $ref: "#/components/parameters/clusterId"
put:
tags:
- Clusters
summary: Update a cluster's groups
description: |-
User must have the CLUSTER_DEFINITION[UPDATE] permission.
operationId: updateClusterGroups
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UpdateClusterGroups"
required: true
responses:
"200":
description: Cluster groups updated
content:
application/json:
schema:
$ref: "#/components/schemas/ClusterGroups"
default:
$ref: "#/components/responses/Error"
/clusters/{clusterId}/permissions:
parameters:
- $ref: "#/components/parameters/clusterId"
get:
tags:
- Clusters
summary: Get cluster's permissions of current user
operationId: getClusterPermissions
responses:
"200":
$ref: "#/components/responses/ClusterPermissionsResponse"
default:
$ref: "#/components/responses/Error"
# Cluster members
/clusters/{clusterId}/members:
parameters:
- $ref: "#/components/parameters/clusterId"
get:
tags:
- Clusters
summary: Get cluster's members
description: |-
User must have the CLUSTER_MEMBER[READ] permission.
operationId: getClusterMembers
responses:
"200":
$ref: "#/components/responses/MembersResponse"
default:
$ref: "#/components/responses/Error"
post:
tags:
- Clusters
summary: Add a cluster member
description: |-
User must have the CLUSTER_MEMBER[CREATE] permission.
operationId: addClusterMember
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/AddMember"
required: true
responses:
"201":
description: Member successfully added
default:
$ref: "#/components/responses/Error"
/clusters/{clusterId}/members/{memberId}:
parameters:
- $ref: "#/components/parameters/clusterId"
- $ref: "#/components/parameters/memberId"
put:
tags:
- Clusters
summary: Update a cluster's member
operationId: updateClusterMember
description: |-
User must have the CLUSTER_MEMBER[UPDATE] permission.
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UpdateMember"
required: true
responses:
"200":
description: Updated member
content:
application/json:
schema:
$ref: "#/components/schemas/Member"
default:
$ref: "#/components/responses/Error"
delete:
tags:
- Clusters
summary: Delete a cluster's member
description: |-
User must have the CLUSTER_MEMBER[DELETE] permission.
operationId: deleteClusterMember
responses:
"204":
description: Member removed
default:
$ref: "#/components/responses/Error"
/clusters/{clusterId}/members/_transfer-ownership:
parameters:
- $ref: "#/components/parameters/clusterId"
post:
tags:
- Clusters
summary: Transfer cluster ownership
description: |-
Transfer the ownership of the Cluster to a user, a group or an cluster member.
Return a 404 HTTP Error if Cluster cannot be found.
User must have the CLUSTER_MEMBER[UPDATE] permission.
operationId: transferClusterOwnership
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ClusterTransferOwnership"
required: true
responses:
"204":
description: Ownership has been transferred successfully
default:
$ref: "#/components/responses/Error"
# NewAI
/newtai/el/_generate:
post:
tags:
- Newt Ai
summary: Generate Expression Language
description: |-
Generate Expression Language.
operationId: generateEl
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/GenerateExpressionLanguage"
required: true
responses:
"200":
$ref: "#/components/responses/GenerateExpressionLanguageResponse"
default:
$ref: "#/components/responses/Error"
# Instances
/instances/{instanceId}:
get:
tags:
- Instances
summary: Get a Gateway instance details
operationId: getInstanceById
parameters:
- $ref: "#/components/parameters/instanceId"
responses:
"200":
$ref: "#/components/responses/InstanceDetailResponse"
default:
$ref: "#/components/responses/Error"
# Portal pages
/portal-pages:
get:
tags:
- Portal Pages
summary: Get portal pages
description: User must have the ENVIRONMENT_DOCUMENTATION[read] permission.
operationId: getPortalPages
parameters:
- $ref: '#/components/parameters/contextType'
- $ref: '#/components/parameters/expandComponents'
responses:
"200":
$ref: "#/components/responses/PortalPagesResponse"
default:
$ref: "#/components/responses/Error"
/portal-pages/{pageId}:
patch:
tags:
- Portal Pages
summary: Patch portal page
description: User must have the ENVIRONMENT_DOCUMENTATION[update] permission.
operationId: patchPortalPage
parameters:
- name: pageId
in: path
description: The unique ID of the portal page
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PatchPortalPage"
required: true
responses:
"200":
$ref: "#/components/responses/PortalPageResponse"
default:
$ref: "#/components/responses/Error"
/portal-pages/{pageId}/_publish:
post:
tags:
- Portal Pages
summary: Publish portal page
description: User must have the ENVIRONMENT_DOCUMENTATION[update] permission.
operationId: publishPortalPage
parameters:
- name: pageId
in: path
description: The unique ID of the portal page
required: true
schema:
type: string
responses:
"200":
$ref: "#/components/responses/PortalPageResponse"
default:
$ref: "#/components/responses/Error"
/portal-pages/{pageId}/_unpublish:
post:
tags:
- Portal Pages
summary: Unpublish portal page
description: User must have the ENVIRONMENT_DOCUMENTATION[update] permission.
operationId: unpublishPortalPage
parameters:
- name: pageId
in: path
description: The unique ID of the portal page
required: true
schema:
type: string
responses:
"200":
$ref: "#/components/responses/PortalPageResponse"
default:
$ref: "#/components/responses/Error"
/portal-page-contents/{portalPageContentId}:
get:
tags:
- Portal Pages
summary: Get portal page content
description: User must have the ENVIRONMENT_DOCUMENTATION[read] permission.
operationId: getPortalPageContent
parameters:
- name: portalPageContentId
in: path
description: The unique ID of the portal page content
required: true
schema:
type: string
responses:
"200":
$ref: "#/components/responses/PortalPageContentResponse"
default:
$ref: "#/components/responses/Error"
put:
tags:
- Portal Pages
summary: Update portal page content
description: User must have the ENVIRONMENT_DOCUMENTATION[update] permission.
operationId: updatePortalPageContent
parameters:
- name: portalPageContentId
in: path
description: The unique ID of the portal page content
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/UpdatePortalPageContent"
responses:
"200":
$ref: "#/components/responses/PortalPageContentResponse"
default:
$ref: "#/components/responses/Error"
/portal-page-contents/{portalPageContentId}/configuration:
patch:
tags:
- Portal Pages
summary: Update portal page content OpenAPI viewer configuration
description: User must have the ENVIRONMENT_DOCUMENTATION[update] permission.
operationId: updatePortalPageContentConfiguration
parameters:
- name: portalPageContentId
in: path
description: The unique ID of the portal page content
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/PortalPageOpenApiConfiguration"
responses:
"200":
$ref: "#/components/responses/PortalPageContentResponse"
default:
$ref: "#/components/responses/Error"
/portal-navigation-items:
get:
tags:
- Portal Navigation Items
summary: Get portal navigation items
description: User must have the ENVIRONMENT_DOCUMENTATION[read] permission.
operationId: getPortalNavigationItems
parameters:
- $ref: '#/components/parameters/portalArea'
- name: parentId
in: query
description: The parent ID to filter navigation items
required: false
schema:
type: string
- name: loadChildren
in: query
description: Whether to load children items
required: false
schema:
type: boolean
default: true
responses:
"200":
$ref: "#/components/responses/PortalNavigationItemsResponse"
default:
$ref: "#/components/responses/Error"
post:
tags:
- Portal Navigation Items
summary: Create a portal navigation item
description: User must have the ENVIRONMENT_DOCUMENTATION[update] permission.
operationId: createPortalNavigationItem
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CreatePortalNavigationItem"
required: true
responses:
"201":
description: Portal navigation item created. Newly created items are unpublished by default.
content:
application/json:
schema:
$ref: "#/components/schemas/PortalNavigationItem"
"400":
description: Missing API Product reference, invalid parent, invalid TOP_NAVBAR root placement, or malformed request
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
"404":
description: Referenced API Product does not exist in the current environment
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
"409":
description: The API Product is already represented in the environment navigation tree
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
default:
$ref: "#/components/responses/Error"
/portal-navigation-items/_bulk:
post:
tags:
- Portal Navigation Items
summary: Create portal navigation items in bulk
description: User must have the ENVIRONMENT_DOCUMENTATION[update] permission.
operationId: createPortalNavigationItemsInBulk
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CreatePortalNavigationItems"
required: true
responses:
"200":
$ref: "#/components/responses/PortalNavigationItemsResponse"
"400":
description: Invalid navigation item payload or hierarchy
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
"404":
description: A referenced API Product or parent does not exist in the current environment
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
"409":
description: An API Product is already represented in the environment navigation tree
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
default:
$ref: "#/components/responses/Error"
/portal-navigation-items/_default-pages:
post:
tags:
- Portal Navigation Items
summary: Seed default pages for API navigation items
description: User must have the ENVIRONMENT_DOCUMENTATION[create] permission.
operationId: seedDefaultPages
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SeedDefaultPagesRequest"
required: true
responses:
"204":
description: Default pages seeded
default:
$ref: "#/components/responses/Error"
/portal-navigation-items/{navId}:
put:
tags:
- Portal Navigation Items
summary: Update a portal navigation item
description: |
User must have the ENVIRONMENT_DOCUMENTATION[update] permission.
ParentId is the unique identifier of the parent item.
* Optional parent ID. If provided, the item is set to that parent.
* If omitted, the item is moved to the root level.
Publication propagation applies only when the `published` value changes on a container navigation item (`FOLDER`, `API`, or `API_PRODUCT`).
When publishing a container, descendants are published only if `propagatePublishToChildren=true`.
If `propagatePublishToChildren` is omitted or false, only the selected item is published.
When unpublishing a container, descendants are always unpublished according to the business rule; `propagatePublishToChildren` is ignored and may be omitted.
operationId: updatePortalNavigationItem
parameters:
- name: navId
in: path
description: The unique ID of the navigation item
required: true
schema:
type: string
- name: propagatePublishToChildren
in: query
description: >
Controls whether publishing a container navigation item (`FOLDER`, `API`, or `API_PRODUCT`) is propagated to descendants.
Only evaluated when `published` changes to true on a container item.
If omitted or false, publishing affects only the selected item.
If true, publishing also affects descendants.
Ignored for unpublish; container descendants are always unpublished according to the business rule.
required: false
schema:
type: boolean
default: false
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/UpdatePortalNavigationItem"
responses:
"200":
description: Updated portal navigation item
content:
application/json:
schema:
$ref: "#/components/schemas/PortalNavigationItem"
"400":
description: Invalid navigation item move, parent, visibility, or malformed request
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
"404":
description: Navigation item or target parent does not exist
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
"409":
description: The update would violate navigation hierarchy or API Product uniqueness constraints
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
default:
$ref: "#/components/responses/Error"
delete:
tags:
- Portal Navigation Items
summary: Delete a portal navigation item
description: User must have the ENVIRONMENT_DOCUMENTATION[delete] permission.
operationId: deletePortalNavigationItem
parameters:
- name: navId
in: path
description: The unique ID of the navigation item
required: true
schema:
type: string
responses:
"204":
description: Portal navigation item deleted
default:
$ref: "#/components/responses/Error"
# Portal Categories
/portal-categories:
get:
tags:
- Portal Categories
summary: Get portal categories
description: User must have the ENVIRONMENT_DOCUMENTATION[read] permission.
operationId: getPortalCategories
responses:
"200":
description: List of portal categories, sorted alphabetically by title
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/PortalCategory"
default:
$ref: "#/components/responses/Error"
post:
tags:
- Portal Categories
summary: Create a portal category
description: User must have the ENVIRONMENT_DOCUMENTATION[create] permission.
operationId: createPortalCategory
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CreatePortalCategory"
required: true
responses:
"201":
description: Portal category created
content:
application/json:
schema:
$ref: "#/components/schemas/PortalCategory"
"409":
description: A portal category with the same title already exists in this environment
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
default:
$ref: "#/components/responses/Error"
/portal-categories/{categoryId}:
put:
tags:
- Portal Categories
summary: Update a portal category
description: User must have the ENVIRONMENT_DOCUMENTATION[update] permission.
operationId: updatePortalCategory
parameters:
- name: categoryId
in: path
description: The unique ID of the portal category
required: true
schema:
type: string
format: uuid
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/UpdatePortalCategory"
responses:
"200":
description: Updated portal category
content:
application/json:
schema:
$ref: "#/components/schemas/PortalCategory"
default:
$ref: "#/components/responses/Error"
delete:
tags:
- Portal Categories
summary: Delete a portal category
description: User must have the ENVIRONMENT_DOCUMENTATION[delete] permission.
operationId: deletePortalCategory
parameters:
- name: categoryId
in: path
description: The unique ID of the portal category
required: true
schema:
type: string
format: uuid
responses:
"204":
description: Portal category deleted
default:
$ref: "#/components/responses/Error"
# Subscription Forms
/subscription-forms:
get:
tags:
- Subscription Forms
summary: Get subscription form for environment
description: |-
Get the subscription form for the environment. Returns the form definition used
by API consumers when subscribing to APIs in the Developer Portal.
User must have the ENVIRONMENT_SETTINGS[READ] permission.
operationId: getSubscriptionForm
responses:
"200":
description: Subscription form retrieved successfully
content:
application/json:
schema:
$ref: "#/components/schemas/SubscriptionForm"
"404":
description: No subscription form exists for this environment
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
default:
$ref: "#/components/responses/Error"
/subscription-forms/{subscriptionFormId}:
put:
tags:
- Subscription Forms
summary: Update subscription form
description: |-
Update the existing subscription form. The form content is defined using Gravitee Markdown (GMD)
syntax with form components.
Note: This operation does NOT change the enabled state. Use _enable/_disable endpoints for that.
User must have the ENVIRONMENT_SETTINGS[UPDATE] permission.
operationId: updateSubscriptionForm
parameters:
- name: subscriptionFormId
in: path
required: true
description: The unique ID of the subscription form
schema:
type: string
format: uuid
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/UpdateSubscriptionForm"
responses:
"200":
description: Subscription form saved successfully
content:
application/json:
schema:
$ref: "#/components/schemas/SubscriptionForm"
"400":
description: Invalid or unsafe GMD content
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
"404":
description: No subscription form exists with this ID
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
default:
$ref: "#/components/responses/Error"
/subscription-forms/{subscriptionFormId}/_enable:
post:
tags:
- Subscription Forms
summary: Enable subscription form
description: |-
Enable the subscription form to make it visible to API consumers in the Developer Portal.
When enabled, the form will be displayed during the API subscription process.
This operation is idempotent - enabling an already enabled form returns success.
User must have the ENVIRONMENT_SETTINGS[UPDATE] permission.
operationId: enableSubscriptionForm
parameters:
- name: subscriptionFormId
in: path
required: true
description: The unique ID of the subscription form
schema:
type: string
format: uuid
responses:
"200":
description: Subscription form enabled successfully
content:
application/json:
schema:
$ref: "#/components/schemas/SubscriptionForm"
"404":
description: No subscription form exists with this ID
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
default:
$ref: "#/components/responses/Error"
/subscription-forms/{subscriptionFormId}/_disable:
post:
tags:
- Subscription Forms
summary: Disable subscription form
description: |-
Disable the subscription form to hide it from API consumers in the Developer Portal.
When disabled, the form will not be displayed during the API subscription process.
This operation is idempotent - disabling an already disabled form returns success.
User must have the ENVIRONMENT_SETTINGS[UPDATE] permission.
operationId: disableSubscriptionForm
parameters:
- name: subscriptionFormId
in: path
required: true
description: The unique ID of the subscription form
schema:
type: string
format: uuid
responses:
"200":
description: Subscription form disabled successfully
content:
application/json:
schema:
$ref: "#/components/schemas/SubscriptionForm"
"404":
description: No subscription form exists with this ID
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
default:
$ref: "#/components/responses/Error"
components:
schemas:
# Analytics
TopHitApi:
type: object
properties:
id:
type: string
description: The API ID
example: 00f8c9e7-78fc-4907-b8c9-e778fc790750
name:
type: string
description: The API Name
example: Sample API Name
count:
type: integer
format: int64
description: The API Hit count
example: 675234
definitionVersion:
type: string
description: The API definition version
example: v4
AnalyticTimeRange:
type: object
description: A Time range
properties:
from:
type: integer
format: int64
description: The timestamp starting the time range
example: 1621339200000
to:
type: integer
format: int64
description: The timestamp ending the time range
example: 1621425600000
interval:
type: integer
format: int64
description: The interval in milliseconds splitting the data
example: 120000
TopApp:
type: object
properties:
id:
type: string
description: The Application ID
example: 00f8c9e7-78fc-4907-b8c9-e778fc790750
name:
type: string
description: The Application Name
example: Sample Application Name
count:
type: integer
format: int64
description: The Application Hit count
example: 675234
TopFailedApis:
type: object
properties:
id:
type: string
description: The Application ID
example: 00f8c9e7-78fc-4907-b8c9-e778fc790750
definitionVersion:
type: string
description: The API definition version
example: v4
name:
type: string
description: The Application Name
example: Sample Application Name
failedCalls:
type: integer
format: int64
description: Number of 5xx calls for the API
example: 2137
failedCallsRatio:
type: number
format: double
description: Ratio of failed API calls to the total number of calls
example: 0.8
# Shared policy group
CreateSharedPolicyGroup:
type: object
description: Create payload for a shared policy group
properties:
crossId:
type: string
description: The unique ID of the shared policy group
example: 5e2b3b3b-3b3b-3b3b-3b3b-3b3b3b3b3b3b
name:
type: string
description: The name of the shared policy group
example: My Shared Policy Group
maxLength: 512
description:
type: string
description: The description of the shared policy group
example: This is a shared policy group
maxLength: 1024
prerequisiteMessage:
type: string
description: The prerequisite message of the shared policy group. This message is displayed to the user to help understand the prerequisite to use the shared policy group.
example: The resource cache "my-cache" is required
maxLength: 1024
apiType:
$ref: "#/components/schemas/ApiType"
originContext:
$ref: "#/components/schemas/BaseOriginContext"
phase:
$ref: "#/components/schemas/FlowPhase"
steps:
type: array
description: The list of steps (policies) in the shared policy group
items:
$ref: "#/components/schemas/StepV4"
required: [ "name", "apiType", "phase" ]
UpdateSharedPolicyGroup:
type: object
description: Update payload for a shared policy group
properties:
crossId:
type: string
description: The unique ID of the shared policy group
example: 5e2b3b3b-3b3b-3b3b-3b3b-3b3b3b3b3b3b
name:
type: string
description: The name of the shared policy group
example: My Shared Policy Group
maxLength: 512
description:
type: string
description: The description of the shared policy group
example: This is a shared policy group
maxLength: 1024
prerequisiteMessage:
type: string
description: The prerequisite message of the shared policy group. This message is displayed to the user to help understand the prerequisite to use the shared policy group.
example: The resource cache "my-cache" is required
maxLength: 1024
steps:
type: array
description: The list of steps (policies) in the shared policy group
items:
$ref: "#/components/schemas/StepV4"
SharedPolicyGroup:
type: object
description: A shared policy group
properties:
id:
type: string
description: The unique ID of the shared policy group
crossId:
type: string
description: The unique ID of the shared policy group
example: 5e2b3b3b-3b3b-3b3b-3b3b-3b3b3b3b3b3b
name:
type: string
description: The name of the shared policy group
example: My Shared Policy Group
maxLength: 512
description:
type: string
description: The description of the shared policy group
example: This is a shared policy group
maxLength: 1024
prerequisiteMessage:
type: string
description: The prerequisite message of the shared policy group. This message is displayed to the user to help understand the prerequisite to use the shared policy group.
example: The resource cache "my-cache" is required
maxLength: 1024
version:
type: number
description: The version of the shared policy group
example: 1
apiType:
$ref: "#/components/schemas/ApiType"
originContext:
$ref: "#/components/schemas/BaseOriginContext"
steps:
type: array
description: The list of steps (policies) in the shared policy group
items:
$ref: "#/components/schemas/StepV4"
phase:
$ref: "#/components/schemas/FlowPhase"
deployedAt:
type: string
format: date-time
description: The date at which the shared policy group was deployed
example: 2020-01-01T00:00:00Z
createdAt:
type: string
format: date-time
description: The date at which the shared policy group was created
example: 2020-01-01T00:00:00Z
updatedAt:
type: string
format: date-time
description: The date at which the shared policy group was last updated
example: 2020-01-01T00:00:00Z
lifecycleState:
$ref: "#/components/schemas/SharedPolicyGroupLifecycleState"
SharedPolicyGroupPolicyPlugin:
type: object
description: A shared policy group for a policy plugin
properties:
id:
type: string
description: The unique ID of the shared policy group
policyId:
type: string
description: The id of shared-policy-group plugin
name:
type: string
description: The name of the shared policy group
example: My Shared Policy Group
maxLength: 512
description:
type: string
description: The description of the shared policy group
example: This is a shared policy group
maxLength: 1024
prerequisiteMessage:
type: string
description: The prerequisite message of the shared policy group. This message is displayed to the user to help understand the prerequisite to use the shared policy group.
example: The resource cache "my-cache" is required
maxLength: 1024
apiType:
$ref: "#/components/schemas/ApiType"
phase:
$ref: "#/components/schemas/FlowPhase"
SharedPolicyGroupLifecycleState:
type: string
description: The lifecycle state of a shared policy group
example: DEPLOYED
enum:
- DEPLOYED
- UNDEPLOYED
- PENDING
# Cluster
ClusterType:
type: string
enum: [ KAFKA_CLUSTER_STANDALONE, KAFKA_CLUSTER, KAFKA_VIRTUAL_CLUSTER ]
ClusterLifecycleStateStats:
type: object
description: Cluster counts by lifecycle state for the environment (optionally scoped to a type).
properties:
total:
type: integer
format: int64
description: Total number of clusters.
deployed:
type: integer
format: int64
description: Number of clusters in the DEPLOYED state.
pending:
type: integer
format: int64
description: Number of clusters in the PENDING state.
undeployed:
type: integer
format: int64
description: Number of clusters in the UNDEPLOYED state.
CreateCluster:
type: object
properties:
type:
$ref: "#/components/schemas/ClusterType"
crossId:
type: string
description: Portable identifier for cross-environment references. Auto-generated from name if not provided.
name:
type: string
description:
type: string
configuration:
type: object
required: [ "type", "name", "configuration" ]
Cluster:
type: object
properties:
id:
type: string
crossId:
type: string
description: Portable identifier for cross-environment references. Immutable after creation.
type:
$ref: "#/components/schemas/ClusterType"
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
name:
type: string
description:
type: string
configuration:
type: object
groups:
type: array
items:
type: string
lifecycleState:
type: string
enum: [ UNDEPLOYED, DEPLOYED, PENDING ]
description: Current lifecycle state of the cluster.
deployedAt:
type: string
format: date-time
description: Last deployment or undeployment timestamp.
version:
type: integer
description: Deployment version, incremented on each deploy.
UpdateCluster:
type: object
properties:
name:
type: string
description:
type: string
configuration:
type: object
ClusterGroups:
type: array
items:
type: string
UpdateClusterGroups:
type: array
items:
type: string
ClusterTransferOwnership:
type: object
properties:
newPrimaryOwnerId:
type: string
description: The new primary owner ID (user's technical identifier). Can be null if userReference is defined.
userReference:
type: string
description: The new primary owner reference (user's reference provided by an identity provider). Can be null if userId is defined.
currentPrimaryOwnerNewRole:
type: string
description: The name of the role that will be assigned to the current primary owner after the transfer.
# Scoring
EnvironmentApiScore:
type: object
description: The scoring result of an API
properties:
id:
type: string
description: API identifier
name:
type: string
description: API name
pictureUrl:
type: string
description: The URL to the API's picture
score:
type: number
description: The average score of all assets of API
example: 0.74
errors:
type: integer
description: The total number of violated rules with severity ERROR for all assets.
example: 10
warnings:
type: integer
description: The total number of violated rules with severity WARN for all assets.
example: 20
infos:
type: integer
description: The total number of violated rules with severity INFO for all assets.
example: 30
hints:
type: integer
description: The total number of violated rules with severity HINT for all assets.
example: 40
EnvironmentScoringOverview:
type: object
description: The scoring overview of an Environment
properties:
id:
type: string
description: Environment identifier
score:
type: number
description: The average score of all APIs
example: 0.74
errors:
type: integer
description: The total number of violated rules with severity ERROR for all APIs.
example: 10
warnings:
type: integer
description: The total number of violated rules with severity WARN for all APIs.
example: 20
infos:
type: integer
description: The total number of violated rules with severity INFO for all APIs.
example: 30
hints:
type: integer
description: The total number of violated rules with severity HINT for all APIs.
example: 40
ImportScoringRuleset:
type: object
description: The scoring ruleset to import
properties:
name:
type: string
minLength: 1
description: The name of ruleset
description:
type: string
description: The description of ruleset
payload:
type: string
minLength: 1
description: The ruleset payload
format:
$ref: "#/components/schemas/ScoringAssetFormat"
required:
- name
- payload
- format
UpdateScoringRuleset:
type: object
description: The scoring ruleset to update
properties:
name:
type: string
description: The name of ruleset
description:
type: string
description: The description of ruleset
required: [ "name" ]
ScoringRuleset:
type: object
description: A scoring ruleset
properties:
id:
type: string
description: The id of ruleset
name:
type: string
description: The name of ruleset
description:
type: string
description: The description of ruleset
payload:
type: string
description: The ruleset payload
format:
$ref: "#/components/schemas/ScoringAssetFormat"
createdAt:
type: string
format: date-time
description: The date at which the ruleset was created
example: 2020-01-01T00:00:00Z
updatedAt:
type: string
format: date-time
description: The date at which the ruleset was updated
example: 2020-01-01T00:00:00Z
referenceId:
type: string
description: The reference Id of ruleset
referenceType:
$ref: "#/components/schemas/ScoringRulesetReferenceType"
ScoringRulesetReferenceType:
type: string
enum:
- ENVIRONMENT
ScoringAssetFormat:
type: string
description: The format of scoring asset
enum:
- GRAVITEE_FEDERATION
- GRAVITEE_MESSAGE
- GRAVITEE_PROXY
- GRAVITEE_NATIVE
- GRAVITEE_V2
- OPENAPI
- ASYNCAPI
ImportScoringFunction:
type: object
description: The scoring scoring function to import
properties:
name:
$ref: "#/components/schemas/ScoringFunctionName"
payload:
type: string
description: The scoring function payload
ScoringFunction:
type: object
description: A scoring ruleset
properties:
name:
$ref: "#/components/schemas/ScoringFunctionName"
payload:
type: string
description: The ruleset payload
createdAt:
type: string
format: date-time
description: The date at which the ruleset was created
example: 2020-01-01T00:00:00Z
referenceId:
type: string
description: The reference Id of ruleset
referenceType:
$ref: "#/components/schemas/ScoringFunctionReferenceType"
ScoringFunctionReferenceType:
type: string
enum:
- ENVIRONMENT
ScoringFunctionName:
type: string
pattern: '^[^/]+\.js$'
description: The name of ruleset
ApiType:
type: string
description: API's type.
example: MESSAGE
enum:
- A2A_PROXY
- AUTHZ
- EDGE
- LLM_PROXY
- MCP_PROXY
- MESSAGE
- PROXY
- NATIVE
OriginContext:
oneOf:
- $ref: "#/components/schemas/ManagementOriginContext"
- $ref: "#/components/schemas/KubernetesOriginContext"
- $ref: "#/components/schemas/IntegrationOriginContext"
discriminator:
propertyName: origin
mapping:
MANAGEMENT: "#/components/schemas/ManagementOriginContext"
KUBERNETES: "#/components/schemas/KubernetesOriginContext"
INTEGRATION: "#/components/schemas/IntegrationOriginContext"
BaseOriginContext:
type: object
properties:
origin:
type: string
description: The origin of the API.
example: MANAGEMENT
enum:
- MANAGEMENT
- KUBERNETES
- INTEGRATION
discriminator:
propertyName: origin
mapping:
MANAGEMENT: "#/components/schemas/ManagementOriginContext"
KUBERNETES: "#/components/schemas/KubernetesOriginContext"
INTEGRATION: "#/components/schemas/IntegrationOriginContext"
ManagementOriginContext:
type: object
title: "ManagementOriginContext"
description: Indicates the API has been created by the Management API
allOf:
- $ref: "#/components/schemas/BaseOriginContext"
KubernetesOriginContext:
type: object
title: "KubernetesOriginContext"
description: Indicates the API has been created by the Gravitee Kubernetes Operator
allOf:
- $ref: "#/components/schemas/BaseOriginContext"
- properties:
mode:
type: string
description: |-
The mode of the API.
fully_managed: Mode indicating the api is fully managed by the origin and so, only the origin should be able to manage the api.
example: FULLY_MANAGED
enum:
- FULLY_MANAGED
syncFrom:
type: string
description: |-
syncFrom stands for where the Gateway should source the API definition from.
If the value is KUBERNETES, then the gateway will sync the definition by listening to changes
issued on a kubernetes config map. If the value is MANAGEMENT, then the gateway will sync
the definition using the same datastore as APIM.
Defining MANAGEMENT as source for sync is useful e.g. when a single operator should operate
on gateways deployed on multiple kubernetes clusters.
example: MANAGEMENT
enum:
- MANAGEMENT
- KUBERNETES
IntegrationOriginContext:
type: object
title: "IntegrationOriginContext"
description: Indicates the API has been created through an Integration
allOf:
- $ref: "#/components/schemas/BaseOriginContext"
- properties:
integrationId:
type: string
description: |-
The id of the integration that created the API.
example: b300b445-8bbb-4034-865c-d2113ba5b768
provider:
type: string
description: Provider of this Federated API.
example: solace
integrationName:
type: string
description: Name of integration of this Federated API.
example: My Solace env
FlowPhase:
type: string
description: The execution phase of a policy.
example: REQUEST
enum:
- ENTRYPOINT_CONNECT
- REQUEST
- RESPONSE
- INTERACT
- PUBLISH
- SUBSCRIBE
BaseStep:
type: object
properties:
name:
type: string
description: The name of the step
description:
type: string
description: The description of the step
enabled:
type: boolean
description: Is the step enabled or not.
default: true
policy:
type: string
description: The policy of the step
configuration:
type: object
description: The configuration of the step
condition:
type: string
description: The condition of the step
StepV4:
allOf:
- $ref: "#/components/schemas/BaseStep"
- properties:
messageCondition:
type: string
description: The message condition of the step
# Members (Shared by api, cluster, integration, ...)
Role:
type: object
properties:
name:
type: string
description: Role's name.
example: OWNER
scope:
$ref: "#/components/schemas/RoleScope"
RoleScope:
type: string
description: Scope of a role.
enum:
- API
- APPLICATION
- GROUP
- ENVIRONMENT
- ORGANIZATION
- PLATFORM
- INTEGRATION
- CLUSTER
- API_PRODUCT
- AI_CATALOG
- EXPLORER
- AI_WORKSPACE
Member:
type: object
properties:
id:
type: string
description: Member's uuid.
example: 00f8c9e7-78fc-4907-b8c9-e778fc790750
displayName:
type: string
description: Member's name.
example: John Doe
minLength: 1
roles:
type: array
items:
$ref: "#/components/schemas/Role"
description: The list of roles for this Member.
AddMember:
type: object
description: Membership can be created for existing users, or for users provided by external identity provider. Thus, either userId or externalReference are required.
properties:
userId:
type: string
description: Technical identifier for existing user.
externalReference:
type: string
description: User's reference for user provided from an identity provider.
roleName:
type: string
description: The name of the role
minLength: 1
required: [ roleName ]
UpdateMember:
type: object
properties:
roleName:
type: string
description: The name of the role
minLength: 1
required: [ roleName ]
Error:
type: object
properties:
httpStatus:
type: integer
format: int32
description: The error code
example: 400
message:
type: string
description: The error message
example: Bad request
technicalCode:
type: string
description: A technical code to identify the error
example: invalid.import.definition
parameters:
type: object
description: A map of parameters to be used in the error message
additionalProperties:
type: string
details:
type: array
description: A list of details about the error
items:
type: object
properties:
message:
type: string
description: The error message
example: Bad request
location:
type: string
description: The json path of the field in error.
example: updateApi.properties[0].key
invalidValue:
description: The invalid value.
Pagination:
description: Generic object to handle pagination data.
type: object
properties:
page:
type: integer
description: The current page.
perPage:
type: integer
description: The number of items requested per page.
pageCount:
type: integer
description: The total number of pages.
pageItemsCount:
type: integer
description: The number of items for the current page.
totalCount:
type: integer
format: int64
description: The total number of items, or `-1` if the count could not be computed within the configured timeout.
Links:
description: List of links for pagination
properties:
self:
type: string
description: Link to current resource
first:
type: string
description: In a paginated response, link to the first page
last:
type: string
description: In a paginated response, link to the last page
previous:
type: string
description: In a paginated response, link to the previous page. Maybe null if current is the first page
next:
type: string
description: In a paginated response, link to the next page. Maybe null if current is the last page
ResponseMetadata:
description: Generic object to handle additional information about an entity. Can also be used for pagination data.
type: object
FeedbackRequestId:
description: newt AI feedback request id.
type: object
properties:
chatId:
type: string
userMessageId:
type: string
agentMessageId:
type: string
GenerateExpressionLanguage:
type: object
description: Request an expression language generation
required:
- message
- context
properties:
message:
description: Prompt of generation.
type: string
context:
description: Context to improve the generation.
type: object
properties:
apiId:
type: string
description: The API identifier if relevant.
PatchPortalPage:
type: object
description: Update portal page payload
properties:
content:
type: string
description: The content of the page in Gravitee Markdown format
PortalPageWithDetails:
type: object
description: A portal page with details
properties:
id:
type: string
description: The unique ID of the portal page
content:
type: string
description: Page contents
type:
type: string
description: Content type
enum:
- gravitee_markdown
context:
type: string
description: The portal context (eg. "homepage", "api_list")
enum: [ homepage ]
published:
type: boolean
description: Whether the page is published or not
PortalArea:
type: string
description: The portal area (used by portal navigation items)
enum: [ HOMEPAGE, TOP_NAVBAR ]
example: TOP_NAVBAR
default: TOP_NAVBAR
PortalVisibility:
type: string
description: The portal visibility (used by portal navigation items)
enum: [ PUBLIC, PRIVATE ]
example: PUBLIC
PortalNavigationItemType:
type: string
description: The type of the navigation item
example: FOLDER
enum: [ PAGE, FOLDER, LINK, API, API_PRODUCT ]
BasePortalNavigationItem:
type: object
description: Base portal navigation item
properties:
id:
type: string
format: uuid
description: The unique ID of the navigation item
example: 00f8c9e7-78fc-4907-b8c9-e778fc790750
organizationId:
type: string
description: The organization ID
example: DEFAULT
environmentId:
type: string
description: The environment ID
example: DEFAULT
title:
type: string
description: The title of the navigation item
type:
$ref: "#/components/schemas/PortalNavigationItemType"
area:
$ref: "#/components/schemas/PortalArea"
parentId:
type: string
format: uuid
description: The parent ID of the navigation item
example: 00f8c9e7-78fc-4907-b8c9-e778fc790750
rootId:
type: string
format: uuid
description: The root parent ID of the navigation item hierarchy
example: 00f8c9e7-78fc-4907-b8c9-e778fc790750
order:
type: integer
description: The order of the navigation item (zero-based)
example: 2
published:
type: boolean
description: Whether the navigation item is published or not
example: true
visibility:
$ref: "#/components/schemas/PortalVisibility"
required: [ id, organizationId, environmentId, title, type, area, order, published, visibility, rootId ]
discriminator:
propertyName: type
mapping:
PAGE: "#/components/schemas/PortalNavigationPage"
FOLDER: "#/components/schemas/PortalNavigationFolder"
LINK: "#/components/schemas/PortalNavigationLink"
API: "#/components/schemas/PortalNavigationApi"
API_PRODUCT: "#/components/schemas/PortalNavigationApiProduct"
PortalNavigationItemSource:
type: object
description: External source of the item content.
properties:
type:
type: string
description: Fetcher plugin id.
example: github-fetcher
configuration:
type: object
description: Fetcher configuration.
useAutoFetch:
type: boolean
description: Whether the content is automatically re-fetched on a schedule.
default: false
fetchCron:
type: string
description: Cron expression driving the auto-fetch schedule. Only used when useAutoFetch is true.
example: "0 */10 * * * *"
lastFetchedAt:
type: string
format: date-time
readOnly: true
description: Date of the last successful fetch.
example: 2026-07-17T00:00:00.000Z
lastFetchError:
type: string
readOnly: true
description: Error message of the last failed fetch. Absent when the last fetch succeeded.
required: [ type, configuration ]
PortalNavigationPage:
description: Portal navigation item of type PAGE
allOf:
- $ref: "#/components/schemas/BasePortalNavigationItem"
- properties:
portalPageContentId:
type: string
format: uuid
description: The UUID of the portal page content
example: 00f8c9e7-78fc-4907-b8c9-e778fc790750
source:
$ref: "#/components/schemas/PortalNavigationItemSource"
required: [ portalPageContentId ]
PortalNavigationFolder:
description: Portal navigation item of type FOLDER
allOf:
- $ref: "#/components/schemas/BasePortalNavigationItem"
- properties:
source:
$ref: "#/components/schemas/PortalNavigationItemSource"
PortalNavigationLink:
description: Portal navigation item of type LINK
allOf:
- $ref: "#/components/schemas/BasePortalNavigationItem"
- properties:
url:
type: string
description: The URL for the link
example: https://example.com
required: [ url ]
PortalNavigationApi:
description: Portal navigation item of type API
allOf:
- $ref: "#/components/schemas/BasePortalNavigationItem"
- properties:
apiId:
type: string
description: ApiId referenced from the navItem
example: 3f2504e0-4f89-41d3-9a0c-0305e82c3301
required: [ apiId ]
PortalNavigationApiProduct:
description: Portal navigation item of type API_PRODUCT
allOf:
- $ref: "#/components/schemas/BasePortalNavigationItem"
- properties:
apiProductId:
type: string
format: uuid
description: API Product referenced by the navigation item
example: 3f2504e0-4f89-41d3-9a0c-0305e82c3301
required: [ apiProductId ]
PortalNavigationItem:
oneOf:
- $ref: "#/components/schemas/PortalNavigationPage"
- $ref: "#/components/schemas/PortalNavigationFolder"
- $ref: "#/components/schemas/PortalNavigationLink"
- $ref: "#/components/schemas/PortalNavigationApi"
- $ref: "#/components/schemas/PortalNavigationApiProduct"
discriminator:
propertyName: type
mapping:
PAGE: "#/components/schemas/PortalNavigationPage"
FOLDER: "#/components/schemas/PortalNavigationFolder"
LINK: "#/components/schemas/PortalNavigationLink"
API: "#/components/schemas/PortalNavigationApi"
API_PRODUCT: "#/components/schemas/PortalNavigationApiProduct"
BaseCreatePortalNavigationItem:
type: object
description: Base portal navigation item. Newly created items are unpublished by default.
properties:
id:
type: string
format: uuid
description: The unique ID of the navigation item
example: 00f8c9e7-78fc-4907-b8c9-e778fc790750
title:
type: string
description: The title of the navigation item
type:
$ref: "#/components/schemas/PortalNavigationItemType"
area:
$ref: "#/components/schemas/PortalArea"
order:
type: integer
minimum: 0
description: The order of the navigation item, from 0 to MAX + 1, where MAX is the maximum existing order within the target parent. If not provided or greater than MAX, the new item is appended to the end of the target parent.
example: 2
parentId:
type: string
format: uuid
description: The parent ID of the navigation item, if not provided item is created at root
example: 00f8c9e7-78fc-4907-b8c9-e778fc790750
visibility:
$ref: "#/components/schemas/PortalVisibility"
discriminator:
propertyName: type
mapping:
FOLDER: "#/components/schemas/CreatePortalNavigationFolder"
PAGE: "#/components/schemas/CreatePortalNavigationPage"
LINK: "#/components/schemas/CreatePortalNavigationLink"
API: "#/components/schemas/CreatePortalNavigationApi"
API_PRODUCT: "#/components/schemas/CreatePortalNavigationApiProduct"
required: [ title, type, area, visibility ]
CreatePortalNavigationFolder:
type: object
title: "CreatePortalNavigationFolder"
description: Portal navigation folder to create
allOf:
- $ref: "#/components/schemas/BaseCreatePortalNavigationItem"
- properties:
source:
$ref: "#/components/schemas/PortalNavigationItemSource"
CreatePortalNavigationPage:
type: object
title: "CreatePortalNavigationPage"
description: Portal navigation page to create
allOf:
- $ref: "#/components/schemas/BaseCreatePortalNavigationItem"
- properties:
portalPageContentId:
type: string
format: uuid
description: The UUID of the portal page content
example: 00f8c9e7-78fc-4907-b8c9-e778fc790750
contentType:
$ref: "#/components/schemas/PortalPageContentType"
description: The content type for the page. Defaults to GRAVITEE_MARKDOWN if not provided.
source:
$ref: "#/components/schemas/PortalNavigationItemSource"
CreatePortalNavigationLink:
type: object
title: "CreatePortalNavigationLink"
description: Portal navigation link to create
allOf:
- $ref: "#/components/schemas/BaseCreatePortalNavigationItem"
- properties:
url:
type: string
description: The URL for the link
example: https://example.com
required: [ url ]
CreatePortalNavigationApi:
type: object
title: "CreatePortalNavigationApi"
description: Portal navigation Api to create
allOf:
- $ref: "#/components/schemas/BaseCreatePortalNavigationItem"
- properties:
apiId:
type: string
description: The apiId for the navigationItem
example: "3f2504e0-4f89-41d3-9a0c-0305e82c3301"
required: [ apiId ]
CreatePortalNavigationApiProduct:
type: object
title: "CreatePortalNavigationApiProduct"
description: Portal navigation API Product item to create. Newly created items are unpublished by default.
allOf:
- $ref: "#/components/schemas/BaseCreatePortalNavigationItem"
- properties:
apiProductId:
type: string
format: uuid
description: API Product referenced by the navigation item
example: "3f2504e0-4f89-41d3-9a0c-0305e82c3301"
required: [ apiProductId ]
CreatePortalNavigationItem:
oneOf:
- $ref: "#/components/schemas/CreatePortalNavigationPage"
- $ref: "#/components/schemas/CreatePortalNavigationFolder"
- $ref: "#/components/schemas/CreatePortalNavigationLink"
- $ref: "#/components/schemas/CreatePortalNavigationApi"
- $ref: "#/components/schemas/CreatePortalNavigationApiProduct"
discriminator:
propertyName: type
mapping:
PAGE: "#/components/schemas/CreatePortalNavigationPage"
FOLDER: "#/components/schemas/CreatePortalNavigationFolder"
LINK: "#/components/schemas/CreatePortalNavigationLink"
API: "#/components/schemas/CreatePortalNavigationApi"
API_PRODUCT: "#/components/schemas/CreatePortalNavigationApiProduct"
CreatePortalNavigationItems:
type: object
description: Portal navigation items to create in bulk
properties:
items:
type: array
items:
$ref: "#/components/schemas/CreatePortalNavigationItem"
required: [ items ]
BaseCreatePortalNavigationItems:
type: object
description: Portal navigation items to create in bulk
properties:
items:
type: array
items:
$ref: "#/components/schemas/BaseCreatePortalNavigationItem"
required: [ items ]
SeedDefaultPagesRequest:
type: object
description: Portal navigation API item ids that should receive their default overview page
properties:
ids:
type: array
minItems: 1
items:
type: string
format: uuid
pattern: '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$'
required: [ ids ]
BaseUpdatePortalNavigationItem:
type: object
description: Base portal navigation item for Update
properties:
type:
$ref: "#/components/schemas/PortalNavigationItemType"
title:
type: string
description: The title of the navigation item
order:
type: integer
minimum: 0
description: The order of the navigation item, from 0 to MAX, where MAX is the maximum existing order within the target parent. If greater than MAX, the item is moved to the end of the target parent.
example: 2
parentId:
type: string
format: uuid
description: The parent ID of the navigation item, if not provided item is moved to the root level
example: 00f8c9e7-78fc-4907-b8c9-e778fc790750
published:
type: boolean
description: Whether the navigation item is published or not
example: true
visibility:
$ref: "#/components/schemas/PortalVisibility"
discriminator:
propertyName: type
mapping:
FOLDER: "#/components/schemas/UpdatePortalNavigationFolder"
PAGE: "#/components/schemas/UpdatePortalNavigationPage"
LINK: "#/components/schemas/UpdatePortalNavigationLink"
API: "#/components/schemas/UpdatePortalNavigationApi"
API_PRODUCT: "#/components/schemas/UpdatePortalNavigationApiProduct"
required: [ type, title, order, published, visibility ]
UpdatePortalNavigationFolder:
type: object
title: "UpdatePortalNavigationFolder"
description: Portal navigation folder to update
allOf:
- $ref: "#/components/schemas/BaseUpdatePortalNavigationItem"
- properties:
source:
$ref: "#/components/schemas/PortalNavigationItemSource"
UpdatePortalNavigationPage:
type: object
title: "UpdatePortalNavigationPage"
description: Portal navigation page to update
allOf:
- $ref: "#/components/schemas/BaseUpdatePortalNavigationItem"
- properties:
source:
$ref: "#/components/schemas/PortalNavigationItemSource"
UpdatePortalNavigationLink:
type: object
title: "UpdatePortalNavigationLink"
description: Portal navigation link to update
allOf:
- $ref: "#/components/schemas/BaseUpdatePortalNavigationItem"
- properties:
url:
type: string
description: The URL for the link
example: https://example.com
required: [ url ]
UpdatePortalNavigationApi:
type: object
title: "UpdatePortalNavigationApi"
description: Portal navigation api to update
allOf:
- $ref: "#/components/schemas/BaseUpdatePortalNavigationItem"
- properties:
apiId:
type: string
description: The apiId for the navigationItem
example: "3f2504e0-4f89-41d3-9a0c-0305e82c3301"
required: [ apiId ]
UpdatePortalNavigationApiProduct:
type: object
title: "UpdatePortalNavigationApiProduct"
description: Portal navigation API Product item to update. The linked API Product is immutable; an apiProductId property supplied in an update payload is ignored.
allOf:
- $ref: "#/components/schemas/BaseUpdatePortalNavigationItem"
UpdatePortalNavigationItem:
oneOf:
- $ref: "#/components/schemas/UpdatePortalNavigationPage"
- $ref: "#/components/schemas/UpdatePortalNavigationFolder"
- $ref: "#/components/schemas/UpdatePortalNavigationLink"
- $ref: "#/components/schemas/UpdatePortalNavigationApi"
- $ref: "#/components/schemas/UpdatePortalNavigationApiProduct"
discriminator:
propertyName: type
mapping:
PAGE: "#/components/schemas/UpdatePortalNavigationPage"
FOLDER: "#/components/schemas/UpdatePortalNavigationFolder"
LINK: "#/components/schemas/UpdatePortalNavigationLink"
API: "#/components/schemas/UpdatePortalNavigationApi"
API_PRODUCT: "#/components/schemas/UpdatePortalNavigationApiProduct"
PortalCategory:
type: object
description: A Portal Next category, used to group APIs on the New Developer Portal
properties:
id:
type: string
format: uuid
description: The unique ID of the portal category
example: 00f8c9e7-78fc-4907-b8c9-e778fc790750
title:
type: string
description: The title of the portal category
example: Weather
description:
type: string
description: The description of the portal category
example: APIs related to weather forecasts
visible:
type: boolean
description: Whether the portal category is visible on the portal
example: true
required: [ id, title ]
CreatePortalCategory:
type: object
description: Portal category to create
properties:
title:
type: string
description: The title of the portal category
example: Weather
description:
type: string
description: The description of the portal category
example: APIs related to weather forecasts
visible:
type: boolean
description: Whether the portal category is visible on the portal
default: true
example: true
required: [ title ]
UpdatePortalCategory:
type: object
description: Portal category to update
properties:
title:
type: string
description: The title of the portal category
example: Weather
description:
type: string
description: The description of the portal category
example: APIs related to weather forecasts
visible:
type: boolean
description: Whether the portal category is visible on the portal
default: true
example: true
required: [ title ]
PortalPageContentType:
type: string
description: Type of portal page content
enum:
- GRAVITEE_MARKDOWN
- OPENAPI
- ASYNCAPI
PortalPageOpenApiConfiguration:
oneOf:
- $ref: "#/components/schemas/PortalPageSwaggerConfiguration"
- $ref: "#/components/schemas/PortalPageRedocConfiguration"
discriminator:
propertyName: viewer
mapping:
SWAGGER: "#/components/schemas/PortalPageSwaggerConfiguration"
REDOC: "#/components/schemas/PortalPageRedocConfiguration"
BasePortalPageOpenApiConfiguration:
type: object
description: OpenAPI viewer configuration for a portal page content
properties:
viewer:
type: string
description: The type of viewer for OpenAPI specification. Default is 'SWAGGER'
enum:
- SWAGGER
- REDOC
default: SWAGGER
required: [ viewer ]
discriminator:
propertyName: viewer
mapping:
SWAGGER: "#/components/schemas/PortalPageSwaggerConfiguration"
REDOC: "#/components/schemas/PortalPageRedocConfiguration"
PortalPageSwaggerConfiguration:
type: object
title: "PortalPageSwaggerConfiguration"
description: Swagger UI viewer configuration for a portal page content
allOf:
- $ref: "#/components/schemas/BasePortalPageOpenApiConfiguration"
- properties:
displayOperationId:
type: boolean
description: Display the operationId in the operations list.
default: false
docExpansion:
type: string
description: |
Default expansion setting for the operations and tags.
Possible values are:
- list: Expands only the tags
- full: Expands the tags and operations
- none: Expands nothing. Default.
enum:
- list
- full
- none
default: none
enableFiltering:
type: boolean
description: Add a top bar to filter content.
default: false
maxDisplayedTags:
type: integer
description: |
Number of max tagged operations displayed.
Limits the number of tagged operations displayed to at most this many (negative means show all operations).
No limit by default.
default: -1
showCommonExtensions:
type: boolean
description: Display common extension fields and values for parameters.
default: false
showExtensions:
type: boolean
description: Display vendor extension (X-) fields and values for operations, parameters, and schema.
default: false
showURL:
type: boolean
description: Show the URL to download the content.
default: false
tryIt:
type: boolean
description: Enable "Try It!" mode in documentation page.
default: false
disableSyntaxHighlight:
type: boolean
description: Disable response body styling for large JSON payloads.
default: false
tryItAnonymous:
type: boolean
description: Enable "Try It!" mode in documentation page for anonymous users.
default: false
tryItURL:
type: string
description: Base URL used to try the API.
default: ""
usePkce:
type: boolean
description: Enable use of PKCE with authorization code flows in documentation page.
default: false
entrypointsAsServers:
type: boolean
description: Use API entrypoints as OpenAPI servers.
default: false
contextPathAsServerPath:
type: boolean
description: Use API context-path as OpenAPI server URL path.
default: false
PortalPageRedocConfiguration:
type: object
title: "PortalPageRedocConfiguration"
description: Redoc viewer configuration for a portal page content
allOf:
- $ref: "#/components/schemas/BasePortalPageOpenApiConfiguration"
- properties:
tryItURL:
type: string
description: Base URL used as OpenAPI server URL for Redoc.
default: ""
PortalPageContent:
type: object
description: Portal page content
properties:
id:
type: string
description: The unique ID of the portal page content
type:
$ref: "#/components/schemas/PortalPageContentType"
content:
type: string
description: The content of the page
configuration:
$ref: "#/components/schemas/PortalPageOpenApiConfiguration"
required: [ id, type, content ]
UpdatePortalPageContent:
type: object
description: Update portal page content
properties:
content:
type: string
description: The updated content for the page
configuration:
$ref: "#/components/schemas/PortalPageOpenApiConfiguration"
required: [ content ]
# Subscription Forms
SubscriptionForm:
type: object
description: Subscription form definition used by API consumers when subscribing to APIs
properties:
id:
type: string
format: uuid
description: Unique identifier of the subscription form
example: 550e8400-e29b-41d4-a716-446655440000
gmdContent:
type: string
description: |-
Gravitee Markdown (GMD) content defining the form.
Supports form components like gmd-input, gmd-textarea, gmd-select, gmd-checkbox, gmd-radio.
example: |
# Subscription Information
enabled:
type: boolean
description: Whether the form is enabled and visible to API consumers in the Developer Portal
example: false
resolvedOptions:
type: object
description: |-
Resolved option lists for fields that use EL expressions.
Keys are field keys; values are the effective option lists (fallback values when no API context is available).
Present only when at least one field has dynamic options.
additionalProperties:
type: array
items:
type: string
required:
- id
- gmdContent
- enabled
UpdateSubscriptionForm:
type: object
description: Payload for updating a subscription form
properties:
gmdContent:
type: string
minLength: 1
description: |-
Gravitee Markdown (GMD) content defining the form.
Supports form components like gmd-input, gmd-textarea, gmd-select, gmd-checkbox, gmd-radio.
Content is validated for security - malicious HTML/scripts will be rejected.
example: |
# Subscription Information
required:
- gmdContent
parameters:
pageParam:
name: page
in: query
required: false
description: The page number for pagination.
schema:
type: integer
default: 1
perPageParam:
name: perPage
in: query
required: false
description: |
The number of items per page for pagination.
schema:
type: integer
default: 10
from:
name: from
in: query
required: false
description: |
The timestamp in ms from which the logs will be returned.
schema:
type: integer
format: int64
to:
name: to
in: query
required: false
description: |
The timestamp in ms to which the logs will be returned.
schema:
type: integer
format: int64
# Members (Shared by api, cluster, integration, ...)
memberId:
name: memberId
in: path
required: true
description: Id of an API member.
schema:
type: string
# Shared policy group
sharedPolicyGroupId:
name: sharedPolicyGroupId
in: path
description: The unique ID of the shared policy group
required: true
schema:
type: string
sharedPolicyGroupSortByParam:
name: sortBy
in: query
required: false
description: |-
Possibility to sort Shared Policy Group results by field.
Can be ascending or descending with minus '-' prefix.
By default, no sort is applied.
schema:
type: string
example: name
enum:
- name
- -name
- apiType
- -apiType
- phase
- -phase
- updatedAt
- -updatedAt
- deployedAt
- -deployedAt
sharedPolicyGroupSearchParam:
name: q
in: query
description: |-
A search query to filter shared policy groups.
schema:
type: string
example: my shared policy group
sharedPolicyGroupHistoriesSortByParam:
name: sortBy
in: query
required: false
description: |-
Possibility to sort Shared Policy Group history results by field.
Can be ascending or descending with minus '-' prefix.
By default, no sort is applied.
schema:
type: string
example: name
enum:
- version
- -version
- updatedAt
- -updatedAt
- deployedAt
- -deployedAt
# Scoring
rulesetId:
name: rulesetId
in: path
description: The unique ID of ruleset
required: true
schema:
type: string
scoringFunctionName:
name: scoringFunctionName
in: path
description: The name of scoring function
required: true
schema:
$ref: "#/components/schemas/ScoringFunctionName"
# Cluster
clusterId:
name: clusterId
in: path
description: The unique ID of the cluster
required: true
schema:
type: string
clusterSortByParam:
name: sortBy
in: query
required: false
description: |-
Possibility to sort Cluster results by field.
Can be ascending or descending with minus '-' prefix.
By default, it is sorted by name.
schema:
type: string
example: name
enum:
- name
- -name
- createdAt
- -createdAt
- updatedAt
- -updatedAt
clusterSearchParam:
name: q
in: query
description: |-
A search query to filter clusters.
schema:
type: string
example: my cluster
clusterTypeParam:
name: type
in: query
required: false
description: |-
Filter clusters by type.
schema:
$ref: "#/components/schemas/ClusterType"
clusterLifecycleStateParam:
name: lifecycleState
in: query
required: false
description: |-
Filter clusters by lifecycle state. Repeat the parameter to match several states.
schema:
type: array
items:
type: string
enum: [ UNDEPLOYED, DEPLOYED, PENDING ]
# Instances
instanceId:
name: instanceId
in: path
description: The gateway instance ID
required: true
schema:
type: string
# Portal Page
contextType:
name: contextType
in: query
description: The portal context type (eg. "homepage", "api_list")
required: true
schema:
type: string
enum: [ homepage ]
expandComponents:
name: expands
in: query
description: >
Comma-separated list of fields to expand. Possible value: 'content'
required: false
schema:
type: array
items:
type: string
enum: [ content ]
# Portal Navigation
portalArea:
name: area
in: query
description: The portal area (eg. "homepage", "top_navbar")
required: false
schema:
$ref: "#/components/schemas/PortalArea"
responses:
SchemaFormResponse:
description: Schema form of a plugin
content:
application/json:
schema:
type: object
Error:
description: Generic error response
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
# Members (Shared by api, cluster, integration, ...)
MembersResponse:
description: Page of members
content:
application/json:
schema:
title: "MembersResponse"
properties:
data:
description: List of members.
type: array
items:
$ref: "#/components/schemas/Member"
links:
$ref: "#/components/schemas/Links"
metadata:
$ref: "#/components/schemas/ResponseMetadata"
pagination:
$ref: "#/components/schemas/Pagination"
# Shared policy group
SharedPolicyGroupsResponse:
description: Page of shared policy groups
content:
application/json:
schema:
title: "SharedPolicyGroupsResponse"
properties:
data:
description: List of SharedPolicyGroup.
type: array
items:
$ref: "#/components/schemas/SharedPolicyGroup"
pagination:
$ref: "#/components/schemas/Pagination"
links:
$ref: "#/components/schemas/Links"
SharedPolicyGroupHistoriesResponse:
description: Page of shared policy group histories
content:
application/json:
schema:
title: "SharedPolicyGroupHistoriesResponse"
properties:
data:
description: List of SharedPolicyGroup.
type: array
items:
$ref: "#/components/schemas/SharedPolicyGroup"
pagination:
$ref: "#/components/schemas/Pagination"
links:
$ref: "#/components/schemas/Links"
# Cluster
ClustersResponse:
description: Page of clusters
content:
application/json:
schema:
title: "ClustersResponse"
properties:
data:
description: List of Clusters.
type: array
items:
$ref: "#/components/schemas/Cluster"
pagination:
$ref: "#/components/schemas/Pagination"
links:
$ref: "#/components/schemas/Links"
ClusterPermissionsResponse:
description: Permissions response
content:
application/json:
schema:
title: "PermissionsResponse"
properties:
data:
description: Key/Value list of permissions. The key is the permission name and the value is the permission CRUD value.
example: { "DEFINITION": "CRUD", "MEMBER": "R" }
type: object
additionalProperties:
type: string
# Analytics
EnvironmentAnalyticsResponseStatusRangesResponse:
description: Analytics for status codes by entrypoint at environment level
content:
application/json:
schema:
title: "EnvironmentAnalyticsResponseStatusRangesResponse"
description: Environment level API Analytics for status codes by entrypoint.
properties:
ranges:
type: object
description: Global status ranges
additionalProperties:
description: A map of response status range and counts
type: number
example:
100.0-200.0:
value: 5
200.0-300.0:
value: 357
300.0-400.0:
value: 0
400.0-500.0:
value: 0
500.0-600.0:
value: 0
EnvironmentAnalyticsTopHitsApisResponse:
description: Analytics for v2 and v4 top hits APIs at environment level
content:
application/json:
schema:
title: "EnvironmentAnalyticsTopHitsApisResponse"
description: Analytics for top hits APIs at environment level
properties:
data:
type: array
description: List of top hit results
items:
$ref: "#/components/schemas/TopHitApi"
EnvironmentAnalyticsRequestResponseTimeResponse:
description: Analytics for request response times at environment level
content:
application/json:
schema:
title: "EnvironmentAnalyticsRequestResponseTimeResponse"
description: Analytics for top hits APIs at environment level
properties:
requestsPerSecond:
type: number
format: double
description: Number of requests per second
example: 0.7
requestsTotal:
type: number
format: int64
description: Total number of requests
example: 3567
responseMinTime:
type: number
format: double
description: Response minimum time in ms
example: 32.23
responseMaxTime:
type: number
format: double
description: Response maximum time in ms
example: 7240.11
responseAvgTime:
type: number
format: double
description: Response average time in ms
example: 89.2
EnvironmentAnalyticsOverPeriodResponse:
description: Analytics for number over period
content:
application/json:
schema:
title: "EnvironmentAnalyticsOverPeriodResponse"
description: Environment Analytics integer data point on a period.
properties:
timeRange:
$ref: "#/components/schemas/AnalyticTimeRange"
data:
type: array
description: Response time average (in milliseconds) over time
items:
type: integer
format: int64
minimum: 0
exclusiveMinimum: true
EnvironmentAnalyticsResponseStatusOvertimeResponse:
description: Analytics for status codes over time
content:
application/json:
schema:
title: "EnvironmentAnalyticsResponseStatusOvertimeResponse"
description: Environment Analytics for status codes over time.
properties:
timeRange:
$ref: "#/components/schemas/AnalyticTimeRange"
data:
type: object
description: Status count overt time
additionalProperties:
description: A map of response status and counts
type: array
items:
type: integer
format: int64
EnvironmentAnalyticsTopAppsByRequestCountResponse:
description: Analytics for v2 and v4 top applications by the request count
content:
application/json:
schema:
title: "EnvironmentAnalyticsTopAppsByRequestCountResponse"
description: Analytics for top applications by the request count
properties:
data:
type: array
description: List of top application results
items:
$ref: "#/components/schemas/TopApp"
EnvironmentAnalyticsTopFailedApisResponse:
description: Analytics for top failed v2 and v4 APIs based on 5xx status calls
content:
application/json:
schema:
title: "EnvironmentAnalyticsTopFailedApisResponse"
description: Analytics for top failed v2 and v4 APIs based on 5xx status calls
properties:
data:
type: array
description: List of top failed APIs results
items:
$ref: "#/components/schemas/TopFailedApis"
# Scoring
EnvironmentApisScoringResponse:
description: Page of Apis Scoring
content:
application/json:
schema:
title: "EnvironmentApisScoringResponse"
properties:
data:
description: List of EnvironmentApiScoreSummary.
type: array
items:
$ref: "#/components/schemas/EnvironmentApiScore"
pagination:
$ref: "#/components/schemas/Pagination"
links:
$ref: "#/components/schemas/Links"
ScoringRulesetsResponse:
description: Scoring rulesets list
content:
application/json:
schema:
title: "ScoringRulesetsResponse"
properties:
data:
description: List of rulesets.
type: array
items:
$ref: "#/components/schemas/ScoringRuleset"
ScoringFunctionsResponse:
description: Scoring functions list
content:
application/json:
schema:
title: "ScoringFunctionsResponse"
properties:
data:
description: List of rulesets.
type: array
items:
$ref: "#/components/schemas/ScoringFunction"
# NewAI
GenerateExpressionLanguageResponse:
description: Response an expression language generation
content:
application/json:
schema:
title: "GenerateExpressionLanguageResponse"
properties:
message:
description: Expression language generated.
type: string
feedbackRequestId:
$ref: '#/components/schemas/FeedbackRequestId'
# Instances
InstanceDetailResponse:
description: The gateway instance details.
content:
application/json:
schema:
title: "InstanceDetailResponse"
properties:
id:
type: string
description: Gateway's uuid.
example: 00f8c9e7-78fc-4907-b8c9-e778fc790750
hostname:
type: string
description: Gateway's hostname.
example: my-gateway.example.com
ip:
type: string
description: Gateway's ip.
example: 10.0.1.123
PortalPageResponse:
description: A portal page
content:
application/json:
schema:
$ref: "#/components/schemas/PortalPageWithDetails"
PortalPagesResponse:
description: A list of portal pages
content:
application/json:
schema:
title: "PortalPagesResponse"
properties:
pages:
type: array
description: List of portal pages
items:
$ref: "#/components/schemas/PortalPageWithDetails"
PortalNavigationItemsResponse:
description: A list of portal navigation items
content:
application/json:
schema:
title: "PortalNavigationItemsResponse"
properties:
items:
type: array
description: List of portal navigation items
items:
$ref: "#/components/schemas/PortalNavigationItem"
PortalPageContentResponse:
description: Portal page content
content:
application/json:
schema:
$ref: "#/components/schemas/PortalPageContent"
securitySchemes:
BasicAuth:
type: http
scheme: basic
CookieAuth:
type: apiKey
in: cookie
name: Auth-Graviteeio-APIM