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 API Package Operations 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: API Package Operations paths: /v3/api-packages/{packageId}/operations: parameters: - name: packageId in: path description: The UUID API Package identifier required: true schema: type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 x-speakeasy-match: id get: operationId: list-api-packages-operations summary: List API Packages Operations description: List API packages operations parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/ApiPackageOperationsFilters' - $ref: '#/components/parameters/ApiPackageOperationsSort' responses: '200': $ref: '#/components/responses/ListApiPackagesOperationsResponse' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Package Operations patch: operationId: update-api-package-operations summary: Update API Package Operation description: Update API Package Operations requestBody: $ref: '#/components/requestBodies/UpdateApiPackageOperationRequest' responses: '204': description: API operations were successfully added or removed to the package. '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' '409': $ref: '#/components/responses/ApiSlugConflict' tags: - API Package Operations /v3/api-packages/{packageId}/operations/{operationId}: parameters: - name: packageId in: path description: The UUID API Package identifier required: true schema: type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 x-speakeasy-match: id - name: operationId in: path description: The UUID API Operation identifier required: true schema: type: string format: uuid example: 9f5061ce-78f6-4452-9108-ad7c02821fd5 x-speakeasy-match: id get: operationId: get-api-packages-operation summary: Get API Packages Operation description: Get API packages operation responses: '200': $ref: '#/components/responses/ApiPackageOperationResponse' '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Package Operations delete: operationId: remove-api-package-operation summary: Remove API Package Operation description: Remove an operation from an API package. responses: '204': description: API operation was removed successfully from the package. '401': $ref: '#/components/responses/ApiUnauthorized' '403': $ref: '#/components/responses/ApiForbidden' '404': $ref: '#/components/responses/ApiNotFound' tags: - API Package Operations 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 RateLimitingConfig: description: Rate limit configuration that can be applied to an API Package or an API Package Operation. type: object properties: limit: description: The amount of requests allowed for each operation within the specified duration. type: integer minimum: 0 duration: description: The timeframe to ensure that an application does not exceed the request limit. type: string enum: - seconds - minutes - hours x-speakeasy-unknown-values: allow additionalProperties: false nullable: true required: - limit - duration title: Rate Limiting configuration 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 APIPackageJSONPatchOperation: description: A JSON Patch operation to add or remove API Operations from a Package. type: array items: $ref: '#/components/schemas/APIPackageJSONPatchItem' minItems: 1 title: JSON Patch Operation 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 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 Method: description: The HTTP method of an API Operation. type: string enum: - GET - POST - PUT - DELETE - PATCH - OPTIONS - HEAD - CONNECT - TRACE readOnly: true x-speakeasy-unknown-values: allow ApiPackageOperationsFilterParameters: type: object properties: api_id: $ref: '#/components/schemas/UuidFieldFilter' method: $ref: '#/components/schemas/StringFieldFilter' path: $ref: '#/components/schemas/StringFieldFilter' created_at: $ref: '#/components/schemas/DateTimeFieldFilter' updated_at: $ref: '#/components/schemas/DateTimeFieldFilter' title: API Package Operations Filter Parameters PaginatedMeta: description: returns the pagination information type: object properties: page: $ref: '#/components/schemas/PageMeta' required: - page title: PaginatedMeta x-speakeasy-terraform-ignore: true 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 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 ApiOperationImplementationStatus: description: The implementation status of the operation. type: object properties: matched: description: Whether the operation is matched by a Kong route in the control plane type: boolean readOnly: true route: type: object additionalProperties: false nullable: true properties: id: description: The route identifier type: string format: uuid name: description: The name of the route type: string readOnly: true required: - id - name service: type: object additionalProperties: false nullable: true properties: id: description: The service identifier type: string format: uuid name: description: The name of the service type: string readOnly: true required: - id - name additionalProperties: false required: - matched - route - service title: API Operation Implementation Status 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' 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 APIPackageJSONPatchItem: description: A JSON Patch operation to add or remove an API Operation from a Package. type: object properties: op: description: The operation to perform. type: string enum: - add - remove - replace x-speakeasy-unknown-values: allow path: description: The path to the API Operation in the Package, in the format "operations/". type: string pattern: ^operations/[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}$ value: type: object additionalProperties: false properties: rate_limiting_config: $ref: '#/components/schemas/RateLimitingConfig' required: - rate_limiting_config additionalProperties: false required: - op - path 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 PageMeta: description: Contains pagination query parameters and the total number of objects returned. type: object properties: number: type: number example: 1 x-speakeasy-terraform-ignore: true size: type: number example: 10 x-speakeasy-terraform-ignore: true total: type: number example: 100 x-speakeasy-terraform-ignore: true required: - number - size - total 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 ApiPackageOperationResponseSchema: type: object properties: id: description: The API Operation identifier. type: string format: uuid example: 0f5061ce-78f6-4452-9108-ad7c02821fd6 readOnly: true api: type: object additionalProperties: false properties: id: description: The API identifier. type: string format: uuid example: 0f5061ce-78f6-4452-9108-ad7c02821fd6 readOnly: true name: description: The name of the API this operation belongs to. type: string example: MyAPI readOnly: true version: description: The version of the API this operation belongs to. type: string example: 1.0.0 readOnly: true readOnly: true required: - id - name - version method: $ref: '#/components/schemas/Method' path: description: The path of the API Operation. type: string example: /users/{user_id} readOnly: true rate_limiting_config: description: Rate limit configuration that can be applied to an API Package or an API Package Operation. type: object additionalProperties: false nullable: true properties: limit: description: The amount of requests allowed for each operation within the specified duration. type: integer minimum: 0 duration: description: The timeframe to ensure that an application does not exceed the request limit. type: string enum: - seconds - minutes - hours x-speakeasy-unknown-values: allow readOnly: true required: - limit - duration title: Rate Limiting configuration created_at: $ref: '#/components/schemas/CreatedAt' updated_at: $ref: '#/components/schemas/UpdatedAt' implementation_status: $ref: '#/components/schemas/ApiOperationImplementationStatus' additionalProperties: false required: - id - api - method - path - created_at - updated_at - rate_limiting_config title: API Package Operation Response responses: ApiUnauthorized: description: ApiUnauthorized content: application/problem+json: schema: $ref: '#/components/schemas/UnauthorizedError' ApiNotFound: description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/NotFoundError' ApiForbidden: description: ApiForbidden content: application/problem+json: schema: $ref: '#/components/schemas/ForbiddenError' ApiSlugConflict: description: Conflict - `slug` property must be unique content: application/problem+json: schema: type: object properties: status: type: number title: type: string type: type: string instance: type: string required: - status - title - instance ListApiPackagesOperationsResponse: description: List of API Package Operations content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/ApiPackageOperationResponseSchema' additionalProperties: false required: - data - meta title: ListApiPackageOperationsResponse ApiPackageOperationResponse: description: API Package Operation content: application/json: schema: $ref: '#/components/schemas/ApiPackageOperationResponseSchema' requestBodies: UpdateApiPackageOperationRequest: required: true content: application/json: schema: $ref: '#/components/schemas/APIPackageJSONPatchOperation' parameters: ApiPackageOperationsSort: name: sort description: "Sorts a collection of API Packages Operations. Supported sort attributes are:\n\n\n - path\n - method\n - api_id\n - created_at\n - updated_at\n" required: false in: query schema: $ref: '#/components/schemas/SortQuery' PageSize: name: page[size] description: The maximum number of items to include per page. The last page of a collection may include fewer items. required: false in: query allowEmptyValue: true schema: type: integer example: 10 x-speakeasy-terraform-ignore: true ApiPackageOperationsFilters: name: filter description: Filters API Packages operations in the response. required: false in: query schema: $ref: '#/components/schemas/ApiPackageOperationsFilterParameters' style: deepObject PageNumber: name: page[number] description: Determines which page of the entities to retrieve. required: false in: query allowEmptyValue: true schema: type: integer example: 1 x-speakeasy-terraform-ignore: true securitySchemes: adminToken: in: header name: Kong-Admin-Token type: apiKey externalDocs: description: Documentation for Kong Gateway and its APIs url: https://developer.konghq.com