asyncapi: 3.0.0 info: title: Ethena Webhooks version: 1.3.0 description: >- Event surface for the Ethena compliance-training API, generated by the API Evangelist enrichment pipeline from the `webhooks` block of the published OpenAPI 3.1 definition (openapi/ethena-openapi-original.yml). Webhooks are opt-in and managed through the REST API. Deliveries are signed with HMAC SHA-256 in the X-Signature header. This is a faithful generation, not a provider-published AsyncAPI document. contact: name: Ethena Support email: support@goethena.com x-apievangelist-method: generated x-apievangelist-source: openapi/ethena-openapi-original.yml defaultContentType: application/json channels: learnerTrainingCampaignCompleted: address: '{subscriberUrl}' description: Subscriber endpoint that receives learner-training-campaign-completed events. parameters: subscriberUrl: description: The HTTPS URL registered via POST /v1/webhooks. messages: learnerTrainingCampaignCompleted: $ref: '#/components/messages/learnerTrainingCampaignCompleted' operations: onLearnerTrainingCampaignCompleted: action: receive channel: $ref: '#/channels/learnerTrainingCampaignCompleted' summary: Fires when a learner completes a training campaign. bindings: http: method: POST components: messages: learnerTrainingCampaignCompleted: name: learnerTrainingCampaignCompleted title: Learner Training Campaign Completed contentType: application/json headers: type: object properties: X-Signature: type: string description: HMAC SHA-256 hex signature of the payload, keyed with the webhook secret. payload: type: object required: [learnerId, trainingCampaignId, statusTimestamp] properties: learnerId: type: string pattern: '^[a-zA-Z0-9]+$' description: The unique identifier of a learner. examples: [abc123def4] trainingCampaignId: type: string pattern: '^[a-zA-Z0-9]+$' description: The unique identifier of a training campaign. examples: [tc456xyz78] statusTimestamp: type: string format: date-time description: The date and time at which the learner completed the training campaign.