// Code generated by protoc-gen-go. DO NOT EDIT.
// source: beam_expansion_api.proto

package jobmanagement_v1

import (
	context "context"
	fmt "fmt"
	pipeline_v1 "github.com/apache/beam/sdks/go/pkg/beam/model/pipeline_v1"
	proto "github.com/golang/protobuf/proto"
	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 ExpansionRequest struct {
	// Set of components needed to interpret the transform, or which
	// may be useful for its expansion.  This includes the input
	// PCollections (if any) to the to-be-expanded transform, along
	// with their coders and windowing strategies.
	Components *pipeline_v1.Components `protobuf:"bytes,1,opt,name=components,proto3" json:"components,omitempty"`
	// The actual PTransform to be expaneded according to its spec.
	// Its input should be set, but its subtransforms and outputs
	// should not be.
	Transform *pipeline_v1.PTransform `protobuf:"bytes,2,opt,name=transform,proto3" json:"transform,omitempty"`
	// A namespace (prefix) to use for the id of any newly created
	// components.
	Namespace            string   `protobuf:"bytes,3,opt,name=namespace,proto3" json:"namespace,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_ExpansionRequest proto.InternalMessageInfo

func (m *ExpansionRequest) GetComponents() *pipeline_v1.Components {
	if m != nil {
		return m.Components
	}
	return nil
}

func (m *ExpansionRequest) GetTransform() *pipeline_v1.PTransform {
	if m != nil {
		return m.Transform
	}
	return nil
}

func (m *ExpansionRequest) GetNamespace() string {
	if m != nil {
		return m.Namespace
	}
	return ""
}

type ExpansionResponse struct {
	// Set of components needed to execute the expanded transform,
	// including the (original) inputs, outputs, and subtransforms.
	Components *pipeline_v1.Components `protobuf:"bytes,1,opt,name=components,proto3" json:"components,omitempty"`
	// The expanded transform itself, with references to its outputs
	// and subtransforms.
	Transform *pipeline_v1.PTransform `protobuf:"bytes,2,opt,name=transform,proto3" json:"transform,omitempty"`
	// A set of requirements that must be appended to this pipeline's
	// requirements.
	Requirements []string `protobuf:"bytes,3,rep,name=requirements,proto3" json:"requirements,omitempty"`
	// (Optional) An string representation of any error encountered while
	// attempting to expand this transform.
	Error                string   `protobuf:"bytes,10,opt,name=error,proto3" json:"error,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_ExpansionResponse proto.InternalMessageInfo

func (m *ExpansionResponse) GetComponents() *pipeline_v1.Components {
	if m != nil {
		return m.Components
	}
	return nil
}

func (m *ExpansionResponse) GetTransform() *pipeline_v1.PTransform {
	if m != nil {
		return m.Transform
	}
	return nil
}

func (m *ExpansionResponse) GetRequirements() []string {
	if m != nil {
		return m.Requirements
	}
	return nil
}

func (m *ExpansionResponse) GetError() string {
	if m != nil {
		return m.Error
	}
	return ""
}

func init() {
	proto.RegisterType((*ExpansionRequest)(nil), "org.apache.beam.model.expansion.v1.ExpansionRequest")
	proto.RegisterType((*ExpansionResponse)(nil), "org.apache.beam.model.expansion.v1.ExpansionResponse")
}

func init() { proto.RegisterFile("beam_expansion_api.proto", fileDescriptor_0877284f21c25569) }

var fileDescriptor_0877284f21c25569 = []byte{
	// 302 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x92, 0xcd, 0x4a, 0xc3, 0x40,
	0x14, 0x85, 0x89, 0xc5, 0x42, 0xae, 0x5d, 0xd4, 0x41, 0x21, 0x14, 0x17, 0x25, 0xab, 0x6e, 0x1c,
	0x48, 0xd5, 0x07, 0xb0, 0xea, 0x4a, 0x04, 0x89, 0xae, 0xdc, 0x84, 0x49, 0x7a, 0xad, 0x23, 0x9d,
	0x9f, 0xde, 0x49, 0x82, 0xaf, 0xe0, 0xbb, 0xf9, 0x22, 0xbe, 0x85, 0x38, 0xa5, 0x49, 0x14, 0xc1,
	0xba, 0x73, 0x39, 0x87, 0xf3, 0xdd, 0x99, 0x33, 0xf7, 0x40, 0x94, 0xa3, 0x50, 0x19, 0xbe, 0x58,
	0xa1, 0x9d, 0x34, 0x3a, 0x13, 0x56, 0x72, 0x4b, 0xa6, 0x34, 0x2c, 0x36, 0xb4, 0xe0, 0xc2, 0x8a,
	0xe2, 0x09, 0xf9, 0xa7, 0x89, 0x2b, 0x33, 0xc7, 0x25, 0x6f, 0xac, 0xbc, 0x4e, 0x46, 0x87, 0x9e,
	0xa6, 0x4a, 0x6b, 0xa4, 0x16, 0x8d, 0xdf, 0x02, 0x18, 0x5e, 0x6d, 0x7c, 0x29, 0xae, 0x2a, 0x74,
	0x25, 0xbb, 0x01, 0x28, 0x8c, 0xb2, 0x46, 0xa3, 0x2e, 0x5d, 0x14, 0x8c, 0x83, 0xc9, 0xde, 0xf4,
	0x98, 0xff, 0x7c, 0x89, 0x95, 0x16, 0x97, 0x52, 0x23, 0xaf, 0x13, 0x7e, 0xd1, 0x40, 0x69, 0x67,
	0x00, 0xbb, 0x86, 0xb0, 0x24, 0xa1, 0xdd, 0xa3, 0x21, 0x15, 0xed, 0x6c, 0x3d, 0xed, 0xf6, 0x7e,
	0x03, 0xa5, 0x2d, 0xcf, 0x8e, 0x20, 0xd4, 0x42, 0xa1, 0xb3, 0xa2, 0xc0, 0xa8, 0x37, 0x0e, 0x26,
	0x61, 0xda, 0x0a, 0xf1, 0x7b, 0x00, 0xfb, 0x9d, 0x38, 0xce, 0x1a, 0xed, 0xf0, 0x5f, 0xe7, 0x89,
	0x61, 0x40, 0xb8, 0xaa, 0x24, 0xa1, 0xf2, 0xaf, 0xeb, 0x8d, 0x7b, 0x93, 0x30, 0xfd, 0xa2, 0xb1,
	0x03, 0xd8, 0x45, 0x22, 0x43, 0x11, 0xf8, 0xbc, 0xeb, 0xc3, 0xf4, 0xb5, 0xbb, 0xba, 0x3b, 0xa4,
	0x5a, 0x16, 0xc8, 0x2a, 0xe8, 0x7b, 0x6d, 0xce, 0x4e, 0xf9, 0xef, 0xad, 0xe0, 0xdf, 0x57, 0x3f,
	0x3a, 0xfb, 0x23, 0xb5, 0xfe, 0xe1, 0xd9, 0x25, 0x6c, 0xd1, 0xc1, 0xd9, 0xa0, 0x01, 0xcf, 0xad,
	0x7c, 0x18, 0x3e, 0x9b, 0x5c, 0x09, 0x2d, 0x16, 0x3e, 0x65, 0x56, 0x27, 0x79, 0xdf, 0x77, 0xf2,
	0xe4, 0x23, 0x00, 0x00, 0xff, 0xff, 0xa9, 0x06, 0xca, 0x44, 0xea, 0x02, 0x00, 0x00,
}

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

// ExpansionServiceClient is the client API for ExpansionService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type ExpansionServiceClient interface {
	Expand(ctx context.Context, in *ExpansionRequest, opts ...grpc.CallOption) (*ExpansionResponse, error)
}

type expansionServiceClient struct {
	cc *grpc.ClientConn
}

func NewExpansionServiceClient(cc *grpc.ClientConn) ExpansionServiceClient {
	return &expansionServiceClient{cc}
}

func (c *expansionServiceClient) Expand(ctx context.Context, in *ExpansionRequest, opts ...grpc.CallOption) (*ExpansionResponse, error) {
	out := new(ExpansionResponse)
	err := c.cc.Invoke(ctx, "/org.apache.beam.model.expansion.v1.ExpansionService/Expand", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// ExpansionServiceServer is the server API for ExpansionService service.
type ExpansionServiceServer interface {
	Expand(context.Context, *ExpansionRequest) (*ExpansionResponse, error)
}

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

func (*UnimplementedExpansionServiceServer) Expand(ctx context.Context, req *ExpansionRequest) (*ExpansionResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Expand not implemented")
}

func RegisterExpansionServiceServer(s *grpc.Server, srv ExpansionServiceServer) {
	s.RegisterService(&_ExpansionService_serviceDesc, srv)
}

func _ExpansionService_Expand_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ExpansionRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExpansionServiceServer).Expand(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/org.apache.beam.model.expansion.v1.ExpansionService/Expand",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExpansionServiceServer).Expand(ctx, req.(*ExpansionRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _ExpansionService_serviceDesc = grpc.ServiceDesc{
	ServiceName: "org.apache.beam.model.expansion.v1.ExpansionService",
	HandlerType: (*ExpansionServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "Expand",
			Handler:    _ExpansionService_Expand_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "beam_expansion_api.proto",
}
