/** * 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 RadiusSettings { public: AWS_DIRECTORYSERVICE_API RadiusSettings(); AWS_DIRECTORYSERVICE_API RadiusSettings(Aws::Utils::Json::JsonView jsonValue); AWS_DIRECTORYSERVICE_API RadiusSettings& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_DIRECTORYSERVICE_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

An array of strings that contains the fully qualified domain name (FQDN) or * IP addresses of the RADIUS server endpoints, or the FQDN or IP addresses of your * RADIUS server load balancer.

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

An array of strings that contains the fully qualified domain name (FQDN) or * IP addresses of the RADIUS server endpoints, or the FQDN or IP addresses of your * RADIUS server load balancer.

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

An array of strings that contains the fully qualified domain name (FQDN) or * IP addresses of the RADIUS server endpoints, or the FQDN or 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 fully qualified domain name (FQDN) or * IP addresses of the RADIUS server endpoints, or the FQDN or 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 fully qualified domain name (FQDN) or * IP addresses of the RADIUS server endpoints, or the FQDN or 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 fully qualified domain name (FQDN) or * IP addresses of the RADIUS server endpoints, or the FQDN or 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 fully qualified domain name (FQDN) or * IP addresses of the RADIUS server endpoints, or the FQDN or 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 fully qualified domain name (FQDN) or * IP addresses of the RADIUS server endpoints, or the FQDN or 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 fully qualified domain name (FQDN) or * IP addresses of the RADIUS server endpoints, or the FQDN or 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 * self-managed network must allow inbound traffic over this port from the * Directory Service servers.

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

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

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

The port that your RADIUS server is using for communications. Your * self-managed network must allow inbound traffic over this port from the * 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 * self-managed network must allow inbound traffic over this port from the * 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 = false; int m_radiusPort; bool m_radiusPortHasBeenSet = false; int m_radiusTimeout; bool m_radiusTimeoutHasBeenSet = false; int m_radiusRetries; bool m_radiusRetriesHasBeenSet = false; Aws::String m_sharedSecret; bool m_sharedSecretHasBeenSet = false; RadiusAuthenticationProtocol m_authenticationProtocol; bool m_authenticationProtocolHasBeenSet = false; Aws::String m_displayLabel; bool m_displayLabelHasBeenSet = false; bool m_useSameUsername; bool m_useSameUsernameHasBeenSet = false; }; } // namespace Model } // namespace DirectoryService } // namespace Aws