json_schema: {
      "properties": {
          "config": {
              "properties": {
                  "exposedMethods": {
                      "description": "The thrift methods exposed on the client in Go, key is method name in Go, value is thrift method in form of service::method",
                      "examples": [
                          "{\"SaveContacts\": \"Contacts::saveContacts\"}"
                      ],
                      "type": "object"
                  },
                  "fixture": {
                      "properties": {
                          "importPath": {
                              "description": "Package import path for concrete fixtures",
                              "examples": [
                                  "github.com/uber/zanzibar/examples/example-gateway/clients/contacts/fixture"
                              ],
                              "type": "string"
                          },
                          "scenarios": {
                              "description": "Fixture scenarios, key is client method name, value is a list of string indicating different scenarios",
                              "examples": [
                                  "{\"SaveContacts\": [\"success\"]}"
                              ],
                              "type": "object"
                          }
                      },
                      "type": "object"
                  },
                  "idlFile": {
                      "description": "Path to client thrift file, relative to idl path",
                      "examples": [
                          "clients/contacts/contacts.thrift"
                      ],
                      "type": "string"
                  },
                  "idlFileSha": {
                      "description": "Sha of the thrift file, reserved but currently not used",
                      "examples": [
                          "{{placeholder}}"
                      ],
                      "type": "string"
                  }
              },
              "type": "object"
          },
          "dependencies": {
              "properties": {
                  "client": {
                      "items": {
                          "description": "Name of the client this client depends on",
                          "examples": [
                              "foo"
                          ],
                          "type": "string"
                      },
                      "type": "array"
                  }
              },
              "type": "object"
          },
          "name": {
              "description": "Client name",
              "examples": [
                  "contacts"
              ],
              "type": "string"
          },
          "type": {
              "description": "Client type, either http, tchannel or custom",
              "enum": [
                  "http",
                  "tchannel",
                  "custom"
              ],
              "examples": [
                  "http"
              ],
              "type": "string"
          }
      },
      "required": [
          "name",
          "type",
          "config",
          "dependencies"
      ],
      "type": "object"
  }