Browse Source

chore: gen

Mustafa Arici 7 years ago
parent
commit
32a4f61eed
6 changed files with 1095 additions and 309 deletions
  1. 18 17
      Gopkg.lock
  2. 117 23
      api/pb/auth.pb.go
  3. 437 83
      api/pb/network.pb.go
  4. 272 119
      api/pb/user.pb.go
  5. 241 57
      api/pb/vpn.pb.go
  6. 10 10
      bindata/bindata.go

+ 18 - 17
Gopkg.lock

@@ -35,13 +35,13 @@
   branch = "master"
   name = "github.com/dustin/go-humanize"
   packages = ["."]
-  revision = "bb3d318650d48840a39aa21a027c6630e198e626"
+  revision = "02af3965c54e8cacf948b97fef38925c4120652c"
 
 [[projects]]
   branch = "master"
   name = "github.com/go-openapi/analysis"
   packages = ["."]
-  revision = "f59a71f0ece6f9dfb438be7f45148f006cbad88e"
+  revision = "863ac7f90e00e88e507095639a8457bbbf3c2ec9"
 
 [[projects]]
   branch = "master"
@@ -79,31 +79,31 @@
     "middleware/untyped",
     "security"
   ]
-  revision = "62281b694b396a17fe3e4313ee8b0ca2c3cca719"
+  revision = "c0cae94704c76c8643896d8054080f91e920105b"
 
 [[projects]]
   branch = "master"
   name = "github.com/go-openapi/spec"
   packages = ["."]
-  revision = "9acd88844bc186c3ec7f318cd3d56f1114b4ab99"
+  revision = "bcff419492eeeb01f76e77d2ebc714dc97b607f5"
 
 [[projects]]
   branch = "master"
   name = "github.com/go-openapi/strfmt"
   packages = ["."]
-  revision = "6ba31556a6c60db8615afb9d8eddae7aae15eb48"
+  revision = "481808443b00a14745fada967cb5eeff0f9b1df2"
 
 [[projects]]
   branch = "master"
   name = "github.com/go-openapi/swag"
   packages = ["."]
-  revision = "ceb469cb0fdf2d792f28d771bc05da6c606f55e5"
+  revision = "811b1089cde9dad18d4d0c2d09fbdbf28dbd27a5"
 
 [[projects]]
   branch = "master"
   name = "github.com/go-openapi/validate"
   packages = ["."]
-  revision = "180bba53b98899f743a112e568bed9e2ef31aa20"
+  revision = "9286f6d0e5c1ffc7cf2bda1d59291dc3c4f2f828"
 
 [[projects]]
   branch = "master"
@@ -118,7 +118,7 @@
     "ptypes/struct",
     "ptypes/timestamp"
   ]
-  revision = "e09c5db296004fbe3f74490e84dcd62c3c5ddb1b"
+  revision = "927b65914520a8b7d44f5c9057611cfec6b2e2d0"
 
 [[projects]]
   name = "github.com/google/uuid"
@@ -177,13 +177,13 @@
   branch = "master"
   name = "github.com/mitchellh/mapstructure"
   packages = ["."]
-  revision = "00c29f56e2386353d58c599509e8dc3801b0d716"
+  revision = "bb74f1db0675b241733089d5a1faa5dd8b0ef57b"
 
 [[projects]]
   branch = "master"
   name = "github.com/olekukonko/tablewriter"
   packages = ["."]
-  revision = "b8a9be070da40449e501c3c4730a889e42d87a9e"
+  revision = "d4647c9c7a84d847478d890b816b7d8b62b0b279"
 
 [[projects]]
   name = "github.com/urfave/cli"
@@ -201,21 +201,21 @@
     "scrypt",
     "ssh/terminal"
   ]
-  revision = "12892e8c234f4fe6f6803f052061de9057903bb2"
+  revision = "94e3fad7f1b4eed4ec147751ad6b4c4d33f00611"
 
 [[projects]]
   branch = "master"
   name = "golang.org/x/net"
   packages = [
     "context",
+    "http/httpguts",
     "http2",
     "http2/hpack",
     "idna",
     "internal/timeseries",
-    "lex/httplex",
     "trace"
   ]
-  revision = "b68f30494add4df6bd8ef5e82803f308e7f7c59c"
+  revision = "2491c5de3490fced2f6cff376127c667efeed857"
 
 [[projects]]
   branch = "master"
@@ -224,7 +224,7 @@
     "unix",
     "windows"
   ]
-  revision = "378d26f46672a356c46195c28f61bdb4c0a781dd"
+  revision = "d0faeb539838e250bd0a9db4182d48d4a1915181"
 
 [[projects]]
   name = "golang.org/x/text"
@@ -255,7 +255,7 @@
     "googleapis/api/annotations",
     "googleapis/rpc/status"
   ]
-  revision = "ab0870e398d5dd054b868c0db1481ab029b9a9f2"
+  revision = "86e600f69ee4704c6efbf6a2a40a5c10700e76c2"
 
 [[projects]]
   name = "google.golang.org/grpc"
@@ -264,6 +264,7 @@
     "balancer",
     "balancer/base",
     "balancer/roundrobin",
+    "channelz",
     "codes",
     "connectivity",
     "credentials",
@@ -284,8 +285,8 @@
     "tap",
     "transport"
   ]
-  revision = "1e2570b1b19ade82d8dbb31bba4e65e9f9ef5b34"
-  version = "v1.11.1"
+  revision = "41344da2231b913fa3d983840a57a6b1b7b631a1"
+  version = "v1.12.0"
 
 [[projects]]
   name = "gopkg.in/hlandau/easymetric.v1"

+ 117 - 23
api/pb/auth.pb.go

@@ -18,23 +18,73 @@ var _ = proto.Marshal
 var _ = fmt.Errorf
 var _ = math.Inf
 
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
+
 type AuthStatusRequest struct {
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
 }
 
-func (m *AuthStatusRequest) Reset()                    { *m = AuthStatusRequest{} }
-func (m *AuthStatusRequest) String() string            { return proto.CompactTextString(m) }
-func (*AuthStatusRequest) ProtoMessage()               {}
-func (*AuthStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{0} }
+func (m *AuthStatusRequest) Reset()         { *m = AuthStatusRequest{} }
+func (m *AuthStatusRequest) String() string { return proto.CompactTextString(m) }
+func (*AuthStatusRequest) ProtoMessage()    {}
+func (*AuthStatusRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_auth_79ec97a74d2b7cf3, []int{0}
+}
+func (m *AuthStatusRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_AuthStatusRequest.Unmarshal(m, b)
+}
+func (m *AuthStatusRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_AuthStatusRequest.Marshal(b, m, deterministic)
+}
+func (dst *AuthStatusRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_AuthStatusRequest.Merge(dst, src)
+}
+func (m *AuthStatusRequest) XXX_Size() int {
+	return xxx_messageInfo_AuthStatusRequest.Size(m)
+}
+func (m *AuthStatusRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_AuthStatusRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_AuthStatusRequest proto.InternalMessageInfo
 
 type AuthAuthenticateRequest struct {
-	Username string `protobuf:"bytes,1,opt,name=username" json:"username,omitempty"`
-	Password string `protobuf:"bytes,2,opt,name=password" json:"password,omitempty"`
+	Username             string   `protobuf:"bytes,1,opt,name=username" json:"username,omitempty"`
+	Password             string   `protobuf:"bytes,2,opt,name=password" json:"password,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *AuthAuthenticateRequest) Reset()         { *m = AuthAuthenticateRequest{} }
+func (m *AuthAuthenticateRequest) String() string { return proto.CompactTextString(m) }
+func (*AuthAuthenticateRequest) ProtoMessage()    {}
+func (*AuthAuthenticateRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_auth_79ec97a74d2b7cf3, []int{1}
+}
+func (m *AuthAuthenticateRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_AuthAuthenticateRequest.Unmarshal(m, b)
+}
+func (m *AuthAuthenticateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_AuthAuthenticateRequest.Marshal(b, m, deterministic)
+}
+func (dst *AuthAuthenticateRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_AuthAuthenticateRequest.Merge(dst, src)
+}
+func (m *AuthAuthenticateRequest) XXX_Size() int {
+	return xxx_messageInfo_AuthAuthenticateRequest.Size(m)
+}
+func (m *AuthAuthenticateRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_AuthAuthenticateRequest.DiscardUnknown(m)
 }
 
-func (m *AuthAuthenticateRequest) Reset()                    { *m = AuthAuthenticateRequest{} }
-func (m *AuthAuthenticateRequest) String() string            { return proto.CompactTextString(m) }
-func (*AuthAuthenticateRequest) ProtoMessage()               {}
-func (*AuthAuthenticateRequest) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{1} }
+var xxx_messageInfo_AuthAuthenticateRequest proto.InternalMessageInfo
 
 func (m *AuthAuthenticateRequest) GetUsername() string {
 	if m != nil {
@@ -51,14 +101,36 @@ func (m *AuthAuthenticateRequest) GetPassword() string {
 }
 
 type AuthStatusResponse struct {
-	User   *UserResponse_User `protobuf:"bytes,1,opt,name=user" json:"user,omitempty"`
-	IsRoot bool               `protobuf:"varint,2,opt,name=is_root,json=isRoot" json:"is_root,omitempty"`
+	User                 *UserResponse_User `protobuf:"bytes,1,opt,name=user" json:"user,omitempty"`
+	IsRoot               bool               `protobuf:"varint,2,opt,name=is_root,json=isRoot" json:"is_root,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
+	XXX_unrecognized     []byte             `json:"-"`
+	XXX_sizecache        int32              `json:"-"`
+}
+
+func (m *AuthStatusResponse) Reset()         { *m = AuthStatusResponse{} }
+func (m *AuthStatusResponse) String() string { return proto.CompactTextString(m) }
+func (*AuthStatusResponse) ProtoMessage()    {}
+func (*AuthStatusResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_auth_79ec97a74d2b7cf3, []int{2}
+}
+func (m *AuthStatusResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_AuthStatusResponse.Unmarshal(m, b)
+}
+func (m *AuthStatusResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_AuthStatusResponse.Marshal(b, m, deterministic)
+}
+func (dst *AuthStatusResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_AuthStatusResponse.Merge(dst, src)
+}
+func (m *AuthStatusResponse) XXX_Size() int {
+	return xxx_messageInfo_AuthStatusResponse.Size(m)
+}
+func (m *AuthStatusResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_AuthStatusResponse.DiscardUnknown(m)
 }
 
-func (m *AuthStatusResponse) Reset()                    { *m = AuthStatusResponse{} }
-func (m *AuthStatusResponse) String() string            { return proto.CompactTextString(m) }
-func (*AuthStatusResponse) ProtoMessage()               {}
-func (*AuthStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{2} }
+var xxx_messageInfo_AuthStatusResponse proto.InternalMessageInfo
 
 func (m *AuthStatusResponse) GetUser() *UserResponse_User {
 	if m != nil {
@@ -75,13 +147,35 @@ func (m *AuthStatusResponse) GetIsRoot() bool {
 }
 
 type AuthAuthenticateResponse struct {
-	Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"`
+	Token                string   `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *AuthAuthenticateResponse) Reset()         { *m = AuthAuthenticateResponse{} }
+func (m *AuthAuthenticateResponse) String() string { return proto.CompactTextString(m) }
+func (*AuthAuthenticateResponse) ProtoMessage()    {}
+func (*AuthAuthenticateResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_auth_79ec97a74d2b7cf3, []int{3}
+}
+func (m *AuthAuthenticateResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_AuthAuthenticateResponse.Unmarshal(m, b)
+}
+func (m *AuthAuthenticateResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_AuthAuthenticateResponse.Marshal(b, m, deterministic)
+}
+func (dst *AuthAuthenticateResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_AuthAuthenticateResponse.Merge(dst, src)
+}
+func (m *AuthAuthenticateResponse) XXX_Size() int {
+	return xxx_messageInfo_AuthAuthenticateResponse.Size(m)
+}
+func (m *AuthAuthenticateResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_AuthAuthenticateResponse.DiscardUnknown(m)
 }
 
-func (m *AuthAuthenticateResponse) Reset()                    { *m = AuthAuthenticateResponse{} }
-func (m *AuthAuthenticateResponse) String() string            { return proto.CompactTextString(m) }
-func (*AuthAuthenticateResponse) ProtoMessage()               {}
-func (*AuthAuthenticateResponse) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{3} }
+var xxx_messageInfo_AuthAuthenticateResponse proto.InternalMessageInfo
 
 func (m *AuthAuthenticateResponse) GetToken() string {
 	if m != nil {
@@ -202,9 +296,9 @@ var _AuthService_serviceDesc = grpc.ServiceDesc{
 	Metadata: "auth.proto",
 }
 
-func init() { proto.RegisterFile("auth.proto", fileDescriptor3) }
+func init() { proto.RegisterFile("auth.proto", fileDescriptor_auth_79ec97a74d2b7cf3) }
 
-var fileDescriptor3 = []byte{
+var fileDescriptor_auth_79ec97a74d2b7cf3 = []byte{
 	// 306 bytes of a gzipped FileDescriptorProto
 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x51, 0x41, 0x4e, 0x2a, 0x41,
 	0x10, 0xcd, 0x90, 0xff, 0x11, 0x0b, 0x37, 0x36, 0x22, 0x38, 0x10, 0x63, 0x26, 0x2e, 0xd4, 0x05,

+ 437 - 83
api/pb/network.pb.go

@@ -18,17 +18,45 @@ var _ = proto.Marshal
 var _ = fmt.Errorf
 var _ = math.Inf
 
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
+
 type NetworkCreateRequest struct {
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
-	Cidr string `protobuf:"bytes,2,opt,name=cidr" json:"cidr,omitempty"`
-	Type string `protobuf:"bytes,3,opt,name=type" json:"type,omitempty"`
-	Via  string `protobuf:"bytes,4,opt,name=via" json:"via,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Cidr                 string   `protobuf:"bytes,2,opt,name=cidr" json:"cidr,omitempty"`
+	Type                 string   `protobuf:"bytes,3,opt,name=type" json:"type,omitempty"`
+	Via                  string   `protobuf:"bytes,4,opt,name=via" json:"via,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *NetworkCreateRequest) Reset()         { *m = NetworkCreateRequest{} }
+func (m *NetworkCreateRequest) String() string { return proto.CompactTextString(m) }
+func (*NetworkCreateRequest) ProtoMessage()    {}
+func (*NetworkCreateRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_network_8219686474e53e94, []int{0}
+}
+func (m *NetworkCreateRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_NetworkCreateRequest.Unmarshal(m, b)
+}
+func (m *NetworkCreateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_NetworkCreateRequest.Marshal(b, m, deterministic)
+}
+func (dst *NetworkCreateRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_NetworkCreateRequest.Merge(dst, src)
+}
+func (m *NetworkCreateRequest) XXX_Size() int {
+	return xxx_messageInfo_NetworkCreateRequest.Size(m)
+}
+func (m *NetworkCreateRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_NetworkCreateRequest.DiscardUnknown(m)
 }
 
-func (m *NetworkCreateRequest) Reset()                    { *m = NetworkCreateRequest{} }
-func (m *NetworkCreateRequest) String() string            { return proto.CompactTextString(m) }
-func (*NetworkCreateRequest) ProtoMessage()               {}
-func (*NetworkCreateRequest) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{0} }
+var xxx_messageInfo_NetworkCreateRequest proto.InternalMessageInfo
 
 func (m *NetworkCreateRequest) GetName() string {
 	if m != nil {
@@ -59,21 +87,65 @@ func (m *NetworkCreateRequest) GetVia() string {
 }
 
 type NetworkListRequest struct {
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *NetworkListRequest) Reset()         { *m = NetworkListRequest{} }
+func (m *NetworkListRequest) String() string { return proto.CompactTextString(m) }
+func (*NetworkListRequest) ProtoMessage()    {}
+func (*NetworkListRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_network_8219686474e53e94, []int{1}
+}
+func (m *NetworkListRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_NetworkListRequest.Unmarshal(m, b)
+}
+func (m *NetworkListRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_NetworkListRequest.Marshal(b, m, deterministic)
+}
+func (dst *NetworkListRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_NetworkListRequest.Merge(dst, src)
+}
+func (m *NetworkListRequest) XXX_Size() int {
+	return xxx_messageInfo_NetworkListRequest.Size(m)
+}
+func (m *NetworkListRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_NetworkListRequest.DiscardUnknown(m)
 }
 
-func (m *NetworkListRequest) Reset()                    { *m = NetworkListRequest{} }
-func (m *NetworkListRequest) String() string            { return proto.CompactTextString(m) }
-func (*NetworkListRequest) ProtoMessage()               {}
-func (*NetworkListRequest) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{1} }
+var xxx_messageInfo_NetworkListRequest proto.InternalMessageInfo
 
 type NetworkDeleteRequest struct {
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *NetworkDeleteRequest) Reset()         { *m = NetworkDeleteRequest{} }
+func (m *NetworkDeleteRequest) String() string { return proto.CompactTextString(m) }
+func (*NetworkDeleteRequest) ProtoMessage()    {}
+func (*NetworkDeleteRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_network_8219686474e53e94, []int{2}
+}
+func (m *NetworkDeleteRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_NetworkDeleteRequest.Unmarshal(m, b)
+}
+func (m *NetworkDeleteRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_NetworkDeleteRequest.Marshal(b, m, deterministic)
+}
+func (dst *NetworkDeleteRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_NetworkDeleteRequest.Merge(dst, src)
+}
+func (m *NetworkDeleteRequest) XXX_Size() int {
+	return xxx_messageInfo_NetworkDeleteRequest.Size(m)
+}
+func (m *NetworkDeleteRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_NetworkDeleteRequest.DiscardUnknown(m)
 }
 
-func (m *NetworkDeleteRequest) Reset()                    { *m = NetworkDeleteRequest{} }
-func (m *NetworkDeleteRequest) String() string            { return proto.CompactTextString(m) }
-func (*NetworkDeleteRequest) ProtoMessage()               {}
-func (*NetworkDeleteRequest) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{2} }
+var xxx_messageInfo_NetworkDeleteRequest proto.InternalMessageInfo
 
 func (m *NetworkDeleteRequest) GetName() string {
 	if m != nil {
@@ -83,22 +155,66 @@ func (m *NetworkDeleteRequest) GetName() string {
 }
 
 type NetworkGetAllTypesRequest struct {
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *NetworkGetAllTypesRequest) Reset()         { *m = NetworkGetAllTypesRequest{} }
+func (m *NetworkGetAllTypesRequest) String() string { return proto.CompactTextString(m) }
+func (*NetworkGetAllTypesRequest) ProtoMessage()    {}
+func (*NetworkGetAllTypesRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_network_8219686474e53e94, []int{3}
+}
+func (m *NetworkGetAllTypesRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_NetworkGetAllTypesRequest.Unmarshal(m, b)
+}
+func (m *NetworkGetAllTypesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_NetworkGetAllTypesRequest.Marshal(b, m, deterministic)
+}
+func (dst *NetworkGetAllTypesRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_NetworkGetAllTypesRequest.Merge(dst, src)
+}
+func (m *NetworkGetAllTypesRequest) XXX_Size() int {
+	return xxx_messageInfo_NetworkGetAllTypesRequest.Size(m)
+}
+func (m *NetworkGetAllTypesRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_NetworkGetAllTypesRequest.DiscardUnknown(m)
 }
 
-func (m *NetworkGetAllTypesRequest) Reset()                    { *m = NetworkGetAllTypesRequest{} }
-func (m *NetworkGetAllTypesRequest) String() string            { return proto.CompactTextString(m) }
-func (*NetworkGetAllTypesRequest) ProtoMessage()               {}
-func (*NetworkGetAllTypesRequest) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{3} }
+var xxx_messageInfo_NetworkGetAllTypesRequest proto.InternalMessageInfo
 
 type NetworkAssociateRequest struct {
-	Name     string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
-	Username string `protobuf:"bytes,2,opt,name=username" json:"username,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Username             string   `protobuf:"bytes,2,opt,name=username" json:"username,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *NetworkAssociateRequest) Reset()         { *m = NetworkAssociateRequest{} }
+func (m *NetworkAssociateRequest) String() string { return proto.CompactTextString(m) }
+func (*NetworkAssociateRequest) ProtoMessage()    {}
+func (*NetworkAssociateRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_network_8219686474e53e94, []int{4}
+}
+func (m *NetworkAssociateRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_NetworkAssociateRequest.Unmarshal(m, b)
+}
+func (m *NetworkAssociateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_NetworkAssociateRequest.Marshal(b, m, deterministic)
+}
+func (dst *NetworkAssociateRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_NetworkAssociateRequest.Merge(dst, src)
+}
+func (m *NetworkAssociateRequest) XXX_Size() int {
+	return xxx_messageInfo_NetworkAssociateRequest.Size(m)
+}
+func (m *NetworkAssociateRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_NetworkAssociateRequest.DiscardUnknown(m)
 }
 
-func (m *NetworkAssociateRequest) Reset()                    { *m = NetworkAssociateRequest{} }
-func (m *NetworkAssociateRequest) String() string            { return proto.CompactTextString(m) }
-func (*NetworkAssociateRequest) ProtoMessage()               {}
-func (*NetworkAssociateRequest) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{4} }
+var xxx_messageInfo_NetworkAssociateRequest proto.InternalMessageInfo
 
 func (m *NetworkAssociateRequest) GetName() string {
 	if m != nil {
@@ -115,14 +231,36 @@ func (m *NetworkAssociateRequest) GetUsername() string {
 }
 
 type NetworkDissociateRequest struct {
-	Name     string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
-	Username string `protobuf:"bytes,2,opt,name=username" json:"username,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Username             string   `protobuf:"bytes,2,opt,name=username" json:"username,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *NetworkDissociateRequest) Reset()         { *m = NetworkDissociateRequest{} }
+func (m *NetworkDissociateRequest) String() string { return proto.CompactTextString(m) }
+func (*NetworkDissociateRequest) ProtoMessage()    {}
+func (*NetworkDissociateRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_network_8219686474e53e94, []int{5}
+}
+func (m *NetworkDissociateRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_NetworkDissociateRequest.Unmarshal(m, b)
+}
+func (m *NetworkDissociateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_NetworkDissociateRequest.Marshal(b, m, deterministic)
+}
+func (dst *NetworkDissociateRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_NetworkDissociateRequest.Merge(dst, src)
+}
+func (m *NetworkDissociateRequest) XXX_Size() int {
+	return xxx_messageInfo_NetworkDissociateRequest.Size(m)
+}
+func (m *NetworkDissociateRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_NetworkDissociateRequest.DiscardUnknown(m)
 }
 
-func (m *NetworkDissociateRequest) Reset()                    { *m = NetworkDissociateRequest{} }
-func (m *NetworkDissociateRequest) String() string            { return proto.CompactTextString(m) }
-func (*NetworkDissociateRequest) ProtoMessage()               {}
-func (*NetworkDissociateRequest) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{5} }
+var xxx_messageInfo_NetworkDissociateRequest proto.InternalMessageInfo
 
 func (m *NetworkDissociateRequest) GetName() string {
 	if m != nil {
@@ -139,16 +277,36 @@ func (m *NetworkDissociateRequest) GetUsername() string {
 }
 
 type NetworkGetAssociatedUsersRequest struct {
-	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
 }
 
 func (m *NetworkGetAssociatedUsersRequest) Reset()         { *m = NetworkGetAssociatedUsersRequest{} }
 func (m *NetworkGetAssociatedUsersRequest) String() string { return proto.CompactTextString(m) }
 func (*NetworkGetAssociatedUsersRequest) ProtoMessage()    {}
 func (*NetworkGetAssociatedUsersRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor2, []int{6}
+	return fileDescriptor_network_8219686474e53e94, []int{6}
+}
+func (m *NetworkGetAssociatedUsersRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_NetworkGetAssociatedUsersRequest.Unmarshal(m, b)
+}
+func (m *NetworkGetAssociatedUsersRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_NetworkGetAssociatedUsersRequest.Marshal(b, m, deterministic)
+}
+func (dst *NetworkGetAssociatedUsersRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_NetworkGetAssociatedUsersRequest.Merge(dst, src)
+}
+func (m *NetworkGetAssociatedUsersRequest) XXX_Size() int {
+	return xxx_messageInfo_NetworkGetAssociatedUsersRequest.Size(m)
+}
+func (m *NetworkGetAssociatedUsersRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_NetworkGetAssociatedUsersRequest.DiscardUnknown(m)
 }
 
+var xxx_messageInfo_NetworkGetAssociatedUsersRequest proto.InternalMessageInfo
+
 func (m *NetworkGetAssociatedUsersRequest) GetName() string {
 	if m != nil {
 		return m.Name
@@ -157,18 +315,40 @@ func (m *NetworkGetAssociatedUsersRequest) GetName() string {
 }
 
 type Network struct {
-	Name                string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
-	Cidr                string   `protobuf:"bytes,2,opt,name=cidr" json:"cidr,omitempty"`
-	Type                string   `protobuf:"bytes,3,opt,name=type" json:"type,omitempty"`
-	CreatedAt           string   `protobuf:"bytes,4,opt,name=created_at,json=createdAt" json:"created_at,omitempty"`
-	AssociatedUsernames []string `protobuf:"bytes,5,rep,name=associated_usernames,json=associatedUsernames" json:"associated_usernames,omitempty"`
-	Via                 string   `protobuf:"bytes,6,opt,name=via" json:"via,omitempty"`
+	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	Cidr                 string   `protobuf:"bytes,2,opt,name=cidr" json:"cidr,omitempty"`
+	Type                 string   `protobuf:"bytes,3,opt,name=type" json:"type,omitempty"`
+	CreatedAt            string   `protobuf:"bytes,4,opt,name=created_at,json=createdAt" json:"created_at,omitempty"`
+	AssociatedUsernames  []string `protobuf:"bytes,5,rep,name=associated_usernames,json=associatedUsernames" json:"associated_usernames,omitempty"`
+	Via                  string   `protobuf:"bytes,6,opt,name=via" json:"via,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *Network) Reset()         { *m = Network{} }
+func (m *Network) String() string { return proto.CompactTextString(m) }
+func (*Network) ProtoMessage()    {}
+func (*Network) Descriptor() ([]byte, []int) {
+	return fileDescriptor_network_8219686474e53e94, []int{7}
+}
+func (m *Network) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_Network.Unmarshal(m, b)
+}
+func (m *Network) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_Network.Marshal(b, m, deterministic)
+}
+func (dst *Network) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_Network.Merge(dst, src)
+}
+func (m *Network) XXX_Size() int {
+	return xxx_messageInfo_Network.Size(m)
+}
+func (m *Network) XXX_DiscardUnknown() {
+	xxx_messageInfo_Network.DiscardUnknown(m)
 }
 
-func (m *Network) Reset()                    { *m = Network{} }
-func (m *Network) String() string            { return proto.CompactTextString(m) }
-func (*Network) ProtoMessage()               {}
-func (*Network) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{7} }
+var xxx_messageInfo_Network proto.InternalMessageInfo
 
 func (m *Network) GetName() string {
 	if m != nil {
@@ -213,14 +393,36 @@ func (m *Network) GetVia() string {
 }
 
 type NetworkType struct {
-	Type        string `protobuf:"bytes,1,opt,name=type" json:"type,omitempty"`
-	Description string `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+	Type                 string   `protobuf:"bytes,1,opt,name=type" json:"type,omitempty"`
+	Description          string   `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *NetworkType) Reset()         { *m = NetworkType{} }
+func (m *NetworkType) String() string { return proto.CompactTextString(m) }
+func (*NetworkType) ProtoMessage()    {}
+func (*NetworkType) Descriptor() ([]byte, []int) {
+	return fileDescriptor_network_8219686474e53e94, []int{8}
+}
+func (m *NetworkType) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_NetworkType.Unmarshal(m, b)
+}
+func (m *NetworkType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_NetworkType.Marshal(b, m, deterministic)
+}
+func (dst *NetworkType) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_NetworkType.Merge(dst, src)
+}
+func (m *NetworkType) XXX_Size() int {
+	return xxx_messageInfo_NetworkType.Size(m)
+}
+func (m *NetworkType) XXX_DiscardUnknown() {
+	xxx_messageInfo_NetworkType.DiscardUnknown(m)
 }
 
-func (m *NetworkType) Reset()                    { *m = NetworkType{} }
-func (m *NetworkType) String() string            { return proto.CompactTextString(m) }
-func (*NetworkType) ProtoMessage()               {}
-func (*NetworkType) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{8} }
+var xxx_messageInfo_NetworkType proto.InternalMessageInfo
 
 func (m *NetworkType) GetType() string {
 	if m != nil {
@@ -237,13 +439,35 @@ func (m *NetworkType) GetDescription() string {
 }
 
 type NetworkCreateResponse struct {
-	Network *Network `protobuf:"bytes,1,opt,name=network" json:"network,omitempty"`
+	Network              *Network `protobuf:"bytes,1,opt,name=network" json:"network,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *NetworkCreateResponse) Reset()         { *m = NetworkCreateResponse{} }
+func (m *NetworkCreateResponse) String() string { return proto.CompactTextString(m) }
+func (*NetworkCreateResponse) ProtoMessage()    {}
+func (*NetworkCreateResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_network_8219686474e53e94, []int{9}
+}
+func (m *NetworkCreateResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_NetworkCreateResponse.Unmarshal(m, b)
+}
+func (m *NetworkCreateResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_NetworkCreateResponse.Marshal(b, m, deterministic)
+}
+func (dst *NetworkCreateResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_NetworkCreateResponse.Merge(dst, src)
+}
+func (m *NetworkCreateResponse) XXX_Size() int {
+	return xxx_messageInfo_NetworkCreateResponse.Size(m)
+}
+func (m *NetworkCreateResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_NetworkCreateResponse.DiscardUnknown(m)
 }
 
-func (m *NetworkCreateResponse) Reset()                    { *m = NetworkCreateResponse{} }
-func (m *NetworkCreateResponse) String() string            { return proto.CompactTextString(m) }
-func (*NetworkCreateResponse) ProtoMessage()               {}
-func (*NetworkCreateResponse) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{9} }
+var xxx_messageInfo_NetworkCreateResponse proto.InternalMessageInfo
 
 func (m *NetworkCreateResponse) GetNetwork() *Network {
 	if m != nil {
@@ -253,13 +477,35 @@ func (m *NetworkCreateResponse) GetNetwork() *Network {
 }
 
 type NetworkListResponse struct {
-	Networks []*Network `protobuf:"bytes,1,rep,name=networks" json:"networks,omitempty"`
+	Networks             []*Network `protobuf:"bytes,1,rep,name=networks" json:"networks,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
+	XXX_unrecognized     []byte     `json:"-"`
+	XXX_sizecache        int32      `json:"-"`
+}
+
+func (m *NetworkListResponse) Reset()         { *m = NetworkListResponse{} }
+func (m *NetworkListResponse) String() string { return proto.CompactTextString(m) }
+func (*NetworkListResponse) ProtoMessage()    {}
+func (*NetworkListResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_network_8219686474e53e94, []int{10}
+}
+func (m *NetworkListResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_NetworkListResponse.Unmarshal(m, b)
+}
+func (m *NetworkListResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_NetworkListResponse.Marshal(b, m, deterministic)
+}
+func (dst *NetworkListResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_NetworkListResponse.Merge(dst, src)
+}
+func (m *NetworkListResponse) XXX_Size() int {
+	return xxx_messageInfo_NetworkListResponse.Size(m)
+}
+func (m *NetworkListResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_NetworkListResponse.DiscardUnknown(m)
 }
 
-func (m *NetworkListResponse) Reset()                    { *m = NetworkListResponse{} }
-func (m *NetworkListResponse) String() string            { return proto.CompactTextString(m) }
-func (*NetworkListResponse) ProtoMessage()               {}
-func (*NetworkListResponse) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{10} }
+var xxx_messageInfo_NetworkListResponse proto.InternalMessageInfo
 
 func (m *NetworkListResponse) GetNetworks() []*Network {
 	if m != nil {
@@ -269,13 +515,35 @@ func (m *NetworkListResponse) GetNetworks() []*Network {
 }
 
 type NetworkDeleteResponse struct {
-	Network *Network `protobuf:"bytes,1,opt,name=network" json:"network,omitempty"`
+	Network              *Network `protobuf:"bytes,1,opt,name=network" json:"network,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *NetworkDeleteResponse) Reset()         { *m = NetworkDeleteResponse{} }
+func (m *NetworkDeleteResponse) String() string { return proto.CompactTextString(m) }
+func (*NetworkDeleteResponse) ProtoMessage()    {}
+func (*NetworkDeleteResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_network_8219686474e53e94, []int{11}
+}
+func (m *NetworkDeleteResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_NetworkDeleteResponse.Unmarshal(m, b)
+}
+func (m *NetworkDeleteResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_NetworkDeleteResponse.Marshal(b, m, deterministic)
+}
+func (dst *NetworkDeleteResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_NetworkDeleteResponse.Merge(dst, src)
+}
+func (m *NetworkDeleteResponse) XXX_Size() int {
+	return xxx_messageInfo_NetworkDeleteResponse.Size(m)
+}
+func (m *NetworkDeleteResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_NetworkDeleteResponse.DiscardUnknown(m)
 }
 
-func (m *NetworkDeleteResponse) Reset()                    { *m = NetworkDeleteResponse{} }
-func (m *NetworkDeleteResponse) String() string            { return proto.CompactTextString(m) }
-func (*NetworkDeleteResponse) ProtoMessage()               {}
-func (*NetworkDeleteResponse) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{11} }
+var xxx_messageInfo_NetworkDeleteResponse proto.InternalMessageInfo
 
 func (m *NetworkDeleteResponse) GetNetwork() *Network {
 	if m != nil {
@@ -285,13 +553,35 @@ func (m *NetworkDeleteResponse) GetNetwork() *Network {
 }
 
 type NetworkGetAllTypesResponse struct {
-	Types []*NetworkType `protobuf:"bytes,1,rep,name=types" json:"types,omitempty"`
+	Types                []*NetworkType `protobuf:"bytes,1,rep,name=types" json:"types,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
+	XXX_unrecognized     []byte         `json:"-"`
+	XXX_sizecache        int32          `json:"-"`
+}
+
+func (m *NetworkGetAllTypesResponse) Reset()         { *m = NetworkGetAllTypesResponse{} }
+func (m *NetworkGetAllTypesResponse) String() string { return proto.CompactTextString(m) }
+func (*NetworkGetAllTypesResponse) ProtoMessage()    {}
+func (*NetworkGetAllTypesResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_network_8219686474e53e94, []int{12}
+}
+func (m *NetworkGetAllTypesResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_NetworkGetAllTypesResponse.Unmarshal(m, b)
+}
+func (m *NetworkGetAllTypesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_NetworkGetAllTypesResponse.Marshal(b, m, deterministic)
+}
+func (dst *NetworkGetAllTypesResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_NetworkGetAllTypesResponse.Merge(dst, src)
+}
+func (m *NetworkGetAllTypesResponse) XXX_Size() int {
+	return xxx_messageInfo_NetworkGetAllTypesResponse.Size(m)
+}
+func (m *NetworkGetAllTypesResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_NetworkGetAllTypesResponse.DiscardUnknown(m)
 }
 
-func (m *NetworkGetAllTypesResponse) Reset()                    { *m = NetworkGetAllTypesResponse{} }
-func (m *NetworkGetAllTypesResponse) String() string            { return proto.CompactTextString(m) }
-func (*NetworkGetAllTypesResponse) ProtoMessage()               {}
-func (*NetworkGetAllTypesResponse) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{12} }
+var xxx_messageInfo_NetworkGetAllTypesResponse proto.InternalMessageInfo
 
 func (m *NetworkGetAllTypesResponse) GetTypes() []*NetworkType {
 	if m != nil {
@@ -301,31 +591,95 @@ func (m *NetworkGetAllTypesResponse) GetTypes() []*NetworkType {
 }
 
 type NetworkAssociateResponse struct {
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *NetworkAssociateResponse) Reset()         { *m = NetworkAssociateResponse{} }
+func (m *NetworkAssociateResponse) String() string { return proto.CompactTextString(m) }
+func (*NetworkAssociateResponse) ProtoMessage()    {}
+func (*NetworkAssociateResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_network_8219686474e53e94, []int{13}
+}
+func (m *NetworkAssociateResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_NetworkAssociateResponse.Unmarshal(m, b)
+}
+func (m *NetworkAssociateResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_NetworkAssociateResponse.Marshal(b, m, deterministic)
+}
+func (dst *NetworkAssociateResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_NetworkAssociateResponse.Merge(dst, src)
+}
+func (m *NetworkAssociateResponse) XXX_Size() int {
+	return xxx_messageInfo_NetworkAssociateResponse.Size(m)
+}
+func (m *NetworkAssociateResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_NetworkAssociateResponse.DiscardUnknown(m)
 }
 
-func (m *NetworkAssociateResponse) Reset()                    { *m = NetworkAssociateResponse{} }
-func (m *NetworkAssociateResponse) String() string            { return proto.CompactTextString(m) }
-func (*NetworkAssociateResponse) ProtoMessage()               {}
-func (*NetworkAssociateResponse) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{13} }
+var xxx_messageInfo_NetworkAssociateResponse proto.InternalMessageInfo
 
 type NetworkDissociateResponse struct {
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *NetworkDissociateResponse) Reset()         { *m = NetworkDissociateResponse{} }
+func (m *NetworkDissociateResponse) String() string { return proto.CompactTextString(m) }
+func (*NetworkDissociateResponse) ProtoMessage()    {}
+func (*NetworkDissociateResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_network_8219686474e53e94, []int{14}
+}
+func (m *NetworkDissociateResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_NetworkDissociateResponse.Unmarshal(m, b)
+}
+func (m *NetworkDissociateResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_NetworkDissociateResponse.Marshal(b, m, deterministic)
+}
+func (dst *NetworkDissociateResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_NetworkDissociateResponse.Merge(dst, src)
+}
+func (m *NetworkDissociateResponse) XXX_Size() int {
+	return xxx_messageInfo_NetworkDissociateResponse.Size(m)
+}
+func (m *NetworkDissociateResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_NetworkDissociateResponse.DiscardUnknown(m)
 }
 
-func (m *NetworkDissociateResponse) Reset()                    { *m = NetworkDissociateResponse{} }
-func (m *NetworkDissociateResponse) String() string            { return proto.CompactTextString(m) }
-func (*NetworkDissociateResponse) ProtoMessage()               {}
-func (*NetworkDissociateResponse) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{14} }
+var xxx_messageInfo_NetworkDissociateResponse proto.InternalMessageInfo
 
 type NetworkGetAssociatedUsersResponse struct {
-	Usernames []string `protobuf:"bytes,1,rep,name=usernames" json:"usernames,omitempty"`
+	Usernames            []string `protobuf:"bytes,1,rep,name=usernames" json:"usernames,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
 }
 
 func (m *NetworkGetAssociatedUsersResponse) Reset()         { *m = NetworkGetAssociatedUsersResponse{} }
 func (m *NetworkGetAssociatedUsersResponse) String() string { return proto.CompactTextString(m) }
 func (*NetworkGetAssociatedUsersResponse) ProtoMessage()    {}
 func (*NetworkGetAssociatedUsersResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor2, []int{15}
+	return fileDescriptor_network_8219686474e53e94, []int{15}
+}
+func (m *NetworkGetAssociatedUsersResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_NetworkGetAssociatedUsersResponse.Unmarshal(m, b)
+}
+func (m *NetworkGetAssociatedUsersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_NetworkGetAssociatedUsersResponse.Marshal(b, m, deterministic)
+}
+func (dst *NetworkGetAssociatedUsersResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_NetworkGetAssociatedUsersResponse.Merge(dst, src)
 }
+func (m *NetworkGetAssociatedUsersResponse) XXX_Size() int {
+	return xxx_messageInfo_NetworkGetAssociatedUsersResponse.Size(m)
+}
+func (m *NetworkGetAssociatedUsersResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_NetworkGetAssociatedUsersResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_NetworkGetAssociatedUsersResponse proto.InternalMessageInfo
 
 func (m *NetworkGetAssociatedUsersResponse) GetUsernames() []string {
 	if m != nil {
@@ -623,9 +977,9 @@ var _NetworkService_serviceDesc = grpc.ServiceDesc{
 	Metadata: "network.proto",
 }
 
-func init() { proto.RegisterFile("network.proto", fileDescriptor2) }
+func init() { proto.RegisterFile("network.proto", fileDescriptor_network_8219686474e53e94) }
 
-var fileDescriptor2 = []byte{
+var fileDescriptor_network_8219686474e53e94 = []byte{
 	// 640 bytes of a gzipped FileDescriptorProto
 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0x4d, 0x6f, 0xda, 0x40,
 	0x10, 0x95, 0x81, 0x90, 0x30, 0xa8, 0x1f, 0xda, 0x50, 0x62, 0x0c, 0xa4, 0x64, 0x0b, 0x6a, 0xc4,

+ 272 - 119
api/pb/user.pb.go

@@ -1,53 +1,6 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // source: user.proto
 
-/*
-Package pb is a generated protocol buffer package.
-
-It is generated from these files:
-	user.proto
-	vpn.proto
-	network.proto
-	auth.proto
-
-It has these top-level messages:
-	UserListRequest
-	UserCreateRequest
-	UserUpdateRequest
-	UserDeleteRequest
-	UserRenewRequest
-	UserGenConfigRequest
-	UserResponse
-	UserGenConfigResponse
-	VPNStatusRequest
-	VPNInitRequest
-	VPNUpdateRequest
-	VPNRestartRequest
-	VPNStatusResponse
-	VPNInitResponse
-	VPNUpdateResponse
-	VPNRestartResponse
-	NetworkCreateRequest
-	NetworkListRequest
-	NetworkDeleteRequest
-	NetworkGetAllTypesRequest
-	NetworkAssociateRequest
-	NetworkDissociateRequest
-	NetworkGetAssociatedUsersRequest
-	Network
-	NetworkType
-	NetworkCreateResponse
-	NetworkListResponse
-	NetworkDeleteResponse
-	NetworkGetAllTypesResponse
-	NetworkAssociateResponse
-	NetworkDissociateResponse
-	NetworkGetAssociatedUsersResponse
-	AuthStatusRequest
-	AuthAuthenticateRequest
-	AuthStatusResponse
-	AuthAuthenticateResponse
-*/
 package pb
 
 import proto "github.com/golang/protobuf/proto"
@@ -93,7 +46,9 @@ var UserUpdateRequest_GWPref_value = map[string]int32{
 func (x UserUpdateRequest_GWPref) String() string {
 	return proto.EnumName(UserUpdateRequest_GWPref_name, int32(x))
 }
-func (UserUpdateRequest_GWPref) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2, 0} }
+func (UserUpdateRequest_GWPref) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_user_df435338153e53fc, []int{2, 0}
+}
 
 type UserUpdateRequest_StaticPref int32
 
@@ -118,7 +73,7 @@ func (x UserUpdateRequest_StaticPref) String() string {
 	return proto.EnumName(UserUpdateRequest_StaticPref_name, int32(x))
 }
 func (UserUpdateRequest_StaticPref) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor0, []int{2, 1}
+	return fileDescriptor_user_df435338153e53fc, []int{2, 1}
 }
 
 type UserUpdateRequest_AdminPref int32
@@ -144,29 +99,73 @@ func (x UserUpdateRequest_AdminPref) String() string {
 	return proto.EnumName(UserUpdateRequest_AdminPref_name, int32(x))
 }
 func (UserUpdateRequest_AdminPref) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor0, []int{2, 2}
+	return fileDescriptor_user_df435338153e53fc, []int{2, 2}
 }
 
 type UserListRequest struct {
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
 }
 
-func (m *UserListRequest) Reset()                    { *m = UserListRequest{} }
-func (m *UserListRequest) String() string            { return proto.CompactTextString(m) }
-func (*UserListRequest) ProtoMessage()               {}
-func (*UserListRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
+func (m *UserListRequest) Reset()         { *m = UserListRequest{} }
+func (m *UserListRequest) String() string { return proto.CompactTextString(m) }
+func (*UserListRequest) ProtoMessage()    {}
+func (*UserListRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_user_df435338153e53fc, []int{0}
+}
+func (m *UserListRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_UserListRequest.Unmarshal(m, b)
+}
+func (m *UserListRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_UserListRequest.Marshal(b, m, deterministic)
+}
+func (dst *UserListRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_UserListRequest.Merge(dst, src)
+}
+func (m *UserListRequest) XXX_Size() int {
+	return xxx_messageInfo_UserListRequest.Size(m)
+}
+func (m *UserListRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_UserListRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_UserListRequest proto.InternalMessageInfo
 
 type UserCreateRequest struct {
-	Username string `protobuf:"bytes,1,opt,name=username" json:"username,omitempty"`
-	Password string `protobuf:"bytes,2,opt,name=password" json:"password,omitempty"`
-	NoGw     bool   `protobuf:"varint,3,opt,name=no_gw,json=noGw" json:"no_gw,omitempty"`
-	HostId   uint32 `protobuf:"varint,4,opt,name=host_id,json=hostId" json:"host_id,omitempty"`
-	IsAdmin  bool   `protobuf:"varint,5,opt,name=is_admin,json=isAdmin" json:"is_admin,omitempty"`
+	Username             string   `protobuf:"bytes,1,opt,name=username" json:"username,omitempty"`
+	Password             string   `protobuf:"bytes,2,opt,name=password" json:"password,omitempty"`
+	NoGw                 bool     `protobuf:"varint,3,opt,name=no_gw,json=noGw" json:"no_gw,omitempty"`
+	HostId               uint32   `protobuf:"varint,4,opt,name=host_id,json=hostId" json:"host_id,omitempty"`
+	IsAdmin              bool     `protobuf:"varint,5,opt,name=is_admin,json=isAdmin" json:"is_admin,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
 }
 
-func (m *UserCreateRequest) Reset()                    { *m = UserCreateRequest{} }
-func (m *UserCreateRequest) String() string            { return proto.CompactTextString(m) }
-func (*UserCreateRequest) ProtoMessage()               {}
-func (*UserCreateRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
+func (m *UserCreateRequest) Reset()         { *m = UserCreateRequest{} }
+func (m *UserCreateRequest) String() string { return proto.CompactTextString(m) }
+func (*UserCreateRequest) ProtoMessage()    {}
+func (*UserCreateRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_user_df435338153e53fc, []int{1}
+}
+func (m *UserCreateRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_UserCreateRequest.Unmarshal(m, b)
+}
+func (m *UserCreateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_UserCreateRequest.Marshal(b, m, deterministic)
+}
+func (dst *UserCreateRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_UserCreateRequest.Merge(dst, src)
+}
+func (m *UserCreateRequest) XXX_Size() int {
+	return xxx_messageInfo_UserCreateRequest.Size(m)
+}
+func (m *UserCreateRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_UserCreateRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_UserCreateRequest proto.InternalMessageInfo
 
 func (m *UserCreateRequest) GetUsername() string {
 	if m != nil {
@@ -204,18 +203,40 @@ func (m *UserCreateRequest) GetIsAdmin() bool {
 }
 
 type UserUpdateRequest struct {
-	Username   string                       `protobuf:"bytes,1,opt,name=username" json:"username,omitempty"`
-	Password   string                       `protobuf:"bytes,2,opt,name=password" json:"password,omitempty"`
-	Gwpref     UserUpdateRequest_GWPref     `protobuf:"varint,3,opt,name=gwpref,enum=pb.UserUpdateRequest_GWPref" json:"gwpref,omitempty"`
-	HostId     uint32                       `protobuf:"varint,4,opt,name=host_id,json=hostId" json:"host_id,omitempty"`
-	StaticPref UserUpdateRequest_StaticPref `protobuf:"varint,5,opt,name=static_pref,json=staticPref,enum=pb.UserUpdateRequest_StaticPref" json:"static_pref,omitempty"`
-	AdminPref  UserUpdateRequest_AdminPref  `protobuf:"varint,6,opt,name=admin_pref,json=adminPref,enum=pb.UserUpdateRequest_AdminPref" json:"admin_pref,omitempty"`
+	Username             string                       `protobuf:"bytes,1,opt,name=username" json:"username,omitempty"`
+	Password             string                       `protobuf:"bytes,2,opt,name=password" json:"password,omitempty"`
+	Gwpref               UserUpdateRequest_GWPref     `protobuf:"varint,3,opt,name=gwpref,enum=pb.UserUpdateRequest_GWPref" json:"gwpref,omitempty"`
+	HostId               uint32                       `protobuf:"varint,4,opt,name=host_id,json=hostId" json:"host_id,omitempty"`
+	StaticPref           UserUpdateRequest_StaticPref `protobuf:"varint,5,opt,name=static_pref,json=staticPref,enum=pb.UserUpdateRequest_StaticPref" json:"static_pref,omitempty"`
+	AdminPref            UserUpdateRequest_AdminPref  `protobuf:"varint,6,opt,name=admin_pref,json=adminPref,enum=pb.UserUpdateRequest_AdminPref" json:"admin_pref,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                     `json:"-"`
+	XXX_unrecognized     []byte                       `json:"-"`
+	XXX_sizecache        int32                        `json:"-"`
 }
 
-func (m *UserUpdateRequest) Reset()                    { *m = UserUpdateRequest{} }
-func (m *UserUpdateRequest) String() string            { return proto.CompactTextString(m) }
-func (*UserUpdateRequest) ProtoMessage()               {}
-func (*UserUpdateRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
+func (m *UserUpdateRequest) Reset()         { *m = UserUpdateRequest{} }
+func (m *UserUpdateRequest) String() string { return proto.CompactTextString(m) }
+func (*UserUpdateRequest) ProtoMessage()    {}
+func (*UserUpdateRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_user_df435338153e53fc, []int{2}
+}
+func (m *UserUpdateRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_UserUpdateRequest.Unmarshal(m, b)
+}
+func (m *UserUpdateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_UserUpdateRequest.Marshal(b, m, deterministic)
+}
+func (dst *UserUpdateRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_UserUpdateRequest.Merge(dst, src)
+}
+func (m *UserUpdateRequest) XXX_Size() int {
+	return xxx_messageInfo_UserUpdateRequest.Size(m)
+}
+func (m *UserUpdateRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_UserUpdateRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_UserUpdateRequest proto.InternalMessageInfo
 
 func (m *UserUpdateRequest) GetUsername() string {
 	if m != nil {
@@ -260,13 +281,35 @@ func (m *UserUpdateRequest) GetAdminPref() UserUpdateRequest_AdminPref {
 }
 
 type UserDeleteRequest struct {
-	Username string `protobuf:"bytes,1,opt,name=username" json:"username,omitempty"`
+	Username             string   `protobuf:"bytes,1,opt,name=username" json:"username,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *UserDeleteRequest) Reset()         { *m = UserDeleteRequest{} }
+func (m *UserDeleteRequest) String() string { return proto.CompactTextString(m) }
+func (*UserDeleteRequest) ProtoMessage()    {}
+func (*UserDeleteRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_user_df435338153e53fc, []int{3}
+}
+func (m *UserDeleteRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_UserDeleteRequest.Unmarshal(m, b)
+}
+func (m *UserDeleteRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_UserDeleteRequest.Marshal(b, m, deterministic)
+}
+func (dst *UserDeleteRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_UserDeleteRequest.Merge(dst, src)
+}
+func (m *UserDeleteRequest) XXX_Size() int {
+	return xxx_messageInfo_UserDeleteRequest.Size(m)
+}
+func (m *UserDeleteRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_UserDeleteRequest.DiscardUnknown(m)
 }
 
-func (m *UserDeleteRequest) Reset()                    { *m = UserDeleteRequest{} }
-func (m *UserDeleteRequest) String() string            { return proto.CompactTextString(m) }
-func (*UserDeleteRequest) ProtoMessage()               {}
-func (*UserDeleteRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
+var xxx_messageInfo_UserDeleteRequest proto.InternalMessageInfo
 
 func (m *UserDeleteRequest) GetUsername() string {
 	if m != nil {
@@ -276,13 +319,35 @@ func (m *UserDeleteRequest) GetUsername() string {
 }
 
 type UserRenewRequest struct {
-	Username string `protobuf:"bytes,1,opt,name=username" json:"username,omitempty"`
+	Username             string   `protobuf:"bytes,1,opt,name=username" json:"username,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *UserRenewRequest) Reset()         { *m = UserRenewRequest{} }
+func (m *UserRenewRequest) String() string { return proto.CompactTextString(m) }
+func (*UserRenewRequest) ProtoMessage()    {}
+func (*UserRenewRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_user_df435338153e53fc, []int{4}
+}
+func (m *UserRenewRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_UserRenewRequest.Unmarshal(m, b)
+}
+func (m *UserRenewRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_UserRenewRequest.Marshal(b, m, deterministic)
+}
+func (dst *UserRenewRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_UserRenewRequest.Merge(dst, src)
+}
+func (m *UserRenewRequest) XXX_Size() int {
+	return xxx_messageInfo_UserRenewRequest.Size(m)
+}
+func (m *UserRenewRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_UserRenewRequest.DiscardUnknown(m)
 }
 
-func (m *UserRenewRequest) Reset()                    { *m = UserRenewRequest{} }
-func (m *UserRenewRequest) String() string            { return proto.CompactTextString(m) }
-func (*UserRenewRequest) ProtoMessage()               {}
-func (*UserRenewRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
+var xxx_messageInfo_UserRenewRequest proto.InternalMessageInfo
 
 func (m *UserRenewRequest) GetUsername() string {
 	if m != nil {
@@ -292,13 +357,35 @@ func (m *UserRenewRequest) GetUsername() string {
 }
 
 type UserGenConfigRequest struct {
-	Username string `protobuf:"bytes,1,opt,name=username" json:"username,omitempty"`
+	Username             string   `protobuf:"bytes,1,opt,name=username" json:"username,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
 }
 
-func (m *UserGenConfigRequest) Reset()                    { *m = UserGenConfigRequest{} }
-func (m *UserGenConfigRequest) String() string            { return proto.CompactTextString(m) }
-func (*UserGenConfigRequest) ProtoMessage()               {}
-func (*UserGenConfigRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
+func (m *UserGenConfigRequest) Reset()         { *m = UserGenConfigRequest{} }
+func (m *UserGenConfigRequest) String() string { return proto.CompactTextString(m) }
+func (*UserGenConfigRequest) ProtoMessage()    {}
+func (*UserGenConfigRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_user_df435338153e53fc, []int{5}
+}
+func (m *UserGenConfigRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_UserGenConfigRequest.Unmarshal(m, b)
+}
+func (m *UserGenConfigRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_UserGenConfigRequest.Marshal(b, m, deterministic)
+}
+func (dst *UserGenConfigRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_UserGenConfigRequest.Merge(dst, src)
+}
+func (m *UserGenConfigRequest) XXX_Size() int {
+	return xxx_messageInfo_UserGenConfigRequest.Size(m)
+}
+func (m *UserGenConfigRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_UserGenConfigRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_UserGenConfigRequest proto.InternalMessageInfo
 
 func (m *UserGenConfigRequest) GetUsername() string {
 	if m != nil {
@@ -308,13 +395,35 @@ func (m *UserGenConfigRequest) GetUsername() string {
 }
 
 type UserResponse struct {
-	Users []*UserResponse_User `protobuf:"bytes,1,rep,name=users" json:"users,omitempty"`
+	Users                []*UserResponse_User `protobuf:"bytes,1,rep,name=users" json:"users,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
+	XXX_unrecognized     []byte               `json:"-"`
+	XXX_sizecache        int32                `json:"-"`
+}
+
+func (m *UserResponse) Reset()         { *m = UserResponse{} }
+func (m *UserResponse) String() string { return proto.CompactTextString(m) }
+func (*UserResponse) ProtoMessage()    {}
+func (*UserResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_user_df435338153e53fc, []int{6}
+}
+func (m *UserResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_UserResponse.Unmarshal(m, b)
+}
+func (m *UserResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_UserResponse.Marshal(b, m, deterministic)
+}
+func (dst *UserResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_UserResponse.Merge(dst, src)
+}
+func (m *UserResponse) XXX_Size() int {
+	return xxx_messageInfo_UserResponse.Size(m)
+}
+func (m *UserResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_UserResponse.DiscardUnknown(m)
 }
 
-func (m *UserResponse) Reset()                    { *m = UserResponse{} }
-func (m *UserResponse) String() string            { return proto.CompactTextString(m) }
-func (*UserResponse) ProtoMessage()               {}
-func (*UserResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
+var xxx_messageInfo_UserResponse proto.InternalMessageInfo
 
 func (m *UserResponse) GetUsers() []*UserResponse_User {
 	if m != nil {
@@ -324,25 +433,47 @@ func (m *UserResponse) GetUsers() []*UserResponse_User {
 }
 
 type UserResponse_User struct {
-	Username           string `protobuf:"bytes,1,opt,name=username" json:"username,omitempty"`
-	ServerSerialNumber string `protobuf:"bytes,2,opt,name=server_serial_number,json=serverSerialNumber" json:"server_serial_number,omitempty"`
-	Cert               string `protobuf:"bytes,3,opt,name=cert" json:"cert,omitempty"`
-	CreatedAt          string `protobuf:"bytes,4,opt,name=created_at,json=createdAt" json:"created_at,omitempty"`
-	IpNet              string `protobuf:"bytes,5,opt,name=ip_net,json=ipNet" json:"ip_net,omitempty"`
-	NoGw               bool   `protobuf:"varint,6,opt,name=no_gw,json=noGw" json:"no_gw,omitempty"`
-	HostId             uint32 `protobuf:"varint,7,opt,name=host_id,json=hostId" json:"host_id,omitempty"`
-	IsAdmin            bool   `protobuf:"varint,8,opt,name=is_admin,json=isAdmin" json:"is_admin,omitempty"`
-	IsConnected        bool   `protobuf:"varint,9,opt,name=is_connected,json=isConnected" json:"is_connected,omitempty"`
-	ConnectedSince     string `protobuf:"bytes,10,opt,name=connected_since,json=connectedSince" json:"connected_since,omitempty"`
-	BytesSent          uint64 `protobuf:"varint,11,opt,name=bytes_sent,json=bytesSent" json:"bytes_sent,omitempty"`
-	BytesReceived      uint64 `protobuf:"varint,12,opt,name=bytes_received,json=bytesReceived" json:"bytes_received,omitempty"`
-	ExpiresAt          string `protobuf:"bytes,13,opt,name=expires_at,json=expiresAt" json:"expires_at,omitempty"`
-}
-
-func (m *UserResponse_User) Reset()                    { *m = UserResponse_User{} }
-func (m *UserResponse_User) String() string            { return proto.CompactTextString(m) }
-func (*UserResponse_User) ProtoMessage()               {}
-func (*UserResponse_User) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6, 0} }
+	Username             string   `protobuf:"bytes,1,opt,name=username" json:"username,omitempty"`
+	ServerSerialNumber   string   `protobuf:"bytes,2,opt,name=server_serial_number,json=serverSerialNumber" json:"server_serial_number,omitempty"`
+	Cert                 string   `protobuf:"bytes,3,opt,name=cert" json:"cert,omitempty"`
+	CreatedAt            string   `protobuf:"bytes,4,opt,name=created_at,json=createdAt" json:"created_at,omitempty"`
+	IpNet                string   `protobuf:"bytes,5,opt,name=ip_net,json=ipNet" json:"ip_net,omitempty"`
+	NoGw                 bool     `protobuf:"varint,6,opt,name=no_gw,json=noGw" json:"no_gw,omitempty"`
+	HostId               uint32   `protobuf:"varint,7,opt,name=host_id,json=hostId" json:"host_id,omitempty"`
+	IsAdmin              bool     `protobuf:"varint,8,opt,name=is_admin,json=isAdmin" json:"is_admin,omitempty"`
+	IsConnected          bool     `protobuf:"varint,9,opt,name=is_connected,json=isConnected" json:"is_connected,omitempty"`
+	ConnectedSince       string   `protobuf:"bytes,10,opt,name=connected_since,json=connectedSince" json:"connected_since,omitempty"`
+	BytesSent            uint64   `protobuf:"varint,11,opt,name=bytes_sent,json=bytesSent" json:"bytes_sent,omitempty"`
+	BytesReceived        uint64   `protobuf:"varint,12,opt,name=bytes_received,json=bytesReceived" json:"bytes_received,omitempty"`
+	ExpiresAt            string   `protobuf:"bytes,13,opt,name=expires_at,json=expiresAt" json:"expires_at,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *UserResponse_User) Reset()         { *m = UserResponse_User{} }
+func (m *UserResponse_User) String() string { return proto.CompactTextString(m) }
+func (*UserResponse_User) ProtoMessage()    {}
+func (*UserResponse_User) Descriptor() ([]byte, []int) {
+	return fileDescriptor_user_df435338153e53fc, []int{6, 0}
+}
+func (m *UserResponse_User) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_UserResponse_User.Unmarshal(m, b)
+}
+func (m *UserResponse_User) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_UserResponse_User.Marshal(b, m, deterministic)
+}
+func (dst *UserResponse_User) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_UserResponse_User.Merge(dst, src)
+}
+func (m *UserResponse_User) XXX_Size() int {
+	return xxx_messageInfo_UserResponse_User.Size(m)
+}
+func (m *UserResponse_User) XXX_DiscardUnknown() {
+	xxx_messageInfo_UserResponse_User.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_UserResponse_User proto.InternalMessageInfo
 
 func (m *UserResponse_User) GetUsername() string {
 	if m != nil {
@@ -436,13 +567,35 @@ func (m *UserResponse_User) GetExpiresAt() string {
 }
 
 type UserGenConfigResponse struct {
-	ClientConfig string `protobuf:"bytes,1,opt,name=client_config,json=clientConfig" json:"client_config,omitempty"`
+	ClientConfig         string   `protobuf:"bytes,1,opt,name=client_config,json=clientConfig" json:"client_config,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *UserGenConfigResponse) Reset()         { *m = UserGenConfigResponse{} }
+func (m *UserGenConfigResponse) String() string { return proto.CompactTextString(m) }
+func (*UserGenConfigResponse) ProtoMessage()    {}
+func (*UserGenConfigResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_user_df435338153e53fc, []int{7}
+}
+func (m *UserGenConfigResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_UserGenConfigResponse.Unmarshal(m, b)
+}
+func (m *UserGenConfigResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_UserGenConfigResponse.Marshal(b, m, deterministic)
+}
+func (dst *UserGenConfigResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_UserGenConfigResponse.Merge(dst, src)
+}
+func (m *UserGenConfigResponse) XXX_Size() int {
+	return xxx_messageInfo_UserGenConfigResponse.Size(m)
+}
+func (m *UserGenConfigResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_UserGenConfigResponse.DiscardUnknown(m)
 }
 
-func (m *UserGenConfigResponse) Reset()                    { *m = UserGenConfigResponse{} }
-func (m *UserGenConfigResponse) String() string            { return proto.CompactTextString(m) }
-func (*UserGenConfigResponse) ProtoMessage()               {}
-func (*UserGenConfigResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
+var xxx_messageInfo_UserGenConfigResponse proto.InternalMessageInfo
 
 func (m *UserGenConfigResponse) GetClientConfig() string {
 	if m != nil {
@@ -703,9 +856,9 @@ var _UserService_serviceDesc = grpc.ServiceDesc{
 	Metadata: "user.proto",
 }
 
-func init() { proto.RegisterFile("user.proto", fileDescriptor0) }
+func init() { proto.RegisterFile("user.proto", fileDescriptor_user_df435338153e53fc) }
 
-var fileDescriptor0 = []byte{
+var fileDescriptor_user_df435338153e53fc = []byte{
 	// 825 bytes of a gzipped FileDescriptorProto
 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x95, 0xdd, 0x6e, 0xe3, 0x44,
 	0x14, 0x80, 0xeb, 0xc4, 0x71, 0xe3, 0x93, 0xb4, 0x75, 0xa7, 0x2d, 0xeb, 0x86, 0x5d, 0xc8, 0x1a,

+ 241 - 57
api/pb/vpn.pb.go

@@ -18,6 +18,12 @@ var _ = proto.Marshal
 var _ = fmt.Errorf
 var _ = math.Inf
 
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
+
 type VPNProto int32
 
 const (
@@ -40,28 +46,74 @@ var VPNProto_value = map[string]int32{
 func (x VPNProto) String() string {
 	return proto.EnumName(VPNProto_name, int32(x))
 }
-func (VPNProto) EnumDescriptor() ([]byte, []int) { return fileDescriptor1, []int{0} }
+func (VPNProto) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_vpn_a36938fb10df2565, []int{0}
+}
 
 type VPNStatusRequest struct {
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *VPNStatusRequest) Reset()         { *m = VPNStatusRequest{} }
+func (m *VPNStatusRequest) String() string { return proto.CompactTextString(m) }
+func (*VPNStatusRequest) ProtoMessage()    {}
+func (*VPNStatusRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_vpn_a36938fb10df2565, []int{0}
+}
+func (m *VPNStatusRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_VPNStatusRequest.Unmarshal(m, b)
+}
+func (m *VPNStatusRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_VPNStatusRequest.Marshal(b, m, deterministic)
+}
+func (dst *VPNStatusRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_VPNStatusRequest.Merge(dst, src)
+}
+func (m *VPNStatusRequest) XXX_Size() int {
+	return xxx_messageInfo_VPNStatusRequest.Size(m)
+}
+func (m *VPNStatusRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_VPNStatusRequest.DiscardUnknown(m)
 }
 
-func (m *VPNStatusRequest) Reset()                    { *m = VPNStatusRequest{} }
-func (m *VPNStatusRequest) String() string            { return proto.CompactTextString(m) }
-func (*VPNStatusRequest) ProtoMessage()               {}
-func (*VPNStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{0} }
+var xxx_messageInfo_VPNStatusRequest proto.InternalMessageInfo
 
 type VPNInitRequest struct {
-	Hostname  string   `protobuf:"bytes,1,opt,name=hostname" json:"hostname,omitempty"`
-	Port      string   `protobuf:"bytes,2,opt,name=port" json:"port,omitempty"`
-	ProtoPref VPNProto `protobuf:"varint,3,opt,name=proto_pref,json=protoPref,enum=pb.VPNProto" json:"proto_pref,omitempty"`
-	IpBlock   string   `protobuf:"bytes,4,opt,name=ip_block,json=ipBlock" json:"ip_block,omitempty"`
-	Dns       string   `protobuf:"bytes,5,opt,name=dns" json:"dns,omitempty"`
+	Hostname             string   `protobuf:"bytes,1,opt,name=hostname" json:"hostname,omitempty"`
+	Port                 string   `protobuf:"bytes,2,opt,name=port" json:"port,omitempty"`
+	ProtoPref            VPNProto `protobuf:"varint,3,opt,name=proto_pref,json=protoPref,enum=pb.VPNProto" json:"proto_pref,omitempty"`
+	IpBlock              string   `protobuf:"bytes,4,opt,name=ip_block,json=ipBlock" json:"ip_block,omitempty"`
+	Dns                  string   `protobuf:"bytes,5,opt,name=dns" json:"dns,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
 }
 
-func (m *VPNInitRequest) Reset()                    { *m = VPNInitRequest{} }
-func (m *VPNInitRequest) String() string            { return proto.CompactTextString(m) }
-func (*VPNInitRequest) ProtoMessage()               {}
-func (*VPNInitRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1} }
+func (m *VPNInitRequest) Reset()         { *m = VPNInitRequest{} }
+func (m *VPNInitRequest) String() string { return proto.CompactTextString(m) }
+func (*VPNInitRequest) ProtoMessage()    {}
+func (*VPNInitRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_vpn_a36938fb10df2565, []int{1}
+}
+func (m *VPNInitRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_VPNInitRequest.Unmarshal(m, b)
+}
+func (m *VPNInitRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_VPNInitRequest.Marshal(b, m, deterministic)
+}
+func (dst *VPNInitRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_VPNInitRequest.Merge(dst, src)
+}
+func (m *VPNInitRequest) XXX_Size() int {
+	return xxx_messageInfo_VPNInitRequest.Size(m)
+}
+func (m *VPNInitRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_VPNInitRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_VPNInitRequest proto.InternalMessageInfo
 
 func (m *VPNInitRequest) GetHostname() string {
 	if m != nil {
@@ -99,14 +151,36 @@ func (m *VPNInitRequest) GetDns() string {
 }
 
 type VPNUpdateRequest struct {
-	IpBlock string `protobuf:"bytes,1,opt,name=ip_block,json=ipBlock" json:"ip_block,omitempty"`
-	Dns     string `protobuf:"bytes,2,opt,name=dns" json:"dns,omitempty"`
+	IpBlock              string   `protobuf:"bytes,1,opt,name=ip_block,json=ipBlock" json:"ip_block,omitempty"`
+	Dns                  string   `protobuf:"bytes,2,opt,name=dns" json:"dns,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *VPNUpdateRequest) Reset()         { *m = VPNUpdateRequest{} }
+func (m *VPNUpdateRequest) String() string { return proto.CompactTextString(m) }
+func (*VPNUpdateRequest) ProtoMessage()    {}
+func (*VPNUpdateRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_vpn_a36938fb10df2565, []int{2}
+}
+func (m *VPNUpdateRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_VPNUpdateRequest.Unmarshal(m, b)
+}
+func (m *VPNUpdateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_VPNUpdateRequest.Marshal(b, m, deterministic)
+}
+func (dst *VPNUpdateRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_VPNUpdateRequest.Merge(dst, src)
+}
+func (m *VPNUpdateRequest) XXX_Size() int {
+	return xxx_messageInfo_VPNUpdateRequest.Size(m)
+}
+func (m *VPNUpdateRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_VPNUpdateRequest.DiscardUnknown(m)
 }
 
-func (m *VPNUpdateRequest) Reset()                    { *m = VPNUpdateRequest{} }
-func (m *VPNUpdateRequest) String() string            { return proto.CompactTextString(m) }
-func (*VPNUpdateRequest) ProtoMessage()               {}
-func (*VPNUpdateRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2} }
+var xxx_messageInfo_VPNUpdateRequest proto.InternalMessageInfo
 
 func (m *VPNUpdateRequest) GetIpBlock() string {
 	if m != nil {
@@ -123,33 +197,77 @@ func (m *VPNUpdateRequest) GetDns() string {
 }
 
 type VPNRestartRequest struct {
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *VPNRestartRequest) Reset()         { *m = VPNRestartRequest{} }
+func (m *VPNRestartRequest) String() string { return proto.CompactTextString(m) }
+func (*VPNRestartRequest) ProtoMessage()    {}
+func (*VPNRestartRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_vpn_a36938fb10df2565, []int{3}
+}
+func (m *VPNRestartRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_VPNRestartRequest.Unmarshal(m, b)
+}
+func (m *VPNRestartRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_VPNRestartRequest.Marshal(b, m, deterministic)
+}
+func (dst *VPNRestartRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_VPNRestartRequest.Merge(dst, src)
+}
+func (m *VPNRestartRequest) XXX_Size() int {
+	return xxx_messageInfo_VPNRestartRequest.Size(m)
+}
+func (m *VPNRestartRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_VPNRestartRequest.DiscardUnknown(m)
 }
 
-func (m *VPNRestartRequest) Reset()                    { *m = VPNRestartRequest{} }
-func (m *VPNRestartRequest) String() string            { return proto.CompactTextString(m) }
-func (*VPNRestartRequest) ProtoMessage()               {}
-func (*VPNRestartRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{3} }
+var xxx_messageInfo_VPNRestartRequest proto.InternalMessageInfo
 
 type VPNStatusResponse struct {
-	Name         string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
-	SerialNumber string `protobuf:"bytes,2,opt,name=serial_number,json=serialNumber" json:"serial_number,omitempty"`
-	Hostname     string `protobuf:"bytes,3,opt,name=hostname" json:"hostname,omitempty"`
-	Port         string `protobuf:"bytes,4,opt,name=port" json:"port,omitempty"`
-	Cert         string `protobuf:"bytes,5,opt,name=cert" json:"cert,omitempty"`
-	CaCert       string `protobuf:"bytes,6,opt,name=ca_cert,json=caCert" json:"ca_cert,omitempty"`
-	Net          string `protobuf:"bytes,7,opt,name=net" json:"net,omitempty"`
-	Mask         string `protobuf:"bytes,8,opt,name=mask" json:"mask,omitempty"`
-	CreatedAt    string `protobuf:"bytes,9,opt,name=created_at,json=createdAt" json:"created_at,omitempty"`
-	Proto        string `protobuf:"bytes,10,opt,name=proto" json:"proto,omitempty"`
-	Dns          string `protobuf:"bytes,11,opt,name=dns" json:"dns,omitempty"`
-	ExpiresAt    string `protobuf:"bytes,12,opt,name=expires_at,json=expiresAt" json:"expires_at,omitempty"`
-	CaExpiresAt  string `protobuf:"bytes,13,opt,name=ca_expires_at,json=caExpiresAt" json:"ca_expires_at,omitempty"`
-}
-
-func (m *VPNStatusResponse) Reset()                    { *m = VPNStatusResponse{} }
-func (m *VPNStatusResponse) String() string            { return proto.CompactTextString(m) }
-func (*VPNStatusResponse) ProtoMessage()               {}
-func (*VPNStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{4} }
+	Name                 string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+	SerialNumber         string   `protobuf:"bytes,2,opt,name=serial_number,json=serialNumber" json:"serial_number,omitempty"`
+	Hostname             string   `protobuf:"bytes,3,opt,name=hostname" json:"hostname,omitempty"`
+	Port                 string   `protobuf:"bytes,4,opt,name=port" json:"port,omitempty"`
+	Cert                 string   `protobuf:"bytes,5,opt,name=cert" json:"cert,omitempty"`
+	CaCert               string   `protobuf:"bytes,6,opt,name=ca_cert,json=caCert" json:"ca_cert,omitempty"`
+	Net                  string   `protobuf:"bytes,7,opt,name=net" json:"net,omitempty"`
+	Mask                 string   `protobuf:"bytes,8,opt,name=mask" json:"mask,omitempty"`
+	CreatedAt            string   `protobuf:"bytes,9,opt,name=created_at,json=createdAt" json:"created_at,omitempty"`
+	Proto                string   `protobuf:"bytes,10,opt,name=proto" json:"proto,omitempty"`
+	Dns                  string   `protobuf:"bytes,11,opt,name=dns" json:"dns,omitempty"`
+	ExpiresAt            string   `protobuf:"bytes,12,opt,name=expires_at,json=expiresAt" json:"expires_at,omitempty"`
+	CaExpiresAt          string   `protobuf:"bytes,13,opt,name=ca_expires_at,json=caExpiresAt" json:"ca_expires_at,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *VPNStatusResponse) Reset()         { *m = VPNStatusResponse{} }
+func (m *VPNStatusResponse) String() string { return proto.CompactTextString(m) }
+func (*VPNStatusResponse) ProtoMessage()    {}
+func (*VPNStatusResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_vpn_a36938fb10df2565, []int{4}
+}
+func (m *VPNStatusResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_VPNStatusResponse.Unmarshal(m, b)
+}
+func (m *VPNStatusResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_VPNStatusResponse.Marshal(b, m, deterministic)
+}
+func (dst *VPNStatusResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_VPNStatusResponse.Merge(dst, src)
+}
+func (m *VPNStatusResponse) XXX_Size() int {
+	return xxx_messageInfo_VPNStatusResponse.Size(m)
+}
+func (m *VPNStatusResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_VPNStatusResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_VPNStatusResponse proto.InternalMessageInfo
 
 func (m *VPNStatusResponse) GetName() string {
 	if m != nil {
@@ -243,28 +361,94 @@ func (m *VPNStatusResponse) GetCaExpiresAt() string {
 }
 
 type VPNInitResponse struct {
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *VPNInitResponse) Reset()         { *m = VPNInitResponse{} }
+func (m *VPNInitResponse) String() string { return proto.CompactTextString(m) }
+func (*VPNInitResponse) ProtoMessage()    {}
+func (*VPNInitResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_vpn_a36938fb10df2565, []int{5}
+}
+func (m *VPNInitResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_VPNInitResponse.Unmarshal(m, b)
+}
+func (m *VPNInitResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_VPNInitResponse.Marshal(b, m, deterministic)
+}
+func (dst *VPNInitResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_VPNInitResponse.Merge(dst, src)
+}
+func (m *VPNInitResponse) XXX_Size() int {
+	return xxx_messageInfo_VPNInitResponse.Size(m)
+}
+func (m *VPNInitResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_VPNInitResponse.DiscardUnknown(m)
 }
 
-func (m *VPNInitResponse) Reset()                    { *m = VPNInitResponse{} }
-func (m *VPNInitResponse) String() string            { return proto.CompactTextString(m) }
-func (*VPNInitResponse) ProtoMessage()               {}
-func (*VPNInitResponse) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{5} }
+var xxx_messageInfo_VPNInitResponse proto.InternalMessageInfo
 
 type VPNUpdateResponse struct {
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *VPNUpdateResponse) Reset()         { *m = VPNUpdateResponse{} }
+func (m *VPNUpdateResponse) String() string { return proto.CompactTextString(m) }
+func (*VPNUpdateResponse) ProtoMessage()    {}
+func (*VPNUpdateResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_vpn_a36938fb10df2565, []int{6}
+}
+func (m *VPNUpdateResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_VPNUpdateResponse.Unmarshal(m, b)
+}
+func (m *VPNUpdateResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_VPNUpdateResponse.Marshal(b, m, deterministic)
+}
+func (dst *VPNUpdateResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_VPNUpdateResponse.Merge(dst, src)
+}
+func (m *VPNUpdateResponse) XXX_Size() int {
+	return xxx_messageInfo_VPNUpdateResponse.Size(m)
+}
+func (m *VPNUpdateResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_VPNUpdateResponse.DiscardUnknown(m)
 }
 
-func (m *VPNUpdateResponse) Reset()                    { *m = VPNUpdateResponse{} }
-func (m *VPNUpdateResponse) String() string            { return proto.CompactTextString(m) }
-func (*VPNUpdateResponse) ProtoMessage()               {}
-func (*VPNUpdateResponse) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{6} }
+var xxx_messageInfo_VPNUpdateResponse proto.InternalMessageInfo
 
 type VPNRestartResponse struct {
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *VPNRestartResponse) Reset()         { *m = VPNRestartResponse{} }
+func (m *VPNRestartResponse) String() string { return proto.CompactTextString(m) }
+func (*VPNRestartResponse) ProtoMessage()    {}
+func (*VPNRestartResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_vpn_a36938fb10df2565, []int{7}
+}
+func (m *VPNRestartResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_VPNRestartResponse.Unmarshal(m, b)
+}
+func (m *VPNRestartResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_VPNRestartResponse.Marshal(b, m, deterministic)
+}
+func (dst *VPNRestartResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_VPNRestartResponse.Merge(dst, src)
+}
+func (m *VPNRestartResponse) XXX_Size() int {
+	return xxx_messageInfo_VPNRestartResponse.Size(m)
+}
+func (m *VPNRestartResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_VPNRestartResponse.DiscardUnknown(m)
 }
 
-func (m *VPNRestartResponse) Reset()                    { *m = VPNRestartResponse{} }
-func (m *VPNRestartResponse) String() string            { return proto.CompactTextString(m) }
-func (*VPNRestartResponse) ProtoMessage()               {}
-func (*VPNRestartResponse) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{7} }
+var xxx_messageInfo_VPNRestartResponse proto.InternalMessageInfo
 
 func init() {
 	proto.RegisterType((*VPNStatusRequest)(nil), "pb.VPNStatusRequest")
@@ -449,9 +633,9 @@ var _VPNService_serviceDesc = grpc.ServiceDesc{
 	Metadata: "vpn.proto",
 }
 
-func init() { proto.RegisterFile("vpn.proto", fileDescriptor1) }
+func init() { proto.RegisterFile("vpn.proto", fileDescriptor_vpn_a36938fb10df2565) }
 
-var fileDescriptor1 = []byte{
+var fileDescriptor_vpn_a36938fb10df2565 = []byte{
 	// 568 bytes of a gzipped FileDescriptorProto
 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x93, 0xcd, 0x6e, 0xd3, 0x40,
 	0x10, 0xc7, 0xb1, 0x93, 0xe6, 0x63, 0xfa, 0x81, 0x3b, 0x4d, 0xa9, 0x09, 0x54, 0xaa, 0xcc, 0xa5,

+ 10 - 10
bindata/bindata.go

@@ -97,7 +97,7 @@ func templateAuthSwaggerJson() (*asset, error) {
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "template/auth.swagger.json", size: 2916, mode: os.FileMode(420), modTime: time.Unix(1525111523, 0)}
+	info := bindataFileInfo{name: "template/auth.swagger.json", size: 2916, mode: os.FileMode(420), modTime: time.Unix(1526198768, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -117,7 +117,7 @@ func templateBootstrapMinCss() (*asset, error) {
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "template/bootstrap.min.css", size: 113498, mode: os.FileMode(420), modTime: time.Unix(1525111536, 0)}
+	info := bindataFileInfo{name: "template/bootstrap.min.css", size: 113498, mode: os.FileMode(420), modTime: time.Unix(1526198784, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -137,7 +137,7 @@ func templateBundleJs() (*asset, error) {
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "template/bundle.js", size: 564106, mode: os.FileMode(420), modTime: time.Unix(1525111536, 0)}
+	info := bindataFileInfo{name: "template/bundle.js", size: 564106, mode: os.FileMode(420), modTime: time.Unix(1526198784, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -217,7 +217,7 @@ func templateGlyphiconsHalflingsRegularWoff() (*asset, error) {
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "template/glyphicons-halflings-regular.woff", size: 23320, mode: os.FileMode(420), modTime: time.Unix(1525111536, 0)}
+	info := bindataFileInfo{name: "template/glyphicons-halflings-regular.woff", size: 23320, mode: os.FileMode(420), modTime: time.Unix(1526198784, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -237,7 +237,7 @@ func templateIndexHtml() (*asset, error) {
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "template/index.html", size: 476, mode: os.FileMode(420), modTime: time.Unix(1525111536, 0)}
+	info := bindataFileInfo{name: "template/index.html", size: 476, mode: os.FileMode(420), modTime: time.Unix(1526198784, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -277,7 +277,7 @@ func templateMuiMinCss() (*asset, error) {
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "template/mui.min.css", size: 43576, mode: os.FileMode(420), modTime: time.Unix(1525111536, 0)}
+	info := bindataFileInfo{name: "template/mui.min.css", size: 43576, mode: os.FileMode(420), modTime: time.Unix(1526198784, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -297,7 +297,7 @@ func templateMuiMinJs() (*asset, error) {
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "template/mui.min.js", size: 19095, mode: os.FileMode(420), modTime: time.Unix(1525111536, 0)}
+	info := bindataFileInfo{name: "template/mui.min.js", size: 19095, mode: os.FileMode(420), modTime: time.Unix(1526198784, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -317,7 +317,7 @@ func templateNetworkSwaggerJson() (*asset, error) {
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "template/network.swagger.json", size: 6669, mode: os.FileMode(420), modTime: time.Unix(1525111523, 0)}
+	info := bindataFileInfo{name: "template/network.swagger.json", size: 6669, mode: os.FileMode(420), modTime: time.Unix(1526198768, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -357,7 +357,7 @@ func templateUserSwaggerJson() (*asset, error) {
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "template/user.swagger.json", size: 6969, mode: os.FileMode(420), modTime: time.Unix(1525111523, 0)}
+	info := bindataFileInfo{name: "template/user.swagger.json", size: 6969, mode: os.FileMode(420), modTime: time.Unix(1526198768, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -377,7 +377,7 @@ func templateVpnSwaggerJson() (*asset, error) {
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "template/vpn.swagger.json", size: 3859, mode: os.FileMode(420), modTime: time.Unix(1525111523, 0)}
+	info := bindataFileInfo{name: "template/vpn.swagger.json", size: 3859, mode: os.FileMode(420), modTime: time.Unix(1526198768, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }