openapi-interfaces 0.4.0

Generate OpenAPI schemas for related GET, POST, PUT and JSON Merge Patch types
# AUTOMATICALLY GENERATED. DO NOT EDIT.
---
paths: {}
components:
  schemas:
    ShapeOptions:
      type: object
      description: "Options for a shape."
      oneOf:
        - $ref: "#/components/schemas/SquareShapeOptions"
        - $ref: "#/components/schemas/RoundShapeOptions"
      discriminator:
        propertyName: type
        mapping:
          square: "#/components/schemas/SquareShapeOptions"
          round: "#/components/schemas/RoundShapeOptions"

    ShapeOptionsMergePatch:
      type: object
      description: "Options for a shape."
      oneOf:
        - $ref: "#/components/schemas/SquareShapeOptionsMergePatch"
        - $ref: "#/components/schemas/RoundShapeOptionsMergePatch"
      discriminator:
        propertyName: type
        mapping:
          square: "#/components/schemas/SquareShapeOptionsMergePatch"
          round: "#/components/schemas/RoundShapeOptionsMergePatch"

    ShapeOptionsPost:
      type: object
      description: "Options for a shape."
      oneOf:
        - $ref: "#/components/schemas/SquareShapeOptionsPost"
        - $ref: "#/components/schemas/RoundShapeOptionsPost"
      discriminator:
        propertyName: type
        mapping:
          square: "#/components/schemas/SquareShapeOptionsPost"
          round: "#/components/schemas/RoundShapeOptionsPost"

    ShapeOptionsPut:
      type: object
      description: "Options for a shape."
      oneOf:
        - $ref: "#/components/schemas/SquareShapeOptionsPut"
        - $ref: "#/components/schemas/RoundShapeOptionsPut"
      discriminator:
        propertyName: type
        mapping:
          square: "#/components/schemas/SquareShapeOptionsPut"
          round: "#/components/schemas/RoundShapeOptionsPut"

    RoundShapeOptions:
      type: object
      required:
        - radius
        - type
      properties:
        radius:
          type: number
        type:
          type: string
          const: round
      additionalProperties: false
    RoundShapeOptionsMergePatch:
      type: object
      required:
        - type
      properties:
        radius:
          type: number
        type:
          type: string
          const: round
      additionalProperties: false
    RoundShapeOptionsPost:
      type: object
      required:
        - radius
        - type
      properties:
        radius:
          type: number
        type:
          type: string
          const: round
      additionalProperties: false
    RoundShapeOptionsPut:
      type: object
      required:
        - radius
        - type
      properties:
        radius:
          type: number
        type:
          type: string
          const: round
      additionalProperties: false

    SquareShapeOptions:
      type: object
      required:
        - height
        - type
        - width
      properties:
        height:
          type: number
        type:
          type: string
          const: square
        width:
          type: number
      additionalProperties: false
    SquareShapeOptionsMergePatch:
      type: object
      required:
        - type
      properties:
        height:
          type: number
        type:
          type: string
          const: square
        width:
          type: number
      additionalProperties: false
    SquareShapeOptionsPost:
      type: object
      required:
        - height
        - type
        - width
      properties:
        height:
          type: number
        type:
          type: string
          const: square
        width:
          type: number
      additionalProperties: false
    SquareShapeOptionsPut:
      type: object
      required:
        - height
        - type
        - width
      properties:
        height:
          type: number
        type:
          type: string
          const: square
        width:
          type: number
      additionalProperties: false

info:
  title: Example OpenAPI definition
openapi: 3.1.0