change Action to InputDefinitionAction in proto

This commit is contained in:
Linh Vo 2017-06-22 14:55:29 -05:00
parent ba0eff4ffe
commit aa2cc13a9c
6 changed files with 121 additions and 120 deletions

View file

@ -1121,8 +1121,8 @@ func TestHandler_DeleteInputDefinition(t *testing.T) {
index := hldr.MustCreateIndexIfNotExists("i0", pilosa.IndexOptions{})
frames := internal.Frame{Name: "f", Meta: &internal.FrameMeta{RowLabel: "row"}}
action := internal.Action{Frame: "f", ValueDestination: "mapping", ValueMap: map[string]uint64{"Green": 1}}
fields := internal.InputDefinitionField{Name: "id", PrimaryKey: true, Actions: []*internal.Action{&action}}
action := internal.InputDefinitionAction{Frame: "f", ValueDestination: "mapping", ValueMap: map[string]uint64{"Green": 1}}
fields := internal.InputDefinitionField{Name: "id", PrimaryKey: true, InputDefinitionActions: []*internal.InputDefinitionAction{&action}}
def := internal.InputDefinition{Name: "test", Frames: []*internal.Frame{&frames}, Fields: []*internal.InputDefinitionField{&fields}}
_, err := index.CreateInputDefinition(&def)
if err != nil {
@ -1150,8 +1150,8 @@ func TestHandler_GetInputDefinition(t *testing.T) {
index := hldr.MustCreateIndexIfNotExists("i0", pilosa.IndexOptions{})
frames := internal.Frame{Name: "f", Meta: &internal.FrameMeta{RowLabel: "row"}}
action := internal.Action{Frame: "f", ValueDestination: "mapping", ValueMap: map[string]uint64{"Green": 1}}
fields := internal.InputDefinitionField{Name: "id", PrimaryKey: true, Actions: []*internal.Action{&action}}
action := internal.InputDefinitionAction{Frame: "f", ValueDestination: "mapping", ValueMap: map[string]uint64{"Green": 1}}
fields := internal.InputDefinitionField{Name: "id", PrimaryKey: true, InputDefinitionActions: []*internal.InputDefinitionAction{&action}}
def := internal.InputDefinition{Name: "test", Frames: []*internal.Frame{&frames}, Fields: []*internal.InputDefinitionField{&fields}}
inputDef, err := index.CreateInputDefinition(&def)
if err != nil {

View file

@ -247,8 +247,8 @@ func TestIndex_CreateInputDefinition(t *testing.T) {
// Create Input Definition.
frames := internal.Frame{Name: "f", Meta: &internal.FrameMeta{RowLabel: "row"}}
action := internal.Action{Frame: "f", ValueDestination: "mapping", ValueMap: map[string]uint64{"Green": 1}}
fields := internal.InputDefinitionField{Name: "id", PrimaryKey: true, Actions: []*internal.Action{&action}}
action := internal.InputDefinitionAction{Frame: "f", ValueDestination: "mapping", ValueMap: map[string]uint64{"Green": 1}}
fields := internal.InputDefinitionField{Name: "id", PrimaryKey: true, InputDefinitionActions: []*internal.InputDefinitionAction{&action}}
def := internal.InputDefinition{Name: "test", Frames: []*internal.Frame{&frames}, Fields: []*internal.InputDefinitionField{&fields}}
inputDef, err := index.CreateInputDefinition(&def)
if err != nil {
@ -266,8 +266,8 @@ func TestIndex_CreateExistingInputDefinition(t *testing.T) {
// Create Input Definition.
frames := internal.Frame{Name: "f", Meta: &internal.FrameMeta{RowLabel: "row"}}
action := internal.Action{Frame: "f", ValueDestination: "mapping", ValueMap: map[string]uint64{"Green": 1}}
fields := internal.InputDefinitionField{Name: "id", PrimaryKey: true, Actions: []*internal.Action{&action}}
action := internal.InputDefinitionAction{Frame: "f", ValueDestination: "mapping", ValueMap: map[string]uint64{"Green": 1}}
fields := internal.InputDefinitionField{Name: "id", PrimaryKey: true, InputDefinitionActions: []*internal.InputDefinitionAction{&action}}
def := internal.InputDefinition{Name: "test", Frames: []*internal.Frame{&frames}, Fields: []*internal.InputDefinitionField{&fields}}
_, err := index.CreateInputDefinition(&def)
if err != nil {
@ -297,8 +297,8 @@ func TestIndex_DeleteInputDefinition(t *testing.T) {
// Create Input Definition.
frames := internal.Frame{Name: "f", Meta: &internal.FrameMeta{RowLabel: "row"}}
action := internal.Action{Frame: "f", ValueDestination: "mapping", ValueMap: map[string]uint64{"Green": 1}}
fields := internal.InputDefinitionField{Name: "id", PrimaryKey: true, Actions: []*internal.Action{&action}}
action := internal.InputDefinitionAction{Frame: "f", ValueDestination: "mapping", ValueMap: map[string]uint64{"Green": 1}}
fields := internal.InputDefinitionField{Name: "id", PrimaryKey: true, InputDefinitionActions: []*internal.InputDefinitionAction{&action}}
def := internal.InputDefinition{Name: "test", Frames: []*internal.Frame{&frames}, Fields: []*internal.InputDefinitionField{&fields}}
_, err := index.CreateInputDefinition(&def)
if err != nil {
@ -321,8 +321,8 @@ func TestIndex_CreateFrameWhenOpenInputDefinition(t *testing.T) {
// Create Input Definition.
frames := internal.Frame{Name: "f", Meta: &internal.FrameMeta{RowLabel: "row"}}
action := internal.Action{Frame: "f", ValueDestination: "mapping", ValueMap: map[string]uint64{"Green": 1}}
fields := internal.InputDefinitionField{Name: "id", PrimaryKey: true, Actions: []*internal.Action{&action}}
action := internal.InputDefinitionAction{Frame: "f", ValueDestination: "mapping", ValueMap: map[string]uint64{"Green": 1}}
fields := internal.InputDefinitionField{Name: "id", PrimaryKey: true, InputDefinitionActions: []*internal.InputDefinitionAction{&action}}
def := internal.InputDefinition{Name: "test", Frames: []*internal.Frame{&frames}, Fields: []*internal.InputDefinitionField{&fields}}
input, err := index.CreateInputDefinition(&def)
if err != nil {

View file

@ -103,7 +103,7 @@ func (i *InputDefinition) LoadDefinition(pb *internal.InputDefinition) error {
countRowID := make(map[string]uint64)
for _, field := range pb.Fields {
var actions []Action
for _, action := range field.Actions {
for _, action := range field.InputDefinitionActions {
if err := i.ValidateAction(action); err != nil {
return err
}
@ -175,9 +175,9 @@ func (i *InputDefinition) saveMeta() error {
var fields []*internal.InputDefinitionField
for _, field := range i.fields {
var actions []*internal.Action
var actions []*internal.InputDefinitionAction
for _, action := range field.Actions {
actionMeta := &internal.Action{
actionMeta := &internal.InputDefinitionAction{
Frame: action.Frame,
ValueDestination: action.ValueDestination,
ValueMap: action.ValueMap,
@ -187,9 +187,9 @@ func (i *InputDefinition) saveMeta() error {
}
fieldMeta := &internal.InputDefinitionField{
Name: field.Name,
PrimaryKey: field.PrimaryKey,
Actions: actions,
Name: field.Name,
PrimaryKey: field.PrimaryKey,
InputDefinitionActions: actions,
}
fields = append(fields, fieldMeta)
}
@ -226,7 +226,7 @@ func (o *Field) Encode() (*internal.InputDefinitionField, error) {
if err != nil {
return nil, err
}
field.Actions = append(field.Actions, actionEncode)
field.InputDefinitionActions = append(field.InputDefinitionActions, actionEncode)
}
return &field, nil
}
@ -240,11 +240,11 @@ type Action struct {
}
// Encode converts Action into its internal representation.
func (o *Action) Encode() (*internal.Action, error) {
func (o *Action) Encode() (*internal.InputDefinitionAction, error) {
if o.RowID == nil && o.ValueDestination == "single-row-boolean" {
return nil, errors.New("rowID required for single-row-boolean")
}
return &internal.Action{
return &internal.InputDefinitionAction{
Frame: o.Frame,
ValueDestination: o.ValueDestination,
ValueMap: o.ValueMap,
@ -296,7 +296,7 @@ func (i *InputDefinition) AddFrame(frame InputFrame) error {
return nil
}
func (i *InputDefinition) ValidateAction(action *internal.Action) error {
func (i *InputDefinition) ValidateAction(action *internal.InputDefinitionAction) error {
if action.Frame == "" {
return ErrFrameRequired
}

View file

@ -29,8 +29,8 @@ func TestInputDefinition_Open(t *testing.T) {
// Create Input Definition.
frames := internal.Frame{Name: "f", Meta: &internal.FrameMeta{RowLabel: "row"}}
action := internal.Action{Frame: "f", ValueDestination: "mapping", ValueMap: map[string]uint64{"Green": 1}}
fields := internal.InputDefinitionField{Name: "id", PrimaryKey: true, Actions: []*internal.Action{&action}}
action := internal.InputDefinitionAction{Frame: "f", ValueDestination: "mapping", ValueMap: map[string]uint64{"Green": 1}}
fields := internal.InputDefinitionField{Name: "id", PrimaryKey: true, InputDefinitionActions: []*internal.InputDefinitionAction{&action}}
def := internal.InputDefinition{Name: "test", Frames: []*internal.Frame{&frames}, Fields: []*internal.InputDefinitionField{&fields}}
inputDef, err := index.CreateInputDefinition(&def)
if err != nil {
@ -91,10 +91,10 @@ func TestInputDefinition_Encoding(t *testing.T) {
t.Fatalf("unexpected frame meta data: %v", internalDef)
} else if len(internalDef.Fields) != 2 {
t.Fatalf("unexpected number of Fields: %d", len(internalDef.Fields))
} else if len(internalDef.Fields[1].Actions) != 1 {
t.Fatalf("unexpected number of Actions: %v", internalDef.Fields[1].Actions)
} else if internalDef.Fields[1].Actions[0].ValueDestination != "mapping" {
t.Fatalf("unexpected ValueDestination: %v", internalDef.Fields[1].Actions[0])
} else if len(internalDef.Fields[1].InputDefinitionActions) != 1 {
t.Fatalf("unexpected number of Actions: %v", internalDef.Fields[1].InputDefinitionActions)
} else if internalDef.Fields[1].InputDefinitionActions[0].ValueDestination != "mapping" {
t.Fatalf("unexpected ValueDestination: %v", internalDef.Fields[1].InputDefinitionActions[0])
}
}
@ -105,8 +105,8 @@ func TestInputDefinition_LoadDefinition(t *testing.T) {
// Create Input Definition.
input := pilosa.InputDefinition{}
frames := internal.Frame{Name: "f", Meta: &internal.FrameMeta{RowLabel: "row"}}
action := internal.Action{Frame: "f", ValueDestination: "value-to-ROW", ValueMap: map[string]uint64{"Green": 1}}
field := internal.InputDefinitionField{Name: "id", PrimaryKey: true, Actions: []*internal.Action{&action}}
action := internal.InputDefinitionAction{Frame: "f", ValueDestination: "value-to-ROW", ValueMap: map[string]uint64{"Green": 1}}
field := internal.InputDefinitionField{Name: "id", PrimaryKey: true, InputDefinitionActions: []*internal.InputDefinitionAction{&action}}
def := &internal.InputDefinition{Name: "test", Frames: []*internal.Frame{&frames}, Fields: []*internal.InputDefinitionField{&field}}
err := input.LoadDefinition(def)
if !strings.Contains(err.Error(), "invalid ValueDestination") {
@ -119,32 +119,32 @@ func TestInputDefinition_LoadDefinition(t *testing.T) {
t.Fatalf("Expected rowID required for single-row-boolean error, actual error: %s", err)
}
action = internal.Action{Frame: "f", ValueDestination: pilosa.Mapping, RowID: 100}
field = internal.InputDefinitionField{Name: "id", PrimaryKey: true, Actions: []*internal.Action{&action}}
action = internal.InputDefinitionAction{Frame: "f", ValueDestination: pilosa.Mapping, RowID: 100}
field = internal.InputDefinitionField{Name: "id", PrimaryKey: true, InputDefinitionActions: []*internal.InputDefinitionAction{&action}}
def = &internal.InputDefinition{Name: "test", Frames: []*internal.Frame{&frames}, Fields: []*internal.InputDefinitionField{&field}}
err = input.LoadDefinition(def)
if !strings.Contains(err.Error(), "valueMap required for map") {
t.Fatalf("Expected valueMap required for map error, actual error: %s", err)
}
action = internal.Action{Frame: "f", ValueDestination: pilosa.SingleRowBool, RowID: 100}
action1 := internal.Action{Frame: "f", ValueDestination: pilosa.SingleRowBool, RowID: 0}
field1 := internal.InputDefinitionField{Name: "newID", PrimaryKey: true, Actions: []*internal.Action{&action1}}
action = internal.InputDefinitionAction{Frame: "f", ValueDestination: pilosa.SingleRowBool, RowID: 100}
action1 := internal.InputDefinitionAction{Frame: "f", ValueDestination: pilosa.SingleRowBool, RowID: 0}
field1 := internal.InputDefinitionField{Name: "newID", PrimaryKey: true, InputDefinitionActions: []*internal.InputDefinitionAction{&action1}}
def = &internal.InputDefinition{Name: "test", Frames: []*internal.Frame{&frames}, Fields: []*internal.InputDefinitionField{&field, &field1}}
err = input.LoadDefinition(def)
if !strings.Contains(err.Error(), "duplicate primaryKey with other field") {
t.Fatalf("Expected duplicate primaryKey error, actual error: %s", err)
}
action1 = internal.Action{Frame: "f", ValueDestination: pilosa.SingleRowBool, RowID: 100}
field1 = internal.InputDefinitionField{Name: "id", PrimaryKey: true, Actions: []*internal.Action{&action1}}
action1 = internal.InputDefinitionAction{Frame: "f", ValueDestination: pilosa.SingleRowBool, RowID: 100}
field1 = internal.InputDefinitionField{Name: "id", PrimaryKey: true, InputDefinitionActions: []*internal.InputDefinitionAction{&action1}}
def = &internal.InputDefinition{Name: "test", Frames: []*internal.Frame{&frames}, Fields: []*internal.InputDefinitionField{&field, &field1}}
err = input.LoadDefinition(def)
if !strings.Contains(err.Error(), "duplicate rowID with other field") {
t.Fatalf("Expected duplicate rowID with other field error, actual error: %s", err)
}
action = internal.Action{ValueDestination: pilosa.SingleRowBool, RowID: 100}
action = internal.InputDefinitionAction{ValueDestination: pilosa.SingleRowBool, RowID: 100}
def = &internal.InputDefinition{Name: "test", Frames: []*internal.Frame{&frames}, Fields: []*internal.InputDefinitionField{&field}}
err = input.LoadDefinition(def)
if !strings.Contains(err.Error(), "frame required") {

View file

@ -25,7 +25,7 @@
Index
InputDefinition
InputDefinitionField
Action
InputDefinitionAction
CreateInputDefinitionMessage
DeleteInputDefinitionMessage
NodeStatus
@ -273,9 +273,9 @@ func (m *InputDefinition) GetFields() []*InputDefinitionField {
}
type InputDefinitionField struct {
Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"`
PrimaryKey bool `protobuf:"varint,2,opt,name=PrimaryKey,proto3" json:"PrimaryKey,omitempty"`
Actions []*Action `protobuf:"bytes,3,rep,name=Actions" json:"Actions,omitempty"`
Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"`
PrimaryKey bool `protobuf:"varint,2,opt,name=PrimaryKey,proto3" json:"PrimaryKey,omitempty"`
InputDefinitionActions []*InputDefinitionAction `protobuf:"bytes,3,rep,name=InputDefinitionActions" json:"InputDefinitionActions,omitempty"`
}
func (m *InputDefinitionField) Reset() { *m = InputDefinitionField{} }
@ -283,26 +283,26 @@ func (m *InputDefinitionField) String() string { return proto.Compact
func (*InputDefinitionField) ProtoMessage() {}
func (*InputDefinitionField) Descriptor() ([]byte, []int) { return fileDescriptorPrivate, []int{15} }
func (m *InputDefinitionField) GetActions() []*Action {
func (m *InputDefinitionField) GetInputDefinitionActions() []*InputDefinitionAction {
if m != nil {
return m.Actions
return m.InputDefinitionActions
}
return nil
}
type Action struct {
type InputDefinitionAction struct {
Frame string `protobuf:"bytes,1,opt,name=Frame,proto3" json:"Frame,omitempty"`
ValueDestination string `protobuf:"bytes,2,opt,name=ValueDestination,proto3" json:"ValueDestination,omitempty"`
ValueMap map[string]uint64 `protobuf:"bytes,3,rep,name=ValueMap" json:"ValueMap,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
RowID uint64 `protobuf:"varint,4,opt,name=RowID,proto3" json:"RowID,omitempty"`
}
func (m *Action) Reset() { *m = Action{} }
func (m *Action) String() string { return proto.CompactTextString(m) }
func (*Action) ProtoMessage() {}
func (*Action) Descriptor() ([]byte, []int) { return fileDescriptorPrivate, []int{16} }
func (m *InputDefinitionAction) Reset() { *m = InputDefinitionAction{} }
func (m *InputDefinitionAction) String() string { return proto.CompactTextString(m) }
func (*InputDefinitionAction) ProtoMessage() {}
func (*InputDefinitionAction) Descriptor() ([]byte, []int) { return fileDescriptorPrivate, []int{16} }
func (m *Action) GetValueMap() map[string]uint64 {
func (m *InputDefinitionAction) GetValueMap() map[string]uint64 {
if m != nil {
return m.ValueMap
}
@ -392,7 +392,7 @@ func init() {
proto.RegisterType((*Index)(nil), "internal.Index")
proto.RegisterType((*InputDefinition)(nil), "internal.InputDefinition")
proto.RegisterType((*InputDefinitionField)(nil), "internal.InputDefinitionField")
proto.RegisterType((*Action)(nil), "internal.Action")
proto.RegisterType((*InputDefinitionAction)(nil), "internal.InputDefinitionAction")
proto.RegisterType((*CreateInputDefinitionMessage)(nil), "internal.CreateInputDefinitionMessage")
proto.RegisterType((*DeleteInputDefinitionMessage)(nil), "internal.DeleteInputDefinitionMessage")
proto.RegisterType((*NodeStatus)(nil), "internal.NodeStatus")
@ -1030,8 +1030,8 @@ func (m *InputDefinitionField) MarshalTo(dAtA []byte) (int, error) {
}
i++
}
if len(m.Actions) > 0 {
for _, msg := range m.Actions {
if len(m.InputDefinitionActions) > 0 {
for _, msg := range m.InputDefinitionActions {
dAtA[i] = 0x1a
i++
i = encodeVarintPrivate(dAtA, i, uint64(msg.Size()))
@ -1045,7 +1045,7 @@ func (m *InputDefinitionField) MarshalTo(dAtA []byte) (int, error) {
return i, nil
}
func (m *Action) Marshal() (dAtA []byte, err error) {
func (m *InputDefinitionAction) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalTo(dAtA)
@ -1055,7 +1055,7 @@ func (m *Action) Marshal() (dAtA []byte, err error) {
return dAtA[:n], nil
}
func (m *Action) MarshalTo(dAtA []byte) (int, error) {
func (m *InputDefinitionAction) MarshalTo(dAtA []byte) (int, error) {
var i int
_ = i
var l int
@ -1538,8 +1538,8 @@ func (m *InputDefinitionField) Size() (n int) {
if m.PrimaryKey {
n += 2
}
if len(m.Actions) > 0 {
for _, e := range m.Actions {
if len(m.InputDefinitionActions) > 0 {
for _, e := range m.InputDefinitionActions {
l = e.Size()
n += 1 + l + sovPrivate(uint64(l))
}
@ -1547,7 +1547,7 @@ func (m *InputDefinitionField) Size() (n int) {
return n
}
func (m *Action) Size() (n int) {
func (m *InputDefinitionAction) Size() (n int) {
var l int
_ = l
l = len(m.Frame)
@ -3775,7 +3775,7 @@ func (m *InputDefinitionField) Unmarshal(dAtA []byte) error {
m.PrimaryKey = bool(v != 0)
case 3:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Actions", wireType)
return fmt.Errorf("proto: wrong wireType = %d for field InputDefinitionActions", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
@ -3799,8 +3799,8 @@ func (m *InputDefinitionField) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Actions = append(m.Actions, &Action{})
if err := m.Actions[len(m.Actions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
m.InputDefinitionActions = append(m.InputDefinitionActions, &InputDefinitionAction{})
if err := m.InputDefinitionActions[len(m.InputDefinitionActions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
@ -3825,7 +3825,7 @@ func (m *InputDefinitionField) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *Action) Unmarshal(dAtA []byte) error {
func (m *InputDefinitionAction) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@ -3848,10 +3848,10 @@ func (m *Action) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: Action: wiretype end group for non-group")
return fmt.Errorf("proto: InputDefinitionAction: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: Action: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: InputDefinitionAction: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
@ -4635,58 +4635,59 @@ var (
func init() { proto.RegisterFile("private.proto", fileDescriptorPrivate) }
var fileDescriptorPrivate = []byte{
// 842 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xcd, 0x8e, 0x1b, 0x45,
0x10, 0x66, 0xec, 0xb1, 0x63, 0xd7, 0x6a, 0x77, 0x9d, 0x66, 0x85, 0x26, 0xab, 0x95, 0xb5, 0xea,
0x03, 0x59, 0x7c, 0xf0, 0x21, 0x48, 0x08, 0x12, 0x0e, 0x10, 0xdb, 0xd1, 0x5a, 0xe0, 0x00, 0xed,
0x28, 0x47, 0xa4, 0x5e, 0xbb, 0x80, 0xd1, 0x8e, 0x67, 0xcc, 0x74, 0x8f, 0x37, 0xe6, 0xc0, 0x05,
0x89, 0x67, 0x40, 0xe2, 0x19, 0x78, 0x0f, 0x8e, 0x5c, 0xb9, 0xa1, 0xe5, 0xc2, 0x63, 0xa0, 0xfe,
0x9b, 0x19, 0x8f, 0xd7, 0x8e, 0x02, 0xb7, 0xae, 0xaf, 0xbe, 0xae, 0xfa, 0xba, 0xa6, 0xaa, 0x6c,
0x38, 0x5c, 0xa6, 0xe1, 0x8a, 0x4b, 0xec, 0x2f, 0xd3, 0x44, 0x26, 0xa4, 0x15, 0xc6, 0x12, 0xd3,
0x98, 0x47, 0xf4, 0x0b, 0x68, 0x8f, 0xe3, 0x39, 0xbe, 0x9a, 0xa0, 0xe4, 0xe4, 0x1c, 0x0e, 0x06,
0x49, 0x94, 0x2d, 0xe2, 0xcf, 0xf9, 0x15, 0x46, 0x81, 0x77, 0xee, 0x5d, 0xb4, 0x59, 0x19, 0x52,
0x8c, 0x17, 0xe1, 0x02, 0xbf, 0xca, 0x78, 0x2c, 0xb3, 0x45, 0x50, 0x33, 0x8c, 0x12, 0x44, 0x7f,
0xf3, 0xa0, 0xfd, 0x2c, 0xe5, 0x0b, 0xd4, 0x11, 0x4f, 0xa1, 0xc5, 0x92, 0x9b, 0x72, 0xb8, 0xdc,
0x26, 0xef, 0xc2, 0xd1, 0x38, 0x5e, 0x61, 0x2a, 0x70, 0x14, 0xf3, 0xab, 0x08, 0xe7, 0x3a, 0x5c,
0x8b, 0x55, 0x50, 0x72, 0x06, 0xed, 0x01, 0x9f, 0x7d, 0x87, 0x2f, 0xd6, 0x4b, 0x0c, 0xea, 0x3a,
0x48, 0x01, 0xe4, 0xde, 0x69, 0xf8, 0x03, 0x06, 0xfe, 0xb9, 0x77, 0x71, 0xc8, 0x0a, 0xa0, 0xaa,
0xb7, 0xb1, 0xad, 0x97, 0xc2, 0xd1, 0x78, 0xb1, 0x4c, 0x52, 0xc9, 0x50, 0x2c, 0x93, 0x58, 0x20,
0xe9, 0x40, 0x7d, 0x94, 0xa6, 0x56, 0xae, 0x3a, 0xd2, 0x1f, 0xa1, 0xf3, 0x34, 0x4a, 0x66, 0xd7,
0x43, 0x2e, 0x39, 0xc3, 0xef, 0x33, 0x14, 0x92, 0x9c, 0x40, 0x43, 0x17, 0xce, 0xf2, 0x8c, 0xa1,
0x50, 0xfd, 0x78, 0x5b, 0x19, 0x63, 0x28, 0x54, 0xdf, 0xd7, 0xea, 0x7d, 0x66, 0x0c, 0x85, 0x4e,
0xa3, 0x70, 0x66, 0x54, 0xfb, 0xcc, 0x18, 0x84, 0x80, 0xff, 0x32, 0xc4, 0x1b, 0x2b, 0x55, 0x9f,
0xe9, 0x18, 0xee, 0x97, 0xf2, 0x5b, 0x99, 0xef, 0x40, 0x93, 0x25, 0x37, 0xe3, 0xa1, 0x08, 0xbc,
0xf3, 0xfa, 0x85, 0xcf, 0xac, 0xa5, 0x0b, 0xa2, 0xbf, 0x98, 0x72, 0xd5, 0xb4, 0xab, 0x00, 0xe8,
0x03, 0x68, 0xe8, 0xea, 0xa8, 0x57, 0x16, 0x77, 0xd5, 0x91, 0xfe, 0xea, 0xc1, 0xfd, 0x09, 0x7f,
0xa5, 0x65, 0x88, 0x3c, 0xcd, 0x25, 0xb4, 0x73, 0x50, 0xb3, 0x0f, 0x1e, 0xf5, 0xfa, 0xae, 0x7d,
0xfa, 0x5b, 0xfc, 0x02, 0x19, 0xc5, 0x32, 0x5d, 0xb3, 0xe2, 0xf2, 0xe9, 0xc7, 0x70, 0xb4, 0xe9,
0x54, 0x1a, 0xae, 0x71, 0xed, 0x2a, 0x7d, 0x8d, 0x6b, 0x55, 0x93, 0x15, 0x8f, 0x32, 0x53, 0x3f,
0x9f, 0x19, 0xe3, 0x71, 0xed, 0x43, 0x8f, 0x7e, 0x0d, 0x64, 0x90, 0x22, 0x97, 0xa8, 0x03, 0x4c,
0x50, 0x08, 0xfe, 0x2d, 0xee, 0xfe, 0x0a, 0xa6, 0xb2, 0xb5, 0x72, 0x65, 0xcf, 0xa0, 0x3d, 0x16,
0xb6, 0xb7, 0xf4, 0x97, 0x68, 0xb1, 0x02, 0xa0, 0x3d, 0x20, 0x43, 0x8c, 0x50, 0xa2, 0x1d, 0x87,
0x3d, 0xf1, 0xe9, 0xd4, 0x69, 0x79, 0x3d, 0x97, 0x3c, 0x04, 0x5f, 0x4d, 0x82, 0x96, 0x72, 0xf0,
0xe8, 0xed, 0xa2, 0x74, 0xf9, 0xd8, 0x31, 0x4d, 0xa0, 0xa1, 0x0b, 0x6a, 0xa7, 0xe7, 0x35, 0x0f,
0xbc, 0xa3, 0xcd, 0x5c, 0xaa, 0x7a, 0x35, 0x55, 0x3e, 0x8f, 0x36, 0xd5, 0x27, 0xee, 0xad, 0xff,
0x35, 0x15, 0x1d, 0x5a, 0x54, 0xb5, 0xeb, 0x73, 0xe5, 0x35, 0x77, 0xf4, 0x79, 0xf7, 0x93, 0xab,
0x3a, 0xfe, 0xf1, 0x6c, 0xca, 0x37, 0x0b, 0x53, 0xa9, 0x9c, 0x5a, 0x32, 0xae, 0xb1, 0xec, 0x84,
0xe5, 0x36, 0x79, 0x08, 0x4d, 0x9d, 0x55, 0x04, 0xbe, 0xee, 0xdd, 0xe3, 0x8a, 0x1a, 0x66, 0xdd,
0x6a, 0x9c, 0x6c, 0x93, 0x37, 0xcc, 0x38, 0x19, 0x8b, 0x8c, 0xa0, 0x33, 0x8e, 0x97, 0x99, 0x1c,
0xe2, 0x37, 0x61, 0x1c, 0xca, 0x30, 0x89, 0x45, 0xd0, 0xd4, 0xa1, 0x1e, 0x94, 0x15, 0x6d, 0x30,
0xd8, 0xd6, 0x15, 0xfa, 0xb3, 0x07, 0xc7, 0x15, 0x70, 0xc7, 0xa3, 0x9d, 0xde, 0xda, 0x7e, 0xbd,
0x1f, 0x40, 0xf3, 0x59, 0x88, 0xd1, 0x5c, 0x04, 0x75, 0x4d, 0xec, 0xee, 0x54, 0xa3, 0x69, 0xcc,
0xb2, 0xe9, 0x0a, 0x4e, 0xee, 0xf2, 0xdf, 0x29, 0xa6, 0x0b, 0xf0, 0x65, 0x1a, 0x2e, 0x78, 0xba,
0xfe, 0x0c, 0xd7, 0x76, 0x3b, 0x97, 0x10, 0xd2, 0x83, 0x7b, 0x9f, 0xce, 0x4c, 0x49, 0x8c, 0x88,
0x4e, 0x21, 0xc2, 0x38, 0x98, 0x23, 0xd0, 0x3f, 0x3d, 0x68, 0x9a, 0x73, 0xd1, 0x52, 0x5e, 0xb9,
0x7b, 0x7b, 0xd0, 0x79, 0xa9, 0xa6, 0x7d, 0x88, 0x42, 0x86, 0x31, 0x57, 0x4c, 0xdb, 0x73, 0x5b,
0x38, 0x79, 0x0c, 0x2d, 0x8d, 0x4d, 0xf8, 0x72, 0xfb, 0xf9, 0x26, 0x4b, 0xdf, 0x11, 0xcc, 0x1e,
0xca, 0xf9, 0x2a, 0xbb, 0xde, 0x94, 0x6e, 0xed, 0x6a, 0xe3, 0xf4, 0x09, 0x1c, 0x6e, 0x5c, 0x78,
0xa3, 0xdd, 0xf4, 0x93, 0x07, 0x67, 0x6e, 0x21, 0x6c, 0x94, 0x76, 0xff, 0x68, 0xb9, 0x92, 0xd7,
0x4a, 0x25, 0xff, 0x08, 0xa0, 0xb8, 0x6e, 0x27, 0x79, 0x4f, 0xa3, 0x95, 0xc8, 0xf4, 0x12, 0xce,
0xdc, 0x06, 0xfb, 0x7f, 0x22, 0x28, 0x07, 0x78, 0x9e, 0xcc, 0x71, 0x2a, 0xb9, 0xcc, 0x84, 0x62,
0x5c, 0x26, 0x42, 0xba, 0xce, 0x50, 0x67, 0xbd, 0x61, 0x25, 0x97, 0xf9, 0x56, 0xd0, 0x06, 0x79,
0x0f, 0xee, 0xe9, 0xa0, 0xe8, 0xfa, 0xe1, 0xb8, 0x32, 0xb4, 0xcc, 0xf9, 0xe9, 0x13, 0x38, 0x1c,
0x44, 0x99, 0x90, 0x98, 0xda, 0x2c, 0x3d, 0x68, 0xa8, 0x9c, 0xee, 0x37, 0xe6, 0xa4, 0xb8, 0x59,
0x48, 0x61, 0x86, 0xf2, 0xb4, 0xf3, 0xfb, 0x6d, 0xd7, 0xfb, 0xe3, 0xb6, 0xeb, 0xfd, 0x75, 0xdb,
0xf5, 0x7e, 0xf9, 0xbb, 0xfb, 0xd6, 0x55, 0x53, 0xff, 0xaf, 0x79, 0xff, 0xdf, 0x00, 0x00, 0x00,
0xff, 0xff, 0x41, 0x4c, 0x6a, 0xbc, 0xe8, 0x08, 0x00, 0x00,
// 851 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xcd, 0x6e, 0x23, 0x45,
0x10, 0xa6, 0xed, 0xb1, 0xb1, 0x2b, 0x4a, 0xe2, 0x6d, 0xc2, 0x6a, 0x36, 0x8a, 0x4c, 0xd4, 0x07,
0x36, 0x44, 0x22, 0x87, 0x45, 0x42, 0xc0, 0x72, 0x80, 0x8d, 0xb3, 0xca, 0x08, 0xb2, 0x40, 0x67,
0xb5, 0xdc, 0x90, 0x3a, 0x49, 0x01, 0xa3, 0x8c, 0x67, 0xcc, 0x74, 0x4f, 0xb2, 0xe6, 0xc0, 0x05,
0x89, 0x67, 0x40, 0xe2, 0xc8, 0x99, 0xf7, 0xe0, 0xc8, 0x23, 0xa0, 0x70, 0xe1, 0x0d, 0xb8, 0xa2,
0xfe, 0x9b, 0x19, 0x8f, 0x7f, 0xa2, 0xc0, 0x6d, 0xea, 0xeb, 0xaf, 0xaa, 0xbe, 0xae, 0xae, 0x2a,
0x1b, 0xd6, 0x27, 0x79, 0x7c, 0x25, 0x14, 0x1e, 0x4c, 0xf2, 0x4c, 0x65, 0xb4, 0x17, 0xa7, 0x0a,
0xf3, 0x54, 0x24, 0xec, 0x33, 0xe8, 0x47, 0xe9, 0x05, 0xbe, 0x3c, 0x41, 0x25, 0xe8, 0x2e, 0xac,
0x1d, 0x66, 0x49, 0x31, 0x4e, 0x3f, 0x15, 0x67, 0x98, 0x84, 0x64, 0x97, 0xec, 0xf5, 0x79, 0x1d,
0xd2, 0x8c, 0xe7, 0xf1, 0x18, 0xbf, 0x28, 0x44, 0xaa, 0x8a, 0x71, 0xd8, 0xb2, 0x8c, 0x1a, 0xc4,
0x7e, 0x23, 0xd0, 0x7f, 0x9a, 0x8b, 0x31, 0x9a, 0x88, 0xdb, 0xd0, 0xe3, 0xd9, 0x75, 0x3d, 0x5c,
0x69, 0xd3, 0x37, 0x61, 0x23, 0x4a, 0xaf, 0x30, 0x97, 0x78, 0x94, 0x8a, 0xb3, 0x04, 0x2f, 0x4c,
0xb8, 0x1e, 0x6f, 0xa0, 0x74, 0x07, 0xfa, 0x87, 0xe2, 0xfc, 0x5b, 0x7c, 0x3e, 0x9d, 0x60, 0xd8,
0x36, 0x41, 0x2a, 0xa0, 0x3c, 0x3d, 0x8d, 0xbf, 0xc7, 0x30, 0xd8, 0x25, 0x7b, 0xeb, 0xbc, 0x02,
0x9a, 0x7a, 0x3b, 0xf3, 0x7a, 0x19, 0x6c, 0x44, 0xe3, 0x49, 0x96, 0x2b, 0x8e, 0x72, 0x92, 0xa5,
0x12, 0xe9, 0x00, 0xda, 0x47, 0x79, 0xee, 0xe4, 0xea, 0x4f, 0xf6, 0x03, 0x0c, 0x9e, 0x24, 0xd9,
0xf9, 0xe5, 0x48, 0x28, 0xc1, 0xf1, 0xbb, 0x02, 0xa5, 0xa2, 0x5b, 0xd0, 0x31, 0x85, 0x73, 0x3c,
0x6b, 0x68, 0xd4, 0x5c, 0xde, 0x55, 0xc6, 0x1a, 0x1a, 0x35, 0xfe, 0x46, 0x7d, 0xc0, 0xad, 0xa1,
0xd1, 0xd3, 0x24, 0x3e, 0xb7, 0xaa, 0x03, 0x6e, 0x0d, 0x4a, 0x21, 0x78, 0x11, 0xe3, 0xb5, 0x93,
0x6a, 0xbe, 0x59, 0x04, 0xf7, 0x6a, 0xf9, 0x9d, 0xcc, 0xfb, 0xd0, 0xe5, 0xd9, 0x75, 0x34, 0x92,
0x21, 0xd9, 0x6d, 0xef, 0x05, 0xdc, 0x59, 0xa6, 0x20, 0xe6, 0xc5, 0xf4, 0x51, 0xcb, 0x1c, 0x55,
0x00, 0x7b, 0x00, 0x1d, 0x53, 0x1d, 0x7d, 0xcb, 0xca, 0x57, 0x7f, 0xb2, 0x5f, 0x08, 0xdc, 0x3b,
0x11, 0x2f, 0x8d, 0x0c, 0x59, 0xa6, 0x39, 0x86, 0x7e, 0x09, 0x1a, 0xf6, 0xda, 0xa3, 0xfd, 0x03,
0xdf, 0x3e, 0x07, 0x73, 0xfc, 0x0a, 0x39, 0x4a, 0x55, 0x3e, 0xe5, 0x95, 0xf3, 0xf6, 0x87, 0xb0,
0x31, 0x7b, 0xa8, 0x35, 0x5c, 0xe2, 0xd4, 0x57, 0xfa, 0x12, 0xa7, 0xba, 0x26, 0x57, 0x22, 0x29,
0x6c, 0xfd, 0x02, 0x6e, 0x8d, 0x0f, 0x5a, 0xef, 0x11, 0xf6, 0x15, 0xd0, 0xc3, 0x1c, 0x85, 0x42,
0x13, 0xe0, 0x04, 0xa5, 0x14, 0xdf, 0xe0, 0xf2, 0x57, 0xb0, 0x95, 0x6d, 0xd5, 0x2b, 0xbb, 0x03,
0xfd, 0x48, 0xba, 0xde, 0x32, 0x2f, 0xd1, 0xe3, 0x15, 0xc0, 0xf6, 0x81, 0x8e, 0x30, 0x41, 0x85,
0x6e, 0x1c, 0x56, 0xc4, 0x67, 0xa7, 0x5e, 0xcb, 0xed, 0x5c, 0xfa, 0x10, 0x02, 0x3d, 0x09, 0x46,
0xca, 0xda, 0xa3, 0xd7, 0xaa, 0xd2, 0x95, 0x63, 0xc7, 0x0d, 0x81, 0xc5, 0x3e, 0xa8, 0x9b, 0x9e,
0x5b, 0x2e, 0xb8, 0xa0, 0xcd, 0x7c, 0xaa, 0x76, 0x33, 0x55, 0x39, 0x8f, 0x2e, 0xd5, 0x47, 0xfe,
0xae, 0xff, 0x35, 0x15, 0x1b, 0x39, 0x54, 0xb7, 0xeb, 0x33, 0x7d, 0x6a, 0x7d, 0xcc, 0xf7, 0xf2,
0x2b, 0x37, 0x75, 0xfc, 0x4d, 0x5c, 0xca, 0xbb, 0x85, 0x69, 0x54, 0x4e, 0x2f, 0x19, 0xdf, 0x58,
0x6e, 0xc2, 0x4a, 0x9b, 0x3e, 0x84, 0xae, 0xc9, 0x2a, 0xc3, 0xc0, 0xf4, 0xee, 0x66, 0x43, 0x0d,
0x77, 0xc7, 0x7a, 0x9c, 0x5c, 0x93, 0x77, 0xec, 0x38, 0x59, 0x8b, 0x1e, 0xc1, 0x20, 0x4a, 0x27,
0x85, 0x1a, 0xe1, 0xd7, 0x71, 0x1a, 0xab, 0x38, 0x4b, 0x65, 0xd8, 0x35, 0xa1, 0x1e, 0xd4, 0x15,
0xcd, 0x30, 0xf8, 0x9c, 0x0b, 0xfb, 0x89, 0xc0, 0x66, 0x03, 0x5c, 0x72, 0x69, 0xaf, 0xb7, 0xb5,
0x5a, 0xef, 0xbb, 0xd0, 0x7d, 0x1a, 0x63, 0x72, 0x21, 0xc3, 0xb6, 0x21, 0x0e, 0x97, 0xaa, 0x31,
0x34, 0xee, 0xd8, 0xec, 0x57, 0x02, 0x5b, 0x8b, 0x08, 0x0b, 0xd5, 0x0c, 0x01, 0x3e, 0xcf, 0xe3,
0xb1, 0xc8, 0xa7, 0x9f, 0xe0, 0xd4, 0xad, 0xe7, 0x1a, 0x42, 0xbf, 0x84, 0xfb, 0x8d, 0x58, 0x1f,
0x9f, 0xdb, 0x12, 0x59, 0x51, 0x6f, 0x2c, 0x15, 0x65, 0x79, 0x7c, 0x89, 0x3b, 0xfb, 0x87, 0xc0,
0xeb, 0x0b, 0x8f, 0xaa, 0x7e, 0x24, 0xf5, 0xd6, 0xdf, 0x87, 0xc1, 0x0b, 0xbd, 0x2a, 0x46, 0x28,
0x55, 0x9c, 0x0a, 0xcd, 0x74, 0x0d, 0x3b, 0x87, 0xd3, 0x08, 0x7a, 0x06, 0x3b, 0x11, 0x13, 0x27,
0xf3, 0xed, 0x5b, 0x64, 0x1e, 0x78, 0xbe, 0xdd, 0x69, 0xa5, 0xbb, 0x16, 0x63, 0xb6, 0xae, 0x5f,
0xe1, 0xc6, 0xd8, 0x7e, 0x0c, 0xeb, 0x33, 0x0e, 0x77, 0xda, 0x73, 0x3f, 0x12, 0xd8, 0xf1, 0xcb,
0x65, 0x46, 0xca, 0xea, 0x31, 0xf5, 0xaf, 0xd7, 0xaa, 0xbd, 0xde, 0xfb, 0x00, 0x95, 0xbb, 0xdb,
0x0a, 0x2b, 0x9a, 0xb6, 0x46, 0x66, 0xc7, 0xb0, 0xe3, 0xb7, 0xe1, 0xff, 0x13, 0xc1, 0x04, 0xc0,
0xb3, 0xec, 0x02, 0x4f, 0x95, 0x50, 0x85, 0xd4, 0x8c, 0xe3, 0x4c, 0x2a, 0xdf, 0x64, 0xfa, 0xdb,
0x6c, 0x6b, 0x25, 0x54, 0xb9, 0x61, 0x8c, 0x41, 0xdf, 0x82, 0x57, 0x4d, 0x50, 0xf4, 0xbd, 0xb4,
0xd9, 0x58, 0x00, 0xdc, 0x9f, 0xb3, 0xc7, 0xb0, 0x7e, 0x98, 0x14, 0x52, 0x61, 0xee, 0xb2, 0xec,
0x43, 0x47, 0xe7, 0xf4, 0xbf, 0x57, 0x5b, 0x95, 0x67, 0x25, 0x85, 0x5b, 0xca, 0x93, 0xc1, 0xef,
0x37, 0x43, 0xf2, 0xc7, 0xcd, 0x90, 0xfc, 0x79, 0x33, 0x24, 0x3f, 0xff, 0x35, 0x7c, 0xe5, 0xac,
0x6b, 0xfe, 0x23, 0xbd, 0xf3, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x15, 0xa7, 0xba, 0xef, 0x34,
0x09, 0x00, 0x00,
}

View file

@ -89,10 +89,10 @@ message InputDefinition {
message InputDefinitionField {
string Name = 1;
bool PrimaryKey = 2;
repeated Action Actions = 3;
repeated InputDefinitionAction InputDefinitionActions = 3;
}
message Action {
message InputDefinitionAction {
string Frame = 1;
string ValueDestination = 2;
map<string, uint64> ValueMap = 3;