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

/*
Package surface_v1 is a generated protocol buffer package.

It is generated from these files:
	surface.proto

It has these top-level messages:
	Field
	Type
	Method
	Model
*/
package surface_v1

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import 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.ProtoPackageIsVersion2 // please upgrade the proto package

type FieldKind int32

const (
	FieldKind_SCALAR    FieldKind = 0
	FieldKind_MAP       FieldKind = 1
	FieldKind_ARRAY     FieldKind = 2
	FieldKind_REFERENCE FieldKind = 3
)

var FieldKind_name = map[int32]string{
	0: "SCALAR",
	1: "MAP",
	2: "ARRAY",
	3: "REFERENCE",
}
var FieldKind_value = map[string]int32{
	"SCALAR":    0,
	"MAP":       1,
	"ARRAY":     2,
	"REFERENCE": 3,
}

func (x FieldKind) String() string {
	return proto.EnumName(FieldKind_name, int32(x))
}
func (FieldKind) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }

type TypeKind int32

const (
	TypeKind_STRUCT TypeKind = 0
	TypeKind_OBJECT TypeKind = 1
)

var TypeKind_name = map[int32]string{
	0: "STRUCT",
	1: "OBJECT",
}
var TypeKind_value = map[string]int32{
	"STRUCT": 0,
	"OBJECT": 1,
}

func (x TypeKind) String() string {
	return proto.EnumName(TypeKind_name, int32(x))
}
func (TypeKind) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }

type Position int32

const (
	Position_BODY     Position = 0
	Position_HEADER   Position = 1
	Position_FORMDATA Position = 2
	Position_QUERY    Position = 3
	Position_PATH     Position = 4
)

var Position_name = map[int32]string{
	0: "BODY",
	1: "HEADER",
	2: "FORMDATA",
	3: "QUERY",
	4: "PATH",
}
var Position_value = map[string]int32{
	"BODY":     0,
	"HEADER":   1,
	"FORMDATA": 2,
	"QUERY":    3,
	"PATH":     4,
}

func (x Position) String() string {
	return proto.EnumName(Position_name, int32(x))
}
func (Position) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }

