// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/ads/googleads/v3/services/video_service.proto

package services

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

	proto "github.com/golang/protobuf/proto"
	resources "google.golang.org/genproto/googleapis/ads/googleads/v3/resources"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	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

// Request message for [VideoService.GetVideo][google.ads.googleads.v3.services.VideoService.GetVideo].
type GetVideoRequest struct {
	// Required. The resource name of the video to fetch.
	ResourceName         string   `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_GetVideoRequest proto.InternalMessageInfo

func (m *GetVideoRequest) GetResourceName() string {
	if m != nil {
		return m.ResourceName
	}
	return ""
}

func init() {
	proto.RegisterType((*GetVideoRequest)(nil), "google.ads.googleads.v3.services.GetVideoRequest")
}

func init() {
	proto.RegisterFile("google/ads/googleads/v3/services/video_service.proto", fileDescriptor_a293e66e60f3b801)
}

var fileDescriptor_a293e66e60f3b801 = []byte{
	// 398 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x52, 0xc1, 0x4a, 0xeb, 0x40,
	0x14, 0x25, 0x29, 0x3c, 0xde, 0x0b, 0x7d, 0x3c, 0x5e, 0x36, 0x96, 0x28, 0x58, 0x4a, 0x17, 0xa1,
	0xe0, 0x0c, 0x1a, 0x57, 0x53, 0x04, 0xa7, 0x9b, 0xba, 0x92, 0x52, 0x21, 0x0b, 0x09, 0x94, 0x69,
	0x32, 0xc6, 0x81, 0x24, 0x53, 0x33, 0x69, 0x36, 0xe2, 0xc6, 0x5f, 0xf0, 0x0f, 0xdc, 0xe9, 0xa7,
	0x74, 0xeb, 0x42, 0x70, 0xe5, 0xc2, 0x95, 0x5f, 0xe0, 0x52, 0x92, 0xc9, 0xa4, 0xad, 0x50, 0xba,
	0x3b, 0xc9, 0x39, 0xe7, 0x9e, 0x7b, 0x0f, 0x63, 0x1c, 0x87, 0x9c, 0x87, 0x11, 0x85, 0x24, 0x10,
	0x50, 0xc2, 0x02, 0xe5, 0x0e, 0x14, 0x34, 0xcd, 0x99, 0x4f, 0x05, 0xcc, 0x59, 0x40, 0xf9, 0xa4,
	0xfa, 0x04, 0xb3, 0x94, 0x67, 0xdc, 0x6c, 0x4b, 0x29, 0x20, 0x81, 0x00, 0xb5, 0x0b, 0xe4, 0x0e,
	0x50, 0x2e, 0xeb, 0x60, 0xd3, 0xdc, 0x94, 0x0a, 0x3e, 0x4f, 0xeb, 0xc1, 0x72, 0xa0, 0xb5, 0xa7,
	0xe4, 0x33, 0x06, 0x49, 0x92, 0xf0, 0x8c, 0x64, 0x8c, 0x27, 0xa2, 0x62, 0x77, 0x56, 0x58, 0x3f,
	0x62, 0x34, 0xc9, 0x2a, 0x62, 0x7f, 0x85, 0xb8, 0x62, 0x34, 0x0a, 0x26, 0x53, 0x7a, 0x4d, 0x72,
	0xc6, 0x53, 0x29, 0xe8, 0xf4, 0x8d, 0x7f, 0x43, 0x9a, 0xb9, 0x45, 0xd2, 0x98, 0xde, 0xcc, 0xa9,
	0xc8, 0x4c, 0xdb, 0xf8, 0xab, 0x76, 0x98, 0x24, 0x24, 0xa6, 0x2d, 0xad, 0xad, 0xd9, 0x7f, 0x06,
	0x8d, 0x77, 0xac, 0x8f, 0x9b, 0x8a, 0x39, 0x27, 0x31, 0x3d, 0x7a, 0xd5, 0x8c, 0x66, 0x69, 0xbd,
	0x90, 0x57, 0x99, 0x4f, 0x9a, 0xf1, 0x5b, 0x8d, 0x33, 0x0f, 0xc1, 0xb6, 0x12, 0xc0, 0x8f, 0x68,
	0xcb, 0xde, 0x68, 0xa9, 0x5b, 0x01, 0xa5, 0xa1, 0x73, 0xfa, 0x86, 0xd7, 0xb7, 0xbc, 0x7f, 0xf9,
	0x78, 0xd0, 0x7b, 0xa6, 0x5d, 0x54, 0x78, 0xbb, 0xc6, 0x9c, 0xf8, 0x73, 0x91, 0xf1, 0x98, 0xa6,
	0x02, 0xf6, 0x64, 0xa7, 0x02, 0xf6, 0xee, 0xac, 0xdd, 0x05, 0x6e, 0x2d, 0x23, 0x2a, 0x34, 0x63,
	0x02, 0xf8, 0x3c, 0x1e, 0x7c, 0x69, 0x46, 0xd7, 0xe7, 0xf1, 0xd6, 0x0b, 0x06, 0xff, 0x57, 0xef,
	0x1f, 0x15, 0x95, 0x8e, 0xb4, 0xcb, 0xb3, 0xca, 0x16, 0xf2, 0x88, 0x24, 0x21, 0xe0, 0x69, 0x08,
	0x43, 0x9a, 0x94, 0x85, 0xc3, 0x65, 0xd0, 0xe6, 0x27, 0xd5, 0x57, 0xe0, 0x51, 0x6f, 0x0c, 0x31,
	0x7e, 0xd6, 0xdb, 0x43, 0x39, 0x10, 0x07, 0x02, 0x48, 0x58, 0x20, 0xd7, 0x01, 0x55, 0xb0, 0x58,
	0x28, 0x89, 0x87, 0x03, 0xe1, 0xd5, 0x12, 0xcf, 0x75, 0x3c, 0x25, 0xf9, 0xd4, 0xbb, 0xf2, 0x3f,
	0x42, 0x38, 0x10, 0x08, 0xd5, 0x22, 0x84, 0x5c, 0x07, 0x21, 0x25, 0x9b, 0xfe, 0x2a, 0xf7, 0x74,
	0xbe, 0x03, 0x00, 0x00, 0xff, 0xff, 0x3f, 0x86, 0x46, 0x0c, 0xf9, 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

// VideoServiceClient is the client API for VideoService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type VideoServiceClient interface {
	// Returns the requested video in full detail.
	GetVideo(ctx context.Context, in *GetVideoRequest, opts ...grpc.CallOption) (*resources.Video, error)
}

type videoServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewVideoServiceClient(cc grpc.ClientConnInterface) VideoServiceClient {
	return &videoServiceClient{cc}
}

func (c *videoServiceClient) GetVideo(ctx context.Context, in *GetVideoRequest, opts ...grpc.CallOption) (*resources.Video, error) {
	out := new(resources.Video)
	err := c.cc.Invoke(ctx, "/google.ads.googleads.v3.services.VideoService/GetVideo", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// VideoServiceServer is the server API for VideoService service.
type VideoServiceServer interface {
	// Returns the requested video in full detail.
	GetVideo(context.Context, *GetVideoRequest) (*resources.Video, error)
}

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

func (*UnimplementedVideoServiceServer) GetVideo(ctx context.Context, req *GetVideoRequest) (*resources.Video, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetVideo not implemented")
}

func RegisterVideoServiceServer(s *grpc.Server, srv VideoServiceServer) {
	s.RegisterService(&_VideoService_serviceDesc, srv)
}

func _VideoService_GetVideo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetVideoRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VideoServiceServer).GetVideo(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.ads.googleads.v3.services.VideoService/GetVideo",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VideoServiceServer).GetVideo(ctx, req.(*GetVideoRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _VideoService_serviceDesc = grpc.ServiceDesc{
	ServiceName: "google.ads.googleads.v3.services.VideoService",
	HandlerType: (*VideoServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetVideo",
			Handler:    _VideoService_GetVideo_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "google/ads/googleads/v3/services/video_service.proto",
}
