Kubernetes Gateway Conf Catalog
This document serves as a comprehensive guide, detailing all the parameters relevant to the apk-conf file within WSO2 APK
| Field Name | Type | Description |
|---|---|---|
| id | string | UUID of the API (readOnly: true) |
| name | string | (1-60 characters, no special characters) |
| basePath | string | Base Path of the API (1-256 characters) |
| version | string | Version of the API (1-30 characters, no special characters) |
| type | string | Type of the API (REST, GraphQL, GRPC) |
| definitionPath | string | Endpoint to expose API definition file. |
| defaultVersion | boolean | Is this the default version of the API? |
| subscriptionValidation | boolean | Is subscription validation enabled for the API? |
| environment | string | Environment of the API. |
| endpointConfigurations | EndpointConfigurations | Configurations for the API endpoints. |
| aiProvider | AIProvider | AI Provider for the API. |
| operations | array | Operations supported by the API |
| apiPolicies | APIOperationPolicies | Policies applied to the API level. |
| rateLimit | RateLimit | Configuration for rate limiting of API calls. |
| authentication | array | Authentication types for the API |
| additionalProperties | array | Map of custom properties of the API. |
| corsConfiguration | CORSConfiguration | Configuration for CORS (Cross-Origin Resource Sharing). |
schemas:
| Schema | Type | Description |
|---|---|---|
| Authentication | object | Authentication settings for the API |
| CORSConfiguration | object | CORS configuration for the API |
| APIOperationPolicies | object | Policies applied to API-level operations |
| APKOperationPolicy | object | API Operation Policy |
| RateLimit | object | API Rate Limit Details |
| AIProvider | object | Configuration for AI provider integrations |
| EndpointConfigurations | object | Configuration of API endpoints |
| Certificate | object | SSL/TLS certificate details |
| BasicEndpointSecurity | object | Basic authentication settings for endpoints |
| APIKeyEndpointSecurity | object | API key settings for endpoint security |
| Resiliency | object | Resiliency configuration for API |
| Timeout | object | Timeout settings for API calls |
| RetryPolicy | object | Retry policy for failed API calls |
| APKOperations | object | List of operations provided by the API |
| K8sService | object | Kubernetes service configuration |
| InterceptorPolicy | object | Policy for request/response interception |
| BackendJWTPolicy | object | Configuration for backend JWT generation |
| HeaderModifierPolicy | object | Policy for modifying request headers |
| RequestMirror | object | Configuration for mirroring requests |
| RequestRedirect | object | Configuration for redirecting requests |
| Object | Property | Type | Description |
|---|---|---|---|
| Resiliency | timeout | Timeout | Defines timeout-related configurations. |
| retryPolicy | RetryPolicy | Defines retry-related configurations. | |
| circuitBreaker | CircuitBreaker | Defines circuit breaker-related configurations. | |
| CircuitBreaker | maxConnectionPools | integer | The maximum number of connection pools. |
| maxConnections | integer | The maximum number of connections. | |
| maxPendingRequests | integer | The maximum number of pending requests. | |
| maxRequests | integer | The maximum number of requests. | |
| maxRetries | integer | The maximum number of retries. | |
| Timeout | downstreamRequestIdleTimeout | integer | The idle timeout for downstream requests in milliseconds. |
| upstreamResponseTimeout | integer | The response timeout for upstream requests in milliseconds. | |
| RetryPolicy | count | integer | The number of retry attempts. |
| baseIntervalMillis | integer | The base interval between retry attempts in milliseconds. | |
| statusCodes | array of integers | An array of HTTP status codes to trigger retries. | |
| APKOperations | target | string | The target of the operation, e.g., "/order/ |
| verb | string | The HTTP verb of the operation, e.g., "POST". | |
| secured | boolean | Authentication mode for the resource (true/false). | |
| endpointConfigurations | EndpointConfigurations | Configurations for the production and sandbox endpoints. | |
| operationPolicies | array of APIOperationPolicies | Configurations for the operation policies. | |
| rateLimit | RateLimit | Configurations for rate limiting. | |
| scopes | array of strings | An array of scope strings. | |
| RateLimit | requestsPerUnit | integer | The number of requests allowed per specified unit of time. |
| unit | string | The unit of time for rate limiting. Values: "Hour", "Minute", "Day". | |
| InterceptorProperties | backendUrl | string | The URL of the backend service. |
| headersEnabled | boolean | Specifies whether headers are enabled. | |
| bodyEnabled | boolean | Specifies whether the request body is enabled. | |
| trailersEnabled | boolean | Specifies whether trailers are enabled. | |
| contextEnabled | boolean | Specifies whether context is enabled. | |
| tlsSecretName | string | The name of the secret containing TLS configuration. | |
| tlsSecretKey | string | The key within the secret that holds TLS configuration. | |
| BackendJWTProperties | encoding | string | The encoding type. |
| signingAlgorithm | string | The signing algorithm. | |
| header | string | The header. | |
| tokenTTL | integer | The token time-to-live (TTL) in milliseconds. | |
| customClaims | array of CustomClaims | An array of custom claims. | |
| CustomClaims | claim | string | The claim name. |
| value | string | The claim value. | |
| type | string | The claim type. | |
| RequestMirror | target | string | Specifies the target to which requests should be mirrored. |
| RequestRedirect | scheme | string | Defines the scheme for the redirection (e.g., "https"). |
| hostname | string | The hostname for the redirect. | |
| port | integer | The port for the redirect. | |
| path | string | The path for the redirect. | |
| statusCode | integer | The HTTP status code for the redirect. | |
| HeaderModifier | addHeaders | map of string | Headers to add to the request. |
| removeHeaders | array of strings | Headers to remove from the request. | |
| setHeaders | map of string | Headers to set or replace in the request. | |
| AIProvider | name | string | Name of the AI provider. |
| apiVersion | string | The version of the AI provider. | |
| Authentication | array | An array containing configurations for the authentication types. | |
| OAuth2Authentication | required | enum | Describes whether OAuth2 is "mandatory" or "optional". |
| enabled | boolean | Whether this type of authentication is enabled for this API or not. | |
| authType | string | Type of authentication. For OAuth2, the value is "OAuth2" | |
| sendTokenToUpstream | boolean | Whether to pass the token to the upstream or not. | |
| headerEnable | boolean | Whether sending OAuth2 token in the header is enabled. | |
| headerName | boolean | Name of the OAuth2 header. | |
| APIKeyAuthentication | required | enum | Describes whether APIKey authentication is "mandatory" or "optional". |
| enabled | boolean | Whether this type of authentication is enabled for this API or not. | |
| authType | string | Type of authentication. For APIKey, the value is "APIKey" | |
| sendTokenToUpstream | boolean | Whether to pass the token to the upstream or not. | |
| headerEnable | boolean | Whether sending APIKey token in the header is enabled. | |
| headerName | boolean | Name of the APIKey header. | |
| queryParamEnable | boolean | Whether sending API key as a query param is enabled. | |
| queryParamName | boolean | Name of the API key query param. | |
| MTLSAuthentication | required | enum | Describes whether mTLS authentication is "mandatory" or "optional". |
| authType | string | Type of authentication. For mTLS, the value is "mTLS" | |
| enabled | boolean | Whether this type of authentication is enabled for this API or not. | |
| certificates | array of MTLSCertificates | The names and keys of the config maps containing the mTLS certificates for the API | |
| MTLSCertificates | name | string | Name of the configmap containing the mTLS certificate. |
| key | string | The key of the mTLS certificate containing the configmap. | |
| JWTAuthentication | required | enum | Describes whether OAuth2 is "mandatory" or "optional". |
| authType | string | Type of authentication. For JWT, the value is "JWT" | |
| sendTokenToUpstream | boolean | Whether to pass the token to the upstream or not. | |
| enabled | boolean | Whether this type of authentication is enabled for this API or not. | |
| headerEnable | boolean | Whether sending JWT token in the header is enabled. | |
| headerName | boolean | Name of the JWT header. | |
| queryParamEnable | boolean | Whether sending JWT token as a query param is enabled. | |
| queryParamName | boolean | Name of the JWT query param. | |
| audience | array of string | The list of audiences to be validated in the JWT. | |
| EndpointConfigurations | production | EndpointConfiguration | Configuration of the production endpoint. |
| sandbox | EndpointConfiguration | Configuration of the sandbox endpoint. | |
| EndpointConfiguration | endpoint | string/K8sService | Configuration of the endpoint. |
| endpointSecurity | BasicEndpointSecurity/APIKeyEndpointSecurity | Security configuration for the API endpoint. | |
| certificate | Certificate | Certificate information for secure communication. | |
| resiliency | Resiliency | Resiliency configuration for the API endpoint. | |
| aiRatelimit | AIRateLimit | AI ratelimit configuration for the API endpoint. | |
| K8sService | name | string | The name of the Kubernetes service, e.g., "pizzashack-service". |
| namespace | string | The Kubernetes namespace where the service is deployed, e.g., "apk-platform". | |
| port | integer | The port number on which the service is exposed, e.g., 8080. | |
| protocol | string | The protocol used by the service, e.g., "http". | |
| BasicEndpointSecurity | secretName | string | The name of the secret containing the credentials for basic authentication. |
| userNameKey | string | The key within the secret that holds the username for basic authentication. | |
| passwordKey | string | The key within the secret that holds the password for basic authentication. | |
| APIKeyEndpointSecurity | secretName | string | The name of the secret containing the certificate. |
| in | enum | The location of the API key in the request. | |
| apiKeyNameKey | string | The name of key in the request. | |
| apiKeyValueKey | string | The value of key in the request. | |
| Certificate | secretName | string | The name of the secret containing the certificate. |
| secretKey | enum | The key within the secret that holds the certificate. | |
| AIRateLimit | enabled | boolean | States whether the AI ratelimit is turned on or not |
| token | TokenAIRL | Token limits configuration for AI rate limiting | |
| request | RequestAIRL | Request limits configuration for AI rate limiting | |
| TokenAIRL | promptLimit | integer | States whether the AI ratelimit is turned on or not |
| completionLimit | integer | Limit for completions within the specified unit | |
| totalLimit | integer | Total limit combining prompt and completion counts | |
| unit | enum | The time unit for the rate limits. Values: "Minute", "Hour" and "Day" | |
| RequestAIRL | requestLimit | integer | Limit for requests within the specified unit |
| unit | enum | The time unit for the rate limits. Values: "Minute", "Hour" and "Day" |
Notes:
- The table above represents the JSON schema fields and their descriptions.
- Additional details about each field and schema can be found in the JSON schema itself.
- The APK Config Language Support Visual Studio Code (VS Code) extension can be used to validate the apk-conf file.