openapi: 3.0.0
info:
  title: Syntax Highlighting
  version: 1.0.0
  description: |

    You may provide little snippets of code using markdown syntax and they will be color coded based on the language you specified as shown below
    ```
        ```java
          some code...
          ...
          ...
        ```
    ```

    Following are the supported language codes that you may use for syntax highlighting

    - `bash` `shell`
    - `markup` `html` `xml` `svg`
    - `json`
    - `yaml` `yml`
    - `go`
    - `javascript` `js`
    - `java`
    - `python` `py`
    - `csharp` `cs`
    - `http`
    - `css`

    **No Highlight**
    ```
    $ curl -X POST -is -u username:password 
      -H "Content-Type: application/json" https://example.com
      -d '{
        "target": {
          "ref_type": "branch", 
          "type": "pipeline_ref_target", 
          "ref_name": "master"
        }
      }'
    ```

    **SHELL** `shell` `bash` 
    ```bash
    $ curl -X POST -is -u username:password 
      -H "Content-Type: application/json" https://example.com
      -d '{
        "target": {
          "ref_type": "branch", 
          "type": "pipeline_ref_target", 
          "ref_name": "master"
        }
      }'
    
    ```

    **MARKUP** `markup` `html` `xml` `svg` 
    ```markup
    <!doctype html>

    <html>
      <head>
        <meta charset="utf-8"> <!-- Important: rapi-doc uses utf8 charecters -->
        <script type="module" src="https://unpkg.com/rapidoc/dist/rapidoc-min.js"></script>
      </head>
      <body>
        <rapi-doc spec-url="https://petstore.swagger.io/v2/swagger.json"> </rapi-doc>
      </body> 
    </html>
    ```

    **JSON** `json`
    ```json
    {
      "firstName": "Mickey",
      "lastName": "Mouse",
      "age": 9,
      "married": false,
    }
    ```

    **YAML** `yaml` `yml` 
    ```yaml
    openapi: 3.0.0
    info:
      title: Syntax Highlighting
      version: 1.0.0
      description: >
        Example of 
        Syntax highlighting
    ```

    **GO** `go`
    ```go
    func readFileAsLines(path string) ([]string, error) {
      d, err := ioutil.ReadFile(path)
      if err != nil {
        return nil, err
      }
      s := string(d)
      res := strings.Split(s, "\n")
      return res, nil
    }
    ```

    **JAVA SCRIPT** `javascript` `js`
    ```js
      function add(x, y) {
        const answer = x + y;
        return answer;
      }

      for (let i = 0; i < 10; i++){
        console.log(3, i); // prints in console
      }
    ```

    **JAVA** `java`
    ```java
    BufferedWriter out = null;
    try {
      out = new BufferedWriter(new FileWriter(”filename”, true));
      out.write(”aString”);
    } catch (IOException e) {
      // error processing code
    } finally {
      if (out != null) {
        out.close();
      }
    }
    ```

    **PYTHON** `python` `py`
    ```python
    @app.route('/parse_data', methods=['GET', 'POST'])
    # define the function
    def parse_data():
      if request.method == 'POST':
        search = request.get_json()
        return jsonify(search)
      return render_template('index.html')
    ```

    **C SHARP** `chsarp` `cs`
    ```csharp
    using System.IO.Compression;

    namespace MyApplication {
      [Obsolete("...")]
      class Program : IInterface {
        public static List<int> JustDoIt(int count) {
          Console.WriteLine($"Hello {Name}!");
          return new List<int>(new int[] { 1, 2, 3 })
        }
      }
    }
    ```

    **HTTP** `http`
    ```http
    POST /pet HTTP/1.1
    Host: example.org
    Content-Type: application/json; charset=utf-8
    Content-Length: 137

    {
      "status": "ok",
      "extended": true,
      "results": [
        {"value": 0, "type": "int64"},
        {"value": 1.0e+3, "type": "decimal"}
      ]
    }
    ```

paths:
  /code:
    get:
      summary: Syntax Highlighting in Markdown
      description: |
        Syntax Highlighting in **OPERATION DESCRIPTION**
        ```http
        POST /pet HTTP/1.1
        Host: example.org
        Content-Type: application/json; charset=utf-8
        Content-Length: 137

        {
          "status": "ok",
          "extended": true,
          "results": [
            {"value": 0, "type": "int64"},
            {"value": 1.0e+3, "type": "decimal"}
          ]
        }
        ```

    post:
      summary: Request body
      requestBody:
        description: |
          Syntax Highlighting in **REQUEST BODY**
          ```js
          function add(x, y) {
            const answer = x + y;
            return answer;
          }

          for (let i = 0; i < 10; i++){
            console.log(3, i); // prints in console
          }
          ```

        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Price"
    
      responses:
        '200':
          description: Successful

components:
  schemas:
    Price:
      type: object
      properties:
        amount:
          type: integer
        currency:
          type: string
          