json_schema: {
      "properties": {
          "annotationPrefix": {
              "description": "The prefix for HTTP annotations in Thrift files",
              "examples": [
                  "zanzibar"
              ],
              "type": "string"
          },
          "clientConfig": {
              "description": "The directory for client module configs, relative to application root directory",
              "examples": [
                  "./clients"
              ],
              "type": "string"
          },
          "copyrightHeader": {
              "description": "The path of copyright header file, relative to application root directory",
              "examples": [
                  "./copyright_header.txt"
              ],
              "type": "string"
          },
          "endpointConfig": {
              "description": "The directory for endpoint module configs, relative to application root directory",
              "examples": [
                  "./endpoints"
              ],
              "type": "string"
          },
          "genCodePackage": {
              "description": "The package path for thriftrw and easyjson generated structs and (de)serializers",
              "examples": [
                  "github.com/uber/zanzibar/examples/example-gateway/build/gen-code"
              ],
              "type": "string"
          },
          "genMock": {
              "description": "Whether to generate mocks during code generation",
              "examples": [
                  true
              ],
              "type": "boolean"
          },
          "middlewareConfig": {
              "description": "The directory for middleware module configs, relative to application root directory",
              "examples": [
                  "./middlewares"
              ],
              "type": "string"
          },
          "packageRoot": {
              "description": "The application package root",
              "examples": [
                  "github.com/uber/zanzibar/examples/example-gateway"
              ],
              "type": "string"
          },
          "targetGenDir": {
              "description": "An explanation about the purpose of this instance.",
              "examples": [
                  "./build"
              ],
              "type": "string"
          },
          "thriftRootDir": {
              "description": "The path of idl directory, relative to application root directory",
              "examples": [
                  "./idl"
              ],
              "type": "string"
          },
          "traceKey": {
              "description": "The name of the generated trace header",
              "examples": [
                  "x-trace-id"
              ],
              "type": "string"
          }
      },
      "required": [
          "packageRoot",
          "thriftRootDir",
          "genCodePackage",
          "targetGenDir",
          "middlewareConfig",
          "copyrightHeader",
          "annotationPrefix",
          "traceKey",
          "genMock"
      ],
      "type": "object"
  }