---
title: "Update a SolaceConsume plugin"
method: PUT
path: "/{workspace}/plugins/{PluginId}#SolaceConsume"
tags: ["Plugins"]
---

# Update a SolaceConsume plugin

`PUT /{workspace}/plugins/{PluginId}#SolaceConsume`

Update a SolaceConsume plugin

## Request body

- SolaceConsumePlugin — 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.
  - `condition` string, nullable — An expression used for conditional control over plugin execution. If the expression evaluates to `true` during the request flow, the plugin is executed; otherwise, it is skipped.
  - `created_at` integer, nullable — Unix epoch when the resource was created.
  - `enabled` boolean, nullable — Whether the plugin is applied.
  - `id` string, nullable — A string representing a UUID (universally unique identifier).
  - `instance_name` string, nullable — A unique string representing a UTF-8 encoded name.
  - `name` 'solace-consume', required — The name of the Plugin that's going to be added. Currently, the Plugin must be installed in every Kong instance separately.
  - `ordering` object, nullable
    - `after` object
      - `access` string[]
    - `before` object
      - `access` string[]
  - `partials` object[] — A list of partials to be used by the plugin.
    - `id` string — A string representing a UUID (universally unique identifier).
    - `name` string — A unique string representing a UTF-8 encoded name.
    - `path` string
  - `tags` string[], nullable — An optional set of strings associated with the Plugin for grouping and filtering.
  - `updated_at` integer, nullable — Unix epoch when the resource was last updated.
  - `config` object, required
    - `flow` object, required — The flow related configuration.
      - `ack_mode` 'AUTO' | 'CLIENT' — 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.
      - `binds` object[], required
        - `name` string, required — The name of the Queue that is the target of the bind. You can use $(uri_captures['<capture-identifier>']) in this field (replace `<capture-identifier>` with a real value, for example `$uri_captures['queue']` when the matched route has a path `~/(?<queue>[a-z]+)`)
        - `type` 'QUEUE' — The type of object to which this Flow is bound.
      - `functions` string[] — 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.
      - `max_unacked_messages` integer — This property controls the maximum number of messages that may be unacknowledged on the Flow.
      - `properties` object — Additional Solace flow properties (each setting needs to have `FLOW_` prefix).
      - `selector` string — The selector when binding to an endpoint.
      - `wait_timeout` integer — Specifies in milliseconds how long to wait for messages to appear on each poll before giving up or retrying.
      - `window_size` integer — The Guaranteed message window size for the Flow.
    - `mode` 'AUTO' | 'POLLING' | 'SERVER-SENT-EVENTS' | 'WEBSOCKET' — The mode of operation for the plugin. The `AUTO` determines the mode automatically from the client request.
    - `polling` object — The `POLLING` mode related configuration settings.
      - `timeout` integer — 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).
    - `session` object, required — Session related configuration.
      - `authentication` object — Session authentication related configuration.
        - `access_token` string — The OAuth2 access token used with `OAUTH2` authentication scheme when connecting to an event broker.
        - `access_token_header` string — 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.
        - `basic_auth_header` string — 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.
        - `client_credentials` object — Client credentials used to automatically obtain and renew OAuth2 access tokens from an IdP for the `CLIENT_CREDENTIALS` authentication scheme. When set, Kong fetches tokens from `token_endpoint` using `client_id` and `client_secret`, caches them until expiry, and retries with a fresh token whenever Solace returns an unauthenticated response.
          - `client_id` string, required — The OAuth2 client ID used with `CLIENT_CREDENTIALS` authentication scheme when connecting to an event broker.
          - `client_secret` string, required — The OAuth2 client secret used with `CLIENT_CREDENTIALS` authentication scheme when connecting to an event broker.
          - `eagerly_expire` integer — Number of seconds before actual expiry when cached access tokens should be considered expired and proactively renewed. This helps prevent edge cases where tokens are rejected by Solace just as they expire, but setting this too high may lead to unnecessary token refreshes.
          - `scopes` string[] — The OAuth2 scopes to request when retrieving access tokens for the `CLIENT_CREDENTIALS` authentication scheme.
          - `ssl_verify` boolean — Controls TLS certificate verification for HTTPS token endpoint requests.
          - `token_endpoint` string, required — The OAuth2 token endpoint URL used to retrieve access tokens for the `CLIENT_CREDENTIALS` authentication scheme when connecting to an event broker.
        - `id_token` string — The OpenID Connect ID token used with `OAUTH2` authentication scheme when connecting to an event broker.
        - `id_token_header` string — 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.
        - `password` string — The password used with `BASIC` authentication scheme when connecting to an event broker.
        - `scheme` 'BASIC' | 'CLIENT_CREDENTIALS' | 'NONE' | 'OAUTH2' — The client authentication scheme used when connection to an event broker.
        - `username` string — The username used with `BASIC` authentication scheme when connecting to an event broker.
      - `calculate_message_expiry` boolean — 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
      - `connect_timeout` integer — The timeout period (in milliseconds) for a connect operation to a given host (per host).
      - `generate_rcv_timestamps` boolean — When enabled, a receive timestamp is recorded for each message.
      - `generate_send_timestamps` boolean — When enabled, a send timestamp is automatically included (if not already present) in the Solace-defined fields for each message sent.
      - `generate_sender_id` boolean — When enabled, a sender id is automatically included (if not already present) in the Solace-defined fields for each message sent.
      - `generate_sequence_number` boolean — When enabled, a sequence number is automatically included (if not already present) in the Solace-defined fields for each message sent.
      - `host` string, required — 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).
      - `properties` object — Additional Solace session properties (each setting needs to have `SESSION_` prefix).
      - `ssl_validate_certificate` boolean — Indicates whether the API should validate server certificates with the trusted certificates.
      - `vpn_name` string — The name of the Message VPN to attempt to join when connecting to an event broker.
    - `websocket` object — The `WEBSOCKET` mode related configuration settings.
      - `max_recv_len` integer — Specifies the maximal length of payload allowed when receiving WebSocket frames.
      - `max_send_len` integer — Specifies the maximal length of payload allowed when sending WebSocket frames.
      - `timeout` integer — Specifies the network timeout threshold in milliseconds.
  - `protocols` string[] — 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.
    - `id` string
  - `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.
    - `id` string

## Response `200`

SolaceConsume plugin

- SolaceConsumePlugin — 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.
  - `condition` string, nullable — An expression used for conditional control over plugin execution. If the expression evaluates to `true` during the request flow, the plugin is executed; otherwise, it is skipped.
  - `created_at` integer, nullable — Unix epoch when the resource was created.
  - `enabled` boolean, nullable — Whether the plugin is applied.
  - `id` string, nullable — A string representing a UUID (universally unique identifier).
  - `instance_name` string, nullable — A unique string representing a UTF-8 encoded name.
  - `name` 'solace-consume', required — The name of the Plugin that's going to be added. Currently, the Plugin must be installed in every Kong instance separately.
  - `ordering` object, nullable
    - `after` object
      - `access` string[]
    - `before` object
      - `access` string[]
  - `partials` object[] — A list of partials to be used by the plugin.
    - `id` string — A string representing a UUID (universally unique identifier).
    - `name` string — A unique string representing a UTF-8 encoded name.
    - `path` string
  - `tags` string[], nullable — An optional set of strings associated with the Plugin for grouping and filtering.
  - `updated_at` integer, nullable — Unix epoch when the resource was last updated.
  - `config` object, required
    - `flow` object, required — The flow related configuration.
      - `ack_mode` 'AUTO' | 'CLIENT' — 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.
      - `binds` object[], required
        - `name` string, required — The name of the Queue that is the target of the bind. You can use $(uri_captures['<capture-identifier>']) in this field (replace `<capture-identifier>` with a real value, for example `$uri_captures['queue']` when the matched route has a path `~/(?<queue>[a-z]+)`)
        - `type` 'QUEUE' — The type of object to which this Flow is bound.
      - `functions` string[] — 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.
      - `max_unacked_messages` integer — This property controls the maximum number of messages that may be unacknowledged on the Flow.
      - `properties` object — Additional Solace flow properties (each setting needs to have `FLOW_` prefix).
      - `selector` string — The selector when binding to an endpoint.
      - `wait_timeout` integer — Specifies in milliseconds how long to wait for messages to appear on each poll before giving up or retrying.
      - `window_size` integer — The Guaranteed message window size for the Flow.
    - `mode` 'AUTO' | 'POLLING' | 'SERVER-SENT-EVENTS' | 'WEBSOCKET' — The mode of operation for the plugin. The `AUTO` determines the mode automatically from the client request.
    - `polling` object — The `POLLING` mode related configuration settings.
      - `timeout` integer — 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).
    - `session` object, required — Session related configuration.
      - `authentication` object — Session authentication related configuration.
        - `access_token` string — The OAuth2 access token used with `OAUTH2` authentication scheme when connecting to an event broker.
        - `access_token_header` string — 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.
        - `basic_auth_header` string — 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.
        - `client_credentials` object — Client credentials used to automatically obtain and renew OAuth2 access tokens from an IdP for the `CLIENT_CREDENTIALS` authentication scheme. When set, Kong fetches tokens from `token_endpoint` using `client_id` and `client_secret`, caches them until expiry, and retries with a fresh token whenever Solace returns an unauthenticated response.
          - `client_id` string, required — The OAuth2 client ID used with `CLIENT_CREDENTIALS` authentication scheme when connecting to an event broker.
          - `client_secret` string, required — The OAuth2 client secret used with `CLIENT_CREDENTIALS` authentication scheme when connecting to an event broker.
          - `eagerly_expire` integer — Number of seconds before actual expiry when cached access tokens should be considered expired and proactively renewed. This helps prevent edge cases where tokens are rejected by Solace just as they expire, but setting this too high may lead to unnecessary token refreshes.
          - `scopes` string[] — The OAuth2 scopes to request when retrieving access tokens for the `CLIENT_CREDENTIALS` authentication scheme.
          - `ssl_verify` boolean — Controls TLS certificate verification for HTTPS token endpoint requests.
          - `token_endpoint` string, required — The OAuth2 token endpoint URL used to retrieve access tokens for the `CLIENT_CREDENTIALS` authentication scheme when connecting to an event broker.
        - `id_token` string — The OpenID Connect ID token used with `OAUTH2` authentication scheme when connecting to an event broker.
        - `id_token_header` string — 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.
        - `password` string — The password used with `BASIC` authentication scheme when connecting to an event broker.
        - `scheme` 'BASIC' | 'CLIENT_CREDENTIALS' | 'NONE' | 'OAUTH2' — The client authentication scheme used when connection to an event broker.
        - `username` string — The username used with `BASIC` authentication scheme when connecting to an event broker.
      - `calculate_message_expiry` boolean — 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
      - `connect_timeout` integer — The timeout period (in milliseconds) for a connect operation to a given host (per host).
      - `generate_rcv_timestamps` boolean — When enabled, a receive timestamp is recorded for each message.
      - `generate_send_timestamps` boolean — When enabled, a send timestamp is automatically included (if not already present) in the Solace-defined fields for each message sent.
      - `generate_sender_id` boolean — When enabled, a sender id is automatically included (if not already present) in the Solace-defined fields for each message sent.
      - `generate_sequence_number` boolean — When enabled, a sequence number is automatically included (if not already present) in the Solace-defined fields for each message sent.
      - `host` string, required — 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).
      - `properties` object — Additional Solace session properties (each setting needs to have `SESSION_` prefix).
      - `ssl_validate_certificate` boolean — Indicates whether the API should validate server certificates with the trusted certificates.
      - `vpn_name` string — The name of the Message VPN to attempt to join when connecting to an event broker.
    - `websocket` object — The `WEBSOCKET` mode related configuration settings.
      - `max_recv_len` integer — Specifies the maximal length of payload allowed when receiving WebSocket frames.
      - `max_send_len` integer — Specifies the maximal length of payload allowed when sending WebSocket frames.
      - `timeout` integer — Specifies the network timeout threshold in milliseconds.
  - `protocols` string[] — 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.
    - `id` string
  - `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.
    - `id` string

## Other responses

- `401` — Unauthorized

---

[API](https://skmtc.net/kong/apis/kong-enterprise-admin-api.md) · [All operations](https://skmtc.net/kong/apis/kong-enterprise-admin-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/kong/kong-enterprise-admin-api/revisions/28b1f8a59cdc/schema)
