First prototype

Change-Id: Ieceb55636bda133466609471f25508d0ae83c52c
diff --git a/api_proto/kill_switch.proto b/api_proto/kill_switch.proto
new file mode 100644
index 0000000..38b688c
--- /dev/null
+++ b/api_proto/kill_switch.proto
@@ -0,0 +1,93 @@
+syntax = "proto3";
+
+import "api_proto/common.proto";
+import "api_proto/kill_switch_objects.proto";
+
+option go_package = "gomodules.avm99963.com/twpt-server/api_proto";
+
+service KillSwitchService {
+  rpc GetKillSwitchStatus (GetKillSwitchStatusRequest) returns (GetKillSwitchStatusResponse) {}
+  rpc GetKillSwitchOverview (GetKillSwitchOverviewRequest) returns (GetKillSwitchOverviewResponse) {}
+  rpc ListFeatures (ListFeaturesRequest) returns (ListFeaturesResponse) {}
+  rpc SyncFeatures (SyncFeaturesRequest) returns (SyncFeaturesResponse) {}
+  rpc EnableKillSwitch (EnableKillSwitchRequest) returns (EnableKillSwitchResponse) {}
+  rpc DisableKillSwitch (DisableKillSwitchRequest) returns (DisableKillSwitchResponse) {}
+  rpc ListAuthorizedUsers (ListAuthorizedUsersRequest) returns (ListAuthorizedUsersResponse) {}
+  rpc AddAuthorizedUser (AddAuthorizedUserRequest) returns (AddAuthorizedUserResponse) {}
+  rpc UpdateAuthorizedUser (UpdateAuthorizedUserRequest) returns (UpdateAuthorizedUserResponse) {}
+  rpc DeleteAuthorizedUser (DeleteAuthorizedUserRequest) returns (DeleteAuthorizedUserResponse) {}
+}
+
+// Retrieve kill switch status depending on the environment.
+message GetKillSwitchStatusRequest {
+  Environment environment = 1;
+}
+
+message GetKillSwitchStatusResponse {
+  repeated KillSwitch kill_switches = 1;
+}
+
+message GetKillSwitchOverviewRequest {
+}
+
+message GetKillSwitchOverviewResponse {
+  repeated KillSwitch kill_switches = 1;
+}
+
+message ListFeaturesRequest {
+  bool with_deprecated_features = 1;
+}
+
+message ListFeaturesResponse {
+  repeated Feature features = 1;
+}
+
+message SyncFeaturesRequest {
+  repeated Feature features = 1;
+}
+
+message SyncFeaturesResponse {
+}
+
+message EnableKillSwitchRequest {
+  KillSwitch kill_switch = 1;
+}
+
+message EnableKillSwitchResponse {
+}
+
+message DisableKillSwitchRequest {
+  int32 kill_switch_id = 1;
+}
+
+message DisableKillSwitchResponse {
+}
+
+message ListAuthorizedUsersRequest {
+}
+
+message ListAuthorizedUsersResponse {
+  KillSwitchAuthorizedUser authorized_users = 1;
+}
+
+message AddAuthorizedUserRequest {
+  KillSwitchAuthorizedUser user = 1;
+}
+
+message AddAuthorizedUserResponse {
+}
+
+message UpdateAuthorizedUserRequest {
+  int32 user_id = 1;
+  KillSwitchAuthorizedUser user = 2;
+}
+
+message UpdateAuthorizedUserResponse {
+}
+
+message DeleteAuthorizedUserRequest {
+  int32 user_id = 1;
+}
+
+message DeleteAuthorizedUserResponse {
+}