{
  "algorithm": {
    "parameters": [
      {
        "name": "subjectId",
        "type": "string"
      },
      {
        "name": "args",
        "type": "ArgsListComments"
      }
    ],
    "statements": [],
    "typeReturn": "list(Comment)",
    "variables": []
  },
  "routing": {
    "method": "GET",
    "parameters": [
      {
        "bind": "subjectId",
        "in": "Path",
        "name": "subjectId",
        "remarks": "subjectId"
      },
      {
        "bind": "args.writtenByRefType",
        "in": "Query",
        "name": "writtenByRefType",
        "remarks": "Written by reference type. Example: User"
      },
      {
        "bind": "args.writtenByRefId",
        "in": "Query",
        "name": "writtenByRefId",
        "remarks": "Written by reference id. Example: myusername"
      },
      {
        "bind": "args.newestFirst",
        "in": "Query",
        "name": "newestFirst",
        "remarks": "True: Show the new comments first - False: Show the old comments first."
      },
      {
        "bind": "args.parentCommentId",
        "in": "Query",
        "name": "parentCommentId",
        "remarks": "Filtered by Parent Comment Id"
      },
      {
        "bind": "args.refCommentId",
        "in": "Query",
        "name": "refCommentId",
        "remarks": "Filtered by Reference Comment Id"
      },
      {
        "bind": "args.offset",
        "in": "Query",
        "name": "offset",
        "remarks": "Offset row"
      },
      {
        "bind": "args.limit",
        "in": "Query",
        "name": "limit",
        "remarks": "Limit row count. 0 implies no limit"
      }
    ],
    "path": "/comments/{subjectId}",
    "remarks": "List comments",
    "responses": [
      {
        "httpStatus": "200",
        "remarks": "Ok"
      },
      {
        "errorName": "Unauthorized",
        "httpStatus": "401",
        "remarks": "Unauthorized"
      },
      {
        "errorName": "NotAcceptable",
        "httpStatus": "406",
        "remarks": "Not Acceptable"
      },
      {
        "errorName": "InternalServerError",
        "httpStatus": "500",
        "remarks": "500 message"
      }
    ]
  }
}