// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/cloud/gaming/v1beta/realms_service.proto

package gaming

import (
	context "context"
	fmt "fmt"
	math "math"

	proto "github.com/golang/protobuf/proto"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	longrunning "google.golang.org/genproto/googleapis/longrunning"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
)

// 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

func init() {
	proto.RegisterFile("google/cloud/gaming/v1beta/realms_service.proto", fileDescriptor_e30a00ee1bdb000d)
}

var fileDescriptor_e30a00ee1bdb000d = []byte{
	// 547 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x94, 0xcd, 0x6a, 0x14, 0x41,
	0x10, 0xc7, 0x19, 0x31, 0x41, 0x3b, 0x78, 0x48, 0x83, 0x08, 0xe3, 0x07, 0xb8, 0x1e, 0x84, 0xd5,
	0x74, 0xeb, 0xfa, 0x05, 0x91, 0x45, 0x27, 0x0a, 0x1e, 0x54, 0x12, 0x23, 0x5e, 0x72, 0x59, 0x3a,
	0x33, 0x65, 0x67, 0x74, 0xa6, 0xbb, 0xed, 0xee, 0xd9, 0x3d, 0x48, 0x2e, 0xbe, 0x82, 0x27, 0xdf,
	0xc1, 0x07, 0xf0, 0x19, 0x72, 0x92, 0x08, 0x1e, 0xf6, 0x2c, 0xf8, 0x1a, 0x92, 0xee, 0x9e, 0x64,
	0x30, 0x66, 0x76, 0xd6, 0xcb, 0x2e, 0x5b, 0xf5, 0xaf, 0xaa, 0xff, 0xaf, 0x8b, 0x2d, 0x44, 0xb9,
	0x94, 0xbc, 0x00, 0x9a, 0x16, 0xb2, 0xca, 0x28, 0x67, 0x65, 0x2e, 0x38, 0x1d, 0xdf, 0xde, 0x06,
	0xcb, 0xa8, 0x06, 0x56, 0x94, 0x66, 0x64, 0x40, 0x8f, 0xf3, 0x14, 0x88, 0xd2, 0xd2, 0x4a, 0x1c,
	0xfb, 0x02, 0xe2, 0x0a, 0x88, 0x2f, 0x20, 0xbe, 0x20, 0xbe, 0x14, 0x9a, 0x31, 0x95, 0x53, 0x26,
	0x84, 0xb4, 0xcc, 0xe6, 0x52, 0x18, 0x5f, 0x19, 0x5f, 0x68, 0x64, 0xd3, 0x22, 0x07, 0x61, 0x43,
	0xe2, 0xfa, 0x4c, 0x0f, 0x41, 0x78, 0x2d, 0x08, 0x0b, 0x29, 0xb8, 0xae, 0x84, 0x38, 0xd0, 0x49,
	0x05, 0xba, 0x39, 0x66, 0xf0, 0xfb, 0x2c, 0x3a, 0xb7, 0xe9, 0xaa, 0x5e, 0x7b, 0xe3, 0xf8, 0x6b,
	0x84, 0xd0, 0x8b, 0xdc, 0x58, 0x1f, 0xc5, 0x2b, 0xe4, 0x64, 0x04, 0x72, 0xa4, 0xdb, 0x84, 0x0f,
	0x15, 0x18, 0x1b, 0x93, 0xae, 0x72, 0xa3, 0xa4, 0x30, 0xd0, 0x7b, 0x34, 0x4d, 0x16, 0x15, 0xd3,
	0x20, 0xec, 0xa7, 0x1f, 0xbf, 0x3e, 0x9f, 0xba, 0x85, 0x49, 0xcd, 0xf2, 0xd1, 0x87, 0x87, 0x4a,
	0xcb, 0x77, 0x90, 0x5a, 0x43, 0xfb, 0xb4, 0x90, 0xa9, 0x37, 0x4f, 0xfb, 0xbb, 0x81, 0x15, 0x7f,
	0x89, 0xd0, 0x99, 0x67, 0xe0, 0xdb, 0xe2, 0x1b, 0x6d, 0xd3, 0x6b, 0x55, 0x6d, 0xf5, 0x6a, 0x9b,
	0xd8, 0x29, 0x7b, 0xc3, 0x69, 0x72, 0x5a, 0xb0, 0x12, 0x8e, 0x79, 0x3b, 0x08, 0x9e, 0xe0, 0x2c,
	0x18, 0xa3, 0xfd, 0x5d, 0xfc, 0x3d, 0x42, 0x4b, 0x4f, 0x34, 0x30, 0x0b, 0xde, 0x5e, 0xeb, 0xe3,
	0x34, 0x84, 0xb5, 0xc3, 0xcb, 0xb5, 0xbe, 0xb1, 0x42, 0xb2, 0x5e, 0xaf, 0xb0, 0xa7, 0xf7, 0x92,
	0x18, 0x2d, 0xf8, 0xd6, 0xcb, 0x87, 0xe1, 0x97, 0x60, 0x59, 0xc6, 0x2c, 0x9b, 0x26, 0xe7, 0xfd,
	0x0b, 0xde, 0x74, 0x86, 0xfc, 0xe7, 0x28, 0xcf, 0x1c, 0xcb, 0x83, 0xde, 0x9c, 0xef, 0xbc, 0xba,
	0xe0, 0xbe, 0xf1, 0xb7, 0x08, 0x2d, 0x3d, 0x85, 0x02, 0x3a, 0x21, 0x35, 0x84, 0x1d, 0x91, 0xb6,
	0x66, 0x20, 0x35, 0xb6, 0xd1, 0x9f, 0x77, 0x1b, 0xfb, 0x11, 0x5a, 0x7a, 0xa3, 0xb2, 0x6e, 0xdb,
	0x68, 0x08, 0x3b, 0x5a, 0xb7, 0x33, 0xac, 0x2f, 0xfb, 0x35, 0x54, 0xae, 0xf1, 0xa8, 0x64, 0xe6,
	0xbd, 0xe3, 0x18, 0x0e, 0xee, 0x1e, 0x72, 0x38, 0x05, 0xe9, 0x44, 0x53, 0xef, 0xe3, 0x67, 0x84,
	0xf0, 0x86, 0x86, 0x71, 0x0e, 0x13, 0x37, 0xda, 0xfb, 0xc6, 0xf7, 0xda, 0xd8, 0x8e, 0xeb, 0x6b,
	0xc4, 0xfb, 0xf3, 0x96, 0x85, 0x7f, 0xf1, 0x2b, 0x87, 0xf2, 0x7c, 0xb0, 0xf6, 0x5f, 0x28, 0xca,
	0x37, 0xf6, 0x3d, 0x03, 0x58, 0xbc, 0xbe, 0x97, 0x5c, 0xe4, 0xac, 0x84, 0x70, 0x4f, 0x4d, 0x70,
	0xc6, 0x54, 0x6e, 0x48, 0x2a, 0xcb, 0xfd, 0x84, 0xec, 0x58, 0xab, 0xcc, 0x2a, 0xa5, 0x93, 0xc9,
	0xe4, 0xaf, 0x24, 0x65, 0x95, 0xdd, 0xf1, 0x07, 0x72, 0x45, 0x15, 0xcc, 0xbe, 0x95, 0xba, 0x5c,
	0xcb, 0xd0, 0x95, 0x54, 0x96, 0x2d, 0x80, 0x1b, 0xd1, 0xd6, 0xe3, 0x90, 0xe5, 0xb2, 0x60, 0x82,
	0x13, 0xa9, 0x39, 0xe5, 0x20, 0xdc, 0xa5, 0xa4, 0x47, 0x23, 0xfe, 0x75, 0x7a, 0x1f, 0xfa, 0x5f,
	0xdb, 0x8b, 0x4e, 0x7c, 0xe7, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb7, 0xcb, 0xb5, 0x11, 0x2a,
	0x06, 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

// RealmsServiceClient is the client API for RealmsService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type RealmsServiceClient interface {
	// Lists Realms in a given project and Location.
	ListRealms(ctx context.Context, in *ListRealmsRequest, opts ...grpc.CallOption) (*ListRealmsResponse, error)
	// Gets details of a single Realm.
	GetRealm(ctx context.Context, in *GetRealmRequest, opts ...grpc.CallOption) (*Realm, error)
	// Creates a new Realm in a given project and Location.
	CreateRealm(ctx context.Context, in *CreateRealmRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Deletes a single Realm.
	DeleteRealm(ctx context.Context, in *DeleteRealmRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Patches a single Realm.
	UpdateRealm(ctx context.Context, in *UpdateRealmRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
	// Previews patches to a single Realm.
	PreviewRealmUpdate(ctx context.Context, in *PreviewRealmUpdateRequest, opts ...grpc.CallOption) (*PreviewRealmUpdateResponse, error)
}

type realmsServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewRealmsServiceClient(cc grpc.ClientConnInterface) RealmsServiceClient {
	return &realmsServiceClient{cc}
}

func (c *realmsServiceClient) ListRealms(ctx context.Context, in *ListRealmsRequest, opts ...grpc.CallOption) (*ListRealmsResponse, error) {
	out := new(ListRealmsResponse)
	err := c.cc.Invoke(ctx, "/google.cloud.gaming.v1beta.RealmsService/ListRealms", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *realmsServiceClient) GetRealm(ctx context.Context, in *GetRealmRequest, opts ...grpc.CallOption) (*Realm, error) {
	out := new(Realm)
	err := c.cc.Invoke(ctx, "/google.cloud.gaming.v1beta.RealmsService/GetRealm", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *realmsServiceClient) CreateRealm(ctx context.Context, in *CreateRealmRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.gaming.v1beta.RealmsService/CreateRealm", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *realmsServiceClient) DeleteRealm(ctx context.Context, in *DeleteRealmRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.gaming.v1beta.RealmsService/DeleteRealm", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *realmsServiceClient) UpdateRealm(ctx context.Context, in *UpdateRealmRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
	out := new(longrunning.Operation)
	err := c.cc.Invoke(ctx, "/google.cloud.gaming.v1beta.RealmsService/UpdateRealm", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *realmsServiceClient) PreviewRealmUpdate(ctx context.Context, in *PreviewRealmUpdateRequest, opts ...grpc.CallOption) (*PreviewRealmUpdateResponse, error) {
	out := new(PreviewRealmUpdateResponse)
	err := c.cc.Invoke(ctx, "/google.cloud.gaming.v1beta.RealmsService/PreviewRealmUpdate", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// RealmsServiceServer is the server API for RealmsService service.
type RealmsServiceServer interface {
	// Lists Realms in a given project and Location.
	ListRealms(context.Context, *ListRealmsRequest) (*ListRealmsResponse, error)
	// Gets details of a single Realm.
	GetRealm(context.Context, *GetRealmRequest) (*Realm, error)
	// Creates a new Realm in a given project and Location.
	CreateRealm(context.Context, *CreateRealmRequest) (*longrunning.Operation, error)
	// Deletes a single Realm.
	DeleteRealm(context.Context, *DeleteRealmRequest) (*longrunning.Operation, error)
	// Patches a single Realm.
	UpdateRealm(context.Context, *UpdateRealmRequest) (*longrunning.Operation, error)
	// Previews patches to a single Realm.
	PreviewRealmUpdate(context.Context, *PreviewRealmUpdateRequest) (*PreviewRealmUpdateResponse, error)
}

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

func (*UnimplementedRealmsServiceServer) ListRealms(ctx context.Context, req *ListRealmsRequest) (*ListRealmsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListRealms not implemented")
}
func (*UnimplementedRealmsServiceServer) GetRealm(ctx context.Context, req *GetRealmRequest) (*Realm, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetRealm not implemented")
}
func (*UnimplementedRealmsServiceServer) CreateRealm(ctx context.Context, req *CreateRealmRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateRealm not implemented")
}
func (*UnimplementedRealmsServiceServer) DeleteRealm(ctx context.Context, req *DeleteRealmRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteRealm not implemented")
}
func (*UnimplementedRealmsServiceServer) UpdateRealm(ctx context.Context, req *UpdateRealmRequest) (*longrunning.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateRealm not implemented")
}
func (*UnimplementedRealmsServiceServer) PreviewRealmUpdate(ctx context.Context, req *PreviewRealmUpdateRequest) (*PreviewRealmUpdateResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method PreviewRealmUpdate not implemented")
}

func RegisterRealmsServiceServer(s *grpc.Server, srv RealmsServiceServer) {
	s.RegisterService(&_RealmsService_serviceDesc, srv)
}

func _RealmsService_ListRealms_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListRealmsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RealmsServiceServer).ListRealms(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.gaming.v1beta.RealmsService/ListRealms",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RealmsServiceServer).ListRealms(ctx, req.(*ListRealmsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RealmsService_GetRealm_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetRealmRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RealmsServiceServer).GetRealm(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.gaming.v1beta.RealmsService/GetRealm",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RealmsServiceServer).GetRealm(ctx, req.(*GetRealmRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RealmsService_CreateRealm_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateRealmRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RealmsServiceServer).CreateRealm(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.gaming.v1beta.RealmsService/CreateRealm",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RealmsServiceServer).CreateRealm(ctx, req.(*CreateRealmRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RealmsService_DeleteRealm_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteRealmRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RealmsServiceServer).DeleteRealm(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.gaming.v1beta.RealmsService/DeleteRealm",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RealmsServiceServer).DeleteRealm(ctx, req.(*DeleteRealmRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RealmsService_UpdateRealm_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateRealmRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RealmsServiceServer).UpdateRealm(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.gaming.v1beta.RealmsService/UpdateRealm",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RealmsServiceServer).UpdateRealm(ctx, req.(*UpdateRealmRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RealmsService_PreviewRealmUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PreviewRealmUpdateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RealmsServiceServer).PreviewRealmUpdate(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.gaming.v1beta.RealmsService/PreviewRealmUpdate",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RealmsServiceServer).PreviewRealmUpdate(ctx, req.(*PreviewRealmUpdateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _RealmsService_serviceDesc = grpc.ServiceDesc{
	ServiceName: "google.cloud.gaming.v1beta.RealmsService",
	HandlerType: (*RealmsServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "ListRealms",
			Handler:    _RealmsService_ListRealms_Handler,
		},
		{
			MethodName: "GetRealm",
			Handler:    _RealmsService_GetRealm_Handler,
		},
		{
			MethodName: "CreateRealm",
			Handler:    _RealmsService_CreateRealm_Handler,
		},
		{
			MethodName: "DeleteRealm",
			Handler:    _RealmsService_DeleteRealm_Handler,
		},
		{
			MethodName: "UpdateRealm",
			Handler:    _RealmsService_UpdateRealm_Handler,
		},
		{
			MethodName: "PreviewRealmUpdate",
			Handler:    _RealmsService_PreviewRealmUpdate_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "google/cloud/gaming/v1beta/realms_service.proto",
}
