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

package services // import "google.golang.org/genproto/googleapis/ads/googleads/v0/services"

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import resources "google.golang.org/genproto/googleapis/ads/googleads/v0/resources"
import _ "google.golang.org/genproto/googleapis/api/annotations"

import (
	context "golang.org/x/net/context"
	grpc "google.golang.org/grpc"
)

// 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.ProtoPackageIsVersion2 // please upgrade the proto package

// Request message for [ManagedPlacementViewService.GetManagedPlacementView][google.ads.googleads.v0.services.ManagedPlacementViewService.GetManagedPlacementView].
type GetManagedPlacementViewRequest struct {
	// The resource name of the Managed Placement View 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 *GetManagedPlacementViewRequest) Reset()         { *m = GetManagedPlacementViewRequest{} }
func (m *GetManagedPlacementViewRequest) String() string { return proto.CompactTextString(m) }
func (*GetManagedPlacementViewRequest) ProtoMessage()    {}
func (*GetManagedPlacementViewRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_managed_placement_view_service_bb9f749dcc6fc543, []int{0}
}
func (m *GetManagedPlacementViewRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetManagedPlacementViewRequest.Unmarshal(m, b)
}
func (m *GetManagedPlacementViewRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetManagedPlacementViewRequest.Marshal(b, m, deterministic)
}
func (dst *GetManagedPlacementViewRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetManagedPlacementViewRequest.Merge(dst, src)
}
func (m *GetManagedPlacementViewRequest) XXX_Size() int {
	return xxx_messageInfo_GetManagedPlacementViewRequest.Size(m)
}
func (m *GetManagedPlacementViewRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_GetManagedPlacementViewRequest.DiscardUnknown(m)
}

var xxx_messageInfo_GetManagedPlacementViewRequest proto.InternalMessageInfo

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

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

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

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

// ManagedPlacementViewServiceClient is the client API for ManagedPlacementViewService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type ManagedPlacementViewServiceClient interface {
	// Returns the requested Managed Placement view in full detail.
	GetManagedPlacementView(ctx context.Context, in *GetManagedPlacementViewRequest, opts ...grpc.CallOption) (*resources.ManagedPlacementView, error)
}

type managedPlacementViewServiceClient struct {
	cc *grpc.ClientConn
}

func NewManagedPlacementViewServiceClient(cc *grpc.ClientConn) ManagedPlacementViewServiceClient {
	return &managedPlacementViewServiceClient{cc}
}

