{
  "version": "1.0",
  "metadata": {
    "apiVersion": "1.0",
    "endpointPrefix": "cartography",
    "protocol": "rest-json",
    "serviceFullName": "HiveTaxi Cartographer Service",
    "signatureVersion": "v1",
    "targetPrefix": "Cartographer_1.0"
  },
  "operations": {
    "ListPointTypes": {
      "http": {
        "method": "GET",
        "requestUri": "/api/cartography/1.0/address/points/types"
      },
      "output": {
        "type": "list",
        "member": {
          "type": "structure",
          "required": [
            "id",
            "value"
          ],
          "members": {
            "id": {},
            "value": {}
          }
        }
      },
      "alias": "GetPointTypes"
    },
    "FindSettlements": {
      "http": {
        "method": "GET",
        "requestUri": "/api/cartography/1.0/address/settlements"
      },
      "input": {
        "type": "structure",
        "required": [
          "pattern"
        ],
        "members": {
          "pattern": {
            "location": "querystring"
          }
        }
      },
      "output": {
        "shape": "S3"
      }
    },
    "FindAddresses": {
      "http": {
        "method": "GET",
        "requestUri": "/api/cartography/1.0/address/addresses"
      },
      "input": {
        "type": "structure",
        "required": [
          "pattern",
          "parent"
        ],
        "members": {
          "pattern": {
            "location": "querystring"
          },
          "parent": {
            "type": "long",
            "location": "querystring"
          }
        }
      },
      "output": {
        "shape": "S3"
      },
      "alias": "FindStreets"
    },
    "GetAddressPoints": {
      "http": {
        "method": "GET",
        "requestUri": "/api/cartography/1.0/address/points"
      },
      "input": {
        "type": "structure",
        "required": [
          "parent"
        ],
        "members": {
          "parent": {
            "type": "long",
            "location": "querystring"
          }
        }
      },
      "output": {
        "type": "list",
        "member": {
          "type": "structure",
          "required": [
            "id",
            "info",
            "coordinates"
          ],
          "members": {
            "id": {
              "type": "long"
            },
            "info": {
              "type": "structure",
              "members": {
                "house": {},
                "housing": {},
                "building": {},
                "lit": {}
              }
            },
            "coordinates": {
              "shape": "Sd"
            }
          }
        }
      }
    },
    "ListTimezones": {
      "http": {
        "method": "GET",
        "requestUri": "/api/cartography/1.0/timezones"
      },
      "output": {
        "type": "list",
        "member": {
          "type": "structure",
          "required": [
            "id",
            "value"
          ],
          "members": {
            "id": {
              "type": "integer"
            },
            "value": {
              "type": "string"
            }
          }
        }
      },
      "alias": "GetTimezones"
    },
    "ListObjectLevels": {
      "http": {
        "method": "GET",
        "requestUri": "/api/cartography/1.0/address/objects/levels"
      },
      "output": {
        "type": "list",
        "member": {
          "type": "structure",
          "required": [
            "id",
            "name"
          ],
          "members": {
            "id": {},
            "name": {}
          }
        }
      },
      "alias": "GetObjectLevels"
    },
    "FindObjects": {
      "http": {
        "method": "GET",
        "requestUri": "/api/cartography/1.1/address/objects/find"
      },
      "input": {
        "type": "structure",
        "members": {
          "id": {
            "type": "integer",
            "location": "querystring"
          },
          "existence": {
            "type": "string",
            "location": "querystring"
          },
          "formalName": {
            "type": "string",
            "location": "querystring"
          },
          "shortName": {
            "type": "string",
            "location": "querystring"
          },
          "levelIds": {
            "type": "string",
            "location": "querystring"
          },
          "guid": {
            "type": "string",
            "location": "querystring"
          },
          "parentGuid": {
            "type": "string",
            "location": "querystring"
          },
          "limit": {
            "type": "integer",
            "location": "querystring"
          },
          "offset": {
            "type": "integer",
            "location": "querystring"
          },
          "orderBy": {
            "type": "string",
            "location": "querystring"
          }
        }
      },
      "output": {
        "type": "list",
        "member": {
          "type": "structure",
          "required": [
            "id",
            "formalName",
            "shortName",
            "levelId",
            "guid",
            "removed"
          ],
          "members": {
            "id": {
              "type": "integer"
            },
            "formalName": {
              "type": "string"
            },
            "shortName": {
              "type": "string"
            },
            "levelId": {
              "type": "integer"
            },
            "guid": {
              "type": "string"
            },
            "parentGuid": {
              "type": "string"
            },
            "parentFormalName": {
              "type": "string"
            },
            "parentShortName": {
              "type": "string"
            },
            "parentLevelId": {
              "type": "integer"
            },
            "timezoneId": {
              "type": "integer"
            },
            "center": {
              "shape": "Sd"
            },
            "removed": {
              "type": "boolean"
            }
          }
        }
      },
      "alias": "GetObjects"
    },
    "AddObject": {
      "http": {
        "requestUri": "/api/cartography/1.0/address/objects/add"
      },
      "input": {
        "type": "structure",
        "required": [
          "formalName",
          "levelId",
          "shortName",
          "parentGuid"
        ],
        "members": {
          "formalName": {},
          "shortName": {},
          "levelId": {
            "type": "integer"
          },
          "parentGuid": {},
          "timezoneId": {
            "type": "integer"
          },
          "center": {
            "shape": "Sd"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "id"
        ],
        "members": {
          "id": {
            "type": "long"
          }
        }
      },
      "alias": "CreateObject"
    },
    "EditObject": {
      "http": {
        "requestUri": "/api/cartography/1.0/address/objects/edit"
      },
      "input": {
        "type": "structure",
        "required": [
          "id",
          "formalName",
          "shortName",
          "levelId",
          "parentGuid"
        ],
        "members": {
          "id": {
            "type": "long"
          },
          "formalName": {},
          "shortName": {},
          "levelId": {
            "type": "integer"
          },
          "parentGuid": {},
          "timezoneId": {
            "type": "integer"
          },
          "center": {
            "shape": "Sd"
          }
        }
      },
      "output": {},
      "alias": "UpdateObject"
    },
    "MoveObjects": {
      "http": {
        "requestUri": "/api/cartography/1.0/address/objects/edit-parent"
      },
      "input": {
        "type": "structure",
        "required": [
          "ids",
          "parentGuid"
        ],
        "members": {
          "ids": {
            "type": "list",
            "member": {
              "type": "long"
            }
          },
          "parentGuid": {}
        }
      },
      "output": {},
      "alias": "ChangeParent"
    },
    "RemoveObjects": {
      "http": {
        "requestUri": "/api/cartography/1.0/address/objects/remove"
      },
      "input": {
        "type": "structure",
        "required": [
          "ids"
        ],
        "members": {
          "ids": {
            "type": "list",
            "member": {
              "type": "long"
            }
          }
        }
      },
      "output": {},
      "alias": "DeleteObjects"
    },
    "RestoreObjects": {
      "http": {
        "requestUri": "/api/cartography/1.0/address/objects/restore"
      },
      "input": {
        "type": "structure",
        "required": [
          "ids"
        ],
        "members": {
          "ids": {
            "type": "list",
            "member": {
              "type": "long"
            }
          }
        }
      },
      "output": {},
      "alias": "UndeleteObjects"
    }
  },
  "shapes": {
    "S3": {
      "type": "list",
      "member": {
        "type": "structure",
        "required": [
          "levels"
        ],
        "members": {
          "levels": {
            "type": "list",
            "member": {
              "type": "structure",
              "members": {
                "id": {
                  "type": "integer"
                },
                "type": {
                  "type": "integer"
                },
                "name": {},
                "prefix": {}
              }
            }
          },
          "priority": {
            "type": "integer"
          },
          "center": {
            "type": "structure",
            "required": [
              "coordinates"
            ],
            "members": {
              "coordinates": {
                "type": "list",
                "member": {
                  "type": "float"
                }
              }
            }
          }
        }
      }
    },
    "Sd": {
      "type": "structure",
      "required": [
        "lon",
        "lat"
      ],
      "members": {
        "lon": {
          "type": "float"
        },
        "lat": {
          "type": "float"
        }
      }
    }
  },
  "paginators": {},
  "waiters": {}
}