aws-sdk-sqs 1.60.0 → 1.93.0
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 +165 -0
- data/VERSION +1 -1
- data/lib/aws-sdk-sqs/client.rb +393 -175
- data/lib/aws-sdk-sqs/client_api.rb +255 -58
- data/lib/aws-sdk-sqs/customizations.rb +5 -1
- data/lib/aws-sdk-sqs/endpoint_parameters.rb +9 -6
- data/lib/aws-sdk-sqs/endpoint_provider.rb +16 -20
- data/lib/aws-sdk-sqs/endpoints.rb +2 -320
- data/lib/aws-sdk-sqs/errors.rb +251 -0
- data/lib/aws-sdk-sqs/message.rb +3 -3
- data/lib/aws-sdk-sqs/plugins/endpoints.rb +23 -60
- data/lib/aws-sdk-sqs/plugins/md5s.rb +84 -35
- data/lib/aws-sdk-sqs/queue.rb +106 -31
- data/lib/aws-sdk-sqs/queue_poller.rb +66 -36
- data/lib/aws-sdk-sqs/resource.rb +10 -13
- data/lib/aws-sdk-sqs/types.rb +418 -55
- data/lib/aws-sdk-sqs.rb +17 -13
- data/sig/client.rbs +369 -0
- data/sig/errors.rbs +98 -0
- data/sig/message.rbs +73 -0
- data/sig/queue.rbs +164 -0
- data/sig/resource.rbs +110 -0
- data/sig/types.rbs +472 -0
- data/sig/waiters.rbs +13 -0
- metadata +18 -11
data/lib/aws-sdk-sqs/errors.rb
CHANGED
@@ -30,10 +30,20 @@ module Aws::SQS
|
|
30
30
|
# * {BatchEntryIdsNotDistinct}
|
31
31
|
# * {BatchRequestTooLong}
|
32
32
|
# * {EmptyBatchRequest}
|
33
|
+
# * {InvalidAddress}
|
33
34
|
# * {InvalidAttributeName}
|
35
|
+
# * {InvalidAttributeValue}
|
34
36
|
# * {InvalidBatchEntryId}
|
35
37
|
# * {InvalidIdFormat}
|
36
38
|
# * {InvalidMessageContents}
|
39
|
+
# * {InvalidSecurity}
|
40
|
+
# * {KmsAccessDenied}
|
41
|
+
# * {KmsDisabled}
|
42
|
+
# * {KmsInvalidKeyUsage}
|
43
|
+
# * {KmsInvalidState}
|
44
|
+
# * {KmsNotFound}
|
45
|
+
# * {KmsOptInRequired}
|
46
|
+
# * {KmsThrottled}
|
37
47
|
# * {MessageNotInflight}
|
38
48
|
# * {OverLimit}
|
39
49
|
# * {PurgeQueueInProgress}
|
@@ -41,6 +51,7 @@ module Aws::SQS
|
|
41
51
|
# * {QueueDoesNotExist}
|
42
52
|
# * {QueueNameExists}
|
43
53
|
# * {ReceiptHandleIsInvalid}
|
54
|
+
# * {RequestThrottled}
|
44
55
|
# * {ResourceNotFoundException}
|
45
56
|
# * {TooManyEntriesInBatchRequest}
|
46
57
|
# * {UnsupportedOperation}
|
@@ -59,6 +70,11 @@ module Aws::SQS
|
|
59
70
|
def initialize(context, message, data = Aws::EmptyStructure.new)
|
60
71
|
super(context, message, data)
|
61
72
|
end
|
73
|
+
|
74
|
+
# @return [String]
|
75
|
+
def message
|
76
|
+
@message || @data[:message]
|
77
|
+
end
|
62
78
|
end
|
63
79
|
|
64
80
|
class BatchRequestTooLong < ServiceError
|
@@ -69,6 +85,11 @@ module Aws::SQS
|
|
69
85
|
def initialize(context, message, data = Aws::EmptyStructure.new)
|
70
86
|
super(context, message, data)
|
71
87
|
end
|
88
|
+
|
89
|
+
# @return [String]
|
90
|
+
def message
|
91
|
+
@message || @data[:message]
|
92
|
+
end
|
72
93
|
end
|
73
94
|
|
74
95
|
class EmptyBatchRequest < ServiceError
|
@@ -79,6 +100,26 @@ module Aws::SQS
|
|
79
100
|
def initialize(context, message, data = Aws::EmptyStructure.new)
|
80
101
|
super(context, message, data)
|
81
102
|
end
|
103
|
+
|
104
|
+
# @return [String]
|
105
|
+
def message
|
106
|
+
@message || @data[:message]
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
class InvalidAddress < ServiceError
|
111
|
+
|
112
|
+
# @param [Seahorse::Client::RequestContext] context
|
113
|
+
# @param [String] message
|
114
|
+
# @param [Aws::SQS::Types::InvalidAddress] data
|
115
|
+
def initialize(context, message, data = Aws::EmptyStructure.new)
|
116
|
+
super(context, message, data)
|
117
|
+
end
|
118
|
+
|
119
|
+
# @return [String]
|
120
|
+
def message
|
121
|
+
@message || @data[:message]
|
122
|
+
end
|
82
123
|
end
|
83
124
|
|
84
125
|
class InvalidAttributeName < ServiceError
|
@@ -89,6 +130,26 @@ module Aws::SQS
|
|
89
130
|
def initialize(context, message, data = Aws::EmptyStructure.new)
|
90
131
|
super(context, message, data)
|
91
132
|
end
|
133
|
+
|
134
|
+
# @return [String]
|
135
|
+
def message
|
136
|
+
@message || @data[:message]
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
class InvalidAttributeValue < ServiceError
|
141
|
+
|
142
|
+
# @param [Seahorse::Client::RequestContext] context
|
143
|
+
# @param [String] message
|
144
|
+
# @param [Aws::SQS::Types::InvalidAttributeValue] data
|
145
|
+
def initialize(context, message, data = Aws::EmptyStructure.new)
|
146
|
+
super(context, message, data)
|
147
|
+
end
|
148
|
+
|
149
|
+
# @return [String]
|
150
|
+
def message
|
151
|
+
@message || @data[:message]
|
152
|
+
end
|
92
153
|
end
|
93
154
|
|
94
155
|
class InvalidBatchEntryId < ServiceError
|
@@ -99,6 +160,11 @@ module Aws::SQS
|
|
99
160
|
def initialize(context, message, data = Aws::EmptyStructure.new)
|
100
161
|
super(context, message, data)
|
101
162
|
end
|
163
|
+
|
164
|
+
# @return [String]
|
165
|
+
def message
|
166
|
+
@message || @data[:message]
|
167
|
+
end
|
102
168
|
end
|
103
169
|
|
104
170
|
class InvalidIdFormat < ServiceError
|
@@ -119,6 +185,131 @@ module Aws::SQS
|
|
119
185
|
def initialize(context, message, data = Aws::EmptyStructure.new)
|
120
186
|
super(context, message, data)
|
121
187
|
end
|
188
|
+
|
189
|
+
# @return [String]
|
190
|
+
def message
|
191
|
+
@message || @data[:message]
|
192
|
+
end
|
193
|
+
end
|
194
|
+
|
195
|
+
class InvalidSecurity < ServiceError
|
196
|
+
|
197
|
+
# @param [Seahorse::Client::RequestContext] context
|
198
|
+
# @param [String] message
|
199
|
+
# @param [Aws::SQS::Types::InvalidSecurity] data
|
200
|
+
def initialize(context, message, data = Aws::EmptyStructure.new)
|
201
|
+
super(context, message, data)
|
202
|
+
end
|
203
|
+
|
204
|
+
# @return [String]
|
205
|
+
def message
|
206
|
+
@message || @data[:message]
|
207
|
+
end
|
208
|
+
end
|
209
|
+
|
210
|
+
class KmsAccessDenied < ServiceError
|
211
|
+
|
212
|
+
# @param [Seahorse::Client::RequestContext] context
|
213
|
+
# @param [String] message
|
214
|
+
# @param [Aws::SQS::Types::KmsAccessDenied] data
|
215
|
+
def initialize(context, message, data = Aws::EmptyStructure.new)
|
216
|
+
super(context, message, data)
|
217
|
+
end
|
218
|
+
|
219
|
+
# @return [String]
|
220
|
+
def message
|
221
|
+
@message || @data[:message]
|
222
|
+
end
|
223
|
+
end
|
224
|
+
|
225
|
+
class KmsDisabled < ServiceError
|
226
|
+
|
227
|
+
# @param [Seahorse::Client::RequestContext] context
|
228
|
+
# @param [String] message
|
229
|
+
# @param [Aws::SQS::Types::KmsDisabled] data
|
230
|
+
def initialize(context, message, data = Aws::EmptyStructure.new)
|
231
|
+
super(context, message, data)
|
232
|
+
end
|
233
|
+
|
234
|
+
# @return [String]
|
235
|
+
def message
|
236
|
+
@message || @data[:message]
|
237
|
+
end
|
238
|
+
end
|
239
|
+
|
240
|
+
class KmsInvalidKeyUsage < ServiceError
|
241
|
+
|
242
|
+
# @param [Seahorse::Client::RequestContext] context
|
243
|
+
# @param [String] message
|
244
|
+
# @param [Aws::SQS::Types::KmsInvalidKeyUsage] data
|
245
|
+
def initialize(context, message, data = Aws::EmptyStructure.new)
|
246
|
+
super(context, message, data)
|
247
|
+
end
|
248
|
+
|
249
|
+
# @return [String]
|
250
|
+
def message
|
251
|
+
@message || @data[:message]
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
255
|
+
class KmsInvalidState < ServiceError
|
256
|
+
|
257
|
+
# @param [Seahorse::Client::RequestContext] context
|
258
|
+
# @param [String] message
|
259
|
+
# @param [Aws::SQS::Types::KmsInvalidState] data
|
260
|
+
def initialize(context, message, data = Aws::EmptyStructure.new)
|
261
|
+
super(context, message, data)
|
262
|
+
end
|
263
|
+
|
264
|
+
# @return [String]
|
265
|
+
def message
|
266
|
+
@message || @data[:message]
|
267
|
+
end
|
268
|
+
end
|
269
|
+
|
270
|
+
class KmsNotFound < ServiceError
|
271
|
+
|
272
|
+
# @param [Seahorse::Client::RequestContext] context
|
273
|
+
# @param [String] message
|
274
|
+
# @param [Aws::SQS::Types::KmsNotFound] data
|
275
|
+
def initialize(context, message, data = Aws::EmptyStructure.new)
|
276
|
+
super(context, message, data)
|
277
|
+
end
|
278
|
+
|
279
|
+
# @return [String]
|
280
|
+
def message
|
281
|
+
@message || @data[:message]
|
282
|
+
end
|
283
|
+
end
|
284
|
+
|
285
|
+
class KmsOptInRequired < ServiceError
|
286
|
+
|
287
|
+
# @param [Seahorse::Client::RequestContext] context
|
288
|
+
# @param [String] message
|
289
|
+
# @param [Aws::SQS::Types::KmsOptInRequired] data
|
290
|
+
def initialize(context, message, data = Aws::EmptyStructure.new)
|
291
|
+
super(context, message, data)
|
292
|
+
end
|
293
|
+
|
294
|
+
# @return [String]
|
295
|
+
def message
|
296
|
+
@message || @data[:message]
|
297
|
+
end
|
298
|
+
end
|
299
|
+
|
300
|
+
class KmsThrottled < ServiceError
|
301
|
+
|
302
|
+
# @param [Seahorse::Client::RequestContext] context
|
303
|
+
# @param [String] message
|
304
|
+
# @param [Aws::SQS::Types::KmsThrottled] data
|
305
|
+
def initialize(context, message, data = Aws::EmptyStructure.new)
|
306
|
+
super(context, message, data)
|
307
|
+
end
|
308
|
+
|
309
|
+
# @return [String]
|
310
|
+
def message
|
311
|
+
@message || @data[:message]
|
312
|
+
end
|
122
313
|
end
|
123
314
|
|
124
315
|
class MessageNotInflight < ServiceError
|
@@ -139,6 +330,11 @@ module Aws::SQS
|
|
139
330
|
def initialize(context, message, data = Aws::EmptyStructure.new)
|
140
331
|
super(context, message, data)
|
141
332
|
end
|
333
|
+
|
334
|
+
# @return [String]
|
335
|
+
def message
|
336
|
+
@message || @data[:message]
|
337
|
+
end
|
142
338
|
end
|
143
339
|
|
144
340
|
class PurgeQueueInProgress < ServiceError
|
@@ -149,6 +345,11 @@ module Aws::SQS
|
|
149
345
|
def initialize(context, message, data = Aws::EmptyStructure.new)
|
150
346
|
super(context, message, data)
|
151
347
|
end
|
348
|
+
|
349
|
+
# @return [String]
|
350
|
+
def message
|
351
|
+
@message || @data[:message]
|
352
|
+
end
|
152
353
|
end
|
153
354
|
|
154
355
|
class QueueDeletedRecently < ServiceError
|
@@ -159,6 +360,11 @@ module Aws::SQS
|
|
159
360
|
def initialize(context, message, data = Aws::EmptyStructure.new)
|
160
361
|
super(context, message, data)
|
161
362
|
end
|
363
|
+
|
364
|
+
# @return [String]
|
365
|
+
def message
|
366
|
+
@message || @data[:message]
|
367
|
+
end
|
162
368
|
end
|
163
369
|
|
164
370
|
class QueueDoesNotExist < ServiceError
|
@@ -169,6 +375,11 @@ module Aws::SQS
|
|
169
375
|
def initialize(context, message, data = Aws::EmptyStructure.new)
|
170
376
|
super(context, message, data)
|
171
377
|
end
|
378
|
+
|
379
|
+
# @return [String]
|
380
|
+
def message
|
381
|
+
@message || @data[:message]
|
382
|
+
end
|
172
383
|
end
|
173
384
|
|
174
385
|
class QueueNameExists < ServiceError
|
@@ -179,6 +390,11 @@ module Aws::SQS
|
|
179
390
|
def initialize(context, message, data = Aws::EmptyStructure.new)
|
180
391
|
super(context, message, data)
|
181
392
|
end
|
393
|
+
|
394
|
+
# @return [String]
|
395
|
+
def message
|
396
|
+
@message || @data[:message]
|
397
|
+
end
|
182
398
|
end
|
183
399
|
|
184
400
|
class ReceiptHandleIsInvalid < ServiceError
|
@@ -189,6 +405,26 @@ module Aws::SQS
|
|
189
405
|
def initialize(context, message, data = Aws::EmptyStructure.new)
|
190
406
|
super(context, message, data)
|
191
407
|
end
|
408
|
+
|
409
|
+
# @return [String]
|
410
|
+
def message
|
411
|
+
@message || @data[:message]
|
412
|
+
end
|
413
|
+
end
|
414
|
+
|
415
|
+
class RequestThrottled < ServiceError
|
416
|
+
|
417
|
+
# @param [Seahorse::Client::RequestContext] context
|
418
|
+
# @param [String] message
|
419
|
+
# @param [Aws::SQS::Types::RequestThrottled] data
|
420
|
+
def initialize(context, message, data = Aws::EmptyStructure.new)
|
421
|
+
super(context, message, data)
|
422
|
+
end
|
423
|
+
|
424
|
+
# @return [String]
|
425
|
+
def message
|
426
|
+
@message || @data[:message]
|
427
|
+
end
|
192
428
|
end
|
193
429
|
|
194
430
|
class ResourceNotFoundException < ServiceError
|
@@ -199,6 +435,11 @@ module Aws::SQS
|
|
199
435
|
def initialize(context, message, data = Aws::EmptyStructure.new)
|
200
436
|
super(context, message, data)
|
201
437
|
end
|
438
|
+
|
439
|
+
# @return [String]
|
440
|
+
def message
|
441
|
+
@message || @data[:message]
|
442
|
+
end
|
202
443
|
end
|
203
444
|
|
204
445
|
class TooManyEntriesInBatchRequest < ServiceError
|
@@ -209,6 +450,11 @@ module Aws::SQS
|
|
209
450
|
def initialize(context, message, data = Aws::EmptyStructure.new)
|
210
451
|
super(context, message, data)
|
211
452
|
end
|
453
|
+
|
454
|
+
# @return [String]
|
455
|
+
def message
|
456
|
+
@message || @data[:message]
|
457
|
+
end
|
212
458
|
end
|
213
459
|
|
214
460
|
class UnsupportedOperation < ServiceError
|
@@ -219,6 +465,11 @@ module Aws::SQS
|
|
219
465
|
def initialize(context, message, data = Aws::EmptyStructure.new)
|
220
466
|
super(context, message, data)
|
221
467
|
end
|
468
|
+
|
469
|
+
# @return [String]
|
470
|
+
def message
|
471
|
+
@message || @data[:message]
|
472
|
+
end
|
222
473
|
end
|
223
474
|
|
224
475
|
end
|
data/lib/aws-sdk-sqs/message.rb
CHANGED
@@ -163,7 +163,7 @@ module Aws::SQS
|
|
163
163
|
queue_url: @queue_url,
|
164
164
|
receipt_handle: @receipt_handle
|
165
165
|
)
|
166
|
-
resp = Aws::Plugins::UserAgent.
|
166
|
+
resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
167
167
|
@client.change_message_visibility(options)
|
168
168
|
end
|
169
169
|
resp.data
|
@@ -179,7 +179,7 @@ module Aws::SQS
|
|
179
179
|
queue_url: @queue_url,
|
180
180
|
receipt_handle: @receipt_handle
|
181
181
|
)
|
182
|
-
resp = Aws::Plugins::UserAgent.
|
182
|
+
resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
183
183
|
@client.delete_message(options)
|
184
184
|
end
|
185
185
|
resp.data
|
@@ -246,7 +246,7 @@ module Aws::SQS
|
|
246
246
|
receipt_handle: item.receipt_handle
|
247
247
|
}
|
248
248
|
end
|
249
|
-
Aws::Plugins::UserAgent.
|
249
|
+
Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
250
250
|
batch[0].client.delete_message_batch(params)
|
251
251
|
end
|
252
252
|
end
|
@@ -14,35 +14,49 @@ module Aws::SQS
|
|
14
14
|
option(
|
15
15
|
:endpoint_provider,
|
16
16
|
doc_type: 'Aws::SQS::EndpointProvider',
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
17
|
+
rbs_type: 'untyped',
|
18
|
+
docstring: <<~DOCS) do |_cfg|
|
19
|
+
The endpoint provider used to resolve endpoints. Any object that responds to
|
20
|
+
`#resolve_endpoint(parameters)` where `parameters` is a Struct similar to
|
21
|
+
`Aws::SQS::EndpointParameters`.
|
22
|
+
DOCS
|
22
23
|
Aws::SQS::EndpointProvider.new
|
23
24
|
end
|
24
25
|
|
25
26
|
# @api private
|
26
27
|
class Handler < Seahorse::Client::Handler
|
27
28
|
def call(context)
|
28
|
-
# If endpoint was discovered, do not resolve or apply the endpoint.
|
29
29
|
unless context[:discovered_endpoint]
|
30
|
-
params = parameters_for_operation(context)
|
30
|
+
params = Aws::SQS::Endpoints.parameters_for_operation(context)
|
31
31
|
endpoint = context.config.endpoint_provider.resolve_endpoint(params)
|
32
32
|
|
33
33
|
context.http_request.endpoint = endpoint.url
|
34
34
|
apply_endpoint_headers(context, endpoint.headers)
|
35
|
+
|
36
|
+
context[:endpoint_params] = params
|
37
|
+
context[:endpoint_properties] = endpoint.properties
|
35
38
|
end
|
36
39
|
|
37
|
-
context[:endpoint_params] = params
|
38
40
|
context[:auth_scheme] =
|
39
41
|
Aws::Endpoints.resolve_auth_scheme(context, endpoint)
|
40
42
|
|
41
|
-
@handler.call(context)
|
43
|
+
with_metrics(context) { @handler.call(context) }
|
42
44
|
end
|
43
45
|
|
44
46
|
private
|
45
47
|
|
48
|
+
def with_metrics(context, &block)
|
49
|
+
metrics = []
|
50
|
+
metrics << 'ENDPOINT_OVERRIDE' unless context.config.regional_endpoint
|
51
|
+
if context[:auth_scheme] && context[:auth_scheme]['name'] == 'sigv4a'
|
52
|
+
metrics << 'SIGV4A_SIGNING'
|
53
|
+
end
|
54
|
+
if context.config.credentials&.credentials&.account_id
|
55
|
+
metrics << 'RESOLVED_ACCOUNT_ID'
|
56
|
+
end
|
57
|
+
Aws::Plugins::UserAgent.metric(*metrics, &block)
|
58
|
+
end
|
59
|
+
|
46
60
|
def apply_endpoint_headers(context, headers)
|
47
61
|
headers.each do |key, values|
|
48
62
|
value = values
|
@@ -53,57 +67,6 @@ module Aws::SQS
|
|
53
67
|
context.http_request.headers[key] = value
|
54
68
|
end
|
55
69
|
end
|
56
|
-
|
57
|
-
def parameters_for_operation(context)
|
58
|
-
case context.operation_name
|
59
|
-
when :add_permission
|
60
|
-
Aws::SQS::Endpoints::AddPermission.build(context)
|
61
|
-
when :cancel_message_move_task
|
62
|
-
Aws::SQS::Endpoints::CancelMessageMoveTask.build(context)
|
63
|
-
when :change_message_visibility
|
64
|
-
Aws::SQS::Endpoints::ChangeMessageVisibility.build(context)
|
65
|
-
when :change_message_visibility_batch
|
66
|
-
Aws::SQS::Endpoints::ChangeMessageVisibilityBatch.build(context)
|
67
|
-
when :create_queue
|
68
|
-
Aws::SQS::Endpoints::CreateQueue.build(context)
|
69
|
-
when :delete_message
|
70
|
-
Aws::SQS::Endpoints::DeleteMessage.build(context)
|
71
|
-
when :delete_message_batch
|
72
|
-
Aws::SQS::Endpoints::DeleteMessageBatch.build(context)
|
73
|
-
when :delete_queue
|
74
|
-
Aws::SQS::Endpoints::DeleteQueue.build(context)
|
75
|
-
when :get_queue_attributes
|
76
|
-
Aws::SQS::Endpoints::GetQueueAttributes.build(context)
|
77
|
-
when :get_queue_url
|
78
|
-
Aws::SQS::Endpoints::GetQueueUrl.build(context)
|
79
|
-
when :list_dead_letter_source_queues
|
80
|
-
Aws::SQS::Endpoints::ListDeadLetterSourceQueues.build(context)
|
81
|
-
when :list_message_move_tasks
|
82
|
-
Aws::SQS::Endpoints::ListMessageMoveTasks.build(context)
|
83
|
-
when :list_queue_tags
|
84
|
-
Aws::SQS::Endpoints::ListQueueTags.build(context)
|
85
|
-
when :list_queues
|
86
|
-
Aws::SQS::Endpoints::ListQueues.build(context)
|
87
|
-
when :purge_queue
|
88
|
-
Aws::SQS::Endpoints::PurgeQueue.build(context)
|
89
|
-
when :receive_message
|
90
|
-
Aws::SQS::Endpoints::ReceiveMessage.build(context)
|
91
|
-
when :remove_permission
|
92
|
-
Aws::SQS::Endpoints::RemovePermission.build(context)
|
93
|
-
when :send_message
|
94
|
-
Aws::SQS::Endpoints::SendMessage.build(context)
|
95
|
-
when :send_message_batch
|
96
|
-
Aws::SQS::Endpoints::SendMessageBatch.build(context)
|
97
|
-
when :set_queue_attributes
|
98
|
-
Aws::SQS::Endpoints::SetQueueAttributes.build(context)
|
99
|
-
when :start_message_move_task
|
100
|
-
Aws::SQS::Endpoints::StartMessageMoveTask.build(context)
|
101
|
-
when :tag_queue
|
102
|
-
Aws::SQS::Endpoints::TagQueue.build(context)
|
103
|
-
when :untag_queue
|
104
|
-
Aws::SQS::Endpoints::UntagQueue.build(context)
|
105
|
-
end
|
106
|
-
end
|
107
70
|
end
|
108
71
|
|
109
72
|
def add_handlers(handlers, _config)
|