{
  "version": "1.0",
  "metadata": {
    "apiVersion": "1.0",
    "endpointPrefix": "contractor",
    "protocol": "json-rpc",
    "serviceFullName": "HiveTaxi Contractor Service",
    "signatureVersion": "v1",
    "targetPrefix": "Contractor"
  },
  "operations": {
    "AddEmployeePhone": {
      "http": {
        "target": "Employees.addEmployeePhone",
        "requestUri": "/api/contractors/{contractor}"
      },
      "input": {
        "type": "structure",
        "required": [
          "contractor",
          "groupId",
          "employeeId",
          "phone"
        ],
        "members": {
          "contractor": {
            "type": "integer",
            "location": "uri"
          },
          "groupId": {
            "type": "integer"
          },
          "employeeId": {
            "type": "integer"
          },
          "phone": {
            "type": "string"
          }
        }
      }
    },
    "RemoveEmployeePhone": {
      "http": {
        "target": "Employees.removeEmployeePhone",
        "requestUri": "/api/contractors/{contractor}"
      },
      "input": {
        "type": "structure",
        "required": [
          "contractor",
          "groupId",
          "employeeId",
          "phone"
        ],
        "members": {
          "contractor": {
            "type": "integer",
            "location": "uri"
          },
          "groupId": {
            "type": "integer"
          },
          "employeeId": {
            "type": "integer"
          },
          "phone": {
            "type": "string"
          }
        }
      }
    },
    "GetGroups": {
      "http": {
        "target": "Contractor.getGroups",
        "requestUri": "/api/contractors/{contractor}"
      },
      "input": {
        "type": "structure",
        "required": [
          "contractor"
        ],
        "members": {
          "contractor": {
            "type": "integer",
            "location": "uri"
          },
          "requestId": {
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "result"
        ],
        "members": {
          "result": {
            "type": "list",
            "member": {
              "type": "structure",
              "required": [
                "groupId",
                "name",
                "locked"
              ],
              "members": {
                "groupId": {
                  "type": "integer"
                },
                "name": {},
                "locked": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "AddEmployee": {
      "http": {
        "target": "Employees.addEmployee",
        "requestUri": "/api/contractors/{contractor}"
      },
      "input": {
        "type": "structure",
        "required": [
          "contractor",
          "groupId",
          "firstName",
          "lastName"
        ],
        "members": {
          "contractor": {
            "type": "integer",
            "location": "uri"
          },
          "groupId": {
            "type": "integer"
          },
          "firstName": {},
          "lastName": {},
          "middleName": {},
          "requestId": {
            "type": "integer"
          }
        }
      }
    },
    "EditEmployee": {
      "http": {
        "target": "Employees.editEmployee",
        "requestUri": "/api/contractors/{contractor}"
      },
      "input": {
        "type": "structure",
        "required": [
          "contractor",
          "groupId",
          "employeeId",
          "firstName",
          "lastName"
        ],
        "members": {
          "contractor": {
            "type": "integer",
            "location": "uri"
          },
          "groupId": {
            "type": "integer"
          },
          "employeeId": {
            "type": "integer"
          },
          "firstName": {},
          "lastName": {},
          "middleName": {},
          "requestId": {
            "type": "integer"
          }
        }
      }
    },
    "GetEmployee": {
      "http": {
        "target": "Employees.getEmployee",
        "requestUri": "/api/contractors/{contractor}"
      },
      "input": {
        "type": "structure",
        "required": [
          "contractor",
          "groupId",
          "employeeId"
        ],
        "members": {
          "contractor": {
            "type": "integer",
            "location": "uri"
          },
          "groupId": {
            "type": "integer"
          },
          "employeeId": {
            "type": "integer"
          },
          "requestId": {
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "result"
        ],
        "members": {
          "result": {
            "type": "structure",
            "required": [
              "groupId",
              "employeeId",
              "firstName",
              "lastName",
              "locked",
              "phones"
            ],
            "members": {
              "groupId": {
                "type": "integer"
              },
              "employeeId": {
                "type": "integer"
              },
              "firstName": {},
              "lastName": {},
              "middleName": {},
              "locked": {
                "type": "boolean"
              },
              "phones": {
                "type": "list",
                "member": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "GetEmployees": {
      "http": {
        "target": "Employees.getEmployees",
        "requestUri": "/api/contractors/{contractor}"
      },
      "input": {
        "type": "structure",
        "required": [
          "contractor",
          "groupId"
        ],
        "members": {
          "contractor": {
            "type": "integer",
            "location": "uri"
          },
          "groupId": {
            "type": "integer"
          },
          "requestId": {
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "result"
        ],
        "members": {
          "result": {
            "type": "list",
            "member": {
              "type": "structure",
              "required": [
                "groupId",
                "employeeId",
                "firstName",
                "lastName",
                "locked"
              ],
              "members": {
                "groupId": {
                  "type": "integer"
                },
                "employeeId": {
                  "type": "integer"
                },
                "firstName": {},
                "lastName": {},
                "middleName": {},
                "locked": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "LockEmployee": {
      "http": {
        "target": "Employees.lockEmployee",
        "requestUri": "/api/contractors/{contractor}"
      },
      "input": {
        "type": "structure",
        "required": [
          "contractor",
          "groupId",
          "employeeId"
        ],
        "members": {
          "contractor": {
            "type": "integer",
            "location": "uri"
          },
          "groupId": {
            "type": "integer"
          },
          "employeeId": {
            "type": "integer"
          },
          "requestId": {
            "type": "integer"
          }
        }
      }
    },
    "RemoveEmployee": {
      "http": {
        "target": "Employees.removeEmployee",
        "requestUri": "/api/contractors/{contractor}"
      },
      "input": {
        "type": "structure",
        "required": [
          "contractor",
          "groupId",
          "employeeId"
        ],
        "members": {
          "contractor": {
            "type": "integer",
            "location": "uri"
          },
          "groupId": {
            "type": "integer"
          },
          "employeeId": {
            "type": "integer"
          },
          "requestId": {
            "type": "integer"
          }
        }
      }
    },
    "UnlockEmployee": {
      "http": {
        "target": "Employees.unlockEmployee",
        "requestUri": "/api/contractors/{contractor}"
      },
      "input": {
        "type": "structure",
        "required": [
          "contractor",
          "groupId",
          "employeeId"
        ],
        "members": {
          "contractor": {
            "type": "integer",
            "location": "uri"
          },
          "groupId": {
            "type": "integer"
          },
          "employeeId": {
            "type": "integer"
          },
          "requestId": {
            "type": "integer"
          }
        }
      }
    },
    "GetUserInfo": {
      "http": {
        "target": "User.getInfo",
        "requestUri": "/api/contractors/{contractor}"
      },
      "input": {
        "type": "structure",
        "required": [
          "contractor"
        ],
        "members": {
          "contractor": {
            "type": "integer",
            "location": "uri"
          },
          "requestId": {
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "result"
        ],
        "members": {
          "result": {
            "type": "structure",
            "required": [
              "name"
            ],
            "members": {
              "name": {}
            }
          }
        }
      }
    },
    "GetAccountState": {
      "http": {
        "target": "Contractor.getAccountState",
        "requestUri": "/api/contractors/{contractor}"
      },
      "input": {
        "type": "structure",
        "required": [
          "contractor"
        ],
        "members": {
          "contractor": {
            "type": "integer",
            "location": "uri"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "result"
        ],
        "members": {
          "result": {
            "type": "structure",
            "required": [
              "balance"
            ],
            "members": {
              "balance": {
                "type": "float"
              }
            }
          }
        }
      }
    }
  },
  "shapes": {},
  "paginators": {},
  "waiters": {}
}