deimos-ruby 2.1.2 → 2.1.4
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 +6 -0
- data/karafka.rb +71 -1
- data/lib/deimos/schema_backends/avro_schema_coercer.rb +2 -0
- data/lib/deimos/schema_class/record.rb +2 -2
- data/lib/deimos/version.rb +1 -1
- data/lib/generators/deimos/schema_class/templates/schema_enum.rb.tt +6 -3
- data/lib/generators/deimos/schema_class_generator.rb +10 -14
- data/regenerate_test_schema_classes.rb +0 -66
- data/spec/schemas/my_namespace/my_schema.rb +1 -1
- data/spec/schemas/my_namespace/my_updated_schema.rb +2 -1
- data/spec/snapshots/consumers-no-nest.snap +95 -45
- data/spec/snapshots/consumers.snap +107 -49
- data/spec/snapshots/consumers_and_producers-no-nest.snap +90 -67
- data/spec/snapshots/consumers_and_producers.snap +102 -71
- data/spec/snapshots/consumers_circular-no-nest.snap +95 -45
- data/spec/snapshots/consumers_circular.snap +107 -49
- data/spec/snapshots/consumers_complex_types-no-nest.snap +95 -45
- data/spec/snapshots/consumers_complex_types.snap +107 -49
- data/spec/snapshots/consumers_nested-no-nest.snap +88 -38
- data/spec/snapshots/consumers_nested.snap +100 -42
- data/spec/snapshots/namespace_folders.snap +106 -73
- data/spec/snapshots/namespace_map.snap +106 -73
- data/spec/snapshots/producers_with_key-no-nest.snap +97 -60
- data/spec/snapshots/producers_with_key.snap +109 -64
- metadata +2 -2
@@ -16,7 +16,8 @@ module Schemas; module MyNamespace
|
|
16
16
|
attr_accessor :a_record_field
|
17
17
|
|
18
18
|
# @override
|
19
|
-
def initialize(a_record_field: nil)
|
19
|
+
def initialize(_from_message: false, a_record_field: nil)
|
20
|
+
@_from_message = _from_message
|
20
21
|
super
|
21
22
|
self.a_record_field = a_record_field
|
22
23
|
end
|
@@ -41,13 +42,20 @@ module Schemas; module MyNamespace
|
|
41
42
|
|
42
43
|
# Autogenerated Schema for Enum at com.my-namespace.AnEnum
|
43
44
|
class AnEnum < Deimos::SchemaClass::Enum
|
44
|
-
# @return ['sym1', 'sym2']
|
45
|
-
attr_accessor :an_enum
|
46
|
-
|
47
45
|
# @override
|
48
46
|
def symbols
|
49
47
|
%w(sym1 sym2)
|
50
48
|
end
|
49
|
+
|
50
|
+
|
51
|
+
def sym1?
|
52
|
+
@value == 'sym1'
|
53
|
+
end
|
54
|
+
|
55
|
+
def sym2?
|
56
|
+
@value == 'sym2'
|
57
|
+
end
|
58
|
+
|
51
59
|
end
|
52
60
|
|
53
61
|
|
@@ -91,7 +99,7 @@ module Schemas; module MyNamespace
|
|
91
99
|
end
|
92
100
|
|
93
101
|
# @override
|
94
|
-
def initialize(a_string: nil,
|
102
|
+
def initialize(_from_message: false, a_string: nil,
|
95
103
|
a_int: nil,
|
96
104
|
a_long: nil,
|
97
105
|
a_float: nil,
|
@@ -103,6 +111,7 @@ module Schemas; module MyNamespace
|
|
103
111
|
timestamp: nil,
|
104
112
|
message_id: nil,
|
105
113
|
a_record: nil)
|
114
|
+
@_from_message = _from_message
|
106
115
|
super
|
107
116
|
self.a_string = a_string
|
108
117
|
self.a_int = a_int
|
@@ -128,13 +137,6 @@ module Schemas; module MyNamespace
|
|
128
137
|
'com.my-namespace'
|
129
138
|
end
|
130
139
|
|
131
|
-
def self.tombstone(key)
|
132
|
-
record = self.allocate
|
133
|
-
record.tombstone_key = key
|
134
|
-
record.a_string = key
|
135
|
-
record
|
136
|
-
end
|
137
|
-
|
138
140
|
# @override
|
139
141
|
def as_json(_opts={})
|
140
142
|
{
|
@@ -172,8 +174,9 @@ module Schemas; module MyNamespace
|
|
172
174
|
attr_accessor :some_int
|
173
175
|
|
174
176
|
# @override
|
175
|
-
def initialize(test_id: nil,
|
177
|
+
def initialize(_from_message: false, test_id: nil,
|
176
178
|
some_int: nil)
|
179
|
+
@_from_message = _from_message
|
177
180
|
super
|
178
181
|
self.test_id = test_id
|
179
182
|
self.some_int = some_int
|
@@ -224,10 +227,11 @@ module Schemas; module MyNamespace
|
|
224
227
|
attr_accessor :some_optional_int
|
225
228
|
|
226
229
|
# @override
|
227
|
-
def initialize(some_int: nil,
|
230
|
+
def initialize(_from_message: false, some_int: nil,
|
228
231
|
some_float: nil,
|
229
232
|
some_string: nil,
|
230
233
|
some_optional_int: nil)
|
234
|
+
@_from_message = _from_message
|
231
235
|
super
|
232
236
|
self.some_int = some_int
|
233
237
|
self.some_float = some_float
|
@@ -283,11 +287,12 @@ module Schemas; module MyNamespace
|
|
283
287
|
end
|
284
288
|
|
285
289
|
# @override
|
286
|
-
def initialize(test_id: nil,
|
290
|
+
def initialize(_from_message: false, test_id: nil,
|
287
291
|
test_float: nil,
|
288
292
|
test_array: nil,
|
289
293
|
some_nested_record: nil,
|
290
294
|
some_optional_record: nil)
|
295
|
+
@_from_message = _from_message
|
291
296
|
super
|
292
297
|
self.test_id = test_id
|
293
298
|
self.test_float = test_float
|
@@ -336,30 +341,19 @@ module Schemas; module MyNamespace
|
|
336
341
|
# Autogenerated Schema for Record at com.my-namespace.MySchema
|
337
342
|
class MySchema < Deimos::SchemaClass::Record
|
338
343
|
|
339
|
-
### Attribute Readers ###
|
340
|
-
# @return [MySchemaKey]
|
341
|
-
attr_reader :payload_key
|
342
|
-
|
343
344
|
### Attribute Accessors ###
|
344
345
|
# @return [String]
|
345
346
|
attr_accessor :test_id
|
346
347
|
# @return [Integer]
|
347
348
|
attr_accessor :some_int
|
348
349
|
|
349
|
-
### Attribute Writers ###
|
350
|
-
# @return [MySchemaKey]
|
351
|
-
def payload_key=(value)
|
352
|
-
@payload_key = MySchemaKey.initialize_from_value(value, from_message: self._from_message)
|
353
|
-
end
|
354
|
-
|
355
350
|
# @override
|
356
|
-
def initialize(test_id: nil,
|
357
|
-
some_int: nil
|
358
|
-
|
351
|
+
def initialize(_from_message: false, test_id: nil,
|
352
|
+
some_int: nil)
|
353
|
+
@_from_message = _from_message
|
359
354
|
super
|
360
355
|
self.test_id = test_id
|
361
356
|
self.some_int = some_int
|
362
|
-
self.payload_key = payload_key
|
363
357
|
end
|
364
358
|
|
365
359
|
# @override
|
@@ -372,19 +366,11 @@ module Schemas; module MyNamespace
|
|
372
366
|
'com.my-namespace'
|
373
367
|
end
|
374
368
|
|
375
|
-
def self.tombstone(key)
|
376
|
-
record = self.allocate
|
377
|
-
record.tombstone_key = MySchemaKey.initialize_from_value(key, from_message: self._from_message)
|
378
|
-
record.payload_key = key
|
379
|
-
record
|
380
|
-
end
|
381
|
-
|
382
369
|
# @override
|
383
370
|
def as_json(_opts={})
|
384
371
|
{
|
385
372
|
'test_id' => @test_id,
|
386
|
-
'some_int' => @some_int
|
387
|
-
'payload_key' => @payload_key&.as_json
|
373
|
+
'some_int' => @some_int
|
388
374
|
}
|
389
375
|
end
|
390
376
|
end
|
@@ -407,8 +393,9 @@ module Schemas; module MyNamespace
|
|
407
393
|
attr_accessor :part_two
|
408
394
|
|
409
395
|
# @override
|
410
|
-
def initialize(part_one: nil,
|
396
|
+
def initialize(_from_message: false, part_one: nil,
|
411
397
|
part_two: nil)
|
398
|
+
@_from_message = _from_message
|
412
399
|
super
|
413
400
|
self.part_one = part_one
|
414
401
|
self.part_two = part_two
|
@@ -449,7 +436,8 @@ module Schemas; module MyNamespace
|
|
449
436
|
attr_accessor :id
|
450
437
|
|
451
438
|
# @override
|
452
|
-
def initialize(id: nil)
|
439
|
+
def initialize(_from_message: false, id: nil)
|
440
|
+
@_from_message = _from_message
|
453
441
|
super
|
454
442
|
self.id = id
|
455
443
|
end
|
@@ -488,7 +476,8 @@ module Schemas; module MyNamespace
|
|
488
476
|
attr_accessor :test_id
|
489
477
|
|
490
478
|
# @override
|
491
|
-
def initialize(test_id: nil)
|
479
|
+
def initialize(_from_message: false, test_id: nil)
|
480
|
+
@_from_message = _from_message
|
492
481
|
super
|
493
482
|
self.test_id = test_id
|
494
483
|
end
|
@@ -529,8 +518,9 @@ module Schemas; module MyNamespace
|
|
529
518
|
attr_accessor :some_bool
|
530
519
|
|
531
520
|
# @override
|
532
|
-
def initialize(test_id: nil,
|
521
|
+
def initialize(_from_message: false, test_id: nil,
|
533
522
|
some_bool: nil)
|
523
|
+
@_from_message = _from_message
|
534
524
|
super
|
535
525
|
self.test_id = test_id
|
536
526
|
self.some_bool = some_bool
|
@@ -575,7 +565,8 @@ module Schemas; module MyNamespace
|
|
575
565
|
attr_accessor :property
|
576
566
|
|
577
567
|
# @override
|
578
|
-
def initialize(property: nil)
|
568
|
+
def initialize(_from_message: false, property: nil)
|
569
|
+
@_from_message = _from_message
|
579
570
|
super
|
580
571
|
self.property = property
|
581
572
|
end
|
@@ -612,7 +603,8 @@ module Schemas; module MyNamespace
|
|
612
603
|
end
|
613
604
|
|
614
605
|
# @override
|
615
|
-
def initialize(properties: {})
|
606
|
+
def initialize(_from_message: false, properties: {})
|
607
|
+
@_from_message = _from_message
|
616
608
|
super
|
617
609
|
self.properties = properties
|
618
610
|
end
|
@@ -655,7 +647,8 @@ module Schemas; module MyNamespace
|
|
655
647
|
attr_accessor :a_record_field
|
656
648
|
|
657
649
|
# @override
|
658
|
-
def initialize(a_record_field: nil)
|
650
|
+
def initialize(_from_message: false, a_record_field: nil)
|
651
|
+
@_from_message = _from_message
|
659
652
|
super
|
660
653
|
self.a_record_field = a_record_field
|
661
654
|
end
|
@@ -680,35 +673,56 @@ module Schemas; module MyNamespace
|
|
680
673
|
|
681
674
|
# Autogenerated Schema for Enum at com.my-namespace.AnEnum
|
682
675
|
class AnEnum < Deimos::SchemaClass::Enum
|
683
|
-
# @return ['sym1', 'sym2']
|
684
|
-
attr_accessor :an_enum
|
685
|
-
|
686
676
|
# @override
|
687
677
|
def symbols
|
688
678
|
%w(sym1 sym2)
|
689
679
|
end
|
680
|
+
|
681
|
+
|
682
|
+
def sym1?
|
683
|
+
@value == 'sym1'
|
684
|
+
end
|
685
|
+
|
686
|
+
def sym2?
|
687
|
+
@value == 'sym2'
|
688
|
+
end
|
689
|
+
|
690
690
|
end
|
691
691
|
|
692
692
|
# Autogenerated Schema for Enum at com.my-namespace.AnotherEnum
|
693
693
|
class AnotherEnum < Deimos::SchemaClass::Enum
|
694
|
-
# @return ['sym3', 'sym4']
|
695
|
-
attr_accessor :another_enum
|
696
|
-
|
697
694
|
# @override
|
698
695
|
def symbols
|
699
696
|
%w(sym3 sym4)
|
700
697
|
end
|
698
|
+
|
699
|
+
|
700
|
+
def sym3?
|
701
|
+
@value == 'sym3'
|
702
|
+
end
|
703
|
+
|
704
|
+
def sym4?
|
705
|
+
@value == 'sym4'
|
706
|
+
end
|
707
|
+
|
701
708
|
end
|
702
709
|
|
703
710
|
# Autogenerated Schema for Enum at com.my-namespace.YetAnotherEnum
|
704
711
|
class YetAnotherEnum < Deimos::SchemaClass::Enum
|
705
|
-
# @return ['sym5', 'sym6']
|
706
|
-
attr_accessor :yet_another_enum
|
707
|
-
|
708
712
|
# @override
|
709
713
|
def symbols
|
710
714
|
%w(sym5 sym6)
|
711
715
|
end
|
716
|
+
|
717
|
+
|
718
|
+
def sym5?
|
719
|
+
@value == 'sym5'
|
720
|
+
end
|
721
|
+
|
722
|
+
def sym6?
|
723
|
+
@value == 'sym6'
|
724
|
+
end
|
725
|
+
|
712
726
|
end
|
713
727
|
|
714
728
|
|
@@ -785,7 +799,7 @@ module Schemas; module MyNamespace
|
|
785
799
|
end
|
786
800
|
|
787
801
|
# @override
|
788
|
-
def initialize(test_id: nil,
|
802
|
+
def initialize(_from_message: false, test_id: nil,
|
789
803
|
test_float: nil,
|
790
804
|
test_string_array: ["test"],
|
791
805
|
test_int_array: [123],
|
@@ -798,6 +812,7 @@ module Schemas; module MyNamespace
|
|
798
812
|
some_enum_array: nil,
|
799
813
|
some_optional_enum: nil,
|
800
814
|
some_enum_with_default: "sym6")
|
815
|
+
@_from_message = _from_message
|
801
816
|
super
|
802
817
|
self.test_id = test_id
|
803
818
|
self.test_float = test_float
|
@@ -868,11 +883,12 @@ module Schemas; module MyNamespace
|
|
868
883
|
attr_accessor :timestamp
|
869
884
|
|
870
885
|
# @override
|
871
|
-
def initialize(test_id: nil,
|
886
|
+
def initialize(_from_message: false, test_id: nil,
|
872
887
|
updated_at: nil,
|
873
888
|
some_int: nil,
|
874
889
|
some_datetime_int: nil,
|
875
890
|
timestamp: nil)
|
891
|
+
@_from_message = _from_message
|
876
892
|
super
|
877
893
|
self.test_id = test_id
|
878
894
|
self.updated_at = updated_at
|
@@ -925,10 +941,11 @@ module Schemas; module MyNamespace
|
|
925
941
|
attr_accessor :timestamp
|
926
942
|
|
927
943
|
# @override
|
928
|
-
def initialize(test_id: nil,
|
944
|
+
def initialize(_from_message: false, test_id: nil,
|
929
945
|
some_int: nil,
|
930
946
|
message_id: nil,
|
931
947
|
timestamp: nil)
|
948
|
+
@_from_message = _from_message
|
932
949
|
super
|
933
950
|
self.test_id = test_id
|
934
951
|
self.some_int = some_int
|
@@ -977,9 +994,10 @@ module Schemas; module MyNamespace
|
|
977
994
|
attr_accessor :title
|
978
995
|
|
979
996
|
# @override
|
980
|
-
def initialize(test_id: nil,
|
997
|
+
def initialize(_from_message: false, test_id: nil,
|
981
998
|
some_int: nil,
|
982
999
|
title: nil)
|
1000
|
+
@_from_message = _from_message
|
983
1001
|
super
|
984
1002
|
self.test_id = test_id
|
985
1003
|
self.some_int = some_int
|
@@ -1028,8 +1046,9 @@ module Schemas; module MyNamespace
|
|
1028
1046
|
attr_accessor :record1_id
|
1029
1047
|
|
1030
1048
|
# @override
|
1031
|
-
def initialize(record1_map: {},
|
1049
|
+
def initialize(_from_message: false, record1_map: {},
|
1032
1050
|
record1_id: 0)
|
1051
|
+
@_from_message = _from_message
|
1033
1052
|
super
|
1034
1053
|
self.record1_map = record1_map
|
1035
1054
|
self.record1_id = record1_id
|
@@ -1062,7 +1081,8 @@ module Schemas; module MyNamespace
|
|
1062
1081
|
attr_accessor :record2_id
|
1063
1082
|
|
1064
1083
|
# @override
|
1065
|
-
def initialize(record2_id: "")
|
1084
|
+
def initialize(_from_message: false, record2_id: "")
|
1085
|
+
@_from_message = _from_message
|
1066
1086
|
super
|
1067
1087
|
self.record2_id = record2_id
|
1068
1088
|
end
|
@@ -1093,7 +1113,8 @@ module Schemas; module MyNamespace
|
|
1093
1113
|
attr_accessor :record3_id
|
1094
1114
|
|
1095
1115
|
# @override
|
1096
|
-
def initialize(record3_id: 0.0)
|
1116
|
+
def initialize(_from_message: false, record3_id: 0.0)
|
1117
|
+
@_from_message = _from_message
|
1097
1118
|
super
|
1098
1119
|
self.record3_id = record3_id
|
1099
1120
|
end
|
@@ -1124,7 +1145,8 @@ module Schemas; module MyNamespace
|
|
1124
1145
|
attr_accessor :record4_id
|
1125
1146
|
|
1126
1147
|
# @override
|
1127
|
-
def initialize(record4_id: 0)
|
1148
|
+
def initialize(_from_message: false, record4_id: 0)
|
1149
|
+
@_from_message = _from_message
|
1128
1150
|
super
|
1129
1151
|
self.record4_id = record4_id
|
1130
1152
|
end
|
@@ -1180,9 +1202,10 @@ module Schemas; module MyNamespace
|
|
1180
1202
|
end
|
1181
1203
|
|
1182
1204
|
# @override
|
1183
|
-
def initialize(test_id: "",
|
1205
|
+
def initialize(_from_message: false, test_id: "",
|
1184
1206
|
test_long: nil,
|
1185
1207
|
test_union_type: nil)
|
1208
|
+
@_from_message = _from_message
|
1186
1209
|
super
|
1187
1210
|
self.test_id = test_id
|
1188
1211
|
self.test_long = test_long
|
@@ -1233,11 +1256,12 @@ module Schemas; module MyNamespace
|
|
1233
1256
|
attr_accessor :timestamp
|
1234
1257
|
|
1235
1258
|
# @override
|
1236
|
-
def initialize(id: nil,
|
1259
|
+
def initialize(_from_message: false, id: nil,
|
1237
1260
|
test_id: nil,
|
1238
1261
|
some_int: nil,
|
1239
1262
|
message_id: nil,
|
1240
1263
|
timestamp: nil)
|
1264
|
+
@_from_message = _from_message
|
1241
1265
|
super
|
1242
1266
|
self.id = id
|
1243
1267
|
self.test_id = test_id
|
@@ -1284,7 +1308,8 @@ module Schemas; module MyNamespace; module Request
|
|
1284
1308
|
attr_accessor :request_id
|
1285
1309
|
|
1286
1310
|
# @override
|
1287
|
-
def initialize(request_id: nil)
|
1311
|
+
def initialize(_from_message: false, request_id: nil)
|
1312
|
+
@_from_message = _from_message
|
1288
1313
|
super
|
1289
1314
|
self.request_id = request_id
|
1290
1315
|
end
|
@@ -1323,7 +1348,8 @@ module Schemas; module MyNamespace; module Request
|
|
1323
1348
|
attr_accessor :request_id
|
1324
1349
|
|
1325
1350
|
# @override
|
1326
|
-
def initialize(request_id: nil)
|
1351
|
+
def initialize(_from_message: false, request_id: nil)
|
1352
|
+
@_from_message = _from_message
|
1327
1353
|
super
|
1328
1354
|
self.request_id = request_id
|
1329
1355
|
end
|
@@ -1362,7 +1388,8 @@ module Schemas; module MyNamespace; module Request
|
|
1362
1388
|
attr_accessor :update_request_id
|
1363
1389
|
|
1364
1390
|
# @override
|
1365
|
-
def initialize(update_request_id: nil)
|
1391
|
+
def initialize(_from_message: false, update_request_id: nil)
|
1392
|
+
@_from_message = _from_message
|
1366
1393
|
super
|
1367
1394
|
self.update_request_id = update_request_id
|
1368
1395
|
end
|
@@ -1401,7 +1428,8 @@ module Schemas; module MyNamespace; module Response
|
|
1401
1428
|
attr_accessor :response_id
|
1402
1429
|
|
1403
1430
|
# @override
|
1404
|
-
def initialize(response_id: nil)
|
1431
|
+
def initialize(_from_message: false, response_id: nil)
|
1432
|
+
@_from_message = _from_message
|
1405
1433
|
super
|
1406
1434
|
self.response_id = response_id
|
1407
1435
|
end
|
@@ -1440,7 +1468,8 @@ module Schemas; module MyNamespace; module Response
|
|
1440
1468
|
attr_accessor :response_id
|
1441
1469
|
|
1442
1470
|
# @override
|
1443
|
-
def initialize(response_id: nil)
|
1471
|
+
def initialize(_from_message: false, response_id: nil)
|
1472
|
+
@_from_message = _from_message
|
1444
1473
|
super
|
1445
1474
|
self.response_id = response_id
|
1446
1475
|
end
|
@@ -1479,7 +1508,8 @@ module Schemas; module MyNamespace; module Response
|
|
1479
1508
|
attr_accessor :update_response_id
|
1480
1509
|
|
1481
1510
|
# @override
|
1482
|
-
def initialize(update_response_id: nil)
|
1511
|
+
def initialize(_from_message: false, update_response_id: nil)
|
1512
|
+
@_from_message = _from_message
|
1483
1513
|
super
|
1484
1514
|
self.update_response_id = update_response_id
|
1485
1515
|
end
|
@@ -1534,7 +1564,7 @@ module Schemas; module MyNamespace
|
|
1534
1564
|
attr_accessor :created_at
|
1535
1565
|
|
1536
1566
|
# @override
|
1537
|
-
def initialize(id: nil,
|
1567
|
+
def initialize(_from_message: false, id: nil,
|
1538
1568
|
wibble_id: nil,
|
1539
1569
|
name: nil,
|
1540
1570
|
floop: nil,
|
@@ -1543,6 +1573,7 @@ module Schemas; module MyNamespace
|
|
1543
1573
|
birthday_optional: nil,
|
1544
1574
|
updated_at: nil,
|
1545
1575
|
created_at: nil)
|
1576
|
+
@_from_message = _from_message
|
1546
1577
|
super
|
1547
1578
|
self.id = id
|
1548
1579
|
self.wibble_id = wibble_id
|
@@ -1605,11 +1636,12 @@ module Schemas; module MyNamespace
|
|
1605
1636
|
attr_accessor :created_at
|
1606
1637
|
|
1607
1638
|
# @override
|
1608
|
-
def initialize(id: nil,
|
1639
|
+
def initialize(_from_message: false, id: nil,
|
1609
1640
|
widget_id: nil,
|
1610
1641
|
name: nil,
|
1611
1642
|
updated_at: nil,
|
1612
1643
|
created_at: nil)
|
1644
|
+
@_from_message = _from_message
|
1613
1645
|
super
|
1614
1646
|
self.id = id
|
1615
1647
|
self.widget_id = widget_id
|
@@ -1664,11 +1696,12 @@ module Schemas; module MyNamespace
|
|
1664
1696
|
attr_accessor :created_at
|
1665
1697
|
|
1666
1698
|
# @override
|
1667
|
-
def initialize(id: nil,
|
1699
|
+
def initialize(_from_message: false, id: nil,
|
1668
1700
|
widget_id: nil,
|
1669
1701
|
model_id: nil,
|
1670
1702
|
updated_at: nil,
|
1671
1703
|
created_at: nil)
|
1704
|
+
@_from_message = _from_message
|
1672
1705
|
super
|
1673
1706
|
self.id = id
|
1674
1707
|
self.widget_id = widget_id
|