/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace IoT { namespace Model { /** *

Specifies MQTT Version 5.0 headers information. For more information, see MQTT * from Amazon Web Services IoT Core Developer Guide.

See Also:

AWS API * Reference

*/ class MqttHeaders { public: AWS_IOT_API MqttHeaders(); AWS_IOT_API MqttHeaders(Aws::Utils::Json::JsonView jsonValue); AWS_IOT_API MqttHeaders& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_IOT_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

An Enum string value that indicates whether the payload is * formatted as UTF-8.

Valid values are UNSPECIFIED_BYTES and * UTF8_DATA.

For more information, see * Payload Format Indicator from the MQTT Version 5.0 specification.

*

Supports substitution * templates.

*/ inline const Aws::String& GetPayloadFormatIndicator() const{ return m_payloadFormatIndicator; } /** *

An Enum string value that indicates whether the payload is * formatted as UTF-8.

Valid values are UNSPECIFIED_BYTES and * UTF8_DATA.

For more information, see * Payload Format Indicator from the MQTT Version 5.0 specification.

*

Supports substitution * templates.

*/ inline bool PayloadFormatIndicatorHasBeenSet() const { return m_payloadFormatIndicatorHasBeenSet; } /** *

An Enum string value that indicates whether the payload is * formatted as UTF-8.

Valid values are UNSPECIFIED_BYTES and * UTF8_DATA.

For more information, see * Payload Format Indicator from the MQTT Version 5.0 specification.

*

Supports substitution * templates.

*/ inline void SetPayloadFormatIndicator(const Aws::String& value) { m_payloadFormatIndicatorHasBeenSet = true; m_payloadFormatIndicator = value; } /** *

An Enum string value that indicates whether the payload is * formatted as UTF-8.

Valid values are UNSPECIFIED_BYTES and * UTF8_DATA.

For more information, see * Payload Format Indicator from the MQTT Version 5.0 specification.

*

Supports substitution * templates.

*/ inline void SetPayloadFormatIndicator(Aws::String&& value) { m_payloadFormatIndicatorHasBeenSet = true; m_payloadFormatIndicator = std::move(value); } /** *

An Enum string value that indicates whether the payload is * formatted as UTF-8.

Valid values are UNSPECIFIED_BYTES and * UTF8_DATA.

For more information, see * Payload Format Indicator from the MQTT Version 5.0 specification.

*

Supports substitution * templates.

*/ inline void SetPayloadFormatIndicator(const char* value) { m_payloadFormatIndicatorHasBeenSet = true; m_payloadFormatIndicator.assign(value); } /** *

An Enum string value that indicates whether the payload is * formatted as UTF-8.

Valid values are UNSPECIFIED_BYTES and * UTF8_DATA.

For more information, see * Payload Format Indicator from the MQTT Version 5.0 specification.

*

Supports substitution * templates.

*/ inline MqttHeaders& WithPayloadFormatIndicator(const Aws::String& value) { SetPayloadFormatIndicator(value); return *this;} /** *

An Enum string value that indicates whether the payload is * formatted as UTF-8.

Valid values are UNSPECIFIED_BYTES and * UTF8_DATA.

For more information, see * Payload Format Indicator from the MQTT Version 5.0 specification.

*

Supports substitution * templates.

*/ inline MqttHeaders& WithPayloadFormatIndicator(Aws::String&& value) { SetPayloadFormatIndicator(std::move(value)); return *this;} /** *

An Enum string value that indicates whether the payload is * formatted as UTF-8.

Valid values are UNSPECIFIED_BYTES and * UTF8_DATA.

For more information, see * Payload Format Indicator from the MQTT Version 5.0 specification.

*

Supports substitution * templates.

*/ inline MqttHeaders& WithPayloadFormatIndicator(const char* value) { SetPayloadFormatIndicator(value); return *this;} /** *

A UTF-8 encoded string that describes the content of the publishing * message.

For more information, see * Content Type from the MQTT Version 5.0 specification.

Supports substitution * templates.

*/ inline const Aws::String& GetContentType() const{ return m_contentType; } /** *

A UTF-8 encoded string that describes the content of the publishing * message.

For more information, see * Content Type from the MQTT Version 5.0 specification.

Supports substitution * templates.

*/ inline bool ContentTypeHasBeenSet() const { return m_contentTypeHasBeenSet; } /** *

A UTF-8 encoded string that describes the content of the publishing * message.

For more information, see * Content Type from the MQTT Version 5.0 specification.

Supports substitution * templates.

*/ inline void SetContentType(const Aws::String& value) { m_contentTypeHasBeenSet = true; m_contentType = value; } /** *

A UTF-8 encoded string that describes the content of the publishing * message.

For more information, see * Content Type from the MQTT Version 5.0 specification.

Supports substitution * templates.

*/ inline void SetContentType(Aws::String&& value) { m_contentTypeHasBeenSet = true; m_contentType = std::move(value); } /** *

A UTF-8 encoded string that describes the content of the publishing * message.

For more information, see * Content Type from the MQTT Version 5.0 specification.

Supports substitution * templates.

*/ inline void SetContentType(const char* value) { m_contentTypeHasBeenSet = true; m_contentType.assign(value); } /** *

A UTF-8 encoded string that describes the content of the publishing * message.

For more information, see * Content Type from the MQTT Version 5.0 specification.

Supports substitution * templates.

*/ inline MqttHeaders& WithContentType(const Aws::String& value) { SetContentType(value); return *this;} /** *

A UTF-8 encoded string that describes the content of the publishing * message.

For more information, see * Content Type from the MQTT Version 5.0 specification.

Supports substitution * templates.

*/ inline MqttHeaders& WithContentType(Aws::String&& value) { SetContentType(std::move(value)); return *this;} /** *

A UTF-8 encoded string that describes the content of the publishing * message.

For more information, see * Content Type from the MQTT Version 5.0 specification.

Supports substitution * templates.

*/ inline MqttHeaders& WithContentType(const char* value) { SetContentType(value); return *this;} /** *

A UTF-8 encoded string that's used as the topic name for a response message. * The response topic is used to describe the topic which the receiver should * publish to as part of the request-response flow. The topic must not contain * wildcard characters.

For more information, see * Response Topic from the MQTT Version 5.0 specification.

Supports substitution * templates.

*/ inline const Aws::String& GetResponseTopic() const{ return m_responseTopic; } /** *

A UTF-8 encoded string that's used as the topic name for a response message. * The response topic is used to describe the topic which the receiver should * publish to as part of the request-response flow. The topic must not contain * wildcard characters.

For more information, see * Response Topic from the MQTT Version 5.0 specification.

Supports substitution * templates.

*/ inline bool ResponseTopicHasBeenSet() const { return m_responseTopicHasBeenSet; } /** *

A UTF-8 encoded string that's used as the topic name for a response message. * The response topic is used to describe the topic which the receiver should * publish to as part of the request-response flow. The topic must not contain * wildcard characters.

For more information, see * Response Topic from the MQTT Version 5.0 specification.

Supports substitution * templates.

*/ inline void SetResponseTopic(const Aws::String& value) { m_responseTopicHasBeenSet = true; m_responseTopic = value; } /** *

A UTF-8 encoded string that's used as the topic name for a response message. * The response topic is used to describe the topic which the receiver should * publish to as part of the request-response flow. The topic must not contain * wildcard characters.

For more information, see * Response Topic from the MQTT Version 5.0 specification.

Supports substitution * templates.

*/ inline void SetResponseTopic(Aws::String&& value) { m_responseTopicHasBeenSet = true; m_responseTopic = std::move(value); } /** *

A UTF-8 encoded string that's used as the topic name for a response message. * The response topic is used to describe the topic which the receiver should * publish to as part of the request-response flow. The topic must not contain * wildcard characters.

For more information, see * Response Topic from the MQTT Version 5.0 specification.

Supports substitution * templates.

*/ inline void SetResponseTopic(const char* value) { m_responseTopicHasBeenSet = true; m_responseTopic.assign(value); } /** *

A UTF-8 encoded string that's used as the topic name for a response message. * The response topic is used to describe the topic which the receiver should * publish to as part of the request-response flow. The topic must not contain * wildcard characters.

For more information, see * Response Topic from the MQTT Version 5.0 specification.

Supports substitution * templates.

*/ inline MqttHeaders& WithResponseTopic(const Aws::String& value) { SetResponseTopic(value); return *this;} /** *

A UTF-8 encoded string that's used as the topic name for a response message. * The response topic is used to describe the topic which the receiver should * publish to as part of the request-response flow. The topic must not contain * wildcard characters.

For more information, see * Response Topic from the MQTT Version 5.0 specification.

Supports substitution * templates.

*/ inline MqttHeaders& WithResponseTopic(Aws::String&& value) { SetResponseTopic(std::move(value)); return *this;} /** *

A UTF-8 encoded string that's used as the topic name for a response message. * The response topic is used to describe the topic which the receiver should * publish to as part of the request-response flow. The topic must not contain * wildcard characters.

For more information, see * Response Topic from the MQTT Version 5.0 specification.

Supports substitution * templates.

*/ inline MqttHeaders& WithResponseTopic(const char* value) { SetResponseTopic(value); return *this;} /** *

The base64-encoded binary data used by the sender of the request message to * identify which request the response message is for when it's received.

*

For more information, see * Correlation Data from the MQTT Version 5.0 specification.

* This binary data must be based64-encoded.

Supports substitution * templates.

*/ inline const Aws::String& GetCorrelationData() const{ return m_correlationData; } /** *

The base64-encoded binary data used by the sender of the request message to * identify which request the response message is for when it's received.

*

For more information, see * Correlation Data from the MQTT Version 5.0 specification.

* This binary data must be based64-encoded.

Supports substitution * templates.

*/ inline bool CorrelationDataHasBeenSet() const { return m_correlationDataHasBeenSet; } /** *

The base64-encoded binary data used by the sender of the request message to * identify which request the response message is for when it's received.

*

For more information, see * Correlation Data from the MQTT Version 5.0 specification.

* This binary data must be based64-encoded.

Supports substitution * templates.

*/ inline void SetCorrelationData(const Aws::String& value) { m_correlationDataHasBeenSet = true; m_correlationData = value; } /** *

The base64-encoded binary data used by the sender of the request message to * identify which request the response message is for when it's received.

*

For more information, see * Correlation Data from the MQTT Version 5.0 specification.

* This binary data must be based64-encoded.

Supports substitution * templates.

*/ inline void SetCorrelationData(Aws::String&& value) { m_correlationDataHasBeenSet = true; m_correlationData = std::move(value); } /** *

The base64-encoded binary data used by the sender of the request message to * identify which request the response message is for when it's received.

*

For more information, see * Correlation Data from the MQTT Version 5.0 specification.

* This binary data must be based64-encoded.

Supports substitution * templates.

*/ inline void SetCorrelationData(const char* value) { m_correlationDataHasBeenSet = true; m_correlationData.assign(value); } /** *

The base64-encoded binary data used by the sender of the request message to * identify which request the response message is for when it's received.

*

For more information, see * Correlation Data from the MQTT Version 5.0 specification.

* This binary data must be based64-encoded.

Supports substitution * templates.

*/ inline MqttHeaders& WithCorrelationData(const Aws::String& value) { SetCorrelationData(value); return *this;} /** *

The base64-encoded binary data used by the sender of the request message to * identify which request the response message is for when it's received.

*

For more information, see * Correlation Data from the MQTT Version 5.0 specification.

* This binary data must be based64-encoded.

Supports substitution * templates.

*/ inline MqttHeaders& WithCorrelationData(Aws::String&& value) { SetCorrelationData(std::move(value)); return *this;} /** *

The base64-encoded binary data used by the sender of the request message to * identify which request the response message is for when it's received.

*

For more information, see * Correlation Data from the MQTT Version 5.0 specification.

* This binary data must be based64-encoded.

Supports substitution * templates.

*/ inline MqttHeaders& WithCorrelationData(const char* value) { SetCorrelationData(value); return *this;} /** *

A user-defined integer value that will persist a message at the message * broker for a specified amount of time to ensure that the message will expire if * it's no longer relevant to the subscriber. The value of * messageExpiry represents the number of seconds before it expires. * For more information about the limits of messageExpiry, see Amazon * Web Services IoT Core message broker and protocol limits and quotas from * the Amazon Web Services Reference Guide.

Supports substitution * templates.

*/ inline const Aws::String& GetMessageExpiry() const{ return m_messageExpiry; } /** *

A user-defined integer value that will persist a message at the message * broker for a specified amount of time to ensure that the message will expire if * it's no longer relevant to the subscriber. The value of * messageExpiry represents the number of seconds before it expires. * For more information about the limits of messageExpiry, see Amazon * Web Services IoT Core message broker and protocol limits and quotas from * the Amazon Web Services Reference Guide.

Supports substitution * templates.

*/ inline bool MessageExpiryHasBeenSet() const { return m_messageExpiryHasBeenSet; } /** *

A user-defined integer value that will persist a message at the message * broker for a specified amount of time to ensure that the message will expire if * it's no longer relevant to the subscriber. The value of * messageExpiry represents the number of seconds before it expires. * For more information about the limits of messageExpiry, see Amazon * Web Services IoT Core message broker and protocol limits and quotas from * the Amazon Web Services Reference Guide.

Supports substitution * templates.

*/ inline void SetMessageExpiry(const Aws::String& value) { m_messageExpiryHasBeenSet = true; m_messageExpiry = value; } /** *

A user-defined integer value that will persist a message at the message * broker for a specified amount of time to ensure that the message will expire if * it's no longer relevant to the subscriber. The value of * messageExpiry represents the number of seconds before it expires. * For more information about the limits of messageExpiry, see Amazon * Web Services IoT Core message broker and protocol limits and quotas from * the Amazon Web Services Reference Guide.

Supports substitution * templates.

*/ inline void SetMessageExpiry(Aws::String&& value) { m_messageExpiryHasBeenSet = true; m_messageExpiry = std::move(value); } /** *

A user-defined integer value that will persist a message at the message * broker for a specified amount of time to ensure that the message will expire if * it's no longer relevant to the subscriber. The value of * messageExpiry represents the number of seconds before it expires. * For more information about the limits of messageExpiry, see Amazon * Web Services IoT Core message broker and protocol limits and quotas from * the Amazon Web Services Reference Guide.

Supports substitution * templates.

*/ inline void SetMessageExpiry(const char* value) { m_messageExpiryHasBeenSet = true; m_messageExpiry.assign(value); } /** *

A user-defined integer value that will persist a message at the message * broker for a specified amount of time to ensure that the message will expire if * it's no longer relevant to the subscriber. The value of * messageExpiry represents the number of seconds before it expires. * For more information about the limits of messageExpiry, see Amazon * Web Services IoT Core message broker and protocol limits and quotas from * the Amazon Web Services Reference Guide.

Supports substitution * templates.

*/ inline MqttHeaders& WithMessageExpiry(const Aws::String& value) { SetMessageExpiry(value); return *this;} /** *

A user-defined integer value that will persist a message at the message * broker for a specified amount of time to ensure that the message will expire if * it's no longer relevant to the subscriber. The value of * messageExpiry represents the number of seconds before it expires. * For more information about the limits of messageExpiry, see Amazon * Web Services IoT Core message broker and protocol limits and quotas from * the Amazon Web Services Reference Guide.

Supports substitution * templates.

*/ inline MqttHeaders& WithMessageExpiry(Aws::String&& value) { SetMessageExpiry(std::move(value)); return *this;} /** *

A user-defined integer value that will persist a message at the message * broker for a specified amount of time to ensure that the message will expire if * it's no longer relevant to the subscriber. The value of * messageExpiry represents the number of seconds before it expires. * For more information about the limits of messageExpiry, see Amazon * Web Services IoT Core message broker and protocol limits and quotas from * the Amazon Web Services Reference Guide.

Supports substitution * templates.

*/ inline MqttHeaders& WithMessageExpiry(const char* value) { SetMessageExpiry(value); return *this;} /** *

An array of key-value pairs that you define in the MQTT5 header.

*/ inline const Aws::Vector& GetUserProperties() const{ return m_userProperties; } /** *

An array of key-value pairs that you define in the MQTT5 header.

*/ inline bool UserPropertiesHasBeenSet() const { return m_userPropertiesHasBeenSet; } /** *

An array of key-value pairs that you define in the MQTT5 header.

*/ inline void SetUserProperties(const Aws::Vector& value) { m_userPropertiesHasBeenSet = true; m_userProperties = value; } /** *

An array of key-value pairs that you define in the MQTT5 header.

*/ inline void SetUserProperties(Aws::Vector&& value) { m_userPropertiesHasBeenSet = true; m_userProperties = std::move(value); } /** *

An array of key-value pairs that you define in the MQTT5 header.

*/ inline MqttHeaders& WithUserProperties(const Aws::Vector& value) { SetUserProperties(value); return *this;} /** *

An array of key-value pairs that you define in the MQTT5 header.

*/ inline MqttHeaders& WithUserProperties(Aws::Vector&& value) { SetUserProperties(std::move(value)); return *this;} /** *

An array of key-value pairs that you define in the MQTT5 header.

*/ inline MqttHeaders& AddUserProperties(const UserProperty& value) { m_userPropertiesHasBeenSet = true; m_userProperties.push_back(value); return *this; } /** *

An array of key-value pairs that you define in the MQTT5 header.

*/ inline MqttHeaders& AddUserProperties(UserProperty&& value) { m_userPropertiesHasBeenSet = true; m_userProperties.push_back(std::move(value)); return *this; } private: Aws::String m_payloadFormatIndicator; bool m_payloadFormatIndicatorHasBeenSet = false; Aws::String m_contentType; bool m_contentTypeHasBeenSet = false; Aws::String m_responseTopic; bool m_responseTopicHasBeenSet = false; Aws::String m_correlationData; bool m_correlationDataHasBeenSet = false; Aws::String m_messageExpiry; bool m_messageExpiryHasBeenSet = false; Aws::Vector m_userProperties; bool m_userPropertiesHasBeenSet = false; }; } // namespace Model } // namespace IoT } // namespace Aws