1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 6 #pragma once 7 #include <aws/iotsecuretunneling/IoTSecureTunneling_EXPORTS.h> 8 #include <aws/iotsecuretunneling/IoTSecureTunnelingRequest.h> 9 #include <aws/core/utils/memory/stl/AWSString.h> 10 #include <aws/core/utils/memory/stl/AWSVector.h> 11 #include <aws/iotsecuretunneling/model/DestinationConfig.h> 12 #include <aws/iotsecuretunneling/model/TimeoutConfig.h> 13 #include <aws/iotsecuretunneling/model/Tag.h> 14 #include <utility> 15 16 namespace Aws 17 { 18 namespace IoTSecureTunneling 19 { 20 namespace Model 21 { 22 23 /** 24 */ 25 class AWS_IOTSECURETUNNELING_API OpenTunnelRequest : public IoTSecureTunnelingRequest 26 { 27 public: 28 OpenTunnelRequest(); 29 30 // Service request name is the Operation name which will send this request out, 31 // each operation should has unique request name, so that we can get operation's name from this request. 32 // Note: this is not true for response, multiple operations may have the same response name, 33 // so we can not get operation's name from response. GetServiceRequestName()34 inline virtual const char* GetServiceRequestName() const override { return "OpenTunnel"; } 35 36 Aws::String SerializePayload() const override; 37 38 Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; 39 40 41 /** 42 * <p>A short text description of the tunnel. </p> 43 */ GetDescription()44 inline const Aws::String& GetDescription() const{ return m_description; } 45 46 /** 47 * <p>A short text description of the tunnel. </p> 48 */ DescriptionHasBeenSet()49 inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } 50 51 /** 52 * <p>A short text description of the tunnel. </p> 53 */ SetDescription(const Aws::String & value)54 inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } 55 56 /** 57 * <p>A short text description of the tunnel. </p> 58 */ SetDescription(Aws::String && value)59 inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } 60 61 /** 62 * <p>A short text description of the tunnel. </p> 63 */ SetDescription(const char * value)64 inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } 65 66 /** 67 * <p>A short text description of the tunnel. </p> 68 */ WithDescription(const Aws::String & value)69 inline OpenTunnelRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} 70 71 /** 72 * <p>A short text description of the tunnel. </p> 73 */ WithDescription(Aws::String && value)74 inline OpenTunnelRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} 75 76 /** 77 * <p>A short text description of the tunnel. </p> 78 */ WithDescription(const char * value)79 inline OpenTunnelRequest& WithDescription(const char* value) { SetDescription(value); return *this;} 80 81 82 /** 83 * <p>A collection of tag metadata.</p> 84 */ GetTags()85 inline const Aws::Vector<Tag>& GetTags() const{ return m_tags; } 86 87 /** 88 * <p>A collection of tag metadata.</p> 89 */ TagsHasBeenSet()90 inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } 91 92 /** 93 * <p>A collection of tag metadata.</p> 94 */ SetTags(const Aws::Vector<Tag> & value)95 inline void SetTags(const Aws::Vector<Tag>& value) { m_tagsHasBeenSet = true; m_tags = value; } 96 97 /** 98 * <p>A collection of tag metadata.</p> 99 */ SetTags(Aws::Vector<Tag> && value)100 inline void SetTags(Aws::Vector<Tag>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } 101 102 /** 103 * <p>A collection of tag metadata.</p> 104 */ WithTags(const Aws::Vector<Tag> & value)105 inline OpenTunnelRequest& WithTags(const Aws::Vector<Tag>& value) { SetTags(value); return *this;} 106 107 /** 108 * <p>A collection of tag metadata.</p> 109 */ WithTags(Aws::Vector<Tag> && value)110 inline OpenTunnelRequest& WithTags(Aws::Vector<Tag>&& value) { SetTags(std::move(value)); return *this;} 111 112 /** 113 * <p>A collection of tag metadata.</p> 114 */ AddTags(const Tag & value)115 inline OpenTunnelRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } 116 117 /** 118 * <p>A collection of tag metadata.</p> 119 */ AddTags(Tag && value)120 inline OpenTunnelRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } 121 122 123 /** 124 * <p>The destination configuration for the OpenTunnel request.</p> 125 */ GetDestinationConfig()126 inline const DestinationConfig& GetDestinationConfig() const{ return m_destinationConfig; } 127 128 /** 129 * <p>The destination configuration for the OpenTunnel request.</p> 130 */ DestinationConfigHasBeenSet()131 inline bool DestinationConfigHasBeenSet() const { return m_destinationConfigHasBeenSet; } 132 133 /** 134 * <p>The destination configuration for the OpenTunnel request.</p> 135 */ SetDestinationConfig(const DestinationConfig & value)136 inline void SetDestinationConfig(const DestinationConfig& value) { m_destinationConfigHasBeenSet = true; m_destinationConfig = value; } 137 138 /** 139 * <p>The destination configuration for the OpenTunnel request.</p> 140 */ SetDestinationConfig(DestinationConfig && value)141 inline void SetDestinationConfig(DestinationConfig&& value) { m_destinationConfigHasBeenSet = true; m_destinationConfig = std::move(value); } 142 143 /** 144 * <p>The destination configuration for the OpenTunnel request.</p> 145 */ WithDestinationConfig(const DestinationConfig & value)146 inline OpenTunnelRequest& WithDestinationConfig(const DestinationConfig& value) { SetDestinationConfig(value); return *this;} 147 148 /** 149 * <p>The destination configuration for the OpenTunnel request.</p> 150 */ WithDestinationConfig(DestinationConfig && value)151 inline OpenTunnelRequest& WithDestinationConfig(DestinationConfig&& value) { SetDestinationConfig(std::move(value)); return *this;} 152 153 154 /** 155 * <p>Timeout configuration for a tunnel.</p> 156 */ GetTimeoutConfig()157 inline const TimeoutConfig& GetTimeoutConfig() const{ return m_timeoutConfig; } 158 159 /** 160 * <p>Timeout configuration for a tunnel.</p> 161 */ TimeoutConfigHasBeenSet()162 inline bool TimeoutConfigHasBeenSet() const { return m_timeoutConfigHasBeenSet; } 163 164 /** 165 * <p>Timeout configuration for a tunnel.</p> 166 */ SetTimeoutConfig(const TimeoutConfig & value)167 inline void SetTimeoutConfig(const TimeoutConfig& value) { m_timeoutConfigHasBeenSet = true; m_timeoutConfig = value; } 168 169 /** 170 * <p>Timeout configuration for a tunnel.</p> 171 */ SetTimeoutConfig(TimeoutConfig && value)172 inline void SetTimeoutConfig(TimeoutConfig&& value) { m_timeoutConfigHasBeenSet = true; m_timeoutConfig = std::move(value); } 173 174 /** 175 * <p>Timeout configuration for a tunnel.</p> 176 */ WithTimeoutConfig(const TimeoutConfig & value)177 inline OpenTunnelRequest& WithTimeoutConfig(const TimeoutConfig& value) { SetTimeoutConfig(value); return *this;} 178 179 /** 180 * <p>Timeout configuration for a tunnel.</p> 181 */ WithTimeoutConfig(TimeoutConfig && value)182 inline OpenTunnelRequest& WithTimeoutConfig(TimeoutConfig&& value) { SetTimeoutConfig(std::move(value)); return *this;} 183 184 private: 185 186 Aws::String m_description; 187 bool m_descriptionHasBeenSet; 188 189 Aws::Vector<Tag> m_tags; 190 bool m_tagsHasBeenSet; 191 192 DestinationConfig m_destinationConfig; 193 bool m_destinationConfigHasBeenSet; 194 195 TimeoutConfig m_timeoutConfig; 196 bool m_timeoutConfigHasBeenSet; 197 }; 198 199 } // namespace Model 200 } // namespace IoTSecureTunneling 201 } // namespace Aws 202