// Field is a field in a definition and can be associated with
// a position in a request structure.
type Field struct {
	Name          string    `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Type          string    `protobuf:"bytes,2,opt,name=type" json:"type,omitempty"`
	Kind          FieldKind `protobuf:"varint,3,opt,name=kind,enum=surface.v1.FieldKind" json:"kind,omitempty"`
	Format        string    `protobuf:"bytes,4,opt,name=format" json:"format,omitempty"`
	Position      Position  `protobuf:"varint,5,opt,name=position,enum=surface.v1.Position" json:"position,omitempty"`
	NativeType    string    `protobuf:"bytes,6,opt,name=nativeType" json:"nativeType,omitempty"`
	FieldName     string    `protobuf:"bytes,7,opt,name=fieldName" json:"fieldName,omitempty"`
	ParameterName string    `protobuf:"bytes,8,opt,name=parameterName" json:"parameterName,omitempty"`
	Serialize     bool      `protobuf:"varint,9,opt,name=serialize" json:"serialize,omitempty"`
}

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

func (m *Field) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *Field) GetType() string {
	if m != nil {
		return m.Type
	}
	return ""
}

func (m *Field) GetKind() FieldKind {
	if m != nil {
		return m.Kind
	}
	return FieldKind_SCALAR
}

func (m *Field) GetFormat() string {
	if m != nil {
		return m.Format
	}
	return ""
}

func (m *Field) GetPosition() Position {
	if m != nil {
		return m.Position
	}
	return Position_BODY
}

func (m *Field) GetNativeType() string {
	if m != nil {
		return m.NativeType
	}
	return ""
}

func (m *Field) GetFieldName() string {
	if m != nil {
		return m.FieldName
	}
	return ""
}

func (m *Field) GetParameterName() string {
	if m != nil {
		return m.ParameterName
	}
	return ""
}

func (m *Field) GetSerialize() bool {
	if m != nil {
		return m.Serialize
	}
	return false
}

// Type typically corresponds to a definition, parameter, or response
// in an API and is represented by a type in generated code.
type Type struct {
	Name        string   `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Kind        TypeKind `protobuf:"varint,2,opt,name=kind,enum=surface.v1.TypeKind" json:"kind,omitempty"`
	Description string   `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
	ContentType string   `protobuf:"bytes,4,opt,name=contentType" json:"contentType,omitempty"`
	Fields      []*Field `protobuf:"bytes,5,rep,name=fields" json:"fields,omitempty"`
	TypeName    string   `protobuf:"bytes,6,opt,name=typeName" json:"typeName,omitempty"`
}

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

func (m *Type) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *Type) GetKind() TypeKind {
	if m != nil {
		return m.Kind
	}
	return TypeKind_STRUCT
}

func (m *Type) GetDescription() string {
	if m != nil {
		return m.Description
	}
	return ""
}

func (m *Type) GetContentType() string {
	if m != nil {
		return m.ContentType
	}
	return ""
}

func (m *Type) GetFields() []*Field {
	if m != nil {
		return m.Fields
	}
	return nil
}

func (m *Type) GetTypeName() string {
	if m != nil {
		return m.TypeName
	}
	return ""
}

// Method is an operation of an API and typically has associated client and server code.
type Method struct {
	Operation          string `protobuf:"bytes,1,opt,name=operation" json:"operation,omitempty"`
	Path               string `protobuf:"bytes,2,opt,name=path" json:"path,omitempty"`
	Method             string `protobuf:"bytes,3,opt,name=method" json:"method,omitempty"`
	Description        string `protobuf:"bytes,4,opt,name=description" json:"description,omitempty"`
	Name               string `protobuf:"bytes,5,opt,name=name" json:"name,omitempty"`
	HandlerName        string `protobuf:"bytes,6,opt,name=handlerName" json:"handlerName,omitempty"`
	ProcessorName      string `protobuf:"bytes,7,opt,name=processorName" json:"processorName,omitempty"`
	ClientName         string `protobuf:"bytes,8,opt,name=clientName" json:"clientName,omitempty"`
	ParametersTypeName string `protobuf:"bytes,9,opt,name=parametersTypeName" json:"parametersTypeName,omitempty"`
	ResponsesTypeName  string `protobuf:"bytes,10,opt,name=responsesTypeName" json:"responsesTypeName,omitempty"`
}

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

func (m *Method) GetOperation() string {
	if m != nil {
		return m.Operation
	}
	return ""
}

func (m *Method) GetPath() string {
	if m != nil {
		return m.Path
	}
	return ""
}

func (m *Method) GetMethod() string {
	if m != nil {
		return m.Method
	}
	return ""
}

func (m *Method) GetDescription() string {
	if m != nil {
		return m.Description
	}
	return ""
}

func (m *Method) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *Method) GetHandlerName() string {
	if m != nil {
		return m.HandlerName
	}
	return ""
}

func (m *Method) GetProcessorName() string {
	if m != nil {
		return m.ProcessorName
	}
	return ""
}

func (m *Method) GetClientName() string {
	if m != nil {
		return m.ClientName
	}
	return ""
}

func (m *Method) GetParametersTypeName() string {
	if m != nil {
		return m.ParametersTypeName
	}
	return ""
}

func (m *Method) GetResponsesTypeName() string {
	if m != nil {
		return m.ResponsesTypeName
	}
	return ""
}

// Model represents an API for code generation.
type Model struct {
	Name    string    `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Types   []*Type   `protobuf:"bytes,2,rep,name=types" json:"types,omitempty"`
	Methods []*Method `protobuf:"bytes,3,rep,name=methods" json:"methods,omitempty"`
}

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

func (m *Model) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *Model) GetTypes() []*Type {
	if m != nil {
		return m.Types
	}
	return nil
}

func (m *Model) GetMethods() []*Method {
	if m != nil {
		return m.Methods
	}
	return nil
}

func init() {
	proto.RegisterType((*Field)(nil), "surface.v1.Field")
	proto.RegisterType((*Type)(nil), "surface.v1.Type")
	proto.RegisterType((*Method)(nil), "surface.v1.Method")
	proto.RegisterType((*Model)(nil), "surface.v1.Model")
	proto.RegisterEnum("surface.v1.FieldKind", FieldKind_name, FieldKind_value)
	proto.RegisterEnum("surface.v1.TypeKind", TypeKind_name, TypeKind_value)
	proto.RegisterEnum("surface.v1.Position", Position_name, Position_value)
}

