openapi: 3.1.0 info: contact: email: support@konghq.com name: Kong Inc url: https://konghq.com description: 'OpenAPI 3.0 spec for Kong Gateway''s Admin API. You can learn more about Kong Gateway at [developer.konghq.com](https://developer.konghq.com). Give Kong a star at the [Kong/kong](https://github.com/kong/kong) repository.' license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html title: Kong Enterprise Admin ACLs Catalog Resources API version: 3.14.0 servers: - description: Default Admin API URL url: '{protocol}://{hostname}:{port}{path}' variables: hostname: default: localhost description: Hostname for Kong's Admin API path: default: / description: Base path for Kong's Admin API port: default: '8001' description: Port for Kong's Admin API protocol: default: http description: Protocol for requests to Kong's Admin API enum: - http - https security: - adminToken: [] tags: - name: Catalog Resources description: 'Resources are entities discovered from integration instances and are intended to be mapped to the relevant services in the catalog. Once a resource has been mapped to a service, a rich view of this resource will be displayed when viewing your service. Any resources which you would like to ignore and hide can be archived. Note that archiving a resource will **remove** any mappings it has to services in the catalog. You can create Resources using only the properties required to identify the resource in the third-party system. Additional data will be hydrated if the integration that the Resource is linked to has been provided with authentication credentials. Resources which have not yet been hydrated may still be mapped to a Catalog Service. ' paths: /v1/integration-instances/{integrationInstanceId}/resources/{resourceId}: parameters: - name: integrationInstanceId in: path description: The `id` of the integration instance. required: true schema: type: string example: 3f51fa25-310a-421d-bd1a-007f859021a3 - name: resourceId in: path description: The `id` of the resource. required: true schema: type: string example: AflTNLY0tTQhv2my patch: operationId: update-resource summary: Update Resource description: Updates a resource. requestBody: $ref: '#/components/requestBodies/UpdateCatalogResourceRequest' responses: '200': $ref: '#/components/responses/CatalogResourceResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Catalog Resources /v1/resources: get: operationId: list-resources summary: List Resources description: Returns a paginated collection of resources. parameters: - $ref: '#/components/parameters/CursorPageQuery' - $ref: '#/components/parameters/CatalogResourceFilter' - $ref: '#/components/parameters/CatalogResourceSort' responses: '200': $ref: '#/components/responses/ListCatalogResourcesResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' tags: - Catalog Resources /v1/resources/{id}: parameters: - name: id in: path description: The `id` of the resource. required: true schema: type: string example: AflTNLY0tTQhv2my get: operationId: fetch-resource summary: Get a Resource description: Fetches a resource by ID. responses: '200': $ref: '#/components/responses/CatalogResourceResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' tags: - Catalog Resources components: schemas: InvalidParameterMinimumLength: type: object properties: field: type: string example: name readOnly: true rule: description: invalid parameters rules type: string enum: - min_length - min_digits - min_lowercase - min_uppercase - min_symbols - min_items - min nullable: false readOnly: true x-speakeasy-unknown-values: allow minimum: type: integer example: 8 source: type: string example: body reason: type: string example: must have at least 8 characters readOnly: true additionalProperties: false required: - field - reason - rule - minimum UpdatedAt: description: An ISO-8601 timestamp representation of entity update date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true InvalidParameterChoiceItem: type: object properties: field: type: string example: name readOnly: true rule: description: invalid parameters rules type: string enum: - enum nullable: false readOnly: true reason: type: string example: is a required field readOnly: true choices: type: array items: {} minItems: 1 nullable: false readOnly: true uniqueItems: true source: type: string example: body additionalProperties: false required: - field - reason - rule - choices InvalidParameterMaximumLength: type: object properties: field: type: string example: name readOnly: true rule: description: invalid parameters rules type: string enum: - max_length - max_items - max nullable: false readOnly: true x-speakeasy-unknown-values: allow maximum: type: integer example: 8 source: type: string example: body reason: type: string example: must not have more than 8 characters readOnly: true additionalProperties: false required: - field - reason - rule - maximum CatalogResourceConfigFieldFilter: description: "Filters on the resource's `config` field. Filters must use dot-notation to identify\nthe property that will be used to filter the results. For example:\n\n\n - `filter[config.control_plane_id]`\n - `filter[config.gateway_service_id][neq]=cedbd134-fc5c-4d44-9e38-ccd2a0c6e0ae`\n" type: object properties: eq: type: string contains: type: string ocontains: type: string oeq: type: string neq: type: string additionalProperties: false required: - contains - ocontains - oeq - neq title: CatalogResourceConfigFieldFilter CatalogResourceFilterParameters: type: object properties: id: $ref: '#/components/schemas/StringFieldFilterExact' name: $ref: '#/components/schemas/StringFieldFilter' integration.name: oneOf: - $ref: '#/components/schemas/StringFieldFilter' integration.display_name: oneOf: - $ref: '#/components/schemas/StringFieldFilter' integration.instance.id: oneOf: - $ref: '#/components/schemas/UuidFieldFilter' integration.instance.name: oneOf: - $ref: '#/components/schemas/StringFieldFilter' integration.instance.display_name: oneOf: - $ref: '#/components/schemas/StringFieldFilter' type: $ref: '#/components/schemas/StringFieldFilterExact' config: oneOf: - $ref: '#/components/schemas/CatalogResourceConfigFieldFilter' integration_data: oneOf: - $ref: '#/components/schemas/CatalogResourceIntegrationDataFieldFilter' archived: $ref: '#/components/schemas/BooleanFieldFilter' service_associations: $ref: '#/components/schemas/NumericFieldFilter' created_at: $ref: '#/components/schemas/DateTimeFieldFilter' updated_at: $ref: '#/components/schemas/DateTimeFieldFilter' UuidFieldFilter: description: 'Filter using **one** of the following operators: `eq`, `oeq`, `neq`' type: object properties: eq: description: The field exactly matches the provided value. type: string oeq: description: The field matches any of the provided values. type: string neq: description: The field does not match the provided value. type: string additionalProperties: false IntegrationInstanceRef: description: Short-hand descriptor of an integration instance. type: object properties: id: description: The integration instance ID. type: string format: uuid example: 772b9caf-ddbc-4f4f-8aa4-8dfbbe420351 name: description: 'The machine name of the integration instance that uniquely identifies it within the catalog. ' type: string example: aws-lambda-prod pattern: ^[0-9a-z.-]+$ display_name: description: The display name of the integration instance. type: string example: AWS (prod) required: - id - name - display_name ForbiddenError: allOf: - $ref: '#/components/schemas/BaseError' - type: object properties: status: example: 403 title: example: Forbidden type: example: https://httpstatuses.com/403 instance: example: kong:trace:1234567890 detail: example: Forbidden CatalogResourceId: description: The resource ID. type: string format: base64url example: 4UdXnoaDYYJsH_Ir maxLength: 16 minLength: 16 UnauthorizedError: allOf: - $ref: '#/components/schemas/BaseError' - type: object properties: status: example: 401 title: example: Unauthorized type: example: https://httpstatuses.com/401 instance: example: kong:trace:1234567890 detail: example: Invalid credentials CursorMetaPage: type: object properties: first: description: URI to the first page type: string format: path last: description: URI to the last page type: string format: path next: description: URI to the next page type: string format: path nullable: true previous: description: URI to the previous page type: string format: path nullable: true size: description: Requested page size type: number example: 10 required: - size - next - previous CursorMeta: description: Pagination metadata. type: object properties: page: $ref: '#/components/schemas/CursorMetaPage' required: - page StringFieldFilterExact: description: 'Filter using **one** of the following operators: `eq`, `oeq`, `neq`' type: object properties: eq: description: The field exactly matches the provided value. type: string oeq: description: The field matches any of the provided values. type: string neq: description: The field does not match the provided value. type: string additionalProperties: false IntegrationRef: description: Short-hand descriptor of an integration installed within the catalog. type: object properties: name: type: string example: gateway-manager display_name: type: string example: gateway-manager instance: $ref: '#/components/schemas/IntegrationInstanceRef' required: - name - display_name - instance CatalogResourceType: description: 'The resource type. Available resource types are compiled from the integrations installed within the catalog. ' type: string example: gateway_svc maxLength: 120 minLength: 1 StringFieldFilter: description: 'Filter using **one** of the following operators: `eq`, `oeq`, `neq`, `contains`, `ocontains`' type: object properties: eq: description: The field exactly matches the provided value. type: string contains: description: The field contains the provided value. type: string ocontains: description: The field contains any of the provided values. type: string oeq: description: The field matches any of the provided values. type: string neq: description: The field does not match the provided value. type: string additionalProperties: false CatalogResourceIntegrationDataFieldFilter: description: "Filters on the resource's `integration_data` field. Filters must use dot-notation to identify\nthe property that will be used to filter the results. For example:\n\n\n - `filter[integration_data.control_plane.id]=760562c3-fedd-43e4-b742-fc1663fef188`\n - `filter[integration_data.gateway_service.name][contains]=legacy`\n" type: object properties: eq: type: string contains: type: string ocontains: type: string oeq: type: string neq: type: string additionalProperties: false required: - contains - ocontains - oeq - neq title: CatalogResourceIntegrationDataFieldFilter CreatedAt: description: An ISO-8601 timestamp representation of entity creation date. type: string format: date-time example: '2022-11-04T20:10:06.927Z' readOnly: true x-speakeasy-param-suppress-computed-diff: true BaseError: description: standard error type: object properties: status: description: 'The HTTP status code of the error. Useful when passing the response body to child properties in a frontend UI. Must be returned as an integer. ' type: integer readOnly: true title: description: 'A short, human-readable summary of the problem. It should not change between occurences of a problem, except for localization. Should be provided as "Sentence case" for direct use in the UI. ' type: string readOnly: true type: description: The error type. type: string readOnly: true instance: description: 'Used to return the correlation ID back to the user, in the format kong:trace:. This helps us find the relevant logs when a customer reports an issue. ' type: string readOnly: true detail: description: 'A human readable explanation specific to this occurence of the problem. This field may contain request/entity data to help the user understand what went wrong. Enclose variable values in square brackets. Should be provided as "Sentence case" for direct use in the UI. ' type: string readOnly: true required: - status - title - instance - detail title: Error InvalidParameterDependentItem: type: object properties: field: type: string example: name readOnly: true rule: description: invalid parameters rules type: string enum: - dependent_fields nullable: true readOnly: true reason: type: string example: is a required field readOnly: true dependents: type: array items: {} nullable: true readOnly: true uniqueItems: true source: type: string example: body additionalProperties: false required: - field - rule - reason - dependents SortQuery: description: 'The `asc` suffix is optional as the default sort order is ascending. The `desc` suffix is used to specify a descending order. Multiple sort attributes may be provided via a comma separated list. JSONPath notation may be used to specify a sub-attribute (eg: ''foo.bar desc''). ' type: string example: created_at desc title: SortQuery InvalidRules: description: invalid parameters rules type: string enum: - required - is_array - is_base64 - is_boolean - is_date_time - is_integer - is_null - is_number - is_object - is_string - is_uuid - is_fqdn - is_arn - unknown_property - missing_reference - is_label - matches_regex - invalid - is_supported_network_availability_zone_list - is_supported_network_cidr_block - is_supported_provider_region - type nullable: true readOnly: true x-speakeasy-unknown-values: allow InvalidParameters: description: invalid parameters type: array items: oneOf: - $ref: '#/components/schemas/InvalidParameterStandard' - $ref: '#/components/schemas/InvalidParameterMinimumLength' - $ref: '#/components/schemas/InvalidParameterMaximumLength' - $ref: '#/components/schemas/InvalidParameterChoiceItem' - $ref: '#/components/schemas/InvalidParameterDependentItem' minItems: 1 nullable: false uniqueItems: true BadRequestError: allOf: - $ref: '#/components/schemas/BaseError' - type: object required: - invalid_parameters properties: invalid_parameters: $ref: '#/components/schemas/InvalidParameters' NumericFieldFilter: description: Filter by a numeric value. oneOf: - type: number description: Value strictly equals the given numeric value. example: 21 - type: object title: NumericFieldEqualsFilter additionalProperties: false properties: eq: description: Value strictly equals the given numeric value. type: number example: 3.14 required: - eq - type: object title: NumericFieldLTFilter additionalProperties: false properties: lt: description: Value is less than the given numeric value. type: number example: 10 required: - lt - type: object title: NumericFieldLTEFilter additionalProperties: false properties: lte: description: Value is less than or equal to the given numeric value. type: number example: 10 required: - lte - type: object title: NumericFieldGTFilter additionalProperties: false properties: gt: description: Value is greater than the given numeric value. type: number example: 1.85 required: - gt - type: object title: NumericFieldGTEFilter additionalProperties: false properties: gte: description: Value is greater than or equal to the given numeric value. type: number example: 1.85 required: - gte InvalidParameterStandard: type: object properties: field: type: string example: name readOnly: true rule: $ref: '#/components/schemas/InvalidRules' source: type: string example: body reason: type: string example: is a required field readOnly: true additionalProperties: false required: - field - reason CursorPageParameters: type: object properties: size: description: The number of items included per page. type: integer example: 10 after: description: Cursor param specifying the page (i.e. the next page) of data returned. type: string example: ewogICJpZCI6ICJoZWxsbyB3b3JsZCIKfQ before: description: Cursor param specifying the page (i.e. the previous page) of data returned. type: string example: ewogICJpZCI6ICJoZWxsbyB3b3JsZCIKfQ DateTimeFieldFilter: description: Filters on the given datetime (RFC-3339) field value. oneOf: - type: object title: DateTimeFieldEqualsFilter additionalProperties: false properties: eq: description: Value strictly equals given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - eq - type: object title: DateTimeFieldLTFilter additionalProperties: false properties: lt: description: Value is less than the given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - lt - type: object title: DateTimeFieldLTEFilter additionalProperties: false properties: lte: description: Value is less than or equal to the given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - lte - type: object title: DateTimeFieldGTFilter additionalProperties: false properties: gt: description: Value is greater than the given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - gt - type: object title: DateTimeFieldGTEFilter additionalProperties: false properties: gte: description: Value is greater than or equal to the given RFC-3339 formatted timestamp in UTC type: string format: date-time example: '2022-03-30T07:20:50Z' required: - gte title: DateTimeFieldFilter UpdateCatalogResource: type: object properties: archived: description: 'Whether or not to archive the resource. When a resource is archived, all catalog service mappings will be removed. ' type: boolean example: false additionalProperties: false CatalogResourceConfig: description: 'JSON object representing the properties used to identify the resource in the third-party system. The schema depends on the resource type and is dynamically registered at runtime. ' type: object example: control_plane_id: ccadfb0a-56cd-4f74-955d-aec1d87157c8 gateway_service_id: 94896d05-0c4d-45eb-aae3-de754885dd58 additionalProperties: true x-speakeasy-type-override: any NotFoundError: allOf: - $ref: '#/components/schemas/BaseError' - type: object properties: status: example: 404 title: example: Not Found type: example: https://httpstatuses.com/404 instance: example: kong:trace:1234567890 detail: example: Not found BooleanFieldFilter: description: Filter by a boolean value (true/false). type: boolean title: BooleanFieldFilter CatalogResource: description: Information about a catalog resource. type: object properties: id: $ref: '#/components/schemas/CatalogResourceId' name: description: 'The name of the resource. Will be `null` when the resource has not yet been hydrated by the integration. ' type: string maxLength: 255 minLength: 1 nullable: true integration: $ref: '#/components/schemas/IntegrationRef' type: $ref: '#/components/schemas/CatalogResourceType' config: $ref: '#/components/schemas/CatalogResourceConfig' integration_data: description: 'JSON object containing schemaless integration data of the resource. This field is always populated by the system backing the integration. When `null`, the resource has been manually initialized via API but has yet to be hydrated by the integration. ' type: object additionalProperties: true nullable: true archived: description: Whether or not the resource has been archived. type: boolean example: false service_associations: description: The number of catalog services this resource is mapped to. type: number example: 2 minimum: 0 readOnly: true created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' required: - id - name - integration - type - config - integration_data - archived - service_associations - created_at - updated_at parameters: CatalogResourceFilter: name: filter description: Filters a collection of resources. required: false in: query style: deepObject schema: $ref: '#/components/schemas/CatalogResourceFilterParameters' CursorPageQuery: name: page description: Determines which page of the collection to retrieve. required: false in: query schema: $ref: '#/components/schemas/CursorPageParameters' CatalogResourceSort: name: sort description: "Sorts a collection of resources. Supported sort attributes are:\n - `created_at`\n - `updated_at`\n\nDefault sort is `created_at` in descending order.\n" required: false in: query schema: $ref: '#/components/schemas/SortQuery' responses: BadRequest: description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' NotFound: description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/NotFoundError' Unauthorized: description: Unauthorized content: application/problem+json: schema: description: The error response object. type: object properties: status: description: The HTTP status code. type: integer example: 403 title: description: The Error Response. type: string example: Unauthorized instance: description: The Konnect traceback code. type: string example: konnect:trace:952172606039454040 detail: description: Details about the error response. type: string example: You do not have permission to perform this action $ref: '#/components/schemas/UnauthorizedError' title: Unauthorized Response ListCatalogResourcesResponse: description: A paginated list response for a collection of resources. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/CursorMeta' data: type: array items: $ref: '#/components/schemas/CatalogResource' additionalProperties: false required: - meta - data CatalogResourceResponse: description: A response containing a single resource object. content: application/json: schema: $ref: '#/components/schemas/CatalogResource' Forbidden: description: Forbidden content: application/problem+json: schema: $ref: '#/components/schemas/ForbiddenError' requestBodies: UpdateCatalogResourceRequest: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateCatalogResource' securitySchemes: adminToken: in: header name: Kong-Admin-Token type: apiKey externalDocs: description: Documentation for Kong Gateway and its APIs url: https://developer.konghq.com