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

Information about a policy used for SSL negotiation.

See Also:

* AWS * API Reference

*/ class SslPolicy { public: AWS_ELASTICLOADBALANCINGV2_API SslPolicy(); AWS_ELASTICLOADBALANCINGV2_API SslPolicy(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_ELASTICLOADBALANCINGV2_API SslPolicy& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_ELASTICLOADBALANCINGV2_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; AWS_ELASTICLOADBALANCINGV2_API void OutputToStream(Aws::OStream& oStream, const char* location) const; /** *

The protocols.

*/ inline const Aws::Vector& GetSslProtocols() const{ return m_sslProtocols; } /** *

The protocols.

*/ inline bool SslProtocolsHasBeenSet() const { return m_sslProtocolsHasBeenSet; } /** *

The protocols.

*/ inline void SetSslProtocols(const Aws::Vector& value) { m_sslProtocolsHasBeenSet = true; m_sslProtocols = value; } /** *

The protocols.

*/ inline void SetSslProtocols(Aws::Vector&& value) { m_sslProtocolsHasBeenSet = true; m_sslProtocols = std::move(value); } /** *

The protocols.

*/ inline SslPolicy& WithSslProtocols(const Aws::Vector& value) { SetSslProtocols(value); return *this;} /** *

The protocols.

*/ inline SslPolicy& WithSslProtocols(Aws::Vector&& value) { SetSslProtocols(std::move(value)); return *this;} /** *

The protocols.

*/ inline SslPolicy& AddSslProtocols(const Aws::String& value) { m_sslProtocolsHasBeenSet = true; m_sslProtocols.push_back(value); return *this; } /** *

The protocols.

*/ inline SslPolicy& AddSslProtocols(Aws::String&& value) { m_sslProtocolsHasBeenSet = true; m_sslProtocols.push_back(std::move(value)); return *this; } /** *

The protocols.

*/ inline SslPolicy& AddSslProtocols(const char* value) { m_sslProtocolsHasBeenSet = true; m_sslProtocols.push_back(value); return *this; } /** *

The ciphers.

*/ inline const Aws::Vector& GetCiphers() const{ return m_ciphers; } /** *

The ciphers.

*/ inline bool CiphersHasBeenSet() const { return m_ciphersHasBeenSet; } /** *

The ciphers.

*/ inline void SetCiphers(const Aws::Vector& value) { m_ciphersHasBeenSet = true; m_ciphers = value; } /** *

The ciphers.

*/ inline void SetCiphers(Aws::Vector&& value) { m_ciphersHasBeenSet = true; m_ciphers = std::move(value); } /** *

The ciphers.

*/ inline SslPolicy& WithCiphers(const Aws::Vector& value) { SetCiphers(value); return *this;} /** *

The ciphers.

*/ inline SslPolicy& WithCiphers(Aws::Vector&& value) { SetCiphers(std::move(value)); return *this;} /** *

The ciphers.

*/ inline SslPolicy& AddCiphers(const Cipher& value) { m_ciphersHasBeenSet = true; m_ciphers.push_back(value); return *this; } /** *

The ciphers.

*/ inline SslPolicy& AddCiphers(Cipher&& value) { m_ciphersHasBeenSet = true; m_ciphers.push_back(std::move(value)); return *this; } /** *

The name of the policy.

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

The name of the policy.

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

The name of the policy.

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

The name of the policy.

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

The name of the policy.

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

The name of the policy.

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

The name of the policy.

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

The name of the policy.

*/ inline SslPolicy& WithName(const char* value) { SetName(value); return *this;} /** *

The supported load balancers.

*/ inline const Aws::Vector& GetSupportedLoadBalancerTypes() const{ return m_supportedLoadBalancerTypes; } /** *

The supported load balancers.

*/ inline bool SupportedLoadBalancerTypesHasBeenSet() const { return m_supportedLoadBalancerTypesHasBeenSet; } /** *

The supported load balancers.

*/ inline void SetSupportedLoadBalancerTypes(const Aws::Vector& value) { m_supportedLoadBalancerTypesHasBeenSet = true; m_supportedLoadBalancerTypes = value; } /** *

The supported load balancers.

*/ inline void SetSupportedLoadBalancerTypes(Aws::Vector&& value) { m_supportedLoadBalancerTypesHasBeenSet = true; m_supportedLoadBalancerTypes = std::move(value); } /** *

The supported load balancers.

*/ inline SslPolicy& WithSupportedLoadBalancerTypes(const Aws::Vector& value) { SetSupportedLoadBalancerTypes(value); return *this;} /** *

The supported load balancers.

*/ inline SslPolicy& WithSupportedLoadBalancerTypes(Aws::Vector&& value) { SetSupportedLoadBalancerTypes(std::move(value)); return *this;} /** *

The supported load balancers.

*/ inline SslPolicy& AddSupportedLoadBalancerTypes(const Aws::String& value) { m_supportedLoadBalancerTypesHasBeenSet = true; m_supportedLoadBalancerTypes.push_back(value); return *this; } /** *

The supported load balancers.

*/ inline SslPolicy& AddSupportedLoadBalancerTypes(Aws::String&& value) { m_supportedLoadBalancerTypesHasBeenSet = true; m_supportedLoadBalancerTypes.push_back(std::move(value)); return *this; } /** *

The supported load balancers.

*/ inline SslPolicy& AddSupportedLoadBalancerTypes(const char* value) { m_supportedLoadBalancerTypesHasBeenSet = true; m_supportedLoadBalancerTypes.push_back(value); return *this; } private: Aws::Vector m_sslProtocols; bool m_sslProtocolsHasBeenSet = false; Aws::Vector m_ciphers; bool m_ciphersHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; Aws::Vector m_supportedLoadBalancerTypes; bool m_supportedLoadBalancerTypesHasBeenSet = false; }; } // namespace Model } // namespace ElasticLoadBalancingv2 } // namespace Aws