@@ -92,6 +92,7 @@ type QuorumQueueSpecification struct {
9292 TargetClusterSize int64
9393 LeaderLocator ILeaderLocator
9494 QuorumInitialGroupSize int
95+ Arguments map [string ]any
9596}
9697
9798func (q * QuorumQueueSpecification ) name () string {
@@ -111,7 +112,11 @@ func (q *QuorumQueueSpecification) queueType() QueueType {
111112}
112113
113114func (q * QuorumQueueSpecification ) buildArguments () map [string ]any {
114- result := map [string ]any {}
115+ result := q .Arguments
116+ if result == nil {
117+ result = map [string ]any {}
118+ }
119+
115120 if q .MaxLengthBytes != 0 {
116121 result ["x-max-length-bytes" ] = q .MaxLengthBytes
117122 }
@@ -181,6 +186,7 @@ type ClassicQueueSpecification struct {
181186 MaxLengthBytes int64
182187 MaxPriority int64
183188 LeaderLocator ILeaderLocator
189+ Arguments map [string ]any
184190}
185191
186192func (q * ClassicQueueSpecification ) name () string {
@@ -200,7 +206,10 @@ func (q *ClassicQueueSpecification) queueType() QueueType {
200206}
201207
202208func (q * ClassicQueueSpecification ) buildArguments () map [string ]any {
203- result := map [string ]any {}
209+ result := q .Arguments
210+ if result == nil {
211+ result = map [string ]any {}
212+ }
204213
205214 if q .MaxLengthBytes != 0 {
206215 result ["x-max-length-bytes" ] = q .MaxLengthBytes
@@ -257,6 +266,7 @@ type AutoGeneratedQueueSpecification struct {
257266 IsExclusive bool
258267 MaxLength int64
259268 MaxLengthBytes int64
269+ Arguments map [string ]any
260270}
261271
262272func (a * AutoGeneratedQueueSpecification ) name () string {
@@ -276,7 +286,10 @@ func (a *AutoGeneratedQueueSpecification) queueType() QueueType {
276286}
277287
278288func (a * AutoGeneratedQueueSpecification ) buildArguments () map [string ]any {
279- result := map [string ]any {}
289+ result := a .Arguments
290+ if result == nil {
291+ result = map [string ]any {}
292+ }
280293
281294 if a .MaxLengthBytes != 0 {
282295 result ["x-max-length-bytes" ] = a .MaxLengthBytes
@@ -295,6 +308,7 @@ type StreamQueueSpecification struct {
295308 Name string
296309 MaxLengthBytes int64
297310 InitialClusterSize int
311+ Arguments map [string ]any
298312}
299313
300314func (s * StreamQueueSpecification ) name () string {
@@ -314,7 +328,10 @@ func (s *StreamQueueSpecification) queueType() QueueType {
314328}
315329
316330func (s * StreamQueueSpecification ) buildArguments () map [string ]any {
317- result := map [string ]any {}
331+ result := s .Arguments
332+ if result == nil {
333+ result = map [string ]any {}
334+ }
318335
319336 if s .MaxLengthBytes != 0 {
320337 result ["x-max-length-bytes" ] = s .MaxLengthBytes
@@ -475,12 +492,14 @@ type IBindingSpecification interface {
475492 destination () string
476493 bindingKey () string
477494 isDestinationQueue () bool
495+ arguments () map [string ]any
478496}
479497
480498type ExchangeToQueueBindingSpecification struct {
481499 SourceExchange string
482500 DestinationQueue string
483501 BindingKey string
502+ Arguments map [string ]any
484503}
485504
486505func (e * ExchangeToQueueBindingSpecification ) sourceExchange () string {
@@ -499,10 +518,15 @@ func (e *ExchangeToQueueBindingSpecification) bindingKey() string {
499518 return e .BindingKey
500519}
501520
521+ func (e * ExchangeToQueueBindingSpecification ) arguments () map [string ]any {
522+ return e .Arguments
523+ }
524+
502525type ExchangeToExchangeBindingSpecification struct {
503526 SourceExchange string
504527 DestinationExchange string
505528 BindingKey string
529+ Arguments map [string ]any
506530}
507531
508532func (e * ExchangeToExchangeBindingSpecification ) sourceExchange () string {
@@ -520,3 +544,7 @@ func (e *ExchangeToExchangeBindingSpecification) isDestinationQueue() bool {
520544func (e * ExchangeToExchangeBindingSpecification ) bindingKey () string {
521545 return e .BindingKey
522546}
547+
548+ func (e * ExchangeToExchangeBindingSpecification ) arguments () map [string ]any {
549+ return e .Arguments
550+ }
0 commit comments