To solve this problem I made the following dto:
export class EmptyDto {}
Then I add this dto to annotations of all endpoints that don't have a body. Here is one example:
@AsyncApiSub({
channel: ActivityActions.GENERATE_DEMO_ACTIVITY,
message: {
payload: EmptyDto,
},
})