Skip to content

Commit cc79f0d

Browse files
This release adds support to view Network firewall proxy appliances attached to an existing NAT Gateway via DescribeNatGateways API NatGatewayAttachedAppliance structure.
Adds support for new route53 feature: accelerated recovery. Add support for policy operations on the S3_POLICY and BEDROCK_POLICY policy type. Network Firewall release of the Proxy feature.
1 parent 4163c8b commit cc79f0d

File tree

199 files changed

+17106
-249
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

199 files changed

+17106
-249
lines changed

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.11.698
1+
1.11.699

generated/src/aws-cpp-sdk-ec2/include/aws/ec2/model/NatGateway.h

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
#include <aws/ec2/model/AvailabilityMode.h>
1515
#include <aws/ec2/model/ConnectivityType.h>
1616
#include <aws/ec2/model/NatGatewayAddress.h>
17+
#include <aws/ec2/model/NatGatewayAttachedAppliance.h>
1718
#include <aws/ec2/model/NatGatewayState.h>
1819
#include <aws/ec2/model/ProvisionedBandwidth.h>
1920
#include <aws/ec2/model/Tag.h>
@@ -370,6 +371,31 @@ class NatGateway {
370371
}
371372
///@}
372373

374+
///@{
375+
/**
376+
* <p>The proxy appliances attached to the NAT Gateway for filtering and inspecting
377+
* traffic to prevent data exfiltration.</p>
378+
*/
379+
inline const Aws::Vector<NatGatewayAttachedAppliance>& GetAttachedAppliances() const { return m_attachedAppliances; }
380+
inline bool AttachedAppliancesHasBeenSet() const { return m_attachedAppliancesHasBeenSet; }
381+
template <typename AttachedAppliancesT = Aws::Vector<NatGatewayAttachedAppliance>>
382+
void SetAttachedAppliances(AttachedAppliancesT&& value) {
383+
m_attachedAppliancesHasBeenSet = true;
384+
m_attachedAppliances = std::forward<AttachedAppliancesT>(value);
385+
}
386+
template <typename AttachedAppliancesT = Aws::Vector<NatGatewayAttachedAppliance>>
387+
NatGateway& WithAttachedAppliances(AttachedAppliancesT&& value) {
388+
SetAttachedAppliances(std::forward<AttachedAppliancesT>(value));
389+
return *this;
390+
}
391+
template <typename AttachedAppliancesT = NatGatewayAttachedAppliance>
392+
NatGateway& AddAttachedAppliances(AttachedAppliancesT&& value) {
393+
m_attachedAppliancesHasBeenSet = true;
394+
m_attachedAppliances.emplace_back(std::forward<AttachedAppliancesT>(value));
395+
return *this;
396+
}
397+
///@}
398+
373399
///@{
374400
/**
375401
* <p>For regional NAT gateways only, this is the ID of the NAT gateway.</p>
@@ -433,6 +459,9 @@ class NatGateway {
433459
AutoProvisionZonesState m_autoProvisionZones{AutoProvisionZonesState::NOT_SET};
434460
bool m_autoProvisionZonesHasBeenSet = false;
435461

462+
Aws::Vector<NatGatewayAttachedAppliance> m_attachedAppliances;
463+
bool m_attachedAppliancesHasBeenSet = false;
464+
436465
Aws::String m_routeTableId;
437466
bool m_routeTableIdHasBeenSet = false;
438467
};
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
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/AWSString.h>
8+
#include <aws/ec2/EC2_EXPORTS.h>
9+
10+
namespace Aws {
11+
namespace EC2 {
12+
namespace Model {
13+
enum class NatGatewayApplianceModifyState { NOT_SET, modifying, completed, failed };
14+
15+
namespace NatGatewayApplianceModifyStateMapper {
16+
AWS_EC2_API NatGatewayApplianceModifyState GetNatGatewayApplianceModifyStateForName(const Aws::String& name);
17+
18+
AWS_EC2_API Aws::String GetNameForNatGatewayApplianceModifyState(NatGatewayApplianceModifyState value);
19+
} // namespace NatGatewayApplianceModifyStateMapper
20+
} // namespace Model
21+
} // namespace EC2
22+
} // namespace Aws
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
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/AWSString.h>
8+
#include <aws/ec2/EC2_EXPORTS.h>
9+
10+
namespace Aws {
11+
namespace EC2 {
12+
namespace Model {
13+
enum class NatGatewayApplianceState { NOT_SET, attaching, attached, detaching, detached, attach_failed, detach_failed };
14+
15+
namespace NatGatewayApplianceStateMapper {
16+
AWS_EC2_API NatGatewayApplianceState GetNatGatewayApplianceStateForName(const Aws::String& name);
17+
18+
AWS_EC2_API Aws::String GetNameForNatGatewayApplianceState(NatGatewayApplianceState value);
19+
} // namespace NatGatewayApplianceStateMapper
20+
} // namespace Model
21+
} // namespace EC2
22+
} // namespace Aws
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
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/AWSString.h>
8+
#include <aws/ec2/EC2_EXPORTS.h>
9+
10+
namespace Aws {
11+
namespace EC2 {
12+
namespace Model {
13+
enum class NatGatewayApplianceType { NOT_SET, network_firewall_proxy };
14+
15+
namespace NatGatewayApplianceTypeMapper {
16+
AWS_EC2_API NatGatewayApplianceType GetNatGatewayApplianceTypeForName(const Aws::String& name);
17+
18+
AWS_EC2_API Aws::String GetNameForNatGatewayApplianceType(NatGatewayApplianceType value);
19+
} // namespace NatGatewayApplianceTypeMapper
20+
} // namespace Model
21+
} // namespace EC2
22+
} // namespace Aws
Lines changed: 190 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,190 @@
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

generated/src/aws-cpp-sdk-ec2/source/model/NatGateway.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,17 @@ NatGateway& NatGateway::operator=(const XmlNode& xmlNode) {
117117
StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(autoProvisionZonesNode.GetText()).c_str()));
118118
m_autoProvisionZonesHasBeenSet = true;
119119
}
120+
XmlNode attachedAppliancesNode = resultNode.FirstChild("attachedApplianceSet");
121+
if (!attachedAppliancesNode.IsNull()) {
122+
XmlNode attachedAppliancesMember = attachedAppliancesNode.FirstChild("item");
123+
m_attachedAppliancesHasBeenSet = !attachedAppliancesMember.IsNull();
124+
while (!attachedAppliancesMember.IsNull()) {
125+
m_attachedAppliances.push_back(attachedAppliancesMember);
126+
attachedAppliancesMember = attachedAppliancesMember.NextNode("item");
127+
}
128+
129+
m_attachedAppliancesHasBeenSet = true;
130+
}
120131
XmlNode routeTableIdNode = resultNode.FirstChild("routeTableId");
121132
if (!routeTableIdNode.IsNull()) {
122133
m_routeTableId = Aws::Utils::Xml::DecodeEscapedXmlText(routeTableIdNode.GetText());
@@ -210,6 +221,15 @@ void NatGateway::OutputToStream(Aws::OStream& oStream, const char* location, uns
210221
<< StringUtils::URLEncode(AutoProvisionZonesStateMapper::GetNameForAutoProvisionZonesState(m_autoProvisionZones)) << "&";
211222
}
212223

224+
if (m_attachedAppliancesHasBeenSet) {
225+
unsigned attachedAppliancesIdx = 1;
226+
for (auto& item : m_attachedAppliances) {
227+
Aws::StringStream attachedAppliancesSs;
228+
attachedAppliancesSs << location << index << locationValue << ".AttachedApplianceSet." << attachedAppliancesIdx++;
229+
item.OutputToStream(oStream, attachedAppliancesSs.str().c_str());
230+
}
231+
}
232+
213233
if (m_routeTableIdHasBeenSet) {
214234
oStream << location << index << locationValue << ".RouteTableId=" << StringUtils::URLEncode(m_routeTableId.c_str()) << "&";
215235
}
@@ -282,6 +302,14 @@ void NatGateway::OutputToStream(Aws::OStream& oStream, const char* location) con
282302
oStream << location << ".AutoProvisionZones="
283303
<< StringUtils::URLEncode(AutoProvisionZonesStateMapper::GetNameForAutoProvisionZonesState(m_autoProvisionZones)) << "&";
284304
}
305+
if (m_attachedAppliancesHasBeenSet) {
306+
unsigned attachedAppliancesIdx = 1;
307+
for (auto& item : m_attachedAppliances) {
308+
Aws::StringStream attachedAppliancesSs;
309+
attachedAppliancesSs << location << ".AttachedApplianceSet." << attachedAppliancesIdx++;
310+
item.OutputToStream(oStream, attachedAppliancesSs.str().c_str());
311+
}
312+
}
285313
if (m_routeTableIdHasBeenSet) {
286314
oStream << location << ".RouteTableId=" << StringUtils::URLEncode(m_routeTableId.c_str()) << "&";
287315
}

0 commit comments

Comments
 (0)