Azure / Azure/azure-sdk-for-rust

[AMQP] Management client cannot send a typed request body or read the status fields

Open
#4,936 0 comments 1 reaction 0 assignees View on GitHub
Azure.Core Client
Dominant language
Rust
Stars
884
Forks
365
Avg merge
2d 19h
Merged PRs (30d)
109

Description

## Summary

`AmqpManagement::call` takes an operation name and a map of application properties. Service Bus management operations put their arguments in the message body, not in the application properties, and they return `statusCode` and `statusDescription` that the caller needs to read.

## Motivation

Every Service Bus request and response operation is entity scoped and attaches a pair of links to `/$management`. The operation name goes in the `operation` application property. The arguments go in an AMQP value body, which is usually a map. Each request accepts an optional unsigned `com.microsoft:server-timeout` in milliseconds. Each response returns an integer `statusCode` that uses HTTP codes, plus an optional `statusDescription`.

The current signature forces callers to put body arguments into application properties. `Receiver::defer_message` already does this with the lock token, which is one reason it fails.

## Proposal

- Add a management call that accepts a typed request body.
- Support the `com.microsoft:server-timeout` application property.
- Surface `statusCode` and `statusDescription` to the caller so an operation can map a status to a typed error.

Sub-issue of #4934.

Contributor guide

Open the contributing guide

Research direction

Start with AmqpManagement::call and Receiver::defer_message to understand how management arguments are currently placed in application properties. Trace the Service Bus management request and response flow, then verify that typed request bodies, com.microsoft:server-timeout, statusCode, and statusDescription are available to callers for typed error handling.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
api, backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.