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

Contains information about a Remote Authentication Dial In User Service * (RADIUS) server.

See Also:

AWS * API Reference

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

An array of strings that contains the IP addresses of the RADIUS server * endpoints, or the IP addresses of your RADIUS server load balancer.

*/ inline const Aws::Vector& GetRadiusServers() const{ return m_radiusServers; } /** *

An array of strings that contains the IP addresses of the RADIUS server * endpoints, or the IP addresses of your RADIUS server load balancer.

*/ inline bool RadiusServersHasBeenSet() const { return m_radiusServersHasBeenSet; } /** *

An array of strings that contains the IP addresses of the RADIUS server * endpoints, or the IP addresses of your RADIUS server load balancer.

*/ inline void SetRadiusServers(const Aws::Vector& value) { m_radiusServersHasBeenSet = true; m_radiusServers = value; } /** *

An array of strings that contains the IP addresses of the RADIUS server * endpoints, or the IP addresses of your RADIUS server load balancer.

*/ inline void SetRadiusServers(Aws::Vector&& value) { m_radiusServersHasBeenSet = true; m_radiusServers = std::move(value); } /** *

An array of strings that contains the IP addresses of the RADIUS server * endpoints, or the IP addresses of your RADIUS server load balancer.

*/ inline RadiusSettings& WithRadiusServers(const Aws::Vector& value) { SetRadiusServers(value); return *this;} /** *

An array of strings that contains the IP addresses of the RADIUS server * endpoints, or the IP addresses of your RADIUS server load balancer.

*/ inline RadiusSettings& WithRadiusServers(Aws::Vector&& value) { SetRadiusServers(std::move(value)); return *this;} /** *

An array of strings that contains the IP addresses of the RADIUS server * endpoints, or the IP addresses of your RADIUS server load balancer.

*/ inline RadiusSettings& AddRadiusServers(const Aws::String& value) { m_radiusServersHasBeenSet = true; m_radiusServers.push_back(value); return *this; } /** *

An array of strings that contains the IP addresses of the RADIUS server * endpoints, or the IP addresses of your RADIUS server load balancer.

*/ inline RadiusSettings& AddRadiusServers(Aws::String&& value) { m_radiusServersHasBeenSet = true; m_radiusServers.push_back(std::move(value)); return *this; } /** *

An array of strings that contains the IP addresses of the RADIUS server * endpoints, or the IP addresses of your RADIUS server load balancer.

*/ inline RadiusSettings& AddRadiusServers(const char* value) { m_radiusServersHasBeenSet = true; m_radiusServers.push_back(value); return *this; } /** *

The port that your RADIUS server is using for communications. Your * on-premises network must allow inbound traffic over this port from the AWS * Directory Service servers.

*/ inline int GetRadiusPort() const{ return m_radiusPort; } /** *

The port that your RADIUS server is using for communications. Your * on-premises network must allow inbound traffic over this port from the AWS * Directory Service servers.

*/ inline bool RadiusPortHasBeenSet() const { return m_radiusPortHasBeenSet; } /** *

The port that your RADIUS server is using for communications. Your * on-premises network must allow inbound traffic over this port from the AWS * Directory Service servers.

*/ inline void SetRadiusPort(int value) { m_radiusPortHasBeenSet = true; m_radiusPort = value; } /** *

The port that your RADIUS server is using for communications. Your * on-premises network must allow inbound traffic over this port from the AWS * Directory Service servers.

*/ inline RadiusSettings& WithRadiusPort(int value) { SetRadiusPort(value); return *this;} /** *

The amount of time, in seconds, to wait for the RADIUS server to respond.

*/ inline int GetRadiusTimeout() const{ return m_radiusTimeout; } /** *

The amount of time, in seconds, to wait for the RADIUS server to respond.

*/ inline bool RadiusTimeoutHasBeenSet() const { return m_radiusTimeoutHasBeenSet; } /** *

The amount of time, in seconds, to wait for the RADIUS server to respond.

*/ inline void SetRadiusTimeout(int value) { m_radiusTimeoutHasBeenSet = true; m_radiusTimeout = value; } /** *

The amount of time, in seconds, to wait for the RADIUS server to respond.

*/ inline RadiusSettings& WithRadiusTimeout(int value) { SetRadiusTimeout(value); return *this;} /** *

The maximum number of times that communication with the RADIUS server is * attempted.

*/ inline int GetRadiusRetries() const{ return m_radiusRetries; } /** *

The maximum number of times that communication with the RADIUS server is * attempted.

*/ inline bool RadiusRetriesHasBeenSet() const { return m_radiusRetriesHasBeenSet; } /** *

The maximum number of times that communication with the RADIUS server is * attempted.

*/ inline void SetRadiusRetries(int value) { m_radiusRetriesHasBeenSet = true; m_radiusRetries = value; } /** *

The maximum number of times that communication with the RADIUS server is * attempted.

*/ inline RadiusSettings& WithRadiusRetries(int value) { SetRadiusRetries(value); return *this;} /** *

Required for enabling RADIUS on the directory.

*/ inline const Aws::String& GetSharedSecret() const{ return m_sharedSecret; } /** *

Required for enabling RADIUS on the directory.

*/ inline bool SharedSecretHasBeenSet() const { return m_sharedSecretHasBeenSet; } /** *

Required for enabling RADIUS on the directory.

*/ inline void SetSharedSecret(const Aws::String& value) { m_sharedSecretHasBeenSet = true; m_sharedSecret = value; } /** *

Required for enabling RADIUS on the directory.

*/ inline void SetSharedSecret(Aws::String&& value) { m_sharedSecretHasBeenSet = true; m_sharedSecret = std::move(value); } /** *

Required for enabling RADIUS on the directory.

*/ inline void SetSharedSecret(const char* value) { m_sharedSecretHasBeenSet = true; m_sharedSecret.assign(value); } /** *

Required for enabling RADIUS on the directory.

*/ inline RadiusSettings& WithSharedSecret(const Aws::String& value) { SetSharedSecret(value); return *this;} /** *

Required for enabling RADIUS on the directory.

*/ inline RadiusSettings& WithSharedSecret(Aws::String&& value) { SetSharedSecret(std::move(value)); return *this;} /** *

Required for enabling RADIUS on the directory.

*/ inline RadiusSettings& WithSharedSecret(const char* value) { SetSharedSecret(value); return *this;} /** *

The protocol specified for your RADIUS endpoints.

*/ inline const RadiusAuthenticationProtocol& GetAuthenticationProtocol() const{ return m_authenticationProtocol; } /** *

The protocol specified for your RADIUS endpoints.

*/ inline bool AuthenticationProtocolHasBeenSet() const { return m_authenticationProtocolHasBeenSet; } /** *

The protocol specified for your RADIUS endpoints.

*/ inline void SetAuthenticationProtocol(const RadiusAuthenticationProtocol& value) { m_authenticationProtocolHasBeenSet = true; m_authenticationProtocol = value; } /** *

The protocol specified for your RADIUS endpoints.

*/ inline void SetAuthenticationProtocol(RadiusAuthenticationProtocol&& value) { m_authenticationProtocolHasBeenSet = true; m_authenticationProtocol = std::move(value); } /** *

The protocol specified for your RADIUS endpoints.

*/ inline RadiusSettings& WithAuthenticationProtocol(const RadiusAuthenticationProtocol& value) { SetAuthenticationProtocol(value); return *this;} /** *

The protocol specified for your RADIUS endpoints.

*/ inline RadiusSettings& WithAuthenticationProtocol(RadiusAuthenticationProtocol&& value) { SetAuthenticationProtocol(std::move(value)); return *this;} /** *

Not currently used.

*/ inline const Aws::String& GetDisplayLabel() const{ return m_displayLabel; } /** *

Not currently used.

*/ inline bool DisplayLabelHasBeenSet() const { return m_displayLabelHasBeenSet; } /** *

Not currently used.

*/ inline void SetDisplayLabel(const Aws::String& value) { m_displayLabelHasBeenSet = true; m_displayLabel = value; } /** *

Not currently used.

*/ inline void SetDisplayLabel(Aws::String&& value) { m_displayLabelHasBeenSet = true; m_displayLabel = std::move(value); } /** *

Not currently used.

*/ inline void SetDisplayLabel(const char* value) { m_displayLabelHasBeenSet = true; m_displayLabel.assign(value); } /** *

Not currently used.

*/ inline RadiusSettings& WithDisplayLabel(const Aws::String& value) { SetDisplayLabel(value); return *this;} /** *

Not currently used.

*/ inline RadiusSettings& WithDisplayLabel(Aws::String&& value) { SetDisplayLabel(std::move(value)); return *this;} /** *

Not currently used.

*/ inline RadiusSettings& WithDisplayLabel(const char* value) { SetDisplayLabel(value); return *this;} /** *

Not currently used.

*/ inline bool GetUseSameUsername() const{ return m_useSameUsername; } /** *

Not currently used.

*/ inline bool UseSameUsernameHasBeenSet() const { return m_useSameUsernameHasBeenSet; } /** *

Not currently used.

*/ inline void SetUseSameUsername(bool value) { m_useSameUsernameHasBeenSet = true; m_useSameUsername = value; } /** *

Not currently used.

*/ inline RadiusSettings& WithUseSameUsername(bool value) { SetUseSameUsername(value); return *this;} private: Aws::Vector m_radiusServers; bool m_radiusServersHasBeenSet; int m_radiusPort; bool m_radiusPortHasBeenSet; int m_radiusTimeout; bool m_radiusTimeoutHasBeenSet; int m_radiusRetries; bool m_radiusRetriesHasBeenSet; Aws::String m_sharedSecret; bool m_sharedSecretHasBeenSet; RadiusAuthenticationProtocol m_authenticationProtocol; bool m_authenticationProtocolHasBeenSet; Aws::String m_displayLabel; bool m_displayLabelHasBeenSet; bool m_useSameUsername; bool m_useSameUsernameHasBeenSet; }; } // namespace Model } // namespace DirectoryService } // namespace Aws