{
  "openapi": "3.0.2",
  "info": {
    "title": "Showcase Components - Opyrator",
    "description": "Showcase of a variety of differnt property types and how they are shown in the UI.\n\nThis function only returns the input data.",
    "version": "0.1.0"
  },
  "paths": {
    "/call": {
      "post": {
        "summary": "Execute the opyrator.",
        "description": "Executes this opyrator.",
        "operationId": "call",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": { "$ref": "#/components/schemas/ShowcaseModel" }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/ShowcaseModel" }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/HTTPValidationError" }
              }
            }
          }
        }
      }
    },
    "/info": {
      "get": {
        "summary": "Get info metadata.",
        "description": "Returns informational metadata about this Opyrator.",
        "operationId": "info",
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "title": "Response Info Info Get",
                  "type": "object"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "HTTPValidationError": {
        "title": "HTTPValidationError",
        "type": "object",
        "properties": {
          "detail": {
            "title": "Detail",
            "type": "array",
            "items": { "$ref": "#/components/schemas/ValidationError" }
          }
        }
      },
      "OtherData": {
        "title": "OtherData",
        "required": ["text", "integer"],
        "type": "object",
        "properties": {
          "text": { "title": "Text", "type": "string" },
          "integer": { "title": "Integer", "type": "integer" }
        }
      },
      "SelectionValue": {
        "title": "SelectionValue",
        "enum": ["foo", "bar"],
        "type": "string",
        "description": "An enumeration."
      },
      "ShowcaseModel": {
        "title": "ShowcaseModel",
        "required": [
          "short_text",
          "password",
          "long_text",
          "positive_integer",
          "string_list",
          "int_list",
          "string_dict",
          "float_dict",
          "single_selection",
          "multi_selection",
          "single_object",
          "object_list"
        ],
        "type": "object",
        "properties": {
          "short_text": {
            "title": "Short Text",
            "maxLength": 60,
            "type": "string",
            "description": "Short text property"
          },
          "password": {
            "title": "Password",
            "type": "string",
            "description": "Password text property",
            "format": "password",
            "writeOnly": true
          },
          "long_text": {
            "title": "Long Text",
            "type": "string",
            "description": "Unlimited text property"
          },
          "integer_in_range": {
            "title": "Integer In Range",
            "multipleOf": 2.0,
            "exclusiveMaximum": 30.0,
            "minimum": 10.0,
            "type": "integer",
            "description": "Number property with a limited range. Optional because of default value.",
            "default": 20
          },
          "positive_integer": {
            "title": "Positive Integer",
            "multipleOf": 10.0,
            "minimum": 0.0,
            "type": "integer",
            "description": "Positive integer with step count of 10."
          },
          "float_number": {
            "title": "Float Number",
            "type": "number",
            "default": 0.001
          },
          "date": {
            "title": "Date",
            "type": "string",
            "description": "Date property. Optional because of default value.",
            "format": "date",
            "default": "2021-04-22"
          },
          "time": {
            "title": "Time",
            "type": "string",
            "description": "Time property. Optional because of default value.",
            "format": "time",
            "default": "08:14:18.285271"
          },
          "string_list": {
            "title": "String List",
            "maxItems": 20,
            "type": "array",
            "items": { "type": "string" },
            "description": "List of string values"
          },
          "int_list": {
            "title": "Int List",
            "type": "array",
            "items": { "type": "integer" },
            "description": "List of int values"
          },
          "boolean": {
            "title": "Boolean",
            "type": "boolean",
            "description": "Boolean property. Optional because of default value.",
            "default": false
          },
          "file_list": {
            "title": "File List",
            "type": "array",
            "items": { "type": "string", "format": "byte" },
            "description": "A list of files. Optional property."
          },
          "single_file": {
            "title": "Single File",
            "type": "string",
            "description": "A single file. Optional property.",
            "format": "byte"
          },
          "string_dict": {
            "title": "String Dict",
            "type": "object",
            "additionalProperties": { "type": "string" },
            "description": "Dict property with string values"
          },
          "float_dict": {
            "title": "Float Dict",
            "type": "object",
            "additionalProperties": { "type": "number" },
            "description": "Dict property with float values"
          },
          "single_selection": {
            "allOf": [{ "$ref": "#/components/schemas/SelectionValue" }],
            "description": "Only select a single item from a set."
          },
          "multi_selection": {
            "uniqueItems": true,
            "type": "array",
            "items": { "$ref": "#/components/schemas/SelectionValue" },
            "description": "Allows multiple items from a set."
          },
          "single_object": {
            "title": "Single Object",
            "allOf": [{ "$ref": "#/components/schemas/OtherData" }],
            "description": "Another object embedded into this model."
          },
          "object_list": {
            "title": "Object List",
            "type": "array",
            "items": { "$ref": "#/components/schemas/OtherData" },
            "description": "A list of objects embedded into this model."
          }
        }
      },
      "ValidationError": {
        "title": "ValidationError",
        "required": ["loc", "msg", "type"],
        "type": "object",
        "properties": {
          "loc": {
            "title": "Location",
            "type": "array",
            "items": { "type": "string" }
          },
          "msg": { "title": "Message", "type": "string" },
          "type": { "title": "Error Type", "type": "string" }
        }
      }
    }
  }
}
