/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include namespace Aws { namespace EC2 { namespace Model { /** */ class CreateNetworkInsightsPathRequest : public EC2Request { public: AWS_EC2_API CreateNetworkInsightsPathRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateNetworkInsightsPath"; } AWS_EC2_API Aws::String SerializePayload() const override; protected: AWS_EC2_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

The IP address of the source.

*/ inline const Aws::String& GetSourceIp() const{ return m_sourceIp; } /** *

The IP address of the source.

*/ inline bool SourceIpHasBeenSet() const { return m_sourceIpHasBeenSet; } /** *

The IP address of the source.

*/ inline void SetSourceIp(const Aws::String& value) { m_sourceIpHasBeenSet = true; m_sourceIp = value; } /** *

The IP address of the source.

*/ inline void SetSourceIp(Aws::String&& value) { m_sourceIpHasBeenSet = true; m_sourceIp = std::move(value); } /** *

The IP address of the source.

*/ inline void SetSourceIp(const char* value) { m_sourceIpHasBeenSet = true; m_sourceIp.assign(value); } /** *

The IP address of the source.

*/ inline CreateNetworkInsightsPathRequest& WithSourceIp(const Aws::String& value) { SetSourceIp(value); return *this;} /** *

The IP address of the source.

*/ inline CreateNetworkInsightsPathRequest& WithSourceIp(Aws::String&& value) { SetSourceIp(std::move(value)); return *this;} /** *

The IP address of the source.

*/ inline CreateNetworkInsightsPathRequest& WithSourceIp(const char* value) { SetSourceIp(value); return *this;} /** *

The IP address of the destination.

*/ inline const Aws::String& GetDestinationIp() const{ return m_destinationIp; } /** *

The IP address of the destination.

*/ inline bool DestinationIpHasBeenSet() const { return m_destinationIpHasBeenSet; } /** *

The IP address of the destination.

*/ inline void SetDestinationIp(const Aws::String& value) { m_destinationIpHasBeenSet = true; m_destinationIp = value; } /** *

The IP address of the destination.

*/ inline void SetDestinationIp(Aws::String&& value) { m_destinationIpHasBeenSet = true; m_destinationIp = std::move(value); } /** *

The IP address of the destination.

*/ inline void SetDestinationIp(const char* value) { m_destinationIpHasBeenSet = true; m_destinationIp.assign(value); } /** *

The IP address of the destination.

*/ inline CreateNetworkInsightsPathRequest& WithDestinationIp(const Aws::String& value) { SetDestinationIp(value); return *this;} /** *

The IP address of the destination.

*/ inline CreateNetworkInsightsPathRequest& WithDestinationIp(Aws::String&& value) { SetDestinationIp(std::move(value)); return *this;} /** *

The IP address of the destination.

*/ inline CreateNetworkInsightsPathRequest& WithDestinationIp(const char* value) { SetDestinationIp(value); return *this;} /** *

The ID or ARN of the source. If the resource is in another account, you must * specify an ARN.

*/ inline const Aws::String& GetSource() const{ return m_source; } /** *

The ID or ARN of the source. If the resource is in another account, you must * specify an ARN.

*/ inline bool SourceHasBeenSet() const { return m_sourceHasBeenSet; } /** *

The ID or ARN of the source. If the resource is in another account, you must * specify an ARN.

*/ inline void SetSource(const Aws::String& value) { m_sourceHasBeenSet = true; m_source = value; } /** *

The ID or ARN of the source. If the resource is in another account, you must * specify an ARN.

*/ inline void SetSource(Aws::String&& value) { m_sourceHasBeenSet = true; m_source = std::move(value); } /** *

The ID or ARN of the source. If the resource is in another account, you must * specify an ARN.

*/ inline void SetSource(const char* value) { m_sourceHasBeenSet = true; m_source.assign(value); } /** *

The ID or ARN of the source. If the resource is in another account, you must * specify an ARN.

*/ inline CreateNetworkInsightsPathRequest& WithSource(const Aws::String& value) { SetSource(value); return *this;} /** *

The ID or ARN of the source. If the resource is in another account, you must * specify an ARN.

*/ inline CreateNetworkInsightsPathRequest& WithSource(Aws::String&& value) { SetSource(std::move(value)); return *this;} /** *

The ID or ARN of the source. If the resource is in another account, you must * specify an ARN.

*/ inline CreateNetworkInsightsPathRequest& WithSource(const char* value) { SetSource(value); return *this;} /** *

The ID or ARN of the destination. If the resource is in another account, you * must specify an ARN.

*/ inline const Aws::String& GetDestination() const{ return m_destination; } /** *

The ID or ARN of the destination. If the resource is in another account, you * must specify an ARN.

*/ inline bool DestinationHasBeenSet() const { return m_destinationHasBeenSet; } /** *

The ID or ARN of the destination. If the resource is in another account, you * must specify an ARN.

*/ inline void SetDestination(const Aws::String& value) { m_destinationHasBeenSet = true; m_destination = value; } /** *

The ID or ARN of the destination. If the resource is in another account, you * must specify an ARN.

*/ inline void SetDestination(Aws::String&& value) { m_destinationHasBeenSet = true; m_destination = std::move(value); } /** *

The ID or ARN of the destination. If the resource is in another account, you * must specify an ARN.

*/ inline void SetDestination(const char* value) { m_destinationHasBeenSet = true; m_destination.assign(value); } /** *

The ID or ARN of the destination. If the resource is in another account, you * must specify an ARN.

*/ inline CreateNetworkInsightsPathRequest& WithDestination(const Aws::String& value) { SetDestination(value); return *this;} /** *

The ID or ARN of the destination. If the resource is in another account, you * must specify an ARN.

*/ inline CreateNetworkInsightsPathRequest& WithDestination(Aws::String&& value) { SetDestination(std::move(value)); return *this;} /** *

The ID or ARN of the destination. If the resource is in another account, you * must specify an ARN.

*/ inline CreateNetworkInsightsPathRequest& WithDestination(const char* value) { SetDestination(value); return *this;} /** *

The protocol.

*/ inline const Protocol& GetProtocol() const{ return m_protocol; } /** *

The protocol.

*/ inline bool ProtocolHasBeenSet() const { return m_protocolHasBeenSet; } /** *

The protocol.

*/ inline void SetProtocol(const Protocol& value) { m_protocolHasBeenSet = true; m_protocol = value; } /** *

The protocol.

*/ inline void SetProtocol(Protocol&& value) { m_protocolHasBeenSet = true; m_protocol = std::move(value); } /** *

The protocol.

*/ inline CreateNetworkInsightsPathRequest& WithProtocol(const Protocol& value) { SetProtocol(value); return *this;} /** *

The protocol.

*/ inline CreateNetworkInsightsPathRequest& WithProtocol(Protocol&& value) { SetProtocol(std::move(value)); return *this;} /** *

The destination port.

*/ inline int GetDestinationPort() const{ return m_destinationPort; } /** *

The destination port.

*/ inline bool DestinationPortHasBeenSet() const { return m_destinationPortHasBeenSet; } /** *

The destination port.

*/ inline void SetDestinationPort(int value) { m_destinationPortHasBeenSet = true; m_destinationPort = value; } /** *

The destination port.

*/ inline CreateNetworkInsightsPathRequest& WithDestinationPort(int value) { SetDestinationPort(value); return *this;} /** *

The tags to add to the path.

*/ inline const Aws::Vector& GetTagSpecifications() const{ return m_tagSpecifications; } /** *

The tags to add to the path.

*/ inline bool TagSpecificationsHasBeenSet() const { return m_tagSpecificationsHasBeenSet; } /** *

The tags to add to the path.

*/ inline void SetTagSpecifications(const Aws::Vector& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications = value; } /** *

The tags to add to the path.

*/ inline void SetTagSpecifications(Aws::Vector&& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications = std::move(value); } /** *

The tags to add to the path.

*/ inline CreateNetworkInsightsPathRequest& WithTagSpecifications(const Aws::Vector& value) { SetTagSpecifications(value); return *this;} /** *

The tags to add to the path.

*/ inline CreateNetworkInsightsPathRequest& WithTagSpecifications(Aws::Vector&& value) { SetTagSpecifications(std::move(value)); return *this;} /** *

The tags to add to the path.

*/ inline CreateNetworkInsightsPathRequest& AddTagSpecifications(const TagSpecification& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications.push_back(value); return *this; } /** *

The tags to add to the path.

*/ inline CreateNetworkInsightsPathRequest& AddTagSpecifications(TagSpecification&& value) { m_tagSpecificationsHasBeenSet = true; m_tagSpecifications.push_back(std::move(value)); return *this; } /** *

Checks whether you have the required permissions for the action, without * actually making the request, and provides an error response. If you have the * required permissions, the error response is DryRunOperation. * Otherwise, it is UnauthorizedOperation.

*/ inline bool GetDryRun() const{ return m_dryRun; } /** *

Checks whether you have the required permissions for the action, without * actually making the request, and provides an error response. If you have the * required permissions, the error response is DryRunOperation. * Otherwise, it is UnauthorizedOperation.

*/ inline bool DryRunHasBeenSet() const { return m_dryRunHasBeenSet; } /** *

Checks whether you have the required permissions for the action, without * actually making the request, and provides an error response. If you have the * required permissions, the error response is DryRunOperation. * Otherwise, it is UnauthorizedOperation.

*/ inline void SetDryRun(bool value) { m_dryRunHasBeenSet = true; m_dryRun = value; } /** *

Checks whether you have the required permissions for the action, without * actually making the request, and provides an error response. If you have the * required permissions, the error response is DryRunOperation. * Otherwise, it is UnauthorizedOperation.

*/ inline CreateNetworkInsightsPathRequest& WithDryRun(bool value) { SetDryRun(value); return *this;} /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. For more information, see How * to ensure idempotency.

*/ inline const Aws::String& GetClientToken() const{ return m_clientToken; } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. For more information, see How * to ensure idempotency.

*/ inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. For more information, see How * to ensure idempotency.

*/ inline void SetClientToken(const Aws::String& value) { m_clientTokenHasBeenSet = true; m_clientToken = value; } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. For more information, see How * to ensure idempotency.

*/ inline void SetClientToken(Aws::String&& value) { m_clientTokenHasBeenSet = true; m_clientToken = std::move(value); } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. For more information, see How * to ensure idempotency.

*/ inline void SetClientToken(const char* value) { m_clientTokenHasBeenSet = true; m_clientToken.assign(value); } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. For more information, see How * to ensure idempotency.

*/ inline CreateNetworkInsightsPathRequest& WithClientToken(const Aws::String& value) { SetClientToken(value); return *this;} /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. For more information, see How * to ensure idempotency.

*/ inline CreateNetworkInsightsPathRequest& WithClientToken(Aws::String&& value) { SetClientToken(std::move(value)); return *this;} /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. For more information, see How * to ensure idempotency.

*/ inline CreateNetworkInsightsPathRequest& WithClientToken(const char* value) { SetClientToken(value); return *this;} /** *

Scopes the analysis to network paths that match specific filters at the * source. If you specify this parameter, you can't specify the parameters for the * source IP address or the destination port.

*/ inline const PathRequestFilter& GetFilterAtSource() const{ return m_filterAtSource; } /** *

Scopes the analysis to network paths that match specific filters at the * source. If you specify this parameter, you can't specify the parameters for the * source IP address or the destination port.

*/ inline bool FilterAtSourceHasBeenSet() const { return m_filterAtSourceHasBeenSet; } /** *

Scopes the analysis to network paths that match specific filters at the * source. If you specify this parameter, you can't specify the parameters for the * source IP address or the destination port.

*/ inline void SetFilterAtSource(const PathRequestFilter& value) { m_filterAtSourceHasBeenSet = true; m_filterAtSource = value; } /** *

Scopes the analysis to network paths that match specific filters at the * source. If you specify this parameter, you can't specify the parameters for the * source IP address or the destination port.

*/ inline void SetFilterAtSource(PathRequestFilter&& value) { m_filterAtSourceHasBeenSet = true; m_filterAtSource = std::move(value); } /** *

Scopes the analysis to network paths that match specific filters at the * source. If you specify this parameter, you can't specify the parameters for the * source IP address or the destination port.

*/ inline CreateNetworkInsightsPathRequest& WithFilterAtSource(const PathRequestFilter& value) { SetFilterAtSource(value); return *this;} /** *

Scopes the analysis to network paths that match specific filters at the * source. If you specify this parameter, you can't specify the parameters for the * source IP address or the destination port.

*/ inline CreateNetworkInsightsPathRequest& WithFilterAtSource(PathRequestFilter&& value) { SetFilterAtSource(std::move(value)); return *this;} /** *

Scopes the analysis to network paths that match specific filters at the * destination. If you specify this parameter, you can't specify the parameter for * the destination IP address.

*/ inline const PathRequestFilter& GetFilterAtDestination() const{ return m_filterAtDestination; } /** *

Scopes the analysis to network paths that match specific filters at the * destination. If you specify this parameter, you can't specify the parameter for * the destination IP address.

*/ inline bool FilterAtDestinationHasBeenSet() const { return m_filterAtDestinationHasBeenSet; } /** *

Scopes the analysis to network paths that match specific filters at the * destination. If you specify this parameter, you can't specify the parameter for * the destination IP address.

*/ inline void SetFilterAtDestination(const PathRequestFilter& value) { m_filterAtDestinationHasBeenSet = true; m_filterAtDestination = value; } /** *

Scopes the analysis to network paths that match specific filters at the * destination. If you specify this parameter, you can't specify the parameter for * the destination IP address.

*/ inline void SetFilterAtDestination(PathRequestFilter&& value) { m_filterAtDestinationHasBeenSet = true; m_filterAtDestination = std::move(value); } /** *

Scopes the analysis to network paths that match specific filters at the * destination. If you specify this parameter, you can't specify the parameter for * the destination IP address.

*/ inline CreateNetworkInsightsPathRequest& WithFilterAtDestination(const PathRequestFilter& value) { SetFilterAtDestination(value); return *this;} /** *

Scopes the analysis to network paths that match specific filters at the * destination. If you specify this parameter, you can't specify the parameter for * the destination IP address.

*/ inline CreateNetworkInsightsPathRequest& WithFilterAtDestination(PathRequestFilter&& value) { SetFilterAtDestination(std::move(value)); return *this;} private: Aws::String m_sourceIp; bool m_sourceIpHasBeenSet = false; Aws::String m_destinationIp; bool m_destinationIpHasBeenSet = false; Aws::String m_source; bool m_sourceHasBeenSet = false; Aws::String m_destination; bool m_destinationHasBeenSet = false; Protocol m_protocol; bool m_protocolHasBeenSet = false; int m_destinationPort; bool m_destinationPortHasBeenSet = false; Aws::Vector m_tagSpecifications; bool m_tagSpecificationsHasBeenSet = false; bool m_dryRun; bool m_dryRunHasBeenSet = false; Aws::String m_clientToken; bool m_clientTokenHasBeenSet = false; PathRequestFilter m_filterAtSource; bool m_filterAtSourceHasBeenSet = false; PathRequestFilter m_filterAtDestination; bool m_filterAtDestinationHasBeenSet = false; }; } // namespace Model } // namespace EC2 } // namespace Aws