{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "#/components/schemas/HMACAuthenticationPlan", "title": "HMACAuthenticationPlan", "type": "object", "properties": { "type": { "type": "string", "enum": [ "hmac" ] }, "secretKey": { "type": "string", "description": "This is the HMAC secret key used to sign requests." }, "algorithm": { "type": "string", "enum": [ "sha256", "sha512", "sha1" ], "description": "This is the HMAC algorithm to use for signing." }, "signatureHeader": { "type": "string", "description": "This is the header name where the signature will be sent. Defaults to 'x-signature'." }, "timestampHeader": { "type": "string", "description": "This is the header name where the timestamp will be sent. Defaults to 'x-timestamp'." }, "signaturePrefix": { "type": "string", "description": "This is the prefix for the signature. For example, 'sha256=' for GitHub-style signatures." }, "includeTimestamp": { "type": "boolean", "description": "Whether to include a timestamp in the signature payload. Defaults to true." }, "payloadFormat": { "type": "string", "description": "Custom payload format. Use {body} for request body, {timestamp} for timestamp, {method} for HTTP method, {url} for URL, {svix-id} for unique message ID. Defaults to '{timestamp}.{body}'." }, "messageIdHeader": { "type": "string", "description": "This is the header name where the unique message ID will be sent. Used for Svix-style webhooks." }, "signatureEncoding": { "type": "string", "enum": [ "hex", "base64" ], "description": "The encoding format for the signature. Defaults to 'hex'." }, "secretIsBase64": { "type": "boolean", "description": "Whether the secret key is base64-encoded and should be decoded before use. Defaults to false." } }, "required": [ "type", "secretKey", "algorithm" ] }