schema2code 0.1.4

Generate Code in any language from a JSON Schema compliant document
Documentation
asyncapi: '2.6.0'
info:
  title: A sample Spec file
  version: '69.420'

servers:
  test-server:
    url: localhost
    protocol: ws

channels:
  oneapi:
    servers:
      - test-server
    publish:
      operationId: SampleRequest
      message:
        $ref: '#/components/messages/SampleRequest'

components:
  messages:
    SampleRequest:
      payload: 
        $ref: '#/components/schemas/SampleRequestPayload'
      
  schemas:
    RequestBase:
      type: object
      additionalProperties: false
      properties:
        id:
          type: string
          description: "correlation id to match request and response"
        kind:
          type: string
          const: request
      required:
        - id
        - kind

    GetUser:
      description: TODO
      discriminant: balls
      oneOf:
      - $ref: '#/components/schemas/RequestBase'
      - type: object 
        additionalProperties: false
        properties:
          event:
            type: string
            const: deezNuts
          data:
            title: GetUserData
            type: object
            properties:
              userId:
                type: string
            required:
              - userId
        required:
          - data
          - event

    DeleteUser:
      description: TODO
      allOf:
      - $ref: '#/components/schemas/RequestBase'
      - type: object
        properties:
          child:
            type: array
            prefixItems:
              - type: object
              - type: string
          event:
            type: string
            const: someRandomVALUE
          data:
            title: DeleteUserData
            type: object
            properties:
              userId:
                type: string
              userName: 
                type: string
            required:
              - userId
              - userName
        required:
          - data
          - event

    SampleRequestPayload:
      description: "SampleRequestPayload"
      discriminator: event
      oneOf:
        - $ref: '#/components/schemas/GetUser'
        - $ref: '#/components/schemas/DeleteUser'