components: parameters: ACLId: description: ID of the ACL to lookup example: f28acbfa-c866-4587-b688-0208ac24df21 in: path name: ACLId required: true schema: type: string x-speakeasy-match: id BasicAuthId: description: ID of the Basic-auth credential to lookup example: 80db1b58-ca7c-4d21-b92a-64eb07725872 in: path name: BasicAuthId required: true schema: type: string x-speakeasy-match: id CACertificateId: description: ID of the CA Certificate to lookup example: 3c31f18a-f27a-4f9b-8cd4-bf841554612f in: path name: CACertificateId required: true schema: type: string x-speakeasy-match: id CertificateId: description: ID of the Certificate to lookup example: ddf3cdaa-3329-4961-822a-ce6dbd38eff7 in: path name: CertificateId required: true schema: type: string x-speakeasy-match: id ConsumerGroupId: description: ID of the Consumer Group to lookup example: '' in: path name: ConsumerGroupId required: true schema: type: string x-speakeasy-match: id ConsumerGroupIdManageConsumers: description: The UUID or name of the consumer group in: path name: ConsumerGroupId required: true schema: example: cf4c7e60-11db-49dd-b300-7c7e5f0f7e6b type: string x-speakeasy-name-override: consumer_group_id ConsumerIdForNestedEntities: description: Consumer ID for nested entities example: f28acbfa-c866-4587-b688-0208ac24df21 in: path name: ConsumerIdForNestedEntities required: true schema: type: string x-speakeasy-name-override: consumer_id ConsumerIdOrUsername: description: ID or username of the Consumer to lookup example: c1059869-6fa7-4329-a5f5-5946d14ca2c5 in: path name: ConsumerIdOrUsername required: true schema: type: string x-speakeasy-match: id HMACAuthId: description: ID of the HMAC-auth credential to lookup example: 70e7b00b-72f2-471b-a5ce-9c4171775360 in: path name: HMACAuthId required: true schema: type: string x-speakeasy-match: id JWTId: description: ID of the JWT to lookup example: 4a7f5faa-8c96-46d6-8214-c87573ef2ac4 in: path name: JWTId required: true schema: type: string x-speakeasy-match: id KeyAuthId: description: ID of the API-key to lookup example: '' in: path name: KeyAuthId required: true schema: type: string x-speakeasy-match: id KeyIdOrName: description: ID or name of the Key to lookup example: bba22c06-a632-42be-a018-1b9ff357b5b9 in: path name: KeyIdOrName required: true schema: type: string x-speakeasy-match: id KeySetIdOrName: description: ID or name of the KeySet to lookup example: 6cc34248-50b4-4a81-9201-3bdf7a83f712 in: path name: KeySetIdOrName required: true schema: type: string x-speakeasy-match: id MTLSAuthId: description: ID of the MTLS-auth credential to lookup example: '' in: path name: MTLSAuthId required: true schema: type: string x-speakeasy-match: id PaginationOffset: allowEmptyValue: true description: >- Offset from which to return the next set of resources. Use the value of the 'offset' field from the response of a list operation as input here to paginate through all the resources in: query name: offset schema: type: string PaginationSize: description: Number of resources to be returned. in: query name: size schema: default: 100 maximum: 1000 minimum: 1 type: integer PaginationTagsFilter: allowEmptyValue: true description: >- A list of tags to filter the list of resources on. Multiple tags can be concatenated using ',' to mean AND or using '/' to mean OR. example: tag1,tag2 in: query name: tags schema: type: string PartialId: description: ID of the Partial to lookup example: '' in: path name: PartialId required: true schema: type: string x-speakeasy-match: id PluginId: description: ID of the Plugin to lookup example: 3473c251-5b6c-4f45-b1ff-7ede735a366d in: path name: PluginId required: true schema: type: string x-speakeasy-match: id RouteIdOrName: description: ID or name of the Route to lookup example: a4326a41-aa12-44e3-93e4-6b6e58bfb9d7 in: path name: RouteIdOrName required: true schema: type: string x-speakeasy-match: id SNIIdOrName: description: ID or name of the SNI to lookup example: 64c17a1a-b7d7-4a65-a5a4-42e4a7016e7f in: path name: SNIIdOrName required: true schema: type: string x-speakeasy-match: id ServiceIdOrName: description: ID or name of the Service to lookup example: 7fca84d6-7d37-4a74-a7b0-93e576089a41 in: path name: ServiceIdOrName required: true schema: type: string x-speakeasy-match: id UpstreamIdForTarget: description: ID or target of the Target to lookup example: 5a078780-5d4c-4aae-984a-bdc6f52113d8 in: path name: UpstreamIdForTarget required: true schema: type: string x-speakeasy-name-override: upstream_id UpstreamIdOrName: description: ID or name of the Upstream to lookup example: 426d620c-7058-4ae6-aacc-f85a3204a2c5 in: path name: UpstreamIdOrName required: true schema: type: string x-speakeasy-match: id VaultIdOrPrefix: description: ID or prefix of the Vault to lookup example: 9d4d6d19-77c6-428e-a965-9bc9647633e9 in: path name: VaultIdOrPrefix required: true schema: type: string x-speakeasy-match: id Workspace: description: The name or UUID of the workspace in: path name: workspace required: true schema: default: default example: 747d1e5-8246-4f65-a939-b392f1ee17f8 type: string WorkspaceIdOrName: description: ID or name of the Workspace to lookup example: '' in: path name: WorkspaceIdOrName required: true schema: type: string x-speakeasy-match: id responses: GetPartialSchemaResponse: content: application/json: schema: properties: fields: items: additionalProperties: true type: object type: array type: object description: The schema for a partial GetPluginSchemaResponse: content: application/json: schema: properties: fields: items: additionalProperties: true type: object type: array type: object description: The schema for the plugin HTTP401Error: content: application/json: examples: DuplicateApiKey: summary: Duplicate API key found value: message: Duplicate API key found status: 401 InvalidAuthCred: summary: Invalid authentication credentials value: message: Unauthorized status: 401 NoAPIKey: summary: No API key found value: message: No API key found in request status: 401 schema: $ref: '#/components/schemas/GatewayUnauthorizedError' description: Unauthorized ValidateEntityResponse: content: application/json: schema: properties: message: type: string type: object description: Validation result of the request against a schema schemas: ACL: additionalProperties: false example: consumer: id: 84a73fb8-50fc-44a7-a4d5-aa17728ee83f group: foo id: b1f34145-0343-41a4-9602-4c69dec2f269 properties: consumer: nullable: true properties: id: type: string type: object x-foreign: true x-speakeasy-terraform-ignore: true created_at: description: Unix epoch when the resource was created. nullable: true type: integer group: type: string id: description: A string representing a UUID (universally unique identifier). nullable: true type: string tags: description: A set of strings representing tags. items: description: A string representing a tag. type: string nullable: true type: array required: - group type: object x-speakeasy-entity: ACL ACLPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/ACLPluginConfig' properties: name: const: acl x-speakeasy-entity: PluginACL ACLPluginConfig: properties: config: properties: allow: description: >- Arbitrary group names that are allowed to consume the service or route. One of `config.allow` or `config.deny` must be specified. items: type: string type: array always_use_authenticated_groups: default: false description: >- If enabled (`true`), the authenticated groups will always be used even when an authenticated consumer already exists. If the authenticated groups don't exist, it will fallback to use the groups associated with the consumer. By default the authenticated groups will only be used when there is no consumer or the consumer is anonymous. type: boolean deny: description: >- Arbitrary group names that are not allowed to consume the service or route. One of `config.allow` or `config.deny` must be specified. items: type: string type: array hide_groups_header: default: false description: >- If enabled (`true`), prevents the `X-Consumer-Groups` header from being sent in the request to the upstream service. type: boolean include_consumer_groups: default: false description: >- If enabled (`true`), allows the consumer-groups to be used in the `allow|deny` fields type: boolean type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object ACLWithoutParents: additionalProperties: false example: group: foo id: b1f34145-0343-41a4-9602-4c69dec2f269 properties: consumer: nullable: true properties: id: type: string type: object x-foreign: true x-speakeasy-terraform-ignore: true created_at: description: Unix epoch when the resource was created. nullable: true type: integer group: type: string id: description: A string representing a UUID (universally unique identifier). nullable: true type: string tags: description: A set of strings representing tags. items: description: A string representing a tag. type: string nullable: true type: array required: - group type: object x-speakeasy-entity: ACL AcePlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AcePluginConfig' properties: name: const: ace x-speakeasy-entity: PluginAce AcePluginConfig: properties: config: properties: anonymous: type: string match_policy: default: if_present enum: - if_present - required type: string rate_limiting: properties: redis: properties: cluster_max_redirections: default: 5 description: Maximum retry attempts for redirection. type: integer cluster_nodes: description: >- Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element. items: properties: ip: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array connect_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer connection_is_proxied: default: false description: >- If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address. type: boolean database: default: 0 description: >- Database to use for the Redis connection when using the `redis` strategy type: integer host: default: 127.0.0.1 description: A string representing a host name, such as example.com. type: string keepalive_backlog: description: >- Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`. maximum: 2147483646 minimum: 0 type: integer keepalive_pool_size: default: 256 description: >- The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn't specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low. maximum: 2147483646 minimum: 1 type: integer password: description: >- Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer read_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer send_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer sentinel_master: description: >- Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel. type: string sentinel_nodes: description: >- Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element. items: properties: host: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array sentinel_password: description: >- Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels. type: string sentinel_role: description: >- Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel. enum: - any - master - slave type: string sentinel_username: description: >- Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won't be performed. This requires Redis v6.2.0+. type: string server_name: description: >- A string representing an SNI (server name indication) value for TLS. type: string ssl: default: false description: If set to true, uses SSL to connect to Redis. type: boolean ssl_verify: default: false description: >- If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly. type: boolean username: description: >- Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`. type: string type: object sync_rate: maximum: 3600 minimum: 0 type: number type: object type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object AcmePlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AcmePluginConfig' properties: name: const: acme x-speakeasy-entity: PluginAcme AcmePluginConfig: properties: config: properties: account_email: description: >- The account identifier. Can be reused in a different plugin instance. type: string account_key: description: The private key associated with the account. properties: key_id: description: The Key ID. type: string key_set: description: The ID of the key set to associate the Key ID with. type: string required: - key_id type: object allow_any_domain: default: false description: >- If set to `true`, the plugin allows all domains and ignores any values in the `domains` list. type: boolean api_uri: default: https://acme-v02.api.letsencrypt.org/directory description: >- A string representing a URL, such as https://example.com/path/to/resource?q=search. type: string cert_type: default: rsa description: >- The certificate type to create. The possible values are `rsa` for RSA certificate or `ecc` for EC certificate. enum: - ecc - rsa type: string domains: description: >- An array of strings representing hosts. A valid host is a string containing one or more labels separated by periods, with at most one wildcard label ('*') items: type: string type: array eab_hmac_key: description: >- External account binding (EAB) base64-encoded URL string of the HMAC key. You usually don't need to set this unless it is explicitly required by the CA. type: string eab_kid: description: >- External account binding (EAB) key id. You usually don't need to set this unless it is explicitly required by the CA. type: string enable_ipv4_common_name: default: true description: >- A boolean value that controls whether to include the IPv4 address in the common name field of generated certificates. type: boolean fail_backoff_minutes: default: 5 description: >- Minutes to wait for each domain that fails to create a certificate. This applies to both a new certificate and a renewal certificate. type: number preferred_chain: description: >- A string value that specifies the preferred certificate chain to use when generating certificates. type: string renew_threshold_days: default: 14 description: Days remaining to renew the certificate before it expires. type: number rsa_key_size: default: 4096 description: >- RSA private key size for the certificate. The possible values are 2048, 3072, or 4096. enum: - 2048 - 3072 - 4096 type: integer storage: default: shm description: >- The backend storage type to use. In DB-less mode and Konnect, `kong` storage is unavailable. In hybrid mode and Konnect, `shm` storage is unavailable. `shm` storage does not persist during Kong restarts and does not work for Kong running on different machines, so consider using one of `kong`, `redis`, `consul`, or `vault` in production. enum: - consul - kong - redis - shm - vault type: string storage_config: properties: consul: properties: host: description: A string representing a host name, such as example.com. type: string https: default: false description: Boolean representation of https. type: boolean kv_path: description: KV prefix path. type: string port: description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer timeout: description: Timeout in milliseconds. type: number token: description: Consul ACL token. type: string type: object kong: additionalProperties: true type: object redis: properties: database: default: 0 description: >- Database to use for the Redis connection when using the `redis` strategy type: integer extra_options: description: Custom ACME Redis options properties: namespace: default: '' description: A namespace to prepend to all keys stored in Redis. type: string scan_count: default: 10 description: The number of keys to return in Redis SCAN calls. type: number type: object host: description: A string representing a host name, such as example.com. type: string password: description: >- Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer server_name: description: >- A string representing an SNI (server name indication) value for TLS. type: string ssl: default: false description: If set to true, uses SSL to connect to Redis. type: boolean ssl_verify: default: false description: >- If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly. type: boolean timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer username: description: >- Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`. type: string type: object shm: properties: shm_name: default: kong description: >- Name of shared memory zone used for Kong API gateway storage type: string type: object vault: properties: auth_method: default: token description: >- Auth Method, default to token, can be 'token' or 'kubernetes'. enum: - kubernetes - token type: string auth_path: description: Vault's authentication path to use. type: string auth_role: description: The role to try and assign. type: string host: description: A string representing a host name, such as example.com. type: string https: default: false description: Boolean representation of https. type: boolean jwt_path: description: The path to the JWT. type: string kv_path: description: KV prefix path. type: string port: description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer timeout: description: Timeout in milliseconds. type: number tls_server_name: description: SNI used in request, default to host if omitted. type: string tls_verify: default: true description: Turn on TLS verification. type: boolean token: description: Consul ACL token. type: string type: object type: object tos_accepted: default: false description: >- If you are using Let's Encrypt, you must set this to `true` to agree the terms of service. type: boolean required: - account_email type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array required: - config AiAwsGuardrailsPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiAwsGuardrailsPluginConfig' properties: name: const: ai-aws-guardrails x-speakeasy-entity: PluginAiAwsGuardrails AiAwsGuardrailsPluginConfig: properties: config: properties: aws_access_key_id: description: The AWS access key ID to use for authentication type: string aws_assume_role_arn: description: >- The target AWS IAM role ARN used to access the guardrails service type: string aws_region: description: The AWS region to use for the Bedrock API type: string aws_role_session_name: description: The identifier of the assumed role session type: string aws_secret_access_key: description: The AWS secret access key to use for authentication type: string aws_sts_endpoint_url: description: Override the STS endpoint URL when assuming a different role type: string guarding_mode: default: INPUT description: The guardrail mode to use for the request enum: - BOTH - INPUT - OUTPUT type: string guardrails_id: description: >- The guardrail identifier used in the request to apply the guardrail type: string guardrails_version: description: The guardrail version used in the request to apply the guardrail type: string response_buffer_size: default: 100 description: >- The amount of bytes receiving from upstream to be buffered before sending to the guardrails service. This only applies to the response content guard. type: number stop_on_error: default: true description: Stop processing if an error occurs type: boolean text_source: default: concatenate_all_content description: >- Select where to pick the 'text' for the Content Guard Services request. enum: - concatenate_all_content - concatenate_user_content type: string timeout: default: 10000 description: Connection timeout with the bedrock service type: number required: - aws_region - guardrails_id - guardrails_version type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config AiAzureContentSafetyPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiAzureContentSafetyPluginConfig' properties: name: const: ai-azure-content-safety x-speakeasy-entity: PluginAiAzureContentSafety AiAzureContentSafetyPluginConfig: properties: config: properties: azure_api_version: default: '2023-10-01' description: >- Sets the ?api-version URL parameter, used for defining the Azure Content Services interchange format. minLength: 1 type: string azure_client_id: description: >- If `azure_use_managed_identity` is true, set the client ID if required. type: string azure_client_secret: description: >- If `azure_use_managed_identity` is true, set the client secret if required. type: string azure_tenant_id: description: >- If `azure_use_managed_identity` is true, set the tenant ID if required. type: string azure_use_managed_identity: default: false description: >- If checked, uses (if set) `azure_client_id`, `azure_client_secret`, and/or `azure_tenant_id` for Azure authentication, via Managed or User-assigned identity type: boolean blocklist_names: description: >- Use these configured blocklists (in Azure Content Services) when inspecting content. items: type: string type: array categories: description: Array of categories, and their thresholds, to measure on. items: properties: name: type: string rejection_level: type: integer required: - name - rejection_level type: object type: array content_safety_key: description: >- If `azure_use_managed_identity` is true, set the API key to call Content Safety. type: string content_safety_url: description: Full URL, inc protocol, of the Azure Content Safety instance. type: string guarding_mode: default: INPUT description: The guard mode to use for the request enum: - BOTH - INPUT - OUTPUT type: string halt_on_blocklist_hit: default: true description: >- Tells Azure to reject the request if any blocklist filter is hit. type: boolean output_type: default: FourSeverityLevels description: >- See https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/content-filter#content-filtering-categories enum: - EightSeverityLevels - FourSeverityLevels type: string response_buffer_size: default: 100 description: >- The amount of bytes receiving from upstream to be buffered before sending to the guardrails service. This only applies to the response content guard. type: number reveal_failure_reason: default: true description: >- Set true to tell the caller why their request was rejected, if so. type: boolean stop_on_error: default: true description: Stop processing if an error occurs type: boolean text_source: default: concatenate_all_content description: >- Select where to pick the 'text' for the Azure Content Services request. enum: - concatenate_all_content - concatenate_user_content type: string required: - content_safety_url type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config AiGcpModelArmorPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiGcpModelArmorPluginConfig' properties: name: const: ai-gcp-model-armor x-speakeasy-entity: PluginAiGcpModelArmor AiGcpModelArmorPluginConfig: properties: config: properties: enable_multi_language_detection: default: false description: >- Enables multi-language detection mode. Must be used with 'source_language'. type: boolean gcp_service_account_json: description: >- Set this field to the full JSON of the GCP service account to authenticate, if required. If null (and gcp_use_service_account is true), Kong will attempt to read from environment variable `GCP_SERVICE_ACCOUNT` or from the instance/container metadata service. type: string gcp_use_service_account: default: false description: Use service account auth for GCP-based providers and models. type: boolean guarding_mode: default: INPUT description: The guardrail mode to use for the request enum: - BOTH - INPUT - OUTPUT type: string location_id: description: GCP Location ID for the GCP Model Armor subscription. type: string project_id: description: GCP Project ID for the GCP Model Armor subscription. type: string request_failure_message: default: Request was filtered by GCP Model Armor description: >- The message to return when a failure occurs on the request phase. type: string response_buffer_size: default: 100 description: >- The amount of bytes receiving from upstream to be buffered before sending to the model armor service. This only applies to the response content guard. type: number response_failure_message: default: Response was filtered by GCP Model Armor description: >- The message to return when a failure occurs on the response phase. type: string reveal_failure_categories: default: false description: >- Whether to reveal failure categories in the response to the caller. type: boolean source_language: description: >- Source language (ISO code) to use when 'enable_multi_language_detection' is enabled. type: string stop_on_error: default: true description: Stop processing if an error occurs. type: boolean template_id: description: GCP Model Armor Template ID to enforce. type: string text_source: default: last_message description: >- Select where to pick the 'text' for the GCP Model Armor Services request. enum: - concatenate_all_content - concatenate_user_content - last_message type: string timeout: default: 10000 description: Connection timeout with the GCP Model Armor service type: number required: - location_id - project_id - template_id type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config AiLlmAsJudgePlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiLlmAsJudgePluginConfig' properties: name: const: ai-llm-as-judge x-speakeasy-entity: PluginAiLlmAsJudge AiLlmAsJudgePluginConfig: properties: config: properties: http_proxy_host: description: A string representing a host name, such as example.com. type: string http_proxy_port: description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer http_timeout: default: 60000 description: Timeout in milliseconds for the AI upstream service. type: integer https_proxy_host: description: A string representing a host name, such as example.com. type: string https_proxy_port: description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer https_verify: default: true description: Verify the TLS certificate of the AI upstream service. type: boolean ignore_assistant_prompts: default: true description: >- Ignore and discard any assistant prompts when evaluating the request type: boolean ignore_system_prompts: default: true description: >- Ignore and discard any system prompts when evaluating the request type: boolean ignore_tool_prompts: default: true description: Ignore and discard any tool prompts when evaluating the request type: boolean llm: properties: auth: properties: allow_override: default: false description: >- If enabled, the authorization header or parameter can be overridden in the request by the value configured in the plugin. type: boolean aws_access_key_id: description: >- Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_ACCESS_KEY_ID environment variable for this plugin instance. type: string aws_secret_access_key: description: >- Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_SECRET_ACCESS_KEY environment variable for this plugin instance. type: string azure_client_id: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client ID. type: string azure_client_secret: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client secret. type: string azure_tenant_id: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the tenant ID. type: string azure_use_managed_identity: default: false description: >- Set true to use the Azure Cloud Managed Identity (or user-assigned identity) to authenticate with Azure-provider models. type: boolean gcp_service_account_json: description: >- Set this field to the full JSON of the GCP service account to authenticate, if required. If null (and gcp_use_service_account is true), Kong will attempt to read from environment variable `GCP_SERVICE_ACCOUNT`. type: string gcp_use_service_account: default: false description: >- Use service account auth for GCP-based providers and models. type: boolean header_name: description: >- If AI model requires authentication via Authorization or API key header, specify its name here. type: string header_value: description: >- Specify the full auth header value for 'header_name', for example 'Bearer key' or just 'key'. type: string param_location: description: >- Specify whether the 'param_name' and 'param_value' options go in a query string, or the POST form/JSON body. enum: - body - query type: string param_name: description: >- If AI model requires authentication via query parameter, specify its name here. type: string param_value: description: Specify the full parameter value for 'param_name'. type: string type: object logging: properties: log_payloads: default: false description: >- If enabled, will log the request and response body into the Kong log plugin(s) output. type: boolean log_statistics: default: false description: >- If enabled and supported by the driver, will add model usage and token metrics into the Kong log plugin(s) output. type: boolean type: object model: properties: name: description: Model name to execute. type: string options: description: Key/value settings for the model properties: anthropic_version: description: >- Defines the schema/API version, if using Anthropic provider. type: string azure_api_version: default: '2023-05-15' description: '''api-version'' for Azure OpenAI instances.' type: string azure_deployment_id: description: Deployment ID for Azure OpenAI instances. type: string azure_instance: description: Instance name for Azure OpenAI hosted models. type: string bedrock: properties: aws_assume_role_arn: description: >- If using AWS providers (Bedrock) you can assume a different role after authentication with the current IAM context is successful. type: string aws_region: description: >- If using AWS providers (Bedrock) you can override the `AWS_REGION` environment variable by setting this option. type: string aws_role_session_name: description: >- If using AWS providers (Bedrock), set the identifier of the assumed role session. type: string aws_sts_endpoint_url: description: >- If using AWS providers (Bedrock), override the STS endpoint URL when assuming a different role. type: string embeddings_normalize: default: false description: >- If using AWS providers (Bedrock), set to true to normalize the embeddings. type: boolean performance_config_latency: description: >- Force the client's performance configuration 'latency' for all requests. Leave empty to let the consumer select the performance configuration. type: string type: object cohere: properties: embedding_input_type: default: classification description: >- The purpose of the input text to calculate embedding vectors. enum: - classification - clustering - image - search_document - search_query type: string wait_for_model: description: Wait for the model if it is not ready type: boolean type: object embeddings_dimensions: description: >- If using embeddings models, set the number of dimensions to generate. type: integer gemini: properties: api_endpoint: description: >- If running Gemini on Vertex, specify the regional API endpoint (hostname only). type: string endpoint_id: description: >- If running Gemini on Vertex Model Garden, specify the endpoint ID. type: string location_id: description: >- If running Gemini on Vertex, specify the location ID. type: string project_id: description: >- If running Gemini on Vertex, specify the project ID. type: string type: object huggingface: properties: use_cache: description: Use the cache layer on the inference API type: boolean wait_for_model: description: Wait for the model if it is not ready type: boolean type: object input_cost: description: Defines the cost per 1M tokens in your prompt. type: number llama2_format: description: >- If using llama2 provider, select the upstream message format. enum: - ollama - openai - raw type: string max_tokens: description: >- Defines the max_tokens, if using chat or completion models. type: integer mistral_format: description: >- If using mistral provider, select the upstream message format. enum: - ollama - openai type: string output_cost: description: >- Defines the cost per 1M tokens in the output of the AI. type: number temperature: description: >- Defines the matching temperature, if using chat or completion models. maximum: 5 minimum: 0 type: number top_k: description: Defines the top-k most likely tokens, if supported. maximum: 500 minimum: 0 type: integer top_p: description: Defines the top-p probability mass, if supported. maximum: 1 minimum: 0 type: number upstream_path: description: >- Manually specify or override the AI operation path, used when e.g. using the 'preserve' route_type. type: string upstream_url: description: >- Manually specify or override the full URL to the AI operation endpoints, when calling (self-)hosted models, or for running via a private endpoint. type: string type: object provider: description: >- AI provider request format - Kong translates requests to and from the specified backend compatible formats. enum: - anthropic - azure - bedrock - cohere - gemini - huggingface - llama2 - mistral - openai type: string required: - provider type: object route_type: description: 'The model''s operation implementation, for this provider. ' enum: - audio/v1/audio/speech - audio/v1/audio/transcriptions - audio/v1/audio/translations - image/v1/images/edits - image/v1/images/generations - llm/v1/assistants - llm/v1/batches - llm/v1/chat - llm/v1/completions - llm/v1/embeddings - llm/v1/files - llm/v1/responses - preserve - realtime/v1/realtime type: string required: - model - route_type type: object message_countback: default: 1 description: >- Number of messages in the chat history to use for evaluating the request maximum: 1000 minimum: 1 type: number prompt: default: >- You are a strict evaluator. You will be given a prompt and a response. Your task is to judge whether the response is correct or incorrect. You must assign a score between 1 and 100, where: 100 represents a completely correct and ideal response, 1 represents a completely incorrect or irrelevant response. Your score must be a single number only — no text, labels, or explanations. Use the full range of values (e.g., 13, 47, 86), not just round numbers like 10, 50, or 100. Be accurate and consistent, as this score will be used by another model for learning and evaluation. description: >- Use this prompt to tune the LLM system/assistant message for the llm as a judge prompt. type: string sampling_rate: default: 1 description: >- Judging request sampling rate for configuring the probability-based sampler. maximum: 1 minimum: 0 type: number required: - llm type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config AiMcpOauth2Plugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiMcpOauth2PluginConfig' properties: name: const: ai-mcp-oauth2 x-speakeasy-entity: PluginAiMcpOauth2 AiMcpOauth2PluginConfig: properties: config: description: >- The configuration for MCP authorization in OAuth2. If this is enabled, make sure the configured metadata_endpoint is also covered by the same route so the authorization can be applied correctly. properties: args: additionalProperties: true description: Additional arguments to send in the POST body. type: object authorization_servers: items: description: The authorization server identifier. type: string minLength: 1 type: array cache_introspection: default: true description: >- If enabled, the plugin will cache the introspection response for the access token. This can improve performance by reducing the number of introspection requests to the authorization server. type: boolean claim_to_header: items: properties: claim: description: The claim name to be used in the access token. type: string header: description: >- The HTTP header name to be used for forwarding the claim value to the upstream. type: string required: - claim - header type: object minLength: 1 type: array client_alg: description: The client JWT signing algorithm. enum: - ES256 - ES384 - ES512 - EdDSA - HS256 - HS384 - HS512 - PS256 - PS384 - PS512 - RS256 - RS384 - RS512 type: string client_auth: description: The client authentication method. enum: - client_secret_basic - client_secret_jwt - client_secret_post - none - private_key_jwt - self_signed_tls_client_auth - tls_client_auth type: string client_id: description: The client ID for authentication. type: string client_jwk: description: The client JWK for private_key_jwt authentication. type: string client_secret: description: The client secret for authentication. type: string headers: additionalProperties: true description: Additional headers for the introspection request. type: object http_proxy: description: HTTP proxy to use. type: string http_proxy_authorization: description: HTTP proxy authorization header. type: string http_version: default: 1.1 description: The HTTP version used for requests. type: number https_proxy: description: HTTPS proxy to use. type: string https_proxy_authorization: description: HTTPS proxy authorization header. type: string insecure_relaxed_audience_validation: default: false description: >- If enabled, the plugin will not validate the audience of the access token. Disable it if the authorization server does not correctly set the audience claim according to RFC 8707 and MCP specification. type: boolean introspection_endpoint: description: The introspection endpoint URL. type: string introspection_format: description: Controls introspection response format. enum: - base64 - base64url - string type: string keepalive: default: true description: Enable HTTP keepalive for requests. type: boolean max_request_body_size: default: 8192 description: max allowed body size allowed to be handled as MCP request. type: integer metadata_endpoint: description: >- The path for OAuth 2.0 Protected Resource Metadata. Default to $resource/.well-known/oauth-protected-resource. For example, if the configured resource is https://api.example.com/mcp, the metadata endpoint is /mcp/.well-known/oauth-protected-resource. type: string mtls_introspection_endpoint: description: The mTLS alias for the introspection endpoint. type: string no_proxy: description: Comma-separated list of hosts to exclude from proxy. type: string resource: description: The resource identifier. type: string scopes_supported: items: description: >- Recommended scopes that are used in authorization requests to request access to this protected resource. type: string minLength: 1 type: array ssl_verify: default: true description: Verify the SSL certificate. type: boolean timeout: default: 10000 description: Network I/O timeout in milliseconds. type: number tls_client_auth_cert: description: PEM-encoded client certificate for mTLS. type: string tls_client_auth_key: description: PEM-encoded private key for mTLS. type: string tls_client_auth_ssl_verify: default: true description: Verify server certificate in mTLS. type: boolean required: - authorization_servers - client_id - introspection_endpoint - resource type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object AiMcpProxyPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiMcpProxyPluginConfig' properties: name: const: ai-mcp-proxy x-speakeasy-entity: PluginAiMcpProxy AiMcpProxyPluginConfig: properties: config: properties: logging: properties: log_payloads: default: false description: >- If enabled, will log the request and response body into the Kong log plugin(s) output. type: boolean log_statistics: default: false description: >- If enabled, will add mcp metrics into the Kong log plugin(s) output. type: boolean type: object max_request_body_size: default: 8192 description: max allowed body size allowed to be handled as MCP request. type: integer mode: description: >- The mode of the MCP proxy. Possible values are: 'passthrough-listener', 'conversion-listener', 'conversion-only', 'listener'. enum: - conversion-listener - conversion-only - listener - passthrough-listener type: string server: properties: forward_client_headers: default: true description: >- Whether to forward the client request headers to the upstream server when calling the tools. type: boolean tag: description: >- The tag of the MCP server. This is used to filter the exported MCP tools. The field should contain exactly one tag. type: string timeout: default: 10000 description: The timeout for calling the tools in milliseconds. type: number type: object tools: items: properties: annotations: properties: destructive_hint: description: If true, the tool may perform destructive updates type: boolean idempotent_hint: description: >- If true, repeated calls with same args have no additional effect type: boolean open_world_hint: description: If true, tool interacts with external entities type: boolean read_only_hint: description: If true, the tool does not modify its environment type: boolean title: description: Human-readable title for the tool type: string type: object description: description: >- The description of the MCP tool. This is used to provide information about the tool's functionality and usage. type: string headers: additionalProperties: true description: >- The headers of the exported API. By default, Kong will extract the headers from API configuration. If the configured headers are not exactly matched, this field is required. type: object host: description: >- The host of the exported API. By default, Kong will extract the host from API configuration. If the configured host is wildcard, this field is required. type: string method: description: >- The method of the exported API. By default, Kong will extract the method from API configuration. If the configured method is not exactly matched, this field is required. enum: - DELETE - GET - PATCH - POST - PUT type: string parameters: description: >- The API parameters specification defined in OpenAPI. For example, '[{"name": "city", "in": "query", "description": "Name of the city to get the weather for", "required": true, "schema": {"type": "string"}}]'.See https://swagger.io/docs/specification/v3_0/describing-parameters/ for more details. type: string path: description: >- The path of the exported API. By default, Kong will extract the path from API configuration. If the configured path is not exactly matched, this field is required. Paths not starting with '/' are treated as relative paths. type: string query: additionalProperties: true description: >- The query arguments of the exported API. If the generated query arguments are not exactly matched, this field is required. type: object request_body: description: >- The API requestBody specification defined in OpenAPI. For example, '{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"color":{"type":"array","items":{"type":"string"}}}}}}'.See https://swagger.io/docs/specification/v3_0/describing-request-body/describing-request-body/ for more details. type: string scheme: description: >- The scheme of the exported API. By default, Kong will extract the scheme from API configuration. If the configured scheme is not expected, this field can be used to override it. enum: - http - https type: string required: - description type: object type: array required: - mode type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config AiPromptCompressorPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiPromptCompressorPluginConfig' properties: name: const: ai-prompt-compressor x-speakeasy-entity: PluginAiPromptCompressor AiPromptCompressorPluginConfig: properties: config: properties: compression_ranges: description: >- What value to be used to compress with. The 'value' is interpreted as rate or target_token depending on compressor_type. items: properties: max_tokens: type: integer min_tokens: type: integer value: type: number required: - max_tokens - min_tokens - value type: object type: array compressor_type: default: rate description: What compression type to use to compress with enum: - rate - target_token type: string compressor_url: default: http://localhost:8080 description: The url of the compressor type: string keepalive_timeout: default: 60000 description: The keepalive timeout for the established http connnection type: number log_text_data: default: false description: Log the text data type: boolean message_type: default: - user items: enum: - assistant - system - user type: string type: array stop_on_error: default: true description: Stop processing if an error occurs type: boolean timeout: default: 10000 description: Connection timeout with the compressor type: number required: - compression_ranges type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config AiPromptDecoratorPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiPromptDecoratorPluginConfig' properties: name: const: ai-prompt-decorator x-speakeasy-entity: PluginAiPromptDecorator AiPromptDecoratorPluginConfig: properties: config: properties: llm_format: default: openai description: LLM input and output format and schema to use enum: - bedrock - cohere - gemini - huggingface - openai type: string max_request_body_size: default: 8192 description: >- max allowed body size allowed to be introspected. 0 means unlimited, but the size of this body will still be limited by Nginx's client_max_body_size. type: integer prompts: properties: append: description: >- Insert chat messages at the end of the chat message array. This array preserves exact order when adding messages. items: properties: content: maxLength: 100000 minLength: 1 type: string role: default: system enum: - assistant - system - user type: string required: - content type: object maxLength: 15 type: array prepend: description: >- Insert chat messages at the beginning of the chat message array. This array preserves exact order when adding messages. items: properties: content: maxLength: 100000 minLength: 1 type: string role: default: system enum: - assistant - system - user type: string required: - content type: object maxLength: 15 type: array type: object type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object AiPromptGuardPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiPromptGuardPluginConfig' properties: name: const: ai-prompt-guard x-speakeasy-entity: PluginAiPromptGuard AiPromptGuardPluginConfig: properties: config: properties: allow_all_conversation_history: default: false description: >- If true, will ignore all previous chat prompts from the conversation history. type: boolean allow_patterns: description: >- Array of valid regex patterns, or valid questions from the 'user' role in chat. items: maxLength: 500 minLength: 1 type: string maxLength: 10 type: array deny_patterns: description: >- Array of invalid regex patterns, or invalid questions from the 'user' role in chat. items: maxLength: 500 minLength: 1 type: string maxLength: 10 type: array genai_category: default: text/generation description: Generative AI category of the request enum: - audio/speech - audio/transcription - image/generation - realtime/generation - text/embeddings - text/generation type: string llm_format: default: openai description: LLM input and output format and schema to use enum: - bedrock - cohere - gemini - huggingface - openai type: string match_all_roles: default: false description: >- If true, will match all roles in addition to 'user' role in conversation history. type: boolean max_request_body_size: default: 8192 description: >- max allowed body size allowed to be introspected. 0 means unlimited, but the size of this body will still be limited by Nginx's client_max_body_size. type: integer type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object AiPromptTemplatePlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiPromptTemplatePluginConfig' properties: name: const: ai-prompt-template x-speakeasy-entity: PluginAiPromptTemplate AiPromptTemplatePluginConfig: properties: config: properties: allow_untemplated_requests: default: true description: >- Set true to allow requests that don't call or match any template. type: boolean log_original_request: default: false description: >- Set true to add the original request to the Kong log plugin(s) output. type: boolean max_request_body_size: default: 8192 description: >- max allowed body size allowed to be introspected. 0 means unlimited, but the size of this body will still be limited by Nginx's client_max_body_size. type: integer templates: description: Array of templates available to the request context. items: properties: name: description: >- Unique name for the template, can be called with `{template://NAME}` type: string template: description: >- Template string for this request, supports mustache-style `{{placeholders}}` type: string required: - name - template type: object type: array required: - templates type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config AiProxyAdvancedPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiProxyAdvancedPluginConfig' properties: name: const: ai-proxy-advanced x-speakeasy-entity: PluginAiProxyAdvanced AiProxyAdvancedPluginConfig: properties: config: properties: balancer: properties: algorithm: default: round-robin description: Which load balancing algorithm to use. enum: - consistent-hashing - lowest-latency - lowest-usage - priority - round-robin - semantic type: string connect_timeout: default: 60000 maximum: 2147483646 minimum: 1 type: integer failover_criteria: default: - error - timeout description: >- Specifies in which cases an upstream response should be failover to the next target. Each option in the array is equivalent to the function of http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream items: enum: - error - http_403 - http_404 - http_429 - http_500 - http_502 - http_503 - http_504 - invalid_header - non_idempotent - timeout type: string type: array hash_on_header: default: X-Kong-LLM-Request-ID description: The header to use for consistent-hashing. type: string latency_strategy: default: tpot description: >- What metrics to use for latency. Available values are: `tpot` (time-per-output-token) and `e2e`. enum: - e2e - tpot type: string read_timeout: default: 60000 maximum: 2147483646 minimum: 1 type: integer retries: default: 5 description: The number of retries to execute upon failure to proxy. maximum: 32767 minimum: 0 type: integer slots: default: 10000 description: The number of slots in the load balancer algorithm. maximum: 65536 minimum: 10 type: integer tokens_count_strategy: default: total-tokens description: >- What tokens to use for usage calculation. Available values are: `total_tokens` `prompt_tokens`, `completion_tokens` and `cost`. enum: - completion-tokens - cost - llm-accuracy - prompt-tokens - total-tokens type: string write_timeout: default: 60000 maximum: 2147483646 minimum: 1 type: integer type: object embeddings: properties: auth: properties: allow_override: default: false description: >- If enabled, the authorization header or parameter can be overridden in the request by the value configured in the plugin. type: boolean aws_access_key_id: description: >- Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_ACCESS_KEY_ID environment variable for this plugin instance. type: string aws_secret_access_key: description: >- Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_SECRET_ACCESS_KEY environment variable for this plugin instance. type: string azure_client_id: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client ID. type: string azure_client_secret: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client secret. type: string azure_tenant_id: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the tenant ID. type: string azure_use_managed_identity: default: false description: >- Set true to use the Azure Cloud Managed Identity (or user-assigned identity) to authenticate with Azure-provider models. type: boolean gcp_service_account_json: description: >- Set this field to the full JSON of the GCP service account to authenticate, if required. If null (and gcp_use_service_account is true), Kong will attempt to read from environment variable `GCP_SERVICE_ACCOUNT`. type: string gcp_use_service_account: default: false description: >- Use service account auth for GCP-based providers and models. type: boolean header_name: description: >- If AI model requires authentication via Authorization or API key header, specify its name here. type: string header_value: description: >- Specify the full auth header value for 'header_name', for example 'Bearer key' or just 'key'. type: string param_location: description: >- Specify whether the 'param_name' and 'param_value' options go in a query string, or the POST form/JSON body. enum: - body - query type: string param_name: description: >- If AI model requires authentication via query parameter, specify its name here. type: string param_value: description: Specify the full parameter value for 'param_name'. type: string type: object model: properties: name: description: Model name to execute. type: string options: description: Key/value settings for the model properties: azure: properties: api_version: default: '2023-05-15' description: '''api-version'' for Azure OpenAI instances.' type: string deployment_id: description: Deployment ID for Azure OpenAI instances. type: string instance: description: Instance name for Azure OpenAI hosted models. type: string type: object bedrock: properties: aws_assume_role_arn: description: >- If using AWS providers (Bedrock) you can assume a different role after authentication with the current IAM context is successful. type: string aws_region: description: >- If using AWS providers (Bedrock) you can override the `AWS_REGION` environment variable by setting this option. type: string aws_role_session_name: description: >- If using AWS providers (Bedrock), set the identifier of the assumed role session. type: string aws_sts_endpoint_url: description: >- If using AWS providers (Bedrock), override the STS endpoint URL when assuming a different role. type: string embeddings_normalize: default: false description: >- If using AWS providers (Bedrock), set to true to normalize the embeddings. type: boolean performance_config_latency: description: >- Force the client's performance configuration 'latency' for all requests. Leave empty to let the consumer select the performance configuration. type: string type: object gemini: properties: api_endpoint: description: >- If running Gemini on Vertex, specify the regional API endpoint (hostname only). type: string location_id: description: >- If running Gemini on Vertex, specify the location ID. type: string project_id: description: >- If running Gemini on Vertex, specify the project ID. type: string type: object huggingface: properties: use_cache: description: Use the cache layer on the inference API type: boolean wait_for_model: description: Wait for the model if it is not ready type: boolean type: object upstream_url: description: upstream url for the embeddings type: string type: object provider: description: AI provider format to use for embeddings API enum: - azure - bedrock - gemini - huggingface - mistral - openai type: string required: - name - provider type: object required: - model type: object genai_category: default: text/generation description: Generative AI category of the request enum: - audio/speech - audio/transcription - image/generation - realtime/generation - text/embeddings - text/generation type: string llm_format: default: openai description: LLM input and output format and schema to use enum: - bedrock - cohere - gemini - huggingface - openai type: string max_request_body_size: default: 8192 description: >- max allowed body size allowed to be introspected. 0 means unlimited, but the size of this body will still be limited by Nginx's client_max_body_size. type: integer model_name_header: default: true description: >- Display the model name selected in the X-Kong-LLM-Model response header type: boolean response_streaming: default: allow description: >- Whether to 'optionally allow', 'deny', or 'always' (force) the streaming of answers via server sent events. enum: - allow - always - deny type: string targets: items: properties: auth: properties: allow_override: default: false description: >- If enabled, the authorization header or parameter can be overridden in the request by the value configured in the plugin. type: boolean aws_access_key_id: description: >- Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_ACCESS_KEY_ID environment variable for this plugin instance. type: string aws_secret_access_key: description: >- Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_SECRET_ACCESS_KEY environment variable for this plugin instance. type: string azure_client_id: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client ID. type: string azure_client_secret: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client secret. type: string azure_tenant_id: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the tenant ID. type: string azure_use_managed_identity: default: false description: >- Set true to use the Azure Cloud Managed Identity (or user-assigned identity) to authenticate with Azure-provider models. type: boolean gcp_service_account_json: description: >- Set this field to the full JSON of the GCP service account to authenticate, if required. If null (and gcp_use_service_account is true), Kong will attempt to read from environment variable `GCP_SERVICE_ACCOUNT`. type: string gcp_use_service_account: default: false description: >- Use service account auth for GCP-based providers and models. type: boolean header_name: description: >- If AI model requires authentication via Authorization or API key header, specify its name here. type: string header_value: description: >- Specify the full auth header value for 'header_name', for example 'Bearer key' or just 'key'. type: string param_location: description: >- Specify whether the 'param_name' and 'param_value' options go in a query string, or the POST form/JSON body. enum: - body - query type: string param_name: description: >- If AI model requires authentication via query parameter, specify its name here. type: string param_value: description: Specify the full parameter value for 'param_name'. type: string type: object description: description: >- The semantic description of the target, required if using semantic load balancing. Specially, setting this to 'CATCHALL' will indicate such target to be used when no other targets match the semantic threshold. type: string logging: properties: log_payloads: default: false description: >- If enabled, will log the request and response body into the Kong log plugin(s) output. type: boolean log_statistics: default: false description: >- If enabled and supported by the driver, will add model usage and token metrics into the Kong log plugin(s) output. type: boolean type: object model: properties: name: description: Model name to execute. type: string options: description: Key/value settings for the model properties: anthropic_version: description: >- Defines the schema/API version, if using Anthropic provider. type: string azure_api_version: default: '2023-05-15' description: '''api-version'' for Azure OpenAI instances.' type: string azure_deployment_id: description: Deployment ID for Azure OpenAI instances. type: string azure_instance: description: Instance name for Azure OpenAI hosted models. type: string bedrock: properties: aws_assume_role_arn: description: >- If using AWS providers (Bedrock) you can assume a different role after authentication with the current IAM context is successful. type: string aws_region: description: >- If using AWS providers (Bedrock) you can override the `AWS_REGION` environment variable by setting this option. type: string aws_role_session_name: description: >- If using AWS providers (Bedrock), set the identifier of the assumed role session. type: string aws_sts_endpoint_url: description: >- If using AWS providers (Bedrock), override the STS endpoint URL when assuming a different role. type: string embeddings_normalize: default: false description: >- If using AWS providers (Bedrock), set to true to normalize the embeddings. type: boolean performance_config_latency: description: >- Force the client's performance configuration 'latency' for all requests. Leave empty to let the consumer select the performance configuration. type: string type: object cohere: properties: embedding_input_type: default: classification description: >- The purpose of the input text to calculate embedding vectors. enum: - classification - clustering - image - search_document - search_query type: string wait_for_model: description: Wait for the model if it is not ready type: boolean type: object embeddings_dimensions: description: >- If using embeddings models, set the number of dimensions to generate. type: integer gemini: properties: api_endpoint: description: >- If running Gemini on Vertex, specify the regional API endpoint (hostname only). type: string endpoint_id: description: >- If running Gemini on Vertex Model Garden, specify the endpoint ID. type: string location_id: description: >- If running Gemini on Vertex, specify the location ID. type: string project_id: description: >- If running Gemini on Vertex, specify the project ID. type: string type: object huggingface: properties: use_cache: description: Use the cache layer on the inference API type: boolean wait_for_model: description: Wait for the model if it is not ready type: boolean type: object input_cost: description: Defines the cost per 1M tokens in your prompt. type: number llama2_format: description: >- If using llama2 provider, select the upstream message format. enum: - ollama - openai - raw type: string max_tokens: description: >- Defines the max_tokens, if using chat or completion models. type: integer mistral_format: description: >- If using mistral provider, select the upstream message format. enum: - ollama - openai type: string output_cost: description: >- Defines the cost per 1M tokens in the output of the AI. type: number temperature: description: >- Defines the matching temperature, if using chat or completion models. maximum: 5 minimum: 0 type: number top_k: description: >- Defines the top-k most likely tokens, if supported. maximum: 500 minimum: 0 type: integer top_p: description: Defines the top-p probability mass, if supported. maximum: 1 minimum: 0 type: number upstream_path: description: >- Manually specify or override the AI operation path, used when e.g. using the 'preserve' route_type. type: string upstream_url: description: >- Manually specify or override the full URL to the AI operation endpoints, when calling (self-)hosted models, or for running via a private endpoint. type: string type: object provider: description: >- AI provider request format - Kong translates requests to and from the specified backend compatible formats. enum: - anthropic - azure - bedrock - cohere - gemini - huggingface - llama2 - mistral - openai type: string required: - provider type: object route_type: description: 'The model''s operation implementation, for this provider. ' enum: - audio/v1/audio/speech - audio/v1/audio/transcriptions - audio/v1/audio/translations - image/v1/images/edits - image/v1/images/generations - llm/v1/assistants - llm/v1/batches - llm/v1/chat - llm/v1/completions - llm/v1/embeddings - llm/v1/files - llm/v1/responses - preserve - realtime/v1/realtime type: string weight: default: 100 description: >- The weight this target gets within the upstream loadbalancer (1-65535). maximum: 65535 minimum: 1 type: integer required: - model - route_type type: object type: array vectordb: properties: dimensions: description: the desired dimensionality for the vectors type: integer distance_metric: description: the distance metric to use for vector searches enum: - cosine - euclidean type: string pgvector: properties: database: default: kong-pgvector description: the database of the pgvector database type: string host: default: 127.0.0.1 description: the host of the pgvector database type: string password: description: the password of the pgvector database type: string port: default: 5432 description: the port of the pgvector database type: integer ssl: default: false description: whether to use ssl for the pgvector database type: boolean ssl_cert: description: the path of ssl cert to use for the pgvector database type: string ssl_cert_key: description: >- the path of ssl cert key to use for the pgvector database type: string ssl_required: default: false description: whether ssl is required for the pgvector database type: boolean ssl_verify: default: false description: whether to verify ssl for the pgvector database type: boolean ssl_version: default: tlsv1_2 description: the ssl version to use for the pgvector database enum: - any - tlsv1_2 - tlsv1_3 type: string timeout: default: 5000 description: the timeout of the pgvector database type: number user: default: postgres description: the user of the pgvector database type: string type: object redis: properties: cluster_max_redirections: default: 5 description: Maximum retry attempts for redirection. type: integer cluster_nodes: description: >- Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element. items: properties: ip: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array connect_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer connection_is_proxied: default: false description: >- If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address. type: boolean database: default: 0 description: >- Database to use for the Redis connection when using the `redis` strategy type: integer host: default: 127.0.0.1 description: A string representing a host name, such as example.com. type: string keepalive_backlog: description: >- Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`. maximum: 2147483646 minimum: 0 type: integer keepalive_pool_size: default: 256 description: >- The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn't specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low. maximum: 2147483646 minimum: 1 type: integer password: description: >- Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer read_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer send_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer sentinel_master: description: >- Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel. type: string sentinel_nodes: description: >- Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element. items: properties: host: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array sentinel_password: description: >- Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels. type: string sentinel_role: description: >- Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel. enum: - any - master - slave type: string sentinel_username: description: >- Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won't be performed. This requires Redis v6.2.0+. type: string server_name: description: >- A string representing an SNI (server name indication) value for TLS. type: string ssl: default: false description: If set to true, uses SSL to connect to Redis. type: boolean ssl_verify: default: false description: >- If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly. type: boolean username: description: >- Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`. type: string type: object strategy: description: which vector database driver to use enum: - pgvector - redis type: string threshold: description: >- the default similarity threshold for accepting semantic search results (float) type: number required: - dimensions - distance_metric - strategy - threshold type: object required: - targets type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https - ws - wss description: >- A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls. format: set items: enum: - grpc - grpcs - http - https - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config AiProxyPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiProxyPluginConfig' properties: name: const: ai-proxy x-speakeasy-entity: PluginAiProxy AiProxyPluginConfig: properties: config: properties: auth: properties: allow_override: default: false description: >- If enabled, the authorization header or parameter can be overridden in the request by the value configured in the plugin. type: boolean aws_access_key_id: description: >- Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_ACCESS_KEY_ID environment variable for this plugin instance. type: string aws_secret_access_key: description: >- Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_SECRET_ACCESS_KEY environment variable for this plugin instance. type: string azure_client_id: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client ID. type: string azure_client_secret: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client secret. type: string azure_tenant_id: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the tenant ID. type: string azure_use_managed_identity: default: false description: >- Set true to use the Azure Cloud Managed Identity (or user-assigned identity) to authenticate with Azure-provider models. type: boolean gcp_service_account_json: description: >- Set this field to the full JSON of the GCP service account to authenticate, if required. If null (and gcp_use_service_account is true), Kong will attempt to read from environment variable `GCP_SERVICE_ACCOUNT`. type: string gcp_use_service_account: default: false description: Use service account auth for GCP-based providers and models. type: boolean header_name: description: >- If AI model requires authentication via Authorization or API key header, specify its name here. type: string header_value: description: >- Specify the full auth header value for 'header_name', for example 'Bearer key' or just 'key'. type: string param_location: description: >- Specify whether the 'param_name' and 'param_value' options go in a query string, or the POST form/JSON body. enum: - body - query type: string param_name: description: >- If AI model requires authentication via query parameter, specify its name here. type: string param_value: description: Specify the full parameter value for 'param_name'. type: string type: object genai_category: default: text/generation description: Generative AI category of the request enum: - audio/speech - audio/transcription - image/generation - text/embeddings - text/generation type: string llm_format: default: openai description: LLM input and output format and schema to use enum: - bedrock - cohere - gemini - huggingface - openai type: string logging: properties: log_payloads: default: false description: >- If enabled, will log the request and response body into the Kong log plugin(s) output. type: boolean log_statistics: default: false description: >- If enabled and supported by the driver, will add model usage and token metrics into the Kong log plugin(s) output. type: boolean type: object max_request_body_size: default: 8192 description: >- max allowed body size allowed to be introspected. 0 means unlimited, but the size of this body will still be limited by Nginx's client_max_body_size. type: integer model: properties: name: description: Model name to execute. type: string options: description: Key/value settings for the model properties: anthropic_version: description: >- Defines the schema/API version, if using Anthropic provider. type: string azure_api_version: default: '2023-05-15' description: '''api-version'' for Azure OpenAI instances.' type: string azure_deployment_id: description: Deployment ID for Azure OpenAI instances. type: string azure_instance: description: Instance name for Azure OpenAI hosted models. type: string bedrock: properties: aws_assume_role_arn: description: >- If using AWS providers (Bedrock) you can assume a different role after authentication with the current IAM context is successful. type: string aws_region: description: >- If using AWS providers (Bedrock) you can override the `AWS_REGION` environment variable by setting this option. type: string aws_role_session_name: description: >- If using AWS providers (Bedrock), set the identifier of the assumed role session. type: string aws_sts_endpoint_url: description: >- If using AWS providers (Bedrock), override the STS endpoint URL when assuming a different role. type: string embeddings_normalize: default: false description: >- If using AWS providers (Bedrock), set to true to normalize the embeddings. type: boolean performance_config_latency: description: >- Force the client's performance configuration 'latency' for all requests. Leave empty to let the consumer select the performance configuration. type: string type: object cohere: properties: embedding_input_type: default: classification description: >- The purpose of the input text to calculate embedding vectors. enum: - classification - clustering - image - search_document - search_query type: string wait_for_model: description: Wait for the model if it is not ready type: boolean type: object embeddings_dimensions: description: >- If using embeddings models, set the number of dimensions to generate. type: integer gemini: properties: api_endpoint: description: >- If running Gemini on Vertex, specify the regional API endpoint (hostname only). type: string endpoint_id: description: >- If running Gemini on Vertex Model Garden, specify the endpoint ID. type: string location_id: description: >- If running Gemini on Vertex, specify the location ID. type: string project_id: description: If running Gemini on Vertex, specify the project ID. type: string type: object huggingface: properties: use_cache: description: Use the cache layer on the inference API type: boolean wait_for_model: description: Wait for the model if it is not ready type: boolean type: object input_cost: description: Defines the cost per 1M tokens in your prompt. type: number llama2_format: description: >- If using llama2 provider, select the upstream message format. enum: - ollama - openai - raw type: string max_tokens: description: >- Defines the max_tokens, if using chat or completion models. type: integer mistral_format: description: >- If using mistral provider, select the upstream message format. enum: - ollama - openai type: string output_cost: description: Defines the cost per 1M tokens in the output of the AI. type: number temperature: description: >- Defines the matching temperature, if using chat or completion models. maximum: 5 minimum: 0 type: number top_k: description: Defines the top-k most likely tokens, if supported. maximum: 500 minimum: 0 type: integer top_p: description: Defines the top-p probability mass, if supported. maximum: 1 minimum: 0 type: number upstream_path: description: >- Manually specify or override the AI operation path, used when e.g. using the 'preserve' route_type. type: string upstream_url: description: >- Manually specify or override the full URL to the AI operation endpoints, when calling (self-)hosted models, or for running via a private endpoint. type: string type: object provider: description: >- AI provider request format - Kong translates requests to and from the specified backend compatible formats. enum: - anthropic - azure - bedrock - cohere - gemini - huggingface - llama2 - mistral - openai type: string required: - provider type: object model_name_header: default: true description: >- Display the model name selected in the X-Kong-LLM-Model response header type: boolean response_streaming: default: allow description: >- Whether to 'optionally allow', 'deny', or 'always' (force) the streaming of answers via server sent events. enum: - allow - always - deny type: string route_type: description: 'The model''s operation implementation, for this provider. ' enum: - audio/v1/audio/speech - audio/v1/audio/transcriptions - audio/v1/audio/translations - image/v1/images/edits - image/v1/images/generations - llm/v1/assistants - llm/v1/batches - llm/v1/chat - llm/v1/completions - llm/v1/embeddings - llm/v1/files - llm/v1/responses - preserve - realtime/v1/realtime type: string required: - model - route_type type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https - ws - wss description: >- A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls. format: set items: enum: - grpc - grpcs - http - https - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config AiRagInjectorPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiRagInjectorPluginConfig' properties: name: const: ai-rag-injector x-speakeasy-entity: PluginAiRagInjector AiRagInjectorPluginConfig: properties: config: properties: embeddings: properties: auth: properties: allow_override: default: false description: >- If enabled, the authorization header or parameter can be overridden in the request by the value configured in the plugin. type: boolean aws_access_key_id: description: >- Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_ACCESS_KEY_ID environment variable for this plugin instance. type: string aws_secret_access_key: description: >- Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_SECRET_ACCESS_KEY environment variable for this plugin instance. type: string azure_client_id: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client ID. type: string azure_client_secret: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client secret. type: string azure_tenant_id: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the tenant ID. type: string azure_use_managed_identity: default: false description: >- Set true to use the Azure Cloud Managed Identity (or user-assigned identity) to authenticate with Azure-provider models. type: boolean gcp_service_account_json: description: >- Set this field to the full JSON of the GCP service account to authenticate, if required. If null (and gcp_use_service_account is true), Kong will attempt to read from environment variable `GCP_SERVICE_ACCOUNT`. type: string gcp_use_service_account: default: false description: >- Use service account auth for GCP-based providers and models. type: boolean header_name: description: >- If AI model requires authentication via Authorization or API key header, specify its name here. type: string header_value: description: >- Specify the full auth header value for 'header_name', for example 'Bearer key' or just 'key'. type: string param_location: description: >- Specify whether the 'param_name' and 'param_value' options go in a query string, or the POST form/JSON body. enum: - body - query type: string param_name: description: >- If AI model requires authentication via query parameter, specify its name here. type: string param_value: description: Specify the full parameter value for 'param_name'. type: string type: object model: properties: name: description: Model name to execute. type: string options: description: Key/value settings for the model properties: azure: properties: api_version: default: '2023-05-15' description: '''api-version'' for Azure OpenAI instances.' type: string deployment_id: description: Deployment ID for Azure OpenAI instances. type: string instance: description: Instance name for Azure OpenAI hosted models. type: string type: object bedrock: properties: aws_assume_role_arn: description: >- If using AWS providers (Bedrock) you can assume a different role after authentication with the current IAM context is successful. type: string aws_region: description: >- If using AWS providers (Bedrock) you can override the `AWS_REGION` environment variable by setting this option. type: string aws_role_session_name: description: >- If using AWS providers (Bedrock), set the identifier of the assumed role session. type: string aws_sts_endpoint_url: description: >- If using AWS providers (Bedrock), override the STS endpoint URL when assuming a different role. type: string embeddings_normalize: default: false description: >- If using AWS providers (Bedrock), set to true to normalize the embeddings. type: boolean performance_config_latency: description: >- Force the client's performance configuration 'latency' for all requests. Leave empty to let the consumer select the performance configuration. type: string type: object gemini: properties: api_endpoint: description: >- If running Gemini on Vertex, specify the regional API endpoint (hostname only). type: string location_id: description: >- If running Gemini on Vertex, specify the location ID. type: string project_id: description: >- If running Gemini on Vertex, specify the project ID. type: string type: object huggingface: properties: use_cache: description: Use the cache layer on the inference API type: boolean wait_for_model: description: Wait for the model if it is not ready type: boolean type: object upstream_url: description: upstream url for the embeddings type: string type: object provider: description: AI provider format to use for embeddings API enum: - azure - bedrock - gemini - huggingface - mistral - openai type: string required: - name - provider type: object required: - model type: object fetch_chunks_count: default: 5 description: The maximum number of chunks to fetch from vectordb type: number inject_as_role: default: user enum: - assistant - system - user type: string inject_template: default: |- type: string stop_on_failure: default: false description: >- Halt the LLM request process in case of a vectordb or embeddings service failure type: boolean vectordb: properties: dimensions: description: the desired dimensionality for the vectors type: integer distance_metric: description: the distance metric to use for vector searches enum: - cosine - euclidean type: string pgvector: properties: database: default: kong-pgvector description: the database of the pgvector database type: string host: default: 127.0.0.1 description: the host of the pgvector database type: string password: description: the password of the pgvector database type: string port: default: 5432 description: the port of the pgvector database type: integer ssl: default: false description: whether to use ssl for the pgvector database type: boolean ssl_cert: description: the path of ssl cert to use for the pgvector database type: string ssl_cert_key: description: >- the path of ssl cert key to use for the pgvector database type: string ssl_required: default: false description: whether ssl is required for the pgvector database type: boolean ssl_verify: default: false description: whether to verify ssl for the pgvector database type: boolean ssl_version: default: tlsv1_2 description: the ssl version to use for the pgvector database enum: - any - tlsv1_2 - tlsv1_3 type: string timeout: default: 5000 description: the timeout of the pgvector database type: number user: default: postgres description: the user of the pgvector database type: string type: object redis: properties: cluster_max_redirections: default: 5 description: Maximum retry attempts for redirection. type: integer cluster_nodes: description: >- Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element. items: properties: ip: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array connect_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer connection_is_proxied: default: false description: >- If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address. type: boolean database: default: 0 description: >- Database to use for the Redis connection when using the `redis` strategy type: integer host: default: 127.0.0.1 description: A string representing a host name, such as example.com. type: string keepalive_backlog: description: >- Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`. maximum: 2147483646 minimum: 0 type: integer keepalive_pool_size: default: 256 description: >- The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn't specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low. maximum: 2147483646 minimum: 1 type: integer password: description: >- Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer read_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer send_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer sentinel_master: description: >- Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel. type: string sentinel_nodes: description: >- Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element. items: properties: host: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array sentinel_password: description: >- Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels. type: string sentinel_role: description: >- Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel. enum: - any - master - slave type: string sentinel_username: description: >- Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won't be performed. This requires Redis v6.2.0+. type: string server_name: description: >- A string representing an SNI (server name indication) value for TLS. type: string ssl: default: false description: If set to true, uses SSL to connect to Redis. type: boolean ssl_verify: default: false description: >- If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly. type: boolean username: description: >- Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`. type: string type: object strategy: description: which vector database driver to use enum: - pgvector - redis type: string required: - dimensions - distance_metric - strategy type: object vectordb_namespace: default: kong_rag_injector description: The namespace of the vectordb to use for embeddings lookup type: string required: - embeddings - vectordb type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config AiRateLimitingAdvancedPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiRateLimitingAdvancedPluginConfig' properties: name: const: ai-rate-limiting-advanced x-speakeasy-entity: PluginAiRateLimitingAdvanced AiRateLimitingAdvancedPluginConfig: properties: config: properties: dictionary_name: default: kong_rate_limiting_counters description: >- The shared dictionary where counters are stored. When the plugin is configured to synchronize counter data externally (that is `config.strategy` is `cluster` or `redis` and `config.sync_rate` isn't `-1`), this dictionary serves as a buffer to populate counters in the data store on each synchronization cycle. type: string disable_penalty: default: false description: >- If set to `true`, this doesn't count denied requests (status = `429`). If set to `false`, all requests, including denied ones, are counted. This parameter only affects the `sliding` window_type and the request prompt provider. type: boolean error_code: default: 429 description: >- Set a custom error code to return when the rate limit is exceeded. type: number error_hide_providers: default: false description: >- Optionally hide informative response that would otherwise provide information about the provider in the error message. type: boolean error_message: default: 'AI token rate limit exceeded for provider(s): ' description: >- Set a custom error message to return when the rate limit is exceeded. type: string header_name: description: A string representing an HTTP header name. type: string hide_client_headers: default: false description: >- Optionally hide informative response headers that would otherwise provide information about the current status of limits and counters. type: boolean identifier: default: consumer description: >- The type of identifier used to generate the rate limit key. Defines the scope used to increment the rate limiting counters. Can be `ip`, `credential`, `consumer`, `service`, `header`, `path` or `consumer-group`. Note if `identifier` is `consumer-group`, the plugin must be applied on a consumer group entity. Because a consumer may belong to multiple consumer groups, the plugin needs to know explicitly which consumer group to limit the rate. enum: - consumer - consumer-group - credential - header - ip - path - service type: string llm_format: default: openai description: LLM input and output format and schema to use enum: - bedrock - cohere - gemini - huggingface - openai type: string llm_providers: description: >- The provider config. Takes an array of `name`, `limit` and `window size` values. items: properties: limit: description: >- One or more requests-per-window limits to apply. There must be a matching number of window limits and sizes specified. items: type: number type: array name: description: The LLM provider to which the rate limit applies. enum: - anthropic - azure - bedrock - cohere - gemini - huggingface - llama2 - mistral - openai - requestPrompt type: string window_size: description: >- One or more window sizes to apply a limit to (defined in seconds). There must be a matching number of window limits and sizes specified. items: type: number type: array required: - limit - name - window_size type: object type: array namespace: description: >- The rate limiting library namespace to use for this plugin instance. Counter data and sync configuration is isolated in each namespace. NOTE: For the plugin instances sharing the same namespace, all the configurations that are required for synchronizing counters, e.g. `strategy`, `redis`, `sync_rate`, `dictionary_name`, need to be the same. type: string path: description: >- A string representing a URL path, such as /path/to/resource. Must start with a forward slash (/) and must not contain empty segments (i.e., two consecutive forward slashes). type: string redis: properties: cluster_max_redirections: default: 5 description: Maximum retry attempts for redirection. type: integer cluster_nodes: description: >- Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element. items: properties: ip: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array connect_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer connection_is_proxied: default: false description: >- If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address. type: boolean database: default: 0 description: >- Database to use for the Redis connection when using the `redis` strategy type: integer host: default: 127.0.0.1 description: A string representing a host name, such as example.com. type: string keepalive_backlog: description: >- Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`. maximum: 2147483646 minimum: 0 type: integer keepalive_pool_size: default: 256 description: >- The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn't specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low. maximum: 2147483646 minimum: 1 type: integer password: description: >- Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer read_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer send_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer sentinel_master: description: >- Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel. type: string sentinel_nodes: description: >- Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element. items: properties: host: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array sentinel_password: description: >- Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels. type: string sentinel_role: description: >- Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel. enum: - any - master - slave type: string sentinel_username: description: >- Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won't be performed. This requires Redis v6.2.0+. type: string server_name: description: >- A string representing an SNI (server name indication) value for TLS. type: string ssl: default: false description: If set to true, uses SSL to connect to Redis. type: boolean ssl_verify: default: false description: >- If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly. type: boolean username: description: >- Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`. type: string type: object request_prompt_count_function: description: >- If defined, it use custom function to count requests for the request prompt provider type: string retry_after_jitter_max: default: 0 description: >- The upper bound of a jitter (random delay) in seconds to be added to the `Retry-After` header of denied requests (status = `429`) in order to prevent all the clients from coming back at the same time. The lower bound of the jitter is `0`; in this case, the `Retry-After` header is equal to the `RateLimit-Reset` header. type: number strategy: default: local description: >- The rate-limiting strategy to use for retrieving and incrementing the limits. Available values are: `local` and `cluster`. enum: - cluster - local - redis type: string sync_rate: description: >- How often to sync counter data to the central data store. A value of 0 results in synchronous behavior; a value of -1 ignores sync behavior entirely and only stores counters in node memory. A value greater than 0 will sync the counters in the specified number of seconds. The minimum allowed interval is 0.02 seconds (20ms). type: number tokens_count_strategy: default: total_tokens description: >- What tokens to use for cost calculation. Available values are: `total_tokens` `prompt_tokens`, `completion_tokens` or `cost`. enum: - completion_tokens - cost - prompt_tokens - total_tokens type: string window_type: default: sliding description: >- Sets the time window type to either `sliding` (default) or `fixed`. Sliding windows apply the rate limiting logic while taking into account previous hit rates (from the window that immediately precedes the current) using a dynamic weight. Fixed windows consist of buckets that are statically assigned to a definitive time range, each request is mapped to only one fixed window based on its timestamp and will affect only that window's counters. enum: - fixed - sliding type: string required: - llm_providers type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config AiRequestTransformerPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiRequestTransformerPluginConfig' properties: name: const: ai-request-transformer x-speakeasy-entity: PluginAiRequestTransformer AiRequestTransformerPluginConfig: properties: config: properties: http_proxy_host: description: A string representing a host name, such as example.com. type: string http_proxy_port: description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer http_timeout: default: 60000 description: Timeout in milliseconds for the AI upstream service. type: integer https_proxy_host: description: A string representing a host name, such as example.com. type: string https_proxy_port: description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer https_verify: default: true description: Verify the TLS certificate of the AI upstream service. type: boolean llm: properties: auth: properties: allow_override: default: false description: >- If enabled, the authorization header or parameter can be overridden in the request by the value configured in the plugin. type: boolean aws_access_key_id: description: >- Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_ACCESS_KEY_ID environment variable for this plugin instance. type: string aws_secret_access_key: description: >- Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_SECRET_ACCESS_KEY environment variable for this plugin instance. type: string azure_client_id: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client ID. type: string azure_client_secret: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client secret. type: string azure_tenant_id: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the tenant ID. type: string azure_use_managed_identity: default: false description: >- Set true to use the Azure Cloud Managed Identity (or user-assigned identity) to authenticate with Azure-provider models. type: boolean gcp_service_account_json: description: >- Set this field to the full JSON of the GCP service account to authenticate, if required. If null (and gcp_use_service_account is true), Kong will attempt to read from environment variable `GCP_SERVICE_ACCOUNT`. type: string gcp_use_service_account: default: false description: >- Use service account auth for GCP-based providers and models. type: boolean header_name: description: >- If AI model requires authentication via Authorization or API key header, specify its name here. type: string header_value: description: >- Specify the full auth header value for 'header_name', for example 'Bearer key' or just 'key'. type: string param_location: description: >- Specify whether the 'param_name' and 'param_value' options go in a query string, or the POST form/JSON body. enum: - body - query type: string param_name: description: >- If AI model requires authentication via query parameter, specify its name here. type: string param_value: description: Specify the full parameter value for 'param_name'. type: string type: object logging: properties: log_payloads: default: false description: >- If enabled, will log the request and response body into the Kong log plugin(s) output. type: boolean log_statistics: default: false description: >- If enabled and supported by the driver, will add model usage and token metrics into the Kong log plugin(s) output. type: boolean type: object model: properties: name: description: Model name to execute. type: string options: description: Key/value settings for the model properties: anthropic_version: description: >- Defines the schema/API version, if using Anthropic provider. type: string azure_api_version: default: '2023-05-15' description: '''api-version'' for Azure OpenAI instances.' type: string azure_deployment_id: description: Deployment ID for Azure OpenAI instances. type: string azure_instance: description: Instance name for Azure OpenAI hosted models. type: string bedrock: properties: aws_assume_role_arn: description: >- If using AWS providers (Bedrock) you can assume a different role after authentication with the current IAM context is successful. type: string aws_region: description: >- If using AWS providers (Bedrock) you can override the `AWS_REGION` environment variable by setting this option. type: string aws_role_session_name: description: >- If using AWS providers (Bedrock), set the identifier of the assumed role session. type: string aws_sts_endpoint_url: description: >- If using AWS providers (Bedrock), override the STS endpoint URL when assuming a different role. type: string embeddings_normalize: default: false description: >- If using AWS providers (Bedrock), set to true to normalize the embeddings. type: boolean performance_config_latency: description: >- Force the client's performance configuration 'latency' for all requests. Leave empty to let the consumer select the performance configuration. type: string type: object cohere: properties: embedding_input_type: default: classification description: >- The purpose of the input text to calculate embedding vectors. enum: - classification - clustering - image - search_document - search_query type: string wait_for_model: description: Wait for the model if it is not ready type: boolean type: object embeddings_dimensions: description: >- If using embeddings models, set the number of dimensions to generate. type: integer gemini: properties: api_endpoint: description: >- If running Gemini on Vertex, specify the regional API endpoint (hostname only). type: string endpoint_id: description: >- If running Gemini on Vertex Model Garden, specify the endpoint ID. type: string location_id: description: >- If running Gemini on Vertex, specify the location ID. type: string project_id: description: >- If running Gemini on Vertex, specify the project ID. type: string type: object huggingface: properties: use_cache: description: Use the cache layer on the inference API type: boolean wait_for_model: description: Wait for the model if it is not ready type: boolean type: object input_cost: description: Defines the cost per 1M tokens in your prompt. type: number llama2_format: description: >- If using llama2 provider, select the upstream message format. enum: - ollama - openai - raw type: string max_tokens: description: >- Defines the max_tokens, if using chat or completion models. type: integer mistral_format: description: >- If using mistral provider, select the upstream message format. enum: - ollama - openai type: string output_cost: description: >- Defines the cost per 1M tokens in the output of the AI. type: number temperature: description: >- Defines the matching temperature, if using chat or completion models. maximum: 5 minimum: 0 type: number top_k: description: Defines the top-k most likely tokens, if supported. maximum: 500 minimum: 0 type: integer top_p: description: Defines the top-p probability mass, if supported. maximum: 1 minimum: 0 type: number upstream_path: description: >- Manually specify or override the AI operation path, used when e.g. using the 'preserve' route_type. type: string upstream_url: description: >- Manually specify or override the full URL to the AI operation endpoints, when calling (self-)hosted models, or for running via a private endpoint. type: string type: object provider: description: >- AI provider request format - Kong translates requests to and from the specified backend compatible formats. enum: - anthropic - azure - bedrock - cohere - gemini - huggingface - llama2 - mistral - openai type: string required: - provider type: object route_type: description: 'The model''s operation implementation, for this provider. ' enum: - audio/v1/audio/speech - audio/v1/audio/transcriptions - audio/v1/audio/translations - image/v1/images/edits - image/v1/images/generations - llm/v1/assistants - llm/v1/batches - llm/v1/chat - llm/v1/completions - llm/v1/embeddings - llm/v1/files - llm/v1/responses - preserve - realtime/v1/realtime type: string required: - model - route_type type: object max_request_body_size: default: 8192 description: >- max allowed body size allowed to be introspected. 0 means unlimited, but the size of this body will still be limited by Nginx's client_max_body_size. type: integer prompt: description: >- Use this prompt to tune the LLM system/assistant message for the incoming proxy request (from the client), and what you are expecting in return. type: string transformation_extract_pattern: description: >- Defines the regular expression that must match to indicate a successful AI transformation at the request phase. The first match will be set as the outgoing body. If the AI service's response doesn't match this pattern, it is marked as a failure. type: string required: - llm - prompt type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config AiResponseTransformerPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiResponseTransformerPluginConfig' properties: name: const: ai-response-transformer x-speakeasy-entity: PluginAiResponseTransformer AiResponseTransformerPluginConfig: properties: config: properties: http_proxy_host: description: A string representing a host name, such as example.com. type: string http_proxy_port: description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer http_timeout: default: 60000 description: Timeout in milliseconds for the AI upstream service. type: integer https_proxy_host: description: A string representing a host name, such as example.com. type: string https_proxy_port: description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer https_verify: default: true description: Verify the TLS certificate of the AI upstream service. type: boolean llm: properties: auth: properties: allow_override: default: false description: >- If enabled, the authorization header or parameter can be overridden in the request by the value configured in the plugin. type: boolean aws_access_key_id: description: >- Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_ACCESS_KEY_ID environment variable for this plugin instance. type: string aws_secret_access_key: description: >- Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_SECRET_ACCESS_KEY environment variable for this plugin instance. type: string azure_client_id: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client ID. type: string azure_client_secret: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client secret. type: string azure_tenant_id: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the tenant ID. type: string azure_use_managed_identity: default: false description: >- Set true to use the Azure Cloud Managed Identity (or user-assigned identity) to authenticate with Azure-provider models. type: boolean gcp_service_account_json: description: >- Set this field to the full JSON of the GCP service account to authenticate, if required. If null (and gcp_use_service_account is true), Kong will attempt to read from environment variable `GCP_SERVICE_ACCOUNT`. type: string gcp_use_service_account: default: false description: >- Use service account auth for GCP-based providers and models. type: boolean header_name: description: >- If AI model requires authentication via Authorization or API key header, specify its name here. type: string header_value: description: >- Specify the full auth header value for 'header_name', for example 'Bearer key' or just 'key'. type: string param_location: description: >- Specify whether the 'param_name' and 'param_value' options go in a query string, or the POST form/JSON body. enum: - body - query type: string param_name: description: >- If AI model requires authentication via query parameter, specify its name here. type: string param_value: description: Specify the full parameter value for 'param_name'. type: string type: object logging: properties: log_payloads: default: false description: >- If enabled, will log the request and response body into the Kong log plugin(s) output. type: boolean log_statistics: default: false description: >- If enabled and supported by the driver, will add model usage and token metrics into the Kong log plugin(s) output. type: boolean type: object model: properties: name: description: Model name to execute. type: string options: description: Key/value settings for the model properties: anthropic_version: description: >- Defines the schema/API version, if using Anthropic provider. type: string azure_api_version: default: '2023-05-15' description: '''api-version'' for Azure OpenAI instances.' type: string azure_deployment_id: description: Deployment ID for Azure OpenAI instances. type: string azure_instance: description: Instance name for Azure OpenAI hosted models. type: string bedrock: properties: aws_assume_role_arn: description: >- If using AWS providers (Bedrock) you can assume a different role after authentication with the current IAM context is successful. type: string aws_region: description: >- If using AWS providers (Bedrock) you can override the `AWS_REGION` environment variable by setting this option. type: string aws_role_session_name: description: >- If using AWS providers (Bedrock), set the identifier of the assumed role session. type: string aws_sts_endpoint_url: description: >- If using AWS providers (Bedrock), override the STS endpoint URL when assuming a different role. type: string embeddings_normalize: default: false description: >- If using AWS providers (Bedrock), set to true to normalize the embeddings. type: boolean performance_config_latency: description: >- Force the client's performance configuration 'latency' for all requests. Leave empty to let the consumer select the performance configuration. type: string type: object cohere: properties: embedding_input_type: default: classification description: >- The purpose of the input text to calculate embedding vectors. enum: - classification - clustering - image - search_document - search_query type: string wait_for_model: description: Wait for the model if it is not ready type: boolean type: object embeddings_dimensions: description: >- If using embeddings models, set the number of dimensions to generate. type: integer gemini: properties: api_endpoint: description: >- If running Gemini on Vertex, specify the regional API endpoint (hostname only). type: string endpoint_id: description: >- If running Gemini on Vertex Model Garden, specify the endpoint ID. type: string location_id: description: >- If running Gemini on Vertex, specify the location ID. type: string project_id: description: >- If running Gemini on Vertex, specify the project ID. type: string type: object huggingface: properties: use_cache: description: Use the cache layer on the inference API type: boolean wait_for_model: description: Wait for the model if it is not ready type: boolean type: object input_cost: description: Defines the cost per 1M tokens in your prompt. type: number llama2_format: description: >- If using llama2 provider, select the upstream message format. enum: - ollama - openai - raw type: string max_tokens: description: >- Defines the max_tokens, if using chat or completion models. type: integer mistral_format: description: >- If using mistral provider, select the upstream message format. enum: - ollama - openai type: string output_cost: description: >- Defines the cost per 1M tokens in the output of the AI. type: number temperature: description: >- Defines the matching temperature, if using chat or completion models. maximum: 5 minimum: 0 type: number top_k: description: Defines the top-k most likely tokens, if supported. maximum: 500 minimum: 0 type: integer top_p: description: Defines the top-p probability mass, if supported. maximum: 1 minimum: 0 type: number upstream_path: description: >- Manually specify or override the AI operation path, used when e.g. using the 'preserve' route_type. type: string upstream_url: description: >- Manually specify or override the full URL to the AI operation endpoints, when calling (self-)hosted models, or for running via a private endpoint. type: string type: object provider: description: >- AI provider request format - Kong translates requests to and from the specified backend compatible formats. enum: - anthropic - azure - bedrock - cohere - gemini - huggingface - llama2 - mistral - openai type: string required: - provider type: object route_type: description: 'The model''s operation implementation, for this provider. ' enum: - audio/v1/audio/speech - audio/v1/audio/transcriptions - audio/v1/audio/translations - image/v1/images/edits - image/v1/images/generations - llm/v1/assistants - llm/v1/batches - llm/v1/chat - llm/v1/completions - llm/v1/embeddings - llm/v1/files - llm/v1/responses - preserve - realtime/v1/realtime type: string required: - model - route_type type: object max_request_body_size: default: 8192 description: >- max allowed body size allowed to be introspected. 0 means unlimited, but the size of this body will still be limited by Nginx's client_max_body_size. type: integer parse_llm_response_json_instructions: default: false description: >- Set true to read specific response format from the LLM, and accordingly set the status code / body / headers that proxy back to the client. You need to engineer your LLM prompt to return the correct format, see plugin docs 'Overview' page for usage instructions. type: boolean prompt: description: >- Use this prompt to tune the LLM system/assistant message for the returning proxy response (from the upstream), adn what response format you are expecting. type: string transformation_extract_pattern: description: >- Defines the regular expression that must match to indicate a successful AI transformation at the response phase. The first match will be set as the returning body. If the AI service's response doesn't match this pattern, a failure is returned to the client. type: string required: - llm - prompt type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config AiSanitizerPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiSanitizerPluginConfig' properties: name: const: ai-sanitizer x-speakeasy-entity: PluginAiSanitizer AiSanitizerPluginConfig: properties: config: properties: anonymize: default: - all_and_credentials description: List of types to be anonymized items: enum: - all - all_and_credentials - bank - credentials - creditcard - crypto - custom - date - domain - driverlicense - email - general - ip - medical - nationalid - nrp - passport - phone - ssn - url type: string type: array block_if_detected: default: false description: Whether to block requests containing PII data type: boolean custom_patterns: description: List of custom patterns to be used for anonymization items: properties: name: type: string regex: type: string score: default: 0.5 maximum: 1 minimum: 0 type: number required: - name - regex type: object minLength: 1 type: array host: default: localhost description: The host of the sanitizer type: string keepalive_timeout: default: 60000 description: The keepalive timeout for the established http connnection type: number port: default: 8080 description: The port of the sanitizer type: number recover_redacted: default: true description: >- Whether to recover redacted data. This doesn't apply to the redacted output. type: boolean redact_type: default: placeholder description: What value to be used to redacted to enum: - placeholder - synthetic type: string sanitization_mode: default: INPUT description: The sanitization mode to use for the request enum: - BOTH - INPUT - OUTPUT type: string scheme: default: http description: The protocol can be http and https type: string stop_on_error: default: true description: Stop processing if an error occurs. type: boolean timeout: default: 10000 description: Connection timeout with the sanitizer type: number type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object AiSemanticCachePlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiSemanticCachePluginConfig' properties: name: const: ai-semantic-cache x-speakeasy-entity: PluginAiSemanticCache AiSemanticCachePluginConfig: properties: config: properties: cache_control: default: false description: >- When enabled, respect the Cache-Control behaviors defined in RFC7234. type: boolean cache_ttl: default: 300 description: >- TTL in seconds of cache entities. Must be a value greater than 0. type: integer embeddings: properties: auth: properties: allow_override: default: false description: >- If enabled, the authorization header or parameter can be overridden in the request by the value configured in the plugin. type: boolean aws_access_key_id: description: >- Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_ACCESS_KEY_ID environment variable for this plugin instance. type: string aws_secret_access_key: description: >- Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_SECRET_ACCESS_KEY environment variable for this plugin instance. type: string azure_client_id: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client ID. type: string azure_client_secret: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client secret. type: string azure_tenant_id: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the tenant ID. type: string azure_use_managed_identity: default: false description: >- Set true to use the Azure Cloud Managed Identity (or user-assigned identity) to authenticate with Azure-provider models. type: boolean gcp_service_account_json: description: >- Set this field to the full JSON of the GCP service account to authenticate, if required. If null (and gcp_use_service_account is true), Kong will attempt to read from environment variable `GCP_SERVICE_ACCOUNT`. type: string gcp_use_service_account: default: false description: >- Use service account auth for GCP-based providers and models. type: boolean header_name: description: >- If AI model requires authentication via Authorization or API key header, specify its name here. type: string header_value: description: >- Specify the full auth header value for 'header_name', for example 'Bearer key' or just 'key'. type: string param_location: description: >- Specify whether the 'param_name' and 'param_value' options go in a query string, or the POST form/JSON body. enum: - body - query type: string param_name: description: >- If AI model requires authentication via query parameter, specify its name here. type: string param_value: description: Specify the full parameter value for 'param_name'. type: string type: object model: properties: name: description: Model name to execute. type: string options: description: Key/value settings for the model properties: azure: properties: api_version: default: '2023-05-15' description: '''api-version'' for Azure OpenAI instances.' type: string deployment_id: description: Deployment ID for Azure OpenAI instances. type: string instance: description: Instance name for Azure OpenAI hosted models. type: string type: object bedrock: properties: aws_assume_role_arn: description: >- If using AWS providers (Bedrock) you can assume a different role after authentication with the current IAM context is successful. type: string aws_region: description: >- If using AWS providers (Bedrock) you can override the `AWS_REGION` environment variable by setting this option. type: string aws_role_session_name: description: >- If using AWS providers (Bedrock), set the identifier of the assumed role session. type: string aws_sts_endpoint_url: description: >- If using AWS providers (Bedrock), override the STS endpoint URL when assuming a different role. type: string embeddings_normalize: default: false description: >- If using AWS providers (Bedrock), set to true to normalize the embeddings. type: boolean performance_config_latency: description: >- Force the client's performance configuration 'latency' for all requests. Leave empty to let the consumer select the performance configuration. type: string type: object gemini: properties: api_endpoint: description: >- If running Gemini on Vertex, specify the regional API endpoint (hostname only). type: string location_id: description: >- If running Gemini on Vertex, specify the location ID. type: string project_id: description: >- If running Gemini on Vertex, specify the project ID. type: string type: object huggingface: properties: use_cache: description: Use the cache layer on the inference API type: boolean wait_for_model: description: Wait for the model if it is not ready type: boolean type: object upstream_url: description: upstream url for the embeddings type: string type: object provider: description: AI provider format to use for embeddings API enum: - azure - bedrock - gemini - huggingface - mistral - openai type: string required: - name - provider type: object required: - model type: object exact_caching: default: false description: >- When enabled, a first check for exact query will be done. It will impact DB size type: boolean ignore_assistant_prompts: default: false description: >- Ignore and discard any assistant prompts when Vectorizing the request type: boolean ignore_system_prompts: default: false description: >- Ignore and discard any system prompts when Vectorizing the request type: boolean ignore_tool_prompts: default: false description: Ignore and discard any tool prompts when Vectorizing the request type: boolean llm_format: default: openai description: LLM input and output format and schema to use enum: - bedrock - cohere - gemini - huggingface - openai type: string message_countback: default: 1 description: Number of messages in the chat history to Vectorize/Cache maximum: 1000 minimum: 1 type: number stop_on_failure: default: false description: Halt the LLM request process in case of a caching system failure type: boolean vectordb: properties: dimensions: description: the desired dimensionality for the vectors type: integer distance_metric: description: the distance metric to use for vector searches enum: - cosine - euclidean type: string pgvector: properties: database: default: kong-pgvector description: the database of the pgvector database type: string host: default: 127.0.0.1 description: the host of the pgvector database type: string password: description: the password of the pgvector database type: string port: default: 5432 description: the port of the pgvector database type: integer ssl: default: false description: whether to use ssl for the pgvector database type: boolean ssl_cert: description: the path of ssl cert to use for the pgvector database type: string ssl_cert_key: description: >- the path of ssl cert key to use for the pgvector database type: string ssl_required: default: false description: whether ssl is required for the pgvector database type: boolean ssl_verify: default: false description: whether to verify ssl for the pgvector database type: boolean ssl_version: default: tlsv1_2 description: the ssl version to use for the pgvector database enum: - any - tlsv1_2 - tlsv1_3 type: string timeout: default: 5000 description: the timeout of the pgvector database type: number user: default: postgres description: the user of the pgvector database type: string type: object redis: properties: cluster_max_redirections: default: 5 description: Maximum retry attempts for redirection. type: integer cluster_nodes: description: >- Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element. items: properties: ip: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array connect_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer connection_is_proxied: default: false description: >- If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address. type: boolean database: default: 0 description: >- Database to use for the Redis connection when using the `redis` strategy type: integer host: default: 127.0.0.1 description: A string representing a host name, such as example.com. type: string keepalive_backlog: description: >- Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`. maximum: 2147483646 minimum: 0 type: integer keepalive_pool_size: default: 256 description: >- The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn't specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low. maximum: 2147483646 minimum: 1 type: integer password: description: >- Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer read_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer send_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer sentinel_master: description: >- Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel. type: string sentinel_nodes: description: >- Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element. items: properties: host: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array sentinel_password: description: >- Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels. type: string sentinel_role: description: >- Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel. enum: - any - master - slave type: string sentinel_username: description: >- Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won't be performed. This requires Redis v6.2.0+. type: string server_name: description: >- A string representing an SNI (server name indication) value for TLS. type: string ssl: default: false description: If set to true, uses SSL to connect to Redis. type: boolean ssl_verify: default: false description: >- If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly. type: boolean username: description: >- Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`. type: string type: object strategy: description: which vector database driver to use enum: - pgvector - redis type: string threshold: description: >- the default similarity threshold for accepting semantic search results (float) type: number required: - dimensions - distance_metric - strategy - threshold type: object required: - embeddings - vectordb type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config AiSemanticPromptGuardPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiSemanticPromptGuardPluginConfig' properties: name: const: ai-semantic-prompt-guard x-speakeasy-entity: PluginAiSemanticPromptGuard AiSemanticPromptGuardPluginConfig: properties: config: properties: embeddings: properties: auth: properties: allow_override: default: false description: >- If enabled, the authorization header or parameter can be overridden in the request by the value configured in the plugin. type: boolean aws_access_key_id: description: >- Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_ACCESS_KEY_ID environment variable for this plugin instance. type: string aws_secret_access_key: description: >- Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_SECRET_ACCESS_KEY environment variable for this plugin instance. type: string azure_client_id: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client ID. type: string azure_client_secret: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client secret. type: string azure_tenant_id: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the tenant ID. type: string azure_use_managed_identity: default: false description: >- Set true to use the Azure Cloud Managed Identity (or user-assigned identity) to authenticate with Azure-provider models. type: boolean gcp_service_account_json: description: >- Set this field to the full JSON of the GCP service account to authenticate, if required. If null (and gcp_use_service_account is true), Kong will attempt to read from environment variable `GCP_SERVICE_ACCOUNT`. type: string gcp_use_service_account: default: false description: >- Use service account auth for GCP-based providers and models. type: boolean header_name: description: >- If AI model requires authentication via Authorization or API key header, specify its name here. type: string header_value: description: >- Specify the full auth header value for 'header_name', for example 'Bearer key' or just 'key'. type: string param_location: description: >- Specify whether the 'param_name' and 'param_value' options go in a query string, or the POST form/JSON body. enum: - body - query type: string param_name: description: >- If AI model requires authentication via query parameter, specify its name here. type: string param_value: description: Specify the full parameter value for 'param_name'. type: string type: object model: properties: name: description: Model name to execute. type: string options: description: Key/value settings for the model properties: azure: properties: api_version: default: '2023-05-15' description: '''api-version'' for Azure OpenAI instances.' type: string deployment_id: description: Deployment ID for Azure OpenAI instances. type: string instance: description: Instance name for Azure OpenAI hosted models. type: string type: object bedrock: properties: aws_assume_role_arn: description: >- If using AWS providers (Bedrock) you can assume a different role after authentication with the current IAM context is successful. type: string aws_region: description: >- If using AWS providers (Bedrock) you can override the `AWS_REGION` environment variable by setting this option. type: string aws_role_session_name: description: >- If using AWS providers (Bedrock), set the identifier of the assumed role session. type: string aws_sts_endpoint_url: description: >- If using AWS providers (Bedrock), override the STS endpoint URL when assuming a different role. type: string embeddings_normalize: default: false description: >- If using AWS providers (Bedrock), set to true to normalize the embeddings. type: boolean performance_config_latency: description: >- Force the client's performance configuration 'latency' for all requests. Leave empty to let the consumer select the performance configuration. type: string type: object gemini: properties: api_endpoint: description: >- If running Gemini on Vertex, specify the regional API endpoint (hostname only). type: string location_id: description: >- If running Gemini on Vertex, specify the location ID. type: string project_id: description: >- If running Gemini on Vertex, specify the project ID. type: string type: object huggingface: properties: use_cache: description: Use the cache layer on the inference API type: boolean wait_for_model: description: Wait for the model if it is not ready type: boolean type: object upstream_url: description: upstream url for the embeddings type: string type: object provider: description: AI provider format to use for embeddings API enum: - azure - bedrock - gemini - huggingface - mistral - openai type: string required: - name - provider type: object required: - model type: object genai_category: default: text/generation description: Generative AI category of the request enum: - audio/speech - audio/transcription - image/generation - realtime/generation - text/embeddings - text/generation type: string llm_format: default: openai description: LLM input and output format and schema to use enum: - bedrock - cohere - gemini - huggingface - openai type: string rules: properties: allow_prompts: description: List of prompts to allow. items: maxLength: 500 minLength: 1 type: string maxLength: 100 type: array deny_prompts: description: List of prompts to deny. items: maxLength: 500 minLength: 1 type: string maxLength: 100 type: array match_all_conversation_history: default: false description: >- If false, will ignore all previous chat prompts from the conversation history. type: boolean match_all_roles: default: false description: >- If true, will match all roles in addition to 'user' role in conversation history. type: boolean max_request_body_size: default: 8192 description: >- max allowed body size allowed to be introspected. 0 means unlimited, but the size of this body will still be limited by Nginx's client_max_body_size. type: integer type: object search: properties: threshold: default: 0.5 description: Threshold for the similarity score to be considered a match. type: number type: object vectordb: properties: dimensions: description: the desired dimensionality for the vectors type: integer distance_metric: description: the distance metric to use for vector searches enum: - cosine - euclidean type: string pgvector: properties: database: default: kong-pgvector description: the database of the pgvector database type: string host: default: 127.0.0.1 description: the host of the pgvector database type: string password: description: the password of the pgvector database type: string port: default: 5432 description: the port of the pgvector database type: integer ssl: default: false description: whether to use ssl for the pgvector database type: boolean ssl_cert: description: the path of ssl cert to use for the pgvector database type: string ssl_cert_key: description: >- the path of ssl cert key to use for the pgvector database type: string ssl_required: default: false description: whether ssl is required for the pgvector database type: boolean ssl_verify: default: false description: whether to verify ssl for the pgvector database type: boolean ssl_version: default: tlsv1_2 description: the ssl version to use for the pgvector database enum: - any - tlsv1_2 - tlsv1_3 type: string timeout: default: 5000 description: the timeout of the pgvector database type: number user: default: postgres description: the user of the pgvector database type: string type: object redis: properties: cluster_max_redirections: default: 5 description: Maximum retry attempts for redirection. type: integer cluster_nodes: description: >- Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element. items: properties: ip: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array connect_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer connection_is_proxied: default: false description: >- If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address. type: boolean database: default: 0 description: >- Database to use for the Redis connection when using the `redis` strategy type: integer host: default: 127.0.0.1 description: A string representing a host name, such as example.com. type: string keepalive_backlog: description: >- Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`. maximum: 2147483646 minimum: 0 type: integer keepalive_pool_size: default: 256 description: >- The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn't specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low. maximum: 2147483646 minimum: 1 type: integer password: description: >- Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer read_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer send_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer sentinel_master: description: >- Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel. type: string sentinel_nodes: description: >- Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element. items: properties: host: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array sentinel_password: description: >- Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels. type: string sentinel_role: description: >- Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel. enum: - any - master - slave type: string sentinel_username: description: >- Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won't be performed. This requires Redis v6.2.0+. type: string server_name: description: >- A string representing an SNI (server name indication) value for TLS. type: string ssl: default: false description: If set to true, uses SSL to connect to Redis. type: boolean ssl_verify: default: false description: >- If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly. type: boolean username: description: >- Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`. type: string type: object strategy: description: which vector database driver to use enum: - pgvector - redis type: string threshold: description: >- the default similarity threshold for accepting semantic search results (float) type: number required: - dimensions - distance_metric - strategy - threshold type: object required: - embeddings - vectordb type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config AiSemanticResponseGuardPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AiSemanticResponseGuardPluginConfig' properties: name: const: ai-semantic-response-guard x-speakeasy-entity: PluginAiSemanticResponseGuard AiSemanticResponseGuardPluginConfig: properties: config: properties: embeddings: properties: auth: properties: allow_override: default: false description: >- If enabled, the authorization header or parameter can be overridden in the request by the value configured in the plugin. type: boolean aws_access_key_id: description: >- Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_ACCESS_KEY_ID environment variable for this plugin instance. type: string aws_secret_access_key: description: >- Set this if you are using an AWS provider (Bedrock) and you are authenticating using static IAM User credentials. Setting this will override the AWS_SECRET_ACCESS_KEY environment variable for this plugin instance. type: string azure_client_id: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client ID. type: string azure_client_secret: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the client secret. type: string azure_tenant_id: description: >- If azure_use_managed_identity is set to true, and you need to use a different user-assigned identity for this LLM instance, set the tenant ID. type: string azure_use_managed_identity: default: false description: >- Set true to use the Azure Cloud Managed Identity (or user-assigned identity) to authenticate with Azure-provider models. type: boolean gcp_service_account_json: description: >- Set this field to the full JSON of the GCP service account to authenticate, if required. If null (and gcp_use_service_account is true), Kong will attempt to read from environment variable `GCP_SERVICE_ACCOUNT`. type: string gcp_use_service_account: default: false description: >- Use service account auth for GCP-based providers and models. type: boolean header_name: description: >- If AI model requires authentication via Authorization or API key header, specify its name here. type: string header_value: description: >- Specify the full auth header value for 'header_name', for example 'Bearer key' or just 'key'. type: string param_location: description: >- Specify whether the 'param_name' and 'param_value' options go in a query string, or the POST form/JSON body. enum: - body - query type: string param_name: description: >- If AI model requires authentication via query parameter, specify its name here. type: string param_value: description: Specify the full parameter value for 'param_name'. type: string type: object model: properties: name: description: Model name to execute. type: string options: description: Key/value settings for the model properties: azure: properties: api_version: default: '2023-05-15' description: '''api-version'' for Azure OpenAI instances.' type: string deployment_id: description: Deployment ID for Azure OpenAI instances. type: string instance: description: Instance name for Azure OpenAI hosted models. type: string type: object bedrock: properties: aws_assume_role_arn: description: >- If using AWS providers (Bedrock) you can assume a different role after authentication with the current IAM context is successful. type: string aws_region: description: >- If using AWS providers (Bedrock) you can override the `AWS_REGION` environment variable by setting this option. type: string aws_role_session_name: description: >- If using AWS providers (Bedrock), set the identifier of the assumed role session. type: string aws_sts_endpoint_url: description: >- If using AWS providers (Bedrock), override the STS endpoint URL when assuming a different role. type: string embeddings_normalize: default: false description: >- If using AWS providers (Bedrock), set to true to normalize the embeddings. type: boolean performance_config_latency: description: >- Force the client's performance configuration 'latency' for all requests. Leave empty to let the consumer select the performance configuration. type: string type: object gemini: properties: api_endpoint: description: >- If running Gemini on Vertex, specify the regional API endpoint (hostname only). type: string location_id: description: >- If running Gemini on Vertex, specify the location ID. type: string project_id: description: >- If running Gemini on Vertex, specify the project ID. type: string type: object huggingface: properties: use_cache: description: Use the cache layer on the inference API type: boolean wait_for_model: description: Wait for the model if it is not ready type: boolean type: object upstream_url: description: upstream url for the embeddings type: string type: object provider: description: AI provider format to use for embeddings API enum: - azure - bedrock - gemini - huggingface - mistral - openai type: string required: - name - provider type: object required: - model type: object genai_category: default: text/generation description: Generative AI category of the request enum: - audio/speech - audio/transcription - image/generation - realtime/generation - text/embeddings - text/generation - video/generation type: string llm_format: default: openai description: LLM input and output format and schema to use enum: - bedrock - cohere - gemini - huggingface - openai type: string rules: properties: allow_responses: description: List of responses to allow. items: maxLength: 500 minLength: 1 type: string maxLength: 100 type: array deny_responses: description: List of responses to deny. items: maxLength: 500 minLength: 1 type: string maxLength: 100 type: array max_response_body_size: default: 8192 description: >- Max allowed body size allowed to be introspected. 0 means unlimited, but the size of this body will still be limited by Nginx's client_max_body_size. type: integer type: object search: properties: threshold: default: 0.5 description: Threshold for the similarity score to be considered a match. type: number type: object vectordb: properties: dimensions: description: the desired dimensionality for the vectors type: integer distance_metric: description: the distance metric to use for vector searches enum: - cosine - euclidean type: string pgvector: properties: database: default: kong-pgvector description: the database of the pgvector database type: string host: default: 127.0.0.1 description: the host of the pgvector database type: string password: description: the password of the pgvector database type: string port: default: 5432 description: the port of the pgvector database type: integer ssl: default: false description: whether to use ssl for the pgvector database type: boolean ssl_cert: description: the path of ssl cert to use for the pgvector database type: string ssl_cert_key: description: >- the path of ssl cert key to use for the pgvector database type: string ssl_required: default: false description: whether ssl is required for the pgvector database type: boolean ssl_verify: default: false description: whether to verify ssl for the pgvector database type: boolean ssl_version: default: tlsv1_2 description: the ssl version to use for the pgvector database enum: - any - tlsv1_2 - tlsv1_3 type: string timeout: default: 5000 description: the timeout of the pgvector database type: number user: default: postgres description: the user of the pgvector database type: string type: object redis: properties: cluster_max_redirections: default: 5 description: Maximum retry attempts for redirection. type: integer cluster_nodes: description: >- Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element. items: properties: ip: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array connect_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer connection_is_proxied: default: false description: >- If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address. type: boolean database: default: 0 description: >- Database to use for the Redis connection when using the `redis` strategy type: integer host: default: 127.0.0.1 description: A string representing a host name, such as example.com. type: string keepalive_backlog: description: >- Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`. maximum: 2147483646 minimum: 0 type: integer keepalive_pool_size: default: 256 description: >- The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn't specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low. maximum: 2147483646 minimum: 1 type: integer password: description: >- Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer read_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer send_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer sentinel_master: description: >- Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel. type: string sentinel_nodes: description: >- Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element. items: properties: host: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array sentinel_password: description: >- Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels. type: string sentinel_role: description: >- Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel. enum: - any - master - slave type: string sentinel_username: description: >- Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won't be performed. This requires Redis v6.2.0+. type: string server_name: description: >- A string representing an SNI (server name indication) value for TLS. type: string ssl: default: false description: If set to true, uses SSL to connect to Redis. type: boolean ssl_verify: default: false description: >- If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly. type: boolean username: description: >- Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`. type: string type: object strategy: description: which vector database driver to use enum: - pgvector - redis type: string threshold: description: >- the default similarity threshold for accepting semantic search results (float) type: number required: - dimensions - distance_metric - strategy - threshold type: object required: - embeddings - vectordb type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config AppDynamicsPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AppDynamicsPluginConfig' properties: name: const: app-dynamics x-speakeasy-entity: PluginAppDynamics AppDynamicsPluginConfig: properties: config: additionalProperties: true type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object AwsLambdaPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AwsLambdaPluginConfig' properties: name: const: aws-lambda x-speakeasy-entity: PluginAwsLambda AwsLambdaPluginConfig: properties: config: properties: aws_assume_role_arn: description: The target AWS IAM role ARN used to invoke the Lambda function. type: string aws_imds_protocol_version: default: v1 description: >- Identifier to select the IMDS protocol version to use: `v1` or `v2`. enum: - v1 - v2 type: string aws_key: description: The AWS key credential to be used when invoking the function. type: string aws_region: description: A string representing a host name, such as example.com. type: string aws_role_session_name: default: kong description: The identifier of the assumed role session. type: string aws_secret: description: >- The AWS secret credential to be used when invoking the function. type: string aws_sts_endpoint_url: description: >- A string representing a URL, such as https://example.com/path/to/resource?q=search. type: string awsgateway_compatible: default: false description: >- An optional value that defines whether the plugin should wrap requests into the Amazon API gateway. type: boolean awsgateway_compatible_payload_version: default: '1.0' description: >- An optional value that defines which version will be used to generate the AWS API Gateway compatible payload. The default will be `1.0`. enum: - '1.0' - '2.0' type: string base64_encode_body: default: true description: An optional value that Base64-encodes the request body. type: boolean disable_https: default: false type: boolean empty_arrays_mode: default: legacy description: >- An optional value that defines whether Kong should send empty arrays (returned by Lambda function) as `[]` arrays or `{}` objects in JSON responses. The value `legacy` means Kong will send empty arrays as `{}` objects in response enum: - correct - legacy type: string forward_request_body: default: false description: >- An optional value that defines whether the request body is sent in the request_body field of the JSON-encoded request. If the body arguments can be parsed, they are sent in the separate request_body_args field of the request. type: boolean forward_request_headers: default: false description: >- An optional value that defines whether the original HTTP request headers are sent as a map in the request_headers field of the JSON-encoded request. type: boolean forward_request_method: default: false description: >- An optional value that defines whether the original HTTP request method verb is sent in the request_method field of the JSON-encoded request. type: boolean forward_request_uri: default: false description: >- An optional value that defines whether the original HTTP request URI is sent in the request_uri field of the JSON-encoded request. type: boolean function_name: description: >- The AWS Lambda function to invoke. Both function name and function ARN (including partial) are supported. type: string host: description: A string representing a host name, such as example.com. type: string invocation_type: default: RequestResponse description: >- The InvocationType to use when invoking the function. Available types are RequestResponse, Event, DryRun. enum: - DryRun - Event - RequestResponse type: string is_proxy_integration: default: false description: >- An optional value that defines whether the response format to receive from the Lambda to this format. type: boolean keepalive: default: 60000 description: >- An optional value in milliseconds that defines how long an idle connection lives before being closed. type: number log_type: default: Tail description: >- The LogType to use when invoking the function. By default, None and Tail are supported. enum: - None - Tail type: string port: default: 443 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer proxy_url: description: >- A string representing a URL, such as https://example.com/path/to/resource?q=search. type: string qualifier: description: The qualifier to use when invoking the function. type: string skip_large_bodies: default: true description: >- An optional value that defines whether Kong should send large bodies that are buffered to disk type: boolean timeout: default: 60000 description: An optional timeout in milliseconds when invoking the function. type: number unhandled_status: description: >- The response status code to use (instead of the default 200, 202, or 204) in the case of an Unhandled Function Error. maximum: 999 minimum: 100 type: integer type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object AzureFunctionsPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/AzureFunctionsPluginConfig' properties: name: const: azure-functions x-speakeasy-entity: PluginAzureFunctions AzureFunctionsPluginConfig: properties: config: properties: apikey: description: >- The apikey to access the Azure resources. If provided, it is injected as the `x-functions-key` header. type: string appname: description: The Azure app name. type: string clientid: description: >- The `clientid` to access the Azure resources. If provided, it is injected as the `x-functions-clientid` header. type: string functionname: description: Name of the Azure function to invoke. type: string hostdomain: default: azurewebsites.net description: The domain where the function resides. type: string https: default: true description: Use of HTTPS to connect with the Azure Functions server. type: boolean https_verify: default: false description: Set to `true` to authenticate the Azure Functions server. type: boolean keepalive: default: 60000 description: >- Time in milliseconds during which an idle connection to the Azure Functions server lives before being closed. type: number routeprefix: default: api description: Route prefix to use. type: string timeout: default: 600000 description: >- Timeout in milliseconds before closing a connection to the Azure Functions server. type: number required: - appname - functionname type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing protocols. format: set items: description: A string representing a protocol, such as HTTP or HTTPS. enum: - grpc - grpcs - http - https - tcp - tls - tls_passthrough - udp - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config BasicAuth: additionalProperties: false example: consumer: id: 84a73fb8-50fc-44a7-a4d5-aa17728ee83f id: b2f34145-0343-41a4-9602-4c69dec2f269 password: hashedsoopersecretvalue username: darius properties: consumer: nullable: true properties: id: type: string type: object x-foreign: true x-speakeasy-terraform-ignore: true created_at: description: Unix epoch when the resource was created. nullable: true type: integer id: description: A string representing a UUID (universally unique identifier). nullable: true type: string password: type: string writeOnly: true tags: description: A set of strings representing tags. items: description: A string representing a tag. type: string nullable: true type: array username: type: string required: - password - username type: object x-speakeasy-entity: BasicAuth BasicAuthPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/BasicAuthPluginConfig' properties: name: const: basic-auth x-speakeasy-entity: PluginBasicAuth BasicAuthPluginConfig: properties: config: properties: anonymous: description: >- An optional string (Consumer UUID or username) value to use as an “anonymous” consumer if authentication fails. If empty (default null), the request will fail with an authentication failure `4xx`. Please note that this value must refer to the Consumer `id` or `username` attribute, and **not** its `custom_id`. type: string hide_credentials: default: false description: >- An optional boolean value telling the plugin to show or hide the credential from the upstream service. If `true`, the plugin will strip the credential from the request (i.e. the `Authorization` header) before proxying it. type: boolean realm: default: service description: >- When authentication fails the plugin sends `WWW-Authenticate` header with `realm` attribute value. type: string type: object protocols: default: - grpc - grpcs - http - https - ws - wss description: >- A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls. format: set items: enum: - grpc - grpcs - http - https - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object BasicAuthWithoutParents: additionalProperties: false example: id: b2f34145-0343-41a4-9602-4c69dec2f269 password: hashedsoopersecretvalue username: darius properties: consumer: nullable: true properties: id: type: string type: object x-foreign: true x-speakeasy-terraform-ignore: true created_at: description: Unix epoch when the resource was created. nullable: true type: integer id: description: A string representing a UUID (universally unique identifier). nullable: true type: string password: type: string writeOnly: true tags: description: A set of strings representing tags. items: description: A string representing a tag. type: string nullable: true type: array username: type: string required: - password - username type: object x-speakeasy-entity: BasicAuth BotDetectionPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/BotDetectionPluginConfig' properties: name: const: bot-detection x-speakeasy-entity: PluginBotDetection BotDetectionPluginConfig: properties: config: properties: allow: default: [] description: >- An array of regular expressions that should be allowed. The regular expressions will be checked against the `User-Agent` header. items: type: string type: array deny: default: [] description: >- An array of regular expressions that should be denied. The regular expressions will be checked against the `User-Agent` header. items: type: string type: array type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object CACertificate: additionalProperties: false description: >- A CA certificate object represents a trusted CA. These objects are used by Kong to verify the validity of a client or server certificate. example: cert: |- -----BEGIN CERTIFICATE----- certificate-content -----END CERTIFICATE----- cert_digest: 9b8aaf19a276885f6c8a6bc48a30700fdb3a351d8b05374d153bfb7b178e2a9f created_at: 1706598432 id: b2f34145-0343-41a4-9602-4c69dec2f260 tags: - trusted - api properties: cert: description: PEM-encoded public certificate of the CA. type: string cert_digest: description: >- SHA256 hex digest of the public certificate. This field is read-only and it cannot be set by the caller, the value is automatically computed. nullable: true type: string created_at: description: Unix epoch when the resource was created. nullable: true type: integer id: description: A string representing a UUID (universally unique identifier). nullable: true type: string tags: description: >- An optional set of strings associated with the Certificate for grouping and filtering. items: description: A string representing a tag. type: string nullable: true type: array updated_at: description: Unix epoch when the resource was last updated. nullable: true type: integer required: - cert type: object x-speakeasy-entity: CACertificate CanaryPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/CanaryPluginConfig' properties: name: const: canary x-speakeasy-entity: PluginCanary CanaryPluginConfig: properties: config: properties: canary_by_header_name: description: A string representing an HTTP header name. type: string duration: default: 3600 description: The duration of the canary release in seconds. type: number groups: description: The groups allowed to access the canary release. items: type: string type: array hash: default: consumer description: >- Hash algorithm to be used for canary release. * `consumer`: The hash will be based on the consumer. * `ip`: The hash will be based on the client IP address. * `none`: No hash will be applied. * `allow`: Allows the specified groups to access the canary release. * `deny`: Denies the specified groups from accessing the canary release. * `header`: The hash will be based on the specified header value. enum: - allow - consumer - deny - header - ip - none type: string hash_header: description: A string representing an HTTP header name. type: string percentage: description: The percentage of traffic to be routed to the canary release. maximum: 100 minimum: 0 type: number start: description: >- Future time in seconds since epoch, when the canary release will start. Ignored when `percentage` is set, or when using `allow` or `deny` in `hash`. type: number steps: default: 1000 description: The number of steps for the canary release. minimum: 1 type: number upstream_fallback: default: false description: >- Specifies whether to fallback to the upstream server if the canary release fails. type: boolean upstream_host: description: A string representing a host name, such as example.com. type: string upstream_port: description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer upstream_uri: description: >- The URI of the upstream server to be used for the canary release. minLength: 1 type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object Certificate: additionalProperties: false description: >- A certificate object represents a public certificate, and can be optionally paired with the corresponding private key. These objects are used by Kong to handle SSL/TLS termination for encrypted requests, or for use as a trusted CA store when validating peer certificate of client/service. Certificates are optionally associated with SNI objects to tie a cert/key pair to one or more hostnames. If intermediate certificates are required in addition to the main certificate, they should be concatenated together into one string according to the following order: main certificate on the top, followed by any intermediates. example: cert: |- -----BEGIN CERTIFICATE----- certificate-content -----END CERTIFICATE----- id: b2f34145-0343-41a4-9602-4c69dec2f269 key: |- -----BEGIN PRIVATE KEY----- private-key-content -----END PRIVATE KEY----- properties: cert: description: >- PEM-encoded public certificate chain of the SSL key pair. This field is _referenceable_, which means it can be securely stored as a [secret](/gateway/latest/plan-and-deploy/security/secrets-management/getting-started) in a vault. References must follow a [specific format](/gateway/latest/plan-and-deploy/security/secrets-management/reference-format). type: string cert_alt: description: >- PEM-encoded public certificate chain of the alternate SSL key pair. This should only be set if you have both RSA and ECDSA types of certificate available and would like Kong to prefer serving using ECDSA certs when client advertises support for it. This field is _referenceable_, which means it can be securely stored as a [secret](/gateway/latest/plan-and-deploy/security/secrets-management/getting-started) in a vault. References must follow a [specific format](/gateway/latest/plan-and-deploy/security/secrets-management/reference-format). nullable: true type: string created_at: description: Unix epoch when the resource was created. nullable: true type: integer id: description: A string representing a UUID (universally unique identifier). nullable: true type: string key: description: >- PEM-encoded private key of the SSL key pair. This field is _referenceable_, which means it can be securely stored as a [secret](/gateway/latest/plan-and-deploy/security/secrets-management/getting-started) in a vault. References must follow a [specific format](/gateway/latest/plan-and-deploy/security/secrets-management/reference-format). type: string key_alt: description: >- PEM-encoded private key of the alternate SSL key pair. This should only be set if you have both RSA and ECDSA types of certificate available and would like Kong to prefer serving using ECDSA certs when client advertises support for it. This field is _referenceable_, which means it can be securely stored as a [secret](/gateway/latest/plan-and-deploy/security/secrets-management/getting-started) in a vault. References must follow a [specific format](/gateway/latest/plan-and-deploy/security/secrets-management/reference-format). nullable: true type: string snis: items: description: A string representing a wildcard host name, such as *.example.com. type: string nullable: true type: array tags: description: >- An optional set of strings associated with the Certificate for grouping and filtering. items: description: A string representing a tag. type: string nullable: true type: array updated_at: description: Unix epoch when the resource was last updated. nullable: true type: integer required: - cert - key type: object x-speakeasy-entity: Certificate ConfluentConsumePlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/ConfluentConsumePluginConfig' properties: name: const: confluent-consume x-speakeasy-entity: PluginConfluentConsume ConfluentConsumePluginConfig: properties: config: properties: auto_offset_reset: default: latest description: >- The offset to start from when there is no initial offset in the consumer group. enum: - earliest - latest type: string bootstrap_servers: description: >- Set of bootstrap brokers in a `{host: host, port: port}` list format. items: properties: host: description: A string representing a host name, such as example.com. type: string port: description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer required: - host - port type: object type: array cluster_api_key: description: Username/Apikey for SASL authentication. type: string cluster_api_secret: description: Password/ApiSecret for SASL authentication. type: string cluster_name: description: >- An identifier for the Kafka cluster. By default, this field generates a random string. You can also set your own custom cluster identifier. If more than one Kafka plugin is configured without a `cluster_name` (that is, if the default autogenerated value is removed), these plugins will use the same producer, and by extension, the same cluster. Logs will be sent to the leader of the cluster. type: string commit_strategy: default: auto description: The strategy to use for committing offsets. enum: - auto - 'off' type: string confluent_cloud_api_key: description: >- Apikey for authentication with Confluent Cloud. This allows for management tasks such as creating topics, ACLs, etc. type: string confluent_cloud_api_secret: description: The corresponding secret for the Confluent Cloud API key. type: string dlq_topic: description: The topic to use for the Dead Letter Queue. type: string enable_dlq: description: >- Enables Dead Letter Queue. When enabled, if the message doesn't conform to the schema (from Schema Registry) or there's an error in the `message_by_lua_functions`, it will be forwarded to `dlq_topic` that can be processed later. type: boolean keepalive: default: 60000 description: Keepalive timeout in milliseconds. type: integer keepalive_enabled: default: false type: boolean message_by_lua_functions: description: >- The Lua functions that manipulates the message being sent to the client. items: type: string type: array message_deserializer: default: noop description: The deserializer to use for the consumed messages. enum: - json - noop type: string mode: default: http-get description: The mode of operation for the plugin. enum: - http-get - server-sent-events - websocket type: string schema_registry: description: The plugin-global schema registry configuration. properties: confluent: properties: authentication: properties: basic: properties: password: type: string username: type: string required: - password - username type: object mode: default: none description: Authentication mode to use with the schema registry. enum: - basic - none - oauth2 type: string oauth2: properties: audience: default: [] description: >- List of audiences passed to the IdP when obtaining a new token. items: type: string type: array client_id: description: >- The client ID for the application registration in the IdP. type: string client_secret: description: >- The client secret for the application registration in the IdP. type: string grant_type: default: client_credentials description: The OAuth grant type to be used. enum: - client_credentials - password type: string password: description: >- The password to use if `config.oauth.grant_type` is set to `password`. type: string scopes: default: - openid description: >- List of scopes to request from the IdP when obtaining a new token. items: type: string type: array token_endpoint: description: The token endpoint URI. type: string token_headers: additionalProperties: true description: >- Extra headers to be passed in the token endpoint request. type: object token_post_args: additionalProperties: true description: >- Extra post arguments to be passed in the token endpoint request. type: object username: description: >- The username to use if `config.oauth.grant_type` is set to `password`. type: string required: - token_endpoint type: object oauth2_client: properties: auth_method: default: client_secret_post description: >- The authentication method used in client requests to the IdP. Supported values are: `client_secret_basic` to send `client_id` and `client_secret` in the `Authorization: Basic` header, `client_secret_post` to send `client_id` and `client_secret` as part of the request body, or `client_secret_jwt` to send a JWT signed with the `client_secret` using the client assertion as part of the body. enum: - client_secret_basic - client_secret_jwt - client_secret_post - none type: string client_secret_jwt_alg: default: HS512 description: >- The algorithm to use with JWT when using `client_secret_jwt` authentication. enum: - HS256 - HS512 type: string http_proxy: description: >- The proxy to use when making HTTP requests to the IdP. type: string http_proxy_authorization: description: >- The `Proxy-Authorization` header value to be used with `http_proxy`. type: string http_version: default: 1.1 description: >- The HTTP version used for requests made by this plugin. Supported values: `1.1` for HTTP 1.1 and `1.0` for HTTP 1.0. type: number https_proxy: description: >- The proxy to use when making HTTPS requests to the IdP. type: string https_proxy_authorization: description: >- The `Proxy-Authorization` header value to be used with `https_proxy`. type: string keep_alive: default: true description: Whether to use keepalive connections to the IdP. type: boolean no_proxy: description: >- A comma-separated list of hosts that should not be proxied. type: string ssl_verify: default: false description: >- Whether to verify the certificate presented by the IdP when using HTTPS. type: boolean timeout: default: 10000 description: >- Network I/O timeout for requests to the IdP in milliseconds. maximum: 2147483646 minimum: 0 type: integer type: object type: object ssl_verify: default: true description: >- Set to false to disable SSL certificate verification when connecting to the schema registry. type: boolean ttl: description: The TTL in seconds for the schema registry cache. maximum: 3600 minimum: 0 type: number url: description: The URL of the schema registry. type: string type: object type: object timeout: default: 10000 description: Socket timeout in milliseconds. type: integer topics: description: >- The Kafka topics and their configuration you want to consume from. items: properties: name: type: string schema_registry: description: The plugin-global schema registry configuration. properties: confluent: properties: authentication: properties: basic: properties: password: type: string username: type: string required: - password - username type: object mode: default: none description: >- Authentication mode to use with the schema registry. enum: - basic - none - oauth2 type: string oauth2: properties: audience: default: [] description: >- List of audiences passed to the IdP when obtaining a new token. items: type: string type: array client_id: description: >- The client ID for the application registration in the IdP. type: string client_secret: description: >- The client secret for the application registration in the IdP. type: string grant_type: default: client_credentials description: The OAuth grant type to be used. enum: - client_credentials - password type: string password: description: >- The password to use if `config.oauth.grant_type` is set to `password`. type: string scopes: default: - openid description: >- List of scopes to request from the IdP when obtaining a new token. items: type: string type: array token_endpoint: description: The token endpoint URI. type: string token_headers: additionalProperties: true description: >- Extra headers to be passed in the token endpoint request. type: object token_post_args: additionalProperties: true description: >- Extra post arguments to be passed in the token endpoint request. type: object username: description: >- The username to use if `config.oauth.grant_type` is set to `password`. type: string required: - token_endpoint type: object oauth2_client: properties: auth_method: default: client_secret_post description: >- The authentication method used in client requests to the IdP. Supported values are: `client_secret_basic` to send `client_id` and `client_secret` in the `Authorization: Basic` header, `client_secret_post` to send `client_id` and `client_secret` as part of the request body, or `client_secret_jwt` to send a JWT signed with the `client_secret` using the client assertion as part of the body. enum: - client_secret_basic - client_secret_jwt - client_secret_post - none type: string client_secret_jwt_alg: default: HS512 description: >- The algorithm to use with JWT when using `client_secret_jwt` authentication. enum: - HS256 - HS512 type: string http_proxy: description: >- The proxy to use when making HTTP requests to the IdP. type: string http_proxy_authorization: description: >- The `Proxy-Authorization` header value to be used with `http_proxy`. type: string http_version: default: 1.1 description: >- The HTTP version used for requests made by this plugin. Supported values: `1.1` for HTTP 1.1 and `1.0` for HTTP 1.0. type: number https_proxy: description: >- The proxy to use when making HTTPS requests to the IdP. type: string https_proxy_authorization: description: >- The `Proxy-Authorization` header value to be used with `https_proxy`. type: string keep_alive: default: true description: >- Whether to use keepalive connections to the IdP. type: boolean no_proxy: description: >- A comma-separated list of hosts that should not be proxied. type: string ssl_verify: default: false description: >- Whether to verify the certificate presented by the IdP when using HTTPS. type: boolean timeout: default: 10000 description: >- Network I/O timeout for requests to the IdP in milliseconds. maximum: 2147483646 minimum: 0 type: integer type: object type: object ssl_verify: default: true description: >- Set to false to disable SSL certificate verification when connecting to the schema registry. type: boolean ttl: description: The TTL in seconds for the schema registry cache. maximum: 3600 minimum: 0 type: number url: description: The URL of the schema registry. type: string type: object type: object required: - name type: object minLength: 1 type: array required: - cluster_api_key - cluster_api_secret - topics type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https - ws - wss description: >- A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls. format: set items: enum: - grpc - grpcs - http - https - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config ConfluentPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/ConfluentPluginConfig' properties: name: const: confluent x-speakeasy-entity: PluginConfluent ConfluentPluginConfig: properties: config: properties: allowed_topics: description: >- The list of allowed topic names to which messages can be sent. The default topic configured in the `topic` field is always allowed, regardless of its inclusion in `allowed_topics`. items: type: string type: array bootstrap_servers: description: >- Set of bootstrap brokers in a `{host: host, port: port}` list format. items: properties: host: description: A string representing a host name, such as example.com. type: string port: description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer required: - host - port type: object type: array cluster_api_key: description: Username/Apikey for SASL authentication. type: string cluster_api_secret: description: Password/ApiSecret for SASL authentication. type: string cluster_name: description: >- An identifier for the Kafka cluster. By default, this field generates a random string. You can also set your own custom cluster identifier. If more than one Kafka plugin is configured without a `cluster_name` (that is, if the default autogenerated value is removed), these plugins will use the same producer, and by extension, the same cluster. Logs will be sent to the leader of the cluster. type: string confluent_cloud_api_key: description: >- Apikey for authentication with Confluent Cloud. This allows for management tasks such as creating topics, ACLs, etc. type: string confluent_cloud_api_secret: description: The corresponding secret for the Confluent Cloud API key. type: string forward_body: default: true description: >- Include the request body in the message. At least one of these must be true: `forward_method`, `forward_uri`, `forward_headers`, `forward_body`. type: boolean forward_headers: default: false description: >- Include the request headers in the message. At least one of these must be true: `forward_method`, `forward_uri`, `forward_headers`, `forward_body`. type: boolean forward_method: default: false description: >- Include the request method in the message. At least one of these must be true: `forward_method`, `forward_uri`, `forward_headers`, `forward_body`. type: boolean forward_uri: default: false description: >- Include the request URI and URI arguments (as in, query arguments) in the message. At least one of these must be true: `forward_method`, `forward_uri`, `forward_headers`, `forward_body`. type: boolean keepalive: default: 60000 description: Keepalive timeout in milliseconds. type: integer keepalive_enabled: default: false type: boolean key_query_arg: description: >- The request query parameter name that contains the Kafka message key. If specified, messages with the same key will be sent to the same Kafka partition, ensuring consistent ordering. type: string message_by_lua_functions: description: >- The Lua functions that manipulates the message being sent to the Kafka topic. items: type: string type: array producer_async: default: true description: Flag to enable asynchronous mode. type: boolean producer_async_buffering_limits_messages_in_memory: default: 50000 description: >- Maximum number of messages that can be buffered in memory in asynchronous mode. type: integer producer_async_flush_timeout: default: 1000 description: >- Maximum time interval in milliseconds between buffer flushes in asynchronous mode. type: integer producer_request_acks: default: 1 description: >- The number of acknowledgments the producer requires the leader to have received before considering a request complete. Allowed values: 0 for no acknowledgments; 1 for only the leader; and -1 for the full ISR (In-Sync Replica set). enum: - -1 - 0 - 1 type: integer producer_request_limits_bytes_per_request: default: 1048576 description: Maximum size of a Produce request in bytes. type: integer producer_request_limits_messages_per_request: default: 200 description: >- Maximum number of messages to include into a single producer request. type: integer producer_request_retries_backoff_timeout: default: 100 description: Backoff interval between retry attempts in milliseconds. type: integer producer_request_retries_max_attempts: default: 10 description: Maximum number of retry attempts per single Produce request. type: integer producer_request_timeout: default: 2000 description: Time to wait for a Produce response in milliseconds. type: integer schema_registry: description: >- The plugin-global schema registry configuration. This can be overwritten by the topic configuration. properties: confluent: properties: authentication: properties: basic: properties: password: type: string username: type: string required: - password - username type: object mode: default: none description: Authentication mode to use with the schema registry. enum: - basic - none - oauth2 type: string oauth2: properties: audience: default: [] description: >- List of audiences passed to the IdP when obtaining a new token. items: type: string type: array client_id: description: >- The client ID for the application registration in the IdP. type: string client_secret: description: >- The client secret for the application registration in the IdP. type: string grant_type: default: client_credentials description: The OAuth grant type to be used. enum: - client_credentials - password type: string password: description: >- The password to use if `config.oauth.grant_type` is set to `password`. type: string scopes: default: - openid description: >- List of scopes to request from the IdP when obtaining a new token. items: type: string type: array token_endpoint: description: The token endpoint URI. type: string token_headers: additionalProperties: true description: >- Extra headers to be passed in the token endpoint request. type: object token_post_args: additionalProperties: true description: >- Extra post arguments to be passed in the token endpoint request. type: object username: description: >- The username to use if `config.oauth.grant_type` is set to `password`. type: string required: - token_endpoint type: object oauth2_client: properties: auth_method: default: client_secret_post description: >- The authentication method used in client requests to the IdP. Supported values are: `client_secret_basic` to send `client_id` and `client_secret` in the `Authorization: Basic` header, `client_secret_post` to send `client_id` and `client_secret` as part of the request body, or `client_secret_jwt` to send a JWT signed with the `client_secret` using the client assertion as part of the body. enum: - client_secret_basic - client_secret_jwt - client_secret_post - none type: string client_secret_jwt_alg: default: HS512 description: >- The algorithm to use with JWT when using `client_secret_jwt` authentication. enum: - HS256 - HS512 type: string http_proxy: description: >- The proxy to use when making HTTP requests to the IdP. type: string http_proxy_authorization: description: >- The `Proxy-Authorization` header value to be used with `http_proxy`. type: string http_version: default: 1.1 description: >- The HTTP version used for requests made by this plugin. Supported values: `1.1` for HTTP 1.1 and `1.0` for HTTP 1.0. type: number https_proxy: description: >- The proxy to use when making HTTPS requests to the IdP. type: string https_proxy_authorization: description: >- The `Proxy-Authorization` header value to be used with `https_proxy`. type: string keep_alive: default: true description: Whether to use keepalive connections to the IdP. type: boolean no_proxy: description: >- A comma-separated list of hosts that should not be proxied. type: string ssl_verify: default: false description: >- Whether to verify the certificate presented by the IdP when using HTTPS. type: boolean timeout: default: 10000 description: >- Network I/O timeout for requests to the IdP in milliseconds. maximum: 2147483646 minimum: 0 type: integer type: object type: object key_schema: properties: schema_version: description: >- The schema version to use for serialization/deserialization. Use 'latest' to always fetch the most recent version. type: string subject_name: description: The name of the subject type: string type: object ssl_verify: default: true description: >- Set to false to disable SSL certificate verification when connecting to the schema registry. type: boolean ttl: description: The TTL in seconds for the schema registry cache. maximum: 3600 minimum: 0 type: number url: description: The URL of the schema registry. type: string value_schema: properties: schema_version: description: >- The schema version to use for serialization/deserialization. Use 'latest' to always fetch the most recent version. type: string subject_name: description: The name of the subject type: string type: object type: object type: object timeout: default: 10000 description: Socket timeout in milliseconds. type: integer topic: description: >- The default Kafka topic to publish to if the query parameter defined in the `topics_query_arg` does not exist in the request type: string topics_query_arg: description: >- The request query parameter name that contains the topics to publish to type: string required: - cluster_api_key - cluster_api_secret - topic type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config Consumer: additionalProperties: false description: >- The Consumer object represents a consumer - or a user - of a Service. You can either rely on Kong as the primary datastore, or you can map the consumer list with your database to keep consistency between Kong and your existing primary datastore. example: custom_id: '4200' id: 8a388226-80e8-4027-a486-25e4f7db5d21 tags: - silver-tier username: bob-the-builder properties: created_at: description: Unix epoch when the resource was created. nullable: true type: integer custom_id: description: >- Field for storing an existing unique ID for the Consumer - useful for mapping Kong with users in your existing database. You must send either this field or `username` with the request. nullable: true type: string id: description: A string representing a UUID (universally unique identifier). nullable: true type: string tags: description: >- An optional set of strings associated with the Consumer for grouping and filtering. items: description: A string representing a tag. type: string nullable: true type: array updated_at: description: Unix epoch when the resource was last updated. nullable: true type: integer username: description: >- The unique username of the Consumer. You must send either this field or `custom_id` with the request. nullable: true type: string type: object x-speakeasy-entity: Consumer ConsumerGroup: additionalProperties: false properties: created_at: description: Unix epoch when the resource was created. nullable: true type: integer id: description: A string representing a UUID (universally unique identifier). nullable: true type: string name: description: The name of the consumer group. type: string tags: description: A set of strings representing tags. items: description: A string representing a tag. type: string nullable: true type: array updated_at: description: Unix epoch when the resource was last updated. nullable: true type: integer required: - name type: object x-speakeasy-entity: ConsumerGroup ConsumerGroupInsideWrapper: properties: consumer_group: $ref: '#/components/schemas/ConsumerGroup' type: object CorrelationIdPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/CorrelationIdPluginConfig' properties: name: const: correlation-id x-speakeasy-entity: PluginCorrelationId CorrelationIdPluginConfig: properties: config: properties: echo_downstream: default: false description: Whether to echo the header back to downstream (the client). type: boolean generator: default: uuid#counter description: >- The generator to use for the correlation ID. Accepted values are `uuid`, `uuid#counter`, and `tracker`. See [Generators](#generators). enum: - tracker - uuid - uuid#counter type: string header_name: default: Kong-Request-ID description: The HTTP header name to use for the correlation ID. type: string type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object CorsPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/CorsPluginConfig' properties: name: const: cors x-speakeasy-entity: PluginCors CorsPluginConfig: properties: config: properties: allow_origin_absent: default: true description: >- A boolean value that skip cors response headers when origin header of request is empty type: boolean credentials: default: false description: >- Flag to determine whether the `Access-Control-Allow-Credentials` header should be sent with `true` as the value. type: boolean exposed_headers: description: >- Value for the `Access-Control-Expose-Headers` header. If not specified, no custom headers are exposed. items: type: string type: array headers: description: Value for the `Access-Control-Allow-Headers` header. items: type: string type: array max_age: description: >- Indicates how long the results of the preflight request can be cached, in `seconds`. type: number methods: default: - CONNECT - DELETE - GET - HEAD - OPTIONS - PATCH - POST - PUT - TRACE description: >- 'Value for the `Access-Control-Allow-Methods` header. Available options include `GET`, `HEAD`, `PUT`, `PATCH`, `POST`, `DELETE`, `OPTIONS`, `TRACE`, `CONNECT`. By default, all options are allowed.' items: enum: - CONNECT - DELETE - GET - HEAD - OPTIONS - PATCH - POST - PUT - TRACE type: string type: array origins: description: >- List of allowed domains for the `Access-Control-Allow-Origin` header. If you want to allow all origins, add `*` as a single value to this configuration field. The accepted values can either be flat strings or PCRE regexes. NOTE: If you don't specify any allowed domains, all origins are allowed. items: type: string type: array preflight_continue: default: false description: >- A boolean value that instructs the plugin to proxy the `OPTIONS` preflight request to the Upstream service. type: boolean private_network: default: false description: >- Flag to determine whether the `Access-Control-Allow-Private-Network` header should be sent with `true` as the value. type: boolean type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https minLength: 1 type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object DatadogPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/DatadogPluginConfig' properties: name: const: datadog x-speakeasy-entity: PluginDatadog DatadogPluginConfig: properties: config: properties: consumer_tag: default: consumer description: String to be attached as tag of the consumer. type: string flush_timeout: description: >- Optional time in seconds. If `queue_size` > 1, this is the max idle time before sending a log with less than `queue_size` records. type: number host: default: localhost description: A string representing a host name, such as example.com. type: string metrics: description: List of metrics to be logged. items: properties: consumer_identifier: description: Authenticated user detail enum: - consumer_id - custom_id - username type: string name: description: Datadog metric’s name enum: - kong_latency - latency - request_count - request_size - response_size - upstream_latency type: string sample_rate: description: Sampling rate maximum: 1 minimum: 0 type: number stat_type: description: Determines what sort of event the metric represents enum: - counter - distribution - gauge - histogram - meter - set - timer type: string tags: description: List of tags items: type: string type: array required: - name - stat_type type: object type: array port: default: 8125 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer prefix: default: kong description: String to be attached as a prefix to a metric's name. type: string queue: properties: concurrency_limit: default: 1 description: >- The number of of queue delivery timers. -1 indicates unlimited. enum: - -1 - 1 type: integer initial_retry_delay: default: 0.01 description: >- Time in seconds before the initial retry is made for a failing batch. maximum: 1000000 minimum: 0.001 type: number max_batch_size: default: 1 description: Maximum number of entries that can be processed at a time. maximum: 1000000 minimum: 1 type: integer max_bytes: description: >- Maximum number of bytes that can be waiting on a queue, requires string content. type: integer max_coalescing_delay: default: 1 description: >- Maximum number of (fractional) seconds to elapse after the first entry was queued before the queue starts calling the handler. maximum: 3600 minimum: 0 type: number max_entries: default: 10000 description: Maximum number of entries that can be waiting on the queue. maximum: 1000000 minimum: 1 type: integer max_retry_delay: default: 60 description: >- Maximum time in seconds between retries, caps exponential backoff. maximum: 1000000 minimum: 0.001 type: number max_retry_time: default: 60 description: >- Time in seconds before the queue gives up calling a failed handler for a batch. type: number type: object queue_size: description: >- Maximum number of log entries to be sent on each message to the upstream server. type: integer retry_count: description: >- Number of times to retry when sending data to the upstream server. type: integer service_name_tag: default: name description: String to be attached as the name of the service. type: string status_tag: default: status description: String to be attached as the tag of the HTTP status. type: string type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing protocols. format: set items: description: A string representing a protocol, such as HTTP or HTTPS. enum: - grpc - grpcs - http - https - tcp - tls - tls_passthrough - udp - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object DatakitPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/DatakitPluginConfig' properties: name: const: datakit x-speakeasy-entity: PluginDatakit DatakitPluginConfig: properties: config: properties: debug: default: false type: boolean nodes: items: description: datakit nodes properties: name: description: >- A label that uniquely identifies the node within the plugin configuration so that it can be used for input/output connections. Must be valid `snake_case` or `kebab-case`. maxLength: 255 minLength: 1 type: string type: enum: - branch - cache - call - exit - jq - property - static type: string required: - name - type type: object maxLength: 64 minLength: 1 type: array resources: properties: cache: properties: memory: properties: dictionary_name: default: kong_db_cache description: >- The name of the shared dictionary in which to hold cache entities when the memory strategy is selected. Note that this dictionary currently must be defined manually in the Kong Nginx template. type: string type: object redis: properties: cluster_max_redirections: default: 5 description: Maximum retry attempts for redirection. type: integer cluster_nodes: description: >- Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element. items: properties: ip: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array connect_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer connection_is_proxied: default: false description: >- If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address. type: boolean database: default: 0 description: >- Database to use for the Redis connection when using the `redis` strategy type: integer host: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string keepalive_backlog: description: >- Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`. maximum: 2147483646 minimum: 0 type: integer keepalive_pool_size: default: 256 description: >- The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn't specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low. maximum: 2147483646 minimum: 1 type: integer password: description: >- Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer read_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer send_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer sentinel_master: description: >- Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel. type: string sentinel_nodes: description: >- Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element. items: properties: host: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array sentinel_password: description: >- Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels. type: string sentinel_role: description: >- Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel. enum: - any - master - slave type: string sentinel_username: description: >- Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won't be performed. This requires Redis v6.2.0+. type: string server_name: description: >- A string representing an SNI (server name indication) value for TLS. type: string ssl: default: false description: If set to true, uses SSL to connect to Redis. type: boolean ssl_verify: default: false description: >- If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly. type: boolean username: description: >- Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`. type: string type: object strategy: description: >- The backing data store in which to hold cache entities. Accepted values are: `memory` and `redis`. enum: - memory - redis type: string type: object vault: additionalProperties: true maxLength: 64 minLength: 1 type: object type: object required: - nodes type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config DegraphqlPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/DegraphqlPluginConfig' properties: name: const: degraphql x-speakeasy-entity: PluginDegraphql DegraphqlPluginConfig: properties: config: properties: graphql_server_path: default: /graphql description: The GraphQL endpoint serve path type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object ExitTransformerPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/ExitTransformerPluginConfig' properties: name: const: exit-transformer x-speakeasy-entity: PluginExitTransformer ExitTransformerPluginConfig: properties: config: properties: functions: items: type: string type: array handle_unexpected: default: false description: >- Determines whether to handle unexpected errors by transforming their responses. type: boolean handle_unknown: default: false description: >- Determines whether to handle unknown status codes by transforming their responses. type: boolean required: - functions type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config FileLogPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/FileLogPluginConfig' properties: name: const: file-log x-speakeasy-entity: PluginFileLog FileLogPluginConfig: properties: config: properties: custom_fields_by_lua: additionalProperties: type: string description: Lua code as a key-value map type: object path: description: >- The file path of the output log file. The plugin creates the log file if it doesn't exist yet. type: string reopen: default: false description: >- Determines whether the log file is closed and reopened on every request. type: boolean required: - path type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing protocols. format: set items: description: A string representing a protocol, such as HTTP or HTTPS. enum: - grpc - grpcs - http - https - tcp - tls - tls_passthrough - udp - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config ForwardProxyPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/ForwardProxyPluginConfig' properties: name: const: forward-proxy x-speakeasy-entity: PluginForwardProxy ForwardProxyPluginConfig: properties: config: properties: auth_password: description: >- The password to authenticate with, if the forward proxy is protected by basic authentication. type: string auth_username: description: >- The username to authenticate with, if the forward proxy is protected by basic authentication. type: string http_proxy_host: description: A string representing a host name, such as example.com. type: string http_proxy_port: description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer https_proxy_host: description: A string representing a host name, such as example.com. type: string https_proxy_port: description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer https_verify: default: false description: >- Whether the server certificate will be verified according to the CA certificates specified in lua_ssl_trusted_certificate. type: boolean proxy_scheme: default: http description: >- The proxy scheme to use when connecting. Only `http` is supported. enum: - http type: string x_headers: default: append description: Determines how to handle headers when forwarding the request. enum: - append - delete - transparent type: string type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object GatewayUnauthorizedError: properties: message: type: string status: type: integer required: - message - status type: object GraphqlProxyCacheAdvancedPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/GraphqlProxyCacheAdvancedPluginConfig' properties: name: const: graphql-proxy-cache-advanced x-speakeasy-entity: PluginGraphqlProxyCacheAdvanced GraphqlProxyCacheAdvancedPluginConfig: properties: config: properties: bypass_on_err: default: false description: >- Unhandled errors while trying to retrieve a cache entry (such as redis down) are resolved with `Bypass`, with the request going upstream. type: boolean cache_ttl: default: 300 description: >- TTL in seconds of cache entities. Must be a value greater than 0. type: integer memory: properties: dictionary_name: default: kong_db_cache description: >- The name of the shared dictionary in which to hold cache entities when the memory strategy is selected. This dictionary currently must be defined manually in the Kong Nginx template. type: string type: object redis: properties: cluster_max_redirections: default: 5 description: Maximum retry attempts for redirection. type: integer cluster_nodes: description: >- Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element. items: properties: ip: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array connect_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer connection_is_proxied: default: false description: >- If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address. type: boolean database: default: 0 description: >- Database to use for the Redis connection when using the `redis` strategy type: integer host: default: 127.0.0.1 description: A string representing a host name, such as example.com. type: string keepalive_backlog: description: >- Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`. maximum: 2147483646 minimum: 0 type: integer keepalive_pool_size: default: 256 description: >- The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn't specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low. maximum: 2147483646 minimum: 1 type: integer password: description: >- Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer read_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer send_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer sentinel_master: description: >- Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel. type: string sentinel_nodes: description: >- Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element. items: properties: host: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array sentinel_password: description: >- Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels. type: string sentinel_role: description: >- Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel. enum: - any - master - slave type: string sentinel_username: description: >- Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won't be performed. This requires Redis v6.2.0+. type: string server_name: description: >- A string representing an SNI (server name indication) value for TLS. type: string ssl: default: false description: If set to true, uses SSL to connect to Redis. type: boolean ssl_verify: default: false description: >- If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly. type: boolean username: description: >- Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`. type: string type: object strategy: default: memory description: >- The backing data store in which to hold cached entities. Accepted value is `memory`. enum: - memory - redis type: string vary_headers: description: >- Relevant headers considered for the cache key. If undefined, none of the headers are taken into consideration. items: type: string type: array type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object GraphqlRateLimitingAdvancedPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/GraphqlRateLimitingAdvancedPluginConfig' properties: name: const: graphql-rate-limiting-advanced x-speakeasy-entity: PluginGraphqlRateLimitingAdvanced GraphqlRateLimitingAdvancedPluginConfig: properties: config: properties: cost_strategy: default: default description: >- Strategy to use to evaluate query costs. Either `default` or `node_quantifier`. enum: - default - node_quantifier type: string dictionary_name: default: kong_rate_limiting_counters description: >- The shared dictionary where counters will be stored until the next sync cycle. type: string hide_client_headers: default: false description: >- Optionally hide informative response headers. Available options: `true` or `false`. type: boolean identifier: default: consumer description: >- How to define the rate limit key. Can be `ip`, `credential`, `consumer`. enum: - consumer - credential - ip type: string limit: description: One or more requests-per-window limits to apply. items: type: number type: array max_cost: default: 0 description: A defined maximum cost per query. 0 means unlimited. type: number namespace: description: >- The rate limiting namespace to use for this plugin instance. This namespace is used to share rate limiting counters across different instances. If it is not provided, a random UUID is generated. NOTE: For the plugin instances sharing the same namespace, all the configurations that are required for synchronizing counters, e.g. `strategy`, `redis`, `sync_rate`, `window_size`, `dictionary_name`, need to be the same. type: string pass_all_downstream_headers: default: false description: >- pass all downstream headers to the upstream graphql server in introspection request type: boolean redis: properties: cluster_max_redirections: default: 5 description: Maximum retry attempts for redirection. type: integer cluster_nodes: description: >- Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element. items: properties: ip: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array connect_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer connection_is_proxied: default: false description: >- If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address. type: boolean database: default: 0 description: >- Database to use for the Redis connection when using the `redis` strategy type: integer host: default: 127.0.0.1 description: A string representing a host name, such as example.com. type: string keepalive_backlog: description: >- Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`. maximum: 2147483646 minimum: 0 type: integer keepalive_pool_size: default: 256 description: >- The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn't specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low. maximum: 2147483646 minimum: 1 type: integer password: description: >- Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer read_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer send_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer sentinel_master: description: >- Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel. type: string sentinel_nodes: description: >- Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element. items: properties: host: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array sentinel_password: description: >- Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels. type: string sentinel_role: description: >- Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel. enum: - any - master - slave type: string sentinel_username: description: >- Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won't be performed. This requires Redis v6.2.0+. type: string server_name: description: >- A string representing an SNI (server name indication) value for TLS. type: string ssl: default: false description: If set to true, uses SSL to connect to Redis. type: boolean ssl_verify: default: false description: >- If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly. type: boolean username: description: >- Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`. type: string type: object score_factor: default: 1 description: >- A scoring factor to multiply (or divide) the cost. The `score_factor` must always be greater than 0. type: number strategy: default: cluster description: >- The rate-limiting strategy to use for retrieving and incrementing the limits. enum: - cluster - redis type: string sync_rate: description: >- How often to sync counter data to the central data store. A value of 0 results in synchronous behavior; a value of -1 ignores sync behavior entirely and only stores counters in node memory. A value greater than 0 syncs the counters in that many number of seconds. type: number window_size: description: >- One or more window sizes to apply a limit to (defined in seconds). items: type: number type: array window_type: default: sliding description: Sets the time window to either `sliding` or `fixed`. enum: - fixed - sliding type: string required: - limit - sync_rate - window_size type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config GrpcGatewayPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/GrpcGatewayPluginConfig' properties: name: const: grpc-gateway x-speakeasy-entity: PluginGrpcGateway GrpcGatewayPluginConfig: properties: config: properties: proto: description: Describes the gRPC types and methods. type: string type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing protocols. format: set items: description: A string representing a protocol, such as HTTP or HTTPS. enum: - grpc - grpcs - http - https - tcp - tls - tls_passthrough - udp - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object GrpcWebPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/GrpcWebPluginConfig' properties: name: const: grpc-web x-speakeasy-entity: PluginGrpcWeb GrpcWebPluginConfig: properties: config: properties: allow_origin_header: default: '*' description: >- The value of the `Access-Control-Allow-Origin` header in the response to the gRPC-Web client. type: string pass_stripped_path: description: >- If set to `true` causes the plugin to pass the stripped request path to the upstream gRPC service. type: boolean proto: description: >- If present, describes the gRPC types and methods. Required to support payload transcoding. When absent, the web client must use application/grpw-web+proto content. type: string type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing protocols. format: set items: description: A string representing a protocol, such as HTTP or HTTPS. enum: - grpc - grpcs - http - https - tcp - tls - tls_passthrough - udp - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object HMACAuth: additionalProperties: false example: consumer: id: 84a73fb8-50fc-44a7-a4d5-aa17728ee83f id: 75695322-e8a0-4109-aed4-5416b0308d85 secret: wQazJ304DW5huJklHgUfjfiSyCyTAEDZ username: xerxes properties: consumer: nullable: true properties: id: type: string type: object x-foreign: true x-speakeasy-terraform-ignore: true created_at: description: Unix epoch when the resource was created. nullable: true type: integer id: description: A string representing a UUID (universally unique identifier). nullable: true type: string secret: nullable: true type: string tags: description: A set of strings representing tags. items: description: A string representing a tag. type: string nullable: true type: array username: type: string required: - username type: object x-speakeasy-entity: HMACAuth HMACAuthWithoutParents: additionalProperties: false example: id: 75695322-e8a0-4109-aed4-5416b0308d85 secret: wQazJ304DW5huJklHgUfjfiSyCyTAEDZ username: xerxes properties: consumer: nullable: true properties: id: type: string type: object x-foreign: true x-speakeasy-terraform-ignore: true created_at: description: Unix epoch when the resource was created. nullable: true type: integer id: description: A string representing a UUID (universally unique identifier). nullable: true type: string secret: nullable: true type: string tags: description: A set of strings representing tags. items: description: A string representing a tag. type: string nullable: true type: array username: type: string required: - username type: object x-speakeasy-entity: HMACAuth HeaderCertAuthPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/HeaderCertAuthPluginConfig' properties: name: const: header-cert-auth x-speakeasy-entity: PluginHeaderCertAuth HeaderCertAuthPluginConfig: properties: config: properties: allow_partial_chain: default: false description: >- Allow certificate verification with only an intermediate certificate. When this is enabled, you don't need to upload the full chain to Kong Certificates. type: boolean anonymous: description: >- An optional string (consumer UUID or username) value to use as an “anonymous” consumer if authentication fails. If empty (default null), the request fails with an authentication failure `4xx`. Note that this value must refer to the consumer `id` or `username` attribute, and **not** its `custom_id`. type: string authenticated_group_by: default: CN description: >- Certificate property to use as the authenticated group. Valid values are `CN` (Common Name) or `DN` (Distinguished Name). Once `skip_consumer_lookup` is applied, any client with a valid certificate can access the Service/API. To restrict usage to only some of the authenticated users, also add the ACL plugin (not covered here) and create allowed or denied groups of users. enum: - CN - DN type: string ca_certificates: description: >- List of CA Certificates strings to use as Certificate Authorities (CA) when validating a client certificate. At least one is required but you can specify as many as needed. The value of this array is comprised of primary keys (`id`). items: type: string type: array cache_ttl: default: 60 description: Cache expiry time in seconds. type: number cert_cache_ttl: default: 60000 description: >- The length of time in milliseconds between refreshes of the revocation check status cache. type: number certificate_header_format: description: >- Format of the certificate header. Supported formats: `base64_encoded`, `url_encoded`. enum: - base64_encoded - url_encoded type: string certificate_header_name: description: >- Name of the header that contains the certificate, received from the WAF or other L7 downstream proxy. type: string consumer_by: default: - custom_id - username description: >- Whether to match the subject name of the client-supplied certificate against consumer's `username` and/or `custom_id` attribute. If set to `[]` (the empty array), then auto-matching is disabled. items: enum: - custom_id - username type: string type: array default_consumer: description: >- The UUID or username of the consumer to use when a trusted client certificate is presented but no consumer matches. Note that this value must refer to the consumer `id` or `username` attribute, and **not** its `custom_id`. type: string http_proxy_host: description: A string representing a host name, such as example.com. type: string http_proxy_port: description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer http_timeout: default: 30000 description: >- HTTP timeout threshold in milliseconds when communicating with the OCSP server or downloading CRL. type: number https_proxy_host: description: A string representing a host name, such as example.com. type: string https_proxy_port: description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer revocation_check_mode: default: IGNORE_CA_ERROR description: >- Controls client certificate revocation check behavior. If set to `SKIP`, no revocation check is performed. If set to `IGNORE_CA_ERROR`, the plugin respects the revocation status when either OCSP or CRL URL is set, and doesn't fail on network issues. If set to `STRICT`, the plugin only treats the certificate as valid when it's able to verify the revocation status. enum: - IGNORE_CA_ERROR - SKIP - STRICT type: string secure_source: default: true description: >- Whether to secure the source of the request. If set to `true`, the plugin will only allow requests from trusted IPs (configured by the `trusted_ips` config option). type: boolean skip_consumer_lookup: default: false description: >- Skip consumer lookup once certificate is trusted against the configured CA list. type: boolean required: - ca_certificates - certificate_header_format - certificate_header_name type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config HmacAuthPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/HmacAuthPluginConfig' properties: name: const: hmac-auth x-speakeasy-entity: PluginHmacAuth HmacAuthPluginConfig: properties: config: properties: algorithms: default: - hmac-sha1 - hmac-sha256 - hmac-sha384 - hmac-sha512 description: >- A list of HMAC digest algorithms that the user wants to support. Allowed values are `hmac-sha1`, `hmac-sha256`, `hmac-sha384`, and `hmac-sha512` items: enum: - hmac-sha1 - hmac-sha256 - hmac-sha384 - hmac-sha512 type: string type: array anonymous: description: >- An optional string (Consumer UUID or username) value to use as an “anonymous” consumer if authentication fails. type: string clock_skew: default: 300 description: Clock skew in seconds to prevent replay attacks. type: number enforce_headers: default: [] description: >- A list of headers that the client should at least use for HTTP signature creation. items: type: string type: array hide_credentials: default: false description: >- An optional boolean value telling the plugin to show or hide the credential from the upstream service. type: boolean realm: description: >- When authentication fails the plugin sends `WWW-Authenticate` header with `realm` attribute value. type: string validate_request_body: default: false description: A boolean value telling the plugin to enable body validation. type: boolean type: object protocols: default: - grpc - grpcs - http - https - ws - wss description: >- A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls. format: set items: enum: - grpc - grpcs - http - https - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object HttpLogPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/HttpLogPluginConfig' properties: name: const: http-log x-speakeasy-entity: PluginHttpLog HttpLogPluginConfig: properties: config: properties: content_type: default: application/json description: >- Indicates the type of data sent. The only available option is `application/json`. enum: - application/json - application/json; charset=utf-8 type: string custom_fields_by_lua: additionalProperties: type: string description: Lua code as a key-value map type: object flush_timeout: description: >- Optional time in seconds. If `queue_size` > 1, this is the max idle time before sending a log with less than `queue_size` records. type: number headers: additionalProperties: type: string description: >- An optional table of headers included in the HTTP message to the upstream server. Values are indexed by header name, and each header name accepts a single string. type: object http_endpoint: description: >- A string representing a URL, such as https://example.com/path/to/resource?q=search. type: string keepalive: default: 60000 description: >- An optional value in milliseconds that defines how long an idle connection will live before being closed. type: number method: default: POST description: >- An optional method used to send data to the HTTP server. Supported values are `POST` (default), `PUT`, and `PATCH`. enum: - PATCH - POST - PUT type: string queue: properties: concurrency_limit: default: 1 description: >- The number of of queue delivery timers. -1 indicates unlimited. enum: - -1 - 1 type: integer initial_retry_delay: default: 0.01 description: >- Time in seconds before the initial retry is made for a failing batch. maximum: 1000000 minimum: 0.001 type: number max_batch_size: default: 1 description: Maximum number of entries that can be processed at a time. maximum: 1000000 minimum: 1 type: integer max_bytes: description: >- Maximum number of bytes that can be waiting on a queue, requires string content. type: integer max_coalescing_delay: default: 1 description: >- Maximum number of (fractional) seconds to elapse after the first entry was queued before the queue starts calling the handler. maximum: 3600 minimum: 0 type: number max_entries: default: 10000 description: Maximum number of entries that can be waiting on the queue. maximum: 1000000 minimum: 1 type: integer max_retry_delay: default: 60 description: >- Maximum time in seconds between retries, caps exponential backoff. maximum: 1000000 minimum: 0.001 type: number max_retry_time: default: 60 description: >- Time in seconds before the queue gives up calling a failed handler for a batch. type: number type: object queue_size: description: >- Maximum number of log entries to be sent on each message to the upstream server. type: integer retry_count: description: >- Number of times to retry when sending data to the upstream server. type: integer timeout: default: 10000 description: >- An optional timeout in milliseconds when sending data to the upstream server. type: number required: - http_endpoint type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing protocols. format: set items: description: A string representing a protocol, such as HTTP or HTTPS. enum: - grpc - grpcs - http - https - tcp - tls - tls_passthrough - udp - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config InjectionProtectionPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/InjectionProtectionPluginConfig' properties: name: const: injection-protection x-speakeasy-entity: PluginInjectionProtection InjectionProtectionPluginConfig: properties: config: properties: custom_injections: description: Custom regexes to check for. items: properties: name: description: A unique name for this injection. type: string regex: description: The regex to match against. type: string required: - name - regex type: object type: array enforcement_mode: default: block description: Enforcement mode of the security policy. enum: - block - log_only type: string error_message: default: Bad Request description: The response message when validation fails type: string error_status_code: default: 400 description: The response status code when validation fails. maximum: 499 minimum: 400 type: integer injection_types: default: - sql description: The type of injections to check for. items: enum: - java_exception - js - sql - ssi - xpath_abbreviated - xpath_extended type: string type: array locations: default: - path_and_query description: The locations to check for injection. items: enum: - body - headers - path - path_and_query - query type: string type: array type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object IpRestrictionPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/IpRestrictionPluginConfig' properties: name: const: ip-restriction x-speakeasy-entity: PluginIpRestriction IpRestrictionPluginConfig: properties: config: properties: allow: description: >- List of IPs or CIDR ranges to allow. One of `config.allow` or `config.deny` must be specified. items: description: >- A string representing an IP address or CIDR block, such as 192.168.1.1 or 192.168.0.0/16. type: string type: array deny: description: >- List of IPs or CIDR ranges to deny. One of `config.allow` or `config.deny` must be specified. items: description: >- A string representing an IP address or CIDR block, such as 192.168.1.1 or 192.168.0.0/16. type: string type: array message: description: The message to send as a response body to rejected requests. type: string status: description: >- The HTTP status of the requests that will be rejected by the plugin. type: number type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https - tcp - tls description: A set of strings representing protocols. format: set items: description: A string representing a protocol, such as HTTP or HTTPS. enum: - grpc - grpcs - http - https - tcp - tls - tls_passthrough - udp - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object JWT: additionalProperties: false example: algorithm: HS256 consumer: id: 84a73fb8-50fc-44a7-a4d5-aa17728ee83f id: 75695322-e8a0-4109-aed4-5416b0308d85 key: YJdmaDvVTJxtcWRCvkMikc8oELgAVNcz secret: C50k0bcahDhLNhLKSUBSR1OMiFGzNZ7X properties: algorithm: default: HS256 enum: - ES256 - ES256K - ES384 - ES512 - ESB256 - ESB320 - ESB384 - ESB512 - ESP256 - ESP384 - ESP512 - Ed25519 - Ed448 - EdDSA - HS256 - HS384 - HS512 - PS256 - PS384 - PS512 - RS256 - RS384 - RS512 nullable: true type: string consumer: nullable: true properties: id: type: string type: object x-foreign: true x-speakeasy-terraform-ignore: true created_at: description: Unix epoch when the resource was created. nullable: true type: integer id: description: A string representing a UUID (universally unique identifier). nullable: true type: string key: nullable: true type: string rsa_public_key: nullable: true type: string secret: nullable: true type: string tags: description: A set of strings representing tags. items: description: A string representing a tag. type: string nullable: true type: array type: object x-speakeasy-entity: JWT JWTWithoutParents: additionalProperties: false example: algorithm: HS256 id: 75695322-e8a0-4109-aed4-5416b0308d85 key: YJdmaDvVTJxtcWRCvkMikc8oELgAVNcz secret: C50k0bcahDhLNhLKSUBSR1OMiFGzNZ7X properties: algorithm: default: HS256 enum: - ES256 - ES256K - ES384 - ES512 - ESB256 - ESB320 - ESB384 - ESB512 - ESP256 - ESP384 - ESP512 - Ed25519 - Ed448 - EdDSA - HS256 - HS384 - HS512 - PS256 - PS384 - PS512 - RS256 - RS384 - RS512 nullable: true type: string consumer: nullable: true properties: id: type: string type: object x-foreign: true x-speakeasy-terraform-ignore: true created_at: description: Unix epoch when the resource was created. nullable: true type: integer id: description: A string representing a UUID (universally unique identifier). nullable: true type: string key: nullable: true type: string rsa_public_key: nullable: true type: string secret: nullable: true type: string tags: description: A set of strings representing tags. items: description: A string representing a tag. type: string nullable: true type: array type: object x-speakeasy-entity: JWT JqPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/JqPluginConfig' properties: name: const: jq x-speakeasy-entity: PluginJq JqPluginConfig: properties: config: properties: request_if_media_type: default: - application/json items: type: string type: array request_jq_program: type: string request_jq_program_options: properties: ascii_output: default: false type: boolean compact_output: default: true type: boolean join_output: default: false type: boolean raw_output: default: false type: boolean sort_keys: default: false type: boolean type: object response_if_media_type: default: - application/json items: type: string type: array response_if_status_code: default: - 200 items: maximum: 599 minimum: 100 type: integer type: array response_jq_program: type: string response_jq_program_options: properties: ascii_output: default: false type: boolean compact_output: default: true type: boolean join_output: default: false type: boolean raw_output: default: false type: boolean sort_keys: default: false type: boolean type: object type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object JsonThreatProtectionPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/JsonThreatProtectionPluginConfig' properties: name: const: json-threat-protection x-speakeasy-entity: PluginJsonThreatProtection JsonThreatProtectionPluginConfig: properties: config: properties: allow_duplicate_object_entry_name: default: true description: Allow or disallow duplicate object entry name. type: boolean enforcement_mode: default: block description: Enforcement mode of the security policy. enum: - block - log_only type: string error_message: default: Bad Request description: The response message when validation fails type: string error_status_code: default: 400 description: The response status code when validation fails. maximum: 499 minimum: 400 type: integer max_array_element_count: default: -1 description: Max number of elements in an array. -1 means unlimited. maximum: 2147483648 minimum: -1 type: integer max_body_size: default: 8192 description: Max size of the request body. -1 means unlimited. maximum: 2147483648 minimum: -1 type: integer max_container_depth: default: -1 description: Max nested depth of objects and arrays. -1 means unlimited. maximum: 2147483648 minimum: -1 type: integer max_object_entry_count: default: -1 description: Max number of entries in an object. -1 means unlimited. maximum: 2147483648 minimum: -1 type: integer max_object_entry_name_length: default: -1 description: Max string length of object name. -1 means unlimited. maximum: 2147483648 minimum: -1 type: integer max_string_value_length: default: -1 description: Max string value length. -1 means unlimited. maximum: 2147483648 minimum: -1 type: integer type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object JweDecryptPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/JweDecryptPluginConfig' properties: name: const: jwe-decrypt x-speakeasy-entity: PluginJweDecrypt JweDecryptPluginConfig: properties: config: properties: forward_header_name: default: Authorization description: The name of the header that is used to set the decrypted value. type: string key_sets: description: >- Denote the name or names of all Key Sets that should be inspected when trying to find a suitable key to decrypt the JWE token. items: type: string type: array lookup_header_name: default: Authorization description: The name of the header to look for the JWE token. type: string strict: default: true description: >- Defines how the plugin behaves in cases where no token was found in the request. When using `strict` mode, the request requires a token to be present and subsequently raise an error if none could be found. type: boolean required: - key_sets type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config JwtPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/JwtPluginConfig' properties: name: const: jwt x-speakeasy-entity: PluginJwt JwtPluginConfig: properties: config: properties: anonymous: description: >- An optional string (consumer UUID or username) value to use as an “anonymous” consumer if authentication fails. type: string claims_to_verify: description: >- A list of registered claims (according to RFC 7519) that Kong can verify as well. Accepted values: one of exp or nbf. items: enum: - exp - nbf type: string type: array cookie_names: default: [] description: A list of cookie names that Kong will inspect to retrieve JWTs. items: type: string type: array header_names: default: - authorization description: >- A list of HTTP header names that Kong will inspect to retrieve JWTs. items: type: string type: array key_claim_name: default: iss description: >- The name of the claim in which the key identifying the secret must be passed. The plugin will attempt to read this claim from the JWT payload and the header, in that order. type: string maximum_expiration: default: 0 description: >- A value between 0 and 31536000 (365 days) limiting the lifetime of the JWT to maximum_expiration seconds in the future. maximum: 31536000 minimum: 0 type: number realm: description: >- When authentication fails the plugin sends `WWW-Authenticate` header with `realm` attribute value. type: string run_on_preflight: default: true description: >- A boolean value that indicates whether the plugin should run (and try to authenticate) on OPTIONS preflight requests. If set to false, then OPTIONS requests will always be allowed. type: boolean secret_is_base64: default: false description: >- If true, the plugin assumes the credential’s secret to be base64 encoded. You will need to create a base64-encoded secret for your Consumer, and sign your JWT with the original secret. type: boolean uri_param_names: default: - jwt description: >- A list of querystring parameters that Kong will inspect to retrieve JWTs. items: type: string type: array type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object JwtSignerPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/JwtSignerPluginConfig' properties: name: const: jwt-signer x-speakeasy-entity: PluginJwtSigner JwtSignerPluginConfig: properties: config: properties: access_token_audience_claim: default: - aud description: >- Specify the claim in an access token to verify against values of `config.access_token_audiences_allowed`. items: type: string type: array access_token_audiences_allowed: description: >- The audiences allowed to be present in the access token claim specified by `config.access_token_audience_claim`. items: type: string type: array access_token_consumer_by: default: - custom_id - username description: >- When the plugin tries to apply an access token to a Kong consumer mapping, it tries to find a matching Kong consumer from properties defined using this configuration parameter. The parameter can take an array of alues. Valid values are `id`, `username`, and `custom_id`. items: enum: - custom_id - id - username type: string type: array access_token_consumer_claim: description: >- When you set a value for this parameter, the plugin tries to map an arbitrary claim specified with this configuration parameter (for example, `sub` or `username`) in an access token to Kong consumer entity. items: type: string type: array access_token_expiry_claim: default: - exp description: >- Specify the expiry claim in an access token to verify if the default `exp` is not used. items: type: string type: array access_token_introspection_audience_claim: default: - aud description: >- Specify the claim in an access token introspection to verify against values of `config.access_token_introspection_audiences_allowed`. items: type: string type: array access_token_introspection_audiences_allowed: description: >- The audiences allowed to be present in the access token introspection claim specified by `config.access_token_introspection_audience_claim`. items: type: string type: array access_token_introspection_authorization: description: >- If the introspection endpoint requires client authentication (client being the JWT Signer plugin), you can specify the `Authorization` header's value with this configuration parameter. type: string access_token_introspection_body_args: description: >- This parameter allows you to pass URL encoded request body arguments. For example: `resource=` or `a=1&b=&c`. type: string access_token_introspection_consumer_by: default: - custom_id - username description: >- When the plugin tries to do access token introspection results to Kong consumer mapping, it tries to find a matching Kong consumer from properties defined using this configuration parameter. The parameter can take an array of values. items: enum: - custom_id - id - username type: string type: array access_token_introspection_consumer_claim: description: >- When you set a value for this parameter, the plugin tries to map an arbitrary claim specified with this configuration parameter (such as `sub` or `username`) in access token introspection results to the Kong consumer entity. items: type: string type: array access_token_introspection_endpoint: description: >- When you use `opaque` access tokens and you want to turn on access token introspection, you need to specify the OAuth 2.0 introspection endpoint URI with this configuration parameter. type: string access_token_introspection_expiry_claim: default: - exp description: >- Specify the expiry claim in an access token introspection to verify if the default `exp` is not used. items: type: string type: array access_token_introspection_hint: default: access_token description: >- If you need to give `hint` parameter when introspecting an access token, use this parameter to specify the value. By default, the plugin sends `hint=access_token`. type: string access_token_introspection_issuer_claim: default: - iss description: >- Specify the claim in an access token introspection to verify against values of `config.access_token_introspection_issuers_allowed`. items: type: string type: array access_token_introspection_issuers_allowed: description: >- The issuers allowed to be present in the access token introspection claim specified by `config.access_token_introspection_issuer_claim`. items: type: string type: array access_token_introspection_jwt_claim: description: >- If your introspection endpoint returns an access token in one of the keys (or claims) within the introspection results (`JSON`). If the key cannot be found, the plugin responds with `401 Unauthorized`. Also if the key is found but cannot be decoded as JWT, it also responds with `401 Unauthorized`. items: type: string type: array access_token_introspection_leeway: default: 0 description: >- Adjusts clock skew between the token issuer introspection results and Kong. The value will be used to time-related claim verification. For example, it will be added to introspection results (`JSON`) `exp` claim/property before checking token expiry against Kong servers current time in seconds. You can disable access token introspection `expiry` verification altogether with `config.verify_access_token_introspection_expiry`. type: number access_token_introspection_notbefore_claim: default: - nbf description: >- Specify the notbefore claim in an access token introspection to verify if the default `nbf` is not used. items: type: string type: array access_token_introspection_optional_claims: description: >- Specify the optional claims of the access token introspection result. These claims are only validated when they are present. Every claim is specified by an array. If the array has multiple elements, it means the claim is inside a nested object of the payload. items: items: type: string type: array type: array access_token_introspection_required_claims: description: >- Specify the required claims that must be present in the access token introspection result. Every claim is specified by an array. If the array has multiple elements, it means the claim is inside a nested object of the payload. items: items: type: string type: array type: array access_token_introspection_scopes_claim: default: - scope description: >- Specify the claim/property in access token introspection results (`JSON`) to be verified against values of `config.access_token_introspection_scopes_required`. This supports nested claims. For example, with Keycloak you could use `[ "realm_access", "roles" ]`, hich can be given as `realm_access,roles` (form post). If the claim is not found in access token introspection results, and you have specified `config.access_token_introspection_scopes_required`, the plugin responds with `403 Forbidden`. items: type: string type: array access_token_introspection_scopes_required: description: >- Specify the required values (or scopes) that are checked by an introspection claim/property specified by `config.access_token_introspection_scopes_claim`. items: type: string type: array access_token_introspection_subject_claim: default: - sub description: >- Specify the claim in an access token introspection to verify against values of `config.access_token_introspection_subjects_allowed`. items: type: string type: array access_token_introspection_subjects_allowed: description: >- The subjects allowed to be present in the access token introspection claim specified by `config.access_token_introspection_subject_claim`. items: type: string type: array access_token_introspection_timeout: description: >- Timeout in milliseconds for an introspection request. The plugin tries to introspect twice if the first request fails for some reason. If both requests timeout, then the plugin runs two times the `config.access_token_introspection_timeout` on access token introspection. type: number access_token_issuer: default: kong description: >- The `iss` claim of a signed or re-signed access token is set to this value. Original `iss` claim of the incoming token (possibly introspected) is stored in `original_iss` claim of the newly signed access token. type: string access_token_issuer_claim: default: - iss description: >- Specify the claim in an access token to verify against values of `config.access_token_issuers_allowed`. items: type: string type: array access_token_issuers_allowed: description: >- The issuers allowed to be present in the access token claim specified by `config.access_token_issuer_claim`. items: type: string type: array access_token_jwks_uri: description: >- Specify the URI where the plugin can fetch the public keys (JWKS) to verify the signature of the access token. type: string access_token_jwks_uri_client_certificate: description: >- The client certificate that will be used to authenticate Kong if `access_token_jwks_uri` is an https uri that requires mTLS Auth. properties: id: type: string type: object x-foreign: true access_token_jwks_uri_client_password: description: >- The client password that will be used to authenticate Kong if `access_token_jwks_uri` is a uri that requires Basic Auth. Should be configured together with `access_token_jwks_uri_client_username` type: string access_token_jwks_uri_client_username: description: >- The client username that will be used to authenticate Kong if `access_token_jwks_uri` is a uri that requires Basic Auth. Should be configured together with `access_token_jwks_uri_client_password` type: string access_token_jwks_uri_rotate_period: default: 0 description: >- Specify the period (in seconds) to auto-rotate the jwks for `access_token_jwks_uri`. The default value 0 means no auto-rotation. type: number access_token_keyset: default: kong description: The name of the keyset containing signing keys. type: string access_token_keyset_client_certificate: description: >- The client certificate that will be used to authenticate Kong if `access_token_keyset` is an https uri that requires mTLS Auth. properties: id: type: string type: object x-foreign: true access_token_keyset_client_password: description: >- The client password that will be used to authenticate Kong if `access_token_keyset` is a uri that requires Basic Auth. Should be configured together with `access_token_keyset_client_username` type: string access_token_keyset_client_username: description: >- The client username that will be used to authenticate Kong if `access_token_keyset` is a uri that requires Basic Auth. Should be configured together with `access_token_keyset_client_password` type: string access_token_keyset_rotate_period: default: 0 description: >- Specify the period (in seconds) to auto-rotate the jwks for `access_token_keyset`. The default value 0 means no auto-rotation. type: number access_token_leeway: default: 0 description: >- Adjusts clock skew between the token issuer and Kong. The value will be used to time-related claim verification. For example, it will be added to the token's `exp` claim before checking token expiry against Kong servers' current time in seconds. You can disable access token `expiry` verification altogether with `config.verify_access_token_expiry`. type: number access_token_notbefore_claim: default: - nbf description: >- Specify the notbefore claim in an access token to verify if the default `nbf` is not used. items: type: string type: array access_token_optional: default: false description: >- If an access token is not provided or no `config.access_token_request_header` is specified, the plugin cannot verify the access token. In that case, the plugin normally responds with `401 Unauthorized` (client didn't send a token) or `500 Unexpected` (a configuration error). Use this parameter to allow the request to proceed even when there is no token to check. If the token is provided, then this parameter has no effect type: boolean access_token_optional_claims: description: >- Specify the optional claims of the access token. These claims are only validated when they are present. Every claim is specified by an array. If the array has multiple elements, it means the claim is inside a nested object of the payload. items: items: type: string type: array type: array access_token_request_header: default: Authorization description: >- This parameter tells the name of the header where to look for the access token. type: string access_token_required_claims: description: >- Specify the required claims that must be present in the access token. Every claim is specified by an array. If the array has multiple elements, it means the claim is inside a nested object of the payload. items: items: type: string type: array type: array access_token_scopes_claim: default: - scope description: >- Specify the claim in an access token to verify against values of `config.access_token_scopes_required`. items: type: string type: array access_token_scopes_required: description: >- Specify the required values (or scopes) that are checked by a claim specified by `config.access_token_scopes_claim`. items: type: string type: array access_token_signing: default: true description: >- Quickly turn access token signing or re-signing off and on as needed. If turned off, the plugin will not send the signed or resigned token to the upstream. type: boolean access_token_signing_algorithm: default: RS256 description: >- When this plugin sets the upstream header as specified with `config.access_token_upstream_header`, re-signs the original access token using the private keys of the JWT Signer plugin. Specify the algorithm that is used to sign the token. The `config.access_token_issuer` specifies which `keyset` is used to sign the new token issued by Kong using the specified signing algorithm. enum: - ES256 - ES384 - ES512 - EdDSA - HS256 - HS384 - HS512 - PS256 - PS384 - PS512 - RS256 - RS512 type: string access_token_subject_claim: default: - sub description: >- Specify the claim in an access token to verify against values of `config.access_token_subjects_allowed`. items: type: string type: array access_token_subjects_allowed: description: >- The subjects allowed to be present in the access token claim specified by `config.access_token_subject_claim`. items: type: string type: array access_token_upstream_header: default: Authorization:Bearer description: >- Removes the `config.access_token_request_header` from the request after reading its value. With `config.access_token_upstream_header`, you can specify the upstream header where the plugin adds the Kong signed token. If you don't specify a value, such as use `null` or `""` (empty string), the plugin does not even try to sign or re-sign the token. type: string access_token_upstream_leeway: default: 0 description: >- If you want to add or subtract (using a negative value) expiry time (in seconds) of the original access token, you can specify a value that is added to the original access token's `exp` claim. type: number add_access_token_claims: additionalProperties: true description: >- Add customized claims if they are not present yet. Value can be a regular or JSON string; if JSON, decoded data is used as the claim's value. type: object add_channel_token_claims: additionalProperties: true description: >- Add customized claims if they are not present yet. Value can be a regular or JSON string; if JSON, decoded data is used as the claim's value. type: object add_claims: additionalProperties: true description: >- Add customized claims to both tokens if they are not present yet. Value can be a regular or JSON string; if JSON, decoded data is used as the claim's value. type: object cache_access_token_introspection: default: true description: Whether to cache access token introspection results. type: boolean cache_channel_token_introspection: default: true description: Whether to cache channel token introspection results. type: boolean channel_token_audience_claim: default: - aud description: >- Specify the claim in a channel token to verify against values of `config.channel_token_audiences_allowed`. items: type: string type: array channel_token_audiences_allowed: description: >- The audiences allowed to be present in the channel token claim specified by `config.channel_token_audience_claim`. items: type: string type: array channel_token_consumer_by: default: - custom_id - username description: >- When the plugin tries to do channel token to Kong consumer mapping, it tries to find a matching Kong consumer from properties defined using this configuration parameter. The parameter can take an array of valid values: `id`, `username`, and `custom_id`. items: enum: - custom_id - id - username type: string type: array channel_token_consumer_claim: description: >- When you set a value for this parameter, the plugin tries to map an arbitrary claim specified with this configuration parameter. Kong consumers have an `id`, a `username`, and a `custom_id`. If this parameter is enabled but the mapping fails, such as when there's a non-existent Kong consumer, the plugin responds with `403 Forbidden`. items: type: string type: array channel_token_expiry_claim: default: - exp description: >- Specify the expiry claim in a channel token to verify if the default `exp` is not used. items: type: string type: array channel_token_introspection_audience_claim: default: - aud description: >- Specify the claim in a channel token introspection to verify against values of `config.channel_token_introspection_audiences_allowed`. items: type: string type: array channel_token_introspection_audiences_allowed: description: >- The audiences allowed to be present in the channel token introspection claim specified by `config.channel_token_introspection_audience_claim`. items: type: string type: array channel_token_introspection_authorization: description: >- When using `opaque` channel tokens, and you want to turn on channel token introspection, you need to specify the OAuth 2.0 introspection endpoint URI with this configuration parameter. Otherwise the plugin will not try introspection, and instead returns `401 Unauthorized` when using opaque channel tokens. type: string channel_token_introspection_body_args: description: >- If you need to pass additional body arguments to introspection endpoint when the plugin introspects the opaque channel token, you can use this config parameter to specify them. You should URL encode the value. For example: `resource=` or `a=1&b=&c`. type: string channel_token_introspection_consumer_by: default: - custom_id - username description: >- When the plugin tries to do channel token introspection results to Kong consumer mapping, it tries to find a matching Kong consumer from properties defined using this configuration parameter. The parameter can take an array of values. Valid values are `id`, `username` and `custom_id`. items: enum: - custom_id - id - username type: string type: array channel_token_introspection_consumer_claim: description: >- When you set a value for this parameter, the plugin tries to map an arbitrary claim specified with this configuration parameter (such as `sub` or `username`) in channel token introspection results to Kong consumer entity items: type: string type: array channel_token_introspection_endpoint: description: >- When you use `opaque` access tokens and you want to turn on access token introspection, you need to specify the OAuth 2.0 introspection endpoint URI with this configuration parameter. Otherwise, the plugin does not try introspection and returns `401 Unauthorized` instead. type: string channel_token_introspection_expiry_claim: default: - exp description: >- Specify the expiry claim in a channel token to verify if the default `exp` is not used. items: type: string type: array channel_token_introspection_hint: description: >- If you need to give `hint` parameter when introspecting a channel token, you can use this parameter to specify the value of such parameter. By default, a `hint` isn't sent with channel token introspection. type: string channel_token_introspection_issuer_claim: default: - iss description: >- Specify the claim in a channel token introspection to verify against values of `config.channel_token_introspection_issuers_allowed`. items: type: string type: array channel_token_introspection_issuers_allowed: description: >- The issuers allowed to be present in the channel token introspection claim specified by `config.channel_token_introspection_issuer_claim`. items: type: string type: array channel_token_introspection_jwt_claim: description: >- If your introspection endpoint returns a channel token in one of the keys (or claims) in the introspection results (`JSON`), the plugin can use that value instead of the introspection results when doing expiry verification and signing of the new token issued by Kong. items: type: string type: array channel_token_introspection_leeway: default: 0 description: >- You can use this parameter to adjust clock skew between the token issuer introspection results and Kong. The value will be used to time-related claim verification. For example, it will be added to introspection results (`JSON`) `exp` claim/property before checking token expiry against Kong servers current time (in seconds). You can disable channel token introspection `expiry` verification altogether with `config.verify_channel_token_introspection_expiry`. type: number channel_token_introspection_notbefore_claim: default: - nbf description: >- Specify the notbefore claim in a channel token to verify if the default `nbf` is not used. items: type: string type: array channel_token_introspection_optional_claims: description: >- Specify the optional claims of the channel token introspection. These claims are only validated when they are present. Every claim is specified by an array. If the array has multiple elements, it means the claim is inside a nested object of the payload. items: items: type: string type: array type: array channel_token_introspection_required_claims: description: >- Specify the required claims that must be present in the channel token introspection. Every claim is specified by an array. If the array has multiple elements, it means the claim is inside a nested object of the payload. items: items: type: string type: array type: array channel_token_introspection_scopes_claim: default: - scope description: >- Use this parameter to specify the claim/property in channel token introspection results (`JSON`) to be verified against values of `config.channel_token_introspection_scopes_required`. This supports nested claims. items: type: string type: array channel_token_introspection_scopes_required: description: >- Use this parameter to specify the required values (or scopes) that are checked by an introspection claim/property specified by `config.channel_token_introspection_scopes_claim`. items: type: string type: array channel_token_introspection_subject_claim: default: - sub description: >- Specify the claim in a channel token to verify against values of `config.channel_token_introspection_subjects_allowed`. items: type: string type: array channel_token_introspection_subjects_allowed: description: >- The subjects allowed to be present in the channel token introspection claim specified by `config.channel_token_introspection_subject_claim`. items: type: string type: array channel_token_introspection_timeout: description: >- Timeout in milliseconds for an introspection request. The plugin tries to introspect twice if the first request fails for some reason. If both requests timeout, then the plugin runs two times the `config.access_token_introspection_timeout` on channel token introspection. type: number channel_token_issuer: default: kong description: >- The `iss` claim of the re-signed channel token is set to this value, which is `kong` by default. The original `iss` claim of the incoming token (possibly introspected) is stored in the `original_iss` claim of the newly signed channel token. type: string channel_token_issuer_claim: default: - iss description: >- Specify the claim in a channel token to verify against values of `config.channel_token_issuers_allowed`. items: type: string type: array channel_token_issuers_allowed: description: >- The issuers allowed to be present in the channel token claim specified by `config.channel_token_issuer_claim`. items: type: string type: array channel_token_jwks_uri: description: >- If you want to use `config.verify_channel_token_signature`, you must specify the URI where the plugin can fetch the public keys (JWKS) to verify the signature of the channel token. If you don't specify a URI and you pass a JWT token to the plugin, then the plugin responds with `401 Unauthorized`. type: string channel_token_jwks_uri_client_certificate: description: >- The client certificate that will be used to authenticate Kong if `access_token_jwks_uri` is an https uri that requires mTLS Auth. properties: id: type: string type: object x-foreign: true channel_token_jwks_uri_client_password: description: >- The client password that will be used to authenticate Kong if `channel_token_jwks_uri` is a uri that requires Basic Auth. Should be configured together with `channel_token_jwks_uri_client_username` type: string channel_token_jwks_uri_client_username: description: >- The client username that will be used to authenticate Kong if `channel_token_jwks_uri` is a uri that requires Basic Auth. Should be configured together with `channel_token_jwks_uri_client_password` type: string channel_token_jwks_uri_rotate_period: default: 0 description: >- Specify the period (in seconds) to auto-rotate the jwks for `channel_token_jwks_uri`. The default value 0 means no auto-rotation. type: number channel_token_keyset: default: kong description: The name of the keyset containing signing keys. type: string channel_token_keyset_client_certificate: description: >- The client certificate that will be used to authenticate Kong if `channel_token_keyset` is an https uri that requires mTLS Auth. properties: id: type: string type: object x-foreign: true channel_token_keyset_client_password: description: >- The client password that will be used to authenticate Kong if `channel_token_keyset` is a uri that requires Basic Auth. Should be configured together with `channel_token_keyset_client_username` type: string channel_token_keyset_client_username: description: >- The client username that will be used to authenticate Kong if `channel_token_keyset` is a uri that requires Basic Auth. Should be configured together with `channel_token_keyset_client_password` type: string channel_token_keyset_rotate_period: default: 0 description: >- Specify the period (in seconds) to auto-rotate the jwks for `channel_token_keyset`. The default value 0 means no auto-rotation. type: number channel_token_leeway: default: 0 description: >- Adjusts clock skew between the token issuer and Kong. The value will be used to time-related claim verification. For example, it will be added to token's `exp` claim before checking token expiry against Kong servers current time in seconds. You can disable channel token `expiry` verification altogether with `config.verify_channel_token_expiry`. type: number channel_token_notbefore_claim: default: - nbf description: >- Specify the notbefore claim in a channel token to verify if the default `nbf` is not used. items: type: string type: array channel_token_optional: default: false description: >- If a channel token is not provided or no `config.channel_token_request_header` is specified, the plugin cannot verify the channel token. In that case, the plugin normally responds with `401 Unauthorized` (client didn't send a token) or `500 Unexpected` (a configuration error). Enable this parameter to allow the request to proceed even when there is no channel token to check. If the channel token is provided, then this parameter has no effect type: boolean channel_token_optional_claims: description: >- Specify the optional claims of the channel token. These claims are only validated when they are present. Every claim is specified by an array. If the array has multiple elements, it means the claim is inside a nested object of the payload. items: items: type: string type: array type: array channel_token_request_header: description: >- This parameter tells the name of the header where to look for the channel token. If you don't want to do anything with the channel token, then you can set this to `null` or `""` (empty string). type: string channel_token_required_claims: description: >- Specify the required claims that must be present in the channel token. Every claim is specified by an array. If the array has multiple elements, it means the claim is inside a nested object of the payload. items: items: type: string type: array type: array channel_token_scopes_claim: default: - scope description: >- Specify the claim in a channel token to verify against values of `config.channel_token_scopes_required`. This supports nested claims. items: type: string type: array channel_token_scopes_required: description: >- Specify the required values (or scopes) that are checked by a claim specified by `config.channel_token_scopes_claim`. items: type: string type: array channel_token_signing: default: true description: >- Quickly turn channel token signing or re-signing off and on as needed. If turned off, the plugin will not send the signed or resigned token to the upstream. type: boolean channel_token_signing_algorithm: default: RS256 description: >- When this plugin sets the upstream header as specified with `config.channel_token_upstream_header`, it also re-signs the original channel token using private keys of this plugin. Specify the algorithm that is used to sign the token. enum: - ES256 - ES384 - ES512 - EdDSA - HS256 - HS384 - HS512 - PS256 - PS384 - PS512 - RS256 - RS512 type: string channel_token_subject_claim: default: - sub description: >- Specify the claim in a channel token to verify against values of `config.channel_token_subjects_allowed`. items: type: string type: array channel_token_subjects_allowed: description: >- The subjects allowed to be present in the channel token claim specified by `config.channel_token_subject_claim`. items: type: string type: array channel_token_upstream_header: description: >- This plugin removes the `config.channel_token_request_header` from the request after reading its value. type: string channel_token_upstream_leeway: default: 0 description: >- If you want to add or perhaps subtract (using negative value) expiry time of the original channel token, you can specify a value that is added to the original channel token's `exp` claim. type: number enable_access_token_introspection: default: true description: >- If you don't want to support opaque access tokens, change this configuration parameter to `false` to disable introspection. type: boolean enable_channel_token_introspection: default: true description: >- If you don't want to support opaque channel tokens, disable introspection by changing this configuration parameter to `false`. type: boolean enable_hs_signatures: default: false description: >- Tokens signed with HMAC algorithms such as `HS256`, `HS384`, or `HS512` are not accepted by default. If you need to accept such tokens for verification, enable this setting. type: boolean enable_instrumentation: default: false description: >- Writes log entries with some added information using `ngx.CRIT` (CRITICAL) level. type: boolean original_access_token_upstream_header: description: The HTTP header name used to store the original access token. type: string original_channel_token_upstream_header: description: The HTTP header name used to store the original channel token. type: string realm: description: >- When authentication or authorization fails, or there is an unexpected error, the plugin sends an `WWW-Authenticate` header with the `realm` attribute value. type: string remove_access_token_claims: default: [] description: >- remove claims. It should be an array, and each element is a claim key string. items: type: string type: array remove_channel_token_claims: default: [] description: >- remove claims. It should be an array, and each element is a claim key string. items: type: string type: array set_access_token_claims: additionalProperties: true description: >- Set customized claims. If a claim is already present, it will be overwritten. Value can be a regular or JSON string; if JSON, decoded data is used as the claim's value. type: object set_channel_token_claims: additionalProperties: true description: >- Set customized claims. If a claim is already present, it will be overwritten. Value can be a regular or JSON string; if JSON, decoded data is used as the claim's value. type: object set_claims: additionalProperties: true description: >- Set customized claims to both tokens. If a claim is already present, it will be overwritten. Value can be a regular or JSON string; if JSON, decoded data is used as the claim's value. type: object trust_access_token_introspection: default: true description: >- Use this parameter to enable and disable further checks on a payload before the new token is signed. If you set this to `true`, the expiry or scopes are not checked on a payload. type: boolean trust_channel_token_introspection: default: true description: >- Providing an opaque channel token for plugin introspection, and verifying expiry and scopes on introspection results may make further payload checks unnecessary before the plugin signs a new token. This also applies when using a JWT token with introspection JSON as per config.channel_token_introspection_jwt_claim. Use this parameter to manage additional payload checks before signing a new token. With true (default), payload's expiry or scopes aren't checked. type: boolean verify_access_token_audience: default: true description: >- Quickly turn off and on the access token required audiences verification, specified with `config.access_token_audiences_required`. type: boolean verify_access_token_expiry: default: true description: >- Quickly turn access token expiry verification off and on as needed. type: boolean verify_access_token_introspection_audience: default: true description: >- Quickly turn off and on the access token introspection required audiences verification, specified with `config.access_token_introspection_audiences_required`. type: boolean verify_access_token_introspection_expiry: default: true description: >- Quickly turn access token introspection expiry verification off and on as needed. type: boolean verify_access_token_introspection_issuer: default: true description: >- Quickly turn off and on the access token introspection allowed issuers verification, specified with `config.access_token_introspection_issuers_allowed`. type: boolean verify_access_token_introspection_notbefore: default: false description: >- Quickly turn off and on the access token introspection notbefore verification. type: boolean verify_access_token_introspection_scopes: default: true description: >- Quickly turn off and on the access token introspection scopes verification, specified with `config.access_token_introspection_scopes_required`. type: boolean verify_access_token_introspection_subject: default: true description: >- Quickly turn off and on the access token introspection required subjects verification, specified with `config.access_token_introspection_subjects_required`. type: boolean verify_access_token_issuer: default: true description: >- Quickly turn off and on the access token allowed issuers verification, specified with `config.access_token_issuers_allowed`. type: boolean verify_access_token_notbefore: default: false description: Quickly turn off and on the access token notbefore verification. type: boolean verify_access_token_scopes: default: true description: >- Quickly turn off and on the access token required scopes verification, specified with `config.access_token_scopes_required`. type: boolean verify_access_token_signature: default: true description: >- Quickly turn access token signature verification off and on as needed. type: boolean verify_access_token_subject: default: true description: >- Quickly turn off and on the access token required subjects verification, specified with `config.access_token_subjects_required`. type: boolean verify_channel_token_audience: default: true description: >- Quickly turn off and on the channel token required audiences verification, specified with `config.channel_token_audiences_required`. type: boolean verify_channel_token_expiry: default: true type: boolean verify_channel_token_introspection_audience: default: true description: >- Quickly turn off and on the channel token introspection required audiences verification, specified with `config.channel_token_introspection_audiences_required`. type: boolean verify_channel_token_introspection_expiry: default: true description: >- Quickly turn on/off the channel token introspection expiry verification. type: boolean verify_channel_token_introspection_issuer: default: true description: >- Quickly turn off and on the channel token introspection allowed issuers verification, specified with `config.channel_token_introspection_issuers_allowed`. type: boolean verify_channel_token_introspection_notbefore: default: false description: >- Quickly turn off and on the channel token introspection notbefore verification. type: boolean verify_channel_token_introspection_scopes: default: true description: >- Quickly turn on/off the channel token introspection scopes verification specified with `config.channel_token_introspection_scopes_required`. type: boolean verify_channel_token_introspection_subject: default: true description: >- Quickly turn off and on the channel token introspection required subjects verification, specified with `config.channel_token_introspection_subjects_required`. type: boolean verify_channel_token_issuer: default: true description: >- Quickly turn off and on the channel token allowed issuers verification, specified with `config.channel_token_issuers_allowed`. type: boolean verify_channel_token_notbefore: default: false description: >- Quickly turn off and on the channel token notbefore verification. type: boolean verify_channel_token_scopes: default: true description: >- Quickly turn on/off the channel token required scopes verification specified with `config.channel_token_scopes_required`. type: boolean verify_channel_token_signature: default: true description: Quickly turn on/off the channel token signature verification. type: boolean verify_channel_token_subject: default: true description: >- Quickly turn off and on the channel token required subjects verification, specified with `config.channel_token_subjects_required`. type: boolean type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object KafkaConsumePlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/KafkaConsumePluginConfig' properties: name: const: kafka-consume x-speakeasy-entity: PluginKafkaConsume KafkaConsumePluginConfig: properties: config: properties: authentication: properties: mechanism: description: >- The SASL authentication mechanism. Supported options: `PLAIN` or `SCRAM-SHA-256`. enum: - PLAIN - SCRAM-SHA-256 - SCRAM-SHA-512 type: string password: description: Password for SASL authentication. type: string strategy: description: >- The authentication strategy for the plugin, the only option for the value is `sasl`. enum: - sasl type: string tokenauth: description: Enable this to indicate `DelegationToken` authentication type: boolean user: description: Username for SASL authentication. type: string type: object auto_offset_reset: default: latest description: >- The offset to start from when there is no initial offset in the consumer group. enum: - earliest - latest type: string bootstrap_servers: description: >- Set of bootstrap brokers in a `{host: host, port: port}` list format. items: properties: host: description: A string representing a host name, such as example.com. type: string port: description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer required: - host - port type: object type: array cluster_name: description: An identifier for the Kafka cluster. type: string commit_strategy: default: auto description: The strategy to use for committing offsets. enum: - auto - 'off' type: string dlq_topic: description: The topic to use for the Dead Letter Queue. type: string enable_dlq: description: >- Enables Dead Letter Queue. When enabled, if the message doesn't conform to the schema (from Schema Registry) or there's an error in the `message_by_lua_functions`, it will be forwarded to `dlq_topic` that can be processed later. type: boolean message_by_lua_functions: description: >- The Lua functions that manipulates the message being sent to the client. items: type: string type: array message_deserializer: default: noop description: The deserializer to use for the consumed messages. enum: - json - noop type: string mode: default: http-get description: The mode of operation for the plugin. enum: - http-get - server-sent-events - websocket type: string schema_registry: description: The plugin-global schema registry configuration. properties: confluent: properties: authentication: properties: basic: properties: password: type: string username: type: string required: - password - username type: object mode: default: none description: Authentication mode to use with the schema registry. enum: - basic - none - oauth2 type: string oauth2: properties: audience: default: [] description: >- List of audiences passed to the IdP when obtaining a new token. items: type: string type: array client_id: description: >- The client ID for the application registration in the IdP. type: string client_secret: description: >- The client secret for the application registration in the IdP. type: string grant_type: default: client_credentials description: The OAuth grant type to be used. enum: - client_credentials - password type: string password: description: >- The password to use if `config.oauth.grant_type` is set to `password`. type: string scopes: default: - openid description: >- List of scopes to request from the IdP when obtaining a new token. items: type: string type: array token_endpoint: description: The token endpoint URI. type: string token_headers: additionalProperties: true description: >- Extra headers to be passed in the token endpoint request. type: object token_post_args: additionalProperties: true description: >- Extra post arguments to be passed in the token endpoint request. type: object username: description: >- The username to use if `config.oauth.grant_type` is set to `password`. type: string required: - token_endpoint type: object oauth2_client: properties: auth_method: default: client_secret_post description: >- The authentication method used in client requests to the IdP. Supported values are: `client_secret_basic` to send `client_id` and `client_secret` in the `Authorization: Basic` header, `client_secret_post` to send `client_id` and `client_secret` as part of the request body, or `client_secret_jwt` to send a JWT signed with the `client_secret` using the client assertion as part of the body. enum: - client_secret_basic - client_secret_jwt - client_secret_post - none type: string client_secret_jwt_alg: default: HS512 description: >- The algorithm to use with JWT when using `client_secret_jwt` authentication. enum: - HS256 - HS512 type: string http_proxy: description: >- The proxy to use when making HTTP requests to the IdP. type: string http_proxy_authorization: description: >- The `Proxy-Authorization` header value to be used with `http_proxy`. type: string http_version: default: 1.1 description: >- The HTTP version used for requests made by this plugin. Supported values: `1.1` for HTTP 1.1 and `1.0` for HTTP 1.0. type: number https_proxy: description: >- The proxy to use when making HTTPS requests to the IdP. type: string https_proxy_authorization: description: >- The `Proxy-Authorization` header value to be used with `https_proxy`. type: string keep_alive: default: true description: Whether to use keepalive connections to the IdP. type: boolean no_proxy: description: >- A comma-separated list of hosts that should not be proxied. type: string ssl_verify: default: false description: >- Whether to verify the certificate presented by the IdP when using HTTPS. type: boolean timeout: default: 10000 description: >- Network I/O timeout for requests to the IdP in milliseconds. maximum: 2147483646 minimum: 0 type: integer type: object type: object ssl_verify: default: true description: >- Set to false to disable SSL certificate verification when connecting to the schema registry. type: boolean ttl: description: The TTL in seconds for the schema registry cache. maximum: 3600 minimum: 0 type: number url: description: The URL of the schema registry. type: string type: object type: object security: properties: certificate_id: description: UUID of certificate entity for mTLS authentication. type: string ssl: description: Enables TLS. type: boolean type: object topics: description: >- The Kafka topics and their configuration you want to consume from. items: properties: name: type: string schema_registry: description: The plugin-global schema registry configuration. properties: confluent: properties: authentication: properties: basic: properties: password: type: string username: type: string required: - password - username type: object mode: default: none description: >- Authentication mode to use with the schema registry. enum: - basic - none - oauth2 type: string oauth2: properties: audience: default: [] description: >- List of audiences passed to the IdP when obtaining a new token. items: type: string type: array client_id: description: >- The client ID for the application registration in the IdP. type: string client_secret: description: >- The client secret for the application registration in the IdP. type: string grant_type: default: client_credentials description: The OAuth grant type to be used. enum: - client_credentials - password type: string password: description: >- The password to use if `config.oauth.grant_type` is set to `password`. type: string scopes: default: - openid description: >- List of scopes to request from the IdP when obtaining a new token. items: type: string type: array token_endpoint: description: The token endpoint URI. type: string token_headers: additionalProperties: true description: >- Extra headers to be passed in the token endpoint request. type: object token_post_args: additionalProperties: true description: >- Extra post arguments to be passed in the token endpoint request. type: object username: description: >- The username to use if `config.oauth.grant_type` is set to `password`. type: string required: - token_endpoint type: object oauth2_client: properties: auth_method: default: client_secret_post description: >- The authentication method used in client requests to the IdP. Supported values are: `client_secret_basic` to send `client_id` and `client_secret` in the `Authorization: Basic` header, `client_secret_post` to send `client_id` and `client_secret` as part of the request body, or `client_secret_jwt` to send a JWT signed with the `client_secret` using the client assertion as part of the body. enum: - client_secret_basic - client_secret_jwt - client_secret_post - none type: string client_secret_jwt_alg: default: HS512 description: >- The algorithm to use with JWT when using `client_secret_jwt` authentication. enum: - HS256 - HS512 type: string http_proxy: description: >- The proxy to use when making HTTP requests to the IdP. type: string http_proxy_authorization: description: >- The `Proxy-Authorization` header value to be used with `http_proxy`. type: string http_version: default: 1.1 description: >- The HTTP version used for requests made by this plugin. Supported values: `1.1` for HTTP 1.1 and `1.0` for HTTP 1.0. type: number https_proxy: description: >- The proxy to use when making HTTPS requests to the IdP. type: string https_proxy_authorization: description: >- The `Proxy-Authorization` header value to be used with `https_proxy`. type: string keep_alive: default: true description: >- Whether to use keepalive connections to the IdP. type: boolean no_proxy: description: >- A comma-separated list of hosts that should not be proxied. type: string ssl_verify: default: false description: >- Whether to verify the certificate presented by the IdP when using HTTPS. type: boolean timeout: default: 10000 description: >- Network I/O timeout for requests to the IdP in milliseconds. maximum: 2147483646 minimum: 0 type: integer type: object type: object ssl_verify: default: true description: >- Set to false to disable SSL certificate verification when connecting to the schema registry. type: boolean ttl: description: The TTL in seconds for the schema registry cache. maximum: 3600 minimum: 0 type: number url: description: The URL of the schema registry. type: string type: object type: object required: - name type: object minLength: 1 type: array required: - bootstrap_servers - topics type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https - ws - wss description: >- A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls. format: set items: enum: - grpc - grpcs - http - https - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object required: - config KafkaLogPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/KafkaLogPluginConfig' properties: name: const: kafka-log x-speakeasy-entity: PluginKafkaLog KafkaLogPluginConfig: properties: config: properties: authentication: properties: mechanism: description: >- The SASL authentication mechanism. Supported options: `PLAIN`, `SCRAM-SHA-256` or `SCRAM-SHA-512`. enum: - PLAIN - SCRAM-SHA-256 - SCRAM-SHA-512 type: string password: description: Password for SASL authentication. type: string strategy: description: >- The authentication strategy for the plugin, the only option for the value is `sasl`. enum: - sasl type: string tokenauth: description: Enable this to indicate `DelegationToken` authentication type: boolean user: description: Username for SASL authentication. type: string type: object bootstrap_servers: description: >- Set of bootstrap brokers in a `{host: host, port: port}` list format. items: properties: host: description: A string representing a host name, such as example.com. type: string port: description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer required: - host - port type: object type: array cluster_name: description: >- An identifier for the Kafka cluster. By default, this field generates a random string. You can also set your own custom cluster identifier. If more than one Kafka plugin is configured without a `cluster_name` (that is, if the default autogenerated value is removed), these plugins will use the same producer, and by extension, the same cluster. Logs will be sent to the leader of the cluster. type: string custom_fields_by_lua: additionalProperties: type: string description: Lua code as a key-value map type: object keepalive: default: 60000 type: integer keepalive_enabled: default: false type: boolean key_query_arg: description: >- The request query parameter name that contains the Kafka message key. If specified, messages with the same key will be sent to the same Kafka partition, ensuring consistent ordering. type: string producer_async: default: true description: Flag to enable asynchronous mode. type: boolean producer_async_buffering_limits_messages_in_memory: default: 50000 description: >- Maximum number of messages that can be buffered in memory in asynchronous mode. type: integer producer_async_flush_timeout: default: 1000 description: >- Maximum time interval in milliseconds between buffer flushes in asynchronous mode. type: integer producer_request_acks: default: 1 description: >- The number of acknowledgments the producer requires the leader to have received before considering a request complete. Allowed values: 0 for no acknowledgments; 1 for only the leader; and -1 for the full ISR (In-Sync Replica set). enum: - -1 - 0 - 1 type: integer producer_request_limits_bytes_per_request: default: 1048576 description: Maximum size of a Produce request in bytes. type: integer producer_request_limits_messages_per_request: default: 200 description: >- Maximum number of messages to include into a single Produce request. type: integer producer_request_retries_backoff_timeout: default: 100 description: Backoff interval between retry attempts in milliseconds. type: integer producer_request_retries_max_attempts: default: 10 description: Maximum number of retry attempts per single Produce request. type: integer producer_request_timeout: default: 2000 description: Time to wait for a Produce response in milliseconds type: integer schema_registry: description: >- The plugin-global schema registry configuration. This can be overwritten by the topic configuration. properties: confluent: properties: authentication: properties: basic: properties: password: type: string username: type: string required: - password - username type: object mode: default: none description: Authentication mode to use with the schema registry. enum: - basic - none - oauth2 type: string oauth2: properties: audience: default: [] description: >- List of audiences passed to the IdP when obtaining a new token. items: type: string type: array client_id: description: >- The client ID for the application registration in the IdP. type: string client_secret: description: >- The client secret for the application registration in the IdP. type: string grant_type: default: client_credentials description: The OAuth grant type to be used. enum: - client_credentials - password type: string password: description: >- The password to use if `config.oauth.grant_type` is set to `password`. type: string scopes: default: - openid description: >- List of scopes to request from the IdP when obtaining a new token. items: type: string type: array token_endpoint: description: The token endpoint URI. type: string token_headers: additionalProperties: true description: >- Extra headers to be passed in the token endpoint request. type: object token_post_args: additionalProperties: true description: >- Extra post arguments to be passed in the token endpoint request. type: object username: description: >- The username to use if `config.oauth.grant_type` is set to `password`. type: string required: - token_endpoint type: object oauth2_client: properties: auth_method: default: client_secret_post description: >- The authentication method used in client requests to the IdP. Supported values are: `client_secret_basic` to send `client_id` and `client_secret` in the `Authorization: Basic` header, `client_secret_post` to send `client_id` and `client_secret` as part of the request body, or `client_secret_jwt` to send a JWT signed with the `client_secret` using the client assertion as part of the body. enum: - client_secret_basic - client_secret_jwt - client_secret_post - none type: string client_secret_jwt_alg: default: HS512 description: >- The algorithm to use with JWT when using `client_secret_jwt` authentication. enum: - HS256 - HS512 type: string http_proxy: description: >- The proxy to use when making HTTP requests to the IdP. type: string http_proxy_authorization: description: >- The `Proxy-Authorization` header value to be used with `http_proxy`. type: string http_version: default: 1.1 description: >- The HTTP version used for requests made by this plugin. Supported values: `1.1` for HTTP 1.1 and `1.0` for HTTP 1.0. type: number https_proxy: description: >- The proxy to use when making HTTPS requests to the IdP. type: string https_proxy_authorization: description: >- The `Proxy-Authorization` header value to be used with `https_proxy`. type: string keep_alive: default: true description: Whether to use keepalive connections to the IdP. type: boolean no_proxy: description: >- A comma-separated list of hosts that should not be proxied. type: string ssl_verify: default: false description: >- Whether to verify the certificate presented by the IdP when using HTTPS. type: boolean timeout: default: 10000 description: >- Network I/O timeout for requests to the IdP in milliseconds. maximum: 2147483646 minimum: 0 type: integer type: object type: object key_schema: properties: schema_version: description: >- The schema version to use for serialization/deserialization. Use 'latest' to always fetch the most recent version. type: string subject_name: description: The name of the subject type: string type: object ssl_verify: default: true description: >- Set to false to disable SSL certificate verification when connecting to the schema registry. type: boolean ttl: description: The TTL in seconds for the schema registry cache. maximum: 3600 minimum: 0 type: number url: description: The URL of the schema registry. type: string value_schema: properties: schema_version: description: >- The schema version to use for serialization/deserialization. Use 'latest' to always fetch the most recent version. type: string subject_name: description: The name of the subject type: string type: object type: object type: object security: properties: certificate_id: description: UUID of certificate entity for mTLS authentication. type: string ssl: description: Enables TLS. type: boolean type: object timeout: default: 10000 description: Socket timeout in milliseconds. type: integer topic: description: The Kafka topic to publish to. type: string required: - topic type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https - ws - wss description: >- A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls. format: set items: enum: - grpc - grpcs - http - https - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config KafkaUpstreamPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/KafkaUpstreamPluginConfig' properties: name: const: kafka-upstream x-speakeasy-entity: PluginKafkaUpstream KafkaUpstreamPluginConfig: properties: config: properties: allowed_topics: description: >- The list of allowed topic names to which messages can be sent. The default topic configured in the `topic` field is always allowed, regardless of its inclusion in `allowed_topics`. items: type: string type: array authentication: properties: mechanism: description: >- The SASL authentication mechanism. Supported options: `PLAIN`, `SCRAM-SHA-256`, or `SCRAM-SHA-512`. enum: - PLAIN - SCRAM-SHA-256 - SCRAM-SHA-512 type: string password: description: Password for SASL authentication. type: string strategy: description: >- The authentication strategy for the plugin, the only option for the value is `sasl`. enum: - sasl type: string tokenauth: description: Enable this to indicate `DelegationToken` authentication. type: boolean user: description: Username for SASL authentication. type: string type: object bootstrap_servers: description: >- Set of bootstrap brokers in a `{host: host, port: port}` list format. items: properties: host: description: A string representing a host name, such as example.com. type: string port: description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer required: - host - port type: object type: array cluster_name: description: >- An identifier for the Kafka cluster. By default, this field generates a random string. You can also set your own custom cluster identifier. If more than one Kafka plugin is configured without a `cluster_name` (that is, if the default autogenerated value is removed), these plugins will use the same producer, and by extension, the same cluster. Logs will be sent to the leader of the cluster. type: string forward_body: default: true description: >- Include the request body in the message. At least one of these must be true: `forward_method`, `forward_uri`, `forward_headers`, `forward_body`. type: boolean forward_headers: default: false description: >- Include the request headers in the message. At least one of these must be true: `forward_method`, `forward_uri`, `forward_headers`, `forward_body`. type: boolean forward_method: default: false description: >- Include the request method in the message. At least one of these must be true: `forward_method`, `forward_uri`, `forward_headers`, `forward_body`. type: boolean forward_uri: default: false description: >- Include the request URI and URI arguments (as in, query arguments) in the message. At least one of these must be true: `forward_method`, `forward_uri`, `forward_headers`, `forward_body`. type: boolean keepalive: default: 60000 description: Keepalive timeout in milliseconds. type: integer keepalive_enabled: default: false type: boolean key_query_arg: description: >- The request query parameter name that contains the Kafka message key. If specified, messages with the same key will be sent to the same Kafka partition, ensuring consistent ordering. type: string message_by_lua_functions: description: >- The Lua functions that manipulates the message being sent to the Kafka topic. items: type: string type: array producer_async: default: true description: Flag to enable asynchronous mode. type: boolean producer_async_buffering_limits_messages_in_memory: default: 50000 description: >- Maximum number of messages that can be buffered in memory in asynchronous mode. type: integer producer_async_flush_timeout: default: 1000 description: >- Maximum time interval in milliseconds between buffer flushes in asynchronous mode. type: integer producer_request_acks: default: 1 description: >- The number of acknowledgments the producer requires the leader to have received before considering a request complete. Allowed values: 0 for no acknowledgments; 1 for only the leader; and -1 for the full ISR (In-Sync Replica set). enum: - -1 - 0 - 1 type: integer producer_request_limits_bytes_per_request: default: 1048576 description: Maximum size of a Produce request in bytes. type: integer producer_request_limits_messages_per_request: default: 200 description: >- Maximum number of messages to include into a single producer request. type: integer producer_request_retries_backoff_timeout: default: 100 description: Backoff interval between retry attempts in milliseconds. type: integer producer_request_retries_max_attempts: default: 10 description: Maximum number of retry attempts per single Produce request. type: integer producer_request_timeout: default: 2000 description: Time to wait for a Produce response in milliseconds. type: integer schema_registry: description: >- The plugin-global schema registry configuration. This can be overwritten by the topic configuration. properties: confluent: properties: authentication: properties: basic: properties: password: type: string username: type: string required: - password - username type: object mode: default: none description: Authentication mode to use with the schema registry. enum: - basic - none - oauth2 type: string oauth2: properties: audience: default: [] description: >- List of audiences passed to the IdP when obtaining a new token. items: type: string type: array client_id: description: >- The client ID for the application registration in the IdP. type: string client_secret: description: >- The client secret for the application registration in the IdP. type: string grant_type: default: client_credentials description: The OAuth grant type to be used. enum: - client_credentials - password type: string password: description: >- The password to use if `config.oauth.grant_type` is set to `password`. type: string scopes: default: - openid description: >- List of scopes to request from the IdP when obtaining a new token. items: type: string type: array token_endpoint: description: The token endpoint URI. type: string token_headers: additionalProperties: true description: >- Extra headers to be passed in the token endpoint request. type: object token_post_args: additionalProperties: true description: >- Extra post arguments to be passed in the token endpoint request. type: object username: description: >- The username to use if `config.oauth.grant_type` is set to `password`. type: string required: - token_endpoint type: object oauth2_client: properties: auth_method: default: client_secret_post description: >- The authentication method used in client requests to the IdP. Supported values are: `client_secret_basic` to send `client_id` and `client_secret` in the `Authorization: Basic` header, `client_secret_post` to send `client_id` and `client_secret` as part of the request body, or `client_secret_jwt` to send a JWT signed with the `client_secret` using the client assertion as part of the body. enum: - client_secret_basic - client_secret_jwt - client_secret_post - none type: string client_secret_jwt_alg: default: HS512 description: >- The algorithm to use with JWT when using `client_secret_jwt` authentication. enum: - HS256 - HS512 type: string http_proxy: description: >- The proxy to use when making HTTP requests to the IdP. type: string http_proxy_authorization: description: >- The `Proxy-Authorization` header value to be used with `http_proxy`. type: string http_version: default: 1.1 description: >- The HTTP version used for requests made by this plugin. Supported values: `1.1` for HTTP 1.1 and `1.0` for HTTP 1.0. type: number https_proxy: description: >- The proxy to use when making HTTPS requests to the IdP. type: string https_proxy_authorization: description: >- The `Proxy-Authorization` header value to be used with `https_proxy`. type: string keep_alive: default: true description: Whether to use keepalive connections to the IdP. type: boolean no_proxy: description: >- A comma-separated list of hosts that should not be proxied. type: string ssl_verify: default: false description: >- Whether to verify the certificate presented by the IdP when using HTTPS. type: boolean timeout: default: 10000 description: >- Network I/O timeout for requests to the IdP in milliseconds. maximum: 2147483646 minimum: 0 type: integer type: object type: object key_schema: properties: schema_version: description: >- The schema version to use for serialization/deserialization. Use 'latest' to always fetch the most recent version. type: string subject_name: description: The name of the subject type: string type: object ssl_verify: default: true description: >- Set to false to disable SSL certificate verification when connecting to the schema registry. type: boolean ttl: description: The TTL in seconds for the schema registry cache. maximum: 3600 minimum: 0 type: number url: description: The URL of the schema registry. type: string value_schema: properties: schema_version: description: >- The schema version to use for serialization/deserialization. Use 'latest' to always fetch the most recent version. type: string subject_name: description: The name of the subject type: string type: object type: object type: object security: properties: certificate_id: description: UUID of certificate entity for mTLS authentication. type: string ssl: description: Enables TLS. type: boolean type: object timeout: default: 10000 description: Socket timeout in milliseconds. type: integer topic: description: >- The default Kafka topic to publish to if the query parameter defined in the `topics_query_arg` does not exist in the request type: string topics_query_arg: description: >- The request query parameter name that contains the topics to publish to type: string required: - topic type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config Key: additionalProperties: false description: >- A Key object holds a representation of asymmetric keys in various formats. When Kong or a Kong plugin requires a specific public or private key to perform certain operations, it can use this entity. example: id: d958f66b-8e99-44d2-b0b4-edd5bbf24658 jwk: '{"alg":"RSA", "kid": "42", ...}' kid: '42' name: a-key pem: private_key: '-----BEGIN' public_key: '-----BEGIN' set: id: b86b331c-dcd0-4b3e-97ce-47c5a9543031 properties: created_at: description: Unix epoch when the resource was created. nullable: true type: integer id: description: A string representing a UUID (universally unique identifier). nullable: true type: string jwk: description: A JSON Web Key represented as a string. nullable: true type: string kid: description: A unique identifier for a key. type: string name: description: The name to associate with the given keys. nullable: true type: string pem: description: A keypair in PEM format. nullable: true properties: private_key: type: string public_key: type: string type: object set: description: The id (an UUID) of the key-set with which to associate the key. nullable: true properties: id: type: string type: object x-foreign: true tags: description: >- An optional set of strings associated with the Key for grouping and filtering. items: description: A string representing a tag. type: string nullable: true type: array updated_at: description: Unix epoch when the resource was last updated. nullable: true type: integer x5t: description: X.509 certificate SHA-1 thumbprint. nullable: true type: string required: - kid type: object x-speakeasy-entity: Key KeyAuth: additionalProperties: false example: consumer: id: 84a73fb8-50fc-44a7-a4d5-aa17728ee83f id: b2f34145-0343-41a4-9602-4c69dec2f269 key: IL1deIyHyQA40WpeLeA1bIUXuvTwlGjo properties: consumer: nullable: true properties: id: type: string type: object x-foreign: true x-speakeasy-terraform-ignore: true created_at: description: Unix epoch when the resource was created. nullable: true type: integer id: description: A string representing a UUID (universally unique identifier). nullable: true type: string key: nullable: true type: string tags: description: A set of strings representing tags. items: description: A string representing a tag. type: string nullable: true type: array ttl: description: key-auth ttl in seconds nullable: true type: integer type: object x-speakeasy-entity: KeyAuth KeyAuthEncPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/KeyAuthEncPluginConfig' properties: name: const: key-auth-enc x-speakeasy-entity: PluginKeyAuthEnc KeyAuthEncPluginConfig: properties: config: properties: anonymous: description: >- An optional string (consumer UUID or username) value to use as an “anonymous” consumer if authentication fails. If empty (default null), the request will fail with an authentication failure `4xx`. Note that this value must refer to the consumer `id` or `username` attribute, and **not** its `custom_id`. type: string hide_credentials: default: false description: >- An optional boolean value telling the plugin to show or hide the credential from the upstream service. If `true`, the plugin strips the credential from the request (i.e., the header, query string, or request body containing the key) before proxying it. type: boolean key_in_body: default: false description: >- If enabled, the plugin reads the request body (if said request has one and its MIME type is supported) and tries to find the key in it. Supported MIME types: `application/www-form-urlencoded`, `application/json`, and `multipart/form-data`. type: boolean key_in_header: default: true description: >- If enabled (default), the plugin reads the request header and tries to find the key in it. type: boolean key_in_query: default: true description: >- If enabled (default), the plugin reads the query parameter in the request and tries to find the key in it. type: boolean key_names: default: - apikey description: >- Describes an array of parameter names where the plugin will look for a key. The client must send the authentication key in one of those key names, and the plugin will try to read the credential from a header, request body, or query string parameter with the same name. Key names may only contain [a-z], [A-Z], [0-9], [_] underscore, and [-] hyphen. items: description: A string representing an HTTP header name. type: string type: array realm: description: >- When authentication fails the plugin sends `WWW-Authenticate` header with `realm` attribute value. type: string run_on_preflight: default: true description: >- A boolean value that indicates whether the plugin should run (and try to authenticate) on `OPTIONS` preflight requests. If set to `false`, then `OPTIONS` requests are always allowed. type: boolean type: object protocols: default: - grpc - grpcs - http - https - ws - wss description: >- A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls. format: set items: enum: - grpc - grpcs - http - https - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object KeyAuthPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/KeyAuthPluginConfig' properties: name: const: key-auth x-speakeasy-entity: PluginKeyAuth KeyAuthPluginConfig: properties: config: properties: anonymous: description: >- An optional string (consumer UUID or username) value to use as an “anonymous” consumer if authentication fails. If empty (default null), the request will fail with an authentication failure `4xx`. type: string hide_credentials: default: false description: >- An optional boolean value telling the plugin to show or hide the credential from the upstream service. If `true`, the plugin strips the credential from the request. type: boolean identity_realms: description: >- A configuration of Konnect Identity Realms that indicate where to source a consumer from. items: properties: id: description: >- A string representing a UUID (universally unique identifier). type: string region: type: string scope: enum: - cp - realm type: string type: object type: array key_in_body: default: false description: >- If enabled, the plugin reads the request body. Supported MIME types: `application/www-form-urlencoded`, `application/json`, and `multipart/form-data`. type: boolean key_in_header: default: true description: >- If enabled (default), the plugin reads the request header and tries to find the key in it. type: boolean key_in_query: default: true description: >- If enabled (default), the plugin reads the query parameter in the request and tries to find the key in it. type: boolean key_names: default: - apikey description: >- Describes an array of parameter names where the plugin will look for a key. The key names may only contain [a-z], [A-Z], [0-9], [_] underscore, and [-] hyphen. items: description: A string representing an HTTP header name. type: string type: array realm: description: >- When authentication fails the plugin sends `WWW-Authenticate` header with `realm` attribute value. type: string run_on_preflight: default: true description: >- A boolean value that indicates whether the plugin should run (and try to authenticate) on `OPTIONS` preflight requests. If set to `false`, then `OPTIONS` requests are always allowed. type: boolean type: object protocols: default: - grpc - grpcs - http - https - ws - wss description: >- A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls. format: set items: enum: - grpc - grpcs - http - https - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object KeyAuthWithoutParents: additionalProperties: false example: id: b2f34145-0343-41a4-9602-4c69dec2f269 key: IL1deIyHyQA40WpeLeA1bIUXuvTwlGjo properties: consumer: nullable: true properties: id: type: string type: object x-foreign: true x-speakeasy-terraform-ignore: true created_at: description: Unix epoch when the resource was created. nullable: true type: integer id: description: A string representing a UUID (universally unique identifier). nullable: true type: string key: nullable: true type: string tags: description: A set of strings representing tags. items: description: A string representing a tag. type: string nullable: true type: array ttl: description: key-auth ttl in seconds nullable: true type: integer type: object x-speakeasy-entity: KeyAuth KeySet: additionalProperties: false example: id: b58c7d9d-e54f-444c-b24d-cdfc4159f61e name: example-key-set tags: - idp-keys properties: created_at: description: Unix epoch when the resource was created. nullable: true type: integer id: description: A string representing a UUID (universally unique identifier). nullable: true type: string name: description: The name to associate with the given key-set. nullable: true type: string tags: description: A set of strings representing tags. items: description: A string representing a tag. type: string nullable: true type: array updated_at: description: Unix epoch when the resource was last updated. nullable: true type: integer type: object x-speakeasy-entity: KeySet LdapAuthAdvancedPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/LdapAuthAdvancedPluginConfig' properties: name: const: ldap-auth-advanced x-speakeasy-entity: PluginLdapAuthAdvanced LdapAuthAdvancedPluginConfig: properties: config: properties: anonymous: default: '' description: >- An optional string (consumer UUID or username) value to use as an “anonymous” consumer if authentication fails. If empty (default null), the request will fail with an authentication failure `4xx`. Note that this value must refer to the consumer `id` or `username` attribute, and **not** its `custom_id`. type: string attribute: description: Attribute to be used to search the user; e.g., "cn". type: string base_dn: description: >- Base DN as the starting point for the search; e.g., 'dc=example,dc=com'. type: string bind_dn: description: >- The DN to bind to. Used to perform LDAP search of user. This `bind_dn` should have permissions to search for the user being authenticated. type: string cache_ttl: default: 60 description: Cache expiry time in seconds. type: number consumer_by: default: - custom_id - username description: >- Whether to authenticate consumers based on `username`, `custom_id`, or both. items: enum: - custom_id - username type: string type: array consumer_optional: default: false description: >- Whether consumer mapping is optional. If `consumer_optional=true`, the plugin will not attempt to associate a consumer with the LDAP authenticated user. type: boolean group_base_dn: description: >- Sets a distinguished name (DN) for the entry where LDAP searches for groups begin. This field is case-insensitive.',dc=com'. type: string group_member_attribute: default: memberOf description: >- Sets the attribute holding the members of the LDAP group. This field is case-sensitive. type: string group_name_attribute: description: >- Sets the attribute holding the name of a group, typically called `name` (in Active Directory) or `cn` (in OpenLDAP). This field is case-insensitive. type: string groups_required: description: >- The groups required to be present in the LDAP search result for successful authorization. This config parameter works in both **AND** / **OR** cases. - When `["group1 group2"]` are in the same array indices, both `group1` AND `group2` need to be present in the LDAP search result. - When `["group1", "group2"]` are in different array indices, either `group1` OR `group2` need to be present in the LDAP search result. items: type: string type: array header_type: default: ldap description: >- An optional string to use as part of the Authorization header. By default, a valid Authorization header looks like this: `Authorization: ldap base64(username:password)`. If `header_type` is set to "basic", then the Authorization header would be `Authorization: basic base64(username:password)`. Note that `header_type` can take any string, not just `'ldap'` and `'basic'`. type: string hide_credentials: default: false description: >- An optional boolean value telling the plugin to hide the credential to the upstream server. It will be removed by Kong before proxying the request. type: boolean keepalive: default: 60000 description: >- An optional value in milliseconds that defines how long an idle connection to LDAP server will live before being closed. type: number ldap_host: description: Host on which the LDAP server is running. type: string ldap_password: description: The password to the LDAP server. type: string ldap_port: default: 389 description: >- TCP port where the LDAP server is listening. 389 is the default port for non-SSL LDAP and AD. 636 is the port required for SSL LDAP and AD. If `ldaps` is configured, you must use port 636. type: number ldaps: default: false description: >- Set it to `true` to use `ldaps`, a secure protocol (that can be configured to TLS) to connect to the LDAP server. When `ldaps` is configured, you must use port 636. If the `ldap` setting is enabled, ensure the `start_tls` setting is disabled. type: boolean log_search_results: default: false description: >- Displays all the LDAP search results received from the LDAP server for debugging purposes. Not recommended to be enabled in a production environment. type: boolean realm: description: >- When authentication fails the plugin sends `WWW-Authenticate` header with `realm` attribute value. type: string start_tls: default: false description: >- Set it to `true` to issue StartTLS (Transport Layer Security) extended operation over `ldap` connection. If the `start_tls` setting is enabled, ensure the `ldaps` setting is disabled. type: boolean timeout: default: 10000 description: >- An optional timeout in milliseconds when waiting for connection with LDAP server. type: number verify_ldap_host: default: false description: >- Set to `true` to authenticate LDAP server. The server certificate will be verified according to the CA certificates specified by the `lua_ssl_trusted_certificate` directive. type: boolean required: - attribute - base_dn - ldap_host type: object protocols: default: - grpc - grpcs - http - https - ws - wss description: >- A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls. format: set items: enum: - grpc - grpcs - http - https - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config LdapAuthPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/LdapAuthPluginConfig' properties: name: const: ldap-auth x-speakeasy-entity: PluginLdapAuth LdapAuthPluginConfig: properties: config: properties: anonymous: description: >- An optional string (consumer UUID or username) value to use as an “anonymous” consumer if authentication fails. If empty (default null), the request fails with an authentication failure `4xx`. type: string attribute: description: Attribute to be used to search the user; e.g. cn type: string base_dn: description: >- Base DN as the starting point for the search; e.g., dc=example,dc=com type: string cache_ttl: default: 60 description: Cache expiry time in seconds. type: number header_type: default: ldap description: An optional string to use as part of the Authorization header type: string hide_credentials: default: false description: >- An optional boolean value telling the plugin to hide the credential to the upstream server. It will be removed by Kong before proxying the request. type: boolean keepalive: default: 60000 description: >- An optional value in milliseconds that defines how long an idle connection to LDAP server will live before being closed. type: number ldap_host: description: A string representing a host name, such as example.com. type: string ldap_port: default: 389 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer ldaps: default: false description: >- Set to `true` to connect using the LDAPS protocol (LDAP over TLS). When `ldaps` is configured, you must use port 636. If the `ldap` setting is enabled, ensure the `start_tls` setting is disabled. type: boolean realm: description: >- When authentication fails the plugin sends `WWW-Authenticate` header with `realm` attribute value. type: string start_tls: default: false description: >- Set it to `true` to issue StartTLS (Transport Layer Security) extended operation over `ldap` connection. If the `start_tls` setting is enabled, ensure the `ldaps` setting is disabled. type: boolean timeout: default: 10000 description: >- An optional timeout in milliseconds when waiting for connection with LDAP server. type: number verify_ldap_host: default: false description: >- Set to `true` to authenticate LDAP server. The server certificate will be verified according to the CA certificates specified by the `lua_ssl_trusted_certificate` directive. type: boolean required: - attribute - base_dn - ldap_host type: object protocols: default: - grpc - grpcs - http - https - ws - wss description: >- A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls. format: set items: enum: - grpc - grpcs - http - https - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config LogglyPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/LogglyPluginConfig' properties: name: const: loggly x-speakeasy-entity: PluginLoggly LogglyPluginConfig: properties: config: properties: client_errors_severity: default: info enum: - alert - crit - debug - emerg - err - info - notice - warning type: string custom_fields_by_lua: additionalProperties: type: string description: Lua code as a key-value map type: object host: default: logs-01.loggly.com description: A string representing a host name, such as example.com. type: string key: type: string log_level: default: info enum: - alert - crit - debug - emerg - err - info - notice - warning type: string port: default: 514 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer server_errors_severity: default: info enum: - alert - crit - debug - emerg - err - info - notice - warning type: string successful_severity: default: info enum: - alert - crit - debug - emerg - err - info - notice - warning type: string tags: default: - kong items: type: string type: array timeout: default: 10000 type: number required: - key type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing protocols. format: set items: description: A string representing a protocol, such as HTTP or HTTPS. enum: - grpc - grpcs - http - https - tcp - tls - tls_passthrough - udp - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config MTLSAuth: additionalProperties: false example: ca_certificate: id: b2f34145-0343-41a4-9602-4c69dec2f260 consumer: id: 84a73fb8-50fc-44a7-a4d5-aa17728ee83f id: b2f34145-0343-41a4-9602-4c69dec2f269 subject_name: CA_Subject_Name properties: ca_certificate: properties: id: type: string type: object x-foreign: true consumer: nullable: true properties: id: type: string type: object x-foreign: true x-speakeasy-terraform-ignore: true created_at: description: Unix epoch when the resource was created. nullable: true type: integer id: description: A string representing a UUID (universally unique identifier). nullable: true type: string subject_name: type: string tags: description: A set of strings representing tags. items: description: A string representing a tag. type: string nullable: true type: array required: - subject_name type: object x-speakeasy-entity: MTLSAuth MTLSAuthWithoutParents: additionalProperties: false example: ca_certificate: id: b2f34145-0343-41a4-9602-4c69dec2f260 id: b2f34145-0343-41a4-9602-4c69dec2f269 subject_name: CA_Subject_Name properties: ca_certificate: properties: id: type: string type: object x-foreign: true consumer: nullable: true properties: id: type: string type: object x-foreign: true x-speakeasy-terraform-ignore: true created_at: description: Unix epoch when the resource was created. nullable: true type: integer id: description: A string representing a UUID (universally unique identifier). nullable: true type: string subject_name: type: string tags: description: A set of strings representing tags. items: description: A string representing a tag. type: string nullable: true type: array required: - subject_name type: object x-speakeasy-entity: MTLSAuth MockingPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/MockingPluginConfig' properties: name: const: mocking x-speakeasy-entity: PluginMocking MockingPluginConfig: properties: config: properties: api_specification: description: >- The contents of the specification file. You must use this option for hybrid or DB-less mode. You can include the full specification as part of the configuration. In Kong Manager, you can copy and paste the contents of the spec directly into the `Config.Api Specification` text field. type: string api_specification_filename: description: >- The path and name of the specification file loaded into Kong Gateway's database. You cannot use this option for DB-less or hybrid mode. type: string custom_base_path: description: >- The base path to be used for path match evaluation. This value is ignored if `include_base_path` is set to `false`. type: string include_base_path: default: false description: >- Indicates whether to include the base path when performing path match evaluation. type: boolean included_status_codes: description: >- A global list of the HTTP status codes that can only be selected and returned. items: type: integer type: array max_delay_time: default: 1 description: >- The maximum value in seconds of delay time. Set this value when `random_delay` is enabled and you want to adjust the default. The value must be greater than the `min_delay_time`. type: number min_delay_time: default: 0.001 description: >- The minimum value in seconds of delay time. Set this value when `random_delay` is enabled and you want to adjust the default. The value must be less than the `max_delay_time`. type: number random_delay: default: false description: >- Enables a random delay in the mocked response. Introduces delays to simulate real-time response times by APIs. type: boolean random_examples: default: false description: >- Randomly selects one example and returns it. This parameter requires the spec to have multiple examples configured. type: boolean random_status_code: default: false description: >- Determines whether to randomly select an HTTP status code from the responses of the corresponding API method. The default value is `false`, which means the minimum HTTP status code is always selected and returned. type: boolean type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object MtlsAuthPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/MtlsAuthPluginConfig' properties: name: const: mtls-auth x-speakeasy-entity: PluginMtlsAuth MtlsAuthPluginConfig: properties: config: properties: allow_partial_chain: default: false description: >- Allow certificate verification with only an intermediate certificate. When this is enabled, you don't need to upload the full chain to Kong Certificates. type: boolean anonymous: description: >- An optional string (consumer UUID or username) value to use as an “anonymous” consumer if authentication fails. If empty (default null), the request fails with an authentication failure `4xx`. Note that this value must refer to the consumer `id` or `username` attribute, and **not** its `custom_id`. type: string authenticated_group_by: default: CN description: >- Certificate property to use as the authenticated group. Valid values are `CN` (Common Name) or `DN` (Distinguished Name). Once `skip_consumer_lookup` is applied, any client with a valid certificate can access the Service/API. To restrict usage to only some of the authenticated users, also add the ACL plugin (not covered here) and create allowed or denied groups of users. enum: - CN - DN type: string ca_certificates: description: >- List of CA Certificates strings to use as Certificate Authorities (CA) when validating a client certificate. At least one is required but you can specify as many as needed. The value of this array is comprised of primary keys (`id`). items: type: string type: array cache_ttl: default: 60 description: Cache expiry time in seconds. type: number cert_cache_ttl: default: 60000 description: >- The length of time in seconds between refreshes of the revocation check status cache. type: number consumer_by: default: - custom_id - username description: >- Whether to match the subject name of the client-supplied certificate against consumer's `username` and/or `custom_id` attribute. If set to `[]` (the empty array), then auto-matching is disabled. items: enum: - custom_id - username type: string type: array default_consumer: description: >- The UUID or username of the consumer to use when a trusted client certificate is presented but no consumer matches. Note that this value must refer to the consumer `id` or `username` attribute, and **not** its `custom_id`. type: string http_proxy_host: description: A string representing a host name, such as example.com. type: string http_proxy_port: description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer http_timeout: default: 30000 description: >- HTTP timeout threshold in milliseconds when communicating with the OCSP server or downloading CRL. type: number https_proxy_host: description: A string representing a host name, such as example.com. type: string https_proxy_port: description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer revocation_check_mode: default: IGNORE_CA_ERROR description: >- Controls client certificate revocation check behavior. If set to `SKIP`, no revocation check is performed. If set to `IGNORE_CA_ERROR`, the plugin respects the revocation status when either OCSP or CRL URL is set, and doesn't fail on network issues. If set to `STRICT`, the plugin only treats the certificate as valid when it's able to verify the revocation status. enum: - IGNORE_CA_ERROR - SKIP - STRICT type: string send_ca_dn: default: false description: >- Sends the distinguished names (DN) of the configured CA list in the TLS handshake message. type: boolean skip_consumer_lookup: default: false description: >- Skip consumer lookup once certificate is trusted against the configured CA list. type: boolean required: - ca_certificates type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config OasValidationPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/OasValidationPluginConfig' properties: name: const: oas-validation x-speakeasy-entity: PluginOasValidation OasValidationPluginConfig: properties: config: properties: allowed_header_parameters: default: Host,Content-Type,User-Agent,Accept,Content-Length description: >- List of header parameters in the request that will be ignored when performing HTTP header validation. These are additional headers added to an API request beyond those defined in the API specification. For example, you might include the HTTP header `User-Agent`, which lets servers and network peers identify the application, operating system, vendor, and/or version of the requesting user agent. type: string api_spec: description: >- The API specification defined using either Swagger or the OpenAPI. This can be either a JSON or YAML based file. If using a YAML file, the spec needs to be URI-Encoded to preserve the YAML format. type: string api_spec_encoded: default: true description: Indicates whether the api_spec is URI-Encoded. type: boolean custom_base_path: description: >- The base path to be used for path match evaluation. This value is ignored if `include_base_path` is set to `false`. type: string header_parameter_check: default: false description: >- If set to true, checks if HTTP header parameters in the request exist in the API specification. type: boolean include_base_path: default: false description: >- Indicates whether to include the base path when performing path match evaluation. type: boolean notify_only_request_validation_failure: default: false description: >- If set to true, notifications via event hooks are enabled, but request based validation failures don't affect the request flow. type: boolean notify_only_response_body_validation_failure: default: false description: >- If set to true, notifications via event hooks are enabled, but response validation failures don't affect the response flow. type: boolean query_parameter_check: default: false description: >- If set to true, checks if query parameters in the request exist in the API specification. type: boolean validate_request_body: default: true description: >- If set to true, validates the request body content against the API specification. type: boolean validate_request_header_params: default: true description: >- If set to true, validates HTTP header parameters against the API specification. type: boolean validate_request_query_params: default: true description: >- If set to true, validates query parameters against the API specification. type: boolean validate_request_uri_params: default: true description: >- If set to true, validates URI parameters in the request against the API specification. type: boolean validate_response_body: default: false description: >- If set to true, validates the response from the upstream services against the API specification. If validation fails, it results in an `HTTP 406 Not Acceptable` status code. type: boolean verbose_response: default: false description: >- If set to true, returns a detailed error message for invalid requests & responses. This is useful while testing. type: boolean required: - api_spec type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config Oauth2IntrospectionPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/Oauth2IntrospectionPluginConfig' properties: name: const: oauth2-introspection x-speakeasy-entity: PluginOauth2Introspection Oauth2IntrospectionPluginConfig: properties: config: properties: anonymous: default: '' description: >- An optional string (consumer UUID or username) value to use as an “anonymous” consumer if authentication fails. If empty (default null), the request fails with an authentication failure `4xx`. Note that this value must refer to the consumer `id` or `username` attribute, and **not** its `custom_id`. type: string authorization_value: description: >- The value to set as the `Authorization` header when querying the introspection endpoint. This depends on the OAuth 2.0 server, but usually is the `client_id` and `client_secret` as a Base64-encoded Basic Auth string (`Basic MG9hNWl...`). type: string consumer_by: default: username description: >- A string indicating whether to associate OAuth2 `username` or `client_id` with the consumer's username. OAuth2 `username` is mapped to a consumer's `username` field, while an OAuth2 `client_id` maps to a consumer's `custom_id`. enum: - client_id - username type: string custom_claims_forward: default: [] description: >- A list of custom claims to be forwarded from the introspection response to the upstream request. Claims are forwarded in headers with prefix `X-Credential-{claim-name}`. items: type: string type: array custom_introspection_headers: additionalProperties: true description: >- A list of custom headers to be added in the introspection request. type: object hide_credentials: default: false description: >- An optional boolean value telling the plugin to hide the credential to the upstream API server. It will be removed by Kong before proxying the request. type: boolean introspect_request: default: false description: >- A boolean indicating whether to forward information about the current downstream request to the introspect endpoint. If true, headers `X-Request-Path` and `X-Request-Http-Method` will be inserted into the introspect request. type: boolean introspection_url: description: >- A string representing a URL, such as https://example.com/path/to/resource?q=search. type: string keepalive: default: 60000 description: >- An optional value in milliseconds that defines how long an idle connection lives before being closed. type: integer run_on_preflight: default: true description: >- A boolean value that indicates whether the plugin should run (and try to authenticate) on `OPTIONS` preflight requests. If set to `false`, then `OPTIONS` requests will always be allowed. type: boolean timeout: default: 10000 description: >- An optional timeout in milliseconds when sending data to the upstream server. type: integer token_type_hint: description: >- The `token_type_hint` value to associate to introspection requests. type: string ttl: default: 30 description: >- The TTL in seconds for the introspection response. Set to 0 to disable the expiration. type: number required: - authorization_value - introspection_url type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config Oauth2Plugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/Oauth2PluginConfig' properties: name: const: oauth2 x-speakeasy-entity: PluginOauth2 Oauth2PluginConfig: properties: config: properties: accept_http_if_already_terminated: default: false description: >- Accepts HTTPs requests that have already been terminated by a proxy or load balancer. type: boolean anonymous: description: >- An optional string (consumer UUID or username) value to use as an “anonymous” consumer if authentication fails. type: string auth_header_name: default: authorization description: >- The name of the header that is supposed to carry the access token. type: string enable_authorization_code: default: false description: >- An optional boolean value to enable the three-legged Authorization Code flow (RFC 6742 Section 4.1). type: boolean enable_client_credentials: default: false description: >- An optional boolean value to enable the Client Credentials Grant flow (RFC 6742 Section 4.4). type: boolean enable_implicit_grant: default: false description: >- An optional boolean value to enable the Implicit Grant flow which allows to provision a token as a result of the authorization process (RFC 6742 Section 4.2). type: boolean enable_password_grant: default: false description: >- An optional boolean value to enable the Resource Owner Password Credentials Grant flow (RFC 6742 Section 4.3). type: boolean global_credentials: default: false description: >- An optional boolean value that allows using the same OAuth credentials generated by the plugin with any other service whose OAuth 2.0 plugin configuration also has `config.global_credentials=true`. type: boolean hide_credentials: default: false description: >- An optional boolean value telling the plugin to show or hide the credential from the upstream service. type: boolean mandatory_scope: default: false description: >- An optional boolean value telling the plugin to require at least one `scope` to be authorized by the end user. type: boolean persistent_refresh_token: default: false type: boolean pkce: default: lax description: >- Specifies a mode of how the Proof Key for Code Exchange (PKCE) should be handled by the plugin. enum: - lax - none - strict type: string provision_key: description: >- The unique key the plugin has generated when it has been added to the Service. type: string realm: description: >- When authentication fails the plugin sends `WWW-Authenticate` header with `realm` attribute value. type: string refresh_token_ttl: default: 1209600 description: Time-to-live value for data maximum: 100000000 minimum: 0 type: number reuse_refresh_token: default: false description: >- An optional boolean value that indicates whether an OAuth refresh token is reused when refreshing an access token. type: boolean scopes: description: >- Describes an array of scope names that will be available to the end user. If `mandatory_scope` is set to `true`, then `scopes` are required. items: type: string type: array token_expiration: default: 7200 description: >- An optional integer value telling the plugin how many seconds a token should last, after which the client will need to refresh the token. Set to `0` to disable the expiration. type: number type: object protocols: default: - grpc - grpcs - http - https - ws - wss description: >- A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls. format: set items: enum: - grpc - grpcs - http - https - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object OpaPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/OpaPluginConfig' properties: name: const: opa x-speakeasy-entity: PluginOpa OpaPluginConfig: properties: config: properties: include_body_in_opa_input: default: false type: boolean include_consumer_in_opa_input: default: false description: >- If set to true, the Kong Gateway Consumer object in use for the current request (if any) is included as input to OPA. type: boolean include_parsed_json_body_in_opa_input: default: false description: >- If set to true and the `Content-Type` header of the current request is `application/json`, the request body will be JSON decoded and the decoded struct is included as input to OPA. type: boolean include_route_in_opa_input: default: false description: >- If set to true, the Kong Gateway Route object in use for the current request is included as input to OPA. type: boolean include_service_in_opa_input: default: false description: >- If set to true, the Kong Gateway Service object in use for the current request is included as input to OPA. type: boolean include_uri_captures_in_opa_input: default: false description: >- If set to true, the regex capture groups captured on the Kong Gateway Route's path field in the current request (if any) are included as input to OPA. type: boolean opa_host: default: localhost description: A string representing a host name, such as example.com. type: string opa_path: description: >- A string representing a URL path, such as /path/to/resource. Must start with a forward slash (/) and must not contain empty segments (i.e., two consecutive forward slashes). type: string opa_port: default: 8181 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer opa_protocol: default: http description: >- The protocol to use when talking to Open Policy Agent (OPA) server. Allowed protocols are `http` and `https`. enum: - http - https type: string ssl_verify: default: true description: >- If set to true, the OPA certificate will be verified according to the CA certificates specified in lua_ssl_trusted_certificate. type: boolean required: - opa_path type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config OpenidConnectPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/OpenidConnectPluginConfig' properties: name: const: openid-connect x-speakeasy-entity: PluginOpenidConnect OpenidConnectPluginConfig: properties: config: properties: anonymous: description: >- An optional string (consumer UUID or username) value that functions as an “anonymous” consumer if authentication fails. If empty (default null), requests that fail authentication will return a `4xx` HTTP status code. This value must refer to the consumer `id` or `username` attribute, and **not** its `custom_id`. type: string audience: description: The audience passed to the authorization endpoint. items: type: string type: array audience_claim: default: - aud description: >- The claim that contains the audience. If multiple values are set, it means the claim is inside a nested object of the token payload. items: type: string type: array audience_required: description: >- The audiences (`audience_claim` claim) required to be present in the access token (or introspection results) for successful authorization. This config parameter works in both **AND** / **OR** cases. items: type: string type: array auth_methods: default: - authorization_code - bearer - client_credentials - introspection - kong_oauth2 - password - refresh_token - session - userinfo description: Types of credentials/grants to enable. items: enum: - authorization_code - bearer - client_credentials - introspection - kong_oauth2 - password - refresh_token - session - userinfo type: string type: array authenticated_groups_claim: description: >- The claim that contains authenticated groups. This setting can be used together with ACL plugin, but it also enables IdP managed groups with other applications and integrations. If multiple values are set, it means the claim is inside a nested object of the token payload. items: type: string type: array authorization_cookie_domain: description: The authorization cookie Domain flag. type: string authorization_cookie_http_only: default: true description: >- Forbids JavaScript from accessing the cookie, for example, through the `Document.cookie` property. type: boolean authorization_cookie_name: default: authorization description: The authorization cookie name. type: string authorization_cookie_path: default: / description: The authorization cookie Path flag. type: string authorization_cookie_same_site: default: Default description: >- Controls whether a cookie is sent with cross-origin requests, providing some protection against cross-site request forgery attacks. enum: - Default - Lax - None - Strict type: string authorization_cookie_secure: description: >- Cookie is only sent to the server when a request is made with the https: scheme (except on localhost), and therefore is more resistant to man-in-the-middle attacks. type: boolean authorization_endpoint: description: >- The authorization endpoint. If set it overrides the value in `authorization_endpoint` returned by the discovery endpoint. type: string authorization_query_args_client: description: >- Extra query arguments passed from the client to the authorization endpoint. items: type: string type: array authorization_query_args_names: description: Extra query argument names passed to the authorization endpoint. items: type: string type: array authorization_query_args_values: description: >- Extra query argument values passed to the authorization endpoint. items: type: string type: array authorization_rolling_timeout: default: 600 description: >- Specifies how long the session used for the authorization code flow can be used in seconds until it needs to be renewed. 0 disables the checks and rolling. type: number bearer_token_cookie_name: description: The name of the cookie in which the bearer token is passed. type: string bearer_token_param_type: default: - body - header - query description: >- Where to look for the bearer token: - `header`: search the `Authorization`, `access-token`, and `x-access-token` HTTP headers - `query`: search the URL's query string - `body`: search the HTTP request body - `cookie`: search the HTTP request cookies specified with `config.bearer_token_cookie_name`. items: enum: - body - cookie - header - query type: string type: array by_username_ignore_case: default: false description: >- If `consumer_by` is set to `username`, specify whether `username` can match consumers case-insensitively. type: boolean cache_introspection: default: true description: Cache the introspection endpoint requests. type: boolean cache_token_exchange: default: true description: Cache the token exchange endpoint requests. type: boolean cache_tokens: default: true description: Cache the token endpoint requests. type: boolean cache_tokens_salt: description: >- Salt used for generating the cache key that is used for caching the token endpoint requests. type: string cache_ttl: default: 3600 description: >- The default cache ttl in seconds that is used in case the cached object does not specify the expiry. type: number cache_ttl_max: description: The maximum cache ttl in seconds (enforced). type: number cache_ttl_min: description: The minimum cache ttl in seconds (enforced). type: number cache_ttl_neg: description: The negative cache ttl in seconds. type: number cache_ttl_resurrect: description: The resurrection ttl in seconds. type: number cache_user_info: default: true description: Cache the user info requests. type: boolean claims_forbidden: description: If given, these claims are forbidden in the token payload. items: type: string type: array client_alg: description: >- The algorithm to use for client_secret_jwt (only HS***) or private_key_jwt authentication. items: enum: - ES256 - ES384 - ES512 - EdDSA - HS256 - HS384 - HS512 - PS256 - PS384 - PS512 - RS256 - RS384 - RS512 type: string type: array client_arg: default: client_id description: >- The client to use for this request (the selection is made with a request parameter with the same name). type: string client_auth: description: >- The default OpenID Connect client authentication method is 'client_secret_basic' (using 'Authorization: Basic' header), 'client_secret_post' (credentials in body), 'client_secret_jwt' (signed client assertion in body), 'private_key_jwt' (private key-signed assertion), 'tls_client_auth' (client certificate), 'self_signed_tls_client_auth' (self-signed client certificate), and 'none' (no authentication). items: enum: - client_secret_basic - client_secret_jwt - client_secret_post - none - private_key_jwt - self_signed_tls_client_auth - tls_client_auth type: string type: array client_credentials_param_type: default: - body - header - query description: >- Where to look for the client credentials: - `header`: search the HTTP headers - `query`: search the URL's query string - `body`: search from the HTTP request body. items: enum: - body - header - query type: string type: array client_id: description: >- The client id(s) that the plugin uses when it calls authenticated endpoints on the identity provider. items: type: string type: array client_jwk: description: The JWK used for the private_key_jwt authentication. items: properties: alg: type: string crv: type: string d: type: string dp: type: string dq: type: string e: type: string issuer: type: string k: type: string key_ops: items: type: string type: array kid: type: string kty: type: string 'n': type: string oth: type: string p: type: string q: type: string qi: type: string r: type: string t: type: string use: type: string x: type: string x5c: items: type: string type: array x5t: type: string x5t#S256: type: string x5u: type: string 'y': type: string type: object type: array client_secret: description: The client secret. items: type: string type: array cluster_cache_redis: properties: cluster_max_redirections: default: 5 description: Maximum retry attempts for redirection. type: integer cluster_nodes: description: >- Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element. items: properties: ip: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array connect_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer connection_is_proxied: default: false description: >- If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address. type: boolean database: default: 0 description: >- Database to use for the Redis connection when using the `redis` strategy type: integer host: default: 127.0.0.1 description: A string representing a host name, such as example.com. type: string keepalive_backlog: description: >- Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`. maximum: 2147483646 minimum: 0 type: integer keepalive_pool_size: default: 256 description: >- The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn't specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low. maximum: 2147483646 minimum: 1 type: integer password: description: >- Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer read_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer send_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer sentinel_master: description: >- Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel. type: string sentinel_nodes: description: >- Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element. items: properties: host: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array sentinel_password: description: >- Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels. type: string sentinel_role: description: >- Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel. enum: - any - master - slave type: string sentinel_username: description: >- Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won't be performed. This requires Redis v6.2.0+. type: string server_name: description: >- A string representing an SNI (server name indication) value for TLS. type: string ssl: default: false description: If set to true, uses SSL to connect to Redis. type: boolean ssl_verify: default: false description: >- If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly. type: boolean username: description: >- Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`. type: string type: object cluster_cache_strategy: default: 'off' description: >- The strategy to use for the cluster cache. If set, the plugin will share cache with nodes configured with the same strategy backend. Currentlly only introspection cache is shared. enum: - 'off' - redis type: string consumer_by: default: - custom_id - username description: >- Consumer fields used for mapping: - `id`: try to find the matching Consumer by `id` - `username`: try to find the matching Consumer by `username` - `custom_id`: try to find the matching Consumer by `custom_id`. items: enum: - custom_id - id - username type: string type: array consumer_claim: description: >- The claim used for consumer mapping. If multiple values are set, it means the claim is inside a nested object of the token payload. items: type: string type: array consumer_groups_claim: description: >- The claim used for consumer groups mapping. If multiple values are set, it means the claim is inside a nested object of the token payload. items: type: string type: array consumer_groups_optional: default: false description: Do not terminate the request if consumer groups mapping fails. type: boolean consumer_optional: default: false description: Do not terminate the request if consumer mapping fails. type: boolean credential_claim: default: - sub description: >- The claim used to derive virtual credentials (e.g. to be consumed by the rate-limiting plugin), in case the consumer mapping is not used. If multiple values are set, it means the claim is inside a nested object of the token payload. items: type: string type: array disable_session: description: Disable issuing the session cookie with the specified grants. items: enum: - authorization_code - bearer - client_credentials - introspection - kong_oauth2 - password - refresh_token - session - userinfo type: string type: array discovery_headers_names: description: Extra header names passed to the discovery endpoint. items: type: string type: array discovery_headers_values: description: Extra header values passed to the discovery endpoint. items: type: string type: array display_errors: default: false description: Display errors on failure responses. type: boolean domains: description: The allowed values for the `hd` claim. items: type: string type: array downstream_access_token_header: description: The downstream access token header. type: string downstream_access_token_jwk_header: description: The downstream access token JWK header. type: string downstream_headers_claims: description: >- The downstream header claims. If multiple values are set, it means the claim is inside a nested object of the token payload. items: type: string type: array downstream_headers_names: description: The downstream header names for the claim values. items: type: string type: array downstream_id_token_header: description: The downstream id token header. type: string downstream_id_token_jwk_header: description: The downstream id token JWK header. type: string downstream_introspection_header: description: The downstream introspection header. type: string downstream_introspection_jwt_header: description: The downstream introspection JWT header. type: string downstream_refresh_token_header: description: The downstream refresh token header. type: string downstream_session_id_header: description: The downstream session id header. type: string downstream_user_info_header: description: The downstream user info header. type: string downstream_user_info_jwt_header: description: >- The downstream user info JWT header (in case the user info returns a JWT response). type: string dpop_proof_lifetime: default: 300 description: >- Specifies the lifetime in seconds of the DPoP proof. It determines how long the same proof can be used after creation. The creation time is determined by the nonce creation time if a nonce is used, and the iat claim otherwise. type: number dpop_use_nonce: default: false description: >- Specifies whether to challenge the client with a nonce value for DPoP proof. When enabled it will also be used to calculate the DPoP proof lifetime. type: boolean enable_hs_signatures: default: false description: >- Enable shared secret, for example, HS256, signatures (when disabled they will not be accepted). type: boolean end_session_endpoint: description: >- The end session endpoint. If set it overrides the value in `end_session_endpoint` returned by the discovery endpoint. type: string expose_error_code: default: true description: >- Specifies whether to expose the error code header, as defined in RFC 6750. If an authorization request fails, this header is sent in the response. Set to `false` to disable. type: boolean extra_jwks_uris: description: >- JWKS URIs whose public keys are trusted (in addition to the keys found with the discovery). items: description: >- A string representing a URL, such as https://example.com/path/to/resource?q=search. type: string type: array forbidden_destroy_session: default: true description: Destroy any active session for the forbidden requests. type: boolean forbidden_error_message: default: Forbidden description: >- The error message for the forbidden requests (when not using the redirection). type: string forbidden_redirect_uri: description: Where to redirect the client on forbidden requests. items: description: >- A string representing a URL, such as https://example.com/path/to/resource?q=search. type: string type: array groups_claim: default: - groups description: >- The claim that contains the groups. If multiple values are set, it means the claim is inside a nested object of the token payload. items: type: string type: array groups_required: description: >- The groups (`groups_claim` claim) required to be present in the access token (or introspection results) for successful authorization. This config parameter works in both **AND** / **OR** cases. items: type: string type: array hide_credentials: default: false description: >- Remove the credentials used for authentication from the request. If multiple credentials are sent with the same request, the plugin will remove those that were used for successful authentication. type: boolean http_proxy: description: The HTTP proxy. type: string http_proxy_authorization: description: The HTTP proxy authorization. type: string http_version: default: 1.1 description: >- The HTTP version used for the requests by this plugin: - `1.1`: HTTP 1.1 (the default) - `1.0`: HTTP 1.0. type: number https_proxy: description: The HTTPS proxy. type: string https_proxy_authorization: description: The HTTPS proxy authorization. type: string id_token_param_name: description: The name of the parameter used to pass the id token. type: string id_token_param_type: default: - body - header - query description: >- Where to look for the id token: - `header`: search the HTTP headers - `query`: search the URL's query string - `body`: search the HTTP request body. items: enum: - body - header - query type: string type: array ignore_signature: default: [] description: >- Skip the token signature verification on certain grants: - `password`: OAuth password grant - `client_credentials`: OAuth client credentials grant - `authorization_code`: authorization code flow - `refresh_token`: OAuth refresh token grant - `session`: session cookie authentication - `introspection`: OAuth introspection - `userinfo`: OpenID Connect user info endpoint authentication. items: enum: - authorization_code - client_credentials - introspection - password - refresh_token - session - userinfo type: string type: array introspect_jwt_tokens: default: false description: >- Specifies whether to introspect the JWT access tokens (can be used to check for revocations). type: boolean introspection_accept: default: application/json description: >- The value of `Accept` header for introspection requests: - `application/json`: introspection response as JSON - `application/token-introspection+jwt`: introspection response as JWT (from the current IETF draft document) - `application/jwt`: introspection response as JWT (from the obsolete IETF draft document). enum: - application/json - application/jwt - application/token-introspection+jwt type: string introspection_check_active: default: true description: >- Check that the introspection response has an `active` claim with a value of `true`. type: boolean introspection_endpoint: description: >- The introspection endpoint. If set it overrides the value in `introspection_endpoint` returned by the discovery endpoint. type: string introspection_endpoint_auth_method: description: >- The introspection endpoint authentication method: : `client_secret_basic`, `client_secret_post`, `client_secret_jwt`, `private_key_jwt`, `tls_client_auth`, `self_signed_tls_client_auth`, or `none`: do not authenticate enum: - client_secret_basic - client_secret_jwt - client_secret_post - none - private_key_jwt - self_signed_tls_client_auth - tls_client_auth type: string introspection_headers_client: description: >- Extra headers passed from the client to the introspection endpoint. items: type: string type: array introspection_headers_names: description: Extra header names passed to the introspection endpoint. items: type: string type: array introspection_headers_values: description: Extra header values passed to the introspection endpoint. items: type: string type: array introspection_hint: default: access_token description: >- Introspection hint parameter value passed to the introspection endpoint. type: string introspection_post_args_client: description: >- Extra post arguments passed from the client to the introspection endpoint. items: type: string type: array introspection_post_args_client_headers: description: >- Extra post arguments passed from the client headers to the introspection endpoint. items: type: string type: array introspection_post_args_names: description: Extra post argument names passed to the introspection endpoint. items: type: string type: array introspection_post_args_values: description: Extra post argument values passed to the introspection endpoint. items: type: string type: array introspection_token_param_name: default: token description: Designate token's parameter name for introspection. type: string issuer: description: >- The discovery endpoint (or the issuer identifier). When there is no discovery endpoint, please also configure `config.using_pseudo_issuer=true`. type: string issuers_allowed: description: The issuers allowed to be present in the tokens (`iss` claim). items: type: string type: array jwt_session_claim: default: sid description: The claim to match against the JWT session cookie. type: string jwt_session_cookie: description: The name of the JWT session cookie. type: string keepalive: default: true description: Use keepalive with the HTTP client. type: boolean leeway: default: 0 description: >- Defines leeway time (in seconds) for `auth_time`, `exp`, `iat`, and `nbf` claims type: number login_action: default: upstream description: >- What to do after successful login: - `upstream`: proxy request to upstream service - `response`: terminate request with a response - `redirect`: redirect to a different location. enum: - redirect - response - upstream type: string login_methods: default: - authorization_code description: Enable login functionality with specified grants. items: enum: - authorization_code - bearer - client_credentials - introspection - kong_oauth2 - password - refresh_token - session - userinfo type: string type: array login_redirect_mode: default: fragment description: >- Where to place `login_tokens` when using `redirect` `login_action`: - `query`: place tokens in query string - `fragment`: place tokens in url fragment (not readable by servers). enum: - fragment - query type: string login_redirect_uri: description: >- Where to redirect the client when `login_action` is set to `redirect`. items: description: >- A string representing a URL, such as https://example.com/path/to/resource?q=search. type: string type: array login_tokens: default: - id_token description: >- What tokens to include in `response` body or `redirect` query string or fragment: - `id_token`: include id token - `access_token`: include access token - `refresh_token`: include refresh token - `tokens`: include the full token endpoint response - `introspection`: include introspection response. items: enum: - access_token - id_token - introspection - refresh_token - tokens type: string type: array logout_methods: default: - DELETE - POST description: >- The request methods that can activate the logout: - `POST`: HTTP POST method - `GET`: HTTP GET method - `DELETE`: HTTP DELETE method. items: enum: - DELETE - GET - POST type: string type: array logout_post_arg: description: The request body argument that activates the logout. type: string logout_query_arg: description: The request query argument that activates the logout. type: string logout_redirect_uri: description: Where to redirect the client after the logout. items: description: >- A string representing a URL, such as https://example.com/path/to/resource?q=search. type: string type: array logout_revoke: default: false description: >- Revoke tokens as part of the logout. For more granular token revocation, you can also adjust the `logout_revoke_access_token` and `logout_revoke_refresh_token` parameters. type: boolean logout_revoke_access_token: default: true description: >- Revoke the access token as part of the logout. Requires `logout_revoke` to be set to `true`. type: boolean logout_revoke_refresh_token: default: true description: >- Revoke the refresh token as part of the logout. Requires `logout_revoke` to be set to `true`. type: boolean logout_uri_suffix: description: The request URI suffix that activates the logout. type: string max_age: description: The maximum age (in seconds) compared to the `auth_time` claim. type: number mtls_introspection_endpoint: description: >- Alias for the introspection endpoint to be used for mTLS client authentication. If set it overrides the value in `mtls_endpoint_aliases` returned by the discovery endpoint. type: string mtls_revocation_endpoint: description: >- Alias for the introspection endpoint to be used for mTLS client authentication. If set it overrides the value in `mtls_endpoint_aliases` returned by the discovery endpoint. type: string mtls_token_endpoint: description: >- Alias for the token endpoint to be used for mTLS client authentication. If set it overrides the value in `mtls_endpoint_aliases` returned by the discovery endpoint. type: string no_proxy: description: Do not use proxy with these hosts. type: string password_param_type: default: - body - header - query description: >- Where to look for the username and password: - `header`: search the HTTP headers - `query`: search the URL's query string - `body`: search the HTTP request body. items: enum: - body - header - query type: string type: array preserve_query_args: default: false description: >- With this parameter, you can preserve request query arguments even when doing authorization code flow. type: boolean proof_of_possession_auth_methods_validation: default: true description: >- If set to true, only the auth_methods that are compatible with Proof of Possession (PoP) can be configured when PoP is enabled. If set to false, all auth_methods will be configurable and PoP checks will be silently skipped for those auth_methods that are not compatible with PoP. type: boolean proof_of_possession_dpop: default: 'off' description: >- Enable Demonstrating Proof-of-Possession (DPoP). If set to strict, all request are verified despite the presence of the DPoP key claim (cnf.jkt). If set to optional, only tokens bound with DPoP's key are verified with the proof. enum: - 'off' - optional - strict type: string proof_of_possession_mtls: default: 'off' description: >- Enable mtls proof of possession. If set to strict, all tokens (from supported auth_methods: bearer, introspection, and session granted with bearer or introspection) are verified, if set to optional, only tokens that contain the certificate hash claim are verified. If the verification fails, the request will be rejected with 401. enum: - 'off' - optional - strict type: string pushed_authorization_request_endpoint: description: >- The pushed authorization endpoint. If set it overrides the value in `pushed_authorization_request_endpoint` returned by the discovery endpoint. type: string pushed_authorization_request_endpoint_auth_method: description: >- The pushed authorization request endpoint authentication method: `client_secret_basic`, `client_secret_post`, `client_secret_jwt`, `private_key_jwt`, `tls_client_auth`, `self_signed_tls_client_auth`, or `none`: do not authenticate enum: - client_secret_basic - client_secret_jwt - client_secret_post - none - private_key_jwt - self_signed_tls_client_auth - tls_client_auth type: string redirect_uri: description: >- The redirect URI passed to the authorization and token endpoints. items: description: >- A string representing a URL, such as https://example.com/path/to/resource?q=search. type: string type: array redis: properties: cluster_max_redirections: default: 5 description: Maximum retry attempts for redirection. type: integer cluster_nodes: description: >- Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element. items: properties: ip: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array connect_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer connection_is_proxied: default: false description: >- If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address. type: boolean database: default: 0 description: >- Database to use for the Redis connection when using the `redis` strategy type: integer host: default: 127.0.0.1 description: A string representing a host name, such as example.com. type: string keepalive_backlog: description: >- Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`. maximum: 2147483646 minimum: 0 type: integer keepalive_pool_size: default: 256 description: >- The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn't specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low. maximum: 2147483646 minimum: 1 type: integer password: description: >- Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer prefix: description: The Redis session key prefix. type: string read_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer send_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer sentinel_master: description: >- Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel. type: string sentinel_nodes: description: >- Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element. items: properties: host: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array sentinel_password: description: >- Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels. type: string sentinel_role: description: >- Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel. enum: - any - master - slave type: string sentinel_username: description: >- Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won't be performed. This requires Redis v6.2.0+. type: string server_name: description: >- A string representing an SNI (server name indication) value for TLS. type: string socket: description: The Redis unix socket path. type: string ssl: default: false description: If set to true, uses SSL to connect to Redis. type: boolean ssl_verify: default: false description: >- If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly. type: boolean username: description: >- Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`. type: string type: object rediscovery_lifetime: default: 30 description: >- Specifies how long (in seconds) the plugin waits between discovery attempts. Discovery is still triggered on an as-needed basis. type: number refresh_token_param_name: description: The name of the parameter used to pass the refresh token. type: string refresh_token_param_type: default: - body - header - query description: >- Where to look for the refresh token: - `header`: search the HTTP headers - `query`: search the URL's query string - `body`: search the HTTP request body. items: enum: - body - header - query type: string type: array refresh_tokens: default: true description: >- Specifies whether the plugin should try to refresh (soon to be) expired access tokens if the plugin has a `refresh_token` available. type: boolean require_proof_key_for_code_exchange: description: >- Forcibly enable or disable the proof key for code exchange. When not set the value is determined through the discovery using the value of `code_challenge_methods_supported`, and enabled automatically (in case the `code_challenge_methods_supported` is missing, the PKCE will not be enabled). type: boolean require_pushed_authorization_requests: description: >- Forcibly enable or disable the pushed authorization requests. When not set the value is determined through the discovery using the value of `require_pushed_authorization_requests` (which defaults to `false`). type: boolean require_signed_request_object: description: >- Forcibly enable or disable the usage of signed request object on authorization or pushed authorization endpoint. When not set the value is determined through the discovery using the value of `require_signed_request_object`, and enabled automatically (in case the `require_signed_request_object` is missing, the feature will not be enabled). type: boolean resolve_distributed_claims: default: false description: >- Distributed claims are represented by the `_claim_names` and `_claim_sources` members of the JSON object containing the claims. If this parameter is set to `true`, the plugin explicitly resolves these distributed claims. type: boolean response_mode: default: query description: >- Response mode passed to the authorization endpoint: - `query`: for parameters in query string - `form_post`: for parameters in request body - `fragment`: for parameters in uri fragment (rarely useful as the plugin itself cannot read it) - `query.jwt`, `form_post.jwt`, `fragment.jwt`: similar to `query`, `form_post` and `fragment` but the parameters are encoded in a JWT - `jwt`: shortcut that indicates the default encoding for the requested response type. enum: - form_post - form_post.jwt - fragment - fragment.jwt - jwt - query - query.jwt type: string response_type: default: - code description: The response type passed to the authorization endpoint. items: type: string type: array reverify: default: false description: Specifies whether to always verify tokens stored in the session. type: boolean revocation_endpoint: description: >- The revocation endpoint. If set it overrides the value in `revocation_endpoint` returned by the discovery endpoint. type: string revocation_endpoint_auth_method: description: >- The revocation endpoint authentication method: : `client_secret_basic`, `client_secret_post`, `client_secret_jwt`, `private_key_jwt`, `tls_client_auth`, `self_signed_tls_client_auth`, or `none`: do not authenticate enum: - client_secret_basic - client_secret_jwt - client_secret_post - none - private_key_jwt - self_signed_tls_client_auth - tls_client_auth type: string revocation_token_param_name: default: token description: Designate token's parameter name for revocation. type: string roles_claim: default: - roles description: >- The claim that contains the roles. If multiple values are set, it means the claim is inside a nested object of the token payload. items: type: string type: array roles_required: description: >- The roles (`roles_claim` claim) required to be present in the access token (or introspection results) for successful authorization. This config parameter works in both **AND** / **OR** cases. items: type: string type: array run_on_preflight: default: true description: >- Specifies whether to run this plugin on pre-flight (`OPTIONS`) requests. type: boolean scopes: default: - openid description: The scopes passed to the authorization and token endpoints. items: type: string type: array scopes_claim: default: - scope description: >- The claim that contains the scopes. If multiple values are set, it means the claim is inside a nested object of the token payload. items: type: string type: array scopes_required: description: >- The scopes (`scopes_claim` claim) required to be present in the access token (or introspection results) for successful authorization. This config parameter works in both **AND** / **OR** cases. items: type: string type: array search_user_info: default: false description: >- Specify whether to use the user info endpoint to get additional claims for consumer mapping, credential mapping, authenticated groups, and upstream and downstream headers. type: boolean session_absolute_timeout: default: 86400 description: >- Limits how long the session can be renewed in seconds, until re-authentication is required. 0 disables the checks. type: number session_audience: default: default description: >- The session audience, which is the intended target application. For example `"my-application"`. type: string session_bind: description: >- Bind the session to data acquired from the HTTP request or connection. items: enum: - ip - scheme - user-agent type: string type: array session_cookie_domain: description: The session cookie Domain flag. type: string session_cookie_http_only: default: true description: >- Forbids JavaScript from accessing the cookie, for example, through the `Document.cookie` property. type: boolean session_cookie_name: default: session description: The session cookie name. type: string session_cookie_path: default: / description: The session cookie Path flag. type: string session_cookie_same_site: default: Lax description: >- Controls whether a cookie is sent with cross-origin requests, providing some protection against cross-site request forgery attacks. enum: - Default - Lax - None - Strict type: string session_cookie_secure: description: >- Cookie is only sent to the server when a request is made with the https: scheme (except on localhost), and therefore is more resistant to man-in-the-middle attacks. type: boolean session_enforce_same_subject: default: false description: >- When set to `true`, audiences are forced to share the same subject. type: boolean session_hash_storage_key: default: false description: >- When set to `true`, the storage key (session ID) is hashed for extra security. Hashing the storage key means it is impossible to decrypt data from the storage without a cookie. type: boolean session_hash_subject: default: false description: >- When set to `true`, the value of subject is hashed before being stored. Only applies when `session_store_metadata` is enabled. type: boolean session_idling_timeout: default: 900 description: >- Specifies how long the session can be inactive until it is considered invalid in seconds. 0 disables the checks and touching. type: number session_memcached_host: default: 127.0.0.1 description: The memcached host. type: string session_memcached_port: default: 11211 description: The memcached port. maximum: 65535 minimum: 0 type: integer session_memcached_prefix: description: The memcached session key prefix. type: string session_memcached_socket: description: The memcached unix socket path. type: string session_remember: default: false description: Enables or disables persistent sessions. type: boolean session_remember_absolute_timeout: default: 2592000 description: >- Limits how long the persistent session can be renewed in seconds, until re-authentication is required. 0 disables the checks. type: number session_remember_cookie_name: default: remember description: >- Persistent session cookie name. Use with the `remember` configuration parameter. type: string session_remember_rolling_timeout: default: 604800 description: >- Specifies how long the persistent session is considered valid in seconds. 0 disables the checks and rolling. type: number session_request_headers: description: >- Set of headers to send to upstream, use id, audience, subject, timeout, idling-timeout, rolling-timeout, absolute-timeout. E.g. `[ "id", "timeout" ]` will set Session-Id and Session-Timeout request headers. items: enum: - absolute-timeout - audience - id - idling-timeout - rolling-timeout - subject - timeout type: string type: array session_response_headers: description: >- Set of headers to send to downstream, use id, audience, subject, timeout, idling-timeout, rolling-timeout, absolute-timeout. E.g. `[ "id", "timeout" ]` will set Session-Id and Session-Timeout response headers. items: enum: - absolute-timeout - audience - id - idling-timeout - rolling-timeout - subject - timeout type: string type: array session_rolling_timeout: default: 3600 description: >- Specifies how long the session can be used in seconds until it needs to be renewed. 0 disables the checks and rolling. type: number session_secret: description: The session secret. type: string session_storage: default: cookie description: >- The session storage for session data: - `cookie`: stores session data with the session cookie (the session cannot be invalidated or revoked without changing session secret, but is stateless, and doesn't require a database) - `memcache`: stores session data in memcached - `redis`: stores session data in Redis. enum: - cookie - memcache - memcached - redis type: string session_store_metadata: default: false description: >- Configures whether or not session metadata should be stored. This metadata includes information about the active sessions for a specific audience belonging to a specific subject. type: boolean ssl_verify: default: false description: >- Verify identity provider server certificate. If set to `true`, the plugin uses the CA certificate set in the `kong.conf` config parameter `lua_ssl_trusted_certificate`. type: boolean timeout: default: 10000 description: Network IO timeout in milliseconds. type: number tls_client_auth_cert_id: description: >- ID of the Certificate entity representing the client certificate to use for mTLS client authentication for connections between Kong and the Auth Server. type: string tls_client_auth_ssl_verify: default: true description: >- Verify identity provider server certificate during mTLS client authentication. type: boolean token_cache_key_include_scope: default: false description: >- Include the scope in the token cache key, so token with different scopes are considered diffrent tokens. type: boolean token_endpoint: description: >- The token endpoint. If set it overrides the value in `token_endpoint` returned by the discovery endpoint. type: string token_endpoint_auth_method: description: >- The token endpoint authentication method: `client_secret_basic`, `client_secret_post`, `client_secret_jwt`, `private_key_jwt`, `tls_client_auth`, `self_signed_tls_client_auth`, or `none`: do not authenticate enum: - client_secret_basic - client_secret_jwt - client_secret_post - none - private_key_jwt - self_signed_tls_client_auth - tls_client_auth type: string token_exchange_endpoint: description: The token exchange endpoint. type: string token_headers_client: description: Extra headers passed from the client to the token endpoint. items: type: string type: array token_headers_grants: description: >- Enable the sending of the token endpoint response headers only with certain grants: - `password`: with OAuth password grant - `client_credentials`: with OAuth client credentials grant - `authorization_code`: with authorization code flow - `refresh_token` with refresh token grant. items: enum: - authorization_code - client_credentials - password - refresh_token type: string type: array token_headers_names: description: Extra header names passed to the token endpoint. items: type: string type: array token_headers_prefix: description: >- Add a prefix to the token endpoint response headers before forwarding them to the downstream client. type: string token_headers_replay: description: >- The names of token endpoint response headers to forward to the downstream client. items: type: string type: array token_headers_values: description: Extra header values passed to the token endpoint. items: type: string type: array token_post_args_client: description: >- Pass extra arguments from the client to the OpenID-Connect plugin. If arguments exist, the client can pass them using: - Query parameters - Request Body - Request Header This parameter can be used with `scope` values, like this: `config.token_post_args_client=scope` In this case, the token would take the `scope` value from the query parameter or from the request body or from the header and send it to the token endpoint. items: type: string type: array token_post_args_names: description: Extra post argument names passed to the token endpoint. items: type: string type: array token_post_args_values: description: Extra post argument values passed to the token endpoint. items: type: string type: array unauthorized_destroy_session: default: true description: Destroy any active session for the unauthorized requests. type: boolean unauthorized_error_message: default: Unauthorized description: >- The error message for the unauthorized requests (when not using the redirection). type: string unauthorized_redirect_uri: description: Where to redirect the client on unauthorized requests. items: description: >- A string representing a URL, such as https://example.com/path/to/resource?q=search. type: string type: array unexpected_redirect_uri: description: >- Where to redirect the client when unexpected errors happen with the requests. items: description: >- A string representing a URL, such as https://example.com/path/to/resource?q=search. type: string type: array upstream_access_token_header: default: authorization:bearer description: The upstream access token header. type: string upstream_access_token_jwk_header: description: The upstream access token JWK header. type: string upstream_headers_claims: description: The upstream header claims. Only top level claims are supported. items: type: string type: array upstream_headers_names: description: The upstream header names for the claim values. items: type: string type: array upstream_id_token_header: description: The upstream id token header. type: string upstream_id_token_jwk_header: description: The upstream id token JWK header. type: string upstream_introspection_header: description: The upstream introspection header. type: string upstream_introspection_jwt_header: description: The upstream introspection JWT header. type: string upstream_refresh_token_header: description: The upstream refresh token header. type: string upstream_session_id_header: description: The upstream session id header. type: string upstream_user_info_header: description: The upstream user info header. type: string upstream_user_info_jwt_header: description: >- The upstream user info JWT header (in case the user info returns a JWT response). type: string userinfo_accept: default: application/json description: >- The value of `Accept` header for user info requests: - `application/json`: user info response as JSON - `application/jwt`: user info response as JWT (from the obsolete IETF draft document). enum: - application/json - application/jwt type: string userinfo_endpoint: description: >- The user info endpoint. If set it overrides the value in `userinfo_endpoint` returned by the discovery endpoint. type: string userinfo_headers_client: description: Extra headers passed from the client to the user info endpoint. items: type: string type: array userinfo_headers_names: description: Extra header names passed to the user info endpoint. items: type: string type: array userinfo_headers_values: description: Extra header values passed to the user info endpoint. items: type: string type: array userinfo_query_args_client: description: >- Extra query arguments passed from the client to the user info endpoint. items: type: string type: array userinfo_query_args_names: description: Extra query argument names passed to the user info endpoint. items: type: string type: array userinfo_query_args_values: description: Extra query argument values passed to the user info endpoint. items: type: string type: array using_pseudo_issuer: default: false description: >- If the plugin uses a pseudo issuer. When set to true, the plugin will not discover the configuration from the issuer URL specified with `config.issuer`. type: boolean verify_claims: default: true description: Verify tokens for standard claims. type: boolean verify_nonce: default: true description: Verify nonce on authorization code flow. type: boolean verify_parameters: default: false description: Verify plugin configuration against discovery. type: boolean verify_signature: default: true description: Verify signature of tokens. type: boolean required: - issuer type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config OpentelemetryPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/OpentelemetryPluginConfig' properties: name: const: opentelemetry x-speakeasy-entity: PluginOpentelemetry OpentelemetryPluginConfig: properties: config: properties: batch_flush_delay: description: The delay, in seconds, between two consecutive batches. type: integer batch_span_count: description: The number of spans to be sent in a single batch. type: integer connect_timeout: default: 1000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer header_type: default: preserve enum: - aws - b3 - b3-single - datadog - gcp - ignore - instana - jaeger - ot - preserve - w3c type: string headers: additionalProperties: type: string description: >- The custom headers to be added in the HTTP request sent to the OTLP server. This setting is useful for adding the authentication headers (token) for the APM backend. type: object http_response_header_for_traceid: type: string logs_endpoint: description: >- A string representing a URL, such as https://example.com/path/to/resource?q=search. type: string propagation: default: default_format: w3c properties: clear: description: >- Header names to clear after context extraction. This allows to extract the context from a certain header and then remove it from the request, useful when extraction and injection are performed on different header formats and the original header should not be sent to the upstream. If left empty, no headers are cleared. items: type: string type: array default_format: default: w3c description: >- The default header format to use when extractors did not match any format in the incoming headers and `inject` is configured with the value: `preserve`. This can happen when no tracing header was found in the request, or the incoming tracing header formats were not included in `extract`. enum: - aws - b3 - b3-single - datadog - gcp - instana - jaeger - ot - w3c type: string extract: description: >- Header formats used to extract tracing context from incoming requests. If multiple values are specified, the first one found will be used for extraction. If left empty, Kong will not extract any tracing context information from incoming requests and generate a trace with no parent and a new trace ID. items: enum: - aws - b3 - datadog - gcp - instana - jaeger - ot - w3c type: string type: array inject: description: >- Header formats used to inject tracing context. The value `preserve` will use the same header format as the incoming request. If multiple values are specified, all of them will be used during injection. If left empty, Kong will not inject any tracing context information in outgoing requests. items: enum: - aws - b3 - b3-single - datadog - gcp - instana - jaeger - ot - preserve - w3c type: string type: array type: object queue: default: max_batch_size: 200 properties: concurrency_limit: default: 1 description: >- The number of of queue delivery timers. -1 indicates unlimited. enum: - -1 - 1 type: integer initial_retry_delay: default: 0.01 description: >- Time in seconds before the initial retry is made for a failing batch. maximum: 1000000 minimum: 0.001 type: number max_batch_size: default: 200 description: Maximum number of entries that can be processed at a time. maximum: 1000000 minimum: 1 type: integer max_bytes: description: >- Maximum number of bytes that can be waiting on a queue, requires string content. type: integer max_coalescing_delay: default: 1 description: >- Maximum number of (fractional) seconds to elapse after the first entry was queued before the queue starts calling the handler. maximum: 3600 minimum: 0 type: number max_entries: default: 10000 description: Maximum number of entries that can be waiting on the queue. maximum: 1000000 minimum: 1 type: integer max_retry_delay: default: 60 description: >- Maximum time in seconds between retries, caps exponential backoff. maximum: 1000000 minimum: 0.001 type: number max_retry_time: default: 60 description: >- Time in seconds before the queue gives up calling a failed handler for a batch. type: number type: object read_timeout: default: 5000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer resource_attributes: additionalProperties: true type: object sampling_rate: description: >- Tracing sampling rate for configuring the probability-based sampler. When set, this value supersedes the global `tracing_sampling_rate` setting from kong.conf. maximum: 1 minimum: 0 type: number sampling_strategy: default: parent_drop_probability_fallback description: >- The sampling strategy to use for OTLP `traces`. Set `parent_drop_probability_fallback` if you want parent-based sampling when the parent span contains a `false` sampled flag, and fallback to probability-based sampling otherwise. Set `parent_probability_fallback` if you want parent-based sampling when the parent span contains a valid sampled flag (`true` or `false`), and fallback to probability-based sampling otherwise. enum: - parent_drop_probability_fallback - parent_probability_fallback type: string send_timeout: default: 5000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer traces_endpoint: description: >- A string representing a URL, such as https://example.com/path/to/resource?q=search. type: string type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object PaginationNextResponse: description: URI to the next page (may be null) type: string PaginationOffsetResponse: description: >- Offset is used to paginate through the API. Provide this value to the next list operation to fetch the next page type: string Partial: discriminator: mapping: redis-ce: '#/components/schemas/PartialRedisCe' redis-ee: '#/components/schemas/PartialRedisEe' propertyName: type oneOf: - $ref: '#/components/schemas/PartialRedisCe' - $ref: '#/components/schemas/PartialRedisEe' type: object x-speakeasy-entity: Partial PartialRedisCe: additionalProperties: false example: config: database: 0 host: localhost password: password port: 6379 server_name: redis ssl: false ssl_verify: false timeout: 2000 username: username type: redis-ce properties: config: properties: database: default: 0 description: >- Database to use for the Redis connection when using the `redis` strategy type: integer host: description: A string representing a host name, such as example.com. type: string password: description: >- Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer server_name: description: >- A string representing an SNI (server name indication) value for TLS. type: string ssl: default: false description: If set to true, uses SSL to connect to Redis. type: boolean ssl_verify: default: false description: >- If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly. type: boolean timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer username: description: >- Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`. type: string type: object created_at: description: Unix epoch when the resource was created. nullable: true type: integer id: description: A string representing a UUID (universally unique identifier). nullable: true type: string name: description: A unique string representing a UTF-8 encoded name. nullable: true type: string tags: description: A set of strings representing tags. items: description: A string representing a tag. type: string nullable: true type: array type: const: redis-ce type: string updated_at: description: Unix epoch when the resource was last updated. nullable: true type: integer required: - type - config type: object PartialRedisEe: additionalProperties: false example: config: cluster_nodes: - ip: 192.168.1.10 port: 6380 connect_timeout: 2000 database: 0 host: localhost keepalive_pool_size: 256 password: password port: 6379 read_timeout: 1000 send_timeout: 1000 sentinel_nodes: - host: sentinel1.redis.server port: 26379 server_name: redis-ee ssl: false ssl_verify: false username: username type: redis-ee properties: config: properties: cluster_max_redirections: default: 5 description: Maximum retry attempts for redirection. type: integer cluster_nodes: description: >- Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element. items: properties: ip: default: 127.0.0.1 description: A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array connect_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer connection_is_proxied: default: false description: >- If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address. type: boolean database: default: 0 description: >- Database to use for the Redis connection when using the `redis` strategy type: integer host: default: 127.0.0.1 description: A string representing a host name, such as example.com. type: string keepalive_backlog: description: >- Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`. maximum: 2147483646 minimum: 0 type: integer keepalive_pool_size: default: 256 description: >- The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn't specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low. maximum: 2147483646 minimum: 1 type: integer password: description: >- Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer read_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer send_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer sentinel_master: description: >- Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel. type: string sentinel_nodes: description: >- Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element. items: properties: host: default: 127.0.0.1 description: A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array sentinel_password: description: >- Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels. type: string sentinel_role: description: >- Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel. enum: - any - master - slave type: string sentinel_username: description: >- Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won't be performed. This requires Redis v6.2.0+. type: string server_name: description: >- A string representing an SNI (server name indication) value for TLS. type: string ssl: default: false description: If set to true, uses SSL to connect to Redis. type: boolean ssl_verify: default: false description: >- If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly. type: boolean username: description: >- Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`. type: string type: object created_at: description: Unix epoch when the resource was created. nullable: true type: integer id: description: A string representing a UUID (universally unique identifier). nullable: true type: string name: description: A unique string representing a UTF-8 encoded name. nullable: true type: string tags: description: A set of strings representing tags. items: description: A string representing a tag. type: string nullable: true type: array type: const: redis-ee type: string updated_at: description: Unix epoch when the resource was last updated. nullable: true type: integer required: - type - config type: object Plugin: additionalProperties: false description: >- A Plugin entity represents a plugin configuration that will be executed during the HTTP request/response lifecycle. It is how you can add functionalities to Services that run behind Kong, like Authentication or Rate Limiting for example. You can find more information about how to install and what values each plugin takes by visiting the [Kong Hub](https://docs.konghq.com/hub/). When adding a Plugin Configuration to a Service, every request made by a client to that Service will run said Plugin. If a Plugin needs to be tuned to different values for some specific Consumers, you can do so by creating a separate plugin instance that specifies both the Service and the Consumer, through the `service` and `consumer` fields. example: config: anonymous: null hide_credentials: false key_in_body: false key_in_header: true key_in_query: true key_names: - apikey run_on_preflight: true enabled: true id: 3fd1eea1-885a-4011-b986-289943ff8177 name: key-auth partials: - id: cff1230a-00f7-4ae8-b376-c370f0eb4dae name: foo-partial path: config.redis - id: 129ee345-cba8-4e55-9d6d-93c223ff91ae name: bar-partial path: config.redis protocols: - grpc - grpcs - http - https properties: config: additionalProperties: true description: >- The configuration properties for the Plugin which can be found on the plugins documentation page in the [Kong Hub](https://docs.konghq.com/hub/). nullable: true type: object consumer: description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. nullable: true properties: id: type: string type: object x-foreign: true consumer_group: description: >- If set, the plugin will activate only for requests where the specified group has been authenticated nullable: true properties: id: type: string type: object x-foreign: true created_at: description: Unix epoch when the resource was created. nullable: true type: integer enabled: default: true description: Whether the plugin is applied. nullable: true type: boolean id: description: A string representing a UUID (universally unique identifier). minLength: 1 nullable: true type: string instance_name: description: A unique string representing a UTF-8 encoded name. nullable: true type: string name: description: >- The name of the Plugin that's going to be added. Currently, the Plugin must be installed in every Kong instance separately. minLength: 1 type: string ordering: nullable: true properties: after: properties: access: items: type: string type: array type: object before: properties: access: items: type: string type: array type: object type: object partials: description: A list of partials to be used by the plugin. items: properties: id: description: A string representing a UUID (universally unique identifier). minLength: 1 type: string name: description: A unique string representing a UTF-8 encoded name. type: string path: type: string type: object nullable: true type: array protocols: default: - grpc - grpcs - http - https description: >- A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support `"tcp"` and `"tls"`. items: description: A string representing a protocol, such as HTTP or HTTPS. enum: - grpc - grpcs - http - https - tcp - tls - tls_passthrough - udp - ws - wss type: string nullable: true type: array route: description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the Route being used. nullable: true properties: id: type: string type: object x-foreign: true service: description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. nullable: true properties: id: type: string type: object x-foreign: true tags: description: >- An optional set of strings associated with the Plugin for grouping and filtering. items: description: A string representing a tag. type: string nullable: true type: array updated_at: description: Unix epoch when the resource was last updated. nullable: true type: integer required: - name type: object PluginBase: additionalProperties: false description: >- A Plugin entity represents a plugin configuration that will be executed during the HTTP request/response lifecycle. It is how you can add functionalities to Services that run behind Kong, like Authentication or Rate Limiting for example. You can find more information about how to install and what values each plugin takes by visiting the [Kong Hub](https://docs.konghq.com/hub/). When adding a Plugin Configuration to a Service, every request made by a client to that Service will run said Plugin. If a Plugin needs to be tuned to different values for some specific Consumers, you can do so by creating a separate plugin instance that specifies both the Service and the Consumer, through the `service` and `consumer` fields. properties: created_at: description: Unix epoch when the resource was created. nullable: true type: integer enabled: default: true description: Whether the plugin is applied. nullable: true type: boolean id: description: A string representing a UUID (universally unique identifier). minLength: 1 nullable: true type: string instance_name: description: A unique string representing a UTF-8 encoded name. nullable: true type: string name: description: >- The name of the Plugin that's going to be added. Currently, the Plugin must be installed in every Kong instance separately. minLength: 1 type: string ordering: nullable: true properties: after: properties: access: items: type: string type: array type: object before: properties: access: items: type: string type: array type: object type: object partials: description: A list of partials to be used by the plugin. items: properties: id: description: A string representing a UUID (universally unique identifier). minLength: 1 type: string name: description: A unique string representing a UTF-8 encoded name. type: string path: type: string type: object type: array tags: description: >- An optional set of strings associated with the Plugin for grouping and filtering. items: description: A string representing a tag. type: string nullable: true type: array updated_at: description: Unix epoch when the resource was last updated. nullable: true type: integer required: - name type: object PostFunctionPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/PostFunctionPluginConfig' properties: name: const: post-function x-speakeasy-entity: PluginPostFunction PostFunctionPluginConfig: properties: config: properties: access: default: [] items: type: string type: array body_filter: default: [] items: type: string type: array certificate: default: [] items: type: string type: array header_filter: default: [] items: type: string type: array log: default: [] items: type: string type: array rewrite: default: [] items: type: string type: array ws_client_frame: default: [] items: type: string type: array ws_close: default: [] items: type: string type: array ws_handshake: default: [] items: type: string type: array ws_upstream_frame: default: [] items: type: string type: array type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing protocols. format: set items: description: A string representing a protocol, such as HTTP or HTTPS. enum: - grpc - grpcs - http - https - tcp - tls - tls_passthrough - udp - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object PreFunctionPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/PreFunctionPluginConfig' properties: name: const: pre-function x-speakeasy-entity: PluginPreFunction PreFunctionPluginConfig: properties: config: properties: access: default: [] items: type: string type: array body_filter: default: [] items: type: string type: array certificate: default: [] items: type: string type: array header_filter: default: [] items: type: string type: array log: default: [] items: type: string type: array rewrite: default: [] items: type: string type: array ws_client_frame: default: [] items: type: string type: array ws_close: default: [] items: type: string type: array ws_handshake: default: [] items: type: string type: array ws_upstream_frame: default: [] items: type: string type: array type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing protocols. format: set items: description: A string representing a protocol, such as HTTP or HTTPS. enum: - grpc - grpcs - http - https - tcp - tls - tls_passthrough - udp - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object PrometheusPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/PrometheusPluginConfig' properties: name: const: prometheus x-speakeasy-entity: PluginPrometheus PrometheusPluginConfig: properties: config: properties: ai_metrics: default: false description: >- A boolean value that determines if ai metrics should be collected. If enabled, the `ai_llm_requests_total`, `ai_llm_cost_total` and `ai_llm_tokens_total` metrics will be exported. type: boolean bandwidth_metrics: default: false description: >- A boolean value that determines if bandwidth metrics should be collected. If enabled, `bandwidth_bytes` and `stream_sessions_total` metrics will be exported. type: boolean latency_metrics: default: false description: >- A boolean value that determines if latency metrics should be collected. If enabled, `kong_latency_ms`, `upstream_latency_ms` and `request_latency_ms` metrics will be exported. type: boolean per_consumer: default: false description: >- A boolean value that determines if per-consumer metrics should be collected. If enabled, the `kong_http_requests_total` and `kong_bandwidth_bytes` metrics fill in the consumer label when available. type: boolean status_code_metrics: default: false description: >- A boolean value that determines if status code metrics should be collected. If enabled, `http_requests_total`, `stream_sessions_total` metrics will be exported. type: boolean upstream_health_metrics: default: false description: >- A boolean value that determines if upstream metrics should be collected. If enabled, `upstream_target_health` metric will be exported. type: boolean wasm_metrics: type: boolean type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing protocols. format: set items: description: A string representing a protocol, such as HTTP or HTTPS. enum: - grpc - grpcs - http - https - tcp - tls - tls_passthrough - udp - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object ProxyCacheAdvancedPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/ProxyCacheAdvancedPluginConfig' properties: name: const: proxy-cache-advanced x-speakeasy-entity: PluginProxyCacheAdvanced ProxyCacheAdvancedPluginConfig: properties: config: properties: bypass_on_err: default: false description: >- Unhandled errors while trying to retrieve a cache entry (such as redis down) are resolved with `Bypass`, with the request going upstream. type: boolean cache_control: default: false description: >- When enabled, respect the Cache-Control behaviors defined in RFC7234. type: boolean cache_ttl: default: 300 description: TTL in seconds of cache entities. type: integer content_type: default: - application/json - text/plain description: >- Upstream response content types considered cacheable. The plugin performs an **exact match** against each specified value; for example, if the upstream is expected to respond with a `application/json; charset=utf-8` content-type, the plugin configuration must contain said value or a `Bypass` cache status is returned. items: type: string type: array ignore_uri_case: default: false description: >- Determines whether to treat URIs as case sensitive. By default, case sensitivity is enabled. If set to true, requests are cached while ignoring case sensitivity in the URI. type: boolean memory: properties: dictionary_name: default: kong_db_cache description: >- The name of the shared dictionary in which to hold cache entities when the memory strategy is selected. Note that this dictionary currently must be defined manually in the Kong Nginx template. type: string type: object redis: properties: cluster_max_redirections: default: 5 description: Maximum retry attempts for redirection. type: integer cluster_nodes: description: >- Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element. items: properties: ip: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array connect_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer connection_is_proxied: default: false description: >- If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address. type: boolean database: default: 0 description: >- Database to use for the Redis connection when using the `redis` strategy type: integer host: default: 127.0.0.1 description: A string representing a host name, such as example.com. type: string keepalive_backlog: description: >- Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`. maximum: 2147483646 minimum: 0 type: integer keepalive_pool_size: default: 256 description: >- The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn't specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low. maximum: 2147483646 minimum: 1 type: integer password: description: >- Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer read_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer send_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer sentinel_master: description: >- Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel. type: string sentinel_nodes: description: >- Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element. items: properties: host: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array sentinel_password: description: >- Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels. type: string sentinel_role: description: >- Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel. enum: - any - master - slave type: string sentinel_username: description: >- Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won't be performed. This requires Redis v6.2.0+. type: string server_name: description: >- A string representing an SNI (server name indication) value for TLS. type: string ssl: default: false description: If set to true, uses SSL to connect to Redis. type: boolean ssl_verify: default: false description: >- If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly. type: boolean username: description: >- Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`. type: string type: object request_method: default: - GET - HEAD description: >- Downstream request methods considered cacheable. Available options: `HEAD`, `GET`, `POST`, `PATCH`, `PUT`. items: enum: - GET - HEAD - PATCH - POST - PUT type: string type: array response_code: default: - 200 - 301 - 404 description: >- Upstream response status code considered cacheable. The integers must be a value between 100 and 900. items: maximum: 900 minimum: 100 type: integer minLength: 1 type: array response_headers: description: >- Caching related diagnostic headers that should be included in cached responses properties: X-Cache-Key: default: true type: boolean X-Cache-Status: default: true type: boolean age: default: true type: boolean type: object storage_ttl: description: >- Number of seconds to keep resources in the storage backend. This value is independent of `cache_ttl` or resource TTLs defined by Cache-Control behaviors. type: integer strategy: description: >- The backing data store in which to hold cache entities. Accepted values are: `memory` and `redis`. enum: - memory - redis type: string vary_headers: description: >- Relevant headers considered for the cache key. If undefined, none of the headers are taken into consideration. items: type: string type: array vary_query_params: description: >- Relevant query parameters considered for the cache key. If undefined, all params are taken into consideration. By default, the max number of params accepted is 100. You can change this value via the `lua_max_post_args` in `kong.conf`. items: type: string type: array required: - strategy type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config ProxyCachePlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/ProxyCachePluginConfig' properties: name: const: proxy-cache x-speakeasy-entity: PluginProxyCache ProxyCachePluginConfig: properties: config: properties: cache_control: default: false description: >- When enabled, respect the Cache-Control behaviors defined in RFC7234. type: boolean cache_ttl: default: 300 description: TTL, in seconds, of cache entities. type: integer content_type: default: - application/json - text/plain description: >- Upstream response content types considered cacheable. The plugin performs an **exact match** against each specified value. items: type: string type: array ignore_uri_case: default: false type: boolean memory: properties: dictionary_name: default: kong_db_cache description: >- The name of the shared dictionary in which to hold cache entities when the memory strategy is selected. Note that this dictionary currently must be defined manually in the Kong Nginx template. type: string type: object request_method: default: - GET - HEAD description: Downstream request methods considered cacheable. items: enum: - GET - HEAD - PATCH - POST - PUT type: string type: array response_code: default: - 200 - 301 - 404 description: Upstream response status code considered cacheable. items: maximum: 900 minimum: 100 type: integer minLength: 1 type: array response_headers: description: >- Caching related diagnostic headers that should be included in cached responses properties: X-Cache-Key: default: true type: boolean X-Cache-Status: default: true type: boolean age: default: true type: boolean type: object storage_ttl: description: >- Number of seconds to keep resources in the storage backend. This value is independent of `cache_ttl` or resource TTLs defined by Cache-Control behaviors. type: integer strategy: description: The backing data store in which to hold cache entities. enum: - memory type: string vary_headers: description: >- Relevant headers considered for the cache key. If undefined, none of the headers are taken into consideration. items: type: string type: array vary_query_params: description: >- Relevant query parameters considered for the cache key. If undefined, all params are taken into consideration. items: type: string type: array required: - strategy type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing protocols. format: set items: description: A string representing a protocol, such as HTTP or HTTPS. enum: - grpc - grpcs - http - https - tcp - tls - tls_passthrough - udp - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config RateLimitingAdvancedPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/RateLimitingAdvancedPluginConfig' properties: name: const: rate-limiting-advanced x-speakeasy-entity: PluginRateLimitingAdvanced RateLimitingAdvancedPluginConfig: properties: config: properties: compound_identifier: description: >- Similar to `identifer`, but supports combining multiple items. The priority of `compound_identifier` is higher than `identifier`, which means if `compound_identifer` is set, it will be used, otherwise `identifier` will be used. items: enum: - consumer - consumer-group - credential - header - ip - path - service type: string type: array consumer_groups: description: >- List of consumer groups allowed to override the rate limiting settings for the given Route or Service. Required if `enforce_consumer_groups` is set to `true`. items: type: string type: array dictionary_name: default: kong_rate_limiting_counters description: >- The shared dictionary where counters are stored. When the plugin is configured to synchronize counter data externally (that is `config.strategy` is `cluster` or `redis` and `config.sync_rate` isn't `-1`), this dictionary serves as a buffer to populate counters in the data store on each synchronization cycle. type: string disable_penalty: default: false description: >- If set to `true`, this doesn't count denied requests (status = `429`). If set to `false`, all requests, including denied ones, are counted. This parameter only affects the `sliding` window_type. type: boolean enforce_consumer_groups: default: false description: >- Determines if consumer groups are allowed to override the rate limiting settings for the given Route or Service. Flipping `enforce_consumer_groups` from `true` to `false` disables the group override, but does not clear the list of consumer groups. You can then flip `enforce_consumer_groups` to `true` to re-enforce the groups. type: boolean error_code: default: 429 description: >- Set a custom error code to return when the rate limit is exceeded. type: number error_message: default: API rate limit exceeded description: >- Set a custom error message to return when the rate limit is exceeded. type: string header_name: description: A string representing an HTTP header name. type: string hide_client_headers: default: false description: >- Optionally hide informative response headers that would otherwise provide information about the current status of limits and counters. type: boolean identifier: default: consumer description: >- The type of identifier used to generate the rate limit key. Defines the scope used to increment the rate limiting counters. Can be `ip`, `credential`, `consumer`, `service`, `header`, `path` or `consumer-group`. Note if `identifier` is `consumer-group`, the plugin must be applied on a consumer group entity. Because a consumer may belong to multiple consumer groups, the plugin needs to know explicitly which consumer group to limit the rate. enum: - consumer - consumer-group - credential - header - ip - path - service type: string limit: description: >- One or more requests-per-window limits to apply. There must be a matching number of window limits and sizes specified. items: type: number type: array lock_dictionary_name: default: kong_locks description: >- The shared dictionary where concurrency control locks are stored. The default shared dictionary is `kong_locks`. The shared dictionary should be declare in nginx-kong.conf. type: string namespace: description: >- The rate limiting library namespace to use for this plugin instance. Counter data and sync configuration is isolated in each namespace. NOTE: For the plugin instances sharing the same namespace, all the configurations that are required for synchronizing counters, e.g. `strategy`, `redis`, `sync_rate`, `dictionary_name`, need to be the same. type: string path: description: >- A string representing a URL path, such as /path/to/resource. Must start with a forward slash (/) and must not contain empty segments (i.e., two consecutive forward slashes). type: string redis: properties: cluster_max_redirections: default: 5 description: Maximum retry attempts for redirection. type: integer cluster_nodes: description: >- Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element. items: properties: ip: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array connect_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer connection_is_proxied: default: false description: >- If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address. type: boolean database: default: 0 description: >- Database to use for the Redis connection when using the `redis` strategy type: integer host: default: 127.0.0.1 description: A string representing a host name, such as example.com. type: string keepalive_backlog: description: >- Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`. maximum: 2147483646 minimum: 0 type: integer keepalive_pool_size: default: 256 description: >- The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn't specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low. maximum: 2147483646 minimum: 1 type: integer password: description: >- Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer read_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer redis_proxy_type: description: >- If the `connection_is_proxied` is enabled, this field indicates the proxy type and version you are using. For example, you can enable this optioin when you want authentication between Kong and Envoy proxy. enum: - envoy_v1.31 type: string send_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer sentinel_master: description: >- Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel. type: string sentinel_nodes: description: >- Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element. items: properties: host: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array sentinel_password: description: >- Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels. type: string sentinel_role: description: >- Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel. enum: - any - master - slave type: string sentinel_username: description: >- Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won't be performed. This requires Redis v6.2.0+. type: string server_name: description: >- A string representing an SNI (server name indication) value for TLS. type: string ssl: default: false description: If set to true, uses SSL to connect to Redis. type: boolean ssl_verify: default: false description: >- If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly. type: boolean username: description: >- Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`. type: string type: object retry_after_jitter_max: default: 0 description: >- The upper bound of a jitter (random delay) in seconds to be added to the `Retry-After` header of denied requests (status = `429`) in order to prevent all the clients from coming back at the same time. The lower bound of the jitter is `0`; in this case, the `Retry-After` header is equal to the `RateLimit-Reset` header. type: number strategy: default: local description: >- The rate-limiting strategy to use for retrieving and incrementing the limits. Available values are: `local` and `cluster`. enum: - cluster - local - redis type: string sync_rate: description: >- How often to sync counter data to the central data store. A value of 0 results in synchronous behavior; a value of -1 ignores sync behavior entirely and only stores counters in node memory. A value greater than 0 will sync the counters in the specified number of seconds. The minimum allowed interval is 0.02 seconds (20ms). type: number throttling: properties: enabled: default: false description: Determines if the throttling feature is enabled or not type: boolean interval: default: 5 description: >- The period between two successive retries for an individual request (in seconds) maximum: 1000000 minimum: 1 type: number queue_limit: default: 5 description: The maximum number of requests allowed for throttling maximum: 1000000 minimum: 1 type: number retry_times: default: 3 description: The maximum number of retries for an individual request maximum: 1000000 minimum: 1 type: number type: object window_size: description: >- One or more window sizes to apply a limit to (defined in seconds). There must be a matching number of window limits and sizes specified. items: type: number type: array window_type: default: sliding description: >- Sets the time window type to either `sliding` (default) or `fixed`. Sliding windows apply the rate limiting logic while taking into account previous hit rates (from the window that immediately precedes the current) using a dynamic weight. Fixed windows consist of buckets that are statically assigned to a definitive time range, each request is mapped to only one fixed window based on its timestamp and will affect only that window's counters. enum: - fixed - sliding type: string required: - limit - window_size type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config RateLimitingPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/RateLimitingPluginConfig' properties: name: const: rate-limiting x-speakeasy-entity: PluginRateLimiting RateLimitingPluginConfig: properties: config: properties: day: description: The number of HTTP requests that can be made per day. type: number error_code: default: 429 description: >- Set a custom error code to return when the rate limit is exceeded. type: number error_message: default: API rate limit exceeded description: >- Set a custom error message to return when the rate limit is exceeded. type: string fault_tolerant: default: true description: >- A boolean value that determines if the requests should be proxied even if Kong has troubles connecting a third-party data store. If `true`, requests will be proxied anyway, effectively disabling the rate-limiting function until the data store is working again. If `false`, then the clients will see `500` errors. type: boolean header_name: description: A string representing an HTTP header name. type: string hide_client_headers: default: false description: Optionally hide informative response headers. type: boolean hour: description: The number of HTTP requests that can be made per hour. type: number limit_by: default: consumer description: The entity that is used when aggregating the limits. enum: - consumer - consumer-group - credential - header - ip - path - service type: string minute: description: The number of HTTP requests that can be made per minute. type: number month: description: The number of HTTP requests that can be made per month. type: number path: description: >- A string representing a URL path, such as /path/to/resource. Must start with a forward slash (/) and must not contain empty segments (i.e., two consecutive forward slashes). type: string policy: default: local description: >- The rate-limiting policies to use for retrieving and incrementing the limits. enum: - cluster - local - redis type: string redis: description: Redis configuration properties: database: default: 0 description: >- Database to use for the Redis connection when using the `redis` strategy type: integer host: description: A string representing a host name, such as example.com. type: string password: description: >- Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer server_name: description: >- A string representing an SNI (server name indication) value for TLS. type: string ssl: default: false description: If set to true, uses SSL to connect to Redis. type: boolean ssl_verify: default: false description: >- If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly. type: boolean timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer username: description: >- Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`. type: string type: object second: description: The number of HTTP requests that can be made per second. type: number sync_rate: default: -1 description: >- How often to sync counter data to the central data store. A value of -1 results in synchronous behavior. type: number year: description: The number of HTTP requests that can be made per year. type: number type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object RedirectPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/RedirectPluginConfig' properties: name: const: redirect x-speakeasy-entity: PluginRedirect RedirectPluginConfig: properties: config: properties: keep_incoming_path: default: false description: >- Use the incoming request's path and query string in the redirect URL type: boolean location: description: The URL to redirect to type: string status_code: default: 301 description: >- The response code to send. Must be an integer between 100 and 599. maximum: 599 minimum: 100 type: integer required: - location type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config RequestCalloutPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/RequestCalloutPluginConfig' properties: name: const: request-callout x-speakeasy-entity: PluginRequestCallout RequestCalloutPluginConfig: properties: config: properties: cache: description: Plugin global caching configuration. properties: cache_ttl: default: 300 description: TTL in seconds of cache entities. type: integer memory: properties: dictionary_name: default: kong_db_cache description: >- The name of the shared dictionary in which to hold cache entities when the memory strategy is selected. Note that this dictionary currently must be defined manually in the Kong Nginx template. type: string type: object redis: properties: cluster_max_redirections: default: 5 description: Maximum retry attempts for redirection. type: integer cluster_nodes: description: >- Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element. items: properties: ip: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array connect_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer connection_is_proxied: default: false description: >- If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address. type: boolean database: default: 0 description: >- Database to use for the Redis connection when using the `redis` strategy type: integer host: default: 127.0.0.1 description: A string representing a host name, such as example.com. type: string keepalive_backlog: description: >- Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`. maximum: 2147483646 minimum: 0 type: integer keepalive_pool_size: default: 256 description: >- The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn't specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low. maximum: 2147483646 minimum: 1 type: integer password: description: >- Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer read_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer send_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer sentinel_master: description: >- Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel. type: string sentinel_nodes: description: >- Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element. items: properties: host: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array sentinel_password: description: >- Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels. type: string sentinel_role: description: >- Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel. enum: - any - master - slave type: string sentinel_username: description: >- Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won't be performed. This requires Redis v6.2.0+. type: string server_name: description: >- A string representing an SNI (server name indication) value for TLS. type: string ssl: default: false description: If set to true, uses SSL to connect to Redis. type: boolean ssl_verify: default: false description: >- If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly. type: boolean username: description: >- Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`. type: string type: object strategy: default: 'off' description: >- The backing data store in which to hold cache entities. Accepted values are: `off`, `memory`, and `redis`. enum: - memory - 'off' - redis type: string type: object callouts: description: >- A collection of callout objects, where each object represents an HTTP request made in the context of a proxy request. items: properties: cache: description: Callout caching configuration. properties: bypass: default: false description: If `true`, skips caching the callout response. type: boolean type: object depends_on: default: [] description: >- An array of callout names the current callout depends on. This dependency list determines the callout execution order via a topological sorting algorithm. items: type: string type: array name: description: >- A string identifier for a callout. A callout object is referenceable via its name in the `kong.ctx.shared.callouts.` type: string request: description: The customizations for the callout request. properties: body: description: Callout request body customizations. properties: custom: additionalProperties: true description: >- The custom body fields to be added to the callout HTTP request. Values can contain Lua expressions in the form $(some_lua_expression). The syntax is based on `request-transformer-advanced` templates. type: object decode: default: false description: >- If `true`, decodes the request's body and make it available for customizations. Only JSON content type is supported. type: boolean forward: default: false description: >- If `true`, forwards the incoming request's body to the callout request. type: boolean type: object by_lua: description: >- Lua code that executes before the callout request is made. **Warning** can impact system behavior. Standard Lua sandboxing restrictions apply. type: string error: description: >- The error handling policy the plugin will apply to TCP and HTTP errors. properties: error_response_code: default: 400 description: >- The error code to respond with if `on_error` is `fail` or if `retries` is achieved. type: integer error_response_msg: default: service callout error description: >- The error mesasge to respond with if `on_error` is set to `fail` or if `retries` is achieved. Templating with Lua expressions is supported. type: string http_statuses: description: >- The list of HTTP status codes considered errors under the error handling policy. items: maximum: 999 minimum: 100 type: integer type: array on_error: default: fail enum: - continue - fail - retry type: string retries: default: 2 description: >- The number of retries the plugin will attempt on TCP and HTTP errors if `on_error` is set to `retry`. type: integer type: object headers: description: Callout request header customizations. properties: custom: additionalProperties: true description: >- The custom headers to be added in the callout HTTP request. Values can contain Lua expressions in the form `$(some_lua_expression)`. The syntax is based on `request-transformer-advanced` templates. type: object forward: default: false description: >- If `true`, forwards the incoming request's headers to the callout request. type: boolean type: object http_opts: description: HTTP connection parameters. properties: proxy: description: Proxy settings. properties: auth_password: description: >- The password to authenticate with, if the forward proxy is protected by basic authentication. type: string auth_username: description: >- The username to authenticate with, if the forward proxy is protected by basic authentication. type: string http_proxy: description: >- The HTTP proxy URL. This proxy server will be used for HTTP requests. type: string https_proxy: description: >- The HTTPS proxy URL. This proxy server will be used for HTTPS requests. type: string type: object ssl_server_name: description: >- The SNI used in the callout request. Defaults to host if omitted. type: string ssl_verify: default: false description: >- If set to `true`, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly. type: boolean timeouts: description: >- Socket timeouts in milliseconds. All or none must be set. properties: connect: description: The socket connect timeout. maximum: 2147483646 minimum: 0 type: integer read: description: 'The socket read timeout. ' maximum: 2147483646 minimum: 0 type: integer write: description: The socket write timeout. maximum: 2147483646 minimum: 0 type: integer type: object type: object method: default: GET description: The HTTP method that will be requested. type: string query: description: Callout request query param customizations. properties: custom: additionalProperties: true description: >- The custom query params to be added in the callout HTTP request. Values can contain Lua expressions in the form `$(some_lua_expression)`. The syntax is based on `request-transformer-advanced` templates. type: object forward: default: false description: >- If `true`, forwards the incoming request's query params to the callout request. type: boolean type: object url: description: >- The URL that will be requested. Values can contain Lua expressions in the form `$(some_lua_expression)`. The syntax is based on `request-transformer-advanced` templates. type: string required: - url type: object response: description: Configurations of callout response handling. properties: body: properties: decode: default: false description: >- If `true`, decodes the response body before storing into the context. Only JSON is supported. type: boolean store: default: true description: >- If `false`, skips storing the callout response body into kong.ctx.shared.callouts..response.body. type: boolean type: object by_lua: description: >- Lua code that executes after the callout response is received, before caching takes place. Can produce side effects. Standard Lua sandboxing restrictions apply. type: string headers: description: Callout response header customizations. properties: store: default: true description: >- If `false`, skips storing the callout response headers into kong.ctx.shared.callouts..response.headers. type: boolean type: object type: object required: - name - request type: object type: array upstream: description: Customizations to the upstream request. properties: body: description: Callout request body customizations. properties: custom: additionalProperties: true description: >- The custom body fields to be added in the upstream request body. Values can contain Lua expressions in the form $(some_lua_expression). The syntax is based on `request-transformer-advanced` templates. type: object decode: default: true description: >- If `true`, decodes the request's body to make it available for upstream by_lua customizations. Only JSON content type is supported. type: boolean forward: default: true description: >- If `false`, skips forwarding the incoming request's body to the upstream request. type: boolean type: object by_lua: description: >- Lua code that executes before the upstream request is made. Can produce side effects. Standard Lua sandboxing restrictions apply. type: string headers: description: Callout request header customizations. properties: custom: additionalProperties: true description: >- The custom headers to be added in the upstream HTTP request. Values can contain Lua expressions in the form $(some_lua_expression). The syntax is based on `request-transformer-advanced` templates. type: object forward: default: true description: >- If `false`, does not forward request headers to upstream request. type: boolean type: object query: description: Upstream request query param customizations. properties: custom: additionalProperties: true description: >- The custom query params to be added in the upstream HTTP request. Values can contain Lua expressions in the form `$(some_lua_expression)`. The syntax is based on `request-transformer-advanced` templates. type: object forward: default: true description: >- If `false`, does not forward request query params to upstream request. type: boolean type: object type: object required: - callouts type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config RequestSizeLimitingPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/RequestSizeLimitingPluginConfig' properties: name: const: request-size-limiting x-speakeasy-entity: PluginRequestSizeLimiting RequestSizeLimitingPluginConfig: properties: config: properties: allowed_payload_size: default: 128 description: >- Allowed request payload size in megabytes. Default is `128` megabytes (128000000 bytes). type: integer require_content_length: default: false description: >- Set to `true` to ensure a valid `Content-Length` header exists before reading the request body. type: boolean size_unit: default: megabytes description: >- Size unit can be set either in `bytes`, `kilobytes`, or `megabytes` (default). This configuration is not available in versions prior to Kong Gateway 1.3 and Kong Gateway (OSS) 2.0. enum: - bytes - kilobytes - megabytes type: string type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object RequestTerminationPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/RequestTerminationPluginConfig' properties: name: const: request-termination x-speakeasy-entity: PluginRequestTermination RequestTerminationPluginConfig: properties: config: properties: body: description: >- The raw response body to send. This is mutually exclusive with the `config.message` field. type: string content_type: description: Content type of the raw response configured with `config.body`. type: string echo: default: false description: >- When set, the plugin will echo a copy of the request back to the client. The main usecase for this is debugging. It can be combined with `trigger` in order to debug requests on live systems without disturbing real traffic. type: boolean message: description: The message to send, if using the default response generator. type: string status_code: default: 503 description: >- The response code to send. Must be an integer between 100 and 599. maximum: 599 minimum: 100 type: integer trigger: description: A string representing an HTTP header name. type: string type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object RequestTransformerAdvancedPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/RequestTransformerAdvancedPluginConfig' properties: name: const: request-transformer-advanced x-speakeasy-entity: PluginRequestTransformerAdvanced RequestTransformerAdvancedPluginConfig: properties: config: properties: add: properties: body: default: [] items: type: string type: array headers: default: [] items: type: string type: array json_types: default: [] items: enum: - boolean - number - string type: string type: array querystring: default: [] items: type: string type: array type: object allow: properties: body: items: type: string type: array type: object append: properties: body: default: [] items: type: string type: array headers: default: [] items: type: string type: array json_types: default: [] items: enum: - boolean - number - string type: string type: array querystring: default: [] items: type: string type: array type: object dots_in_keys: default: true description: >- Specify whether dots (for example, `customers.info.phone`) should be treated as part of a property name or used to descend into nested JSON objects. type: boolean http_method: description: >- A string representing an HTTP method, such as GET, POST, PUT, or DELETE. The string must contain only uppercase letters. type: string remove: properties: body: default: [] items: type: string type: array headers: default: [] items: type: string type: array querystring: default: [] items: type: string type: array type: object rename: properties: body: default: [] items: type: string type: array headers: default: [] items: type: string type: array querystring: default: [] items: type: string type: array type: object replace: properties: body: default: [] items: type: string type: array headers: default: [] items: type: string type: array json_types: default: [] items: enum: - boolean - number - string type: string type: array querystring: default: [] items: type: string type: array uri: type: string type: object type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object RequestTransformerPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/RequestTransformerPluginConfig' properties: name: const: request-transformer x-speakeasy-entity: PluginRequestTransformer RequestTransformerPluginConfig: properties: config: properties: add: properties: body: default: [] items: type: string type: array headers: default: [] items: type: string type: array querystring: default: [] items: type: string type: array type: object append: properties: body: default: [] items: type: string type: array headers: default: [] items: type: string type: array querystring: default: [] items: type: string type: array type: object http_method: description: >- A string representing an HTTP method, such as GET, POST, PUT, or DELETE. The string must contain only uppercase letters. type: string remove: properties: body: default: [] items: type: string type: array headers: default: [] items: type: string type: array querystring: default: [] items: type: string type: array type: object rename: properties: body: default: [] items: type: string type: array headers: default: [] items: type: string type: array querystring: default: [] items: type: string type: array type: object replace: properties: body: default: [] items: type: string type: array headers: default: [] items: type: string type: array querystring: default: [] items: type: string type: array uri: type: string type: object type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing protocols. format: set items: description: A string representing a protocol, such as HTTP or HTTPS. enum: - grpc - grpcs - http - https - tcp - tls - tls_passthrough - udp - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object RequestValidatorPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/RequestValidatorPluginConfig' properties: name: const: request-validator x-speakeasy-entity: PluginRequestValidator RequestValidatorPluginConfig: properties: config: properties: allowed_content_types: default: - application/json description: >- List of allowed content types. The value can be configured with the `charset` parameter. For example, `application/json; charset=UTF-8`. items: type: string type: array body_schema: description: >- The request body schema specification. One of `body_schema` or `parameter_schema` must be specified. type: string content_type_parameter_validation: default: true description: >- Determines whether to enable parameters validation of request content-type. type: boolean parameter_schema: description: >- Array of parameter validator specification. One of `body_schema` or `parameter_schema` must be specified. items: properties: explode: description: >- Required when `schema` and `style` are set. When `explode` is `true`, parameter values of type `array` or `object` generate separate parameters for each value of the array or key-value pair of the map. For other types of parameters, this property has no effect. type: boolean in: description: The location of the parameter. enum: - header - path - query type: string name: description: >- The name of the parameter. Parameter names are case-sensitive, and correspond to the parameter name used by the `in` property. If `in` is `path`, the `name` field MUST correspond to the named capture group from the configured `route`. type: string required: description: Determines whether this parameter is mandatory. type: boolean schema: description: >- Required when `style` and `explode` are set. This is the schema defining the type used for the parameter. It is validated using `draft4` for JSON Schema draft 4 compliant validator. In addition to being a valid JSON Schema, the parameter schema MUST have a top-level `type` property to enable proper deserialization before validating. type: string style: description: >- Required when `schema` and `explode` are set. Describes how the parameter value will be deserialized depending on the type of the parameter value. enum: - deepObject - form - label - matrix - pipeDelimited - simple - spaceDelimited type: string required: - in - name - required type: object type: array verbose_response: default: false description: >- If enabled, the plugin returns more verbose and detailed validation errors. type: boolean version: default: kong description: >- Which validator to use. Supported values are `kong` (default) for using Kong's own schema validator, or `draft4`, `draft7`, `draft201909`, and `draft202012` for using their respective JSON Schema Draft compliant validators. enum: - draft201909 - draft202012 - draft4 - draft6 - draft7 - kong type: string type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object ResponseRatelimitingPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/ResponseRatelimitingPluginConfig' properties: name: const: response-ratelimiting x-speakeasy-entity: PluginResponseRatelimiting ResponseRatelimitingPluginConfig: properties: config: properties: block_on_first_violation: default: false description: >- A boolean value that determines if the requests should be blocked as soon as one limit is being exceeded. This will block requests that are supposed to consume other limits too. type: boolean fault_tolerant: default: true description: >- A boolean value that determines if the requests should be proxied even if Kong has troubles connecting a third-party datastore. If `true`, requests will be proxied anyway, effectively disabling the rate-limiting function until the datastore is working again. If `false`, then the clients will see `500` errors. type: boolean header_name: default: x-kong-limit description: The name of the response header used to increment the counters. type: string hide_client_headers: default: false description: Optionally hide informative response headers. type: boolean limit_by: default: consumer description: >- The entity that will be used when aggregating the limits: `consumer`, `credential`, `ip`. If the `consumer` or the `credential` cannot be determined, the system will always fallback to `ip`. enum: - consumer - credential - ip type: string limits: additionalProperties: properties: day: type: number hour: type: number minute: type: number month: type: number second: type: number year: type: number type: object type: object policy: default: local description: >- The rate-limiting policies to use for retrieving and incrementing the limits. enum: - cluster - local - redis type: string redis: description: Redis configuration properties: database: default: 0 description: >- Database to use for the Redis connection when using the `redis` strategy type: integer host: description: A string representing a host name, such as example.com. type: string password: description: >- Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer server_name: description: >- A string representing an SNI (server name indication) value for TLS. type: string ssl: default: false description: If set to true, uses SSL to connect to Redis. type: boolean ssl_verify: default: false description: >- If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly. type: boolean timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer username: description: >- Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`. type: string type: object type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object ResponseTransformerAdvancedPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/ResponseTransformerAdvancedPluginConfig' properties: name: const: response-transformer-advanced x-speakeasy-entity: PluginResponseTransformerAdvanced ResponseTransformerAdvancedPluginConfig: properties: config: properties: add: properties: headers: default: [] items: type: string type: array if_status: default: [] items: type: string type: array json: default: [] items: type: string type: array json_types: default: [] items: enum: - boolean - number - string type: string type: array type: object allow: properties: json: items: type: string type: array type: object append: properties: headers: default: [] items: type: string type: array if_status: default: [] items: type: string type: array json: default: [] items: type: string type: array json_types: default: [] items: enum: - boolean - number - string type: string type: array type: object dots_in_keys: default: true description: >- Whether dots (for example, `customers.info.phone`) should be treated as part of a property name or used to descend into nested JSON objects.. type: boolean remove: properties: headers: default: [] items: type: string type: array if_status: default: [] items: type: string type: array json: default: [] items: type: string type: array type: object rename: properties: headers: default: [] items: type: string type: array if_status: default: [] items: type: string type: array type: object replace: properties: body: description: String with which to replace the entire response body. type: string headers: default: [] items: type: string type: array if_status: default: [] items: type: string type: array json: default: [] items: type: string type: array json_types: default: [] items: enum: - boolean - number - string type: string type: array type: object transform: properties: functions: default: [] items: type: string type: array if_status: default: [] items: type: string type: array json: default: [] items: type: string type: array type: object type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object ResponseTransformerPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/ResponseTransformerPluginConfig' properties: name: const: response-transformer x-speakeasy-entity: PluginResponseTransformer ResponseTransformerPluginConfig: properties: config: properties: add: properties: headers: default: [] items: type: string type: array json: default: [] items: type: string type: array json_types: default: [] description: >- List of JSON type names. Specify the types of the JSON values returned when appending JSON properties. Each string element can be one of: boolean, number, or string. items: enum: - boolean - number - string type: string type: array type: object append: properties: headers: default: [] items: type: string type: array json: default: [] items: type: string type: array json_types: default: [] description: >- List of JSON type names. Specify the types of the JSON values returned when appending JSON properties. Each string element can be one of: boolean, number, or string. items: enum: - boolean - number - string type: string type: array type: object remove: properties: headers: default: [] items: type: string type: array json: default: [] items: type: string type: array type: object rename: properties: headers: default: [] items: type: string type: array json: default: [] items: type: string type: array type: object replace: properties: headers: default: [] items: type: string type: array json: default: [] items: type: string type: array json_types: default: [] description: >- List of JSON type names. Specify the types of the JSON values returned when appending JSON properties. Each string element can be one of: boolean, number, or string. items: enum: - boolean - number - string type: string type: array type: object type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object Route: oneOf: - $ref: '#/components/schemas/RouteJson' - $ref: '#/components/schemas/RouteExpression' RouteByHeaderPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/RouteByHeaderPluginConfig' properties: name: const: route-by-header x-speakeasy-entity: PluginRouteByHeader RouteByHeaderPluginConfig: properties: config: properties: rules: default: [] description: Route by header rules. items: properties: condition: additionalProperties: type: string minLength: 1 type: object upstream_name: type: string required: - upstream_name type: object type: array type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object RouteExpression: additionalProperties: false description: >- Route entities define rules to match client requests. Each Route is associated with a Service, and a Service may have multiple Routes associated to it. Every request matching a given Route will be proxied to its associated Service. The combination of Routes and Services (and the separation of concerns between them) offers a powerful routing mechanism with which it is possible to define fine-grained entry-points in Kong leading to different upstream services of your infrastructure. You need at least one matching rule that applies to the protocol being matched by the Route. properties: created_at: description: Unix epoch when the resource was created. nullable: true type: integer expression: description: >- Use Router Expression to perform route match. This option is only available when `router_flavor` is set to `expressions`. nullable: true type: string https_redirect_status_code: default: 426 description: >- The status code Kong responds with when all properties of a Route match except the protocol i.e. if the protocol of the request is `HTTP` instead of `HTTPS`. `Location` header is injected by Kong if the field is set to 301, 302, 307 or 308. Note: This config applies only if the Route is configured to only accept the `https` protocol. enum: - 301 - 302 - 307 - 308 - 426 nullable: true type: integer id: description: A string representing a UUID (universally unique identifier). nullable: true type: string name: description: >- The name of the Route. Route names must be unique, and they are case sensitive. For example, there can be two different Routes named "test" and "Test". nullable: true type: string path_handling: default: v0 description: >- Controls how the Service path, Route path and requested path are combined when sending a request to the upstream. See above for a detailed description of each behavior. enum: - v0 - v1 nullable: true type: string preserve_host: default: false description: >- When matching a Route via one of the `hosts` domain names, use the request `Host` header in the upstream request headers. If set to `false`, the upstream `Host` header will be that of the Service's `host`. nullable: true type: boolean priority: default: 0 description: >- A number used to specify the matching order for expression routes. The higher the `priority`, the sooner an route will be evaluated. This field is ignored unless `expression` field is set. maximum: 70368744177663 minimum: 0 nullable: true type: integer protocols: default: - http - https description: >- An array of the protocols this Route should allow. See the [Route Object](#route-object) section for a list of accepted protocols. When set to only `"https"`, HTTP requests are answered with an upgrade error. When set to only `"http"`, HTTPS requests are answered with an error. items: description: A string representing a protocol, such as HTTP or HTTPS. enum: - grpc - grpcs - http - https - tcp - tls - tls_passthrough - udp - ws - wss type: string minLength: 1 nullable: true type: array request_buffering: default: true description: >- Whether to enable request body buffering or not. With HTTP 1.1, it may make sense to turn this off on services that receive data with chunked transfer encoding. nullable: true type: boolean response_buffering: default: true description: >- Whether to enable response body buffering or not. With HTTP 1.1, it may make sense to turn this off on services that send data with chunked transfer encoding. nullable: true type: boolean service: description: >- The Service this Route is associated to. This is where the Route proxies traffic to. nullable: true properties: id: type: string type: object x-foreign: true strip_path: default: true description: >- When matching a Route via one of the `paths`, strip the matching prefix from the upstream request URL. nullable: true type: boolean tags: description: >- An optional set of strings associated with the Route for grouping and filtering. items: description: A string representing a tag. type: string nullable: true type: array updated_at: description: Unix epoch when the resource was last updated. nullable: true type: integer type: object x-speakeasy-entity: RouteExpression RouteJson: additionalProperties: false description: >- Route entities define rules to match client requests. Each Route is associated with a Service, and a Service may have multiple Routes associated to it. Every request matching a given Route will be proxied to its associated Service. The combination of Routes and Services (and the separation of concerns between them) offers a powerful routing mechanism with which it is possible to define fine-grained entry-points in Kong leading to different upstream services of your infrastructure. You need at least one matching rule that applies to the protocol being matched by the Route. example: hosts: - foo.example.com - foo.example.us id: 56c4566c-14cc-4132-9011-4139fcbbe50a name: example-route paths: - /v1 - /v2 service: id: bd380f99-659d-415e-b0e7-72ea05df3218 properties: created_at: description: Unix epoch when the resource was created. nullable: true type: integer destinations: description: >- A list of IP destinations of incoming connections that match this Route when using stream routing. Each entry is an object with fields "ip" (optionally in CIDR range notation) and/or "port". items: properties: ip: description: >- A string representing an IP address or CIDR block, such as 192.168.1.1 or 192.168.0.0/16. type: string port: description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object nullable: true type: array headers: additionalProperties: items: type: string type: array description: >- One or more lists of values indexed by header name that will cause this Route to match if present in the request. The `Host` header cannot be used with this attribute: hosts should be specified using the `hosts` attribute. When `headers` contains only one value and that value starts with the special prefix `~*`, the value is interpreted as a regular expression. nullable: true type: object hosts: description: >- A list of domain names that match this Route. Note that the hosts value is case sensitive. items: type: string nullable: true type: array https_redirect_status_code: default: 426 description: >- The status code Kong responds with when all properties of a Route match except the protocol i.e. if the protocol of the request is `HTTP` instead of `HTTPS`. `Location` header is injected by Kong if the field is set to 301, 302, 307 or 308. Note: This config applies only if the Route is configured to only accept the `https` protocol. enum: - 301 - 302 - 307 - 308 - 426 nullable: true type: integer id: description: A string representing a UUID (universally unique identifier). nullable: true type: string methods: description: A list of HTTP methods that match this Route. items: description: >- A string representing an HTTP method, such as GET, POST, PUT, or DELETE. The string must contain only uppercase letters. type: string nullable: true type: array name: description: >- The name of the Route. Route names must be unique, and they are case sensitive. For example, there can be two different Routes named "test" and "Test". nullable: true type: string path_handling: default: v0 description: >- Controls how the Service path, Route path and requested path are combined when sending a request to the upstream. See above for a detailed description of each behavior. enum: - v0 - v1 nullable: true type: string paths: description: A list of paths that match this Route. items: description: >- A string representing a router path. It must start with a forward slash ('/') for a fixed path, or the sequence '~/' for a regex path. It must not have empty segments. type: string nullable: true type: array preserve_host: default: false description: >- When matching a Route via one of the `hosts` domain names, use the request `Host` header in the upstream request headers. If set to `false`, the upstream `Host` header will be that of the Service's `host`. nullable: true type: boolean protocols: default: - http - https description: >- An array of the protocols this Route should allow. See the [Route Object](#route-object) section for a list of accepted protocols. When set to only `"https"`, HTTP requests are answered with an upgrade error. When set to only `"http"`, HTTPS requests are answered with an error. items: description: A string representing a protocol, such as HTTP or HTTPS. enum: - grpc - grpcs - http - https - tcp - tls - tls_passthrough - udp - ws - wss type: string minLength: 1 nullable: true type: array regex_priority: default: 0 description: >- A number used to choose which route resolves a given request when several routes match it using regexes simultaneously. When two routes match the path and have the same `regex_priority`, the older one (lowest `created_at`) is used. Note that the priority for non-regex routes is different (longer non-regex routes are matched before shorter ones). nullable: true type: integer request_buffering: default: true description: >- Whether to enable request body buffering or not. With HTTP 1.1, it may make sense to turn this off on services that receive data with chunked transfer encoding. nullable: true type: boolean response_buffering: default: true description: >- Whether to enable response body buffering or not. With HTTP 1.1, it may make sense to turn this off on services that send data with chunked transfer encoding. nullable: true type: boolean service: description: >- The Service this Route is associated to. This is where the Route proxies traffic to. nullable: true properties: id: type: string type: object x-foreign: true snis: description: A list of SNIs that match this Route when using stream routing. items: description: A string representing a wildcard host name, such as *.example.com. type: string nullable: true type: array sources: description: >- A list of IP sources of incoming connections that match this Route when using stream routing. Each entry is an object with fields "ip" (optionally in CIDR range notation) and/or "port". items: properties: ip: description: >- A string representing an IP address or CIDR block, such as 192.168.1.1 or 192.168.0.0/16. type: string port: description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object nullable: true type: array strip_path: default: true description: >- When matching a Route via one of the `paths`, strip the matching prefix from the upstream request URL. nullable: true type: boolean tags: description: >- An optional set of strings associated with the Route for grouping and filtering. items: description: A string representing a tag. type: string nullable: true type: array updated_at: description: Unix epoch when the resource was last updated. nullable: true type: integer type: object x-speakeasy-entity: Route RouteTransformerAdvancedPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/RouteTransformerAdvancedPluginConfig' properties: name: const: route-transformer-advanced x-speakeasy-entity: PluginRouteTransformerAdvanced RouteTransformerAdvancedPluginConfig: properties: config: properties: escape_path: default: false type: boolean host: type: string path: type: string port: type: string type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object SNI: additionalProperties: false description: >- An SNI object represents a many-to-one mapping of hostnames to a certificate. That is, a certificate object can have many hostnames associated with it; when Kong receives an SSL request, it uses the SNI field in the Client Hello to lookup the certificate object based on the SNI associated with the certificate. example: certificate: id: bd380f99-659d-415e-b0e7-72ea05df3218 id: 36c4566c-14cc-4132-9011-4139fcbbe50a name: some.example.org properties: certificate: description: >- The id (a UUID) of the certificate with which to associate the SNI hostname. The Certificate must have a valid private key associated with it to be used by the SNI object. properties: id: type: string type: object x-foreign: true created_at: description: Unix epoch when the resource was created. nullable: true type: integer id: description: A string representing a UUID (universally unique identifier). nullable: true type: string name: description: The SNI name to associate with the given certificate. type: string tags: description: >- An optional set of strings associated with the SNIs for grouping and filtering. items: description: A string representing a tag. type: string nullable: true type: array updated_at: description: Unix epoch when the resource was last updated. nullable: true type: integer required: - name - certificate type: object x-speakeasy-entity: SNI SamlPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/SamlPluginConfig' properties: name: const: saml x-speakeasy-entity: PluginSaml SamlPluginConfig: properties: config: properties: anonymous: description: >- An optional string (consumer UUID or username) value to use as an “anonymous” consumer. If not set, a Kong Consumer must exist for the SAML IdP user credentials, mapping the username format to the Kong Consumer username. type: string assertion_consumer_path: description: >- A string representing a URL path, such as /path/to/resource. Must start with a forward slash (/) and must not contain empty segments (i.e., two consecutive forward slashes). type: string idp_certificate: description: >- The public certificate provided by the IdP. This is used to validate responses from the IdP. Only include the contents of the certificate. Do not include the header (`BEGIN CERTIFICATE`) and footer (`END CERTIFICATE`) lines. type: string idp_sso_url: description: >- A string representing a URL, such as https://example.com/path/to/resource?q=search. type: string issuer: description: >- The unique identifier of the IdP application. Formatted as a URL containing information about the IdP so the SP can validate that the SAML assertions it receives are issued from the correct IdP. type: string nameid_format: default: EmailAddress description: >- The requested `NameId` format. Options available are: - `Unspecified` - `EmailAddress` - `Persistent` - `Transient` enum: - EmailAddress - Persistent - Transient - Unspecified type: string redis: properties: cluster_max_redirections: default: 5 description: Maximum retry attempts for redirection. type: integer cluster_nodes: description: >- Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element. items: properties: ip: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array connect_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer connection_is_proxied: default: false description: >- If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address. type: boolean database: default: 0 description: >- Database to use for the Redis connection when using the `redis` strategy type: integer host: default: 127.0.0.1 description: A string representing a host name, such as example.com. type: string keepalive_backlog: description: >- Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`. maximum: 2147483646 minimum: 0 type: integer keepalive_pool_size: default: 256 description: >- The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn't specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low. maximum: 2147483646 minimum: 1 type: integer password: description: >- Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer prefix: description: The Redis session key prefix. type: string read_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer send_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer sentinel_master: description: >- Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel. type: string sentinel_nodes: description: >- Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element. items: properties: host: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array sentinel_password: description: >- Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels. type: string sentinel_role: description: >- Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel. enum: - any - master - slave type: string sentinel_username: description: >- Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won't be performed. This requires Redis v6.2.0+. type: string server_name: description: >- A string representing an SNI (server name indication) value for TLS. type: string socket: description: The Redis unix socket path. type: string ssl: default: false description: If set to true, uses SSL to connect to Redis. type: boolean ssl_verify: default: false description: >- If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly. type: boolean username: description: >- Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`. type: string type: object request_digest_algorithm: default: SHA256 description: 'The digest algorithm for Authn requests: - `SHA256` - `SHA1`' enum: - SHA1 - SHA256 type: string request_signature_algorithm: default: SHA256 description: >- The signature algorithm for signing Authn requests. Options available are: - `SHA256` - `SHA384` - `SHA512` enum: - SHA256 - SHA384 - SHA512 type: string request_signing_certificate: description: The certificate for signing requests. type: string request_signing_key: description: >- The private key for signing requests. If this parameter is set, requests sent to the IdP are signed. The `request_signing_certificate` parameter must be set as well. type: string response_digest_algorithm: default: SHA256 description: >- The algorithm for verifying digest in SAML responses: - `SHA256` - `SHA1` enum: - SHA1 - SHA256 type: string response_encryption_key: description: >- The private encryption key required to decrypt encrypted assertions. type: string response_signature_algorithm: default: SHA256 description: >- The algorithm for validating signatures in SAML responses. Options available are: - `SHA256` - `SHA384` - `SHA512` enum: - SHA256 - SHA384 - SHA512 type: string session_absolute_timeout: default: 86400 description: >- The session cookie absolute timeout in seconds. Specifies how long the session can be used until it is no longer valid. type: number session_audience: default: default description: The session audience, for example "my-application" type: string session_cookie_domain: description: The session cookie domain flag. type: string session_cookie_http_only: default: true description: >- Forbids JavaScript from accessing the cookie, for example, through the `Document.cookie` property. type: boolean session_cookie_name: default: session description: The session cookie name. type: string session_cookie_path: default: / description: >- A string representing a URL path, such as /path/to/resource. Must start with a forward slash (/) and must not contain empty segments (i.e., two consecutive forward slashes). type: string session_cookie_same_site: default: Lax description: >- Controls whether a cookie is sent with cross-origin requests, providing some protection against cross-site request forgery attacks. enum: - Default - Lax - None - Strict type: string session_cookie_secure: description: >- The cookie is only sent to the server when a request is made with the https:scheme (except on localhost), and therefore is more resistant to man-in-the-middle attacks. type: boolean session_enforce_same_subject: default: false description: >- When set to `true`, audiences are forced to share the same subject. type: boolean session_hash_storage_key: default: false description: >- When set to `true`, the storage key (session ID) is hashed for extra security. Hashing the storage key means it is impossible to decrypt data from the storage without a cookie. type: boolean session_hash_subject: default: false description: >- When set to `true`, the value of subject is hashed before being stored. Only applies when `session_store_metadata` is enabled. type: boolean session_idling_timeout: default: 900 description: The session cookie idle time in seconds. type: number session_memcached_host: default: 127.0.0.1 description: The memcached host. type: string session_memcached_port: default: 11211 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer session_memcached_prefix: description: The memcached session key prefix. type: string session_memcached_socket: description: The memcached unix socket path. type: string session_remember: default: false description: Enables or disables persistent sessions type: boolean session_remember_absolute_timeout: default: 2592000 description: Persistent session absolute timeout in seconds. type: number session_remember_cookie_name: default: remember description: Persistent session cookie name type: string session_remember_rolling_timeout: default: 604800 description: Persistent session rolling timeout in seconds. type: number session_request_headers: items: enum: - absolute-timeout - audience - id - idling-timeout - rolling-timeout - subject - timeout type: string type: array session_response_headers: items: enum: - absolute-timeout - audience - id - idling-timeout - rolling-timeout - subject - timeout type: string type: array session_rolling_timeout: default: 3600 description: >- The session cookie absolute timeout in seconds. Specifies how long the session can be used until it is no longer valid. type: number session_secret: description: >- The session secret. This must be a random string of 32 characters from the base64 alphabet (letters, numbers, `/`, `_` and `+`). It is used as the secret key for encrypting session data as well as state information that is sent to the IdP in the authentication exchange. maxLength: 32 minLength: 32 type: string session_storage: default: cookie description: >- The session storage for session data: - `cookie`: stores session data with the session cookie. The session cannot be invalidated or revoked without changing the session secret, but is stateless, and doesn't require a database. - `memcached`: stores session data in memcached - `redis`: stores session data in Redis enum: - cookie - memcache - memcached - redis type: string session_store_metadata: default: false description: >- Configures whether or not session metadata should be stored. This includes information about the active sessions for the `specific_audience` belonging to a specific subject. type: boolean validate_assertion_signature: default: true description: Enable signature validation for SAML responses. type: boolean required: - assertion_consumer_path - idp_sso_url - issuer - session_secret type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config Service: additionalProperties: false description: >- Service entities, as the name implies, are abstractions of each of your own upstream services. Examples of Services would be a data transformation microservice, a billing API, etc. The main attribute of a Service is its URL (where Kong should proxy traffic to), which can be set as a single string or by specifying its `protocol`, `host`, `port` and `path` individually. Services are associated to Routes (a Service can have many Routes associated with it). Routes are entry-points in Kong and define rules to match client requests. Once a Route is matched, Kong proxies the request to its associated Service. See the [Proxy Reference][proxy-reference] for a detailed explanation of how Kong proxies traffic. example: host: example.internal id: 49fd316e-c457-481c-9fc7-8079153e4f3c name: example-service path: / port: 80 protocol: http properties: ca_certificates: description: >- Array of `CA Certificate` object UUIDs that are used to build the trust store while verifying upstream server's TLS certificate. If set to `null` when Nginx default is respected. If default CA list in Nginx are not specified and TLS verification is enabled, then handshake with upstream server will always fail (because no CA are trusted). items: type: string nullable: true type: array client_certificate: description: >- Certificate to be used as client certificate while TLS handshaking to the upstream server. nullable: true properties: id: type: string type: object x-foreign: true connect_timeout: default: 60000 description: >- The timeout in milliseconds for establishing a connection to the upstream server. maximum: 2147483646 minimum: 1 nullable: true type: integer created_at: description: Unix epoch when the resource was created. nullable: true type: integer enabled: default: true description: >- Whether the Service is active. If set to `false`, the proxy behavior will be as if any routes attached to it do not exist (404). Default: `true`. nullable: true type: boolean host: description: >- The host of the upstream server. Note that the host value is case sensitive. type: string id: description: A string representing a UUID (universally unique identifier). minLength: 1 nullable: true type: string name: description: The Service name. nullable: true type: string path: description: The path to be used in requests to the upstream server. nullable: true type: string port: default: 80 description: The upstream server port. maximum: 65535 minimum: 0 nullable: true type: integer protocol: default: http description: The protocol used to communicate with the upstream. enum: - grpc - grpcs - http - https - tcp - tls - tls_passthrough - udp - ws - wss nullable: true type: string read_timeout: default: 60000 description: >- The timeout in milliseconds between two successive read operations for transmitting a request to the upstream server. maximum: 2147483646 minimum: 1 nullable: true type: integer retries: default: 5 description: The number of retries to execute upon failure to proxy. maximum: 32767 minimum: 0 nullable: true type: integer tags: description: >- An optional set of strings associated with the Service for grouping and filtering. items: description: A string representing a tag. type: string nullable: true type: array tls_sans: description: >- Additional Subject Alternative Names that can be matched on Upstream server's TLS certificate (in addition to `host`). nullable: true properties: dnsnames: description: A dnsName for TLS verification. items: description: >- A string representing an SNI (server name indication) value for TLS. type: string type: array uris: description: An URI for TLS verification. items: description: >- A string representing a URL, such as https://example.com/path/to/resource?q=search. type: string type: array type: object tls_verify: description: >- Whether to enable verification of upstream server TLS certificate. If set to `null`, then the Nginx default is respected. nullable: true type: boolean tls_verify_depth: description: >- Maximum depth of chain while verifying Upstream server's TLS certificate. If set to `null`, then the Nginx default is respected. maximum: 64 minimum: 0 nullable: true type: integer updated_at: description: Unix epoch when the resource was last updated. nullable: true type: integer url: description: >- Helper field to set `protocol`, `host`, `port` and `path` using a URL. This field is write-only and is not returned in responses. type: string writeOnly: true write_timeout: default: 60000 description: >- The timeout in milliseconds between two successive write operations for transmitting a request to the upstream server. maximum: 2147483646 minimum: 1 nullable: true type: integer required: - host type: object x-speakeasy-entity: Service ServiceProtectionPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/ServiceProtectionPluginConfig' properties: name: const: service-protection x-speakeasy-entity: PluginServiceProtection ServiceProtectionPluginConfig: properties: config: properties: dictionary_name: default: kong_rate_limiting_counters description: >- The shared dictionary where counters are stored. When the plugin is configured to synchronize counter data externally (that is `config.strategy` is `cluster` or `redis` and `config.sync_rate` isn't `-1`), this dictionary serves as a buffer to populate counters in the data store on each synchronization cycle. type: string disable_penalty: default: false description: >- If set to `true`, this doesn't count denied requests (status = `429`). If set to `false`, all requests, including denied ones, are counted. This parameter only affects the `sliding` window_type. type: boolean error_code: default: 429 description: >- Set a custom error code to return when the rate limit is exceeded. type: number error_message: default: API rate limit exceeded description: >- Set a custom error message to return when the rate limit is exceeded. type: string hide_client_headers: default: false description: >- Optionally hide informative response headers that would otherwise provide information about the current status of limits and counters. type: boolean limit: description: >- One or more requests-per-window limits to apply. There must be a matching number of window limits and sizes specified. items: type: number type: array lock_dictionary_name: default: kong_locks description: >- The shared dictionary where concurrency control locks are stored. The default shared dictionary is `kong_locks`. The shared dictionary should be declared in nginx-kong.conf. type: string namespace: description: >- The rate limiting library namespace to use for this plugin instance. Counter data and sync configuration is isolated in each namespace. NOTE: For the plugin instances sharing the same namespace, all the configurations that are required for synchronizing counters, e.g. `strategy`, `redis`, `sync_rate`, `dictionary_name`, need to be the same. type: string redis: properties: cluster_max_redirections: default: 5 description: Maximum retry attempts for redirection. type: integer cluster_nodes: description: >- Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element. items: properties: ip: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array connect_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer connection_is_proxied: default: false description: >- If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address. type: boolean database: default: 0 description: >- Database to use for the Redis connection when using the `redis` strategy type: integer host: default: 127.0.0.1 description: A string representing a host name, such as example.com. type: string keepalive_backlog: description: >- Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`. maximum: 2147483646 minimum: 0 type: integer keepalive_pool_size: default: 256 description: >- The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn't specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low. maximum: 2147483646 minimum: 1 type: integer password: description: >- Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer read_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer send_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer sentinel_master: description: >- Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel. type: string sentinel_nodes: description: >- Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element. items: properties: host: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array sentinel_password: description: >- Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels. type: string sentinel_role: description: >- Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel. enum: - any - master - slave type: string sentinel_username: description: >- Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won't be performed. This requires Redis v6.2.0+. type: string server_name: description: >- A string representing an SNI (server name indication) value for TLS. type: string ssl: default: false description: If set to true, uses SSL to connect to Redis. type: boolean ssl_verify: default: false description: >- If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly. type: boolean username: description: >- Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`. type: string type: object retry_after_jitter_max: default: 0 description: >- The upper bound of a jitter (random delay) in seconds to be added to the `Retry-After` header of denied requests (status = `429`) in order to prevent all the clients from coming back at the same time. The lower bound of the jitter is `0`; in this case, the `Retry-After` header is equal to the `RateLimit-Reset` header. type: number strategy: default: local description: >- The rate-limiting strategy to use for retrieving and incrementing the limits. Available values are: `local` and `cluster`. enum: - cluster - local - redis type: string sync_rate: description: >- How often to sync counter data to the central data store. A value of 0 results in synchronous behavior; a value of -1 ignores sync behavior entirely and only stores counters in node memory. A value greater than 0 will sync the counters in the specified number of seconds. The minimum allowed interval is 0.02 seconds (20ms). type: number window_size: description: >- One or more window sizes to apply a limit to (defined in seconds). There must be a matching number of window limits and sizes specified. items: type: number type: array window_type: default: sliding description: >- Sets the time window type to either `sliding` (default) or `fixed`. Sliding windows apply the rate limiting logic while taking into account previous hit rates (from the window that immediately precedes the current) using a dynamic weight. Fixed windows consist of buckets that are statically assigned to a definitive time range, each request is mapped to only one fixed window based on its timestamp and will affect only that window's counters. enum: - fixed - sliding type: string required: - limit - window_size type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config SessionPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/SessionPluginConfig' properties: name: const: session x-speakeasy-entity: PluginSession SessionPluginConfig: properties: config: properties: absolute_timeout: default: 86400 description: >- The session cookie absolute timeout, in seconds. Specifies how long the session can be used until it is no longer valid. type: number audience: default: default description: >- The session audience, which is the intended target application. For example `"my-application"`. type: string bind: description: >- Bind the session to data acquired from the HTTP request or connection. items: enum: - ip - scheme - user-agent type: string type: array cookie_domain: description: The domain with which the cookie is intended to be exchanged. type: string cookie_http_only: default: true description: >- Applies the `HttpOnly` tag so that the cookie is sent only to a server. type: boolean cookie_name: default: session description: The name of the cookie. type: string cookie_path: default: / description: The resource in the host where the cookie is available. type: string cookie_same_site: default: Strict description: >- Determines whether and how a cookie may be sent with cross-site requests. enum: - Default - Lax - None - Strict type: string cookie_secure: default: true description: >- Applies the Secure directive so that the cookie may be sent to the server only with an encrypted request over the HTTPS protocol. type: boolean hash_subject: default: false description: >- Whether to hash or not the subject when store_metadata is enabled. type: boolean idling_timeout: default: 900 description: The session cookie idle time, in seconds. type: number logout_methods: default: - DELETE - POST description: A set of HTTP methods that the plugin will respond to. items: enum: - DELETE - GET - POST type: string type: array logout_post_arg: default: session_logout description: >- The POST argument passed to logout requests. Do not change this property. type: string logout_query_arg: default: session_logout description: The query argument passed to logout requests. type: string read_body_for_logout: default: false type: boolean remember: default: false description: Enables or disables persistent sessions. type: boolean remember_absolute_timeout: default: 2592000 description: The persistent session absolute timeout limit, in seconds. type: number remember_cookie_name: default: remember description: >- Persistent session cookie name. Use with the `remember` configuration parameter. type: string remember_rolling_timeout: default: 604800 description: The persistent session rolling timeout window, in seconds. type: number request_headers: description: >- List of information to include, as headers, in the response to the downstream. items: enum: - absolute-timeout - audience - id - idling-timeout - rolling-timeout - subject - timeout type: string type: array response_headers: description: >- List of information to include, as headers, in the response to the downstream. items: enum: - absolute-timeout - audience - id - idling-timeout - rolling-timeout - subject - timeout type: string type: array rolling_timeout: default: 3600 description: >- The session cookie rolling timeout, in seconds. Specifies how long the session can be used until it needs to be renewed. type: number secret: description: The secret that is used in keyed HMAC generation. type: string stale_ttl: default: 10 description: >- The duration, in seconds, after which an old cookie is discarded, starting from the moment when the session becomes outdated and is replaced by a new one. type: number storage: default: cookie description: >- Determines where the session data is stored. `kong`: Stores encrypted session data into Kong's current database strategy; the cookie will not contain any session data. `cookie`: Stores encrypted session data within the cookie itself. enum: - cookie - kong type: string store_metadata: default: false description: >- Whether to also store metadata of sessions, such as collecting data of sessions for a specific audience belonging to a specific subject. type: boolean type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing protocols. format: set items: description: A string representing a protocol, such as HTTP or HTTPS. enum: - grpc - grpcs - http - https - tcp - tls - tls_passthrough - udp - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object SolaceConsumePlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/SolaceConsumePluginConfig' properties: name: const: solace-consume x-speakeasy-entity: PluginSolaceConsume SolaceConsumePluginConfig: properties: config: properties: flow: description: The flow related configuration. properties: ack_mode: default: CLIENT description: >- Controls how acknowledgments are generated for received Guaranteed messages. When set to `AUTO`, the messages are positively acknowledged upon receiving them. When set to 'CLIENT', the messages are positively or negatively acknowledged by Kong regarding to client delivery status. enum: - AUTO - CLIENT type: string binds: items: properties: name: description: >- The name of the Queue that is the target of the bind. You can use $(uri_captures['']) in this field (replace `` with a real value, for example `$uri_captures['queue']` when the matched route has a path `~/(?[a-z]+)`) type: string type: default: QUEUE description: The type of object to which this Flow is bound. enum: - QUEUE type: string required: - name type: object minLength: 1 type: array functions: description: >- The Lua functions that manipulates the message being received from Solace. The `message` variable can be used to access the current message content, and the function can return a new content. items: type: string type: array max_unacked_messages: default: -1 description: >- This property controls the maximum number of messages that may be unacknowledged on the Flow. type: integer properties: additionalProperties: true description: >- Additional Solace flow properties (each setting needs to have `FLOW_` prefix). type: object selector: description: The selector when binding to an endpoint. type: string wait_timeout: default: 50 description: >- Specifies in milliseconds how long to wait for messages to appear on each poll before giving up or retrying. maximum: 5000 minimum: 1 type: integer window_size: default: 255 description: The Guaranteed message window size for the Flow. maximum: 255 minimum: 1 type: integer required: - binds type: object mode: default: POLLING description: >- The mode of operation for the plugin. The `AUTO` determines the mode automatically from the client request. enum: - AUTO - POLLING - SERVER-SENT-EVENTS - WEBSOCKET type: string polling: description: The `POLLING` mode related configuration settings. properties: timeout: default: 0 description: >- Polling timeout in milliseconds. When set to `0`, the polling works like short-polling and waits at maximum the Flow `wait_timeout` amount of time for the new messages (short-polling). When set to larger than `0`, the connection is kept open and only closed after the timeout or in case messages appear earlier (long-polling). maximum: 300000 minimum: 0 type: integer type: object session: description: Session related configuration. properties: authentication: description: Session authentication related configuration. properties: access_token: description: >- The OAuth2 access token used with `OAUTH2` authentication scheme when connecting to an event broker. type: string access_token_header: type: string id_token: description: >- The OpenID Connect ID token used with `OAUTH2` authentication scheme when connecting to an event broker. type: string id_token_header: type: string password: description: >- The password used with `BASIC` authentication scheme when connecting to an event broker. maxLength: 128 type: string scheme: default: BASIC description: >- The client authentication scheme used when connection to an event broker. enum: - BASIC - NONE - OAUTH2 type: string username: description: >- The username used with `BASIC` authentication scheme when connecting to an event broker. maxLength: 189 type: string type: object calculate_message_expiry: default: true description: >- If this property is true and time-to-live has a positive value in a message, the expiration time is calculated when the message is sent or received type: boolean connect_timeout: default: 3000 description: >- The timeout period (in milliseconds) for a connect operation to a given host (per host). maximum: 100000 minimum: 100 type: integer generate_rcv_timestamps: default: true description: >- When enabled, a receive timestamp is recorded for each message. type: boolean generate_send_timestamps: default: true description: >- When enabled, a send timestamp is automatically included (if not already present) in the Solace-defined fields for each message sent. type: boolean generate_sender_id: default: true description: >- When enabled, a sender id is automatically included (if not already present) in the Solace-defined fields for each message sent. type: boolean generate_sequence_number: default: true description: >- When enabled, a sequence number is automatically included (if not already present) in the Solace-defined fields for each message sent. type: boolean host: description: >- The IPv4 or IPv6 address or host name to connect to (see: https://docs.solace.com/API-Developer-Online-Ref-Documentation/c/index.html#host-entry). type: string properties: additionalProperties: true description: >- Additional Solace session properties (each setting needs to have `SESSION_` prefix). type: object ssl_validate_certificate: default: false description: >- Indicates whether the API should validate server certificates with the trusted certificates. type: boolean vpn_name: description: >- The name of the Message VPN to attempt to join when connecting to an event broker. maxLength: 32 type: string required: - host type: object websocket: description: The `WEBSOCKET` mode related configuration settings. properties: max_recv_len: default: 65536 description: >- Specifies the maximal length of payload allowed when receiving WebSocket frames. type: integer max_send_len: default: 65536 description: >- Specifies the maximal length of payload allowed when sending WebSocket frames. type: integer timeout: default: 1000 description: Specifies the network timeout threshold in milliseconds. maximum: 60000 minimum: 1 type: integer type: object required: - flow - session type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config SolaceLogPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/SolaceLogPluginConfig' properties: name: const: solace-log x-speakeasy-entity: PluginSolaceLog SolaceLogPluginConfig: properties: config: properties: message: description: The log message related configuration. properties: ack_timeout: default: 2000 description: >- When using a non-DIRECT guaranteed delivery mode, this property sets the log message acknowledgement timeout (waiting time). maximum: 100000 minimum: 1 type: integer custom_fields_by_lua: additionalProperties: type: string description: >- A key-value map that dynamically modifies log fields using Lua code. type: object delivery_mode: default: DIRECT description: Sets the log message delivery mode. enum: - DIRECT - PERSISTENT type: string destinations: description: The log message destinations. items: properties: name: description: >- The name of the destination. You can use `$(uri_captures[''])` in this field to capture the name from a regex request URI (replace `` with a real value; for example `$(uri_captures['queue'])` when the matched route has a path `~/(?[a-z]+)`). type: string type: default: QUEUE description: The type of the destination. enum: - QUEUE - TOPIC type: string required: - name type: object minLength: 1 type: array dmq_eligible: default: false description: >- Sets the dead message queue (DMQ) eligible property on the log message. type: boolean priority: default: 4 description: Sets the log message priority. maximum: 255 minimum: 0 type: integer sender_id: description: Allows the application to set the sender identifier. type: string tracing: default: false description: >- Enable or disable the tracing. This is primarily used for distributed tracing and log message correlation, especially in debugging or tracking log message flows across multiple systems. type: boolean tracing_sampled: default: false description: >- Indicates whether the log message should be included in distributed tracing (i.e., if it should be "sampled" for the tracing). type: boolean ttl: default: 0 description: >- Sets the time to live (TTL) in milliseconds for the log message. Setting the time to live to zero disables the TTL for the log message. type: integer required: - destinations type: object session: description: Session related configuration. properties: authentication: description: Session authentication related configuration. properties: access_token: description: >- The OAuth2 access token used with `OAUTH2` authentication scheme when connecting to an event broker. type: string access_token_header: type: string id_token: description: >- The OpenID Connect ID token used with `OAUTH2` authentication scheme when connecting to an event broker. type: string id_token_header: type: string password: description: >- The password used with `BASIC` authentication scheme when connecting to an event broker. maxLength: 128 type: string scheme: default: BASIC description: >- The client authentication scheme used when connection to an event broker. enum: - BASIC - NONE - OAUTH2 type: string username: description: >- The username used with `BASIC` authentication scheme when connecting to an event broker. maxLength: 189 type: string type: object calculate_message_expiry: default: true description: >- If this property is true and time-to-live has a positive value in a message, the expiration time is calculated when the message is sent or received type: boolean connect_timeout: default: 3000 description: >- The timeout period (in milliseconds) for a connect operation to a given host (per host). maximum: 100000 minimum: 100 type: integer generate_rcv_timestamps: default: true description: >- When enabled, a receive timestamp is recorded for each message. type: boolean generate_send_timestamps: default: true description: >- When enabled, a send timestamp is automatically included (if not already present) in the Solace-defined fields for each message sent. type: boolean generate_sender_id: default: true description: >- When enabled, a sender id is automatically included (if not already present) in the Solace-defined fields for each message sent. type: boolean generate_sequence_number: default: true description: >- When enabled, a sequence number is automatically included (if not already present) in the Solace-defined fields for each message sent. type: boolean host: description: >- The IPv4 or IPv6 address or host name to connect to (see: https://docs.solace.com/API-Developer-Online-Ref-Documentation/c/index.html#host-entry). type: string properties: additionalProperties: true description: >- Additional Solace session properties (each setting needs to have `SESSION_` prefix). type: object ssl_validate_certificate: default: false description: >- Indicates whether the API should validate server certificates with the trusted certificates. type: boolean vpn_name: description: >- The name of the Message VPN to attempt to join when connecting to an event broker. maxLength: 32 type: string required: - host type: object required: - message - session type: object protocols: default: - grpc - grpcs - http - https - ws - wss description: >- A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls. format: set items: enum: - grpc - grpcs - http - https - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config SolaceUpstreamPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/SolaceUpstreamPluginConfig' properties: name: const: solace-upstream x-speakeasy-entity: PluginSolaceUpstream SolaceUpstreamPluginConfig: properties: config: properties: message: description: The message related configuration. properties: ack_timeout: default: 2000 description: >- When using a non-DIRECT guaranteed delivery mode, this property sets the message acknowledgement timeout in milliseconds (waiting time). maximum: 100000 minimum: 1 type: integer default_content: description: >- When not using `forward_method`, `forward_uri`, `forward_headers` or `forward_body`, this sets the message content. type: string delivery_mode: default: DIRECT description: Sets the message delivery mode. enum: - DIRECT - PERSISTENT type: string destinations: description: The message destinations. items: properties: name: description: >- The name of the destination. You can use $(uri_captures['']) in this field (replace `` with a real value, for example `$uri_captures[’queue’]` when the matched route has a path `~/(?[a-z]+)`). type: string type: default: QUEUE description: The type of the destination. enum: - QUEUE - TOPIC type: string required: - name type: object minLength: 1 type: array dmq_eligible: default: false description: >- Sets the dead message queue (DMQ) eligible property on the message. type: boolean forward_body: default: false description: >- Include the request body and the body arguments in the message. type: boolean forward_headers: default: false description: Include the request headers in the message. type: boolean forward_method: default: false description: Include the request method in the message. type: boolean forward_uri: default: false description: >- Include the request URI and the URI arguments (as in, query arguments) in the message. type: boolean functions: description: >- The Lua functions that manipulates (or generates) the message being sent to Solace. The `message` variable can be used to access the current message content, and the function can return a new content. items: type: string type: array priority: default: 4 description: Sets the message priority. maximum: 255 minimum: 0 type: integer sender_id: description: >- Allows the application to set the content of the sender identifier. type: string tracing: default: false description: >- Enable or disable the tracing. This is primarily used for distributed tracing and message correlation, especially in debugging or tracking message flows across multiple systems. type: boolean tracing_sampled: default: false description: >- Indicates whether the message should be included in distributed tracing (i.e., if it should be "sampled" for the tracing) type: boolean ttl: default: 0 description: >- Sets the time to live (TTL) in milliseconds for the message. Setting the time to live to zero disables the TTL for the message. type: integer required: - destinations type: object session: description: Session related configuration. properties: authentication: description: Session authentication related configuration. properties: access_token: description: >- The OAuth2 access token used with `OAUTH2` authentication scheme when connecting to an event broker. type: string access_token_header: type: string id_token: description: >- The OpenID Connect ID token used with `OAUTH2` authentication scheme when connecting to an event broker. type: string id_token_header: type: string password: description: >- The password used with `BASIC` authentication scheme when connecting to an event broker. maxLength: 128 type: string scheme: default: BASIC description: >- The client authentication scheme used when connection to an event broker. enum: - BASIC - NONE - OAUTH2 type: string username: description: >- The username used with `BASIC` authentication scheme when connecting to an event broker. maxLength: 189 type: string type: object calculate_message_expiry: default: true description: >- If this property is true and time-to-live has a positive value in a message, the expiration time is calculated when the message is sent or received type: boolean connect_timeout: default: 3000 description: >- The timeout period (in milliseconds) for a connect operation to a given host (per host). maximum: 100000 minimum: 100 type: integer generate_rcv_timestamps: default: true description: >- When enabled, a receive timestamp is recorded for each message. type: boolean generate_send_timestamps: default: true description: >- When enabled, a send timestamp is automatically included (if not already present) in the Solace-defined fields for each message sent. type: boolean generate_sender_id: default: true description: >- When enabled, a sender id is automatically included (if not already present) in the Solace-defined fields for each message sent. type: boolean generate_sequence_number: default: true description: >- When enabled, a sequence number is automatically included (if not already present) in the Solace-defined fields for each message sent. type: boolean host: description: >- The IPv4 or IPv6 address or host name to connect to (see: https://docs.solace.com/API-Developer-Online-Ref-Documentation/c/index.html#host-entry). type: string properties: additionalProperties: true description: >- Additional Solace session properties (each setting needs to have `SESSION_` prefix). type: object ssl_validate_certificate: default: false description: >- Indicates whether the API should validate server certificates with the trusted certificates. type: boolean vpn_name: description: >- The name of the Message VPN to attempt to join when connecting to an event broker. maxLength: 32 type: string required: - host type: object required: - message - session type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config StandardWebhooksPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/StandardWebhooksPluginConfig' properties: name: const: standard-webhooks x-speakeasy-entity: PluginStandardWebhooks StandardWebhooksPluginConfig: properties: config: properties: secret_v1: description: Webhook secret type: string tolerance_second: default: 300 description: >- Tolerance of the webhook timestamp in seconds. If the webhook timestamp is older than this number of seconds, it will be rejected with a '400' response. type: integer required: - secret_v1 type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config StatsdAdvancedPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/StatsdAdvancedPluginConfig' properties: name: const: statsd-advanced x-speakeasy-entity: PluginStatsdAdvanced StatsdAdvancedPluginConfig: properties: config: properties: allow_status_codes: description: >- List of status code ranges that are allowed to be logged in metrics. items: type: string type: array consumer_identifier_default: default: custom_id description: >- The default consumer identifier for metrics. This will take effect when a metric's consumer identifier is omitted. Allowed values are `custom_id`, `consumer_id`, `username`. enum: - consumer_id - custom_id - username type: string host: default: localhost description: A string representing a host name, such as example.com. type: string hostname_in_prefix: default: false description: Include the `hostname` in the `prefix` for each metric name. type: boolean metrics: description: List of Metrics to be logged. items: properties: consumer_identifier: enum: - consumer_id - custom_id - username type: string name: enum: - cache_datastore_hits_total - cache_datastore_misses_total - kong_latency - latency - request_count - request_per_user - request_size - response_size - shdict_usage - status_count - status_count_per_user - status_count_per_user_per_route - status_count_per_workspace - unique_users - upstream_latency type: string sample_rate: type: number service_identifier: enum: - service_host - service_id - service_name - service_name_or_host type: string stat_type: enum: - counter - gauge - histogram - meter - set - timer type: string workspace_identifier: enum: - workspace_id - workspace_name type: string required: - name - stat_type type: object type: array port: default: 8125 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer prefix: default: kong description: String to prefix to each metric's name. type: string queue: properties: concurrency_limit: default: 1 description: >- The number of of queue delivery timers. -1 indicates unlimited. enum: - -1 - 1 type: integer initial_retry_delay: default: 0.01 description: >- Time in seconds before the initial retry is made for a failing batch. maximum: 1000000 minimum: 0.001 type: number max_batch_size: default: 1 description: Maximum number of entries that can be processed at a time. maximum: 1000000 minimum: 1 type: integer max_bytes: description: >- Maximum number of bytes that can be waiting on a queue, requires string content. type: integer max_coalescing_delay: default: 1 description: >- Maximum number of (fractional) seconds to elapse after the first entry was queued before the queue starts calling the handler. maximum: 3600 minimum: 0 type: number max_entries: default: 10000 description: Maximum number of entries that can be waiting on the queue. maximum: 1000000 minimum: 1 type: integer max_retry_delay: default: 60 description: >- Maximum time in seconds between retries, caps exponential backoff. maximum: 1000000 minimum: 0.001 type: number max_retry_time: default: 60 description: >- Time in seconds before the queue gives up calling a failed handler for a batch. type: number type: object service_identifier_default: default: service_name_or_host description: >- The default service identifier for metrics. This will take effect when a metric's service identifier is omitted. Allowed values are `service_name_or_host`, `service_id`, `service_name`, `service_host`. enum: - service_host - service_id - service_name - service_name_or_host type: string udp_packet_size: default: 0 description: >- Combine UDP packet up to the size configured. If zero (0), don't combine the UDP packet. Must be a number between 0 and 65507 (inclusive). maximum: 65507 minimum: 0 type: number use_tcp: default: false description: Use TCP instead of UDP. type: boolean workspace_identifier_default: default: workspace_id description: >- The default workspace identifier for metrics. This will take effect when a metric's workspace identifier is omitted. Allowed values are `workspace_id`, `workspace_name`. enum: - workspace_id - workspace_name type: string type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing protocols. format: set items: description: A string representing a protocol, such as HTTP or HTTPS. enum: - grpc - grpcs - http - https - tcp - tls - tls_passthrough - udp - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object StatsdPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/StatsdPluginConfig' properties: name: const: statsd x-speakeasy-entity: PluginStatsd StatsdPluginConfig: properties: config: properties: allow_status_codes: description: >- List of status code ranges that are allowed to be logged in metrics. items: type: string type: array consumer_identifier_default: default: custom_id enum: - consumer_id - custom_id - username type: string flush_timeout: type: number host: default: localhost description: The IP address or hostname of StatsD server to send data to. type: string hostname_in_prefix: default: false type: boolean metrics: description: List of metrics to be logged. items: properties: consumer_identifier: description: Authenticated user detail. enum: - consumer_id - custom_id - username type: string name: description: StatsD metric’s name. enum: - cache_datastore_hits_total - cache_datastore_misses_total - kong_latency - latency - request_count - request_per_user - request_size - response_size - shdict_usage - status_count - status_count_per_user - status_count_per_user_per_route - status_count_per_workspace - unique_users - upstream_latency type: string sample_rate: description: Sampling rate type: number service_identifier: description: Service detail. enum: - service_host - service_id - service_name - service_name_or_host type: string stat_type: description: Determines what sort of event a metric represents. enum: - counter - gauge - histogram - meter - set - timer type: string workspace_identifier: description: Workspace detail. enum: - workspace_id - workspace_name type: string required: - name - stat_type type: object type: array port: default: 8125 description: The port of StatsD server to send data to. maximum: 65535 minimum: 0 type: integer prefix: default: kong description: String to prefix to each metric's name. type: string queue: properties: concurrency_limit: default: 1 description: >- The number of of queue delivery timers. -1 indicates unlimited. enum: - -1 - 1 type: integer initial_retry_delay: default: 0.01 description: >- Time in seconds before the initial retry is made for a failing batch. maximum: 1000000 minimum: 0.001 type: number max_batch_size: default: 1 description: Maximum number of entries that can be processed at a time. maximum: 1000000 minimum: 1 type: integer max_bytes: description: >- Maximum number of bytes that can be waiting on a queue, requires string content. type: integer max_coalescing_delay: default: 1 description: >- Maximum number of (fractional) seconds to elapse after the first entry was queued before the queue starts calling the handler. maximum: 3600 minimum: 0 type: number max_entries: default: 10000 description: Maximum number of entries that can be waiting on the queue. maximum: 1000000 minimum: 1 type: integer max_retry_delay: default: 60 description: >- Maximum time in seconds between retries, caps exponential backoff. maximum: 1000000 minimum: 0.001 type: number max_retry_time: default: 60 description: >- Time in seconds before the queue gives up calling a failed handler for a batch. type: number type: object queue_size: type: integer retry_count: type: integer service_identifier_default: default: service_name_or_host enum: - service_host - service_id - service_name - service_name_or_host type: string tag_style: enum: - dogstatsd - influxdb - librato - signalfx type: string udp_packet_size: default: 0 maximum: 65507 minimum: 0 type: number use_tcp: default: false type: boolean workspace_identifier_default: default: workspace_id enum: - workspace_id - workspace_name type: string type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing protocols. format: set items: description: A string representing a protocol, such as HTTP or HTTPS. enum: - grpc - grpcs - http - https - tcp - tls - tls_passthrough - udp - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object SyslogPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/SyslogPluginConfig' properties: name: const: syslog x-speakeasy-entity: PluginSyslog SyslogPluginConfig: properties: config: properties: client_errors_severity: default: info enum: - alert - crit - debug - emerg - err - info - notice - warning type: string custom_fields_by_lua: additionalProperties: type: string description: Lua code as a key-value map type: object facility: default: user description: >- The facility is used by the operating system to decide how to handle each log message. enum: - auth - authpriv - cron - daemon - ftp - kern - local0 - local1 - local2 - local3 - local4 - local5 - local6 - local7 - lpr - mail - news - syslog - user - uucp type: string log_level: default: info enum: - alert - crit - debug - emerg - err - info - notice - warning type: string server_errors_severity: default: info enum: - alert - crit - debug - emerg - err - info - notice - warning type: string successful_severity: default: info enum: - alert - crit - debug - emerg - err - info - notice - warning type: string type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing protocols. format: set items: description: A string representing a protocol, such as HTTP or HTTPS. enum: - grpc - grpcs - http - https - tcp - tls - tls_passthrough - udp - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object Target: additionalProperties: false description: >- A target is an ip address/hostname with a port that identifies an instance of a backend service. Every upstream can have many targets, and the targets can be dynamically added, modified, or deleted. Changes take effect on the fly. To disable a target, post a new one with `weight=0`; alternatively, use the `DELETE` convenience method to accomplish the same. The current target object definition is the one with the latest `created_at`. example: id: 089292a7-ba3d-4d88-acf0-97b4b2e2621a target: 203.0.113.42 upstream: id: 5f1d7e76-2fed-4806-a6af-869984f025cb weight: 100 properties: created_at: description: Unix epoch when the resource was created. nullable: true type: number failover: default: false description: Whether to use this target only as backup or not. nullable: true type: boolean id: description: A string representing a UUID (universally unique identifier). nullable: true type: string tags: description: >- An optional set of strings associated with the Target for grouping and filtering. items: description: A string representing a tag. type: string nullable: true type: array target: description: >- The target address (ip or hostname) and port. If the hostname resolves to an SRV record, the `port` value will be overridden by the value from the DNS record. nullable: true type: string updated_at: description: Unix epoch when the resource was last updated. nullable: true type: number upstream: description: >- The unique identifier or the name of the upstream for which to update the target. nullable: true properties: id: type: string type: object x-foreign: true weight: default: 100 description: >- The weight this target gets within the upstream loadbalancer (`0`-`65535`). If the hostname resolves to an SRV record, the `weight` value will be overridden by the value from the DNS record. maximum: 65535 minimum: 0 nullable: true type: integer required: - target type: object x-speakeasy-entity: Target TargetWithoutParents: additionalProperties: false description: >- A target is an ip address/hostname with a port that identifies an instance of a backend service. Every upstream can have many targets, and the targets can be dynamically added, modified, or deleted. Changes take effect on the fly. To disable a target, post a new one with `weight=0`; alternatively, use the `DELETE` convenience method to accomplish the same. The current target object definition is the one with the latest `created_at`. example: id: 089292a7-ba3d-4d88-acf0-97b4b2e2621a target: 203.0.113.42 weight: 100 properties: created_at: description: Unix epoch when the resource was created. nullable: true type: number failover: default: false description: Whether to use this target only as backup or not. nullable: true type: boolean id: description: A string representing a UUID (universally unique identifier). nullable: true type: string tags: description: >- An optional set of strings associated with the Target for grouping and filtering. items: description: A string representing a tag. type: string nullable: true type: array target: description: >- The target address (ip or hostname) and port. If the hostname resolves to an SRV record, the `port` value will be overridden by the value from the DNS record. nullable: true type: string updated_at: description: Unix epoch when the resource was last updated. nullable: true type: number upstream: description: >- The unique identifier or the name of the upstream for which to update the target. nullable: true properties: id: type: string type: object x-foreign: true weight: default: 100 description: >- The weight this target gets within the upstream loadbalancer (`0`-`65535`). If the hostname resolves to an SRV record, the `weight` value will be overridden by the value from the DNS record. maximum: 65535 minimum: 0 nullable: true type: integer required: - target type: object x-speakeasy-entity: Target TcpLogPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/TcpLogPluginConfig' properties: name: const: tcp-log x-speakeasy-entity: PluginTcpLog TcpLogPluginConfig: properties: config: properties: custom_fields_by_lua: additionalProperties: type: string description: >- A list of key-value pairs, where the key is the name of a log field and the value is a chunk of Lua code, whose return value sets or replaces the log field value. type: object host: description: The IP address or host name to send data to. type: string keepalive: default: 60000 description: >- An optional value in milliseconds that defines how long an idle connection lives before being closed. type: number port: description: The port to send data to on the upstream server. maximum: 65535 minimum: 0 type: integer timeout: default: 10000 description: >- An optional timeout in milliseconds when sending data to the upstream server. type: number tls: default: false description: >- Indicates whether to perform a TLS handshake against the remote server. type: boolean tls_sni: description: >- An optional string that defines the SNI (Server Name Indication) hostname to send in the TLS handshake. type: string required: - host - port type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing protocols. format: set items: description: A string representing a protocol, such as HTTP or HTTPS. enum: - grpc - grpcs - http - https - tcp - tls - tls_passthrough - udp - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config TlsHandshakeModifierPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/TlsHandshakeModifierPluginConfig' properties: name: const: tls-handshake-modifier x-speakeasy-entity: PluginTlsHandshakeModifier TlsHandshakeModifierPluginConfig: properties: config: properties: tls_client_certificate: default: REQUEST description: TLS Client Certificate enum: - REQUEST type: string type: object protocols: default: - grpcs - https description: >- A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls. format: set items: enum: - grpcs - https - tls type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object TlsMetadataHeadersPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/TlsMetadataHeadersPluginConfig' properties: name: const: tls-metadata-headers x-speakeasy-entity: PluginTlsMetadataHeaders TlsMetadataHeadersPluginConfig: properties: config: properties: client_cert_fingerprint_header_name: default: X-Client-Cert-Fingerprint description: >- Define the HTTP header name used for the SHA1 fingerprint of the client certificate. type: string client_cert_header_name: default: X-Client-Cert description: >- Define the HTTP header name used for the PEM format URL encoded client certificate. type: string client_cert_issuer_dn_header_name: default: X-Client-Cert-Issuer-DN description: >- Define the HTTP header name used for the issuer DN of the client certificate. type: string client_cert_subject_dn_header_name: default: X-Client-Cert-Subject-DN description: >- Define the HTTP header name used for the subject DN of the client certificate. type: string client_serial_header_name: default: X-Client-Cert-Serial description: >- Define the HTTP header name used for the serial number of the client certificate. type: string inject_client_cert_details: default: false description: >- Enables TLS client certificate metadata values to be injected into HTTP headers. type: boolean type: object protocols: default: - grpcs - https description: >- A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls. format: set items: enum: - grpcs - https - tls type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object UdpLogPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/UdpLogPluginConfig' properties: name: const: udp-log x-speakeasy-entity: PluginUdpLog UdpLogPluginConfig: properties: config: properties: custom_fields_by_lua: additionalProperties: type: string description: Lua code as a key-value map type: object host: description: A string representing a host name, such as example.com. type: string port: description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer timeout: default: 10000 description: >- An optional timeout in milliseconds when sending data to the upstream server. type: number required: - host - port type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing protocols. format: set items: description: A string representing a protocol, such as HTTP or HTTPS. enum: - grpc - grpcs - http - https - tcp - tls - tls_passthrough - udp - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config Upstream: additionalProperties: false description: >- The upstream object represents a virtual hostname and can be used to loadbalance incoming requests over multiple services (targets). So for example an upstream named `service.v1.xyz` for a Service object whose `host` is `service.v1.xyz`. Requests for this Service would be proxied to the targets defined within the upstream. An upstream also includes a [health checker][healthchecks], which is able to enable and disable targets based on their ability or inability to serve requests. The configuration for the health checker is stored in the upstream object, and applies to all of its targets. example: algorithm: round-robin hash_fallback: none hash_on: none hash_on_cookie_path: / healthchecks: active: concurrency: 10 healthy: http_statuses: - 200 - 302 interval: 0 successes: 0 http_path: / https_verify_certificate: true timeout: 1 type: http unhealthy: http_failures: 0 http_statuses: - 429 - 404 - 500 - 501 - 502 - 503 - 504 - 505 interval: 0 tcp_failures: 0 timeouts: 0 passive: healthy: http_statuses: - 200 - 201 - 202 - 203 - 204 - 205 - 206 - 207 - 208 - 226 - 300 - 301 - 302 - 303 - 304 - 305 - 306 - 307 - 308 successes: 0 type: http unhealthy: http_failures: 0 http_statuses: - 429 - 500 - 503 tcp_failures: 0 timeouts: 0 threshold: 0 id: 6eed5e9c-5398-4026-9a4c-d48f18a2431e name: api.example.internal slots: 10000 properties: algorithm: default: round-robin description: Which load balancing algorithm to use. enum: - consistent-hashing - latency - least-connections - round-robin - sticky-sessions nullable: true type: string client_certificate: description: >- If set, the certificate to be used as client certificate while TLS handshaking to the upstream server. nullable: true properties: id: type: string type: object x-foreign: true created_at: description: Unix epoch when the resource was created. nullable: true type: integer hash_fallback: default: none description: >- What to use as hashing input if the primary `hash_on` does not return a hash (eg. header is missing, or no Consumer identified). Not available if `hash_on` is set to `cookie`. enum: - consumer - cookie - header - ip - none - path - query_arg - uri_capture nullable: true type: string hash_fallback_header: description: >- The header name to take the value from as hash input. Only required when `hash_fallback` is set to `header`. nullable: true type: string hash_fallback_query_arg: description: >- The name of the query string argument to take the value from as hash input. Only required when `hash_fallback` is set to `query_arg`. minLength: 1 nullable: true type: string hash_fallback_uri_capture: description: >- The name of the route URI capture to take the value from as hash input. Only required when `hash_fallback` is set to `uri_capture`. minLength: 1 nullable: true type: string hash_on: default: none description: >- What to use as hashing input. Using `none` results in a weighted-round-robin scheme with no hashing. enum: - consumer - cookie - header - ip - none - path - query_arg - uri_capture nullable: true type: string hash_on_cookie: description: >- The cookie name to take the value from as hash input. Only required when `hash_on` or `hash_fallback` is set to `cookie`. If the specified cookie is not in the request, Kong will generate a value and set the cookie in the response. nullable: true type: string hash_on_cookie_path: default: / description: >- The cookie path to set in the response headers. Only required when `hash_on` or `hash_fallback` is set to `cookie`. nullable: true type: string hash_on_header: description: >- The header name to take the value from as hash input. Only required when `hash_on` is set to `header`. nullable: true type: string hash_on_query_arg: description: >- The name of the query string argument to take the value from as hash input. Only required when `hash_on` is set to `query_arg`. minLength: 1 nullable: true type: string hash_on_uri_capture: description: >- The name of the route URI capture to take the value from as hash input. Only required when `hash_on` is set to `uri_capture`. minLength: 1 nullable: true type: string healthchecks: default: active: concurrency: 10 healthy: http_statuses: - 200 - 302 interval: 0 successes: 0 http_path: / https_verify_certificate: true timeout: 1 type: http unhealthy: http_failures: 0 http_statuses: - 429 - 404 - 500 - 501 - 502 - 503 - 504 - 505 interval: 0 tcp_failures: 0 timeouts: 0 passive: healthy: http_statuses: - 200 - 201 - 202 - 203 - 204 - 205 - 206 - 207 - 208 - 226 - 300 - 301 - 302 - 303 - 304 - 305 - 306 - 307 - 308 successes: 0 type: http unhealthy: http_failures: 0 http_statuses: - 429 - 500 - 503 tcp_failures: 0 timeouts: 0 description: The array of healthchecks. nullable: true properties: active: default: concurrency: 10 healthy: http_statuses: - 200 - 302 interval: 0 successes: 0 http_path: / https_verify_certificate: true timeout: 1 type: http unhealthy: http_failures: 0 http_statuses: - 429 - 404 - 500 - 501 - 502 - 503 - 504 - 505 interval: 0 tcp_failures: 0 timeouts: 0 properties: concurrency: default: 10 maximum: 2147483648 minimum: 1 type: integer headers: additionalProperties: items: type: string type: array description: A map of header names to arrays of header values. type: object healthy: default: http_statuses: - 200 - 302 interval: 0 successes: 0 properties: http_statuses: default: - 200 - 302 items: maximum: 999 minimum: 100 type: integer type: array interval: default: 0 maximum: 65535 minimum: 0 type: number successes: default: 0 maximum: 255 minimum: 0 type: integer type: object http_path: default: / description: >- A string representing a URL path, such as /path/to/resource. Must start with a forward slash (/) and must not contain empty segments (i.e., two consecutive forward slashes). type: string https_sni: description: >- A string representing an SNI (server name indication) value for TLS. type: string https_verify_certificate: default: true type: boolean timeout: default: 1 maximum: 65535 minimum: 0 type: number type: default: http enum: - grpc - grpcs - http - https - tcp type: string unhealthy: default: http_failures: 0 http_statuses: - 429 - 404 - 500 - 501 - 502 - 503 - 504 - 505 interval: 0 tcp_failures: 0 timeouts: 0 properties: http_failures: default: 0 maximum: 255 minimum: 0 type: integer http_statuses: default: - 429 - 404 - 500 - 501 - 502 - 503 - 504 - 505 items: maximum: 999 minimum: 100 type: integer type: array interval: default: 0 maximum: 65535 minimum: 0 type: number tcp_failures: default: 0 maximum: 255 minimum: 0 type: integer timeouts: default: 0 maximum: 255 minimum: 0 type: integer type: object type: object passive: default: healthy: http_statuses: - 200 - 201 - 202 - 203 - 204 - 205 - 206 - 207 - 208 - 226 - 300 - 301 - 302 - 303 - 304 - 305 - 306 - 307 - 308 successes: 0 type: http unhealthy: http_failures: 0 http_statuses: - 429 - 500 - 503 tcp_failures: 0 timeouts: 0 properties: healthy: default: http_statuses: - 200 - 201 - 202 - 203 - 204 - 205 - 206 - 207 - 208 - 226 - 300 - 301 - 302 - 303 - 304 - 305 - 306 - 307 - 308 successes: 0 properties: http_statuses: default: - 200 - 201 - 202 - 203 - 204 - 205 - 206 - 207 - 208 - 226 - 300 - 301 - 302 - 303 - 304 - 305 - 306 - 307 - 308 items: maximum: 999 minimum: 100 type: integer type: array successes: default: 0 maximum: 255 minimum: 0 type: integer type: object type: default: http enum: - grpc - grpcs - http - https - tcp type: string unhealthy: default: http_failures: 0 http_statuses: - 429 - 500 - 503 tcp_failures: 0 timeouts: 0 properties: http_failures: default: 0 maximum: 255 minimum: 0 type: integer http_statuses: default: - 429 - 500 - 503 items: maximum: 999 minimum: 100 type: integer type: array tcp_failures: default: 0 maximum: 255 minimum: 0 type: integer timeouts: default: 0 maximum: 255 minimum: 0 type: integer type: object type: object threshold: default: 0 maximum: 100 minimum: 0 type: number type: object host_header: description: >- The hostname to be used as `Host` header when proxying requests through Kong. nullable: true type: string id: description: A string representing a UUID (universally unique identifier). nullable: true type: string name: description: This is a hostname, which must be equal to the `host` of a Service. type: string slots: default: 10000 description: >- The number of slots in the load balancer algorithm. If `algorithm` is set to `round-robin`, this setting determines the maximum number of slots. If `algorithm` is set to `consistent-hashing`, this setting determines the actual number of slots in the algorithm. Accepts an integer in the range `10`-`65536`. maximum: 65536 minimum: 10 nullable: true type: integer sticky_sessions_cookie: description: The cookie name to keep sticky sessions. nullable: true type: string sticky_sessions_cookie_path: default: / description: >- A string representing a URL path, such as /path/to/resource. Must start with a forward slash (/) and must not contain empty segments (i.e., two consecutive forward slashes). nullable: true type: string tags: description: >- An optional set of strings associated with the Upstream for grouping and filtering. items: description: A string representing a tag. type: string nullable: true type: array updated_at: description: Unix epoch when the resource was last updated. nullable: true type: integer use_srv_name: default: false description: >- If set, the balancer will use SRV hostname(if DNS Answer has SRV record) as the proxy upstream `Host`. nullable: true type: boolean required: - name type: object x-speakeasy-entity: Upstream UpstreamOauthPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/UpstreamOauthPluginConfig' properties: name: const: upstream-oauth x-speakeasy-entity: PluginUpstreamOauth UpstreamOauthPluginConfig: properties: config: properties: behavior: properties: idp_error_response_body_template: default: '{ "code": "{{status}}", "message": "{{message}}" }' description: >- The template to use to create the body of the response to return to the consumer if Kong fails to obtain a token from the IdP. type: string idp_error_response_content_type: default: application/json; charset=utf-8 description: >- The Content-Type of the response to return to the consumer if Kong fails to obtain a token from the IdP. type: string idp_error_response_message: default: Failed to authenticate request to upstream description: >- The message to embed in the body of the response to return to the consumer if Kong fails to obtain a token from the IdP. type: string idp_error_response_status_code: default: 502 description: >- The response code to return to the consumer if Kong fails to obtain a token from the IdP. maximum: 599 minimum: 500 type: integer purge_token_on_upstream_status_codes: default: - 401 description: >- An array of status codes which will force an access token to be purged when returned by the upstream. An empty array will disable this functionality. items: maximum: 599 minimum: 100 type: integer type: array upstream_access_token_header_name: default: Authorization description: >- The name of the header used to send the access token (obtained from the IdP) to the upstream service. type: string type: object cache: properties: default_ttl: default: 3600 description: >- The lifetime of a token without an explicit `expires_in` value. type: number eagerly_expire: default: 5 description: >- The number of seconds to eagerly expire a cached token. By default, a cached token expires 5 seconds before its lifetime as defined in `expires_in`. type: integer memory: properties: dictionary_name: default: kong_db_cache description: >- The shared dictionary used by the plugin to cache tokens if `config.cache.strategy` is set to `memory`. type: string type: object redis: properties: cluster_max_redirections: default: 5 description: Maximum retry attempts for redirection. type: integer cluster_nodes: description: >- Cluster addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Cluster. The minimum length of the array is 1 element. items: properties: ip: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array connect_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer connection_is_proxied: default: false description: >- If the connection to Redis is proxied (e.g. Envoy), set it `true`. Set the `host` and `port` to point to the proxy address. type: boolean database: default: 0 description: >- Database to use for the Redis connection when using the `redis` strategy type: integer host: default: 127.0.0.1 description: A string representing a host name, such as example.com. type: string keepalive_backlog: description: >- Limits the total number of opened connections for a pool. If the connection pool is full, connection queues above the limit go into the backlog queue. If the backlog queue is full, subsequent connect operations fail and return `nil`. Queued operations (subject to set timeouts) resume once the number of connections in the pool is less than `keepalive_pool_size`. If latency is high or throughput is low, try increasing this value. Empirically, this value is larger than `keepalive_pool_size`. maximum: 2147483646 minimum: 0 type: integer keepalive_pool_size: default: 256 description: >- The size limit for every cosocket connection pool associated with every remote server, per worker process. If neither `keepalive_pool_size` nor `keepalive_backlog` is specified, no pool is created. If `keepalive_pool_size` isn't specified but `keepalive_backlog` is specified, then the pool uses the default value. Try to increase (e.g. 512) this value if latency is high or throughput is low. maximum: 2147483646 minimum: 1 type: integer password: description: >- Password to use for Redis connections. If undefined, no AUTH commands are sent to Redis. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer read_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer send_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer sentinel_master: description: >- Sentinel master to use for Redis connections. Defining this value implies using Redis Sentinel. type: string sentinel_nodes: description: >- Sentinel node addresses to use for Redis connections when the `redis` strategy is defined. Defining this field implies using a Redis Sentinel. The minimum length of the array is 1 element. items: properties: host: default: 127.0.0.1 description: >- A string representing a host name, such as example.com. type: string port: default: 6379 description: >- An integer representing a port number between 0 and 65535, inclusive. maximum: 65535 minimum: 0 type: integer type: object minLength: 1 type: array sentinel_password: description: >- Sentinel password to authenticate with a Redis Sentinel instance. If undefined, no AUTH commands are sent to Redis Sentinels. type: string sentinel_role: description: >- Sentinel role to use for Redis connections when the `redis` strategy is defined. Defining this value implies using Redis Sentinel. enum: - any - master - slave type: string sentinel_username: description: >- Sentinel username to authenticate with a Redis Sentinel instance. If undefined, ACL authentication won't be performed. This requires Redis v6.2.0+. type: string server_name: description: >- A string representing an SNI (server name indication) value for TLS. type: string ssl: default: false description: If set to true, uses SSL to connect to Redis. type: boolean ssl_verify: default: false description: >- If set to true, verifies the validity of the server SSL certificate. If setting this parameter, also configure `lua_ssl_trusted_certificate` in `kong.conf` to specify the CA (or server) certificate used by your Redis server. You may also need to configure `lua_ssl_verify_depth` accordingly. type: boolean username: description: >- Username to use for Redis connections. If undefined, ACL authentication won't be performed. This requires Redis v6.0.0+. To be compatible with Redis v5.x.y, you can set it to `default`. type: string type: object strategy: default: memory description: >- The method Kong should use to cache tokens issued by the IdP. enum: - memory - redis type: string type: object client: properties: auth_method: default: client_secret_post description: >- The authentication method used in client requests to the IdP. Supported values are: `client_secret_basic` to send `client_id` and `client_secret` in the `Authorization: Basic` header, `client_secret_post` to send `client_id` and `client_secret` as part of the request body, or `client_secret_jwt` to send a JWT signed with the `client_secret` using the client assertion as part of the body. enum: - client_secret_basic - client_secret_jwt - client_secret_post - none type: string client_secret_jwt_alg: default: HS512 description: >- The algorithm to use with JWT when using `client_secret_jwt` authentication. enum: - HS256 - HS512 type: string http_proxy: description: The proxy to use when making HTTP requests to the IdP. type: string http_proxy_authorization: description: >- The `Proxy-Authorization` header value to be used with `http_proxy`. type: string http_version: default: 1.1 description: >- The HTTP version used for requests made by this plugin. Supported values: `1.1` for HTTP 1.1 and `1.0` for HTTP 1.0. type: number https_proxy: description: The proxy to use when making HTTPS requests to the IdP. type: string https_proxy_authorization: description: >- The `Proxy-Authorization` header value to be used with `https_proxy`. type: string keep_alive: default: true description: Whether to use keepalive connections to the IdP. type: boolean no_proxy: description: A comma-separated list of hosts that should not be proxied. type: string ssl_verify: default: false description: >- Whether to verify the certificate presented by the IdP when using HTTPS. type: boolean timeout: default: 10000 description: Network I/O timeout for requests to the IdP in milliseconds. maximum: 2147483646 minimum: 0 type: integer type: object oauth: properties: audience: default: [] description: >- List of audiences passed to the IdP when obtaining a new token. items: type: string type: array client_id: description: The client ID for the application registration in the IdP. type: string client_secret: description: >- The client secret for the application registration in the IdP. type: string grant_type: default: client_credentials description: The OAuth grant type to be used. enum: - client_credentials - password type: string password: description: >- The password to use if `config.oauth.grant_type` is set to `password`. type: string scopes: default: - openid description: >- List of scopes to request from the IdP when obtaining a new token. items: type: string type: array token_endpoint: description: The token endpoint URI. type: string token_headers: additionalProperties: true description: Extra headers to be passed in the token endpoint request. type: object token_post_args: additionalProperties: true description: >- Extra post arguments to be passed in the token endpoint request. type: object username: description: >- The username to use if `config.oauth.grant_type` is set to `password`. type: string required: - token_endpoint type: object required: - oauth type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object consumer_group: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified consumer group has been authenticated. (Note that some plugins can not be restricted to consumers groups this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer Groups properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object required: - config UpstreamTimeoutPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/UpstreamTimeoutPluginConfig' properties: name: const: upstream-timeout x-speakeasy-entity: PluginUpstreamTimeout UpstreamTimeoutPluginConfig: properties: config: properties: connect_timeout: description: >- The timeout in milliseconds for establishing a connection to the upstream server. Must be an integer between 1 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer read_timeout: description: >- The timeout in milliseconds between two successive read operations for transmitting a request to the upstream server. Must be an integer between 1 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer send_timeout: description: >- The timeout in milliseconds between two successive write operations for transmitting a request to the upstream server. Must be an integer between 1 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object Vault: additionalProperties: false description: >- Vault entities are used to configure different Vault connectors. Examples of Vaults are Environment Variables, Hashicorp Vault and AWS Secrets Manager. Configuring a Vault allows referencing the secrets with other entities. For example a certificate entity can store a reference to a certificate and key, stored in a vault, instead of storing the certificate and key within the entity. This allows a proper separation of secrets and configuration and prevents secret sprawl. example: config: prefix: ENV_PREFIX description: environment variable based vault id: 2747d1e5-8246-4f65-a939-b392f1ee17f8 name: env prefix: env tags: - foo - bar properties: config: additionalProperties: true description: >- The configuration properties for the Vault which can be found on the vaults' documentation page. nullable: true type: object created_at: description: Unix epoch when the resource was created. nullable: true type: integer description: description: The description of the Vault entity. nullable: true type: string id: description: A string representing a UUID (universally unique identifier). nullable: true type: string name: description: >- The name of the Vault that's going to be added. Currently, the Vault implementation must be installed in every Kong instance. type: string prefix: description: >- The unique prefix (or identifier) for this Vault configuration. The prefix is used to load the right Vault configuration and implementation when referencing secrets with the other entities. type: string tags: description: >- An optional set of strings associated with the Vault for grouping and filtering. items: description: A string representing a tag. type: string nullable: true type: array updated_at: description: Unix epoch when the resource was last updated. nullable: true type: integer required: - name - prefix type: object x-speakeasy-entity: Vault VaultAuthPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/VaultAuthPluginConfig' properties: name: const: vault-auth x-speakeasy-entity: PluginVaultAuth VaultAuthPluginConfig: properties: config: properties: access_token_name: default: access_token description: >- Describes an array of comma-separated parameter names where the plugin looks for an access token. The client must send the access token in one of those key names, and the plugin will try to read the credential from a header or the querystring parameter with the same name. The key names can only contain [a-z], [A-Z], [0-9], [_], and [-]. type: string anonymous: description: >- An optional string (consumer UUID or username) value to use as an “anonymous” consumer if authentication fails. If empty (default null), the request fails with an authentication failure `4xx`. Note that this value must refer to the consumer `id` or `username` attribute, and **not** its `custom_id`. type: string hide_credentials: default: false description: >- An optional boolean value telling the plugin to show or hide the credential from the upstream service. If `true`, the plugin will strip the credential from the request (i.e. the header or querystring containing the key) before proxying it. type: boolean run_on_preflight: default: true description: >- A boolean value that indicates whether the plugin should run (and try to authenticate) on `OPTIONS` preflight requests. If set to `false`, then `OPTIONS` requests will always be allowed. type: boolean secret_token_name: default: secret_token description: >- Describes an array of comma-separated parameter names where the plugin looks for a secret token. The client must send the secret in one of those key names, and the plugin will try to read the credential from a header or the querystring parameter with the same name. The key names can only contain [a-z], [A-Z], [0-9], [_], and [-]. type: string tokens_in_body: default: false description: >- If enabled, the plugin will read the request body (if said request has one and its MIME type is supported) and try to find the key in it. Supported MIME types are `application/www-form-urlencoded`, `application/json`, and `multipart/form-data`. type: boolean vault: description: >- A reference to an existing `vault` object within the database. `vault` entities define the connection and authentication parameters used to connect to a Vault HTTP(S) API. properties: id: type: string type: object x-foreign: true type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object WebsocketSizeLimitPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/WebsocketSizeLimitPluginConfig' properties: name: const: websocket-size-limit x-speakeasy-entity: PluginWebsocketSizeLimit WebsocketSizeLimitPluginConfig: properties: config: properties: client_max_payload: maximum: 33554432 minimum: 1 type: integer upstream_max_payload: maximum: 33554432 minimum: 1 type: integer type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - ws - wss description: >- A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls. format: set items: enum: - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object WebsocketValidatorPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/WebsocketValidatorPluginConfig' properties: name: const: websocket-validator x-speakeasy-entity: PluginWebsocketValidator WebsocketValidatorPluginConfig: properties: config: properties: client: properties: binary: properties: schema: description: >- Schema used to validate upstream-originated binary frames. The semantics of this field depend on the validation type set by `config.upstream.binary.type`. type: string type: description: >- The corresponding validation library for `config.upstream.binary.schema`. Currently, only `draft4` is supported. enum: - draft4 type: string required: - schema - type type: object text: properties: schema: description: >- Schema used to validate upstream-originated binary frames. The semantics of this field depend on the validation type set by `config.upstream.binary.type`. type: string type: description: >- The corresponding validation library for `config.upstream.binary.schema`. Currently, only `draft4` is supported. enum: - draft4 type: string required: - schema - type type: object type: object upstream: properties: binary: properties: schema: description: >- Schema used to validate upstream-originated binary frames. The semantics of this field depend on the validation type set by `config.upstream.binary.type`. type: string type: description: >- The corresponding validation library for `config.upstream.binary.schema`. Currently, only `draft4` is supported. enum: - draft4 type: string required: - schema - type type: object text: properties: schema: description: >- Schema used to validate upstream-originated binary frames. The semantics of this field depend on the validation type set by `config.upstream.binary.type`. type: string type: description: >- The corresponding validation library for `config.upstream.binary.schema`. Currently, only `draft4` is supported. enum: - draft4 type: string required: - schema - type type: object type: object type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - ws - wss description: >- A list of the request protocols that will trigger this plugin. The default value, as well as the possible values allowed on this field, may change depending on the plugin type. For example, plugins that only work in stream mode will only support tcp and tls. format: set items: enum: - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object Workspace: additionalProperties: false example: comment: Example workspace comment config: meta: {} portal: false portal_access_request_email: true portal_application_request_email: true portal_application_status_email: true portal_approved_email: true portal_auth: basic portal_auth_conf: some-auth-config portal_auto_approve: true portal_cors_origins: - https://example.com - https://another-origin.com portal_developer_meta_fields: >- [{"label":"Full Name","title":"full_name","validator":{"required":true,"type":"string"}}] portal_emails_from: admin@example.com portal_emails_reply_to: support@example.com portal_invite_email: true portal_is_legacy: false portal_reset_email: true portal_reset_success_email: true portal_session_conf: some-session-config portal_smtp_admin_emails: - admin@example.com - dev@example.com portal_token_exp: 3600 created_at: 1706598432 id: b58c7d9d-e54f-444c-b24d-cdfc4159f61e meta: color: '#ffcc00' thumbnail: https://example.com/image.png name: example-workspace properties: comment: description: A description or additional information about the workspace. nullable: true type: string config: nullable: true properties: meta: additionalProperties: true type: object portal: default: false type: boolean portal_access_request_email: type: boolean portal_application_request_email: type: boolean portal_application_status_email: type: boolean portal_approved_email: type: boolean portal_auth: type: string portal_auth_conf: type: string portal_auto_approve: type: boolean portal_cors_origins: items: type: string type: array portal_developer_meta_fields: default: >- [{"label":"Full Name","title":"full_name","validator":{"required":true,"type":"string"}}] type: string portal_emails_from: type: string portal_emails_reply_to: type: string portal_invite_email: type: boolean portal_is_legacy: type: boolean portal_reset_email: type: boolean portal_reset_success_email: type: boolean portal_session_conf: type: string portal_smtp_admin_emails: items: type: string type: array portal_token_exp: type: integer type: object created_at: description: Unix epoch when the resource was created. nullable: true type: integer id: description: A string representing a UUID (universally unique identifier). nullable: true type: string meta: nullable: true properties: color: type: string thumbnail: type: string type: object name: description: A unique string representing a UTF-8 encoded name. minLength: 1 type: string updated_at: description: Unix epoch when the resource was last updated. nullable: true type: integer required: - name type: object x-speakeasy-entity: Workspace XmlThreatProtectionPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/XmlThreatProtectionPluginConfig' properties: name: const: xml-threat-protection x-speakeasy-entity: PluginXmlThreatProtection XmlThreatProtectionPluginConfig: properties: config: properties: allow_dtd: default: false description: >- Indicates whether an XML Document Type Definition (DTD) section is allowed. type: boolean allowed_content_types: default: [] description: >- A list of Content-Type values with payloads that are allowed, but aren't validated. items: type: string type: array attribute: default: 1048576 description: Maximum size of the attribute value. type: integer bla_max_amplification: default: 100 description: >- Sets the maximum allowed amplification. This protects against the Billion Laughs Attack. minimum: 1 type: number bla_threshold: default: 8388608 description: >- Sets the threshold after which the protection starts. This protects against the Billion Laughs Attack. minimum: 1024 type: integer buffer: default: 1048576 description: Maximum size of the unparsed buffer (see below). type: integer checked_content_types: default: - application/xml description: >- A list of Content-Type values with payloads that must be validated. items: type: string type: array comment: default: 1024 description: Maximum size of comments. type: integer document: default: 10485760 description: Maximum size of the entire document. type: integer entity: default: 1024 description: Maximum size of entity values in EntityDecl. type: integer entityname: default: 1024 description: Maximum size of entity names in EntityDecl. type: integer entityproperty: default: 1024 description: >- Maximum size of systemId, publicId, or notationName in EntityDecl. type: integer localname: default: 1024 description: >- Maximum size of the localname. This applies to tags and attributes. type: integer max_attributes: default: 100 description: >- Maximum number of attributes allowed on a tag, including default ones. Note: If namespace-aware parsing is disabled, then the namespaces definitions are counted as attributes. type: integer max_children: default: 100 description: >- Maximum number of children allowed (Element, Text, Comment, ProcessingInstruction, CDATASection). Note: Adjacent text and CDATA sections are counted as one. For example, text-cdata-text-cdata is one child. type: integer max_depth: default: 50 description: >- Maximum depth of tags. Child elements such as Text or Comments are not counted as another level. type: integer max_namespaces: default: 20 description: >- Maximum number of namespaces defined on a tag. This value is required if parsing is namespace-aware. type: integer namespace_aware: default: true description: >- If not parsing namespace aware, all prefixes and namespace attributes will be counted as regular attributes and element names, and validated as such. type: boolean namespaceuri: default: 1024 description: >- Maximum size of the namespace URI. This value is required if parsing is namespace-aware. type: integer pidata: default: 1024 description: Maximum size of processing instruction data. type: integer pitarget: default: 1024 description: Maximum size of processing instruction targets. type: integer prefix: default: 1024 description: >- Maximum size of the prefix. This applies to tags and attributes. This value is required if parsing is namespace-aware. type: integer text: default: 1048576 description: >- Maximum text inside tags (counted over all adjacent text/CDATA elements combined). type: integer type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing HTTP protocols. format: set items: enum: - grpc - grpcs - http - https type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object ZipkinPlugin: allOf: - $ref: '#/components/schemas/PluginBase' - $ref: '#/components/schemas/ZipkinPluginConfig' properties: name: const: zipkin x-speakeasy-entity: PluginZipkin ZipkinPluginConfig: properties: config: properties: connect_timeout: default: 2000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer default_header_type: default: b3 description: >- Allows specifying the type of header to be added to requests with no pre-existing tracing headers and when `config.header_type` is set to `"preserve"`. When `header_type` is set to any other value, `default_header_type` is ignored. enum: - aws - b3 - b3-single - datadog - gcp - instana - jaeger - ot - w3c type: string default_service_name: description: >- Set a default service name to override `unknown-service-name` in the Zipkin spans. type: string header_type: default: preserve description: >- All HTTP requests going through the plugin are tagged with a tracing HTTP request. This property codifies what kind of tracing header the plugin expects on incoming requests enum: - aws - b3 - b3-single - datadog - gcp - ignore - instana - jaeger - ot - preserve - w3c type: string http_endpoint: description: >- A string representing a URL, such as https://example.com/path/to/resource?q=search. type: string http_response_header_for_traceid: type: string http_span_name: default: method description: Specify whether to include the HTTP path in the span name. enum: - method - method_path type: string include_credential: default: true description: >- Specify whether the credential of the currently authenticated consumer should be included in metadata sent to the Zipkin server. type: boolean local_service_name: default: kong description: The name of the service as displayed in Zipkin. type: string phase_duration_flavor: default: annotations description: >- Specify whether to include the duration of each phase as an annotation or a tag. enum: - annotations - tags type: string propagation: default: default_format: b3 properties: clear: description: >- Header names to clear after context extraction. This allows to extract the context from a certain header and then remove it from the request, useful when extraction and injection are performed on different header formats and the original header should not be sent to the upstream. If left empty, no headers are cleared. items: type: string type: array default_format: default: b3 description: >- The default header format to use when extractors did not match any format in the incoming headers and `inject` is configured with the value: `preserve`. This can happen when no tracing header was found in the request, or the incoming tracing header formats were not included in `extract`. enum: - aws - b3 - b3-single - datadog - gcp - instana - jaeger - ot - w3c type: string extract: description: >- Header formats used to extract tracing context from incoming requests. If multiple values are specified, the first one found will be used for extraction. If left empty, Kong will not extract any tracing context information from incoming requests and generate a trace with no parent and a new trace ID. items: enum: - aws - b3 - datadog - gcp - instana - jaeger - ot - w3c type: string type: array inject: description: >- Header formats used to inject tracing context. The value `preserve` will use the same header format as the incoming request. If multiple values are specified, all of them will be used during injection. If left empty, Kong will not inject any tracing context information in outgoing requests. items: enum: - aws - b3 - b3-single - datadog - gcp - instana - jaeger - ot - preserve - w3c type: string type: array type: object queue: properties: concurrency_limit: default: 1 description: >- The number of of queue delivery timers. -1 indicates unlimited. enum: - -1 - 1 type: integer initial_retry_delay: default: 0.01 description: >- Time in seconds before the initial retry is made for a failing batch. maximum: 1000000 minimum: 0.001 type: number max_batch_size: default: 1 description: Maximum number of entries that can be processed at a time. maximum: 1000000 minimum: 1 type: integer max_bytes: description: >- Maximum number of bytes that can be waiting on a queue, requires string content. type: integer max_coalescing_delay: default: 1 description: >- Maximum number of (fractional) seconds to elapse after the first entry was queued before the queue starts calling the handler. maximum: 3600 minimum: 0 type: number max_entries: default: 10000 description: Maximum number of entries that can be waiting on the queue. maximum: 1000000 minimum: 1 type: integer max_retry_delay: default: 60 description: >- Maximum time in seconds between retries, caps exponential backoff. maximum: 1000000 minimum: 0.001 type: number max_retry_time: default: 60 description: >- Time in seconds before the queue gives up calling a failed handler for a batch. type: number type: object read_timeout: default: 5000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer sample_ratio: default: 0.001 description: >- How often to sample requests that do not contain trace IDs. Set to `0` to turn sampling off, or to `1` to sample **all** requests. maximum: 1 minimum: 0 type: number send_timeout: default: 5000 description: >- An integer representing a timeout in milliseconds. Must be between 0 and 2^31-2. maximum: 2147483646 minimum: 0 type: integer static_tags: description: >- The tags specified on this property will be added to the generated request traces. items: properties: name: type: string value: type: string required: - name - value type: object type: array tags_header: default: Zipkin-Tags description: >- The Zipkin plugin will add extra headers to the tags associated with any HTTP requests that come with a header named as configured by this property. type: string traceid_byte_count: default: 16 description: The length in bytes of each request's Trace ID. enum: - 8 - 16 type: integer type: object consumer: additionalProperties: false description: >- If set, the plugin will activate only for requests where the specified has been authenticated. (Note that some plugins can not be restricted to consumers this way.). Leave unset for the plugin to activate regardless of the authenticated Consumer. properties: id: type: string type: object protocols: default: - grpc - grpcs - http - https description: A set of strings representing protocols. format: set items: description: A string representing a protocol, such as HTTP or HTTPS. enum: - grpc - grpcs - http - https - tcp - tls - tls_passthrough - udp - ws - wss type: string type: array route: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via the specified route. Leave unset for the plugin to activate regardless of the route being used. properties: id: type: string type: object service: additionalProperties: false description: >- If set, the plugin will only activate when receiving requests via one of the routes belonging to the specified Service. Leave unset for the plugin to activate regardless of the Service being matched. properties: id: type: string type: object securitySchemes: adminToken: in: header name: Kong-Admin-Token type: apiKey externalDocs: description: Documentation for Kong Gateway and its APIs url: https://developer.konghq.com 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 API version: 0.0.1 openapi: 3.1.0 paths: /{workspace}/certificates: get: description: List all Certificates operationId: list-certificate parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/Certificate' type: array next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' type: object description: A successful response listing Certificates '401': $ref: '#/components/responses/HTTP401Error' summary: List all Certificates tags: - Certificates post: description: Create a new Certificate operationId: create-certificate parameters: - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/Certificate' description: Description of the new Certificate for creation required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/Certificate' description: Successfully created Certificate '401': $ref: '#/components/responses/HTTP401Error' summary: Create a new Certificate tags: - Certificates x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Certificate#create /{workspace}/certificates/{CertificateId}: delete: description: Delete a Certificate operationId: delete-certificate parameters: - $ref: '#/components/parameters/CertificateId' - $ref: '#/components/parameters/Workspace' responses: '204': description: Successfully deleted Certificate or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Certificate tags: - Certificates x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Certificate#delete get: description: Get a Certificate using ID. operationId: get-certificate parameters: - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: $ref: '#/components/schemas/Certificate' description: Successfully fetched Certificate '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Fetch a Certificate tags: - Certificates x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Certificate#read parameters: - $ref: '#/components/parameters/CertificateId' put: description: Create or Update Certificate using ID. operationId: upsert-certificate parameters: - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/Certificate' description: Description of the Certificate required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Certificate' description: Successfully upserted Certificate '401': $ref: '#/components/responses/HTTP401Error' summary: Upsert a Certificate tags: - Certificates x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Certificate#update /{workspace}/consumer_groups: get: description: List all Consumer Groups operationId: list-consumer_group parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/ConsumerGroup' type: array next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' type: object description: A successful response listing Consumer Groups '401': $ref: '#/components/responses/HTTP401Error' summary: List all Consumer Groups tags: - Consumer Groups post: description: Create a new Consumer Group operationId: create-consumer_group parameters: - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/ConsumerGroup' description: Description of the new Consumer Group for creation required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/ConsumerGroup' description: Successfully created Consumer Group '401': $ref: '#/components/responses/HTTP401Error' summary: Create a new Consumer Group tags: - Consumer Groups x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: ConsumerGroup#create /{workspace}/consumer_groups/{ConsumerGroupId}: delete: description: Delete a Consumer Group operationId: delete-consumer_group parameters: - $ref: '#/components/parameters/ConsumerGroupId' - $ref: '#/components/parameters/Workspace' responses: '204': description: Successfully deleted Consumer Group or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Consumer Group tags: - Consumer Groups x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: ConsumerGroup#delete get: description: Get a Consumer Group using ID. operationId: get-consumer_group parameters: - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: $ref: '#/components/schemas/ConsumerGroupInsideWrapper' description: Successfully fetched Consumer Group '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Fetch a Consumer Group tags: - Consumer Groups x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: ConsumerGroup#read parameters: - $ref: '#/components/parameters/ConsumerGroupId' put: description: Create or Update Consumer Group using ID. operationId: upsert-consumer_group parameters: - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/ConsumerGroup' description: Description of the Consumer Group required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ConsumerGroup' description: Successfully upserted Consumer Group '401': $ref: '#/components/responses/HTTP401Error' summary: Upsert a Consumer Group tags: - Consumer Groups x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: ConsumerGroup#update /{workspace}/consumer_groups/{ConsumerGroupId}/consumers: parameters: - $ref: '#/components/parameters/ConsumerGroupIdManageConsumers' post: description: Add a consumer to a consumer group operationId: add-consumer-to-group parameters: - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: properties: consumer: example: cf4c7e60-11db-49dd-b300-7c7e5f0f7e6b type: string x-speakeasy-name-override: consumer_id type: object responses: '201': content: application/json: schema: properties: consumer_group: $ref: '#/components/schemas/ConsumerGroup' consumers: items: $ref: '#/components/schemas/Consumer' type: array type: object description: Consumer added to group summary: Add consumer to consumer group tags: - Consumer Groups x-speakeasy-entity-operation: ConsumerGroupMember#create /{workspace}/consumer_groups/{ConsumerGroupId}/consumers/{ConsumerIdOrUsername}: delete: description: Remove a consumer from a consumer group operationId: remove-consumer-from-group parameters: - $ref: '#/components/parameters/Workspace' responses: '204': description: Consumer removed from group summary: Remove consumer from consumer group tags: - Consumer Groups x-speakeasy-entity-operation: ConsumerGroupMember#delete parameters: - $ref: '#/components/parameters/ConsumerGroupIdManageConsumers' - in: path name: ConsumerIdOrUsername required: true schema: type: string x-speakeasy-name-override: consumer_id /{workspace}/consumers: get: description: List all Consumers operationId: list-consumer parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/Consumer' type: array next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' type: object description: A successful response listing Consumers '401': $ref: '#/components/responses/HTTP401Error' summary: List all Consumers tags: - Consumers post: description: Create a new Consumer operationId: create-consumer parameters: - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/Consumer' description: Description of the new Consumer for creation required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/Consumer' description: Successfully created Consumer '401': $ref: '#/components/responses/HTTP401Error' summary: Create a new Consumer tags: - Consumers x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Consumer#create /{workspace}/consumers/{ConsumerIdForNestedEntities}/acls: get: description: List all ACLs associated with a Consumer operationId: list-acl-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/ACL' type: array next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' type: object description: A successful response listing ACLs summary: List all ACLs associated with a Consumer tags: - ACLs post: description: Create a new ACL associated with a Consumer operationId: create-acl-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/ACLWithoutParents' description: Description of new ACL for creation required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/ACL' description: Successfully created ACL summary: Create a new ACL associated with a Consumer tags: - ACLs x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: ACL#create /{workspace}/consumers/{ConsumerIdForNestedEntities}/acls/{ACLId}: delete: description: Delete a an ACL associated with a Consumer using ID. operationId: delete-acl-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/ACLId' - $ref: '#/components/parameters/Workspace' responses: '204': description: Successfully deleted ACL or the resource didn't exist summary: Delete a an ACL associated with a Consumer tags: - ACLs x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: ACL#delete get: description: Get an ACL associated with a Consumer using ID. operationId: get-acl-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/ACLId' - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: $ref: '#/components/schemas/ACL' description: Successfully fetched ACL '404': description: Resource does not exist summary: Fetch an ACL associated with a Consumer tags: - ACLs x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: ACL#read put: description: Create or Update an ACL associated with a Consumer using ID. operationId: upsert-acl-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/ACLId' - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/ACLWithoutParents' description: Description of the ACL required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ACL' description: Successfully upserted ACL summary: Upsert an ACL associated with a Consumer tags: - ACLs /{workspace}/consumers/{ConsumerIdForNestedEntities}/basic-auth: get: description: List all Basic-auth credentials associated with a Consumer operationId: list-basic-auth-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/BasicAuth' type: array next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' type: object description: A successful response listing Basic-auth credentials summary: List all Basic-auth credentials associated with a Consumer tags: - Basic-auth credentials post: description: Create a new Basic-auth credential associated with a Consumer operationId: create-basic-auth-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/BasicAuthWithoutParents' description: Description of new Basic-auth credential for creation required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/BasicAuth' description: Successfully created Basic-auth credential summary: Create a new Basic-auth credential associated with a Consumer tags: - Basic-auth credentials x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: BasicAuth#create /{workspace}/consumers/{ConsumerIdForNestedEntities}/basic-auth/{BasicAuthId}: delete: description: Delete a a Basic-auth credential associated with a Consumer using ID. operationId: delete-basic-auth-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/BasicAuthId' - $ref: '#/components/parameters/Workspace' responses: '204': description: >- Successfully deleted Basic-auth credential or the resource didn't exist summary: Delete a a Basic-auth credential associated with a Consumer tags: - Basic-auth credentials x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: BasicAuth#delete get: description: Get a Basic-auth credential associated with a Consumer using ID. operationId: get-basic-auth-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/BasicAuthId' - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: $ref: '#/components/schemas/BasicAuth' description: Successfully fetched Basic-auth credential '404': description: Resource does not exist summary: Fetch a Basic-auth credential associated with a Consumer tags: - Basic-auth credentials x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: BasicAuth#read put: description: >- Create or Update a Basic-auth credential associated with a Consumer using ID. operationId: upsert-basic-auth-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/BasicAuthId' - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/BasicAuthWithoutParents' description: Description of the Basic-auth credential required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/BasicAuth' description: Successfully upserted Basic-auth credential summary: Upsert a Basic-auth credential associated with a Consumer tags: - Basic-auth credentials /{workspace}/consumers/{ConsumerIdForNestedEntities}/hmac-auth: get: description: List all HMAC-auth credentials associated with a Consumer operationId: list-hmac-auth-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/HMACAuth' type: array next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' type: object description: A successful response listing HMAC-auth credentials summary: List all HMAC-auth credentials associated with a Consumer tags: - HMAC-auth credentials post: description: Create a new HMAC-auth credential associated with a Consumer operationId: create-hmac-auth-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/HMACAuthWithoutParents' description: Description of new HMAC-auth credential for creation required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/HMACAuth' description: Successfully created HMAC-auth credential summary: Create a new HMAC-auth credential associated with a Consumer tags: - HMAC-auth credentials x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: HMACAuth#create /{workspace}/consumers/{ConsumerIdForNestedEntities}/hmac-auth/{HMACAuthId}: delete: description: Delete a a HMAC-auth credential associated with a Consumer using ID. operationId: delete-hmac-auth-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/HMACAuthId' - $ref: '#/components/parameters/Workspace' responses: '204': description: >- Successfully deleted HMAC-auth credential or the resource didn't exist summary: Delete a a HMAC-auth credential associated with a Consumer tags: - HMAC-auth credentials x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: HMACAuth#delete get: description: Get a HMAC-auth credential associated with a Consumer using ID. operationId: get-hmac-auth-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/HMACAuthId' - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: $ref: '#/components/schemas/HMACAuth' description: Successfully fetched HMAC-auth credential '404': description: Resource does not exist summary: Fetch a HMAC-auth credential associated with a Consumer tags: - HMAC-auth credentials x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: HMACAuth#read put: description: >- Create or Update a HMAC-auth credential associated with a Consumer using ID. operationId: upsert-hmac-auth-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/HMACAuthId' - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/HMACAuthWithoutParents' description: Description of the HMAC-auth credential required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/HMACAuth' description: Successfully upserted HMAC-auth credential summary: Upsert a HMAC-auth credential associated with a Consumer tags: - HMAC-auth credentials /{workspace}/consumers/{ConsumerIdForNestedEntities}/jwt: get: description: List all JWTs associated with a Consumer operationId: list-jwt-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/JWT' type: array next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' type: object description: A successful response listing JWTs summary: List all JWTs associated with a Consumer tags: - JWTs post: description: Create a new JWT associated with a Consumer operationId: create-jwt-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/JWTWithoutParents' description: Description of new JWT for creation responses: '201': content: application/json: schema: $ref: '#/components/schemas/JWT' description: Successfully created JWT summary: Create a new JWT associated with a Consumer tags: - JWTs x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: JWT#create /{workspace}/consumers/{ConsumerIdForNestedEntities}/jwt/{JWTId}: delete: description: Delete a a JWT associated with a Consumer using ID. operationId: delete-jwt-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/JWTId' - $ref: '#/components/parameters/Workspace' responses: '204': description: Successfully deleted JWT or the resource didn't exist summary: Delete a a JWT associated with a Consumer tags: - JWTs x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: JWT#delete get: description: Get a JWT associated with a Consumer using ID. operationId: get-jwt-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/JWTId' - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: $ref: '#/components/schemas/JWT' description: Successfully fetched JWT '404': description: Resource does not exist summary: Fetch a JWT associated with a Consumer tags: - JWTs x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: JWT#read put: description: Create or Update a JWT associated with a Consumer using ID. operationId: upsert-jwt-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/JWTId' - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/JWTWithoutParents' description: Description of the JWT responses: '200': content: application/json: schema: $ref: '#/components/schemas/JWT' description: Successfully upserted JWT summary: Upsert a JWT associated with a Consumer tags: - JWTs /{workspace}/consumers/{ConsumerIdForNestedEntities}/key-auth: get: description: List all API-keys associated with a Consumer operationId: list-key-auth-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/KeyAuth' type: array next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' type: object description: A successful response listing API-keys summary: List all API-keys associated with a Consumer tags: - API-keys post: description: Create a new API-key associated with a Consumer operationId: create-key-auth-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/KeyAuthWithoutParents' description: Description of new API-key for creation responses: '201': content: application/json: schema: $ref: '#/components/schemas/KeyAuth' description: Successfully created API-key summary: Create a new API-key associated with a Consumer tags: - API-keys x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: KeyAuth#create /{workspace}/consumers/{ConsumerIdForNestedEntities}/key-auth/{KeyAuthId}: delete: description: Delete a an API-key associated with a Consumer using ID. operationId: delete-key-auth-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/KeyAuthId' - $ref: '#/components/parameters/Workspace' responses: '204': description: Successfully deleted API-key or the resource didn't exist summary: Delete a an API-key associated with a Consumer tags: - API-keys x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: KeyAuth#delete get: description: Get an API-key associated with a Consumer using ID. operationId: get-key-auth-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/KeyAuthId' - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: $ref: '#/components/schemas/KeyAuth' description: Successfully fetched API-key '404': description: Resource does not exist summary: Fetch an API-key associated with a Consumer tags: - API-keys x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: KeyAuth#read put: description: Create or Update an API-key associated with a Consumer using ID. operationId: upsert-key-auth-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/KeyAuthId' - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/KeyAuthWithoutParents' description: Description of the API-key responses: '200': content: application/json: schema: $ref: '#/components/schemas/KeyAuth' description: Successfully upserted API-key summary: Upsert an API-key associated with a Consumer tags: - API-keys /{workspace}/consumers/{ConsumerIdForNestedEntities}/mtls-auth: get: description: List all MTLS-auth credentials associated with a Consumer operationId: list-mtls-auth-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/MTLSAuth' type: array next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' type: object description: A successful response listing MTLS-auth credentials summary: List all MTLS-auth credentials associated with a Consumer tags: - MTLS-auth credentials post: description: Create a new MTLS-auth credential associated with a Consumer operationId: create-mtls-auth-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/MTLSAuthWithoutParents' description: Description of new MTLS-auth credential for creation required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/MTLSAuth' description: Successfully created MTLS-auth credential summary: Create a new MTLS-auth credential associated with a Consumer tags: - MTLS-auth credentials x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: MTLSAuth#create /{workspace}/consumers/{ConsumerIdForNestedEntities}/mtls-auth/{MTLSAuthId}: delete: description: Delete a a MTLS-auth credential associated with a Consumer using ID. operationId: delete-mtls-auth-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/MTLSAuthId' - $ref: '#/components/parameters/Workspace' responses: '204': description: >- Successfully deleted MTLS-auth credential or the resource didn't exist summary: Delete a a MTLS-auth credential associated with a Consumer tags: - MTLS-auth credentials x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: MTLSAuth#delete get: description: Get a MTLS-auth credential associated with a Consumer using ID. operationId: get-mtls-auth-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/MTLSAuthId' - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: $ref: '#/components/schemas/MTLSAuth' description: Successfully fetched MTLS-auth credential '404': description: Resource does not exist summary: Fetch a MTLS-auth credential associated with a Consumer tags: - MTLS-auth credentials x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: MTLSAuth#read put: description: >- Create or Update a MTLS-auth credential associated with a Consumer using ID. operationId: upsert-mtls-auth-with-consumer parameters: - $ref: '#/components/parameters/ConsumerIdForNestedEntities' - $ref: '#/components/parameters/MTLSAuthId' - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/MTLSAuthWithoutParents' description: Description of the MTLS-auth credential required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/MTLSAuth' description: Successfully upserted MTLS-auth credential summary: Upsert a MTLS-auth credential associated with a Consumer tags: - MTLS-auth credentials /{workspace}/consumers/{ConsumerIdOrUsername}: delete: description: Delete a Consumer operationId: delete-consumer parameters: - $ref: '#/components/parameters/ConsumerIdOrUsername' - $ref: '#/components/parameters/Workspace' responses: '204': description: Successfully deleted Consumer or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Consumer tags: - Consumers x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Consumer#delete get: description: Get a Consumer using ID or username. operationId: get-consumer parameters: - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: $ref: '#/components/schemas/Consumer' description: Successfully fetched Consumer '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Fetch a Consumer tags: - Consumers x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Consumer#read parameters: - $ref: '#/components/parameters/ConsumerIdOrUsername' put: description: Create or Update Consumer using ID or username. operationId: upsert-consumer parameters: - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/Consumer' description: Description of the Consumer required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Consumer' description: Successfully upserted Consumer '401': $ref: '#/components/responses/HTTP401Error' summary: Upsert a Consumer tags: - Consumers x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Consumer#update /{workspace}/key-sets: get: description: List all KeySets operationId: list-key-set parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/KeySet' type: array next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' type: object description: A successful response listing KeySets '401': $ref: '#/components/responses/HTTP401Error' summary: List all KeySets tags: - KeySets post: description: Create a new KeySet operationId: create-key-set parameters: - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/KeySet' description: Description of the new KeySet for creation responses: '201': content: application/json: schema: $ref: '#/components/schemas/KeySet' description: Successfully created KeySet '401': $ref: '#/components/responses/HTTP401Error' summary: Create a new KeySet tags: - KeySets x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: KeySet#create /{workspace}/key-sets/{KeySetIdOrName}: delete: description: Delete a KeySet operationId: delete-key-set parameters: - $ref: '#/components/parameters/KeySetIdOrName' - $ref: '#/components/parameters/Workspace' responses: '204': description: Successfully deleted KeySet or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a KeySet tags: - KeySets x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: KeySet#delete get: description: Get a KeySet using ID or name. operationId: get-key-set parameters: - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: $ref: '#/components/schemas/KeySet' description: Successfully fetched KeySet '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Fetch a KeySet tags: - KeySets x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: KeySet#read parameters: - $ref: '#/components/parameters/KeySetIdOrName' put: description: Create or Update KeySet using ID or name. operationId: upsert-key-set parameters: - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/KeySet' description: Description of the KeySet responses: '200': content: application/json: schema: $ref: '#/components/schemas/KeySet' description: Successfully upserted KeySet '401': $ref: '#/components/responses/HTTP401Error' summary: Upsert a KeySet tags: - KeySets x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: KeySet#update /{workspace}/keys: get: description: List all Keys operationId: list-key parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/Key' type: array next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' type: object description: A successful response listing Keys '401': $ref: '#/components/responses/HTTP401Error' summary: List all Keys tags: - Keys post: description: Create a new Key operationId: create-key parameters: - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/Key' description: Description of the new Key for creation required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/Key' description: Successfully created Key '401': $ref: '#/components/responses/HTTP401Error' summary: Create a new Key tags: - Keys x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Key#create /{workspace}/keys/{KeyIdOrName}: delete: description: Delete a Key operationId: delete-key parameters: - $ref: '#/components/parameters/KeyIdOrName' - $ref: '#/components/parameters/Workspace' responses: '204': description: Successfully deleted Key or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Key tags: - Keys x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Key#delete get: description: Get a Key using ID or name. operationId: get-key parameters: - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: $ref: '#/components/schemas/Key' description: Successfully fetched Key '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Fetch a Key tags: - Keys x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Key#read parameters: - $ref: '#/components/parameters/KeyIdOrName' put: description: Create or Update Key using ID or name. operationId: upsert-key parameters: - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/Key' description: Description of the Key required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Key' description: Successfully upserted Key '401': $ref: '#/components/responses/HTTP401Error' summary: Upsert a Key tags: - Keys x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Key#update /{workspace}/partials: get: description: List all Partials operationId: list-partial parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/Partial' type: array next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' type: object description: A successful response listing Partials '401': $ref: '#/components/responses/HTTP401Error' summary: List all Partials tags: - Partials post: description: Create a new Partial operationId: create-partial parameters: - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/Partial' description: Description of the new Partial for creation required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/Partial' description: Successfully created Partial '401': $ref: '#/components/responses/HTTP401Error' summary: Create a new Partial tags: - Partials x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Partial#create /{workspace}/partials/{PartialId}: delete: description: Delete a Partial operationId: delete-partial parameters: - $ref: '#/components/parameters/PartialId' - $ref: '#/components/parameters/Workspace' responses: '204': description: Successfully deleted Partial or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Partial tags: - Partials x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Partial#delete get: description: Get a Partial using ID. operationId: get-partial parameters: - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: $ref: '#/components/schemas/Partial' description: Successfully fetched Partial '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Fetch a Partial tags: - Partials x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Partial#read parameters: - $ref: '#/components/parameters/PartialId' put: description: Create or Update Partial using ID. operationId: upsert-partial parameters: - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/Partial' description: Description of the Partial required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Partial' description: Successfully upserted Partial '401': $ref: '#/components/responses/HTTP401Error' summary: Upsert a Partial tags: - Partials x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Partial#update /{workspace}/plugins: get: description: List all Plugins operationId: list-plugin parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/Plugin' type: array next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' type: object description: A successful response listing Plugins '401': $ref: '#/components/responses/HTTP401Error' summary: List all Plugins tags: - Plugins post: description: Create a new Plugin operationId: create-plugin parameters: - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/Plugin' description: Description of the new Plugin for creation required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/Plugin' description: Successfully created Plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a new Plugin tags: - Plugins /{workspace}/plugins#ACL: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a ACL plugin operationId: create-acl-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/ACLPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/ACLPlugin' description: Created ACL plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a ACL plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginACL#create /{workspace}/plugins#Ace: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a Ace plugin operationId: create-ace-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AcePlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AcePlugin' description: Created Ace plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a Ace plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAce#create /{workspace}/plugins#Acme: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a Acme plugin operationId: create-acme-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AcmePlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AcmePlugin' description: Created Acme plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a Acme plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAcme#create /{workspace}/plugins#AiAwsGuardrails: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a AiAwsGuardrails plugin operationId: create-aiawsguardrails-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiAwsGuardrailsPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AiAwsGuardrailsPlugin' description: Created AiAwsGuardrails plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a AiAwsGuardrails plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiAwsGuardrails#create /{workspace}/plugins#AiAzureContentSafety: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a AiAzureContentSafety plugin operationId: create-aiazurecontentsafety-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiAzureContentSafetyPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AiAzureContentSafetyPlugin' description: Created AiAzureContentSafety plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a AiAzureContentSafety plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiAzureContentSafety#create /{workspace}/plugins#AiGcpModelArmor: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a AiGcpModelArmor plugin operationId: create-aigcpmodelarmor-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiGcpModelArmorPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AiGcpModelArmorPlugin' description: Created AiGcpModelArmor plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a AiGcpModelArmor plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiGcpModelArmor#create /{workspace}/plugins#AiLlmAsJudge: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a AiLlmAsJudge plugin operationId: create-aillmasjudge-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiLlmAsJudgePlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AiLlmAsJudgePlugin' description: Created AiLlmAsJudge plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a AiLlmAsJudge plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiLlmAsJudge#create /{workspace}/plugins#AiMcpOauth2: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a AiMcpOauth2 plugin operationId: create-aimcpoauth2-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiMcpOauth2Plugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AiMcpOauth2Plugin' description: Created AiMcpOauth2 plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a AiMcpOauth2 plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiMcpOauth2#create /{workspace}/plugins#AiMcpProxy: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a AiMcpProxy plugin operationId: create-aimcpproxy-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiMcpProxyPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AiMcpProxyPlugin' description: Created AiMcpProxy plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a AiMcpProxy plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiMcpProxy#create /{workspace}/plugins#AiPromptCompressor: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a AiPromptCompressor plugin operationId: create-aipromptcompressor-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiPromptCompressorPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AiPromptCompressorPlugin' description: Created AiPromptCompressor plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a AiPromptCompressor plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiPromptCompressor#create /{workspace}/plugins#AiPromptDecorator: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a AiPromptDecorator plugin operationId: create-aipromptdecorator-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiPromptDecoratorPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AiPromptDecoratorPlugin' description: Created AiPromptDecorator plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a AiPromptDecorator plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiPromptDecorator#create /{workspace}/plugins#AiPromptGuard: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a AiPromptGuard plugin operationId: create-aipromptguard-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiPromptGuardPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AiPromptGuardPlugin' description: Created AiPromptGuard plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a AiPromptGuard plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiPromptGuard#create /{workspace}/plugins#AiPromptTemplate: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a AiPromptTemplate plugin operationId: create-aiprompttemplate-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiPromptTemplatePlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AiPromptTemplatePlugin' description: Created AiPromptTemplate plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a AiPromptTemplate plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiPromptTemplate#create /{workspace}/plugins#AiProxy: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a AiProxy plugin operationId: create-aiproxy-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiProxyPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AiProxyPlugin' description: Created AiProxy plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a AiProxy plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiProxy#create /{workspace}/plugins#AiProxyAdvanced: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a AiProxyAdvanced plugin operationId: create-aiproxyadvanced-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiProxyAdvancedPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AiProxyAdvancedPlugin' description: Created AiProxyAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a AiProxyAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiProxyAdvanced#create /{workspace}/plugins#AiRagInjector: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a AiRagInjector plugin operationId: create-airaginjector-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiRagInjectorPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AiRagInjectorPlugin' description: Created AiRagInjector plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a AiRagInjector plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiRagInjector#create /{workspace}/plugins#AiRateLimitingAdvanced: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a AiRateLimitingAdvanced plugin operationId: create-airatelimitingadvanced-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiRateLimitingAdvancedPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AiRateLimitingAdvancedPlugin' description: Created AiRateLimitingAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a AiRateLimitingAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiRateLimitingAdvanced#create /{workspace}/plugins#AiRequestTransformer: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a AiRequestTransformer plugin operationId: create-airequesttransformer-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiRequestTransformerPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AiRequestTransformerPlugin' description: Created AiRequestTransformer plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a AiRequestTransformer plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiRequestTransformer#create /{workspace}/plugins#AiResponseTransformer: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a AiResponseTransformer plugin operationId: create-airesponsetransformer-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiResponseTransformerPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AiResponseTransformerPlugin' description: Created AiResponseTransformer plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a AiResponseTransformer plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiResponseTransformer#create /{workspace}/plugins#AiSanitizer: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a AiSanitizer plugin operationId: create-aisanitizer-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiSanitizerPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AiSanitizerPlugin' description: Created AiSanitizer plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a AiSanitizer plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiSanitizer#create /{workspace}/plugins#AiSemanticCache: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a AiSemanticCache plugin operationId: create-aisemanticcache-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiSemanticCachePlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AiSemanticCachePlugin' description: Created AiSemanticCache plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a AiSemanticCache plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiSemanticCache#create /{workspace}/plugins#AiSemanticPromptGuard: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a AiSemanticPromptGuard plugin operationId: create-aisemanticpromptguard-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiSemanticPromptGuardPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AiSemanticPromptGuardPlugin' description: Created AiSemanticPromptGuard plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a AiSemanticPromptGuard plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiSemanticPromptGuard#create /{workspace}/plugins#AiSemanticResponseGuard: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a AiSemanticResponseGuard plugin operationId: create-aisemanticresponseguard-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiSemanticResponseGuardPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AiSemanticResponseGuardPlugin' description: Created AiSemanticResponseGuard plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a AiSemanticResponseGuard plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiSemanticResponseGuard#create /{workspace}/plugins#AppDynamics: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a AppDynamics plugin operationId: create-appdynamics-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AppDynamicsPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AppDynamicsPlugin' description: Created AppDynamics plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a AppDynamics plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAppDynamics#create /{workspace}/plugins#AwsLambda: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a AwsLambda plugin operationId: create-awslambda-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AwsLambdaPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AwsLambdaPlugin' description: Created AwsLambda plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a AwsLambda plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAwsLambda#create /{workspace}/plugins#AzureFunctions: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a AzureFunctions plugin operationId: create-azurefunctions-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AzureFunctionsPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/AzureFunctionsPlugin' description: Created AzureFunctions plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a AzureFunctions plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAzureFunctions#create /{workspace}/plugins#BasicAuth: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a BasicAuth plugin operationId: create-basicauth-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/BasicAuthPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/BasicAuthPlugin' description: Created BasicAuth plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a BasicAuth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginBasicAuth#create /{workspace}/plugins#BotDetection: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a BotDetection plugin operationId: create-botdetection-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/BotDetectionPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/BotDetectionPlugin' description: Created BotDetection plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a BotDetection plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginBotDetection#create /{workspace}/plugins#Canary: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a Canary plugin operationId: create-canary-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/CanaryPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/CanaryPlugin' description: Created Canary plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a Canary plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginCanary#create /{workspace}/plugins#Confluent: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a Confluent plugin operationId: create-confluent-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/ConfluentPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/ConfluentPlugin' description: Created Confluent plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a Confluent plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginConfluent#create /{workspace}/plugins#ConfluentConsume: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a ConfluentConsume plugin operationId: create-confluentconsume-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/ConfluentConsumePlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/ConfluentConsumePlugin' description: Created ConfluentConsume plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a ConfluentConsume plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginConfluentConsume#create /{workspace}/plugins#CorrelationId: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a CorrelationId plugin operationId: create-correlationid-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/CorrelationIdPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/CorrelationIdPlugin' description: Created CorrelationId plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a CorrelationId plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginCorrelationId#create /{workspace}/plugins#Cors: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a Cors plugin operationId: create-cors-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/CorsPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/CorsPlugin' description: Created Cors plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a Cors plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginCors#create /{workspace}/plugins#Datadog: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a Datadog plugin operationId: create-datadog-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/DatadogPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/DatadogPlugin' description: Created Datadog plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a Datadog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginDatadog#create /{workspace}/plugins#Datakit: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a Datakit plugin operationId: create-datakit-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/DatakitPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/DatakitPlugin' description: Created Datakit plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a Datakit plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginDatakit#create /{workspace}/plugins#Degraphql: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a Degraphql plugin operationId: create-degraphql-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/DegraphqlPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/DegraphqlPlugin' description: Created Degraphql plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a Degraphql plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginDegraphql#create /{workspace}/plugins#ExitTransformer: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a ExitTransformer plugin operationId: create-exittransformer-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/ExitTransformerPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/ExitTransformerPlugin' description: Created ExitTransformer plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a ExitTransformer plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginExitTransformer#create /{workspace}/plugins#FileLog: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a FileLog plugin operationId: create-filelog-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/FileLogPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/FileLogPlugin' description: Created FileLog plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a FileLog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginFileLog#create /{workspace}/plugins#ForwardProxy: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a ForwardProxy plugin operationId: create-forwardproxy-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/ForwardProxyPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/ForwardProxyPlugin' description: Created ForwardProxy plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a ForwardProxy plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginForwardProxy#create /{workspace}/plugins#GraphqlProxyCacheAdvanced: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a GraphqlProxyCacheAdvanced plugin operationId: create-graphqlproxycacheadvanced-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/GraphqlProxyCacheAdvancedPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/GraphqlProxyCacheAdvancedPlugin' description: Created GraphqlProxyCacheAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a GraphqlProxyCacheAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginGraphqlProxyCacheAdvanced#create /{workspace}/plugins#GraphqlRateLimitingAdvanced: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a GraphqlRateLimitingAdvanced plugin operationId: create-graphqlratelimitingadvanced-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/GraphqlRateLimitingAdvancedPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/GraphqlRateLimitingAdvancedPlugin' description: Created GraphqlRateLimitingAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a GraphqlRateLimitingAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginGraphqlRateLimitingAdvanced#create /{workspace}/plugins#GrpcGateway: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a GrpcGateway plugin operationId: create-grpcgateway-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/GrpcGatewayPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/GrpcGatewayPlugin' description: Created GrpcGateway plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a GrpcGateway plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginGrpcGateway#create /{workspace}/plugins#GrpcWeb: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a GrpcWeb plugin operationId: create-grpcweb-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/GrpcWebPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/GrpcWebPlugin' description: Created GrpcWeb plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a GrpcWeb plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginGrpcWeb#create /{workspace}/plugins#HeaderCertAuth: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a HeaderCertAuth plugin operationId: create-headercertauth-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/HeaderCertAuthPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/HeaderCertAuthPlugin' description: Created HeaderCertAuth plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a HeaderCertAuth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginHeaderCertAuth#create /{workspace}/plugins#HmacAuth: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a HmacAuth plugin operationId: create-hmacauth-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/HmacAuthPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/HmacAuthPlugin' description: Created HmacAuth plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a HmacAuth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginHmacAuth#create /{workspace}/plugins#HttpLog: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a HttpLog plugin operationId: create-httplog-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/HttpLogPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/HttpLogPlugin' description: Created HttpLog plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a HttpLog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginHttpLog#create /{workspace}/plugins#InjectionProtection: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a InjectionProtection plugin operationId: create-injectionprotection-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/InjectionProtectionPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/InjectionProtectionPlugin' description: Created InjectionProtection plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a InjectionProtection plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginInjectionProtection#create /{workspace}/plugins#IpRestriction: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a IpRestriction plugin operationId: create-iprestriction-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/IpRestrictionPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/IpRestrictionPlugin' description: Created IpRestriction plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a IpRestriction plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginIpRestriction#create /{workspace}/plugins#Jq: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a Jq plugin operationId: create-jq-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/JqPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/JqPlugin' description: Created Jq plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a Jq plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginJq#create /{workspace}/plugins#JsonThreatProtection: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a JsonThreatProtection plugin operationId: create-jsonthreatprotection-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/JsonThreatProtectionPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/JsonThreatProtectionPlugin' description: Created JsonThreatProtection plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a JsonThreatProtection plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginJsonThreatProtection#create /{workspace}/plugins#JweDecrypt: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a JweDecrypt plugin operationId: create-jwedecrypt-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/JweDecryptPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/JweDecryptPlugin' description: Created JweDecrypt plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a JweDecrypt plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginJweDecrypt#create /{workspace}/plugins#Jwt: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a Jwt plugin operationId: create-jwt-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/JwtPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/JwtPlugin' description: Created Jwt plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a Jwt plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginJwt#create /{workspace}/plugins#JwtSigner: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a JwtSigner plugin operationId: create-jwtsigner-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/JwtSignerPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/JwtSignerPlugin' description: Created JwtSigner plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a JwtSigner plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginJwtSigner#create /{workspace}/plugins#KafkaConsume: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a KafkaConsume plugin operationId: create-kafkaconsume-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/KafkaConsumePlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/KafkaConsumePlugin' description: Created KafkaConsume plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a KafkaConsume plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginKafkaConsume#create /{workspace}/plugins#KafkaLog: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a KafkaLog plugin operationId: create-kafkalog-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/KafkaLogPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/KafkaLogPlugin' description: Created KafkaLog plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a KafkaLog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginKafkaLog#create /{workspace}/plugins#KafkaUpstream: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a KafkaUpstream plugin operationId: create-kafkaupstream-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/KafkaUpstreamPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/KafkaUpstreamPlugin' description: Created KafkaUpstream plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a KafkaUpstream plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginKafkaUpstream#create /{workspace}/plugins#KeyAuth: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a KeyAuth plugin operationId: create-keyauth-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/KeyAuthPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/KeyAuthPlugin' description: Created KeyAuth plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a KeyAuth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginKeyAuth#create /{workspace}/plugins#KeyAuthEnc: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a KeyAuthEnc plugin operationId: create-keyauthenc-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/KeyAuthEncPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/KeyAuthEncPlugin' description: Created KeyAuthEnc plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a KeyAuthEnc plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginKeyAuthEnc#create /{workspace}/plugins#LdapAuth: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a LdapAuth plugin operationId: create-ldapauth-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/LdapAuthPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/LdapAuthPlugin' description: Created LdapAuth plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a LdapAuth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginLdapAuth#create /{workspace}/plugins#LdapAuthAdvanced: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a LdapAuthAdvanced plugin operationId: create-ldapauthadvanced-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/LdapAuthAdvancedPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/LdapAuthAdvancedPlugin' description: Created LdapAuthAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a LdapAuthAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginLdapAuthAdvanced#create /{workspace}/plugins#Loggly: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a Loggly plugin operationId: create-loggly-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/LogglyPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/LogglyPlugin' description: Created Loggly plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a Loggly plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginLoggly#create /{workspace}/plugins#Mocking: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a Mocking plugin operationId: create-mocking-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/MockingPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/MockingPlugin' description: Created Mocking plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a Mocking plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginMocking#create /{workspace}/plugins#MtlsAuth: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a MtlsAuth plugin operationId: create-mtlsauth-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/MtlsAuthPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/MtlsAuthPlugin' description: Created MtlsAuth plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a MtlsAuth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginMtlsAuth#create /{workspace}/plugins#OasValidation: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a OasValidation plugin operationId: create-oasvalidation-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/OasValidationPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/OasValidationPlugin' description: Created OasValidation plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a OasValidation plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginOasValidation#create /{workspace}/plugins#Oauth2: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a Oauth2 plugin operationId: create-oauth2-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/Oauth2Plugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/Oauth2Plugin' description: Created Oauth2 plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a Oauth2 plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginOauth2#create /{workspace}/plugins#Oauth2Introspection: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a Oauth2Introspection plugin operationId: create-oauth2introspection-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/Oauth2IntrospectionPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/Oauth2IntrospectionPlugin' description: Created Oauth2Introspection plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a Oauth2Introspection plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginOauth2Introspection#create /{workspace}/plugins#Opa: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a Opa plugin operationId: create-opa-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/OpaPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/OpaPlugin' description: Created Opa plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a Opa plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginOpa#create /{workspace}/plugins#OpenidConnect: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a OpenidConnect plugin operationId: create-openidconnect-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/OpenidConnectPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/OpenidConnectPlugin' description: Created OpenidConnect plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a OpenidConnect plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginOpenidConnect#create /{workspace}/plugins#Opentelemetry: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a Opentelemetry plugin operationId: create-opentelemetry-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/OpentelemetryPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/OpentelemetryPlugin' description: Created Opentelemetry plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a Opentelemetry plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginOpentelemetry#create /{workspace}/plugins#PostFunction: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a PostFunction plugin operationId: create-postfunction-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/PostFunctionPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/PostFunctionPlugin' description: Created PostFunction plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a PostFunction plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginPostFunction#create /{workspace}/plugins#PreFunction: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a PreFunction plugin operationId: create-prefunction-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/PreFunctionPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/PreFunctionPlugin' description: Created PreFunction plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a PreFunction plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginPreFunction#create /{workspace}/plugins#Prometheus: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a Prometheus plugin operationId: create-prometheus-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/PrometheusPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/PrometheusPlugin' description: Created Prometheus plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a Prometheus plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginPrometheus#create /{workspace}/plugins#ProxyCache: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a ProxyCache plugin operationId: create-proxycache-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/ProxyCachePlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/ProxyCachePlugin' description: Created ProxyCache plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a ProxyCache plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginProxyCache#create /{workspace}/plugins#ProxyCacheAdvanced: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a ProxyCacheAdvanced plugin operationId: create-proxycacheadvanced-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/ProxyCacheAdvancedPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/ProxyCacheAdvancedPlugin' description: Created ProxyCacheAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a ProxyCacheAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginProxyCacheAdvanced#create /{workspace}/plugins#RateLimiting: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a RateLimiting plugin operationId: create-ratelimiting-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/RateLimitingPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/RateLimitingPlugin' description: Created RateLimiting plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a RateLimiting plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRateLimiting#create /{workspace}/plugins#RateLimitingAdvanced: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a RateLimitingAdvanced plugin operationId: create-ratelimitingadvanced-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/RateLimitingAdvancedPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/RateLimitingAdvancedPlugin' description: Created RateLimitingAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a RateLimitingAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRateLimitingAdvanced#create /{workspace}/plugins#Redirect: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a Redirect plugin operationId: create-redirect-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/RedirectPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/RedirectPlugin' description: Created Redirect plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a Redirect plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRedirect#create /{workspace}/plugins#RequestCallout: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a RequestCallout plugin operationId: create-requestcallout-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/RequestCalloutPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/RequestCalloutPlugin' description: Created RequestCallout plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a RequestCallout plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRequestCallout#create /{workspace}/plugins#RequestSizeLimiting: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a RequestSizeLimiting plugin operationId: create-requestsizelimiting-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/RequestSizeLimitingPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/RequestSizeLimitingPlugin' description: Created RequestSizeLimiting plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a RequestSizeLimiting plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRequestSizeLimiting#create /{workspace}/plugins#RequestTermination: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a RequestTermination plugin operationId: create-requesttermination-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/RequestTerminationPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/RequestTerminationPlugin' description: Created RequestTermination plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a RequestTermination plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRequestTermination#create /{workspace}/plugins#RequestTransformer: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a RequestTransformer plugin operationId: create-requesttransformer-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/RequestTransformerPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/RequestTransformerPlugin' description: Created RequestTransformer plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a RequestTransformer plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRequestTransformer#create /{workspace}/plugins#RequestTransformerAdvanced: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a RequestTransformerAdvanced plugin operationId: create-requesttransformeradvanced-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/RequestTransformerAdvancedPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/RequestTransformerAdvancedPlugin' description: Created RequestTransformerAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a RequestTransformerAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRequestTransformerAdvanced#create /{workspace}/plugins#RequestValidator: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a RequestValidator plugin operationId: create-requestvalidator-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/RequestValidatorPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/RequestValidatorPlugin' description: Created RequestValidator plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a RequestValidator plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRequestValidator#create /{workspace}/plugins#ResponseRatelimiting: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a ResponseRatelimiting plugin operationId: create-responseratelimiting-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/ResponseRatelimitingPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/ResponseRatelimitingPlugin' description: Created ResponseRatelimiting plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a ResponseRatelimiting plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginResponseRatelimiting#create /{workspace}/plugins#ResponseTransformer: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a ResponseTransformer plugin operationId: create-responsetransformer-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/ResponseTransformerPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/ResponseTransformerPlugin' description: Created ResponseTransformer plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a ResponseTransformer plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginResponseTransformer#create /{workspace}/plugins#ResponseTransformerAdvanced: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a ResponseTransformerAdvanced plugin operationId: create-responsetransformeradvanced-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/ResponseTransformerAdvancedPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/ResponseTransformerAdvancedPlugin' description: Created ResponseTransformerAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a ResponseTransformerAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginResponseTransformerAdvanced#create /{workspace}/plugins#RouteByHeader: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a RouteByHeader plugin operationId: create-routebyheader-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/RouteByHeaderPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/RouteByHeaderPlugin' description: Created RouteByHeader plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a RouteByHeader plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRouteByHeader#create /{workspace}/plugins#RouteTransformerAdvanced: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a RouteTransformerAdvanced plugin operationId: create-routetransformeradvanced-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/RouteTransformerAdvancedPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/RouteTransformerAdvancedPlugin' description: Created RouteTransformerAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a RouteTransformerAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRouteTransformerAdvanced#create /{workspace}/plugins#Saml: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a Saml plugin operationId: create-saml-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/SamlPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/SamlPlugin' description: Created Saml plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a Saml plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginSaml#create /{workspace}/plugins#ServiceProtection: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a ServiceProtection plugin operationId: create-serviceprotection-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/ServiceProtectionPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/ServiceProtectionPlugin' description: Created ServiceProtection plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a ServiceProtection plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginServiceProtection#create /{workspace}/plugins#Session: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a Session plugin operationId: create-session-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/SessionPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/SessionPlugin' description: Created Session plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a Session plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginSession#create /{workspace}/plugins#SolaceConsume: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a SolaceConsume plugin operationId: create-solaceconsume-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/SolaceConsumePlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/SolaceConsumePlugin' description: Created SolaceConsume plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a SolaceConsume plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginSolaceConsume#create /{workspace}/plugins#SolaceLog: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a SolaceLog plugin operationId: create-solacelog-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/SolaceLogPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/SolaceLogPlugin' description: Created SolaceLog plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a SolaceLog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginSolaceLog#create /{workspace}/plugins#SolaceUpstream: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a SolaceUpstream plugin operationId: create-solaceupstream-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/SolaceUpstreamPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/SolaceUpstreamPlugin' description: Created SolaceUpstream plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a SolaceUpstream plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginSolaceUpstream#create /{workspace}/plugins#StandardWebhooks: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a StandardWebhooks plugin operationId: create-standardwebhooks-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/StandardWebhooksPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/StandardWebhooksPlugin' description: Created StandardWebhooks plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a StandardWebhooks plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginStandardWebhooks#create /{workspace}/plugins#Statsd: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a Statsd plugin operationId: create-statsd-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/StatsdPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/StatsdPlugin' description: Created Statsd plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a Statsd plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginStatsd#create /{workspace}/plugins#StatsdAdvanced: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a StatsdAdvanced plugin operationId: create-statsdadvanced-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/StatsdAdvancedPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/StatsdAdvancedPlugin' description: Created StatsdAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a StatsdAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginStatsdAdvanced#create /{workspace}/plugins#Syslog: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a Syslog plugin operationId: create-syslog-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/SyslogPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/SyslogPlugin' description: Created Syslog plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a Syslog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginSyslog#create /{workspace}/plugins#TcpLog: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a TcpLog plugin operationId: create-tcplog-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/TcpLogPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/TcpLogPlugin' description: Created TcpLog plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a TcpLog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginTcpLog#create /{workspace}/plugins#TlsHandshakeModifier: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a TlsHandshakeModifier plugin operationId: create-tlshandshakemodifier-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/TlsHandshakeModifierPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/TlsHandshakeModifierPlugin' description: Created TlsHandshakeModifier plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a TlsHandshakeModifier plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginTlsHandshakeModifier#create /{workspace}/plugins#TlsMetadataHeaders: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a TlsMetadataHeaders plugin operationId: create-tlsmetadataheaders-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/TlsMetadataHeadersPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/TlsMetadataHeadersPlugin' description: Created TlsMetadataHeaders plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a TlsMetadataHeaders plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginTlsMetadataHeaders#create /{workspace}/plugins#UdpLog: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a UdpLog plugin operationId: create-udplog-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/UdpLogPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/UdpLogPlugin' description: Created UdpLog plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a UdpLog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginUdpLog#create /{workspace}/plugins#UpstreamOauth: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a UpstreamOauth plugin operationId: create-upstreamoauth-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/UpstreamOauthPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/UpstreamOauthPlugin' description: Created UpstreamOauth plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a UpstreamOauth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginUpstreamOauth#create /{workspace}/plugins#UpstreamTimeout: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a UpstreamTimeout plugin operationId: create-upstreamtimeout-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/UpstreamTimeoutPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/UpstreamTimeoutPlugin' description: Created UpstreamTimeout plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a UpstreamTimeout plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginUpstreamTimeout#create /{workspace}/plugins#VaultAuth: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a VaultAuth plugin operationId: create-vaultauth-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/VaultAuthPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/VaultAuthPlugin' description: Created VaultAuth plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a VaultAuth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginVaultAuth#create /{workspace}/plugins#WebsocketSizeLimit: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a WebsocketSizeLimit plugin operationId: create-websocketsizelimit-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/WebsocketSizeLimitPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/WebsocketSizeLimitPlugin' description: Created WebsocketSizeLimit plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a WebsocketSizeLimit plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginWebsocketSizeLimit#create /{workspace}/plugins#WebsocketValidator: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a WebsocketValidator plugin operationId: create-websocketvalidator-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/WebsocketValidatorPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/WebsocketValidatorPlugin' description: Created WebsocketValidator plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a WebsocketValidator plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginWebsocketValidator#create /{workspace}/plugins#XmlThreatProtection: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a XmlThreatProtection plugin operationId: create-xmlthreatprotection-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/XmlThreatProtectionPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/XmlThreatProtectionPlugin' description: Created XmlThreatProtection plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a XmlThreatProtection plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginXmlThreatProtection#create /{workspace}/plugins#Zipkin: parameters: - $ref: '#/components/parameters/Workspace' post: description: Create a Zipkin plugin operationId: create-zipkin-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/ZipkinPlugin' required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/ZipkinPlugin' description: Created Zipkin plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Create a Zipkin plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginZipkin#create /{workspace}/plugins/{PluginId}: delete: description: Delete a Plugin operationId: delete-plugin parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Plugin tags: - Plugins get: description: Get a Plugin using ID. operationId: get-plugin parameters: - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: $ref: '#/components/schemas/Plugin' description: Successfully fetched Plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Fetch a Plugin tags: - Plugins parameters: - $ref: '#/components/parameters/PluginId' patch: description: Update a Plugin operationId: update-plugin parameters: - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/Plugin' description: Fields of the Plugin that need to be updated required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Plugin' description: Successfully updated Plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Update a Plugin tags: - Plugins put: description: Create or Update Plugin using ID. operationId: upsert-plugin parameters: - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/Plugin' description: Description of the Plugin required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Plugin' description: Successfully upserted Plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Upsert a Plugin tags: - Plugins /{workspace}/plugins/{PluginId}#ACL: delete: description: Delete a ACL plugin operationId: delete-acl-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a ACL plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginACL#delete get: description: Get a ACL plugin operationId: get-acl-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/ACLPlugin' description: ACL plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a ACL plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginACL#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a ACL plugin operationId: update-acl-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/ACLPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ACLPlugin' description: ACL plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a ACL plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginACL#update /{workspace}/plugins/{PluginId}#Ace: delete: description: Delete a Ace plugin operationId: delete-ace-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Ace plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAce#delete get: description: Get a Ace plugin operationId: get-ace-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/AcePlugin' description: Ace plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a Ace plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAce#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a Ace plugin operationId: update-ace-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AcePlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AcePlugin' description: Ace plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a Ace plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAce#update /{workspace}/plugins/{PluginId}#Acme: delete: description: Delete a Acme plugin operationId: delete-acme-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Acme plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAcme#delete get: description: Get a Acme plugin operationId: get-acme-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/AcmePlugin' description: Acme plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a Acme plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAcme#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a Acme plugin operationId: update-acme-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AcmePlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AcmePlugin' description: Acme plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a Acme plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAcme#update /{workspace}/plugins/{PluginId}#AiAwsGuardrails: delete: description: Delete a AiAwsGuardrails plugin operationId: delete-aiawsguardrails-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a AiAwsGuardrails plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiAwsGuardrails#delete get: description: Get a AiAwsGuardrails plugin operationId: get-aiawsguardrails-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiAwsGuardrailsPlugin' description: AiAwsGuardrails plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a AiAwsGuardrails plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiAwsGuardrails#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a AiAwsGuardrails plugin operationId: update-aiawsguardrails-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiAwsGuardrailsPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiAwsGuardrailsPlugin' description: AiAwsGuardrails plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a AiAwsGuardrails plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiAwsGuardrails#update /{workspace}/plugins/{PluginId}#AiAzureContentSafety: delete: description: Delete a AiAzureContentSafety plugin operationId: delete-aiazurecontentsafety-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a AiAzureContentSafety plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiAzureContentSafety#delete get: description: Get a AiAzureContentSafety plugin operationId: get-aiazurecontentsafety-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiAzureContentSafetyPlugin' description: AiAzureContentSafety plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a AiAzureContentSafety plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiAzureContentSafety#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a AiAzureContentSafety plugin operationId: update-aiazurecontentsafety-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiAzureContentSafetyPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiAzureContentSafetyPlugin' description: AiAzureContentSafety plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a AiAzureContentSafety plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiAzureContentSafety#update /{workspace}/plugins/{PluginId}#AiGcpModelArmor: delete: description: Delete a AiGcpModelArmor plugin operationId: delete-aigcpmodelarmor-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a AiGcpModelArmor plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiGcpModelArmor#delete get: description: Get a AiGcpModelArmor plugin operationId: get-aigcpmodelarmor-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiGcpModelArmorPlugin' description: AiGcpModelArmor plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a AiGcpModelArmor plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiGcpModelArmor#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a AiGcpModelArmor plugin operationId: update-aigcpmodelarmor-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiGcpModelArmorPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiGcpModelArmorPlugin' description: AiGcpModelArmor plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a AiGcpModelArmor plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiGcpModelArmor#update /{workspace}/plugins/{PluginId}#AiLlmAsJudge: delete: description: Delete a AiLlmAsJudge plugin operationId: delete-aillmasjudge-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a AiLlmAsJudge plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiLlmAsJudge#delete get: description: Get a AiLlmAsJudge plugin operationId: get-aillmasjudge-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiLlmAsJudgePlugin' description: AiLlmAsJudge plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a AiLlmAsJudge plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiLlmAsJudge#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a AiLlmAsJudge plugin operationId: update-aillmasjudge-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiLlmAsJudgePlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiLlmAsJudgePlugin' description: AiLlmAsJudge plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a AiLlmAsJudge plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiLlmAsJudge#update /{workspace}/plugins/{PluginId}#AiMcpOauth2: delete: description: Delete a AiMcpOauth2 plugin operationId: delete-aimcpoauth2-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a AiMcpOauth2 plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiMcpOauth2#delete get: description: Get a AiMcpOauth2 plugin operationId: get-aimcpoauth2-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiMcpOauth2Plugin' description: AiMcpOauth2 plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a AiMcpOauth2 plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiMcpOauth2#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a AiMcpOauth2 plugin operationId: update-aimcpoauth2-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiMcpOauth2Plugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiMcpOauth2Plugin' description: AiMcpOauth2 plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a AiMcpOauth2 plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiMcpOauth2#update /{workspace}/plugins/{PluginId}#AiMcpProxy: delete: description: Delete a AiMcpProxy plugin operationId: delete-aimcpproxy-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a AiMcpProxy plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiMcpProxy#delete get: description: Get a AiMcpProxy plugin operationId: get-aimcpproxy-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiMcpProxyPlugin' description: AiMcpProxy plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a AiMcpProxy plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiMcpProxy#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a AiMcpProxy plugin operationId: update-aimcpproxy-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiMcpProxyPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiMcpProxyPlugin' description: AiMcpProxy plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a AiMcpProxy plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiMcpProxy#update /{workspace}/plugins/{PluginId}#AiPromptCompressor: delete: description: Delete a AiPromptCompressor plugin operationId: delete-aipromptcompressor-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a AiPromptCompressor plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiPromptCompressor#delete get: description: Get a AiPromptCompressor plugin operationId: get-aipromptcompressor-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiPromptCompressorPlugin' description: AiPromptCompressor plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a AiPromptCompressor plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiPromptCompressor#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a AiPromptCompressor plugin operationId: update-aipromptcompressor-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiPromptCompressorPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiPromptCompressorPlugin' description: AiPromptCompressor plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a AiPromptCompressor plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiPromptCompressor#update /{workspace}/plugins/{PluginId}#AiPromptDecorator: delete: description: Delete a AiPromptDecorator plugin operationId: delete-aipromptdecorator-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a AiPromptDecorator plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiPromptDecorator#delete get: description: Get a AiPromptDecorator plugin operationId: get-aipromptdecorator-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiPromptDecoratorPlugin' description: AiPromptDecorator plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a AiPromptDecorator plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiPromptDecorator#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a AiPromptDecorator plugin operationId: update-aipromptdecorator-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiPromptDecoratorPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiPromptDecoratorPlugin' description: AiPromptDecorator plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a AiPromptDecorator plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiPromptDecorator#update /{workspace}/plugins/{PluginId}#AiPromptGuard: delete: description: Delete a AiPromptGuard plugin operationId: delete-aipromptguard-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a AiPromptGuard plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiPromptGuard#delete get: description: Get a AiPromptGuard plugin operationId: get-aipromptguard-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiPromptGuardPlugin' description: AiPromptGuard plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a AiPromptGuard plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiPromptGuard#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a AiPromptGuard plugin operationId: update-aipromptguard-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiPromptGuardPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiPromptGuardPlugin' description: AiPromptGuard plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a AiPromptGuard plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiPromptGuard#update /{workspace}/plugins/{PluginId}#AiPromptTemplate: delete: description: Delete a AiPromptTemplate plugin operationId: delete-aiprompttemplate-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a AiPromptTemplate plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiPromptTemplate#delete get: description: Get a AiPromptTemplate plugin operationId: get-aiprompttemplate-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiPromptTemplatePlugin' description: AiPromptTemplate plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a AiPromptTemplate plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiPromptTemplate#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a AiPromptTemplate plugin operationId: update-aiprompttemplate-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiPromptTemplatePlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiPromptTemplatePlugin' description: AiPromptTemplate plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a AiPromptTemplate plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiPromptTemplate#update /{workspace}/plugins/{PluginId}#AiProxy: delete: description: Delete a AiProxy plugin operationId: delete-aiproxy-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a AiProxy plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiProxy#delete get: description: Get a AiProxy plugin operationId: get-aiproxy-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiProxyPlugin' description: AiProxy plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a AiProxy plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiProxy#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a AiProxy plugin operationId: update-aiproxy-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiProxyPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiProxyPlugin' description: AiProxy plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a AiProxy plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiProxy#update /{workspace}/plugins/{PluginId}#AiProxyAdvanced: delete: description: Delete a AiProxyAdvanced plugin operationId: delete-aiproxyadvanced-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a AiProxyAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiProxyAdvanced#delete get: description: Get a AiProxyAdvanced plugin operationId: get-aiproxyadvanced-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiProxyAdvancedPlugin' description: AiProxyAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a AiProxyAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiProxyAdvanced#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a AiProxyAdvanced plugin operationId: update-aiproxyadvanced-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiProxyAdvancedPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiProxyAdvancedPlugin' description: AiProxyAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a AiProxyAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiProxyAdvanced#update /{workspace}/plugins/{PluginId}#AiRagInjector: delete: description: Delete a AiRagInjector plugin operationId: delete-airaginjector-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a AiRagInjector plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiRagInjector#delete get: description: Get a AiRagInjector plugin operationId: get-airaginjector-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiRagInjectorPlugin' description: AiRagInjector plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a AiRagInjector plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiRagInjector#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a AiRagInjector plugin operationId: update-airaginjector-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiRagInjectorPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiRagInjectorPlugin' description: AiRagInjector plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a AiRagInjector plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiRagInjector#update /{workspace}/plugins/{PluginId}#AiRateLimitingAdvanced: delete: description: Delete a AiRateLimitingAdvanced plugin operationId: delete-airatelimitingadvanced-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a AiRateLimitingAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiRateLimitingAdvanced#delete get: description: Get a AiRateLimitingAdvanced plugin operationId: get-airatelimitingadvanced-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiRateLimitingAdvancedPlugin' description: AiRateLimitingAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a AiRateLimitingAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiRateLimitingAdvanced#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a AiRateLimitingAdvanced plugin operationId: update-airatelimitingadvanced-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiRateLimitingAdvancedPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiRateLimitingAdvancedPlugin' description: AiRateLimitingAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a AiRateLimitingAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiRateLimitingAdvanced#update /{workspace}/plugins/{PluginId}#AiRequestTransformer: delete: description: Delete a AiRequestTransformer plugin operationId: delete-airequesttransformer-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a AiRequestTransformer plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiRequestTransformer#delete get: description: Get a AiRequestTransformer plugin operationId: get-airequesttransformer-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiRequestTransformerPlugin' description: AiRequestTransformer plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a AiRequestTransformer plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiRequestTransformer#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a AiRequestTransformer plugin operationId: update-airequesttransformer-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiRequestTransformerPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiRequestTransformerPlugin' description: AiRequestTransformer plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a AiRequestTransformer plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiRequestTransformer#update /{workspace}/plugins/{PluginId}#AiResponseTransformer: delete: description: Delete a AiResponseTransformer plugin operationId: delete-airesponsetransformer-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a AiResponseTransformer plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiResponseTransformer#delete get: description: Get a AiResponseTransformer plugin operationId: get-airesponsetransformer-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiResponseTransformerPlugin' description: AiResponseTransformer plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a AiResponseTransformer plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiResponseTransformer#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a AiResponseTransformer plugin operationId: update-airesponsetransformer-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiResponseTransformerPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiResponseTransformerPlugin' description: AiResponseTransformer plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a AiResponseTransformer plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiResponseTransformer#update /{workspace}/plugins/{PluginId}#AiSanitizer: delete: description: Delete a AiSanitizer plugin operationId: delete-aisanitizer-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a AiSanitizer plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiSanitizer#delete get: description: Get a AiSanitizer plugin operationId: get-aisanitizer-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiSanitizerPlugin' description: AiSanitizer plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a AiSanitizer plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiSanitizer#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a AiSanitizer plugin operationId: update-aisanitizer-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiSanitizerPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiSanitizerPlugin' description: AiSanitizer plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a AiSanitizer plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiSanitizer#update /{workspace}/plugins/{PluginId}#AiSemanticCache: delete: description: Delete a AiSemanticCache plugin operationId: delete-aisemanticcache-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a AiSemanticCache plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiSemanticCache#delete get: description: Get a AiSemanticCache plugin operationId: get-aisemanticcache-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiSemanticCachePlugin' description: AiSemanticCache plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a AiSemanticCache plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiSemanticCache#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a AiSemanticCache plugin operationId: update-aisemanticcache-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiSemanticCachePlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiSemanticCachePlugin' description: AiSemanticCache plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a AiSemanticCache plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiSemanticCache#update /{workspace}/plugins/{PluginId}#AiSemanticPromptGuard: delete: description: Delete a AiSemanticPromptGuard plugin operationId: delete-aisemanticpromptguard-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a AiSemanticPromptGuard plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiSemanticPromptGuard#delete get: description: Get a AiSemanticPromptGuard plugin operationId: get-aisemanticpromptguard-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiSemanticPromptGuardPlugin' description: AiSemanticPromptGuard plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a AiSemanticPromptGuard plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiSemanticPromptGuard#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a AiSemanticPromptGuard plugin operationId: update-aisemanticpromptguard-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiSemanticPromptGuardPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiSemanticPromptGuardPlugin' description: AiSemanticPromptGuard plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a AiSemanticPromptGuard plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiSemanticPromptGuard#update /{workspace}/plugins/{PluginId}#AiSemanticResponseGuard: delete: description: Delete a AiSemanticResponseGuard plugin operationId: delete-aisemanticresponseguard-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a AiSemanticResponseGuard plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiSemanticResponseGuard#delete get: description: Get a AiSemanticResponseGuard plugin operationId: get-aisemanticresponseguard-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiSemanticResponseGuardPlugin' description: AiSemanticResponseGuard plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a AiSemanticResponseGuard plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiSemanticResponseGuard#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a AiSemanticResponseGuard plugin operationId: update-aisemanticresponseguard-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AiSemanticResponseGuardPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AiSemanticResponseGuardPlugin' description: AiSemanticResponseGuard plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a AiSemanticResponseGuard plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAiSemanticResponseGuard#update /{workspace}/plugins/{PluginId}#AppDynamics: delete: description: Delete a AppDynamics plugin operationId: delete-appdynamics-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a AppDynamics plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAppDynamics#delete get: description: Get a AppDynamics plugin operationId: get-appdynamics-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/AppDynamicsPlugin' description: AppDynamics plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a AppDynamics plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAppDynamics#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a AppDynamics plugin operationId: update-appdynamics-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AppDynamicsPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AppDynamicsPlugin' description: AppDynamics plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a AppDynamics plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAppDynamics#update /{workspace}/plugins/{PluginId}#AwsLambda: delete: description: Delete a AwsLambda plugin operationId: delete-awslambda-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a AwsLambda plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAwsLambda#delete get: description: Get a AwsLambda plugin operationId: get-awslambda-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/AwsLambdaPlugin' description: AwsLambda plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a AwsLambda plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAwsLambda#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a AwsLambda plugin operationId: update-awslambda-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AwsLambdaPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AwsLambdaPlugin' description: AwsLambda plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a AwsLambda plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAwsLambda#update /{workspace}/plugins/{PluginId}#AzureFunctions: delete: description: Delete a AzureFunctions plugin operationId: delete-azurefunctions-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a AzureFunctions plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAzureFunctions#delete get: description: Get a AzureFunctions plugin operationId: get-azurefunctions-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/AzureFunctionsPlugin' description: AzureFunctions plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a AzureFunctions plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAzureFunctions#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a AzureFunctions plugin operationId: update-azurefunctions-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/AzureFunctionsPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/AzureFunctionsPlugin' description: AzureFunctions plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a AzureFunctions plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginAzureFunctions#update /{workspace}/plugins/{PluginId}#BasicAuth: delete: description: Delete a BasicAuth plugin operationId: delete-basicauth-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a BasicAuth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginBasicAuth#delete get: description: Get a BasicAuth plugin operationId: get-basicauth-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/BasicAuthPlugin' description: BasicAuth plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a BasicAuth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginBasicAuth#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a BasicAuth plugin operationId: update-basicauth-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/BasicAuthPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/BasicAuthPlugin' description: BasicAuth plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a BasicAuth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginBasicAuth#update /{workspace}/plugins/{PluginId}#BotDetection: delete: description: Delete a BotDetection plugin operationId: delete-botdetection-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a BotDetection plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginBotDetection#delete get: description: Get a BotDetection plugin operationId: get-botdetection-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/BotDetectionPlugin' description: BotDetection plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a BotDetection plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginBotDetection#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a BotDetection plugin operationId: update-botdetection-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/BotDetectionPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/BotDetectionPlugin' description: BotDetection plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a BotDetection plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginBotDetection#update /{workspace}/plugins/{PluginId}#Canary: delete: description: Delete a Canary plugin operationId: delete-canary-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Canary plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginCanary#delete get: description: Get a Canary plugin operationId: get-canary-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/CanaryPlugin' description: Canary plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a Canary plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginCanary#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a Canary plugin operationId: update-canary-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/CanaryPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/CanaryPlugin' description: Canary plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a Canary plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginCanary#update /{workspace}/plugins/{PluginId}#Confluent: delete: description: Delete a Confluent plugin operationId: delete-confluent-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Confluent plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginConfluent#delete get: description: Get a Confluent plugin operationId: get-confluent-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/ConfluentPlugin' description: Confluent plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a Confluent plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginConfluent#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a Confluent plugin operationId: update-confluent-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/ConfluentPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ConfluentPlugin' description: Confluent plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a Confluent plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginConfluent#update /{workspace}/plugins/{PluginId}#ConfluentConsume: delete: description: Delete a ConfluentConsume plugin operationId: delete-confluentconsume-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a ConfluentConsume plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginConfluentConsume#delete get: description: Get a ConfluentConsume plugin operationId: get-confluentconsume-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/ConfluentConsumePlugin' description: ConfluentConsume plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a ConfluentConsume plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginConfluentConsume#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a ConfluentConsume plugin operationId: update-confluentconsume-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/ConfluentConsumePlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ConfluentConsumePlugin' description: ConfluentConsume plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a ConfluentConsume plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginConfluentConsume#update /{workspace}/plugins/{PluginId}#CorrelationId: delete: description: Delete a CorrelationId plugin operationId: delete-correlationid-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a CorrelationId plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginCorrelationId#delete get: description: Get a CorrelationId plugin operationId: get-correlationid-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/CorrelationIdPlugin' description: CorrelationId plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a CorrelationId plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginCorrelationId#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a CorrelationId plugin operationId: update-correlationid-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/CorrelationIdPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/CorrelationIdPlugin' description: CorrelationId plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a CorrelationId plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginCorrelationId#update /{workspace}/plugins/{PluginId}#Cors: delete: description: Delete a Cors plugin operationId: delete-cors-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Cors plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginCors#delete get: description: Get a Cors plugin operationId: get-cors-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/CorsPlugin' description: Cors plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a Cors plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginCors#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a Cors plugin operationId: update-cors-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/CorsPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/CorsPlugin' description: Cors plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a Cors plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginCors#update /{workspace}/plugins/{PluginId}#Datadog: delete: description: Delete a Datadog plugin operationId: delete-datadog-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Datadog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginDatadog#delete get: description: Get a Datadog plugin operationId: get-datadog-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/DatadogPlugin' description: Datadog plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a Datadog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginDatadog#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a Datadog plugin operationId: update-datadog-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/DatadogPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/DatadogPlugin' description: Datadog plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a Datadog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginDatadog#update /{workspace}/plugins/{PluginId}#Datakit: delete: description: Delete a Datakit plugin operationId: delete-datakit-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Datakit plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginDatakit#delete get: description: Get a Datakit plugin operationId: get-datakit-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/DatakitPlugin' description: Datakit plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a Datakit plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginDatakit#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a Datakit plugin operationId: update-datakit-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/DatakitPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/DatakitPlugin' description: Datakit plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a Datakit plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginDatakit#update /{workspace}/plugins/{PluginId}#Degraphql: delete: description: Delete a Degraphql plugin operationId: delete-degraphql-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Degraphql plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginDegraphql#delete get: description: Get a Degraphql plugin operationId: get-degraphql-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/DegraphqlPlugin' description: Degraphql plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a Degraphql plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginDegraphql#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a Degraphql plugin operationId: update-degraphql-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/DegraphqlPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/DegraphqlPlugin' description: Degraphql plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a Degraphql plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginDegraphql#update /{workspace}/plugins/{PluginId}#ExitTransformer: delete: description: Delete a ExitTransformer plugin operationId: delete-exittransformer-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a ExitTransformer plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginExitTransformer#delete get: description: Get a ExitTransformer plugin operationId: get-exittransformer-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/ExitTransformerPlugin' description: ExitTransformer plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a ExitTransformer plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginExitTransformer#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a ExitTransformer plugin operationId: update-exittransformer-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/ExitTransformerPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ExitTransformerPlugin' description: ExitTransformer plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a ExitTransformer plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginExitTransformer#update /{workspace}/plugins/{PluginId}#FileLog: delete: description: Delete a FileLog plugin operationId: delete-filelog-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a FileLog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginFileLog#delete get: description: Get a FileLog plugin operationId: get-filelog-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/FileLogPlugin' description: FileLog plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a FileLog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginFileLog#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a FileLog plugin operationId: update-filelog-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/FileLogPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/FileLogPlugin' description: FileLog plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a FileLog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginFileLog#update /{workspace}/plugins/{PluginId}#ForwardProxy: delete: description: Delete a ForwardProxy plugin operationId: delete-forwardproxy-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a ForwardProxy plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginForwardProxy#delete get: description: Get a ForwardProxy plugin operationId: get-forwardproxy-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/ForwardProxyPlugin' description: ForwardProxy plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a ForwardProxy plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginForwardProxy#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a ForwardProxy plugin operationId: update-forwardproxy-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/ForwardProxyPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ForwardProxyPlugin' description: ForwardProxy plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a ForwardProxy plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginForwardProxy#update /{workspace}/plugins/{PluginId}#GraphqlProxyCacheAdvanced: delete: description: Delete a GraphqlProxyCacheAdvanced plugin operationId: delete-graphqlproxycacheadvanced-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a GraphqlProxyCacheAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginGraphqlProxyCacheAdvanced#delete get: description: Get a GraphqlProxyCacheAdvanced plugin operationId: get-graphqlproxycacheadvanced-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/GraphqlProxyCacheAdvancedPlugin' description: GraphqlProxyCacheAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a GraphqlProxyCacheAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginGraphqlProxyCacheAdvanced#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a GraphqlProxyCacheAdvanced plugin operationId: update-graphqlproxycacheadvanced-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/GraphqlProxyCacheAdvancedPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/GraphqlProxyCacheAdvancedPlugin' description: GraphqlProxyCacheAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a GraphqlProxyCacheAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginGraphqlProxyCacheAdvanced#update /{workspace}/plugins/{PluginId}#GraphqlRateLimitingAdvanced: delete: description: Delete a GraphqlRateLimitingAdvanced plugin operationId: delete-graphqlratelimitingadvanced-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a GraphqlRateLimitingAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginGraphqlRateLimitingAdvanced#delete get: description: Get a GraphqlRateLimitingAdvanced plugin operationId: get-graphqlratelimitingadvanced-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/GraphqlRateLimitingAdvancedPlugin' description: GraphqlRateLimitingAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a GraphqlRateLimitingAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginGraphqlRateLimitingAdvanced#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a GraphqlRateLimitingAdvanced plugin operationId: update-graphqlratelimitingadvanced-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/GraphqlRateLimitingAdvancedPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/GraphqlRateLimitingAdvancedPlugin' description: GraphqlRateLimitingAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a GraphqlRateLimitingAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginGraphqlRateLimitingAdvanced#update /{workspace}/plugins/{PluginId}#GrpcGateway: delete: description: Delete a GrpcGateway plugin operationId: delete-grpcgateway-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a GrpcGateway plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginGrpcGateway#delete get: description: Get a GrpcGateway plugin operationId: get-grpcgateway-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/GrpcGatewayPlugin' description: GrpcGateway plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a GrpcGateway plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginGrpcGateway#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a GrpcGateway plugin operationId: update-grpcgateway-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/GrpcGatewayPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/GrpcGatewayPlugin' description: GrpcGateway plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a GrpcGateway plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginGrpcGateway#update /{workspace}/plugins/{PluginId}#GrpcWeb: delete: description: Delete a GrpcWeb plugin operationId: delete-grpcweb-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a GrpcWeb plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginGrpcWeb#delete get: description: Get a GrpcWeb plugin operationId: get-grpcweb-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/GrpcWebPlugin' description: GrpcWeb plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a GrpcWeb plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginGrpcWeb#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a GrpcWeb plugin operationId: update-grpcweb-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/GrpcWebPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/GrpcWebPlugin' description: GrpcWeb plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a GrpcWeb plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginGrpcWeb#update /{workspace}/plugins/{PluginId}#HeaderCertAuth: delete: description: Delete a HeaderCertAuth plugin operationId: delete-headercertauth-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a HeaderCertAuth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginHeaderCertAuth#delete get: description: Get a HeaderCertAuth plugin operationId: get-headercertauth-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/HeaderCertAuthPlugin' description: HeaderCertAuth plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a HeaderCertAuth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginHeaderCertAuth#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a HeaderCertAuth plugin operationId: update-headercertauth-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/HeaderCertAuthPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/HeaderCertAuthPlugin' description: HeaderCertAuth plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a HeaderCertAuth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginHeaderCertAuth#update /{workspace}/plugins/{PluginId}#HmacAuth: delete: description: Delete a HmacAuth plugin operationId: delete-hmacauth-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a HmacAuth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginHmacAuth#delete get: description: Get a HmacAuth plugin operationId: get-hmacauth-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/HmacAuthPlugin' description: HmacAuth plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a HmacAuth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginHmacAuth#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a HmacAuth plugin operationId: update-hmacauth-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/HmacAuthPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/HmacAuthPlugin' description: HmacAuth plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a HmacAuth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginHmacAuth#update /{workspace}/plugins/{PluginId}#HttpLog: delete: description: Delete a HttpLog plugin operationId: delete-httplog-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a HttpLog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginHttpLog#delete get: description: Get a HttpLog plugin operationId: get-httplog-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/HttpLogPlugin' description: HttpLog plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a HttpLog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginHttpLog#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a HttpLog plugin operationId: update-httplog-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/HttpLogPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/HttpLogPlugin' description: HttpLog plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a HttpLog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginHttpLog#update /{workspace}/plugins/{PluginId}#InjectionProtection: delete: description: Delete a InjectionProtection plugin operationId: delete-injectionprotection-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a InjectionProtection plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginInjectionProtection#delete get: description: Get a InjectionProtection plugin operationId: get-injectionprotection-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/InjectionProtectionPlugin' description: InjectionProtection plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a InjectionProtection plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginInjectionProtection#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a InjectionProtection plugin operationId: update-injectionprotection-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/InjectionProtectionPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/InjectionProtectionPlugin' description: InjectionProtection plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a InjectionProtection plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginInjectionProtection#update /{workspace}/plugins/{PluginId}#IpRestriction: delete: description: Delete a IpRestriction plugin operationId: delete-iprestriction-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a IpRestriction plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginIpRestriction#delete get: description: Get a IpRestriction plugin operationId: get-iprestriction-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/IpRestrictionPlugin' description: IpRestriction plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a IpRestriction plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginIpRestriction#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a IpRestriction plugin operationId: update-iprestriction-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/IpRestrictionPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/IpRestrictionPlugin' description: IpRestriction plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a IpRestriction plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginIpRestriction#update /{workspace}/plugins/{PluginId}#Jq: delete: description: Delete a Jq plugin operationId: delete-jq-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Jq plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginJq#delete get: description: Get a Jq plugin operationId: get-jq-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/JqPlugin' description: Jq plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a Jq plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginJq#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a Jq plugin operationId: update-jq-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/JqPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/JqPlugin' description: Jq plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a Jq plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginJq#update /{workspace}/plugins/{PluginId}#JsonThreatProtection: delete: description: Delete a JsonThreatProtection plugin operationId: delete-jsonthreatprotection-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a JsonThreatProtection plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginJsonThreatProtection#delete get: description: Get a JsonThreatProtection plugin operationId: get-jsonthreatprotection-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/JsonThreatProtectionPlugin' description: JsonThreatProtection plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a JsonThreatProtection plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginJsonThreatProtection#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a JsonThreatProtection plugin operationId: update-jsonthreatprotection-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/JsonThreatProtectionPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/JsonThreatProtectionPlugin' description: JsonThreatProtection plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a JsonThreatProtection plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginJsonThreatProtection#update /{workspace}/plugins/{PluginId}#JweDecrypt: delete: description: Delete a JweDecrypt plugin operationId: delete-jwedecrypt-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a JweDecrypt plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginJweDecrypt#delete get: description: Get a JweDecrypt plugin operationId: get-jwedecrypt-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/JweDecryptPlugin' description: JweDecrypt plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a JweDecrypt plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginJweDecrypt#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a JweDecrypt plugin operationId: update-jwedecrypt-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/JweDecryptPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/JweDecryptPlugin' description: JweDecrypt plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a JweDecrypt plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginJweDecrypt#update /{workspace}/plugins/{PluginId}#Jwt: delete: description: Delete a Jwt plugin operationId: delete-jwt-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Jwt plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginJwt#delete get: description: Get a Jwt plugin operationId: get-jwt-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/JwtPlugin' description: Jwt plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a Jwt plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginJwt#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a Jwt plugin operationId: update-jwt-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/JwtPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/JwtPlugin' description: Jwt plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a Jwt plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginJwt#update /{workspace}/plugins/{PluginId}#JwtSigner: delete: description: Delete a JwtSigner plugin operationId: delete-jwtsigner-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a JwtSigner plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginJwtSigner#delete get: description: Get a JwtSigner plugin operationId: get-jwtsigner-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/JwtSignerPlugin' description: JwtSigner plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a JwtSigner plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginJwtSigner#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a JwtSigner plugin operationId: update-jwtsigner-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/JwtSignerPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/JwtSignerPlugin' description: JwtSigner plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a JwtSigner plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginJwtSigner#update /{workspace}/plugins/{PluginId}#KafkaConsume: delete: description: Delete a KafkaConsume plugin operationId: delete-kafkaconsume-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a KafkaConsume plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginKafkaConsume#delete get: description: Get a KafkaConsume plugin operationId: get-kafkaconsume-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/KafkaConsumePlugin' description: KafkaConsume plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a KafkaConsume plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginKafkaConsume#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a KafkaConsume plugin operationId: update-kafkaconsume-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/KafkaConsumePlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/KafkaConsumePlugin' description: KafkaConsume plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a KafkaConsume plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginKafkaConsume#update /{workspace}/plugins/{PluginId}#KafkaLog: delete: description: Delete a KafkaLog plugin operationId: delete-kafkalog-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a KafkaLog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginKafkaLog#delete get: description: Get a KafkaLog plugin operationId: get-kafkalog-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/KafkaLogPlugin' description: KafkaLog plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a KafkaLog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginKafkaLog#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a KafkaLog plugin operationId: update-kafkalog-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/KafkaLogPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/KafkaLogPlugin' description: KafkaLog plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a KafkaLog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginKafkaLog#update /{workspace}/plugins/{PluginId}#KafkaUpstream: delete: description: Delete a KafkaUpstream plugin operationId: delete-kafkaupstream-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a KafkaUpstream plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginKafkaUpstream#delete get: description: Get a KafkaUpstream plugin operationId: get-kafkaupstream-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/KafkaUpstreamPlugin' description: KafkaUpstream plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a KafkaUpstream plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginKafkaUpstream#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a KafkaUpstream plugin operationId: update-kafkaupstream-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/KafkaUpstreamPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/KafkaUpstreamPlugin' description: KafkaUpstream plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a KafkaUpstream plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginKafkaUpstream#update /{workspace}/plugins/{PluginId}#KeyAuth: delete: description: Delete a KeyAuth plugin operationId: delete-keyauth-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a KeyAuth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginKeyAuth#delete get: description: Get a KeyAuth plugin operationId: get-keyauth-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/KeyAuthPlugin' description: KeyAuth plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a KeyAuth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginKeyAuth#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a KeyAuth plugin operationId: update-keyauth-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/KeyAuthPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/KeyAuthPlugin' description: KeyAuth plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a KeyAuth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginKeyAuth#update /{workspace}/plugins/{PluginId}#KeyAuthEnc: delete: description: Delete a KeyAuthEnc plugin operationId: delete-keyauthenc-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a KeyAuthEnc plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginKeyAuthEnc#delete get: description: Get a KeyAuthEnc plugin operationId: get-keyauthenc-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/KeyAuthEncPlugin' description: KeyAuthEnc plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a KeyAuthEnc plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginKeyAuthEnc#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a KeyAuthEnc plugin operationId: update-keyauthenc-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/KeyAuthEncPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/KeyAuthEncPlugin' description: KeyAuthEnc plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a KeyAuthEnc plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginKeyAuthEnc#update /{workspace}/plugins/{PluginId}#LdapAuth: delete: description: Delete a LdapAuth plugin operationId: delete-ldapauth-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a LdapAuth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginLdapAuth#delete get: description: Get a LdapAuth plugin operationId: get-ldapauth-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/LdapAuthPlugin' description: LdapAuth plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a LdapAuth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginLdapAuth#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a LdapAuth plugin operationId: update-ldapauth-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/LdapAuthPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/LdapAuthPlugin' description: LdapAuth plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a LdapAuth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginLdapAuth#update /{workspace}/plugins/{PluginId}#LdapAuthAdvanced: delete: description: Delete a LdapAuthAdvanced plugin operationId: delete-ldapauthadvanced-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a LdapAuthAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginLdapAuthAdvanced#delete get: description: Get a LdapAuthAdvanced plugin operationId: get-ldapauthadvanced-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/LdapAuthAdvancedPlugin' description: LdapAuthAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a LdapAuthAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginLdapAuthAdvanced#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a LdapAuthAdvanced plugin operationId: update-ldapauthadvanced-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/LdapAuthAdvancedPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/LdapAuthAdvancedPlugin' description: LdapAuthAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a LdapAuthAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginLdapAuthAdvanced#update /{workspace}/plugins/{PluginId}#Loggly: delete: description: Delete a Loggly plugin operationId: delete-loggly-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Loggly plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginLoggly#delete get: description: Get a Loggly plugin operationId: get-loggly-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/LogglyPlugin' description: Loggly plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a Loggly plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginLoggly#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a Loggly plugin operationId: update-loggly-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/LogglyPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/LogglyPlugin' description: Loggly plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a Loggly plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginLoggly#update /{workspace}/plugins/{PluginId}#Mocking: delete: description: Delete a Mocking plugin operationId: delete-mocking-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Mocking plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginMocking#delete get: description: Get a Mocking plugin operationId: get-mocking-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/MockingPlugin' description: Mocking plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a Mocking plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginMocking#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a Mocking plugin operationId: update-mocking-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/MockingPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/MockingPlugin' description: Mocking plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a Mocking plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginMocking#update /{workspace}/plugins/{PluginId}#MtlsAuth: delete: description: Delete a MtlsAuth plugin operationId: delete-mtlsauth-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a MtlsAuth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginMtlsAuth#delete get: description: Get a MtlsAuth plugin operationId: get-mtlsauth-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/MtlsAuthPlugin' description: MtlsAuth plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a MtlsAuth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginMtlsAuth#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a MtlsAuth plugin operationId: update-mtlsauth-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/MtlsAuthPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/MtlsAuthPlugin' description: MtlsAuth plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a MtlsAuth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginMtlsAuth#update /{workspace}/plugins/{PluginId}#OasValidation: delete: description: Delete a OasValidation plugin operationId: delete-oasvalidation-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a OasValidation plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginOasValidation#delete get: description: Get a OasValidation plugin operationId: get-oasvalidation-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/OasValidationPlugin' description: OasValidation plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a OasValidation plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginOasValidation#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a OasValidation plugin operationId: update-oasvalidation-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/OasValidationPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/OasValidationPlugin' description: OasValidation plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a OasValidation plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginOasValidation#update /{workspace}/plugins/{PluginId}#Oauth2: delete: description: Delete a Oauth2 plugin operationId: delete-oauth2-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Oauth2 plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginOauth2#delete get: description: Get a Oauth2 plugin operationId: get-oauth2-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/Oauth2Plugin' description: Oauth2 plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a Oauth2 plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginOauth2#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a Oauth2 plugin operationId: update-oauth2-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/Oauth2Plugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Oauth2Plugin' description: Oauth2 plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a Oauth2 plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginOauth2#update /{workspace}/plugins/{PluginId}#Oauth2Introspection: delete: description: Delete a Oauth2Introspection plugin operationId: delete-oauth2introspection-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Oauth2Introspection plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginOauth2Introspection#delete get: description: Get a Oauth2Introspection plugin operationId: get-oauth2introspection-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/Oauth2IntrospectionPlugin' description: Oauth2Introspection plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a Oauth2Introspection plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginOauth2Introspection#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a Oauth2Introspection plugin operationId: update-oauth2introspection-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/Oauth2IntrospectionPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Oauth2IntrospectionPlugin' description: Oauth2Introspection plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a Oauth2Introspection plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginOauth2Introspection#update /{workspace}/plugins/{PluginId}#Opa: delete: description: Delete a Opa plugin operationId: delete-opa-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Opa plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginOpa#delete get: description: Get a Opa plugin operationId: get-opa-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/OpaPlugin' description: Opa plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a Opa plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginOpa#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a Opa plugin operationId: update-opa-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/OpaPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/OpaPlugin' description: Opa plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a Opa plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginOpa#update /{workspace}/plugins/{PluginId}#OpenidConnect: delete: description: Delete a OpenidConnect plugin operationId: delete-openidconnect-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a OpenidConnect plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginOpenidConnect#delete get: description: Get a OpenidConnect plugin operationId: get-openidconnect-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/OpenidConnectPlugin' description: OpenidConnect plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a OpenidConnect plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginOpenidConnect#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a OpenidConnect plugin operationId: update-openidconnect-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/OpenidConnectPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/OpenidConnectPlugin' description: OpenidConnect plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a OpenidConnect plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginOpenidConnect#update /{workspace}/plugins/{PluginId}#Opentelemetry: delete: description: Delete a Opentelemetry plugin operationId: delete-opentelemetry-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Opentelemetry plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginOpentelemetry#delete get: description: Get a Opentelemetry plugin operationId: get-opentelemetry-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/OpentelemetryPlugin' description: Opentelemetry plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a Opentelemetry plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginOpentelemetry#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a Opentelemetry plugin operationId: update-opentelemetry-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/OpentelemetryPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/OpentelemetryPlugin' description: Opentelemetry plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a Opentelemetry plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginOpentelemetry#update /{workspace}/plugins/{PluginId}#PostFunction: delete: description: Delete a PostFunction plugin operationId: delete-postfunction-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a PostFunction plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginPostFunction#delete get: description: Get a PostFunction plugin operationId: get-postfunction-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/PostFunctionPlugin' description: PostFunction plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a PostFunction plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginPostFunction#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a PostFunction plugin operationId: update-postfunction-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/PostFunctionPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/PostFunctionPlugin' description: PostFunction plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a PostFunction plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginPostFunction#update /{workspace}/plugins/{PluginId}#PreFunction: delete: description: Delete a PreFunction plugin operationId: delete-prefunction-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a PreFunction plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginPreFunction#delete get: description: Get a PreFunction plugin operationId: get-prefunction-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/PreFunctionPlugin' description: PreFunction plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a PreFunction plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginPreFunction#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a PreFunction plugin operationId: update-prefunction-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/PreFunctionPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/PreFunctionPlugin' description: PreFunction plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a PreFunction plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginPreFunction#update /{workspace}/plugins/{PluginId}#Prometheus: delete: description: Delete a Prometheus plugin operationId: delete-prometheus-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Prometheus plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginPrometheus#delete get: description: Get a Prometheus plugin operationId: get-prometheus-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/PrometheusPlugin' description: Prometheus plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a Prometheus plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginPrometheus#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a Prometheus plugin operationId: update-prometheus-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/PrometheusPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/PrometheusPlugin' description: Prometheus plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a Prometheus plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginPrometheus#update /{workspace}/plugins/{PluginId}#ProxyCache: delete: description: Delete a ProxyCache plugin operationId: delete-proxycache-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a ProxyCache plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginProxyCache#delete get: description: Get a ProxyCache plugin operationId: get-proxycache-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/ProxyCachePlugin' description: ProxyCache plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a ProxyCache plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginProxyCache#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a ProxyCache plugin operationId: update-proxycache-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/ProxyCachePlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ProxyCachePlugin' description: ProxyCache plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a ProxyCache plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginProxyCache#update /{workspace}/plugins/{PluginId}#ProxyCacheAdvanced: delete: description: Delete a ProxyCacheAdvanced plugin operationId: delete-proxycacheadvanced-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a ProxyCacheAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginProxyCacheAdvanced#delete get: description: Get a ProxyCacheAdvanced plugin operationId: get-proxycacheadvanced-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/ProxyCacheAdvancedPlugin' description: ProxyCacheAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a ProxyCacheAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginProxyCacheAdvanced#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a ProxyCacheAdvanced plugin operationId: update-proxycacheadvanced-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/ProxyCacheAdvancedPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ProxyCacheAdvancedPlugin' description: ProxyCacheAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a ProxyCacheAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginProxyCacheAdvanced#update /{workspace}/plugins/{PluginId}#RateLimiting: delete: description: Delete a RateLimiting plugin operationId: delete-ratelimiting-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a RateLimiting plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRateLimiting#delete get: description: Get a RateLimiting plugin operationId: get-ratelimiting-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/RateLimitingPlugin' description: RateLimiting plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a RateLimiting plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRateLimiting#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a RateLimiting plugin operationId: update-ratelimiting-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/RateLimitingPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/RateLimitingPlugin' description: RateLimiting plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a RateLimiting plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRateLimiting#update /{workspace}/plugins/{PluginId}#RateLimitingAdvanced: delete: description: Delete a RateLimitingAdvanced plugin operationId: delete-ratelimitingadvanced-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a RateLimitingAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRateLimitingAdvanced#delete get: description: Get a RateLimitingAdvanced plugin operationId: get-ratelimitingadvanced-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/RateLimitingAdvancedPlugin' description: RateLimitingAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a RateLimitingAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRateLimitingAdvanced#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a RateLimitingAdvanced plugin operationId: update-ratelimitingadvanced-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/RateLimitingAdvancedPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/RateLimitingAdvancedPlugin' description: RateLimitingAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a RateLimitingAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRateLimitingAdvanced#update /{workspace}/plugins/{PluginId}#Redirect: delete: description: Delete a Redirect plugin operationId: delete-redirect-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Redirect plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRedirect#delete get: description: Get a Redirect plugin operationId: get-redirect-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/RedirectPlugin' description: Redirect plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a Redirect plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRedirect#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a Redirect plugin operationId: update-redirect-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/RedirectPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/RedirectPlugin' description: Redirect plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a Redirect plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRedirect#update /{workspace}/plugins/{PluginId}#RequestCallout: delete: description: Delete a RequestCallout plugin operationId: delete-requestcallout-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a RequestCallout plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRequestCallout#delete get: description: Get a RequestCallout plugin operationId: get-requestcallout-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/RequestCalloutPlugin' description: RequestCallout plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a RequestCallout plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRequestCallout#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a RequestCallout plugin operationId: update-requestcallout-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/RequestCalloutPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/RequestCalloutPlugin' description: RequestCallout plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a RequestCallout plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRequestCallout#update /{workspace}/plugins/{PluginId}#RequestSizeLimiting: delete: description: Delete a RequestSizeLimiting plugin operationId: delete-requestsizelimiting-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a RequestSizeLimiting plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRequestSizeLimiting#delete get: description: Get a RequestSizeLimiting plugin operationId: get-requestsizelimiting-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/RequestSizeLimitingPlugin' description: RequestSizeLimiting plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a RequestSizeLimiting plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRequestSizeLimiting#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a RequestSizeLimiting plugin operationId: update-requestsizelimiting-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/RequestSizeLimitingPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/RequestSizeLimitingPlugin' description: RequestSizeLimiting plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a RequestSizeLimiting plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRequestSizeLimiting#update /{workspace}/plugins/{PluginId}#RequestTermination: delete: description: Delete a RequestTermination plugin operationId: delete-requesttermination-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a RequestTermination plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRequestTermination#delete get: description: Get a RequestTermination plugin operationId: get-requesttermination-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/RequestTerminationPlugin' description: RequestTermination plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a RequestTermination plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRequestTermination#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a RequestTermination plugin operationId: update-requesttermination-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/RequestTerminationPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/RequestTerminationPlugin' description: RequestTermination plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a RequestTermination plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRequestTermination#update /{workspace}/plugins/{PluginId}#RequestTransformer: delete: description: Delete a RequestTransformer plugin operationId: delete-requesttransformer-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a RequestTransformer plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRequestTransformer#delete get: description: Get a RequestTransformer plugin operationId: get-requesttransformer-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/RequestTransformerPlugin' description: RequestTransformer plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a RequestTransformer plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRequestTransformer#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a RequestTransformer plugin operationId: update-requesttransformer-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/RequestTransformerPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/RequestTransformerPlugin' description: RequestTransformer plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a RequestTransformer plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRequestTransformer#update /{workspace}/plugins/{PluginId}#RequestTransformerAdvanced: delete: description: Delete a RequestTransformerAdvanced plugin operationId: delete-requesttransformeradvanced-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a RequestTransformerAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRequestTransformerAdvanced#delete get: description: Get a RequestTransformerAdvanced plugin operationId: get-requesttransformeradvanced-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/RequestTransformerAdvancedPlugin' description: RequestTransformerAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a RequestTransformerAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRequestTransformerAdvanced#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a RequestTransformerAdvanced plugin operationId: update-requesttransformeradvanced-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/RequestTransformerAdvancedPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/RequestTransformerAdvancedPlugin' description: RequestTransformerAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a RequestTransformerAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRequestTransformerAdvanced#update /{workspace}/plugins/{PluginId}#RequestValidator: delete: description: Delete a RequestValidator plugin operationId: delete-requestvalidator-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a RequestValidator plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRequestValidator#delete get: description: Get a RequestValidator plugin operationId: get-requestvalidator-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/RequestValidatorPlugin' description: RequestValidator plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a RequestValidator plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRequestValidator#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a RequestValidator plugin operationId: update-requestvalidator-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/RequestValidatorPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/RequestValidatorPlugin' description: RequestValidator plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a RequestValidator plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRequestValidator#update /{workspace}/plugins/{PluginId}#ResponseRatelimiting: delete: description: Delete a ResponseRatelimiting plugin operationId: delete-responseratelimiting-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a ResponseRatelimiting plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginResponseRatelimiting#delete get: description: Get a ResponseRatelimiting plugin operationId: get-responseratelimiting-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/ResponseRatelimitingPlugin' description: ResponseRatelimiting plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a ResponseRatelimiting plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginResponseRatelimiting#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a ResponseRatelimiting plugin operationId: update-responseratelimiting-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/ResponseRatelimitingPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ResponseRatelimitingPlugin' description: ResponseRatelimiting plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a ResponseRatelimiting plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginResponseRatelimiting#update /{workspace}/plugins/{PluginId}#ResponseTransformer: delete: description: Delete a ResponseTransformer plugin operationId: delete-responsetransformer-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a ResponseTransformer plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginResponseTransformer#delete get: description: Get a ResponseTransformer plugin operationId: get-responsetransformer-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/ResponseTransformerPlugin' description: ResponseTransformer plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a ResponseTransformer plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginResponseTransformer#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a ResponseTransformer plugin operationId: update-responsetransformer-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/ResponseTransformerPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ResponseTransformerPlugin' description: ResponseTransformer plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a ResponseTransformer plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginResponseTransformer#update /{workspace}/plugins/{PluginId}#ResponseTransformerAdvanced: delete: description: Delete a ResponseTransformerAdvanced plugin operationId: delete-responsetransformeradvanced-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a ResponseTransformerAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginResponseTransformerAdvanced#delete get: description: Get a ResponseTransformerAdvanced plugin operationId: get-responsetransformeradvanced-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/ResponseTransformerAdvancedPlugin' description: ResponseTransformerAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a ResponseTransformerAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginResponseTransformerAdvanced#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a ResponseTransformerAdvanced plugin operationId: update-responsetransformeradvanced-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/ResponseTransformerAdvancedPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ResponseTransformerAdvancedPlugin' description: ResponseTransformerAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a ResponseTransformerAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginResponseTransformerAdvanced#update /{workspace}/plugins/{PluginId}#RouteByHeader: delete: description: Delete a RouteByHeader plugin operationId: delete-routebyheader-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a RouteByHeader plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRouteByHeader#delete get: description: Get a RouteByHeader plugin operationId: get-routebyheader-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/RouteByHeaderPlugin' description: RouteByHeader plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a RouteByHeader plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRouteByHeader#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a RouteByHeader plugin operationId: update-routebyheader-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/RouteByHeaderPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/RouteByHeaderPlugin' description: RouteByHeader plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a RouteByHeader plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRouteByHeader#update /{workspace}/plugins/{PluginId}#RouteTransformerAdvanced: delete: description: Delete a RouteTransformerAdvanced plugin operationId: delete-routetransformeradvanced-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a RouteTransformerAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRouteTransformerAdvanced#delete get: description: Get a RouteTransformerAdvanced plugin operationId: get-routetransformeradvanced-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/RouteTransformerAdvancedPlugin' description: RouteTransformerAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a RouteTransformerAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRouteTransformerAdvanced#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a RouteTransformerAdvanced plugin operationId: update-routetransformeradvanced-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/RouteTransformerAdvancedPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/RouteTransformerAdvancedPlugin' description: RouteTransformerAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a RouteTransformerAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginRouteTransformerAdvanced#update /{workspace}/plugins/{PluginId}#Saml: delete: description: Delete a Saml plugin operationId: delete-saml-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Saml plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginSaml#delete get: description: Get a Saml plugin operationId: get-saml-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/SamlPlugin' description: Saml plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a Saml plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginSaml#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a Saml plugin operationId: update-saml-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/SamlPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/SamlPlugin' description: Saml plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a Saml plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginSaml#update /{workspace}/plugins/{PluginId}#ServiceProtection: delete: description: Delete a ServiceProtection plugin operationId: delete-serviceprotection-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a ServiceProtection plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginServiceProtection#delete get: description: Get a ServiceProtection plugin operationId: get-serviceprotection-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/ServiceProtectionPlugin' description: ServiceProtection plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a ServiceProtection plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginServiceProtection#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a ServiceProtection plugin operationId: update-serviceprotection-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/ServiceProtectionPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ServiceProtectionPlugin' description: ServiceProtection plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a ServiceProtection plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginServiceProtection#update /{workspace}/plugins/{PluginId}#Session: delete: description: Delete a Session plugin operationId: delete-session-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Session plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginSession#delete get: description: Get a Session plugin operationId: get-session-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/SessionPlugin' description: Session plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a Session plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginSession#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a Session plugin operationId: update-session-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/SessionPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/SessionPlugin' description: Session plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a Session plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginSession#update /{workspace}/plugins/{PluginId}#SolaceConsume: delete: description: Delete a SolaceConsume plugin operationId: delete-solaceconsume-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a SolaceConsume plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginSolaceConsume#delete get: description: Get a SolaceConsume plugin operationId: get-solaceconsume-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/SolaceConsumePlugin' description: SolaceConsume plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a SolaceConsume plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginSolaceConsume#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a SolaceConsume plugin operationId: update-solaceconsume-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/SolaceConsumePlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/SolaceConsumePlugin' description: SolaceConsume plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a SolaceConsume plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginSolaceConsume#update /{workspace}/plugins/{PluginId}#SolaceLog: delete: description: Delete a SolaceLog plugin operationId: delete-solacelog-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a SolaceLog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginSolaceLog#delete get: description: Get a SolaceLog plugin operationId: get-solacelog-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/SolaceLogPlugin' description: SolaceLog plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a SolaceLog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginSolaceLog#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a SolaceLog plugin operationId: update-solacelog-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/SolaceLogPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/SolaceLogPlugin' description: SolaceLog plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a SolaceLog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginSolaceLog#update /{workspace}/plugins/{PluginId}#SolaceUpstream: delete: description: Delete a SolaceUpstream plugin operationId: delete-solaceupstream-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a SolaceUpstream plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginSolaceUpstream#delete get: description: Get a SolaceUpstream plugin operationId: get-solaceupstream-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/SolaceUpstreamPlugin' description: SolaceUpstream plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a SolaceUpstream plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginSolaceUpstream#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a SolaceUpstream plugin operationId: update-solaceupstream-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/SolaceUpstreamPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/SolaceUpstreamPlugin' description: SolaceUpstream plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a SolaceUpstream plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginSolaceUpstream#update /{workspace}/plugins/{PluginId}#StandardWebhooks: delete: description: Delete a StandardWebhooks plugin operationId: delete-standardwebhooks-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a StandardWebhooks plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginStandardWebhooks#delete get: description: Get a StandardWebhooks plugin operationId: get-standardwebhooks-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/StandardWebhooksPlugin' description: StandardWebhooks plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a StandardWebhooks plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginStandardWebhooks#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a StandardWebhooks plugin operationId: update-standardwebhooks-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/StandardWebhooksPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/StandardWebhooksPlugin' description: StandardWebhooks plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a StandardWebhooks plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginStandardWebhooks#update /{workspace}/plugins/{PluginId}#Statsd: delete: description: Delete a Statsd plugin operationId: delete-statsd-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Statsd plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginStatsd#delete get: description: Get a Statsd plugin operationId: get-statsd-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/StatsdPlugin' description: Statsd plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a Statsd plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginStatsd#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a Statsd plugin operationId: update-statsd-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/StatsdPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/StatsdPlugin' description: Statsd plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a Statsd plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginStatsd#update /{workspace}/plugins/{PluginId}#StatsdAdvanced: delete: description: Delete a StatsdAdvanced plugin operationId: delete-statsdadvanced-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a StatsdAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginStatsdAdvanced#delete get: description: Get a StatsdAdvanced plugin operationId: get-statsdadvanced-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/StatsdAdvancedPlugin' description: StatsdAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a StatsdAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginStatsdAdvanced#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a StatsdAdvanced plugin operationId: update-statsdadvanced-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/StatsdAdvancedPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/StatsdAdvancedPlugin' description: StatsdAdvanced plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a StatsdAdvanced plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginStatsdAdvanced#update /{workspace}/plugins/{PluginId}#Syslog: delete: description: Delete a Syslog plugin operationId: delete-syslog-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Syslog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginSyslog#delete get: description: Get a Syslog plugin operationId: get-syslog-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/SyslogPlugin' description: Syslog plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a Syslog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginSyslog#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a Syslog plugin operationId: update-syslog-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/SyslogPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/SyslogPlugin' description: Syslog plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a Syslog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginSyslog#update /{workspace}/plugins/{PluginId}#TcpLog: delete: description: Delete a TcpLog plugin operationId: delete-tcplog-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a TcpLog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginTcpLog#delete get: description: Get a TcpLog plugin operationId: get-tcplog-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/TcpLogPlugin' description: TcpLog plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a TcpLog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginTcpLog#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a TcpLog plugin operationId: update-tcplog-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/TcpLogPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/TcpLogPlugin' description: TcpLog plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a TcpLog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginTcpLog#update /{workspace}/plugins/{PluginId}#TlsHandshakeModifier: delete: description: Delete a TlsHandshakeModifier plugin operationId: delete-tlshandshakemodifier-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a TlsHandshakeModifier plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginTlsHandshakeModifier#delete get: description: Get a TlsHandshakeModifier plugin operationId: get-tlshandshakemodifier-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/TlsHandshakeModifierPlugin' description: TlsHandshakeModifier plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a TlsHandshakeModifier plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginTlsHandshakeModifier#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a TlsHandshakeModifier plugin operationId: update-tlshandshakemodifier-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/TlsHandshakeModifierPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/TlsHandshakeModifierPlugin' description: TlsHandshakeModifier plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a TlsHandshakeModifier plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginTlsHandshakeModifier#update /{workspace}/plugins/{PluginId}#TlsMetadataHeaders: delete: description: Delete a TlsMetadataHeaders plugin operationId: delete-tlsmetadataheaders-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a TlsMetadataHeaders plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginTlsMetadataHeaders#delete get: description: Get a TlsMetadataHeaders plugin operationId: get-tlsmetadataheaders-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/TlsMetadataHeadersPlugin' description: TlsMetadataHeaders plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a TlsMetadataHeaders plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginTlsMetadataHeaders#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a TlsMetadataHeaders plugin operationId: update-tlsmetadataheaders-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/TlsMetadataHeadersPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/TlsMetadataHeadersPlugin' description: TlsMetadataHeaders plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a TlsMetadataHeaders plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginTlsMetadataHeaders#update /{workspace}/plugins/{PluginId}#UdpLog: delete: description: Delete a UdpLog plugin operationId: delete-udplog-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a UdpLog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginUdpLog#delete get: description: Get a UdpLog plugin operationId: get-udplog-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/UdpLogPlugin' description: UdpLog plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a UdpLog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginUdpLog#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a UdpLog plugin operationId: update-udplog-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/UdpLogPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UdpLogPlugin' description: UdpLog plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a UdpLog plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginUdpLog#update /{workspace}/plugins/{PluginId}#UpstreamOauth: delete: description: Delete a UpstreamOauth plugin operationId: delete-upstreamoauth-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a UpstreamOauth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginUpstreamOauth#delete get: description: Get a UpstreamOauth plugin operationId: get-upstreamoauth-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/UpstreamOauthPlugin' description: UpstreamOauth plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a UpstreamOauth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginUpstreamOauth#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a UpstreamOauth plugin operationId: update-upstreamoauth-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/UpstreamOauthPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UpstreamOauthPlugin' description: UpstreamOauth plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a UpstreamOauth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginUpstreamOauth#update /{workspace}/plugins/{PluginId}#UpstreamTimeout: delete: description: Delete a UpstreamTimeout plugin operationId: delete-upstreamtimeout-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a UpstreamTimeout plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginUpstreamTimeout#delete get: description: Get a UpstreamTimeout plugin operationId: get-upstreamtimeout-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/UpstreamTimeoutPlugin' description: UpstreamTimeout plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a UpstreamTimeout plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginUpstreamTimeout#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a UpstreamTimeout plugin operationId: update-upstreamtimeout-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/UpstreamTimeoutPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/UpstreamTimeoutPlugin' description: UpstreamTimeout plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a UpstreamTimeout plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginUpstreamTimeout#update /{workspace}/plugins/{PluginId}#VaultAuth: delete: description: Delete a VaultAuth plugin operationId: delete-vaultauth-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a VaultAuth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginVaultAuth#delete get: description: Get a VaultAuth plugin operationId: get-vaultauth-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/VaultAuthPlugin' description: VaultAuth plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a VaultAuth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginVaultAuth#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a VaultAuth plugin operationId: update-vaultauth-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/VaultAuthPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/VaultAuthPlugin' description: VaultAuth plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a VaultAuth plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginVaultAuth#update /{workspace}/plugins/{PluginId}#WebsocketSizeLimit: delete: description: Delete a WebsocketSizeLimit plugin operationId: delete-websocketsizelimit-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a WebsocketSizeLimit plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginWebsocketSizeLimit#delete get: description: Get a WebsocketSizeLimit plugin operationId: get-websocketsizelimit-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/WebsocketSizeLimitPlugin' description: WebsocketSizeLimit plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a WebsocketSizeLimit plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginWebsocketSizeLimit#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a WebsocketSizeLimit plugin operationId: update-websocketsizelimit-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/WebsocketSizeLimitPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/WebsocketSizeLimitPlugin' description: WebsocketSizeLimit plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a WebsocketSizeLimit plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginWebsocketSizeLimit#update /{workspace}/plugins/{PluginId}#WebsocketValidator: delete: description: Delete a WebsocketValidator plugin operationId: delete-websocketvalidator-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a WebsocketValidator plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginWebsocketValidator#delete get: description: Get a WebsocketValidator plugin operationId: get-websocketvalidator-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/WebsocketValidatorPlugin' description: WebsocketValidator plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a WebsocketValidator plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginWebsocketValidator#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a WebsocketValidator plugin operationId: update-websocketvalidator-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/WebsocketValidatorPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/WebsocketValidatorPlugin' description: WebsocketValidator plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a WebsocketValidator plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginWebsocketValidator#update /{workspace}/plugins/{PluginId}#XmlThreatProtection: delete: description: Delete a XmlThreatProtection plugin operationId: delete-xmlthreatprotection-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a XmlThreatProtection plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginXmlThreatProtection#delete get: description: Get a XmlThreatProtection plugin operationId: get-xmlthreatprotection-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/XmlThreatProtectionPlugin' description: XmlThreatProtection plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a XmlThreatProtection plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginXmlThreatProtection#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a XmlThreatProtection plugin operationId: update-xmlthreatprotection-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/XmlThreatProtectionPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/XmlThreatProtectionPlugin' description: XmlThreatProtection plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a XmlThreatProtection plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginXmlThreatProtection#update /{workspace}/plugins/{PluginId}#Zipkin: delete: description: Delete a Zipkin plugin operationId: delete-zipkin-plugin responses: '204': description: Successfully deleted Plugin or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Zipkin plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginZipkin#delete get: description: Get a Zipkin plugin operationId: get-zipkin-plugin responses: '200': content: application/json: schema: $ref: '#/components/schemas/ZipkinPlugin' description: Zipkin plugin '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Get a Zipkin plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginZipkin#read parameters: - $ref: '#/components/parameters/PluginId' - $ref: '#/components/parameters/Workspace' put: description: Update a Zipkin plugin operationId: update-zipkin-plugin requestBody: content: application/json: schema: $ref: '#/components/schemas/ZipkinPlugin' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ZipkinPlugin' description: Zipkin plugin '401': $ref: '#/components/responses/HTTP401Error' summary: Update a Zipkin plugin tags: - Plugins x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: PluginZipkin#update /{workspace}/routes: get: description: List all Routes operationId: list-route parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/Route' type: array next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' type: object description: A successful response listing Routes '401': $ref: '#/components/responses/HTTP401Error' summary: List all Routes tags: - Routes post: description: Create a new Route operationId: create-route parameters: - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/RouteJson' description: Description of the new Route for creation required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/RouteJson' description: Successfully created Route '401': $ref: '#/components/responses/HTTP401Error' summary: Create a new Route tags: - Routes x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Route#create /{workspace}/routes#RouteExpression: post: description: Create a new Route operationId: create-route-RouteExpression parameters: - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/RouteExpression' description: Description of the new Route for creation required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/RouteExpression' description: Successfully created Route '401': $ref: '#/components/responses/HTTP401Error' summary: Create a new Route tags: - Routes x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: RouteExpression#create /{workspace}/routes/{RouteIdOrName}: delete: description: Delete a Route operationId: delete-route parameters: - $ref: '#/components/parameters/RouteIdOrName' - $ref: '#/components/parameters/Workspace' responses: '204': description: Successfully deleted Route or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Route tags: - Routes x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Route#delete get: description: Get a Route using ID or name. operationId: get-route parameters: - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: $ref: '#/components/schemas/RouteJson' description: Successfully fetched Route '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Fetch a Route tags: - Routes x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Route#read parameters: - $ref: '#/components/parameters/RouteIdOrName' put: description: Create or Update Route using ID or name. operationId: upsert-route parameters: - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/RouteJson' description: Description of the Route required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/RouteJson' description: Successfully upserted Route '401': $ref: '#/components/responses/HTTP401Error' summary: Upsert a Route tags: - Routes x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Route#update /{workspace}/routes/{RouteIdOrName}#RouteExpression: delete: description: Delete a Route operationId: delete-route-RouteExpression parameters: - $ref: '#/components/parameters/RouteIdOrName' - $ref: '#/components/parameters/Workspace' responses: '204': description: Successfully deleted Route or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Route tags: - Routes x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: RouteExpression#delete get: description: Get a Route using ID or name. operationId: get-route-RouteExpression parameters: - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: $ref: '#/components/schemas/RouteExpression' description: Successfully fetched Route '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Fetch a Route tags: - Routes x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: RouteExpression#read parameters: - $ref: '#/components/parameters/RouteIdOrName' put: description: Create or Update Route using ID or name. operationId: upsert-route-RouteExpression parameters: - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/RouteExpression' description: Description of the Route required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/RouteExpression' description: Successfully upserted Route '401': $ref: '#/components/responses/HTTP401Error' summary: Upsert a Route tags: - Routes x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: RouteExpression#update /{workspace}/services: get: description: List all Services operationId: list-service parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/Service' type: array next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' type: object description: A successful response listing Services '401': $ref: '#/components/responses/HTTP401Error' summary: List all Services tags: - Services post: description: Create a new Service operationId: create-service parameters: - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/Service' description: Description of the new Service for creation required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/Service' description: Successfully created Service '401': $ref: '#/components/responses/HTTP401Error' summary: Create a new Service tags: - Services x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Service#create /{workspace}/services/{ServiceIdOrName}: delete: description: Delete a Service operationId: delete-service parameters: - $ref: '#/components/parameters/ServiceIdOrName' - $ref: '#/components/parameters/Workspace' responses: '204': description: Successfully deleted Service or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Service tags: - Services x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Service#delete get: description: Get a Service using ID or name. operationId: get-service parameters: - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: $ref: '#/components/schemas/Service' description: Successfully fetched Service '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Fetch a Service tags: - Services x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Service#read parameters: - $ref: '#/components/parameters/ServiceIdOrName' put: description: Create or Update Service using ID or name. operationId: upsert-service parameters: - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/Service' description: Description of the Service required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Service' description: Successfully upserted Service '401': $ref: '#/components/responses/HTTP401Error' summary: Upsert a Service tags: - Services x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Service#update /{workspace}/snis: get: description: List all SNIs operationId: list-sni parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/SNI' type: array next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' type: object description: A successful response listing SNIs '401': $ref: '#/components/responses/HTTP401Error' summary: List all SNIs tags: - SNIs post: description: Create a new SNI operationId: create-sni parameters: - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/SNI' description: Description of the new SNI for creation required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/SNI' description: Successfully created SNI '401': $ref: '#/components/responses/HTTP401Error' summary: Create a new SNI tags: - SNIs x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: SNI#create /{workspace}/snis/{SNIIdOrName}: delete: description: Delete an SNI operationId: delete-sni parameters: - $ref: '#/components/parameters/SNIIdOrName' - $ref: '#/components/parameters/Workspace' responses: '204': description: Successfully deleted SNI or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete an SNI tags: - SNIs x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: SNI#delete get: description: Get an SNI using ID or name. operationId: get-sni parameters: - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: $ref: '#/components/schemas/SNI' description: Successfully fetched SNI '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Fetch an SNI tags: - SNIs x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: SNI#read parameters: - $ref: '#/components/parameters/SNIIdOrName' put: description: Create or Update SNI using ID or name. operationId: upsert-sni parameters: - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/SNI' description: Description of the SNI required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/SNI' description: Successfully upserted SNI '401': $ref: '#/components/responses/HTTP401Error' summary: Upsert a SNI tags: - SNIs x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: SNI#update /{workspace}/upstreams: get: description: List all Upstreams operationId: list-upstream parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/Upstream' type: array next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' type: object description: A successful response listing Upstreams '401': $ref: '#/components/responses/HTTP401Error' summary: List all Upstreams tags: - Upstreams post: description: Create a new Upstream operationId: create-upstream parameters: - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/Upstream' description: Description of the new Upstream for creation required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/Upstream' description: Successfully created Upstream '401': $ref: '#/components/responses/HTTP401Error' summary: Create a new Upstream tags: - Upstreams x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Upstream#create /{workspace}/upstreams/{UpstreamIdForTarget}/targets: get: description: List all Targets associated with an Upstream operationId: list-target-with-upstream parameters: - $ref: '#/components/parameters/UpstreamIdForTarget' - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/Target' type: array next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' type: object description: A successful response listing Targets summary: List all Targets associated with an Upstream tags: - Targets post: description: Create a new Target associated with an Upstream operationId: create-target-with-upstream parameters: - $ref: '#/components/parameters/UpstreamIdForTarget' - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/TargetWithoutParents' description: Description of new Target for creation required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/Target' description: Successfully created Target summary: Create a new Target associated with an Upstream tags: - Targets x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Target#create /{workspace}/upstreams/{UpstreamIdOrName}: delete: description: Delete an Upstream operationId: delete-upstream parameters: - $ref: '#/components/parameters/UpstreamIdOrName' - $ref: '#/components/parameters/Workspace' responses: '204': description: Successfully deleted Upstream or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete an Upstream tags: - Upstreams x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Upstream#delete get: description: Get an Upstream using ID or name. operationId: get-upstream parameters: - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: $ref: '#/components/schemas/Upstream' description: Successfully fetched Upstream '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Fetch an Upstream tags: - Upstreams x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Upstream#read parameters: - $ref: '#/components/parameters/UpstreamIdOrName' put: description: Create or Update Upstream using ID or name. operationId: upsert-upstream parameters: - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/Upstream' description: Description of the Upstream required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Upstream' description: Successfully upserted Upstream '401': $ref: '#/components/responses/HTTP401Error' summary: Upsert a Upstream tags: - Upstreams x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Upstream#update /{workspace}/vaults: get: description: List all Vaults operationId: list-vault parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/Vault' type: array next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' type: object description: A successful response listing Vaults '401': $ref: '#/components/responses/HTTP401Error' summary: List all Vaults tags: - Vaults post: description: Create a new Vault operationId: create-vault parameters: - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/Vault' description: Description of the new Vault for creation required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/Vault' description: Successfully created Vault '401': $ref: '#/components/responses/HTTP401Error' summary: Create a new Vault tags: - Vaults x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Vault#create /{workspace}/vaults/{VaultIdOrPrefix}: delete: description: Delete a Vault operationId: delete-vault parameters: - $ref: '#/components/parameters/VaultIdOrPrefix' - $ref: '#/components/parameters/Workspace' responses: '204': description: Successfully deleted Vault or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Vault tags: - Vaults x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Vault#delete get: description: Get a Vault using ID or prefix. operationId: get-vault parameters: - $ref: '#/components/parameters/Workspace' responses: '200': content: application/json: schema: $ref: '#/components/schemas/Vault' description: Successfully fetched Vault '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Fetch a Vault tags: - Vaults x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Vault#read parameters: - $ref: '#/components/parameters/VaultIdOrPrefix' put: description: Create or Update Vault using ID or prefix. operationId: upsert-vault parameters: - $ref: '#/components/parameters/Workspace' requestBody: content: application/json: schema: $ref: '#/components/schemas/Vault' description: Description of the Vault required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Vault' description: Successfully upserted Vault '401': $ref: '#/components/responses/HTTP401Error' summary: Upsert a Vault tags: - Vaults x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Vault#update /ca_certificates: get: description: List all CA Certificates operationId: list-ca_certificate parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/CACertificate' type: array next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' type: object description: A successful response listing CA Certificates '401': $ref: '#/components/responses/HTTP401Error' summary: List all CA Certificates tags: - CA Certificates post: description: Create a new CA Certificate operationId: create-ca_certificate requestBody: content: application/json: schema: $ref: '#/components/schemas/CACertificate' description: Description of the new CA Certificate for creation required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/CACertificate' description: Successfully created CA Certificate '401': $ref: '#/components/responses/HTTP401Error' summary: Create a new CA Certificate tags: - CA Certificates x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: CACertificate#create /ca_certificates/{CACertificateId}: delete: description: Delete a CA Certificate operationId: delete-ca_certificate parameters: - $ref: '#/components/parameters/CACertificateId' responses: '204': description: Successfully deleted CA Certificate or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a CA Certificate tags: - CA Certificates x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: CACertificate#delete get: description: Get a CA Certificate using ID. operationId: get-ca_certificate responses: '200': content: application/json: schema: $ref: '#/components/schemas/CACertificate' description: Successfully fetched CA Certificate '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Fetch a CA Certificate tags: - CA Certificates x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: CACertificate#read parameters: - $ref: '#/components/parameters/CACertificateId' put: description: Create or Update CA Certificate using ID. operationId: upsert-ca_certificate requestBody: content: application/json: schema: $ref: '#/components/schemas/CACertificate' description: Description of the CA Certificate required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/CACertificate' description: Successfully upserted CA Certificate '401': $ref: '#/components/responses/HTTP401Error' summary: Upsert a CA Certificate tags: - CA Certificates x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: CACertificate#update /schemas/{entityName}/validate: parameters: - description: The name of the entity in: path name: entityName required: true schema: type: string post: description: Validate schema for an entity operationId: validate-entity-schema requestBody: content: application/json: schema: additionalProperties: true type: object description: Request body of a Koko entity to validate against its schema responses: '200': $ref: '#/components/responses/ValidateEntityResponse' summary: Validate entity schema tags: - Schemas /schemas/partials/{partialType}: get: description: Get the schema for a partial operationId: fetch-partial-schema responses: '200': $ref: '#/components/responses/GetPartialSchemaResponse' summary: Fetch partial schema tags: - Schemas parameters: - description: The type of a partial in: path name: partialType required: true schema: type: string /schemas/plugins/{pluginName}: get: description: Get the schema for a plugin operationId: fetch-plugin-schema responses: '200': $ref: '#/components/responses/GetPluginSchemaResponse' summary: Fetch plugin schema tags: - Plugins parameters: - description: The name of the plugin in: path name: pluginName required: true schema: type: string /workspaces: get: description: List all Workspaces operationId: list-workspace parameters: - $ref: '#/components/parameters/PaginationSize' - $ref: '#/components/parameters/PaginationOffset' - $ref: '#/components/parameters/PaginationTagsFilter' responses: '200': content: application/json: schema: properties: data: items: $ref: '#/components/schemas/Workspace' type: array next: $ref: '#/components/schemas/PaginationNextResponse' offset: $ref: '#/components/schemas/PaginationOffsetResponse' type: object description: A successful response listing Workspaces '401': $ref: '#/components/responses/HTTP401Error' summary: List all Workspaces tags: - Workspaces post: description: Create a new Workspace operationId: create-workspace requestBody: content: application/json: schema: $ref: '#/components/schemas/Workspace' description: Description of the new Workspace for creation required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/Workspace' description: Successfully created Workspace '401': $ref: '#/components/responses/HTTP401Error' summary: Create a new Workspace tags: - Workspaces x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Workspace#create /workspaces/{WorkspaceIdOrName}: delete: description: Delete a Workspace operationId: delete-workspace parameters: - $ref: '#/components/parameters/WorkspaceIdOrName' responses: '204': description: Successfully deleted Workspace or the resource didn't exist '401': $ref: '#/components/responses/HTTP401Error' summary: Delete a Workspace tags: - Workspaces x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Workspace#delete get: description: Get a Workspace using ID or name. operationId: get-workspace responses: '200': content: application/json: schema: $ref: '#/components/schemas/Workspace' description: Successfully fetched Workspace '401': $ref: '#/components/responses/HTTP401Error' '404': description: Resource does not exist summary: Fetch a Workspace tags: - Workspaces x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Workspace#read parameters: - $ref: '#/components/parameters/WorkspaceIdOrName' put: description: Create or Update Workspace using ID or name. operationId: upsert-workspace requestBody: content: application/json: schema: $ref: '#/components/schemas/Workspace' description: Description of the Workspace required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Workspace' description: Successfully upserted Workspace '401': $ref: '#/components/responses/HTTP401Error' summary: Upsert a Workspace tags: - Workspaces x-speakeasy-entity-operation: terraform-datasource: null terraform-resource: Workspace#update security: - adminToken: [] 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 tags: - name: ACLs - name: API-keys - name: Basic-auth credentials - description: >- A CA certificate object represents a trusted certificate authority. These objects are used by Kong Gateway to verify the validity of a client or server certificate. name: CA Certificates - description: > A certificate object represents a public certificate, and can be optionally paired with the corresponding private key. These objects are used by Kong Gateway to handle SSL/TLS termination for encrypted requests, or for use as a trusted CA store when validating peer certificate of client/service.

Certificates are optionally associated with SNI objects to tie a cert/key pair to one or more hostnames.

If intermediate certificates are required in addition to the main certificate, they should be concatenated together into one string. name: Certificates - description: >- Consumer groups enable the organization and categorization of consumers (users or applications) within an API ecosystem. By grouping consumers together, you eliminate the need to manage them individually, providing a scalable, efficient approach to managing configurations. name: Consumer Groups - description: > The consumer object represents a consumer - or a user - of a service. You can either rely on Kong Gateway as the primary datastore, or you can map the consumer list with your database to keep consistency between Kong Gateway and your existing primary datastore. name: Consumers - name: HMAC-auth credentials - name: JWTs - description: > A JSON Web key set. Key sets are the preferred way to expose keys to plugins because they tell the plugin where to look for keys or have a scoping mechanism to restrict plugins to specific keys. name: KeySets - description: > A key object holds a representation of asymmetric keys in various formats. When Kong Gateway or a Kong plugin requires a specific public or private key to perform certain operations, it can use this entity. name: Keys - name: MTLS-auth credentials - description: >- Some entities in Kong Gateway share common configuration settings that often need to be repeated. For example, multiple plugins that connect to Redis may require the same connection settings. Without Partials, you would need to replicate this configuration across all plugins. If the settings change, you would need to update each plugin individually. name: Partials - description: >- A plugin entity represents a plugin configuration that will be executed during the HTTP request/response lifecycle. Plugins let you add functionality to services that run behind a Kong Gateway instance, like authentication or rate limiting. You can find more information about available plugins and which values each plugin accepts at the [Plugin Hub](https://developer.konghq.com/plugins/).

When adding a plugin configuration to a service, the plugin will run on every request made by a client to that service. If a plugin needs to be tuned to different values for some specific consumers, you can do so by creating a separate plugin instance that specifies both the service and the consumer, through the service and consumer fields. name: Plugins - description: > Route entities define rules to match client requests. Each route is associated with a service, and a service may have multiple routes associated to it. Every request matching a given route will be proxied to the associated service. You need at least one matching rule that applies to the protocol being matched by the route.

The combination of routes and services, and the separation of concerns between them, offers a powerful routing mechanism with which it is possible to define fine-grained entrypoints in Kong Gateway leading to different upstream services of your infrastructure.

Depending on the protocol, one of the following attributes must be set:
- `http`: At least one of `methods`, `hosts`, `headers`, or `paths` - `https`: At least one of `methods`, `hosts`, `headers`, `paths`, or `snis` - `tcp`: At least one of `sources` or `destinations` - `tls`: at least one of `sources`, `destinations`, or `snis` - `tls_passthrough`: set `snis` - `grpc`: At least one of `hosts`, `headers`, or `paths` - `grpcs`: At least one of `hosts`, `headers`, `paths`, or `snis` - `ws`: At least one of `hosts`, `headers`, or `paths` - `wss`: At least one of `hosts`, `headers`, `paths`, or `snis`
A route can't have both `tls` and `tls_passthrough` protocols at same time.

Learn more about the router: - [Configure routes using expressions](https://developer.konghq.com/gateway/routing/expressions/) name: Routes - description: >- An SNI object represents a many-to-one mapping of hostnames to a certificate.

A certificate object can have many hostnames associated with it. When Kong Gateway receives an SSL request, it uses the SNI field in the Client Hello to look up the certificate object based on the SNI associated with the certificate. name: SNIs - name: Schemas - description: > Service entities are abstractions of your microservice interfaces or formal APIs. For example, a service could be a data transformation microservice or a billing API.

The main attribute of a service is the destination URL for proxying traffic. This URL can be set as a single string or by specifying its protocol, host, port and path individually.

Services are associated to routes, and a single service can have many routes associated with it. Routes are entrypoints in Kong Gateway which define rules to match client requests. Once a route is matched, Kong Gateway proxies the request to its associated service. See the [Route documentation](https://developer.konghq.com/gateway/entities/route/) for a detailed explanation of how Kong proxies traffic.

Services can be both [tagged and filtered by tags](https://developer.konghq.com/admin-api/). name: Services - description: > A target is an IP address or hostname with a port that identifies an instance of a backend service. Every upstream can have many targets, and the targets can be dynamically added, modified, or deleted. Changes take effect on the fly.

To disable a target, post a new one with `weight=0`, or use the `DELETE` method to accomplish the same. name: Targets - description: >- The upstream object represents a virtual hostname and can be used to load balance incoming requests over multiple services (targets).

An upstream also includes a [health checker](https://developer.konghq.com/gateway/traffic-control/health-checks-circuit-breakers/), which can enable and disable targets based on their ability or inability to serve requests. The configuration for the health checker is stored in the upstream object, and applies to all of its targets. name: Upstreams - description: > Vault objects are used to configure different vault connectors for [managing secrets](https://developer.konghq.com/gateway/secrets-management/). Configuring a vault lets you reference secrets from other entities. This allows for a proper separation of secrets and configuration and prevents secret sprawl.

For example, you could store a certificate and a key in a vault, then reference them from a certificate entity. This way, the certificate and key are not stored in the entity directly and are more secure.

Secrets rotation can be managed using [TTLs](https://developer.konghq.com/gateway/entities/vault/). name: Vaults - description: > The workspace object describes the workspace entity, which has an ID and a name.

Workspaces provide a way to segment Kong Gateway entities. Entities in a workspace are isolated from those in other workspaces. name: Workspaces