logstash-codec-protobuf 1.2.1 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/README.md +73 -17
- data/docs/index.asciidoc +96 -23
- data/lib/logstash/codecs/protobuf.rb +262 -84
- data/logstash-codec-protobuf.gemspec +1 -1
- data/spec/codecs/{protobuf_spec.rb → pb2_spec.rb} +0 -0
- data/spec/codecs/{protobuf3_spec.rb → pb3_decode_spec.rb} +7 -75
- data/spec/codecs/pb3_encode_spec.rb +220 -0
- data/spec/helpers/pb3/ReservationEntry_pb.rb +64 -0
- data/spec/helpers/pb3/rum2_pb.rb +87 -0
- data/spec/helpers/pb3/rum3_pb.rb +87 -0
- data/spec/helpers/pb3/rum_pb.rb +87 -0
- metadata +16 -6
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
|
3
3
|
s.name = 'logstash-codec-protobuf'
|
4
|
-
s.version = '1.2.
|
4
|
+
s.version = '1.2.2'
|
5
5
|
s.licenses = ['Apache License (2.0)']
|
6
6
|
s.summary = "Reads protobuf messages and converts to Logstash Events"
|
7
7
|
s.description = "This gem is a logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/plugin install gemname. This gem is not a stand-alone program"
|
File without changes
|
@@ -82,7 +82,7 @@ describe LogStash::Codecs::Protobuf do
|
|
82
82
|
"class_name" => "Unicorn", "include_path" => [pb_include_path + '/pb3/unicorn_pb.rb'], "protobuf_version" => 3)
|
83
83
|
}
|
84
84
|
|
85
|
-
it "should return an event from protobuf
|
85
|
+
it "should return an event from protobuf data" do
|
86
86
|
|
87
87
|
unicorn_class = Google::Protobuf::DescriptorPool.generated_pool.lookup("Unicorn").msgclass
|
88
88
|
data = {:name => 'Pinkie', :age => 18, :is_pegasus => false, :favourite_numbers => [4711,23], :fur_colour => Colour::PINK,
|
@@ -107,7 +107,7 @@ describe LogStash::Codecs::Protobuf do
|
|
107
107
|
#### Test case 2: decode nested protobuf ####################################################################################################################
|
108
108
|
let(:plugin_unicorn) { LogStash::Codecs::Protobuf.new("class_name" => "Unicorn", "include_path" => [pb_include_path + '/pb3/unicorn_pb.rb'], "protobuf_version" => 3) }
|
109
109
|
|
110
|
-
it "should return an event from protobuf
|
110
|
+
it "should return an event from protobuf data with nested classes" do
|
111
111
|
father = unicorn_class.new({:name=> "Sparkle", :age => 50, :fur_colour => 3 })
|
112
112
|
data = {:name => 'Glitter', :fur_colour => Colour::GLITTER, :father => father}
|
113
113
|
|
@@ -134,7 +134,7 @@ describe LogStash::Codecs::Protobuf do
|
|
134
134
|
plugin_3.register
|
135
135
|
end
|
136
136
|
|
137
|
-
it "should return an event from protobuf
|
137
|
+
it "should return an event from protobuf data with nested classes" do
|
138
138
|
|
139
139
|
probe_result_class = Google::Protobuf::DescriptorPool.generated_pool.lookup("ProbeResult").msgclass
|
140
140
|
ping_result_class = Google::Protobuf::DescriptorPool.generated_pool.lookup("PingIPv4Result").msgclass
|
@@ -166,7 +166,7 @@ describe LogStash::Codecs::Protobuf do
|
|
166
166
|
plugin_4.register
|
167
167
|
end
|
168
168
|
|
169
|
-
it "should return an event from protobuf
|
169
|
+
it "should return an event from protobuf data with nested classes" do
|
170
170
|
|
171
171
|
|
172
172
|
pbdns_message_class = Google::Protobuf::DescriptorPool.generated_pool.lookup("PBDNSMessage").msgclass
|
@@ -247,7 +247,7 @@ describe LogStash::Codecs::Protobuf do
|
|
247
247
|
plugin_5.register
|
248
248
|
end
|
249
249
|
|
250
|
-
it "should return an event from protobuf
|
250
|
+
it "should return an event from protobuf data with nested classes" do
|
251
251
|
integertest_class = Google::Protobuf::DescriptorPool.generated_pool.lookup("com.foo.bar.IntegerTestMessage").msgclass
|
252
252
|
integertest_object = integertest_class.new({:response_time => 500})
|
253
253
|
bin = integertest_class.encode(integertest_object)
|
@@ -283,7 +283,7 @@ describe LogStash::Codecs::Protobuf do
|
|
283
283
|
plugin.execution_context = execution_context
|
284
284
|
end
|
285
285
|
|
286
|
-
it "should return an event from protobuf
|
286
|
+
it "should return an event from protobuf data" do
|
287
287
|
|
288
288
|
header_class = Google::Protobuf::DescriptorPool.generated_pool.lookup("Header").msgclass
|
289
289
|
header_data = {:name => {'a' => 'b'}}
|
@@ -303,75 +303,7 @@ describe LogStash::Codecs::Protobuf do
|
|
303
303
|
end # context
|
304
304
|
|
305
305
|
|
306
|
-
context "#encodePB3-a" do
|
307
306
|
|
308
|
-
#### Test case 3: encode simple protobuf ####################################################################################################################
|
309
|
-
|
310
|
-
require_relative '../helpers/pb3/unicorn_pb.rb'
|
311
|
-
|
312
|
-
subject do
|
313
|
-
next LogStash::Codecs::Protobuf.new("class_name" => "Unicorn", "include_path" => [pb_include_path + '/pb3/unicorn_pb.rb'], "protobuf_version" => 3)
|
314
|
-
end
|
315
|
-
|
316
|
-
event3 = LogStash::Event.new("name" => "Pinkie", "age" => 18, "is_pegasus" => false, "favourite_numbers" => [1,2,3], "fur_colour" => Colour::PINK, "favourite_colours" => [1,5] )
|
317
|
-
|
318
|
-
it "should return protobuf encoded data for testcase 3" do
|
319
|
-
|
320
|
-
subject.on_event do |event, data|
|
321
|
-
insist { data.is_a? String }
|
322
|
-
|
323
|
-
pb_builder = Google::Protobuf::DescriptorPool.generated_pool.lookup("Unicorn").msgclass
|
324
|
-
decoded_data = pb_builder.decode(data)
|
325
|
-
expect(decoded_data.name ).to eq(event.get("name") )
|
326
|
-
expect(decoded_data.age ).to eq(event.get("age") )
|
327
|
-
expect(decoded_data.is_pegasus ).to eq(event.get("is_pegasus") )
|
328
|
-
expect(decoded_data.fur_colour ).to eq(:PINK)
|
329
|
-
expect(decoded_data.favourite_numbers ).to eq(event.get("favourite_numbers") )
|
330
|
-
expect(decoded_data.favourite_colours ).to eq([:BLUE,:WHITE] )
|
331
|
-
end # subject.on_event
|
332
|
-
|
333
|
-
subject.encode(event3)
|
334
|
-
end # it
|
335
|
-
|
336
|
-
end # context
|
337
|
-
|
338
|
-
context "#encodePB3-b" do
|
339
|
-
|
340
|
-
#### Test case 4: encode nested protobuf ####################################################################################################################
|
341
|
-
|
342
|
-
require_relative '../helpers/pb3/unicorn_pb.rb'
|
343
|
-
|
344
|
-
subject do
|
345
|
-
next LogStash::Codecs::Protobuf.new("class_name" => "Unicorn", "include_path" => [pb_include_path + '/pb3/unicorn_pb.rb'], "protobuf_version" => 3)
|
346
|
-
end
|
347
|
-
|
348
|
-
event4 = LogStash::Event.new("name" => "Horst", "age" => 23, "is_pegasus" => true, "mother" => \
|
349
|
-
{"name" => "Mom", "age" => 47}, "father" => {"name"=> "Daddy", "age"=> 50, "fur_colour" => 3 } # 3 == SILVER
|
350
|
-
)
|
351
|
-
|
352
|
-
it "should return protobuf encoded data for testcase 4" do
|
353
|
-
|
354
|
-
subject.on_event do |event, data|
|
355
|
-
insist { data.is_a? String }
|
356
|
-
|
357
|
-
pb_builder = Google::Protobuf::DescriptorPool.generated_pool.lookup("Unicorn").msgclass
|
358
|
-
decoded_data = pb_builder.decode(data)
|
359
|
-
|
360
|
-
expect(decoded_data.name ).to eq(event.get("name") )
|
361
|
-
expect(decoded_data.age ).to eq(event.get("age") )
|
362
|
-
expect(decoded_data.is_pegasus ).to eq(event.get("is_pegasus") )
|
363
|
-
expect(decoded_data.mother.name ).to eq(event.get("mother")["name"] )
|
364
|
-
expect(decoded_data.mother.age ).to eq(event.get("mother")["age"] )
|
365
|
-
expect(decoded_data.father.name ).to eq(event.get("father")["name"] )
|
366
|
-
expect(decoded_data.father.age ).to eq(event.get("father")["age"] )
|
367
|
-
expect(decoded_data.father.fur_colour ).to eq(:SILVER)
|
368
|
-
|
369
|
-
|
370
|
-
end # subject4.on_event
|
371
|
-
subject.encode(event4)
|
372
|
-
end # it
|
373
|
-
|
374
|
-
end # context #encodePB3
|
375
307
|
|
376
308
|
|
377
309
|
|
@@ -383,7 +315,7 @@ describe LogStash::Codecs::Protobuf do
|
|
383
315
|
plugin_7.register
|
384
316
|
end
|
385
317
|
|
386
|
-
it "should return an event from protobuf
|
318
|
+
it "should return an event from protobuf data with repeated top level objects" do
|
387
319
|
event_class = Google::Protobuf::DescriptorPool.generated_pool.lookup("RepeatedEvent").msgclass # TODO this shouldnt be necessary because the classes are already
|
388
320
|
# specified at the end of the _pb.rb files
|
389
321
|
events_class = Google::Protobuf::DescriptorPool.generated_pool.lookup("RepeatedEvents").msgclass
|
@@ -0,0 +1,220 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
# encoding: utf-8
|
6
|
+
require "logstash/devutils/rspec/spec_helper"
|
7
|
+
require "logstash/codecs/protobuf"
|
8
|
+
require "logstash/event"
|
9
|
+
require "insist"
|
10
|
+
|
11
|
+
require 'google/protobuf' # for protobuf3
|
12
|
+
|
13
|
+
# absolute path to the protobuf helpers directory
|
14
|
+
pb_include_path = File.expand_path(".") + "/spec/helpers"
|
15
|
+
|
16
|
+
describe LogStash::Codecs::Protobuf do
|
17
|
+
|
18
|
+
context "#encodePB3-a" do
|
19
|
+
|
20
|
+
#### Test case 1: encode simple protobuf ####################################################################################################################
|
21
|
+
|
22
|
+
require_relative '../helpers/pb3/unicorn_pb.rb'
|
23
|
+
|
24
|
+
subject do
|
25
|
+
next LogStash::Codecs::Protobuf.new("class_name" => "Unicorn", "include_path" => [pb_include_path + '/pb3/unicorn_pb.rb'], "protobuf_version" => 3)
|
26
|
+
end
|
27
|
+
|
28
|
+
event1 = LogStash::Event.new("name" => "Pinkie", "age" => 18, "is_pegasus" => false, "favourite_numbers" => [1,2,3], "fur_colour" => Colour::PINK, "favourite_colours" => [1,5] )
|
29
|
+
|
30
|
+
it "should return protobuf encoded data for testcase 1" do
|
31
|
+
|
32
|
+
subject.on_event do |event, data|
|
33
|
+
insist { data.is_a? String }
|
34
|
+
|
35
|
+
pb_builder = Google::Protobuf::DescriptorPool.generated_pool.lookup("Unicorn").msgclass
|
36
|
+
decoded_data = pb_builder.decode(data)
|
37
|
+
expect(decoded_data.name ).to eq(event.get("name") )
|
38
|
+
expect(decoded_data.age ).to eq(event.get("age") )
|
39
|
+
expect(decoded_data.is_pegasus ).to eq(event.get("is_pegasus") )
|
40
|
+
expect(decoded_data.fur_colour ).to eq(:PINK)
|
41
|
+
expect(decoded_data.favourite_numbers ).to eq(event.get("favourite_numbers") )
|
42
|
+
expect(decoded_data.favourite_colours ).to eq([:BLUE,:WHITE] )
|
43
|
+
end # subject.on_event
|
44
|
+
|
45
|
+
subject.encode(event1)
|
46
|
+
end # it
|
47
|
+
|
48
|
+
end # context
|
49
|
+
|
50
|
+
context "#encodePB3-b" do
|
51
|
+
|
52
|
+
#### Test case 2: encode nested protobuf ####################################################################################################################
|
53
|
+
|
54
|
+
require_relative '../helpers/pb3/unicorn_pb.rb'
|
55
|
+
|
56
|
+
subject do
|
57
|
+
next LogStash::Codecs::Protobuf.new("class_name" => "Unicorn", "include_path" => [pb_include_path + '/pb3/unicorn_pb.rb'], "protobuf_version" => 3)
|
58
|
+
end
|
59
|
+
|
60
|
+
event = LogStash::Event.new("name" => "Horst", "age" => 23, "is_pegasus" => true, "mother" => \
|
61
|
+
{"name" => "Mom", "age" => 47}, "father" => {"name"=> "Daddy", "age"=> 50, "fur_colour" => 3 } # 3 == SILVER
|
62
|
+
)
|
63
|
+
|
64
|
+
it "should return protobuf encoded data for testcase 2" do
|
65
|
+
|
66
|
+
subject.on_event do |event, data|
|
67
|
+
insist { data.is_a? String }
|
68
|
+
|
69
|
+
pb_builder = Google::Protobuf::DescriptorPool.generated_pool.lookup("Unicorn").msgclass
|
70
|
+
decoded_data = pb_builder.decode(data)
|
71
|
+
|
72
|
+
expect(decoded_data.name ).to eq(event.get("name") )
|
73
|
+
expect(decoded_data.age ).to eq(event.get("age") )
|
74
|
+
expect(decoded_data.is_pegasus ).to eq(event.get("is_pegasus") )
|
75
|
+
expect(decoded_data.mother.name ).to eq(event.get("mother")["name"] )
|
76
|
+
expect(decoded_data.mother.age ).to eq(event.get("mother")["age"] )
|
77
|
+
expect(decoded_data.father.name ).to eq(event.get("father")["name"] )
|
78
|
+
expect(decoded_data.father.age ).to eq(event.get("father")["age"] )
|
79
|
+
expect(decoded_data.father.fur_colour ).to eq(:SILVER)
|
80
|
+
|
81
|
+
|
82
|
+
end # subject4.on_event
|
83
|
+
subject.encode(event)
|
84
|
+
end # it
|
85
|
+
|
86
|
+
end # context #encodePB3
|
87
|
+
|
88
|
+
context "encodePB3-c" do
|
89
|
+
|
90
|
+
#### Test case 3: encode nested protobuf ####################################################################################################################
|
91
|
+
|
92
|
+
|
93
|
+
subject do
|
94
|
+
next LogStash::Codecs::Protobuf.new("class_name" => "something.rum_akamai.ProtoAkamaiRum", "include_path" => [pb_include_path + '/pb3/rum_pb.rb' ], "protobuf_version" => 3)
|
95
|
+
end
|
96
|
+
|
97
|
+
event = LogStash::Event.new(
|
98
|
+
"user_agent"=>{"os"=>"Android OS", "family"=>"Chrome Mobile", "major"=>74, "mobile"=>"1", "minor"=>0, "manufacturer"=>"Samsung", "osversion"=>"8",
|
99
|
+
"model"=>"Galaxy S7 Edge", "type"=>"Mobile",
|
100
|
+
"raw"=>"Mozilla/5.0 (Linux; Android 8.0.0; SM-G935F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Mobile Safari/537.36"},
|
101
|
+
"dom"=>{"script"=>65, "ln"=>2063, "ext"=>47}, "page_group"=>"SEO-Pages",
|
102
|
+
"active_ctests"=>["1443703219", "47121", "47048", "46906"], "timestamp"=>"1559566982508",
|
103
|
+
"geo"=>{"isp"=>"Telecom Italia Mobile", "lat"=>45.4643, "postalcode"=>"20123", "netspeed"=>"Cellular", "rg"=>"MI", "cc"=>"IT",
|
104
|
+
"organisation"=>"Telecom Italia Mobile", "ovr"=>false, "city"=>"Milan", "lon"=>9.1895},
|
105
|
+
"header"=>{"sender_id"=>"0"}, "domain"=>"something.com", "url"=>"https://www.something.it/",
|
106
|
+
"timers"=>{"tti"=>4544, "ttvr"=>3657, "fcp"=>2683, "ttfi"=>4280, "fid"=>31, "longtasks"=>2519, "t_resp"=>1748}
|
107
|
+
)
|
108
|
+
|
109
|
+
it "should return protobuf encoded data for testcase 3" do
|
110
|
+
|
111
|
+
subject.on_event do |event, data|
|
112
|
+
insist { data.is_a? String }
|
113
|
+
|
114
|
+
pb_builder = Google::Protobuf::DescriptorPool.generated_pool.lookup("something.rum_akamai.ProtoAkamaiRum").msgclass
|
115
|
+
decoded_data = pb_builder.decode(data)
|
116
|
+
|
117
|
+
expect(decoded_data.domain ).to eq(event.get("domain") )
|
118
|
+
expect(decoded_data.dom.ext ).to eq(event.get("dom")["ext"] )
|
119
|
+
expect(decoded_data.user_agent.type ).to eq(event.get("user_agent")["type"] )
|
120
|
+
expect(decoded_data.geo.rg ).to eq(event.get("geo")["rg"] )
|
121
|
+
|
122
|
+
|
123
|
+
end # subject4.on_event
|
124
|
+
subject.encode(event)
|
125
|
+
end # it
|
126
|
+
end # context #encodePB3-c
|
127
|
+
|
128
|
+
|
129
|
+
context "encodePB3-d" do
|
130
|
+
|
131
|
+
#### Test case 3: autoconvert data types ####################################################################################################################
|
132
|
+
|
133
|
+
|
134
|
+
subject do
|
135
|
+
next LogStash::Codecs::Protobuf.new("class_name" => "something.rum_akamai.ProtoAkamai2Rum",
|
136
|
+
"pb3_encoder_autoconvert_types" => true,
|
137
|
+
"include_path" => [pb_include_path + '/pb3/rum2_pb.rb' ], "protobuf_version" => 3)
|
138
|
+
end
|
139
|
+
|
140
|
+
event = LogStash::Event.new(
|
141
|
+
|
142
|
+
# major should autoconvert to float
|
143
|
+
"user_agent"=>{"minor"=>0,"major"=>"74"},
|
144
|
+
|
145
|
+
# ext should autoconvert to int. script being empty should be ignored.
|
146
|
+
"dom"=>{"script"=>nil, "ln"=>2063, "ext"=>47.0},
|
147
|
+
|
148
|
+
# ovr should autoconvert to Boolean
|
149
|
+
"geo"=>{"ovr"=>"false"},
|
150
|
+
|
151
|
+
# sender_id should autoconvert to string
|
152
|
+
"header"=>{"sender_id"=>1},
|
153
|
+
"domain" => "www",
|
154
|
+
|
155
|
+
# should autoconvert to string
|
156
|
+
"http_referer" => 1234,
|
157
|
+
)
|
158
|
+
|
159
|
+
|
160
|
+
it "should fix datatypes to match the protobuf definition" do
|
161
|
+
|
162
|
+
subject.on_event do |event, data|
|
163
|
+
insist { data.is_a? String }
|
164
|
+
|
165
|
+
pb_builder = Google::Protobuf::DescriptorPool.generated_pool.lookup("something.rum_akamai.ProtoAkamai2Rum").msgclass
|
166
|
+
decoded_data = pb_builder.decode(data)
|
167
|
+
expect(decoded_data.domain ).to eq(event.get("domain") )
|
168
|
+
expect(decoded_data.user_agent.major).to eq(74)
|
169
|
+
expect(decoded_data.dom.ext).to eq(47)
|
170
|
+
expect(decoded_data.geo.ovr).to eq(false)
|
171
|
+
expect(decoded_data.header.sender_id).to eq("1")
|
172
|
+
expect(decoded_data.http_referer).to eq("1234")
|
173
|
+
|
174
|
+
end
|
175
|
+
subject.encode(event)
|
176
|
+
end # it
|
177
|
+
|
178
|
+
end # context #encodePB3-d
|
179
|
+
|
180
|
+
|
181
|
+
context "encodePB3-e" do
|
182
|
+
|
183
|
+
#### Test case 4: handle nil data ####################################################################################################################
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
subject do
|
188
|
+
next LogStash::Codecs::Protobuf.new("class_name" => "something.rum_akamai.ProtoAkamai3Rum",
|
189
|
+
"pb3_encoder_autoconvert_types" => false,
|
190
|
+
"include_path" => [pb_include_path + '/pb3/rum3_pb.rb' ], "protobuf_version" => 3)
|
191
|
+
end
|
192
|
+
|
193
|
+
event = LogStash::Event.new(
|
194
|
+
"domain" => nil,
|
195
|
+
"header" => {"sender_id" => "23"},
|
196
|
+
"geo"=>{"organisation"=>"Jio", "rg"=>"DL", "netspeed"=>nil, "city"=>nil, "cc"=>"IN", "ovr"=>false, "postalcode"=>"110012", "isp"=>"Jio"}
|
197
|
+
)
|
198
|
+
|
199
|
+
it "should ignore empty fields" do
|
200
|
+
|
201
|
+
subject.on_event do |event, data|
|
202
|
+
insist { data.is_a? String }
|
203
|
+
|
204
|
+
pb_builder = Google::Protobuf::DescriptorPool.generated_pool.lookup("something.rum_akamai.ProtoAkamai3Rum").msgclass
|
205
|
+
decoded_data = pb_builder.decode(data)
|
206
|
+
expect(decoded_data.geo.organisation ).to eq(event.get("geo")["organisation"])
|
207
|
+
expect(decoded_data.geo.ovr ).to eq(event.get("geo")["ovr"])
|
208
|
+
expect(decoded_data.geo.postalcode ).to eq(event.get("geo")["postalcode"])
|
209
|
+
expect(decoded_data.header.sender_id ).to eq(event.get("header")['sender_id'] )
|
210
|
+
|
211
|
+
end
|
212
|
+
subject.encode(event)
|
213
|
+
end # it
|
214
|
+
|
215
|
+
end # context #encodePB3-e
|
216
|
+
|
217
|
+
|
218
|
+
|
219
|
+
|
220
|
+
end # describe
|
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'google/protobuf'
|
2
|
+
|
3
|
+
Google::Protobuf::DescriptorPool.generated_pool.build do
|
4
|
+
add_message "bk.sk.pk.reservations.proto.types.v0.ReservationEntry" do
|
5
|
+
optional :id, :string, 1
|
6
|
+
optional :internalAccountId, :string, 2
|
7
|
+
optional :state, :enum, 3, "bk.sk.pk.reservations.proto.types.v0.ReservationState"
|
8
|
+
optional :instructedAmount, :message, 4, "bk.sk.pk.reservations.proto.types.v0.InstructedAmount"
|
9
|
+
optional :lifetime, :message, 5, "bk.sk.pk.reservations.proto.types.v0.Lifetime"
|
10
|
+
optional :requestor, :message, 6, "bk.sk.pk.reservations.proto.types.v0.Requestor"
|
11
|
+
optional :description, :message, 7, "bk.sk.pk.reservations.proto.types.v0.Description"
|
12
|
+
optional :forceMarker, :bool, 8
|
13
|
+
optional :creationTimestamp, :string, 9
|
14
|
+
end
|
15
|
+
add_message "bk.sk.pk.reservations.proto.types.v0.Requestor" do
|
16
|
+
optional :productCode, :string, 1
|
17
|
+
optional :systemCode, :string, 2
|
18
|
+
optional :init, :string, 3
|
19
|
+
end
|
20
|
+
add_message "bk.sk.pk.reservations.proto.types.v0.Lifetime" do
|
21
|
+
optional :startDateTime, :string, 1
|
22
|
+
optional :endDateTime, :string, 2
|
23
|
+
end
|
24
|
+
add_message "bk.sk.pk.reservations.proto.types.v0.InstructedAmount" do
|
25
|
+
optional :amount, :message, 1, "bk.sk.pk.reservations.proto.types.v0.DecimalNumber"
|
26
|
+
optional :currency, :string, 2
|
27
|
+
end
|
28
|
+
add_message "bk.sk.pk.reservations.proto.types.v0.DecimalNumber" do
|
29
|
+
optional :unscaledValue, :int64, 1
|
30
|
+
optional :scale, :int32, 2
|
31
|
+
end
|
32
|
+
add_message "bk.sk.pk.reservations.proto.types.v0.Description" do
|
33
|
+
optional :text1, :string, 1
|
34
|
+
optional :text2, :string, 2
|
35
|
+
end
|
36
|
+
add_enum "bk.sk.pk.reservations.proto.types.v0.ReservationState" do
|
37
|
+
value :RESERVED, 0
|
38
|
+
value :CANCELED, 1
|
39
|
+
value :CONSUMED, 2
|
40
|
+
value :EXPIRED, 3
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
module Bk
|
45
|
+
module Sk
|
46
|
+
module Pk
|
47
|
+
module Reservations
|
48
|
+
module Proto
|
49
|
+
module Types
|
50
|
+
module V0
|
51
|
+
ReservationEntry = Google::Protobuf::DescriptorPool.generated_pool.lookup("bk.sk.pk.reservations.proto.types.v0.ReservationEntry").msgclass
|
52
|
+
Requestor = Google::Protobuf::DescriptorPool.generated_pool.lookup("bk.sk.pk.reservations.proto.types.v0.Requestor").msgclass
|
53
|
+
Lifetime = Google::Protobuf::DescriptorPool.generated_pool.lookup("bk.sk.pk.reservations.proto.types.v0.Lifetime").msgclass
|
54
|
+
InstructedAmount = Google::Protobuf::DescriptorPool.generated_pool.lookup("bk.sk.pk.reservations.proto.types.v0.InstructedAmount").msgclass
|
55
|
+
DecimalNumber = Google::Protobuf::DescriptorPool.generated_pool.lookup("bk.sk.pk.reservations.proto.types.v0.DecimalNumber").msgclass
|
56
|
+
Description = Google::Protobuf::DescriptorPool.generated_pool.lookup("bk.sk.pk.reservations.proto.types.v0.Description").msgclass
|
57
|
+
ReservationState = Google::Protobuf::DescriptorPool.generated_pool.lookup("bk.sk.pk.reservations.proto.types.v0.ReservationState").enummodule
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
2
|
+
# source: something/rum_akamai/AkamaiRum.proto
|
3
|
+
|
4
|
+
begin; require 'google/protobuf'; rescue LoadError; end
|
5
|
+
|
6
|
+
Google::Protobuf::DescriptorPool.generated_pool.build do
|
7
|
+
add_message "something.logging.ProtoHeader2" do
|
8
|
+
optional :unix_timestamp, :int64, 1
|
9
|
+
optional :sender_id, :string, 2
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
module Something
|
14
|
+
module Logging
|
15
|
+
ProtoHeader2 = Google::Protobuf::DescriptorPool.generated_pool.lookup("something.logging.ProtoHeader2").msgclass
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
Google::Protobuf::DescriptorPool.generated_pool.build do
|
22
|
+
add_message "something.rum_akamai.ProtoAkamai2Rum" do
|
23
|
+
optional :header, :message, 1, "something.logging.ProtoHeader2"
|
24
|
+
optional :version, :string, 2
|
25
|
+
optional :url, :string, 3
|
26
|
+
optional :http_referer, :string, 4
|
27
|
+
optional :session_id, :string, 5
|
28
|
+
optional :tracking_id, :string, 6
|
29
|
+
optional :locale, :string, 7
|
30
|
+
optional :user_agent, :message, 8, "something.rum_akamai.ProtoAkamai2Rum.ProtoUserAgent"
|
31
|
+
optional :geo, :message, 9, "something.rum_akamai.ProtoAkamai2Rum.ProtoGeoLocation"
|
32
|
+
optional :timers, :message, 10, "something.rum_akamai.ProtoAkamai2Rum.ProtoTimers"
|
33
|
+
optional :page_group, :string, 11
|
34
|
+
repeated :active_ctests, :string, 12
|
35
|
+
optional :dom, :message, 13, "something.rum_akamai.ProtoAkamai2Rum.ProtoDom"
|
36
|
+
optional :domain, :string, 14
|
37
|
+
optional :timestamp, :string, 15
|
38
|
+
end
|
39
|
+
add_message "something.rum_akamai.ProtoAkamai2Rum.ProtoUserAgent" do
|
40
|
+
optional :family, :string, 1
|
41
|
+
optional :major, :float, 2
|
42
|
+
optional :manufacturer, :string, 3
|
43
|
+
optional :minor, :float, 4
|
44
|
+
optional :mobile, :string, 5
|
45
|
+
optional :model, :string, 6
|
46
|
+
optional :os, :string, 7
|
47
|
+
optional :osversion, :string, 8
|
48
|
+
optional :raw, :string, 9
|
49
|
+
optional :type, :string, 10
|
50
|
+
end
|
51
|
+
add_message "something.rum_akamai.ProtoAkamai2Rum.ProtoGeoLocation" do
|
52
|
+
optional :cc, :string, 1
|
53
|
+
optional :city, :string, 2
|
54
|
+
optional :isp, :string, 3
|
55
|
+
optional :lat, :float, 4
|
56
|
+
optional :lon, :float, 5
|
57
|
+
optional :netspeed, :string, 6
|
58
|
+
optional :organisation, :string, 7
|
59
|
+
optional :ovr, :bool, 8
|
60
|
+
optional :postalcode, :string, 9
|
61
|
+
optional :rg, :string, 10
|
62
|
+
end
|
63
|
+
add_message "something.rum_akamai.ProtoAkamai2Rum.ProtoTimers" do
|
64
|
+
optional :t_resp, :int32, 1
|
65
|
+
optional :fid, :int32, 2
|
66
|
+
optional :fcp, :int32, 3
|
67
|
+
optional :tti, :int32, 4
|
68
|
+
optional :ttfi, :int32, 5
|
69
|
+
optional :ttvr, :int32, 6
|
70
|
+
optional :longtasks, :float, 7
|
71
|
+
end
|
72
|
+
add_message "something.rum_akamai.ProtoAkamai2Rum.ProtoDom" do
|
73
|
+
optional :script, :int32, 1
|
74
|
+
optional :ext, :int32, 2
|
75
|
+
optional :ln, :int32, 3
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
module Something
|
80
|
+
module RumAkamai
|
81
|
+
ProtoAkamai2Rum = Google::Protobuf::DescriptorPool.generated_pool.lookup("something.rum_akamai.ProtoAkamai2Rum").msgclass
|
82
|
+
ProtoAkamai2Rum::ProtoUserAgent = Google::Protobuf::DescriptorPool.generated_pool.lookup("something.rum_akamai.ProtoAkamai2Rum.ProtoUserAgent").msgclass
|
83
|
+
ProtoAkamai2Rum::ProtoGeoLocation = Google::Protobuf::DescriptorPool.generated_pool.lookup("something.rum_akamai.ProtoAkamai2Rum.ProtoGeoLocation").msgclass
|
84
|
+
ProtoAkamai2Rum::ProtoTimers = Google::Protobuf::DescriptorPool.generated_pool.lookup("something.rum_akamai.ProtoAkamai2Rum.ProtoTimers").msgclass
|
85
|
+
ProtoAkamai2Rum::ProtoDom = Google::Protobuf::DescriptorPool.generated_pool.lookup("something.rum_akamai.ProtoAkamai2Rum.ProtoDom").msgclass
|
86
|
+
end
|
87
|
+
end
|