func init() { proto.RegisterFile("surface.proto", fileDescriptor0) }

var fileDescriptor0 = []byte{
	// 573 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x54, 0x5f, 0x6f, 0xd3, 0x3e,
	0x14, 0x5d, 0xfe, 0x36, 0xb9, 0xfd, 0xf5, 0xa7, 0xcc, 0x02, 0x14, 0x21, 0x84, 0xa2, 0x0a, 0xa1,
	0xae, 0x9a, 0x2a, 0x18, 0x6f, 0xbc, 0x65, 0x6d, 0xaa, 0x09, 0xe8, 0x5a, 0x4c, 0xf6, 0xd0, 0xc7,
	0xd0, 0xb8, 0x6a, 0x44, 0x1b, 0x87, 0x38, 0x4c, 0x82, 0x0f, 0xc4, 0xc7, 0x81, 0xaf, 0x84, 0x7c,
	0x93, 0xb4, 0xde, 0xda, 0x37, 0xfb, 0xdc, 0xe3, 0x6b, 0x9f, 0x73, 0x6e, 0x02, 0x3d, 0xf1, 0xa3,
	0x5c, 0x27, 0x2b, 0x36, 0x2a, 0x4a, 0x5e, 0x71, 0x02, 0xed, 0xf6, 0xfe, 0x6d, 0xff, 0xb7, 0x0e,
	0xd6, 0x34, 0x63, 0xdb, 0x94, 0x10, 0x30, 0xf3, 0x64, 0xc7, 0x7c, 0x2d, 0xd0, 0x06, 0x2e, 0xc5,
	0xb5, 0xc4, 0xaa, 0x9f, 0x05, 0xf3, 0xf5, 0x1a, 0x93, 0x6b, 0x72, 0x01, 0xe6, 0xb7, 0x2c, 0x4f,
	0x7d, 0x23, 0xd0, 0x06, 0xff, 0x5f, 0x3d, 0x1d, 0x1d, 0x9a, 0x8d, 0xb0, 0xd1, 0xc7, 0x2c, 0x4f,
	0x29, 0x52, 0xc8, 0x33, 0xb0, 0xd7, 0xbc, 0xdc, 0x25, 0x95, 0x6f, 0x62, 0x83, 0x66, 0x47, 0xde,
	0x80, 0x53, 0x70, 0x91, 0x55, 0x19, 0xcf, 0x7d, 0x0b, 0xdb, 0x3c, 0x51, 0xdb, 0x2c, 0x9a, 0x1a,
	0xdd, 0xb3, 0xc8, 0x4b, 0x80, 0x3c, 0xa9, 0xb2, 0x7b, 0x16, 0xcb, 0xe7, 0xd8, 0xd8, 0x4d, 0x41,
	0xc8, 0x0b, 0x70, 0xd7, 0xf2, 0xf2, 0x5b, 0xa9, 0xa0, 0x83, 0xe5, 0x03, 0x40, 0x5e, 0x41, 0xaf,
	0x48, 0xca, 0x64, 0xc7, 0x2a, 0x56, 0x22, 0xc3, 0x41, 0xc6, 0x43, 0x50, 0xf6, 0x10, 0xac, 0xcc,
	0x92, 0x6d, 0xf6, 0x8b, 0xf9, 0x6e, 0xa0, 0x0d, 0x1c, 0x7a, 0x00, 0xfa, 0x7f, 0x35, 0x30, 0xf1,
	0xaa, 0x53, 0x3e, 0x0d, 0x1a, 0x4f, 0xf4, 0x63, 0x31, 0xf2, 0x8c, 0x62, 0x49, 0x00, 0xdd, 0x94,
	0x89, 0x55, 0x99, 0x15, 0xa8, 0xde, 0xc0, 0x26, 0x2a, 0x24, 0x19, 0x2b, 0x9e, 0x57, 0x2c, 0xaf,
	0x50, 0x6b, 0xed, 0x9c, 0x0a, 0x91, 0x0b, 0xb0, 0x51, 0x9b, 0xf0, 0xad, 0xc0, 0x18, 0x74, 0xaf,
	0xce, 0x8f, 0x32, 0xa0, 0x0d, 0x81, 0x3c, 0x07, 0x47, 0x86, 0x86, 0xa2, 0x6b, 0xd7, 0xf6, 0xfb,
	0xfe, 0x1f, 0x1d, 0xec, 0x19, 0xab, 0x36, 0x3c, 0x95, 0xd2, 0x79, 0xc1, 0xca, 0x04, 0xdf, 0x54,
	0x0b, 0x3b, 0x00, 0x52, 0x71, 0x91, 0x54, 0x9b, 0x76, 0x0a, 0xe4, 0x5a, 0x46, 0xbb, 0xc3, 0xb3,
	0x8d, 0x84, 0x66, 0xf7, 0x58, 0x9f, 0x79, 0xac, 0xaf, 0xf5, 0xcf, 0x52, 0xfc, 0x0b, 0xa0, 0xbb,
	0x49, 0xf2, 0x74, 0xdb, 0xc4, 0x53, 0xbf, 0x54, 0x85, 0x30, 0xc2, 0x92, 0xaf, 0x98, 0x10, 0xbc,
	0x54, 0x42, 0x7e, 0x08, 0xca, 0x31, 0x59, 0x6d, 0x33, 0x96, 0x57, 0x4a, 0xca, 0x0a, 0x42, 0x46,
	0x40, 0xf6, 0x99, 0x8b, 0xb8, 0x35, 0xc6, 0x45, 0xde, 0x89, 0x0a, 0xb9, 0x84, 0xf3, 0x92, 0x89,
	0x82, 0xe7, 0x82, 0x1d, 0xe8, 0x80, 0xf4, 0xe3, 0x42, 0xff, 0x3b, 0x58, 0x33, 0x9e, 0xb2, 0xed,
	0xc9, 0x11, 0x79, 0x0d, 0x96, 0x74, 0x5e, 0xf8, 0x3a, 0x66, 0xe6, 0x3d, 0x9e, 0x11, 0x5a, 0x97,
	0xc9, 0x25, 0x74, 0x6a, 0x2b, 0x85, 0x6f, 0x20, 0x93, 0xa8, 0xcc, 0x3a, 0x2f, 0xda, 0x52, 0x86,
	0xef, 0xc1, 0xdd, 0x7f, 0x74, 0x04, 0xc0, 0xfe, 0x32, 0x0e, 0x3f, 0x85, 0xd4, 0x3b, 0x23, 0x1d,
	0x30, 0x66, 0xe1, 0xc2, 0xd3, 0x88, 0x0b, 0x56, 0x48, 0x69, 0xb8, 0xf4, 0x74, 0xd2, 0x03, 0x97,
	0x46, 0xd3, 0x88, 0x46, 0xb7, 0xe3, 0xc8, 0x33, 0x86, 0x7d, 0x70, 0xda, 0xe1, 0xc4, 0xa3, 0x31,
	0xbd, 0x1b, 0xc7, 0xde, 0x99, 0x5c, 0xcf, 0xaf, 0x3f, 0x44, 0xe3, 0xd8, 0xd3, 0x86, 0x63, 0x70,
	0xda, 0xaf, 0x91, 0x38, 0x60, 0x5e, 0xcf, 0x27, 0xcb, 0x9a, 0x71, 0x13, 0x85, 0x93, 0x88, 0x7a,
	0x1a, 0xf9, 0x0f, 0x9c, 0xe9, 0x9c, 0xce, 0x26, 0x61, 0x1c, 0x7a, 0xba, 0xbc, 0xed, 0xf3, 0x5d,
	0x44, 0x97, 0x9e, 0x21, 0xe9, 0x8b, 0x30, 0xbe, 0xf1, 0xcc, 0xaf, 0x36, 0xfe, 0x76, 0xde, 0xfd,
	0x0b, 0x00, 0x00, 0xff, 0xff, 0x15, 0x52, 0x6a, 0x89, 0x87, 0x04, 0x00, 0x00,
}
