{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "#/components/schemas/pulsar_rule_post", "title": "pulsar_rule_post", "type": "object", "additionalProperties": false, "properties": { "status": { "type": "string", "description": "The status of the rule. Rules can be enabled or disabled.", "example": "enabled" }, "ruleType": { "type": "string", "description": "The type of rule. In this case Pulsar (using Firehose). See the Firehose docs for further information.", "enum": [ "pulsar" ] }, "requestMode": { "type": "string", "description": "This is Single Request mode or Batch Request mode. Single Request mode sends each event separately to the endpoint specified by the rule. Batch Request mode rolls up multiple events into the same request. You can read more about the difference between single and batched events in the Ably batching docs.", "example": "single" }, "source": { "$ref": "#/components/schemas/rule_source" }, "target": { "type": "object", "additionalProperties": false, "properties": { "routingKey": { "type": "string", "description": "The optional routing key (partition key) used to publish messages. Supports interpolation as described in the Ably FAQs.", "example": "test-key" }, "topic": { "type": "string", "description": "A Pulsar topic. This is a named channel for transmission of messages between producers and consumers. The topic has the form: `{persistent|non-persistent}://tenant/namespace/topic`", "example": "persistent://my-tenant/my-namespace/my-topic" }, "serviceUrl": { "type": "string", "description": "The URL of the Pulsar cluster in the form `pulsar://host:port` or `pulsar+ssl://host:port`.", "example": "pulsar://pulsar.us-west.example.com:6650/" }, "tlsTrustCerts": { "type": "array", "description": "All connections to a Pulsar endpoint require TLS. The `tlsTrustCerts` option allows you to configure different or additional trust anchors for those TLS connections. This enables server verification. You can specify an optional list of trusted CA certificates to use to verify the TLS certificate presented by the Pulsar cluster. Each certificate should be encoded in PEM format.", "items": { "type": "string", "example": "-----BEGIN CERTIFICATE----- MIIFiTCCA3GgAwIBAgIUYO1Lomxzj7VRawWwEFiQht9OLpUwDQYJKoZIhvcNAQEL BQAwTDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE1pY2hpZ2FuMQ8wDQYDVQQHDAZX ...snip... TOfReTlUQzgpXRW5h3n2LVXbXQhPGcVitb88Cm2R8cxQwgB1VncM8yvmKhREo2tz 7Y+sUx6eIl4dlNl9kVrH1TD3EwwtGsjUNlFSZhg= -----END CERTIFICATE-----" }, "nullable": true }, "authentication": { "type": "object", "description": "Pulsar supports authenticating clients using security tokens that are based on JSON Web Tokens.", "oneOf": [ { "$ref": "#/components/schemas/pulsar_token_auth" } ], "discriminator": { "propertyName": "authenticationMode", "mapping": { "token": "#/components/schemas/pulsar_token_auth" } } }, "enveloped": { "type": "boolean", "nullable": true, "description": "Delivered messages are wrapped in an Ably envelope by default that contains metadata about the message and its payload. The form of the envelope depends on whether it is part of a Webhook/Function or a Queue/Firehose rule. For everything besides Webhooks, you can ensure you only get the raw payload by unchecking \"Enveloped\" when setting up the rule.", "example": true }, "format": { "type": "string", "description": "JSON provides a simpler text-based encoding, whereas MsgPack provides a more efficient binary encoding.", "example": "json" } }, "required": [ "topic", "authentication", "serviceUrl" ] } }, "required": [ "ruleType", "requestMode", "source", "target" ] }