openapi: 3.0.0
servers:
  - url: //api.openapi-generator.tech
info:
  contact: {}
  description: This is an online openapi generator server.  You can find out more at https://github.com/OpenAPITools/openapi-generator.
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  title: OpenAPI Generator Online
  version: 6.5.0
  x-apisguru-categories:
    - developer_tools
  x-origin:
    - format: openapi
      url: http://api.openapi-generator.tech/api-docs
      version: "3.0"
  x-providerName: openapi-generator.tech
tags:
  - description: the gen API
    name: gen-api-controller
paths:
  /api/gen/clients:
    get:
      operationId: clientOptions
      responses:
        "200":
          content:
            "*/*":
              schema:
                items:
                  type: string
                type: array
          description: successful operation
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      summary: Gets languages supported by the client generator
      tags:
        - clients
      x-responsesObject:
        "200":
          description: successful operation
          schema:
            items:
              type: string
            type: array
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
  "/api/gen/clients/{language}":
    get:
      operationId: getClientOptions
      parameters:
        - description: The target language for the client library
          in: path
          name: language
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                additionalProperties:
                  $ref: "#/components/schemas/CliOption"
                type: object
          description: successful operation
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      summary: Returns options for a client library
      tags:
        - clients
      x-responsesObject:
        "200":
          description: successful operation
          schema:
            additionalProperties:
              $ref: "#/components/schemas/CliOption"
            type: object
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
    post:
      description: Accepts a `GeneratorInput` options map for spec location and generation options
      operationId: generateClient
      parameters:
        - description: The target language for the client library
          in: path
          name: language
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GeneratorInput"
        description: Configuration for building the client library
        required: true
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/ResponseCode"
          description: successful operation
        "201":
          description: Created
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      summary: Generates a client library
      tags:
        - clients
      x-responsesObject:
        "200":
          description: successful operation
          schema:
            $ref: "#/components/schemas/ResponseCode"
        "201":
          description: Created
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
  "/api/gen/download/{fileId}":
    get:
      description: A valid `fileId` is generated by the `/clients/{language}` or `/servers/{language}` POST operations.  The fileId code can be used just once, after which a new `fileId` will need to be requested.
      operationId: downloadFile
      parameters:
        - description: fileId
          in: path
          name: fileId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/octet-stream:
              schema:
                format: binary
                type: string
          description: successful operation
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      summary: Downloads a pre-generated file
      tags:
        - clients
        - servers
      x-responsesObject:
        "200":
          description: successful operation
          schema:
            type: file
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
  /api/gen/servers:
    get:
      operationId: serverOptions
      responses:
        "200":
          content:
            "*/*":
              schema:
                items:
                  type: string
                type: array
          description: successful operation
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      summary: Gets languages supported by the server generator
      tags:
        - servers
      x-responsesObject:
        "200":
          description: successful operation
          schema:
            items:
              type: string
            type: array
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
  "/api/gen/servers/{framework}":
    get:
      operationId: getServerOptions
      parameters:
        - description: The target language for the server framework
          in: path
          name: framework
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                additionalProperties:
                  $ref: "#/components/schemas/CliOption"
                type: object
          description: successful operation
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      summary: Returns options for a server framework
      tags:
        - servers
      x-responsesObject:
        "200":
          description: successful operation
          schema:
            additionalProperties:
              $ref: "#/components/schemas/CliOption"
            type: object
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
    post:
      description: Accepts a `GeneratorInput` options map for spec location and generation options.
      operationId: generateServerForLanguage
      parameters:
        - description: framework
          in: path
          name: framework
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GeneratorInput"
        description: parameters
        required: true
      responses:
        "200":
          content:
            "*/*":
              schema:
                $ref: "#/components/schemas/ResponseCode"
          description: successful operation
        "201":
          description: Created
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
      summary: Generates a server library
      tags:
        - servers
      x-responsesObject:
        "200":
          description: successful operation
          schema:
            $ref: "#/components/schemas/ResponseCode"
        "201":
          description: Created
        "401":
          description: Unauthorized
        "403":
          description: Forbidden
        "404":
          description: Not Found
components:
  schemas:
    AuthorizationValue:
      properties:
        keyName:
          type: string
        type:
          type: string
        urlMatcher:
          $ref: "#/components/schemas/PredicateOfURL"
        value:
          type: string
      title: AuthorizationValue
      type: object
    CliOption:
      properties:
        default:
          type: string
        description:
          type: string
        enum:
          additionalProperties:
            type: string
          type: object
        opt:
          type: string
        optValue:
          type: string
        type:
          type: string
      title: CliOption
      type: object
    GeneratorInput:
      properties:
        authorizationValue:
          $ref: "#/components/schemas/AuthorizationValue"
        openAPIUrl:
          example: https://raw.githubusercontent.com/OpenAPITools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml
          type: string
        options:
          additionalProperties:
            type: string
          type: object
        spec:
          type: object
      title: GeneratorInput
      type: object
    PredicateOfURL:
      title: PredicateOfURL
      type: object
    ResponseCode:
      properties:
        code:
          description: File download code
          example: d40029be-eda6-4d62-b1ef-d05e2e91a72a
          type: string
        link:
          description: URL for fetching the generated client
          example: http://localhost:8080/api/gen/download/d40029be-eda6-4d62-b1ef-d05e2e91a72a
          type: string
      title: ResponseCode
      type: object
    URLStreamHandler:
      title: URLStreamHandler
      type: object
