
io.zenwave360.sdk.plugins.AsyncAPIToJDLGenerator.JDLToAsyncAPIv2.yml.hbs Maven / Gradle / Ivy
asyncapi: 2.6.0
info:
title: Zenwave 360 Generated API
version: 0.0.1
defaultContentType: application/json
tags:
- name: "Default"
{{~#each zdlModel.serviceNames as |serviceName|}}
- name: "{{asTagName serviceName}}"
{{~/each}}
channels:
{{~#each zdlModel.entities as |entity|}}
{{~#unless (skipOperations entity)}}
{{~#if includeCommands}}
{{entity.kebabCase}}.requests:
subscribe:
summary: {{entity.className}} Async Requests
operationId: do{{entity.className}}Request
tags:
- name: {{asTagName entity.options.service}}
message:
$ref: "#/components/messages/{{entity.className}}RequestMessage"
{{~/if}}
{{~#if includeEvents}}
{{entity.kebabCase}}.events:
publish:
summary: {{entity.className}} Domain Events
operationId: on{{entity.className}}Event
tags:
- name: {{asTagName entity.options.service}}
message:
$ref: "#/components/messages/{{entity.className}}EventMessage"
{{~/if}}
{{/unless}}
{{~/each}}
components:
messages:
{{~#each zdlModel.entities as |entity|}}
{{~#unless (skipOperations entity)}}
{{~#if includeCommands}}
{{entity.className}}RequestMessage:
messageId: {{entity.className}}RequestMessage
name: {{entity.className}}RequestMessage
title: Async Command/Request for a {{entity.className}}
summary: Async Command/Request for a {{entity.className}}
schemaFormat: {{{schemaFormatString}}}
traits:
- $ref: '#/components/messageTraits/CommonHeaders'
payload:
$ref: "{{payloadRef entity "Request" }}"
{{~/if}}
{{~#if includeEvents}}
{{entity.className}}EventMessage:
name: {{entity.className}}EventMessage
messageId: {{entity.className}}EventMessage
title: Message for a {{entity.className}} Event
summary: Message for a {{entity.className}} Event
schemaFormat: {{{schemaFormatString}}}
traits:
- $ref: '#/components/messageTraits/CommonHeaders'
payload:
$ref: "{{payloadRef entity "Event"}}"
{{~/if}}
{{/unless}}
{{~/each}}
messageTraits:
CommonHeaders:
headers:
type: object
properties:
kafka_messageKey:
type: string
description: This header value will be populated automatically at runtime
x-runtime-expression: $message.payload#/id
tracingId:
type: string
description: This header value will be populated automatically at runtime
x-runtime-expression: $tracingIdSupplier
{{{schemasAsString}}}
{{~#if schemasAsString}}{{~#if (isStateTransferPayloadStyle)}}
{{~#each zdlModel.entities as |entity|}}
{{~#unless (skipOperations entity)}}
{{~#if includeCommands}}
{{entity.className}}RequestPayload:
type: object
properties:
id:
type: {{idType}}
{{~#if idTypeFormat}}
format: {{idTypeFormat}}
{{~/if}}
requestType:
type: string
enum:
- "create"
- "update"
- "delete"
{{entity.instanceName}}:
$ref: "#/components/schemas/{{entity.className}}"
{{~/if}}
{{~#if includeEvents}}
{{entity.className}}EventPayload:
type: object
properties:
id:
type: {{idType}}
{{~#if idTypeFormat}}
format: {{idTypeFormat}}
{{~/if}}
eventType:
type: string
enum:
- "created"
- "updated"
- "deleted"
{{entity.instanceName}}:
$ref: "#/components/schemas/{{entity.className}}"
{{~/if}}
{{/unless}}
{{~/each}}
{{~/if}}{{~/if}}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy