// Code generated by protoc-gen-go. DO NOT EDIT.
// source: examples/internal/proto/examplepb/use_go_template.proto

package examplepb

import (
	context "context"
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	math "math"
)

// Reference imports to suppress errors if they are not otherwise used.
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.ProtoPackageIsVersion3 // please upgrade the proto package

type LoginRequest struct {
	// The entered username
	Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
	// The entered password
	Password             string   `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *LoginRequest) Reset()         { *m = LoginRequest{} }
func (m *LoginRequest) String() string { return proto.CompactTextString(m) }
func (*LoginRequest) ProtoMessage()    {}
func (*LoginRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed0d8910d38fbb31, []int{0}
}

func (m *LoginRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_LoginRequest.Unmarshal(m, b)
}
func (m *LoginRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_LoginRequest.Marshal(b, m, deterministic)
}
func (m *LoginRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_LoginRequest.Merge(m, src)
}
func (m *LoginRequest) XXX_Size() int {
	return xxx_messageInfo_LoginRequest.Size(m)
}
func (m *LoginRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_LoginRequest.DiscardUnknown(m)
}

var xxx_messageInfo_LoginRequest proto.InternalMessageInfo

func (m *LoginRequest) GetUsername() string {
	if m != nil {
		return m.Username
	}
	return ""
}

func (m *LoginRequest) GetPassword() string {
	if m != nil {
		return m.Password
	}
	return ""
}

type LoginReply struct {
	Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
	// Whether you have access or not
	Access               bool     `protobuf:"varint,2,opt,name=access,proto3" json:"access,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *LoginReply) Reset()         { *m = LoginReply{} }
func (m *LoginReply) String() string { return proto.CompactTextString(m) }
func (*LoginReply) ProtoMessage()    {}
func (*LoginReply) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed0d8910d38fbb31, []int{1}
}

func (m *LoginReply) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_LoginReply.Unmarshal(m, b)
}
func (m *LoginReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_LoginReply.Marshal(b, m, deterministic)
}
func (m *LoginReply) XXX_Merge(src proto.Message) {
	xxx_messageInfo_LoginReply.Merge(m, src)
}
func (m *LoginReply) XXX_Size() int {
	return xxx_messageInfo_LoginReply.Size(m)
}
func (m *LoginReply) XXX_DiscardUnknown() {
	xxx_messageInfo_LoginReply.DiscardUnknown(m)
}

var xxx_messageInfo_LoginReply proto.InternalMessageInfo

func (m *LoginReply) GetMessage() string {
	if m != nil {
		return m.Message
	}
	return ""
}

func (m *LoginReply) GetAccess() bool {
	if m != nil {
		return m.Access
	}
	return false
}

type LogoutRequest struct {
	// The time the logout was registered
	Timeoflogout string `protobuf:"bytes,1,opt,name=timeoflogout,proto3" json:"timeoflogout,omitempty"`
	// This is the title
	//
	// This is the "Description" of field test
	// you can use as many newlines as you want
	//
	//
	// it will still format the same in the table
	Test int32 `protobuf:"varint,2,opt,name=test,proto3" json:"test,omitempty"`
	// This is an array
	//
	// It displays that using [] infront of the type
	Stringarray          []string `protobuf:"bytes,3,rep,name=stringarray,proto3" json:"stringarray,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *LogoutRequest) Reset()         { *m = LogoutRequest{} }
func (m *LogoutRequest) String() string { return proto.CompactTextString(m) }
func (*LogoutRequest) ProtoMessage()    {}
func (*LogoutRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed0d8910d38fbb31, []int{2}
}

func (m *LogoutRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_LogoutRequest.Unmarshal(m, b)
}
func (m *LogoutRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_LogoutRequest.Marshal(b, m, deterministic)
}
func (m *LogoutRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_LogoutRequest.Merge(m, src)
}
func (m *LogoutRequest) XXX_Size() int {
	return xxx_messageInfo_LogoutRequest.Size(m)
}
func (m *LogoutRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_LogoutRequest.DiscardUnknown(m)
}

var xxx_messageInfo_LogoutRequest proto.InternalMessageInfo

func (m *LogoutRequest) GetTimeoflogout() string {
	if m != nil {
		return m.Timeoflogout
	}
	return ""
}

func (m *LogoutRequest) GetTest() int32 {
	if m != nil {
		return m.Test
	}
	return 0
}

func (m *LogoutRequest) GetStringarray() []string {
	if m != nil {
		return m.Stringarray
	}
	return nil
}

type LogoutReply struct {
	// Message that tells you whether your
	// logout was succesful or not
	Message              string   `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *LogoutReply) Reset()         { *m = LogoutReply{} }
func (m *LogoutReply) String() string { return proto.CompactTextString(m) }
func (*LogoutReply) ProtoMessage()    {}
func (*LogoutReply) Descriptor() ([]byte, []int) {
	return fileDescriptor_ed0d8910d38fbb31, []int{3}
}

func (m *LogoutReply) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_LogoutReply.Unmarshal(m, b)
}
func (m *LogoutReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_LogoutReply.Marshal(b, m, deterministic)
}
func (m *LogoutReply) XXX_Merge(src proto.Message) {
	xxx_messageInfo_LogoutReply.Merge(m, src)
}
func (m *LogoutReply) XXX_Size() int {
	return xxx_messageInfo_LogoutReply.Size(m)
}
func (m *LogoutReply) XXX_DiscardUnknown() {
	xxx_messageInfo_LogoutReply.DiscardUnknown(m)
}

var xxx_messageInfo_LogoutReply proto.InternalMessageInfo

func (m *LogoutReply) GetMessage() string {
	if m != nil {
		return m.Message
	}
	return ""
}

func init() {
	proto.RegisterType((*LoginRequest)(nil), "grpc.gateway.examples.internal.examplepb.LoginRequest")
	proto.RegisterType((*LoginReply)(nil), "grpc.gateway.examples.internal.examplepb.LoginReply")
	proto.RegisterType((*LogoutRequest)(nil), "grpc.gateway.examples.internal.examplepb.LogoutRequest")
	proto.RegisterType((*LogoutReply)(nil), "grpc.gateway.examples.internal.examplepb.LogoutReply")
}

func init() {
	proto.RegisterFile("examples/internal/proto/examplepb/use_go_template.proto", fileDescriptor_ed0d8910d38fbb31)
}

var fileDescriptor_ed0d8910d38fbb31 = []byte{
	// 373 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x92, 0xbd, 0x8e, 0x1a, 0x31,
	0x14, 0x85, 0x35, 0x10, 0x08, 0x18, 0x52, 0xc4, 0x05, 0x19, 0x8d, 0x88, 0x84, 0xdc, 0x04, 0x51,
	0x8c, 0x95, 0x5f, 0x24, 0x8a, 0x14, 0x29, 0x52, 0x51, 0x4d, 0xba, 0x34, 0xc8, 0x4c, 0x6e, 0x2c,
	0x4b, 0x9e, 0xb1, 0x63, 0x7b, 0x20, 0xd3, 0xee, 0x2b, 0x50, 0xec, 0xdb, 0xec, 0x4b, 0xec, 0x2b,
	0xec, 0x83, 0xac, 0xc6, 0x8c, 0x59, 0x76, 0x8b, 0xd5, 0xd2, 0xcd, 0x3d, 0x57, 0xe7, 0x9b, 0xe3,
	0xa3, 0x8b, 0x96, 0xf0, 0x9f, 0x15, 0x5a, 0x82, 0xa5, 0xa2, 0x74, 0x60, 0x4a, 0x26, 0xa9, 0x36,
	0xca, 0x29, 0xda, 0xea, 0x7a, 0x4b, 0x2b, 0x0b, 0x1b, 0xae, 0x36, 0x0e, 0x0a, 0x2d, 0x99, 0x83,
	0xd4, 0xef, 0xf1, 0x9c, 0x1b, 0x9d, 0xa7, 0x9c, 0x39, 0xd8, 0xb3, 0x3a, 0x0d, 0x94, 0x34, 0x50,
	0xd2, 0x93, 0x3f, 0x99, 0x72, 0xa5, 0xb8, 0x04, 0xca, 0xb4, 0xa0, 0xac, 0x2c, 0x95, 0x63, 0x4e,
	0xa8, 0xd2, 0x1e, 0x39, 0xe4, 0x27, 0x1a, 0xaf, 0x15, 0x17, 0x65, 0x06, 0xff, 0x2a, 0xb0, 0x0e,
	0x27, 0x68, 0x50, 0xd9, 0x06, 0x51, 0x40, 0x1c, 0xcd, 0xa2, 0xf9, 0x30, 0x3b, 0xcd, 0xcd, 0x4e,
	0x33, 0x6b, 0xf7, 0xca, 0xfc, 0x89, 0x3b, 0xc7, 0x5d, 0x98, 0xc9, 0x77, 0x84, 0x5a, 0x8e, 0x96,
	0x35, 0x8e, 0xd1, 0xeb, 0x02, 0xac, 0x65, 0x3c, 0x40, 0xc2, 0x88, 0x27, 0xa8, 0xcf, 0xf2, 0x1c,
	0xac, 0xf5, 0x84, 0x41, 0xd6, 0x4e, 0x44, 0xa0, 0x37, 0x6b, 0xc5, 0x55, 0xe5, 0x42, 0x10, 0x82,
	0xc6, 0x4e, 0x14, 0xa0, 0xfe, 0x4a, 0x2f, 0xb7, 0x9c, 0x47, 0x1a, 0xc6, 0xe8, 0x95, 0x03, 0xeb,
	0x3c, 0xaa, 0x97, 0xf9, 0x6f, 0x3c, 0x43, 0x23, 0xeb, 0x8c, 0x28, 0x39, 0x33, 0x86, 0xd5, 0x71,
	0x77, 0xd6, 0x9d, 0x0f, 0xb3, 0x73, 0x89, 0x7c, 0x40, 0xa3, 0xf0, 0xab, 0x67, 0xb3, 0x7e, 0xba,
	0xe9, 0xb4, 0xe5, 0xfc, 0x02, 0xb3, 0x13, 0x39, 0xe0, 0x43, 0x84, 0x7a, 0x5e, 0xc0, 0xdf, 0xd2,
	0x97, 0xf6, 0x9f, 0x9e, 0xd7, 0x9b, 0x7c, 0xb9, 0xd8, 0xa7, 0x65, 0x4d, 0xa6, 0x57, 0xb7, 0x77,
	0x87, 0xce, 0x84, 0xbc, 0xa5, 0xbb, 0x8f, 0xe1, 0x32, 0xa8, 0x6c, 0xf6, 0xab, 0x68, 0x81, 0xaf,
	0x23, 0xd4, 0x3f, 0x3e, 0x08, 0x2f, 0x2f, 0xc2, 0x3f, 0xb4, 0x9d, 0x7c, 0xbd, 0xdc, 0xd8, 0x04,
	0x7b, 0xef, 0x83, 0xbd, 0x23, 0xf8, 0x49, 0x30, 0x55, 0xb9, 0x55, 0xb4, 0xf8, 0x31, 0xfa, 0x3d,
	0x3c, 0xf9, 0xb6, 0x7d, 0x7f, 0x70, 0x9f, 0xef, 0x03, 0x00, 0x00, 0xff, 0xff, 0x2d, 0xc0, 0x42,
	0xdb, 0xf3, 0x02, 0x00, 0x00,
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConnInterface

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion6

// LoginServiceClient is the client API for LoginService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type LoginServiceClient interface {
	// Login
	//
	// {{.MethodDescriptorProto.Name}} is a call with the method(s) {{$first := true}}{{range .Bindings}}{{if $first}}{{$first = false}}{{else}}, {{end}}{{.HTTPMethod}}{{end}} within the "{{.Service.Name}}" service.
	// It takes in "{{.RequestType.Name}}" and returns a "{{.ResponseType.Name}}".
	//
	// ## {{.RequestType.Name}}
	// | Field ID    | Name      | Type                                                       | Description                  |
	// | ----------- | --------- | ---------------------------------------------------------  | ---------------------------- | {{range .RequestType.Fields}}
	// | {{.Number}} | {{.Name}} | {{if eq .Label.String "LABEL_REPEATED"}}[]{{end}}{{.Type}} | {{fieldcomments .Message .}} | {{end}}
	//
	// ## {{.ResponseType.Name}}
	// | Field ID    | Name      | Type                                                       | Description                  |
	// | ----------- | --------- | ---------------------------------------------------------- | ---------------------------- | {{range .ResponseType.Fields}}
	// | {{.Number}} | {{.Name}} | {{if eq .Label.String "LABEL_REPEATED"}}[]{{end}}{{.Type}} | {{fieldcomments .Message .}} | {{end}}
	Login(ctx context.Context, in *LoginRequest, opts ...grpc.CallOption) (*LoginReply, error)
	// Logout
	//
	// {{.MethodDescriptorProto.Name}} is a call with the method(s) {{$first := true}}{{range .Bindings}}{{if $first}}{{$first = false}}{{else}}, {{end}}{{.HTTPMethod}}{{end}} within the "{{.Service.Name}}" service.
	// It takes in "{{.RequestType.Name}}" and returns a "{{.ResponseType.Name}}".
	//
	// ## {{.RequestType.Name}}
	// | Field ID    | Name      | Type                                                       | Description                  |
	// | ----------- | --------- | ---------------------------------------------------------  | ---------------------------- | {{range .RequestType.Fields}}
	// | {{.Number}} | {{.Name}} | {{if eq .Label.String "LABEL_REPEATED"}}[]{{end}}{{.Type}} | {{fieldcomments .Message .}} | {{end}}
	//
	// ## {{.ResponseType.Name}}
	// | Field ID    | Name      | Type                                                       | Description                  |
	// | ----------- | --------- | ---------------------------------------------------------- | ---------------------------- | {{range .ResponseType.Fields}}
	// | {{.Number}} | {{.Name}} | {{if eq .Label.String "LABEL_REPEATED"}}[]{{end}}{{.Type}} | {{fieldcomments .Message .}} | {{end}}
	Logout(ctx context.Context, in *LogoutRequest, opts ...grpc.CallOption) (*LogoutReply, error)
}

type loginServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewLoginServiceClient(cc grpc.ClientConnInterface) LoginServiceClient {
	return &loginServiceClient{cc}
}

func (c *loginServiceClient) Login(ctx context.Context, in *LoginRequest, opts ...grpc.CallOption) (*LoginReply, error) {
	out := new(LoginReply)
	err := c.cc.Invoke(ctx, "/grpc.gateway.examples.internal.examplepb.LoginService/Login", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *loginServiceClient) Logout(ctx context.Context, in *LogoutRequest, opts ...grpc.CallOption) (*LogoutReply, error) {
	out := new(LogoutReply)
	err := c.cc.Invoke(ctx, "/grpc.gateway.examples.internal.examplepb.LoginService/Logout", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// LoginServiceServer is the server API for LoginService service.
type LoginServiceServer interface {
	// Login
	//
	// {{.MethodDescriptorProto.Name}} is a call with the method(s) {{$first := true}}{{range .Bindings}}{{if $first}}{{$first = false}}{{else}}, {{end}}{{.HTTPMethod}}{{end}} within the "{{.Service.Name}}" service.
	// It takes in "{{.RequestType.Name}}" and returns a "{{.ResponseType.Name}}".
	//
	// ## {{.RequestType.Name}}
	// | Field ID    | Name      | Type                                                       | Description                  |
	// | ----------- | --------- | ---------------------------------------------------------  | ---------------------------- | {{range .RequestType.Fields}}
	// | {{.Number}} | {{.Name}} | {{if eq .Label.String "LABEL_REPEATED"}}[]{{end}}{{.Type}} | {{fieldcomments .Message .}} | {{end}}
	//
	// ## {{.ResponseType.Name}}
	// | Field ID    | Name      | Type                                                       | Description                  |
	// | ----------- | --------- | ---------------------------------------------------------- | ---------------------------- | {{range .ResponseType.Fields}}
	// | {{.Number}} | {{.Name}} | {{if eq .Label.String "LABEL_REPEATED"}}[]{{end}}{{.Type}} | {{fieldcomments .Message .}} | {{end}}
	Login(context.Context, *LoginRequest) (*LoginReply, error)
	// Logout
	//
	// {{.MethodDescriptorProto.Name}} is a call with the method(s) {{$first := true}}{{range .Bindings}}{{if $first}}{{$first = false}}{{else}}, {{end}}{{.HTTPMethod}}{{end}} within the "{{.Service.Name}}" service.
	// It takes in "{{.RequestType.Name}}" and returns a "{{.ResponseType.Name}}".
	//
	// ## {{.RequestType.Name}}
	// | Field ID    | Name      | Type                                                       | Description                  |
	// | ----------- | --------- | ---------------------------------------------------------  | ---------------------------- | {{range .RequestType.Fields}}
	// | {{.Number}} | {{.Name}} | {{if eq .Label.String "LABEL_REPEATED"}}[]{{end}}{{.Type}} | {{fieldcomments .Message .}} | {{end}}
	//
	// ## {{.ResponseType.Name}}
	// | Field ID    | Name      | Type                                                       | Description                  |
	// | ----------- | --------- | ---------------------------------------------------------- | ---------------------------- | {{range .ResponseType.Fields}}
	// | {{.Number}} | {{.Name}} | {{if eq .Label.String "LABEL_REPEATED"}}[]{{end}}{{.Type}} | {{fieldcomments .Message .}} | {{end}}
	Logout(context.Context, *LogoutRequest) (*LogoutReply, error)
}

// UnimplementedLoginServiceServer can be embedded to have forward compatible implementations.
type UnimplementedLoginServiceServer struct {
}

func (*UnimplementedLoginServiceServer) Login(ctx context.Context, req *LoginRequest) (*LoginReply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Login not implemented")
}
func (*UnimplementedLoginServiceServer) Logout(ctx context.Context, req *LogoutRequest) (*LogoutReply, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Logout not implemented")
}

func RegisterLoginServiceServer(s *grpc.Server, srv LoginServiceServer) {
	s.RegisterService(&_LoginService_serviceDesc, srv)
}

func _LoginService_Login_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(LoginRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LoginServiceServer).Login(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/grpc.gateway.examples.internal.examplepb.LoginService/Login",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LoginServiceServer).Login(ctx, req.(*LoginRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _LoginService_Logout_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(LogoutRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LoginServiceServer).Logout(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/grpc.gateway.examples.internal.examplepb.LoginService/Logout",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LoginServiceServer).Logout(ctx, req.(*LogoutRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _LoginService_serviceDesc = grpc.ServiceDesc{
	ServiceName: "grpc.gateway.examples.internal.examplepb.LoginService",
	HandlerType: (*LoginServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "Login",
			Handler:    _LoginService_Login_Handler,
		},
		{
			MethodName: "Logout",
			Handler:    _LoginService_Logout_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "examples/internal/proto/examplepb/use_go_template.proto",
}
