Kong · Schema

SolaceUpstreamPluginConfig

API GatewayAI GatewayAI ConnectivityAgent GatewayEvent GatewayMCP RegistryService MeshLLMKafkaKonnectOpen Source

Properties

Name Type Description
config object
name object
protocols array A set of strings representing HTTP protocols.
route object 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.
service object 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.
View JSON Schema on GitHub

JSON Schema

kong-solaceupstreampluginconfig-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/SolaceUpstreamPluginConfig",
  "title": "SolaceUpstreamPluginConfig",
  "x-speakeasy-entity": "PluginSolaceUpstream",
  "properties": {
    "config": {
      "type": "object",
      "properties": {
        "message": {
          "description": "The message related configuration.",
          "type": "object",
          "properties": {
            "ack_timeout": {
              "description": "When using a non-DIRECT guaranteed delivery mode, this property sets the message acknowledgement timeout in milliseconds (waiting time).",
              "type": "integer",
              "default": 2000,
              "maximum": 100000,
              "minimum": 1
            },
            "content_encoding": {
              "description": "Sets the HTTP Content-Encoding applied to the Solace message payload (for example, gzip). If unset, the request Content-Encoding header is used when available.",
              "type": "string"
            },
            "content_type": {
              "description": "Sets the HTTP Content-Type applied to the Solace message payload. If unset, the request Content-Type header is used when available.",
              "type": "string"
            },
            "default_content": {
              "description": "When not using `forward_method`, `forward_uri`, `forward_headers`, `forward_body` or `forward_body_raw_only`, this sets the message content.",
              "type": "string"
            },
            "delivery_mode": {
              "description": "Sets the message delivery mode.",
              "type": "string",
              "default": "DIRECT",
              "enum": [
                "DIRECT",
                "PERSISTENT"
              ]
            },
            "destinations": {
              "description": "The message destinations.",
              "type": "array",
              "items": {
                "properties": {
                  "name": {
                    "description": "The name of the destination. You can use $(uri_captures['<capture-identifier>']) in this field (replace `<capture-identifier>` with a real value, for example `$uri_captures[\u2019queue\u2019]` when the matched route has a path `~/(?<queue>[a-z]+)`).",
                    "type": "string"
                  },
                  "type": {
                    "description": "The type of the destination.",
                    "type": "string",
                    "default": "QUEUE",
                    "enum": [
                      "QUEUE",
                      "TOPIC"
                    ]
                  }
                },
                "required": [
                  "name"
                ],
                "type": "object"
              },
              "minLength": 1
            },
            "dmq_eligible": {
              "description": "Sets the dead message queue (DMQ) eligible property on the message.",
              "type": "boolean",
              "default": false
            },
            "forward_body": {
              "description": "Include the request body and the body arguments in the message.",
              "type": "boolean",
              "default": false
            },
            "forward_body_raw_only": {
              "description": "Forward only the raw request body without wrapping it in a JSON payload or adding extra fields.",
              "type": "boolean",
              "default": false
            },
            "forward_headers": {
              "description": "Include the request headers in the message.",
              "type": "boolean",
              "default": false
            },
            "forward_method": {
              "description": "Include the request method in the message.",
              "type": "boolean",
              "default": false
            },
            "forward_uri": {
              "description": "Include the request URI and the URI arguments (as in, query arguments) in the message.",
              "type": "boolean",
              "default": false
            },
            "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.",
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "priority": {
              "description": "Sets the message priority.",
              "type": "integer",
              "default": 4,
              "maximum": 255,
              "minimum": 0
            },
            "sender_id": {
              "description": "Allows the application to set the content of the sender identifier.",
              "type": "string"
            },
            "tracing": {
              "description": "Enable or disable the tracing propagation. This is primarily used for distributed tracing and message correlation, especially in debugging or tracking message flows across multiple systems.",
              "type": "boolean",
              "default": false
            },
            "tracing_sampled": {
              "description": "Forcibly turn on the tracing on all the messages for distributed tracing (tracing needs to be enabled as well).",
              "type": "boolean",
              "default": false
            },
            "ttl": {
              "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",
              "default": 0
            },
            "user_properties": {
              "description": "User defined properties to be included in the message. Separate static properties from header mappings.",
              "type": "object",
              "properties": {
                "headers": {
                  "description": "Header settings for user properties (mapping, inclusion and exclusion).",
                  "type": "object",
                  "properties": {
                    "exclude_headers": {
                      "description": "Headers that must not be forwarded into user properties. This is used to exclude sensitive headers such as authorization from being forwarded as user properties, or to avoid duplication when a header is mapped to a user property but you don't want the original header to be included as well.",
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "include_headers": {
                      "description": "Headers to include as user properties even without explicit mapping.",
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "mappings": {
                      "description": "Header-to-user_property mapping (key = HTTP header name, value = target user property name).",
                      "type": "object",
                      "additionalProperties": {
                        "type": "string",
                        "x-lua-required": true
                      }
                    }
                  }
                },
                "predefined_properties": {
                  "description": "Predefined user properties to set on every message (key = property name, value = property value).",
                  "type": "object",
                  "additionalProperties": {
                    "type": "string",
                    "x-lua-required": true
                  }
                }
              }
            }
          },
          "required": [
            "destinations"
          ]
        },
        "session": {
          "description": "Session related configuration.",
          "type": "object",
          "properties": {
            "authentication": {
              "description": "Session authentication related configuration.",
              "type": "object",
              "properties": {
                "access_token": {
                  "description": "The OAuth2 access token used with `OAUTH2` authentication scheme when connecting to an event broker.",
                  "type": "string",
                  "x-encrypted": true,
                  "x-referenceable": true
                },
                "access_token_header": {
                  "description": "Specifies the header that contains access token for the `OAUTH2` authentication scheme when connecting to an event broker. This header takes precedence over the `access_token` field.",
                  "type": "string"
                },
                "basic_auth_header": {
                  "description": "Specifies the header that contains Basic Authentication credentials for the `BASIC` authentication scheme when connecting to an event broker. This header takes precedence over the `username` and `password` fields.",
                  "type": "string"
                },
                "id_token": {
                  "description": "The OpenID Connect ID token used with `OAUTH2` authentication scheme when connecting to an event broker.",
                  "type": "string",
                  "x-encrypted": true,
                  "x-referenceable": true
                },
                "id_token_header": {
                  "description": "Specifies the header that contains id token for the `OAUTH2` authentication scheme when connecting to an event broker. This header takes precedence over the `id_token` field.",
                  "type": "string"
                },
                "password": {
                  "description": "The password used with `BASIC` authentication scheme when connecting to an event broker.",
                  "type": "string",
                  "maxLength": 128,
                  "x-encrypted": true,
                  "x-referenceable": true
                },
                "scheme": {
                  "description": "The client authentication scheme used when connection to an event broker.",
                  "type": "string",
                  "default": "BASIC",
                  "enum": [
                    "BASIC",
                    "NONE",
                    "OAUTH2"
                  ]
                },
                "username": {
                  "description": "The username used with `BASIC` authentication scheme when connecting to an event broker.",
                  "type": "string",
                  "maxLength": 189,
                  "x-encrypted": true,
                  "x-referenceable": true
                }
              }
            },
            "calculate_message_expiry": {
              "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",
              "default": true
            },
            "connect_timeout": {
              "description": "The timeout period (in milliseconds) for a connect operation to a given host (per host).",
              "type": "integer",
              "default": 3000,
              "maximum": 100000,
              "minimum": 100
            },
            "generate_rcv_timestamps": {
              "description": "When enabled, a receive timestamp is recorded for each message.",
              "type": "boolean",
              "default": true
            },
            "generate_send_timestamps": {
              "description": "When enabled, a send timestamp is automatically included (if not already present) in the Solace-defined fields for each message sent.",
              "type": "boolean",
              "default": true
            },
            "generate_sender_id": {
              "description": "When enabled, a sender id is automatically included (if not already present) in the Solace-defined fields for each message sent.",
              "type": "boolean",
              "default": true
            },
            "generate_sequence_number": {
              "description": "When enabled, a sequence number is automatically included (if not already present) in the Solace-defined fields for each message sent.",
              "type": "boolean",
              "default": true
            },
            "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",
              "x-referenceable": true
            },
            "properties": {
              "description": "Additional Solace session properties (each setting needs to have `SESSION_` prefix).",
              "type": "object",
              "additionalProperties": {
                "type": "string",
                "x-lua-required": true,
                "x-referenceable": true
              }
            },
            "ssl_validate_certificate": {
              "description": "Indicates whether the API should validate server certificates with the trusted certificates.",
              "type": "boolean",
              "default": true
            },
            "vpn_name": {
              "description": "The name of the Message VPN to attempt to join when connecting to an event broker.",
              "type": "string",
              "maxLength": 32
            }
          },
          "required": [
            "host"
          ]
        }
      },
      "required": [
        "message",
        "session"
      ]
    },
    "name": {
      "const": "solace-upstream"
    },
    "protocols": {
      "description": "A set of strings representing HTTP protocols.",
      "type": "array",
      "items": {
        "enum": [
          "grpc",
          "grpcs",
          "http",
          "https"
        ],
        "type": "string"
      },
      "format": "set",
      "default": [
        "grpc",
        "grpcs",
        "http",
        "https"
      ]
    },
    "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.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string"
        }
      }
    },
    "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.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string"
        }
      }
    }
  },
  "required": [
    "config"
  ]
}