@@ -308,6 +308,14 @@ namespace NKikimr::NHttpProxy {
308308 NYdb::EStatus (response.operation ().status ()),
309309 std::move (issues)
310310 );
311+ Ydb::Ymq::V1::QueueTags queueTags;
312+ response.operation ().metadata ().UnpackTo (&queueTags);
313+ for (const auto & [k, v] : queueTags.GetTags ()) {
314+ if (!result->QueueTags .Get ()) {
315+ result->QueueTags = MakeHolder<THashMap<TString, TString>>();
316+ }
317+ result->QueueTags ->emplace (k, v);
318+ }
311319 actorSystem->Send (actorId, result.Release ());
312320 }
313321 );
@@ -374,6 +382,9 @@ namespace NKikimr::NHttpProxy {
374382 );
375383 HttpContext.ResponseData .IsYmq = true ;
376384 HttpContext.ResponseData .YmqHttpCode = 200 ;
385+ if (ev->Get ()->QueueTags ) {
386+ HttpContext.ResponseData .QueueTags = std::move (*ev->Get ()->QueueTags );
387+ }
377388 ReplyToHttpContext (ctx);
378389 } else {
379390 auto retryClass = NYdb::NTopic::GetRetryErrorClass (ev->Get ()->Status ->GetStatus ());
@@ -510,40 +521,8 @@ namespace NKikimr::NHttpProxy {
510521 SendGrpcRequestNoDriver (ctx);
511522 } else {
512523 auto requestHolder = MakeHolder<NKikimrClient::TSqsRequest>();
513- // TODO? action = NSQS::ActionFromString(Method);
514- NSQS::EAction action = NSQS::EAction::Unknown;
515- if (Method == " CreateQueue" ) {
516- action = NSQS::EAction::CreateQueue;
517- } else if (Method == " GetQueueUrl" ) {
518- action = NSQS::EAction::GetQueueUrl;
519- } else if (Method == " SendMessage" ) {
520- action = NSQS::EAction::SendMessage;
521- } else if (Method == " ReceiveMessage" ) {
522- action = NSQS::EAction::ReceiveMessage;
523- } else if (Method == " GetQueueAttributes" ) {
524- action = NSQS::EAction::GetQueueAttributes;
525- } else if (Method == " ListQueues" ) {
526- action = NSQS::EAction::ListQueues;
527- } else if (Method == " DeleteMessage" ) {
528- action = NSQS::EAction::DeleteMessage;
529- } else if (Method == " PurgeQueue" ) {
530- action = NSQS::EAction::PurgeQueue;
531- } else if (Method == " DeleteQueue" ) {
532- action = NSQS::EAction::DeleteQueue;
533- } else if (Method == " ChangeMessageVisibility" ) {
534- action = NSQS::EAction::ChangeMessageVisibility;
535- } else if (Method == " SetQueueAttributes" ) {
536- action = NSQS::EAction::SetQueueAttributes;
537- } else if (Method == " SendMessageBatch" ) {
538- action = NSQS::EAction::SendMessageBatch;
539- }else if (Method == " DeleteMessageBatch" ) {
540- action = NSQS::EAction::DeleteMessageBatch;
541- } else if (Method == " ChangeMessageVisibilityBatch" ) {
542- action = NSQS::EAction::ChangeMessageVisibilityBatch;
543- } else if (Method == " ListDeadLetterSourceQueues" ) {
544- action = NSQS::EAction::ListDeadLetterSourceQueues;
545- }
546524
525+ NSQS::EAction action = NSQS::ActionFromString (Method);
547526 requestHolder->SetRequestId (HttpContext.RequestId );
548527
549528 NSQS::TAuthActorData data {
@@ -1081,6 +1060,9 @@ namespace NKikimr::NHttpProxy {
10811060 DECLARE_YMQ_PROCESSOR_QUEUE_KNOWN (DeleteMessageBatch);
10821061 DECLARE_YMQ_PROCESSOR_QUEUE_KNOWN (ChangeMessageVisibilityBatch);
10831062 DECLARE_YMQ_PROCESSOR_QUEUE_KNOWN (ListDeadLetterSourceQueues);
1063+ DECLARE_YMQ_PROCESSOR_QUEUE_KNOWN (ListQueueTags);
1064+ DECLARE_YMQ_PROCESSOR_QUEUE_KNOWN (TagQueue);
1065+ DECLARE_YMQ_PROCESSOR_QUEUE_KNOWN (UntagQueue);
10841066 #undef DECLARE_YMQ_PROCESSOR_QUEUE_KNOWN
10851067 }
10861068
@@ -1264,6 +1246,9 @@ namespace NKikimr::NHttpProxy {
12641246 requestAttributes.SourceAddress = SourceAddress;
12651247 requestAttributes.ResourceId = ResourceId;
12661248 requestAttributes.Action = NSQS::ActionFromString (MethodName);
1249+ for (const auto & [k, v] : ResponseData.QueueTags ) {
1250+ requestAttributes.QueueTags [k] = v;
1251+ }
12671252
12681253 LOG_SP_DEBUG_S (
12691254 ctx,
0 commit comments