/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace VPCLattice { namespace Model { /** *

Describes the constraints for a header match. Matches incoming requests with * rule based on request header value before applying rule action.

See * Also:

AWS * API Reference

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

Indicates whether the match is case sensitive. Defaults to false.

*/ inline bool GetCaseSensitive() const{ return m_caseSensitive; } /** *

Indicates whether the match is case sensitive. Defaults to false.

*/ inline bool CaseSensitiveHasBeenSet() const { return m_caseSensitiveHasBeenSet; } /** *

Indicates whether the match is case sensitive. Defaults to false.

*/ inline void SetCaseSensitive(bool value) { m_caseSensitiveHasBeenSet = true; m_caseSensitive = value; } /** *

Indicates whether the match is case sensitive. Defaults to false.

*/ inline HeaderMatch& WithCaseSensitive(bool value) { SetCaseSensitive(value); return *this;} /** *

The header match type.

*/ inline const HeaderMatchType& GetMatch() const{ return m_match; } /** *

The header match type.

*/ inline bool MatchHasBeenSet() const { return m_matchHasBeenSet; } /** *

The header match type.

*/ inline void SetMatch(const HeaderMatchType& value) { m_matchHasBeenSet = true; m_match = value; } /** *

The header match type.

*/ inline void SetMatch(HeaderMatchType&& value) { m_matchHasBeenSet = true; m_match = std::move(value); } /** *

The header match type.

*/ inline HeaderMatch& WithMatch(const HeaderMatchType& value) { SetMatch(value); return *this;} /** *

The header match type.

*/ inline HeaderMatch& WithMatch(HeaderMatchType&& value) { SetMatch(std::move(value)); return *this;} /** *

The name of the header.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name of the header.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name of the header.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name of the header.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name of the header.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name of the header.

*/ inline HeaderMatch& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the header.

*/ inline HeaderMatch& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name of the header.

*/ inline HeaderMatch& WithName(const char* value) { SetName(value); return *this;} private: bool m_caseSensitive; bool m_caseSensitiveHasBeenSet = false; HeaderMatchType m_match; bool m_matchHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; }; } // namespace Model } // namespace VPCLattice } // namespace Aws