/** * 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 WAF { namespace Model { /** *

This is AWS WAF Classic documentation. For more information, * see AWS * WAF Classic in the developer guide.

For the latest version of AWS * WAF, use the AWS WAFV2 API and see the AWS * WAF Developer Guide. With the latest version, AWS WAF has a single set of * endpoints for regional and global use.

The response from a * GetSampledRequests request includes an HTTPRequest complex * type that appears as Request in the response syntax. * HTTPRequest contains information about one of the web requests that * were returned by GetSampledRequests.

See Also:

AWS API * Reference

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

The IP address that the request originated from. If the WebACL * is associated with a CloudFront distribution, this is the value of one of the * following fields in CloudFront access logs:

  • c-ip, * if the viewer did not use an HTTP proxy or a load balancer to send the * request

  • x-forwarded-for, if the viewer did use * an HTTP proxy or a load balancer to send the request

*/ inline const Aws::String& GetClientIP() const{ return m_clientIP; } /** *

The IP address that the request originated from. If the WebACL * is associated with a CloudFront distribution, this is the value of one of the * following fields in CloudFront access logs:

  • c-ip, * if the viewer did not use an HTTP proxy or a load balancer to send the * request

  • x-forwarded-for, if the viewer did use * an HTTP proxy or a load balancer to send the request

*/ inline bool ClientIPHasBeenSet() const { return m_clientIPHasBeenSet; } /** *

The IP address that the request originated from. If the WebACL * is associated with a CloudFront distribution, this is the value of one of the * following fields in CloudFront access logs:

  • c-ip, * if the viewer did not use an HTTP proxy or a load balancer to send the * request

  • x-forwarded-for, if the viewer did use * an HTTP proxy or a load balancer to send the request

*/ inline void SetClientIP(const Aws::String& value) { m_clientIPHasBeenSet = true; m_clientIP = value; } /** *

The IP address that the request originated from. If the WebACL * is associated with a CloudFront distribution, this is the value of one of the * following fields in CloudFront access logs:

  • c-ip, * if the viewer did not use an HTTP proxy or a load balancer to send the * request

  • x-forwarded-for, if the viewer did use * an HTTP proxy or a load balancer to send the request

*/ inline void SetClientIP(Aws::String&& value) { m_clientIPHasBeenSet = true; m_clientIP = std::move(value); } /** *

The IP address that the request originated from. If the WebACL * is associated with a CloudFront distribution, this is the value of one of the * following fields in CloudFront access logs:

  • c-ip, * if the viewer did not use an HTTP proxy or a load balancer to send the * request

  • x-forwarded-for, if the viewer did use * an HTTP proxy or a load balancer to send the request

*/ inline void SetClientIP(const char* value) { m_clientIPHasBeenSet = true; m_clientIP.assign(value); } /** *

The IP address that the request originated from. If the WebACL * is associated with a CloudFront distribution, this is the value of one of the * following fields in CloudFront access logs:

  • c-ip, * if the viewer did not use an HTTP proxy or a load balancer to send the * request

  • x-forwarded-for, if the viewer did use * an HTTP proxy or a load balancer to send the request

*/ inline HTTPRequest& WithClientIP(const Aws::String& value) { SetClientIP(value); return *this;} /** *

The IP address that the request originated from. If the WebACL * is associated with a CloudFront distribution, this is the value of one of the * following fields in CloudFront access logs:

  • c-ip, * if the viewer did not use an HTTP proxy or a load balancer to send the * request

  • x-forwarded-for, if the viewer did use * an HTTP proxy or a load balancer to send the request

*/ inline HTTPRequest& WithClientIP(Aws::String&& value) { SetClientIP(std::move(value)); return *this;} /** *

The IP address that the request originated from. If the WebACL * is associated with a CloudFront distribution, this is the value of one of the * following fields in CloudFront access logs:

  • c-ip, * if the viewer did not use an HTTP proxy or a load balancer to send the * request

  • x-forwarded-for, if the viewer did use * an HTTP proxy or a load balancer to send the request

*/ inline HTTPRequest& WithClientIP(const char* value) { SetClientIP(value); return *this;} /** *

The two-letter country code for the country that the request originated from. * For a current list of country codes, see the Wikipedia entry ISO 3166-1 * alpha-2.

*/ inline const Aws::String& GetCountry() const{ return m_country; } /** *

The two-letter country code for the country that the request originated from. * For a current list of country codes, see the Wikipedia entry ISO 3166-1 * alpha-2.

*/ inline bool CountryHasBeenSet() const { return m_countryHasBeenSet; } /** *

The two-letter country code for the country that the request originated from. * For a current list of country codes, see the Wikipedia entry ISO 3166-1 * alpha-2.

*/ inline void SetCountry(const Aws::String& value) { m_countryHasBeenSet = true; m_country = value; } /** *

The two-letter country code for the country that the request originated from. * For a current list of country codes, see the Wikipedia entry ISO 3166-1 * alpha-2.

*/ inline void SetCountry(Aws::String&& value) { m_countryHasBeenSet = true; m_country = std::move(value); } /** *

The two-letter country code for the country that the request originated from. * For a current list of country codes, see the Wikipedia entry ISO 3166-1 * alpha-2.

*/ inline void SetCountry(const char* value) { m_countryHasBeenSet = true; m_country.assign(value); } /** *

The two-letter country code for the country that the request originated from. * For a current list of country codes, see the Wikipedia entry ISO 3166-1 * alpha-2.

*/ inline HTTPRequest& WithCountry(const Aws::String& value) { SetCountry(value); return *this;} /** *

The two-letter country code for the country that the request originated from. * For a current list of country codes, see the Wikipedia entry ISO 3166-1 * alpha-2.

*/ inline HTTPRequest& WithCountry(Aws::String&& value) { SetCountry(std::move(value)); return *this;} /** *

The two-letter country code for the country that the request originated from. * For a current list of country codes, see the Wikipedia entry ISO 3166-1 * alpha-2.

*/ inline HTTPRequest& WithCountry(const char* value) { SetCountry(value); return *this;} /** *

The part of a web request that identifies the resource, for example, * /images/daily-ad.jpg.

*/ inline const Aws::String& GetURI() const{ return m_uRI; } /** *

The part of a web request that identifies the resource, for example, * /images/daily-ad.jpg.

*/ inline bool URIHasBeenSet() const { return m_uRIHasBeenSet; } /** *

The part of a web request that identifies the resource, for example, * /images/daily-ad.jpg.

*/ inline void SetURI(const Aws::String& value) { m_uRIHasBeenSet = true; m_uRI = value; } /** *

The part of a web request that identifies the resource, for example, * /images/daily-ad.jpg.

*/ inline void SetURI(Aws::String&& value) { m_uRIHasBeenSet = true; m_uRI = std::move(value); } /** *

The part of a web request that identifies the resource, for example, * /images/daily-ad.jpg.

*/ inline void SetURI(const char* value) { m_uRIHasBeenSet = true; m_uRI.assign(value); } /** *

The part of a web request that identifies the resource, for example, * /images/daily-ad.jpg.

*/ inline HTTPRequest& WithURI(const Aws::String& value) { SetURI(value); return *this;} /** *

The part of a web request that identifies the resource, for example, * /images/daily-ad.jpg.

*/ inline HTTPRequest& WithURI(Aws::String&& value) { SetURI(std::move(value)); return *this;} /** *

The part of a web request that identifies the resource, for example, * /images/daily-ad.jpg.

*/ inline HTTPRequest& WithURI(const char* value) { SetURI(value); return *this;} /** *

The HTTP method specified in the sampled web request. CloudFront supports the * following methods: DELETE, GET, HEAD, * OPTIONS, PATCH, POST, and * PUT.

*/ inline const Aws::String& GetMethod() const{ return m_method; } /** *

The HTTP method specified in the sampled web request. CloudFront supports the * following methods: DELETE, GET, HEAD, * OPTIONS, PATCH, POST, and * PUT.

*/ inline bool MethodHasBeenSet() const { return m_methodHasBeenSet; } /** *

The HTTP method specified in the sampled web request. CloudFront supports the * following methods: DELETE, GET, HEAD, * OPTIONS, PATCH, POST, and * PUT.

*/ inline void SetMethod(const Aws::String& value) { m_methodHasBeenSet = true; m_method = value; } /** *

The HTTP method specified in the sampled web request. CloudFront supports the * following methods: DELETE, GET, HEAD, * OPTIONS, PATCH, POST, and * PUT.

*/ inline void SetMethod(Aws::String&& value) { m_methodHasBeenSet = true; m_method = std::move(value); } /** *

The HTTP method specified in the sampled web request. CloudFront supports the * following methods: DELETE, GET, HEAD, * OPTIONS, PATCH, POST, and * PUT.

*/ inline void SetMethod(const char* value) { m_methodHasBeenSet = true; m_method.assign(value); } /** *

The HTTP method specified in the sampled web request. CloudFront supports the * following methods: DELETE, GET, HEAD, * OPTIONS, PATCH, POST, and * PUT.

*/ inline HTTPRequest& WithMethod(const Aws::String& value) { SetMethod(value); return *this;} /** *

The HTTP method specified in the sampled web request. CloudFront supports the * following methods: DELETE, GET, HEAD, * OPTIONS, PATCH, POST, and * PUT.

*/ inline HTTPRequest& WithMethod(Aws::String&& value) { SetMethod(std::move(value)); return *this;} /** *

The HTTP method specified in the sampled web request. CloudFront supports the * following methods: DELETE, GET, HEAD, * OPTIONS, PATCH, POST, and * PUT.

*/ inline HTTPRequest& WithMethod(const char* value) { SetMethod(value); return *this;} /** *

The HTTP version specified in the sampled web request, for example, * HTTP/1.1.

*/ inline const Aws::String& GetHTTPVersion() const{ return m_hTTPVersion; } /** *

The HTTP version specified in the sampled web request, for example, * HTTP/1.1.

*/ inline bool HTTPVersionHasBeenSet() const { return m_hTTPVersionHasBeenSet; } /** *

The HTTP version specified in the sampled web request, for example, * HTTP/1.1.

*/ inline void SetHTTPVersion(const Aws::String& value) { m_hTTPVersionHasBeenSet = true; m_hTTPVersion = value; } /** *

The HTTP version specified in the sampled web request, for example, * HTTP/1.1.

*/ inline void SetHTTPVersion(Aws::String&& value) { m_hTTPVersionHasBeenSet = true; m_hTTPVersion = std::move(value); } /** *

The HTTP version specified in the sampled web request, for example, * HTTP/1.1.

*/ inline void SetHTTPVersion(const char* value) { m_hTTPVersionHasBeenSet = true; m_hTTPVersion.assign(value); } /** *

The HTTP version specified in the sampled web request, for example, * HTTP/1.1.

*/ inline HTTPRequest& WithHTTPVersion(const Aws::String& value) { SetHTTPVersion(value); return *this;} /** *

The HTTP version specified in the sampled web request, for example, * HTTP/1.1.

*/ inline HTTPRequest& WithHTTPVersion(Aws::String&& value) { SetHTTPVersion(std::move(value)); return *this;} /** *

The HTTP version specified in the sampled web request, for example, * HTTP/1.1.

*/ inline HTTPRequest& WithHTTPVersion(const char* value) { SetHTTPVersion(value); return *this;} /** *

A complex type that contains two values for each header in the sampled web * request: the name of the header and the value of the header.

*/ inline const Aws::Vector& GetHeaders() const{ return m_headers; } /** *

A complex type that contains two values for each header in the sampled web * request: the name of the header and the value of the header.

*/ inline bool HeadersHasBeenSet() const { return m_headersHasBeenSet; } /** *

A complex type that contains two values for each header in the sampled web * request: the name of the header and the value of the header.

*/ inline void SetHeaders(const Aws::Vector& value) { m_headersHasBeenSet = true; m_headers = value; } /** *

A complex type that contains two values for each header in the sampled web * request: the name of the header and the value of the header.

*/ inline void SetHeaders(Aws::Vector&& value) { m_headersHasBeenSet = true; m_headers = std::move(value); } /** *

A complex type that contains two values for each header in the sampled web * request: the name of the header and the value of the header.

*/ inline HTTPRequest& WithHeaders(const Aws::Vector& value) { SetHeaders(value); return *this;} /** *

A complex type that contains two values for each header in the sampled web * request: the name of the header and the value of the header.

*/ inline HTTPRequest& WithHeaders(Aws::Vector&& value) { SetHeaders(std::move(value)); return *this;} /** *

A complex type that contains two values for each header in the sampled web * request: the name of the header and the value of the header.

*/ inline HTTPRequest& AddHeaders(const HTTPHeader& value) { m_headersHasBeenSet = true; m_headers.push_back(value); return *this; } /** *

A complex type that contains two values for each header in the sampled web * request: the name of the header and the value of the header.

*/ inline HTTPRequest& AddHeaders(HTTPHeader&& value) { m_headersHasBeenSet = true; m_headers.push_back(std::move(value)); return *this; } private: Aws::String m_clientIP; bool m_clientIPHasBeenSet = false; Aws::String m_country; bool m_countryHasBeenSet = false; Aws::String m_uRI; bool m_uRIHasBeenSet = false; Aws::String m_method; bool m_methodHasBeenSet = false; Aws::String m_hTTPVersion; bool m_hTTPVersionHasBeenSet = false; Aws::Vector m_headers; bool m_headersHasBeenSet = false; }; } // namespace Model } // namespace WAF } // namespace Aws