|
| 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/core/utils/memory/stl/AWSStreamFwd.h> |
| 8 | +#include <aws/core/utils/memory/stl/AWSString.h> |
| 9 | +#include <aws/ec2/EC2_EXPORTS.h> |
| 10 | +#include <aws/ec2/model/NatGatewayApplianceModifyState.h> |
| 11 | +#include <aws/ec2/model/NatGatewayApplianceState.h> |
| 12 | +#include <aws/ec2/model/NatGatewayApplianceType.h> |
| 13 | + |
| 14 | +#include <utility> |
| 15 | + |
| 16 | +namespace Aws { |
| 17 | +namespace Utils { |
| 18 | +namespace Xml { |
| 19 | +class XmlNode; |
| 20 | +} // namespace Xml |
| 21 | +} // namespace Utils |
| 22 | +namespace EC2 { |
| 23 | +namespace Model { |
| 24 | + |
| 25 | +/** |
| 26 | + * <p>Information about an appliance attached to a NAT Gateway, providing managed |
| 27 | + * security solutions for traffic filtering and inspection.</p><p><h3>See |
| 28 | + * Also:</h3> <a |
| 29 | + * href="http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/NatGatewayAttachedAppliance">AWS |
| 30 | + * API Reference</a></p> |
| 31 | + */ |
| 32 | +class NatGatewayAttachedAppliance { |
| 33 | + public: |
| 34 | + AWS_EC2_API NatGatewayAttachedAppliance() = default; |
| 35 | + AWS_EC2_API NatGatewayAttachedAppliance(const Aws::Utils::Xml::XmlNode& xmlNode); |
| 36 | + AWS_EC2_API NatGatewayAttachedAppliance& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); |
| 37 | + |
| 38 | + AWS_EC2_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; |
| 39 | + AWS_EC2_API void OutputToStream(Aws::OStream& oStream, const char* location) const; |
| 40 | + |
| 41 | + ///@{ |
| 42 | + /** |
| 43 | + * <p>The type of appliance attached to the NAT Gateway. For network firewall proxy |
| 44 | + * functionality, this will be "network-firewall-proxy".</p> |
| 45 | + */ |
| 46 | + inline NatGatewayApplianceType GetType() const { return m_type; } |
| 47 | + inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } |
| 48 | + inline void SetType(NatGatewayApplianceType value) { |
| 49 | + m_typeHasBeenSet = true; |
| 50 | + m_type = value; |
| 51 | + } |
| 52 | + inline NatGatewayAttachedAppliance& WithType(NatGatewayApplianceType value) { |
| 53 | + SetType(value); |
| 54 | + return *this; |
| 55 | + } |
| 56 | + ///@} |
| 57 | + |
| 58 | + ///@{ |
| 59 | + /** |
| 60 | + * <p>The Amazon Resource Name (ARN) of the attached appliance, identifying the |
| 61 | + * specific proxy or security appliance resource.</p> |
| 62 | + */ |
| 63 | + inline const Aws::String& GetApplianceArn() const { return m_applianceArn; } |
| 64 | + inline bool ApplianceArnHasBeenSet() const { return m_applianceArnHasBeenSet; } |
| 65 | + template <typename ApplianceArnT = Aws::String> |
| 66 | + void SetApplianceArn(ApplianceArnT&& value) { |
| 67 | + m_applianceArnHasBeenSet = true; |
| 68 | + m_applianceArn = std::forward<ApplianceArnT>(value); |
| 69 | + } |
| 70 | + template <typename ApplianceArnT = Aws::String> |
| 71 | + NatGatewayAttachedAppliance& WithApplianceArn(ApplianceArnT&& value) { |
| 72 | + SetApplianceArn(std::forward<ApplianceArnT>(value)); |
| 73 | + return *this; |
| 74 | + } |
| 75 | + ///@} |
| 76 | + |
| 77 | + ///@{ |
| 78 | + /** |
| 79 | + * <p>The VPC endpoint ID used to route traffic from application VPCs to the proxy |
| 80 | + * for inspection and filtering.</p> |
| 81 | + */ |
| 82 | + inline const Aws::String& GetVpcEndpointId() const { return m_vpcEndpointId; } |
| 83 | + inline bool VpcEndpointIdHasBeenSet() const { return m_vpcEndpointIdHasBeenSet; } |
| 84 | + template <typename VpcEndpointIdT = Aws::String> |
| 85 | + void SetVpcEndpointId(VpcEndpointIdT&& value) { |
| 86 | + m_vpcEndpointIdHasBeenSet = true; |
| 87 | + m_vpcEndpointId = std::forward<VpcEndpointIdT>(value); |
| 88 | + } |
| 89 | + template <typename VpcEndpointIdT = Aws::String> |
| 90 | + NatGatewayAttachedAppliance& WithVpcEndpointId(VpcEndpointIdT&& value) { |
| 91 | + SetVpcEndpointId(std::forward<VpcEndpointIdT>(value)); |
| 92 | + return *this; |
| 93 | + } |
| 94 | + ///@} |
| 95 | + |
| 96 | + ///@{ |
| 97 | + /** |
| 98 | + * <p>The current attachment state of the appliance.</p> |
| 99 | + */ |
| 100 | + inline NatGatewayApplianceState GetAttachmentState() const { return m_attachmentState; } |
| 101 | + inline bool AttachmentStateHasBeenSet() const { return m_attachmentStateHasBeenSet; } |
| 102 | + inline void SetAttachmentState(NatGatewayApplianceState value) { |
| 103 | + m_attachmentStateHasBeenSet = true; |
| 104 | + m_attachmentState = value; |
| 105 | + } |
| 106 | + inline NatGatewayAttachedAppliance& WithAttachmentState(NatGatewayApplianceState value) { |
| 107 | + SetAttachmentState(value); |
| 108 | + return *this; |
| 109 | + } |
| 110 | + ///@} |
| 111 | + |
| 112 | + ///@{ |
| 113 | + /** |
| 114 | + * <p>The current modification state of the appliance.</p> |
| 115 | + */ |
| 116 | + inline NatGatewayApplianceModifyState GetModificationState() const { return m_modificationState; } |
| 117 | + inline bool ModificationStateHasBeenSet() const { return m_modificationStateHasBeenSet; } |
| 118 | + inline void SetModificationState(NatGatewayApplianceModifyState value) { |
| 119 | + m_modificationStateHasBeenSet = true; |
| 120 | + m_modificationState = value; |
| 121 | + } |
| 122 | + inline NatGatewayAttachedAppliance& WithModificationState(NatGatewayApplianceModifyState value) { |
| 123 | + SetModificationState(value); |
| 124 | + return *this; |
| 125 | + } |
| 126 | + ///@} |
| 127 | + |
| 128 | + ///@{ |
| 129 | + /** |
| 130 | + * <p>The failure code if the appliance attachment or modification operation |
| 131 | + * failed.</p> |
| 132 | + */ |
| 133 | + inline const Aws::String& GetFailureCode() const { return m_failureCode; } |
| 134 | + inline bool FailureCodeHasBeenSet() const { return m_failureCodeHasBeenSet; } |
| 135 | + template <typename FailureCodeT = Aws::String> |
| 136 | + void SetFailureCode(FailureCodeT&& value) { |
| 137 | + m_failureCodeHasBeenSet = true; |
| 138 | + m_failureCode = std::forward<FailureCodeT>(value); |
| 139 | + } |
| 140 | + template <typename FailureCodeT = Aws::String> |
| 141 | + NatGatewayAttachedAppliance& WithFailureCode(FailureCodeT&& value) { |
| 142 | + SetFailureCode(std::forward<FailureCodeT>(value)); |
| 143 | + return *this; |
| 144 | + } |
| 145 | + ///@} |
| 146 | + |
| 147 | + ///@{ |
| 148 | + /** |
| 149 | + * <p>A descriptive message explaining the failure if the appliance attachment or |
| 150 | + * modification operation failed.</p> |
| 151 | + */ |
| 152 | + inline const Aws::String& GetFailureMessage() const { return m_failureMessage; } |
| 153 | + inline bool FailureMessageHasBeenSet() const { return m_failureMessageHasBeenSet; } |
| 154 | + template <typename FailureMessageT = Aws::String> |
| 155 | + void SetFailureMessage(FailureMessageT&& value) { |
| 156 | + m_failureMessageHasBeenSet = true; |
| 157 | + m_failureMessage = std::forward<FailureMessageT>(value); |
| 158 | + } |
| 159 | + template <typename FailureMessageT = Aws::String> |
| 160 | + NatGatewayAttachedAppliance& WithFailureMessage(FailureMessageT&& value) { |
| 161 | + SetFailureMessage(std::forward<FailureMessageT>(value)); |
| 162 | + return *this; |
| 163 | + } |
| 164 | + ///@} |
| 165 | + private: |
| 166 | + NatGatewayApplianceType m_type{NatGatewayApplianceType::NOT_SET}; |
| 167 | + bool m_typeHasBeenSet = false; |
| 168 | + |
| 169 | + Aws::String m_applianceArn; |
| 170 | + bool m_applianceArnHasBeenSet = false; |
| 171 | + |
| 172 | + Aws::String m_vpcEndpointId; |
| 173 | + bool m_vpcEndpointIdHasBeenSet = false; |
| 174 | + |
| 175 | + NatGatewayApplianceState m_attachmentState{NatGatewayApplianceState::NOT_SET}; |
| 176 | + bool m_attachmentStateHasBeenSet = false; |
| 177 | + |
| 178 | + NatGatewayApplianceModifyState m_modificationState{NatGatewayApplianceModifyState::NOT_SET}; |
| 179 | + bool m_modificationStateHasBeenSet = false; |
| 180 | + |
| 181 | + Aws::String m_failureCode; |
| 182 | + bool m_failureCodeHasBeenSet = false; |
| 183 | + |
| 184 | + Aws::String m_failureMessage; |
| 185 | + bool m_failureMessageHasBeenSet = false; |
| 186 | +}; |
| 187 | + |
| 188 | +} // namespace Model |
| 189 | +} // namespace EC2 |
| 190 | +} // namespace Aws |
0 commit comments