openapi: 3.0.3 info: title: Gravitee.io APIM - Management API - UI 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 servers: - url: "/management/v2/environments/{envId}" description: APIM Management API v2 - Default base URL variables: envId: description: Id or Hrid (Human readable Id) of an 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: Id or Hrid (Human readable Id) of an environment default: DEFAULT tags: - name: Management UI description: Everything about Management UI paths: /ui/customization: servers: - url: "{protocol}://{managementAPIHost}/management/v2" description: APIM Management API v2 - Default base URL variables: protocol: description: The protocol you want to use to communicate with the mAPI default: https enum: - https - http managementAPIHost: description: The domain of the server hosting your Management API default: localhost:8083 get: tags: - Management UI summary: Get customization of Console by default organization description: | Get the customization settings of Console by default organization. No authentication necessary. An empty response is returned if the OEM Customization is missing from the Gravitee License. operationId: getConsoleCustomization responses: "200": description: The customization settings for the console. content: application/json: schema: $ref: "#/components/schemas/ConsoleCustomization" "204": description: The license does not contain OEM Customization default: $ref: "#/components/responses/Error" /organizations/{orgId}/ui/customization: servers: - url: "{protocol}://{managementAPIHost}/management/v2" description: APIM Management API v2 - Default base URL variables: protocol: description: The protocol you want to use to communicate with the mAPI default: https enum: - https - http managementAPIHost: description: The domain of the server hosting your Management API default: localhost:8083 parameters: - $ref: "#/components/parameters/orgIdParam" get: tags: - Management UI summary: Get customization of Console by organization description: | Get the customization settings of Console by organization. User can only access the customization of their organization. An empty response is returned if the OEM Customization is missing from the Gravitee License. operationId: getConsoleCustomizationByOrganization responses: "200": description: The customization settings for the console. content: application/json: schema: $ref: "#/components/schemas/ConsoleCustomization" "204": description: The license does not contain OEM Customization default: $ref: "#/components/responses/Error" /ui/themes: get: parameters: - $ref: "#/components/parameters/pageParam" - $ref: "#/components/parameters/perPageParam" - $ref: "#/components/parameters/themeTypeParam" - $ref: "#/components/parameters/enabledThemeParam" tags: - Management UI summary: Get page of portal themes description: | Get a page of the portal themes used in the given environment. These themes can be used with either Portal or Portal-Next. User must have the ENVIRONMENT_THEME[READ] permission. operationId: getPortalThemes responses: "200": $ref: "#/components/responses/ThemesResponse" default: $ref: "#/components/responses/Error" /ui/themes/_default: get: tags: - Management UI parameters: - $ref: "#/components/parameters/themeTypeParam" summary: Get default theme description: | Get default theme for a given environment. Only PORTAL_NEXT is currently supported. User must have the ENVIRONMENT_THEME[READ] permission. operationId: getDefaultTheme responses: "200": description: The default theme. content: application/json: schema: $ref: "#/components/schemas/Theme" default: $ref: "#/components/responses/Error" /ui/themes/_current: get: tags: - Management UI parameters: - $ref: "#/components/parameters/themeTypeParam" summary: Get current theme description: | Get default theme for a given environment for either Portal or Portal Next. User must have the ENVIRONMENT_THEME[READ] permission. operationId: getCurrentTheme responses: "200": description: The current theme. content: application/json: schema: $ref: "#/components/schemas/Theme" default: $ref: "#/components/responses/Error" /ui/themes/{themeId}: parameters: - $ref: "#/components/parameters/themeIdParam" put: tags: - Management UI summary: Update theme by ID description: | Update either Portal or Portal Next theme. User must have the ENVIRONMENT_THEME[UPDATE] permission. operationId: updateTheme requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateTheme" required: true responses: "200": description: The updated theme. content: application/json: schema: $ref: "#/components/schemas/Theme" default: $ref: "#/components/responses/Error" /ui/portal-menu-links: get: parameters: - $ref: "#/components/parameters/pageParam" - $ref: "#/components/parameters/perPageParam" tags: - Management UI summary: Get page of portal menu links description: | Get a page of the portal menu links used in the given environment. These menu links can be used with Portal-Next to customization the links in the top bar. User must have the ENVIRONMENT_SETTINGS[READ] permission. operationId: getPortalMenuLinks responses: "200": $ref: "#/components/responses/PortalMenuLinksResponse" default: $ref: "#/components/responses/Error" post: tags: - Management UI summary: Create portal menu link description: | Create a new portal menu link. For an EXTERNAL link, provide a name and a target. User must have the ENVIRONMENT_SETTINGS[UPDATE] permission. operationId: createPortalMenuLink requestBody: content: application/json: schema: $ref: "#/components/schemas/CreatePortalMenuLink" required: true responses: "201": description: The created portal menu link content: application/json: schema: $ref: "#/components/schemas/PortalMenuLink" default: $ref: "#/components/responses/Error" /ui/portal-menu-links/{portalMenuLinkId}: parameters: - $ref: "#/components/parameters/portalMenuLinkIdParam" get: parameters: - $ref: "#/components/parameters/pageParam" - $ref: "#/components/parameters/perPageParam" tags: - Management UI summary: Get a portal menu link description: | Get a portal menu link used in the given environment. User must have the ENVIRONMENT_SETTINGS[READ] permission. operationId: getPortalMenuLink responses: "200": description: The requested portal menu link content: application/json: schema: $ref: "#/components/schemas/PortalMenuLink" default: $ref: "#/components/responses/Error" put: tags: - Management UI summary: Update a portal menu link description: | Update a portal menu link. For an EXTERNAL link, provide a name, a target and an order. User must have the ENVIRONMENT_SETTINGS[UPDATE] permission. operationId: updatePortalMenuLink requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdatePortalMenuLink" required: true responses: "200": description: The updated portal menu link content: application/json: schema: $ref: "#/components/schemas/PortalMenuLink" default: $ref: "#/components/responses/Error" delete: tags: - Management UI summary: Delete portal menu link description: | Delete a portal menu link. User must have the ENVIRONMENT_SETTINGS[DELETE] permission. operationId: deletePortalMenuLink responses: "204": description: Portal menu link successfully deleted default: $ref: "#/components/responses/Error" components: schemas: ConsoleCustomization: type: object properties: theme: $ref: "#/components/schemas/ConsoleTheme" ctaConfiguration: $ref: "#/components/schemas/CtaConfiguration" logo: type: string description: The logo that should be displayed in the console favicon: type: string description: The favicon for the console title: type: string description: The title that will be displayed in the browser tab ConsoleTheme: type: object description: Information related to the Console theme properties: menuBackground: type: string description: The background color of the menu menuActive: type: string description: The color of an active menu item CreatePortalMenuLink: type: object properties: name: type: string description: Displayed name of the menu link example: My custom link type: type: string description: type of the menu link enum: - EXTERNAL default: EXTERNAL example: EXTERNAL target: type: string description: target of the menu link example: https://gravitee.io visibility: type: string description: visibility of the menu link enum: - PUBLIC - PRIVATE default: PRIVATE example: PUBLIC required: - name - type CtaConfiguration: type: object description: Configuration for the CTA popups properties: customEnterpriseName: type: string description: The name of the custom enterprise feature. This name will be used in the description provided in CTA popups. title: type: string description: The title that will be used in the CTA popup. trialButtonLabel: type: string description: The label used on the action button in CTA popup. trialURL: type: string description: The URL that will be targeted when clicking on the trail button. hideDays: type: boolean description: Whether the number of days for trial is displayed or not in the CTA popup. 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. GenericTheme: type: object title: "GenericTheme" properties: id: type: string description: Theme ID example: 00f8c9e7-78fc-4907-b8c9-e778fc790750 name: type: string description: Theme ID example: 00f8c9e7-78fc-4907-b8c9-e778fc790750 type: $ref: "#/components/schemas/ThemeType" createdAt: type: string format: date-time description: The date (as timestamp) when the Theme was created. example: 1581256457163 updatedAt: type: string format: date-time description: The last date (as timestamp) when the Theme was updated. example: 1581256457163 enabled: type: boolean description: If the theme is active example: true logo: type: string description: Theme logo optionalLogo: type: string description: Optional Theme logo favicon: type: string description: Theme favicon discriminator: propertyName: type mapping: PORTAL: ThemePortal PORTAL_NEXT: ThemePortalNext GenericUpdateTheme: type: object title: "GenericUpdateTheme" properties: id: type: string description: Theme ID example: 00f8c9e7-78fc-4907-b8c9-e778fc790750 name: type: string description: Theme ID example: 00f8c9e7-78fc-4907-b8c9-e778fc790750 type: $ref: "#/components/schemas/ThemeType" enabled: type: boolean description: If the theme is active example: true logo: type: string description: Theme logo optionalLogo: type: string description: Optional Theme logo favicon: type: string description: Theme favicon discriminator: propertyName: type mapping: PORTAL: UpdateThemePortal PORTAL_NEXT: UpdateThemePortalNext 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 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. PortalComponentDefinition: type: object properties: name: type: string description: Name of the component example: gv-tree css: type: array description: List of CSS variables items: $ref: "#/components/schemas/PortalCssDefinition" PortalCssDefinition: type: object description: CSS variable values properties: name: type: string description: Name of the CSS variable example: --gv-tree-color description: type: string description: Description of CSS variable example: Color of gv-tree value: type: string description: Value for CSS variable example: #000 defaultValue: type: string description: Default value for CSS variable example: #FFF type: type: string enum: - color - length - string - image PortalDefinition: type: object properties: data: type: array description: List of component definitions items: $ref: "#/components/schemas/PortalComponentDefinition" PortalMenuLink: type: object properties: id: type: string description: Portal menu link id example: 00f8c9e7-78fc-4907-b8c9-e778fc790750 name: type: string description: Displayed name of the menu link example: My custom link type: type: string description: type of the menu link enum: - EXTERNAL default: EXTERNAL example: EXTERNAL target: type: string description: target of the menu link example: https://gravitee.io visibility: type: string description: visibility of the menu link enum: - PUBLIC - PRIVATE default: PRIVATE example: PRIVATE order: type: integer description: The order of the menu link. example: 2 required: - id - name - type - order PortalNextDefinition: type: object description: Theme definition used for Portal-Next properties: color: $ref: "#/components/schemas/PortalNextDefinitionColor" font: $ref: "#/components/schemas/PortalNextDefinitionFont" customCss: type: string description: Custom CSS for Portal-Next PortalNextDefinitionColor: type: object description: Theme definition used for Portal-Next properties: primary: type: string description: Primary hex code color seed for Theme palette example: #e1f200 secondary: type: string description: Secondary hex code color seed for Theme palette example: #e1f200 tertiary: type: string description: Tertiary hex code color seed for Theme palette example: #e1f200 error: type: string description: Error hex code color seed for Theme palette example: #e1f200 pageBackground: type: string description: Background hex code color example: #e1f200 cardBackground: type: string description: Background hex code color example: #e1f200 PortalNextDefinitionFont: type: object description: Theme definition used for Portal-Next properties: fontFamily: type: string description: Font-family used for Portal-Next example: '"Roboto", sans-serif' Theme: oneOf: - $ref: "#/components/schemas/ThemePortal" - $ref: "#/components/schemas/ThemePortalNext" discriminator: propertyName: type mapping: PORTAL: ThemePortal PORTAL_NEXT: ThemePortalNext UpdatePortalMenuLink: type: object properties: name: type: string description: Displayed name of the menu link example: My custom link target: type: string description: target of the menu link example: https://gravitee.io visibility: type: string description: visibility of the menu link enum: - PUBLIC - PRIVATE example: PUBLIC order: type: integer description: The order of the menu link. example: 2 UpdateTheme: oneOf: - $ref: "#/components/schemas/UpdateThemePortal" - $ref: "#/components/schemas/UpdateThemePortalNext" discriminator: propertyName: type mapping: PORTAL: UpdateThemePortal PORTAL_NEXT: UpdateThemePortalNext ThemePortal: title: "ThemePortal" description: Theme used on the Portal allOf: - $ref: "#/components/schemas/GenericTheme" - properties: definition: $ref: "#/components/schemas/PortalDefinition" backgroundImage: type: string description: Background image used in header ThemePortalNext: title: "ThemePortalNext" description: Theme used in Portal-Next allOf: - $ref: "#/components/schemas/GenericTheme" - properties: definition: $ref: "#/components/schemas/PortalNextDefinition" UpdateThemePortal: title: "UpdateThemePortal" description: Theme used on the Portal allOf: - $ref: "#/components/schemas/GenericUpdateTheme" - properties: definition: $ref: "#/components/schemas/PortalDefinition" backgroundImage: type: string description: Background image used in header UpdateThemePortalNext: title: "UpdateThemePortalNext" description: Theme used in Portal-Next allOf: - $ref: "#/components/schemas/GenericUpdateTheme" - properties: definition: $ref: "#/components/schemas/PortalNextDefinition" ThemeType: type: string description: Available theme types default: PORTAL enum: - PORTAL - PORTAL_NEXT parameters: enabledThemeParam: name: enabled in: query required: false description: Filter for enabled themes. schema: type: boolean orgIdParam: name: orgId in: path required: true description: Id of an organization. schema: type: string default: DEFAULT 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 portalMenuLinkIdParam: name: portalMenuLinkId in: path required: true description: Id of an portal menu link. schema: type: string themeIdParam: name: themeId in: path required: true description: ID of a theme schema: type: string themeTypeParam: name: type in: query required: false description: Filter by theme type schema: $ref: "#/components/schemas/ThemeType" responses: Error: description: Generic error response content: application/json: schema: $ref: "#/components/schemas/Error" ThemesResponse: description: Page of themes content: application/json: schema: title: "ThemesResponse" properties: data: description: List of themes. type: array items: $ref: "#/components/schemas/Theme" pagination: $ref: "#/components/schemas/Pagination" links: $ref: "#/components/schemas/Links" PortalMenuLinksResponse: description: Page of portal menu links content: application/json: schema: title: "PortalMenuLinksResponse" properties: data: description: List of portal menu links. type: array items: $ref: "#/components/schemas/PortalMenuLink" pagination: $ref: "#/components/schemas/Pagination" links: $ref: "#/components/schemas/Links"