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

A reference to an object that represents a Transport Layer Security (TLS) * client policy.

See Also:

AWS * API Reference

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

A reference to an object that represents a client's TLS certificate.

*/ inline const ClientTlsCertificate& GetCertificate() const{ return m_certificate; } /** *

A reference to an object that represents a client's TLS certificate.

*/ inline bool CertificateHasBeenSet() const { return m_certificateHasBeenSet; } /** *

A reference to an object that represents a client's TLS certificate.

*/ inline void SetCertificate(const ClientTlsCertificate& value) { m_certificateHasBeenSet = true; m_certificate = value; } /** *

A reference to an object that represents a client's TLS certificate.

*/ inline void SetCertificate(ClientTlsCertificate&& value) { m_certificateHasBeenSet = true; m_certificate = std::move(value); } /** *

A reference to an object that represents a client's TLS certificate.

*/ inline ClientPolicyTls& WithCertificate(const ClientTlsCertificate& value) { SetCertificate(value); return *this;} /** *

A reference to an object that represents a client's TLS certificate.

*/ inline ClientPolicyTls& WithCertificate(ClientTlsCertificate&& value) { SetCertificate(std::move(value)); return *this;} /** *

Whether the policy is enforced. The default is True, if a value * isn't specified.

*/ inline bool GetEnforce() const{ return m_enforce; } /** *

Whether the policy is enforced. The default is True, if a value * isn't specified.

*/ inline bool EnforceHasBeenSet() const { return m_enforceHasBeenSet; } /** *

Whether the policy is enforced. The default is True, if a value * isn't specified.

*/ inline void SetEnforce(bool value) { m_enforceHasBeenSet = true; m_enforce = value; } /** *

Whether the policy is enforced. The default is True, if a value * isn't specified.

*/ inline ClientPolicyTls& WithEnforce(bool value) { SetEnforce(value); return *this;} /** *

One or more ports that the policy is enforced for.

*/ inline const Aws::Vector& GetPorts() const{ return m_ports; } /** *

One or more ports that the policy is enforced for.

*/ inline bool PortsHasBeenSet() const { return m_portsHasBeenSet; } /** *

One or more ports that the policy is enforced for.

*/ inline void SetPorts(const Aws::Vector& value) { m_portsHasBeenSet = true; m_ports = value; } /** *

One or more ports that the policy is enforced for.

*/ inline void SetPorts(Aws::Vector&& value) { m_portsHasBeenSet = true; m_ports = std::move(value); } /** *

One or more ports that the policy is enforced for.

*/ inline ClientPolicyTls& WithPorts(const Aws::Vector& value) { SetPorts(value); return *this;} /** *

One or more ports that the policy is enforced for.

*/ inline ClientPolicyTls& WithPorts(Aws::Vector&& value) { SetPorts(std::move(value)); return *this;} /** *

One or more ports that the policy is enforced for.

*/ inline ClientPolicyTls& AddPorts(int value) { m_portsHasBeenSet = true; m_ports.push_back(value); return *this; } /** *

A reference to an object that represents a TLS validation context.

*/ inline const TlsValidationContext& GetValidation() const{ return m_validation; } /** *

A reference to an object that represents a TLS validation context.

*/ inline bool ValidationHasBeenSet() const { return m_validationHasBeenSet; } /** *

A reference to an object that represents a TLS validation context.

*/ inline void SetValidation(const TlsValidationContext& value) { m_validationHasBeenSet = true; m_validation = value; } /** *

A reference to an object that represents a TLS validation context.

*/ inline void SetValidation(TlsValidationContext&& value) { m_validationHasBeenSet = true; m_validation = std::move(value); } /** *

A reference to an object that represents a TLS validation context.

*/ inline ClientPolicyTls& WithValidation(const TlsValidationContext& value) { SetValidation(value); return *this;} /** *

A reference to an object that represents a TLS validation context.

*/ inline ClientPolicyTls& WithValidation(TlsValidationContext&& value) { SetValidation(std::move(value)); return *this;} private: ClientTlsCertificate m_certificate; bool m_certificateHasBeenSet = false; bool m_enforce; bool m_enforceHasBeenSet = false; Aws::Vector m_ports; bool m_portsHasBeenSet = false; TlsValidationContext m_validation; bool m_validationHasBeenSet = false; }; } // namespace Model } // namespace AppMesh } // namespace Aws