func (c *managedPlacementViewServiceClient) GetManagedPlacementView(ctx context.Context, in *GetManagedPlacementViewRequest, opts ...grpc.CallOption) (*resources.ManagedPlacementView, error) {
	out := new(resources.ManagedPlacementView)
	err := c.cc.Invoke(ctx, "/google.ads.googleads.v0.services.ManagedPlacementViewService/GetManagedPlacementView", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// ManagedPlacementViewServiceServer is the server API for ManagedPlacementViewService service.
type ManagedPlacementViewServiceServer interface {
	// Returns the requested Managed Placement view in full detail.
	GetManagedPlacementView(context.Context, *GetManagedPlacementViewRequest) (*resources.ManagedPlacementView, error)
}

func RegisterManagedPlacementViewServiceServer(s *grpc.Server, srv ManagedPlacementViewServiceServer) {
	s.RegisterService(&_ManagedPlacementViewService_serviceDesc, srv)
}

func _ManagedPlacementViewService_GetManagedPlacementView_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetManagedPlacementViewRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ManagedPlacementViewServiceServer).GetManagedPlacementView(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.ads.googleads.v0.services.ManagedPlacementViewService/GetManagedPlacementView",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ManagedPlacementViewServiceServer).GetManagedPlacementView(ctx, req.(*GetManagedPlacementViewRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _ManagedPlacementViewService_serviceDesc = grpc.ServiceDesc{
	ServiceName: "google.ads.googleads.v0.services.ManagedPlacementViewService",
	HandlerType: (*ManagedPlacementViewServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetManagedPlacementView",
			Handler:    _ManagedPlacementViewService_GetManagedPlacementView_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "google/ads/googleads/v0/services/managed_placement_view_service.proto",
}

func init() {
	proto.RegisterFile("google/ads/googleads/v0/services/managed_placement_view_service.proto", fileDescriptor_managed_placement_view_service_bb9f749dcc6fc543)
}

var fileDescriptor_managed_placement_view_service_bb9f749dcc6fc543 = []byte{
	// 356 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x52, 0x4f, 0x4b, 0xfb, 0x40,
	0x10, 0x25, 0xfd, 0xc1, 0x0f, 0x0c, 0x7a, 0xc9, 0x45, 0xa9, 0x22, 0xa1, 0x7a, 0x90, 0x1e, 0x76,
	0x83, 0x1e, 0x8a, 0x88, 0x7f, 0x52, 0x28, 0xf5, 0xa2, 0x94, 0x0a, 0x3d, 0x48, 0x20, 0xac, 0xc9,
	0xb0, 0x04, 0x9a, 0xdd, 0x98, 0xd9, 0xa6, 0x07, 0xf1, 0xe2, 0x57, 0xf0, 0x1b, 0x78, 0xf4, 0xa3,
	0x78, 0x15, 0xef, 0x1e, 0xfc, 0x0a, 0xde, 0x25, 0xdd, 0x6e, 0xa0, 0xd0, 0xb4, 0xb7, 0xc7, 0xce,
	0xbc, 0xf7, 0x66, 0xde, 0xac, 0xdd, 0xe3, 0x52, 0xf2, 0x31, 0x50, 0x16, 0x23, 0xd5, 0xb0, 0x44,
	0x85, 0x47, 0x11, 0xf2, 0x22, 0x89, 0x00, 0x69, 0xca, 0x04, 0xe3, 0x10, 0x87, 0xd9, 0x98, 0x45,
	0x90, 0x82, 0x50, 0x61, 0x91, 0xc0, 0x34, 0x9c, 0xd7, 0x49, 0x96, 0x4b, 0x25, 0x1d, 0x57, 0x73,
	0x09, 0x8b, 0x91, 0x54, 0x32, 0xa4, 0xf0, 0x88, 0x91, 0x69, 0x5e, 0xd4, 0x19, 0xe5, 0x80, 0x72,
	0x92, 0xd7, 0x3b, 0x69, 0x87, 0xe6, 0x9e, 0xe1, 0x67, 0x09, 0x65, 0x42, 0x48, 0xc5, 0x54, 0x22,
	0x05, 0xea, 0x6a, 0xab, 0x67, 0xef, 0xf7, 0x41, 0xdd, 0x68, 0x81, 0x81, 0xe1, 0x8f, 0x12, 0x98,
	0x0e, 0xe1, 0x71, 0x02, 0xa8, 0x9c, 0x03, 0x7b, 0xcb, 0x38, 0x85, 0x82, 0xa5, 0xb0, 0x63, 0xb9,
	0xd6, 0xd1, 0xc6, 0x70, 0xd3, 0x3c, 0xde, 0xb2, 0x14, 0x8e, 0x7f, 0x2d, 0x7b, 0x77, 0x99, 0xc8,
	0x9d, 0xde, 0xc2, 0xf9, 0xb2, 0xec, 0xed, 0x1a, 0x1f, 0xe7, 0x8a, 0xac, 0xcb, 0x80, 0xac, 0x1e,
	0xb1, 0xd9, 0xa9, 0x55, 0xa8, 0x32, 0x22, 0xcb, 0xf8, 0xad, 0xcb, 0x97, 0xcf, 0x9f, 0xd7, 0xc6,
	0xa9, 0xd3, 0x29, 0xf3, 0x7c, 0x5a, 0x58, 0xf3, 0x3c, 0x9a, 0xa0, 0x92, 0x29, 0xe4, 0x48, 0xdb,
	0x26, 0xe0, 0x05, 0x32, 0xd2, 0xf6, 0x73, 0xf7, 0xdb, 0xb2, 0x0f, 0x23, 0x99, 0xae, 0xdd, 0xa0,
	0xeb, 0xae, 0x48, 0x67, 0x50, 0x5e, 0x62, 0x60, 0xdd, 0x5f, 0xcf, 0x55, 0xb8, 0x1c, 0x33, 0xc1,
	0x89, 0xcc, 0x39, 0xe5, 0x20, 0x66, 0x77, 0x32, 0x97, 0xcf, 0x12, 0xac, 0xff, 0x71, 0x67, 0x06,
	0xbc, 0x35, 0xfe, 0xf5, 0x7d, 0xff, 0xbd, 0xe1, 0xf6, 0xb5, 0xa0, 0x1f, 0x23, 0xd1, 0xb0, 0x44,
	0x23, 0x8f, 0xcc, 0x8d, 0xf1, 0xc3, 0xb4, 0x04, 0x7e, 0x8c, 0x41, 0xd5, 0x12, 0x8c, 0xbc, 0xc0,
	0xb4, 0x3c, 0xfc, 0x9f, 0x0d, 0x70, 0xf2, 0x17, 0x00, 0x00, 0xff, 0xff, 0xb9, 0x9b, 0xa8, 0x92,
	0xf1, 0x02, 0x00, 0x00,
}
