6#include "azure/core/amqp/internal/models/amqp_error.hpp"
7#include "azure/core/amqp/models/amqp_message.hpp"
10#include <azure/core/context.hpp>
16namespace Azure {
namespace Core {
namespace Amqp {
namespace _detail {
17 class ManagementClientImpl;
18 class ManagementClientFactory;
21namespace Azure {
namespace Core {
namespace Amqp {
namespace _internal {
22 enum class ManagementOperationStatus
32 enum class ManagementOpenStatus
40 struct ManagementClientOptions final
55 std::string ExpectedStatusCodeKeyName =
"statusCode";
72 std::string ExpectedStatusDescriptionKeyName =
"statusDescription";
80 std::string ManagementNodeName =
"$management";
85 bool EnableTrace{
false};
91 class ManagementClientEvents {
93 ~ManagementClientEvents() {}
101 virtual void OnError(Models::_internal::AmqpError
const& error) = 0;
107 struct ManagementOperationResult final
112 ManagementOperationStatus Status = ManagementOperationStatus::Invalid;
117 std::shared_ptr<Models::AmqpMessage> Message;
123 Models::_internal::AmqpError Error;
128 uint32_t StatusCode = 0;
139 class ManagementClient final {
144 ManagementClient() =
default;
149 ~ManagementClient() noexcept = default;
154 ManagementClient(ManagementClient const&) = default;
159 ManagementClient& operator=(ManagementClient const&) = default;
164 ManagementClient(ManagementClient&&) = default;
169 ManagementClient& operator=(ManagementClient&&) = default;
176 _azure_NODISCARD ManagementOpenStatus Open(Context const& context = {});
183 void Close(Context
const& context = {});
202 _azure_NODISCARD ManagementOperationResult ExecuteOperation(
203 std::string
const& operationToPerform,
204 std::string
const& typeOfOperation,
205 std::string
const& locales,
206 Models::AmqpMessage messageToSend,
207 Context
const& context = {});
210 friend class Azure::Core::Amqp::_detail::ManagementClientFactory;
211 ManagementClient(std::shared_ptr<_detail::ManagementClientImpl> impl) : m_impl{impl} {}
212 std::shared_ptr<_detail::ManagementClientImpl> m_impl;