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

Describes a trust relationship between an Managed Microsoft AD directory and * an external domain.

See Also:

AWS API * Reference

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

The Directory ID of the Amazon Web Services directory involved in the trust * relationship.

*/ inline const Aws::String& GetDirectoryId() const{ return m_directoryId; } /** *

The Directory ID of the Amazon Web Services directory involved in the trust * relationship.

*/ inline bool DirectoryIdHasBeenSet() const { return m_directoryIdHasBeenSet; } /** *

The Directory ID of the Amazon Web Services directory involved in the trust * relationship.

*/ inline void SetDirectoryId(const Aws::String& value) { m_directoryIdHasBeenSet = true; m_directoryId = value; } /** *

The Directory ID of the Amazon Web Services directory involved in the trust * relationship.

*/ inline void SetDirectoryId(Aws::String&& value) { m_directoryIdHasBeenSet = true; m_directoryId = std::move(value); } /** *

The Directory ID of the Amazon Web Services directory involved in the trust * relationship.

*/ inline void SetDirectoryId(const char* value) { m_directoryIdHasBeenSet = true; m_directoryId.assign(value); } /** *

The Directory ID of the Amazon Web Services directory involved in the trust * relationship.

*/ inline Trust& WithDirectoryId(const Aws::String& value) { SetDirectoryId(value); return *this;} /** *

The Directory ID of the Amazon Web Services directory involved in the trust * relationship.

*/ inline Trust& WithDirectoryId(Aws::String&& value) { SetDirectoryId(std::move(value)); return *this;} /** *

The Directory ID of the Amazon Web Services directory involved in the trust * relationship.

*/ inline Trust& WithDirectoryId(const char* value) { SetDirectoryId(value); return *this;} /** *

The unique ID of the trust relationship.

*/ inline const Aws::String& GetTrustId() const{ return m_trustId; } /** *

The unique ID of the trust relationship.

*/ inline bool TrustIdHasBeenSet() const { return m_trustIdHasBeenSet; } /** *

The unique ID of the trust relationship.

*/ inline void SetTrustId(const Aws::String& value) { m_trustIdHasBeenSet = true; m_trustId = value; } /** *

The unique ID of the trust relationship.

*/ inline void SetTrustId(Aws::String&& value) { m_trustIdHasBeenSet = true; m_trustId = std::move(value); } /** *

The unique ID of the trust relationship.

*/ inline void SetTrustId(const char* value) { m_trustIdHasBeenSet = true; m_trustId.assign(value); } /** *

The unique ID of the trust relationship.

*/ inline Trust& WithTrustId(const Aws::String& value) { SetTrustId(value); return *this;} /** *

The unique ID of the trust relationship.

*/ inline Trust& WithTrustId(Aws::String&& value) { SetTrustId(std::move(value)); return *this;} /** *

The unique ID of the trust relationship.

*/ inline Trust& WithTrustId(const char* value) { SetTrustId(value); return *this;} /** *

The Fully Qualified Domain Name (FQDN) of the external domain involved in the * trust relationship.

*/ inline const Aws::String& GetRemoteDomainName() const{ return m_remoteDomainName; } /** *

The Fully Qualified Domain Name (FQDN) of the external domain involved in the * trust relationship.

*/ inline bool RemoteDomainNameHasBeenSet() const { return m_remoteDomainNameHasBeenSet; } /** *

The Fully Qualified Domain Name (FQDN) of the external domain involved in the * trust relationship.

*/ inline void SetRemoteDomainName(const Aws::String& value) { m_remoteDomainNameHasBeenSet = true; m_remoteDomainName = value; } /** *

The Fully Qualified Domain Name (FQDN) of the external domain involved in the * trust relationship.

*/ inline void SetRemoteDomainName(Aws::String&& value) { m_remoteDomainNameHasBeenSet = true; m_remoteDomainName = std::move(value); } /** *

The Fully Qualified Domain Name (FQDN) of the external domain involved in the * trust relationship.

*/ inline void SetRemoteDomainName(const char* value) { m_remoteDomainNameHasBeenSet = true; m_remoteDomainName.assign(value); } /** *

The Fully Qualified Domain Name (FQDN) of the external domain involved in the * trust relationship.

*/ inline Trust& WithRemoteDomainName(const Aws::String& value) { SetRemoteDomainName(value); return *this;} /** *

The Fully Qualified Domain Name (FQDN) of the external domain involved in the * trust relationship.

*/ inline Trust& WithRemoteDomainName(Aws::String&& value) { SetRemoteDomainName(std::move(value)); return *this;} /** *

The Fully Qualified Domain Name (FQDN) of the external domain involved in the * trust relationship.

*/ inline Trust& WithRemoteDomainName(const char* value) { SetRemoteDomainName(value); return *this;} /** *

The trust relationship type. Forest is the default.

*/ inline const TrustType& GetTrustType() const{ return m_trustType; } /** *

The trust relationship type. Forest is the default.

*/ inline bool TrustTypeHasBeenSet() const { return m_trustTypeHasBeenSet; } /** *

The trust relationship type. Forest is the default.

*/ inline void SetTrustType(const TrustType& value) { m_trustTypeHasBeenSet = true; m_trustType = value; } /** *

The trust relationship type. Forest is the default.

*/ inline void SetTrustType(TrustType&& value) { m_trustTypeHasBeenSet = true; m_trustType = std::move(value); } /** *

The trust relationship type. Forest is the default.

*/ inline Trust& WithTrustType(const TrustType& value) { SetTrustType(value); return *this;} /** *

The trust relationship type. Forest is the default.

*/ inline Trust& WithTrustType(TrustType&& value) { SetTrustType(std::move(value)); return *this;} /** *

The trust relationship direction.

*/ inline const TrustDirection& GetTrustDirection() const{ return m_trustDirection; } /** *

The trust relationship direction.

*/ inline bool TrustDirectionHasBeenSet() const { return m_trustDirectionHasBeenSet; } /** *

The trust relationship direction.

*/ inline void SetTrustDirection(const TrustDirection& value) { m_trustDirectionHasBeenSet = true; m_trustDirection = value; } /** *

The trust relationship direction.

*/ inline void SetTrustDirection(TrustDirection&& value) { m_trustDirectionHasBeenSet = true; m_trustDirection = std::move(value); } /** *

The trust relationship direction.

*/ inline Trust& WithTrustDirection(const TrustDirection& value) { SetTrustDirection(value); return *this;} /** *

The trust relationship direction.

*/ inline Trust& WithTrustDirection(TrustDirection&& value) { SetTrustDirection(std::move(value)); return *this;} /** *

The trust relationship state.

*/ inline const TrustState& GetTrustState() const{ return m_trustState; } /** *

The trust relationship state.

*/ inline bool TrustStateHasBeenSet() const { return m_trustStateHasBeenSet; } /** *

The trust relationship state.

*/ inline void SetTrustState(const TrustState& value) { m_trustStateHasBeenSet = true; m_trustState = value; } /** *

The trust relationship state.

*/ inline void SetTrustState(TrustState&& value) { m_trustStateHasBeenSet = true; m_trustState = std::move(value); } /** *

The trust relationship state.

*/ inline Trust& WithTrustState(const TrustState& value) { SetTrustState(value); return *this;} /** *

The trust relationship state.

*/ inline Trust& WithTrustState(TrustState&& value) { SetTrustState(std::move(value)); return *this;} /** *

The date and time that the trust relationship was created.

*/ inline const Aws::Utils::DateTime& GetCreatedDateTime() const{ return m_createdDateTime; } /** *

The date and time that the trust relationship was created.

*/ inline bool CreatedDateTimeHasBeenSet() const { return m_createdDateTimeHasBeenSet; } /** *

The date and time that the trust relationship was created.

*/ inline void SetCreatedDateTime(const Aws::Utils::DateTime& value) { m_createdDateTimeHasBeenSet = true; m_createdDateTime = value; } /** *

The date and time that the trust relationship was created.

*/ inline void SetCreatedDateTime(Aws::Utils::DateTime&& value) { m_createdDateTimeHasBeenSet = true; m_createdDateTime = std::move(value); } /** *

The date and time that the trust relationship was created.

*/ inline Trust& WithCreatedDateTime(const Aws::Utils::DateTime& value) { SetCreatedDateTime(value); return *this;} /** *

The date and time that the trust relationship was created.

*/ inline Trust& WithCreatedDateTime(Aws::Utils::DateTime&& value) { SetCreatedDateTime(std::move(value)); return *this;} /** *

The date and time that the trust relationship was last updated.

*/ inline const Aws::Utils::DateTime& GetLastUpdatedDateTime() const{ return m_lastUpdatedDateTime; } /** *

The date and time that the trust relationship was last updated.

*/ inline bool LastUpdatedDateTimeHasBeenSet() const { return m_lastUpdatedDateTimeHasBeenSet; } /** *

The date and time that the trust relationship was last updated.

*/ inline void SetLastUpdatedDateTime(const Aws::Utils::DateTime& value) { m_lastUpdatedDateTimeHasBeenSet = true; m_lastUpdatedDateTime = value; } /** *

The date and time that the trust relationship was last updated.

*/ inline void SetLastUpdatedDateTime(Aws::Utils::DateTime&& value) { m_lastUpdatedDateTimeHasBeenSet = true; m_lastUpdatedDateTime = std::move(value); } /** *

The date and time that the trust relationship was last updated.

*/ inline Trust& WithLastUpdatedDateTime(const Aws::Utils::DateTime& value) { SetLastUpdatedDateTime(value); return *this;} /** *

The date and time that the trust relationship was last updated.

*/ inline Trust& WithLastUpdatedDateTime(Aws::Utils::DateTime&& value) { SetLastUpdatedDateTime(std::move(value)); return *this;} /** *

The date and time that the TrustState was last updated.

*/ inline const Aws::Utils::DateTime& GetStateLastUpdatedDateTime() const{ return m_stateLastUpdatedDateTime; } /** *

The date and time that the TrustState was last updated.

*/ inline bool StateLastUpdatedDateTimeHasBeenSet() const { return m_stateLastUpdatedDateTimeHasBeenSet; } /** *

The date and time that the TrustState was last updated.

*/ inline void SetStateLastUpdatedDateTime(const Aws::Utils::DateTime& value) { m_stateLastUpdatedDateTimeHasBeenSet = true; m_stateLastUpdatedDateTime = value; } /** *

The date and time that the TrustState was last updated.

*/ inline void SetStateLastUpdatedDateTime(Aws::Utils::DateTime&& value) { m_stateLastUpdatedDateTimeHasBeenSet = true; m_stateLastUpdatedDateTime = std::move(value); } /** *

The date and time that the TrustState was last updated.

*/ inline Trust& WithStateLastUpdatedDateTime(const Aws::Utils::DateTime& value) { SetStateLastUpdatedDateTime(value); return *this;} /** *

The date and time that the TrustState was last updated.

*/ inline Trust& WithStateLastUpdatedDateTime(Aws::Utils::DateTime&& value) { SetStateLastUpdatedDateTime(std::move(value)); return *this;} /** *

The reason for the TrustState.

*/ inline const Aws::String& GetTrustStateReason() const{ return m_trustStateReason; } /** *

The reason for the TrustState.

*/ inline bool TrustStateReasonHasBeenSet() const { return m_trustStateReasonHasBeenSet; } /** *

The reason for the TrustState.

*/ inline void SetTrustStateReason(const Aws::String& value) { m_trustStateReasonHasBeenSet = true; m_trustStateReason = value; } /** *

The reason for the TrustState.

*/ inline void SetTrustStateReason(Aws::String&& value) { m_trustStateReasonHasBeenSet = true; m_trustStateReason = std::move(value); } /** *

The reason for the TrustState.

*/ inline void SetTrustStateReason(const char* value) { m_trustStateReasonHasBeenSet = true; m_trustStateReason.assign(value); } /** *

The reason for the TrustState.

*/ inline Trust& WithTrustStateReason(const Aws::String& value) { SetTrustStateReason(value); return *this;} /** *

The reason for the TrustState.

*/ inline Trust& WithTrustStateReason(Aws::String&& value) { SetTrustStateReason(std::move(value)); return *this;} /** *

The reason for the TrustState.

*/ inline Trust& WithTrustStateReason(const char* value) { SetTrustStateReason(value); return *this;} /** *

Current state of selective authentication for the trust.

*/ inline const SelectiveAuth& GetSelectiveAuth() const{ return m_selectiveAuth; } /** *

Current state of selective authentication for the trust.

*/ inline bool SelectiveAuthHasBeenSet() const { return m_selectiveAuthHasBeenSet; } /** *

Current state of selective authentication for the trust.

*/ inline void SetSelectiveAuth(const SelectiveAuth& value) { m_selectiveAuthHasBeenSet = true; m_selectiveAuth = value; } /** *

Current state of selective authentication for the trust.

*/ inline void SetSelectiveAuth(SelectiveAuth&& value) { m_selectiveAuthHasBeenSet = true; m_selectiveAuth = std::move(value); } /** *

Current state of selective authentication for the trust.

*/ inline Trust& WithSelectiveAuth(const SelectiveAuth& value) { SetSelectiveAuth(value); return *this;} /** *

Current state of selective authentication for the trust.

*/ inline Trust& WithSelectiveAuth(SelectiveAuth&& value) { SetSelectiveAuth(std::move(value)); return *this;} private: Aws::String m_directoryId; bool m_directoryIdHasBeenSet = false; Aws::String m_trustId; bool m_trustIdHasBeenSet = false; Aws::String m_remoteDomainName; bool m_remoteDomainNameHasBeenSet = false; TrustType m_trustType; bool m_trustTypeHasBeenSet = false; TrustDirection m_trustDirection; bool m_trustDirectionHasBeenSet = false; TrustState m_trustState; bool m_trustStateHasBeenSet = false; Aws::Utils::DateTime m_createdDateTime; bool m_createdDateTimeHasBeenSet = false; Aws::Utils::DateTime m_lastUpdatedDateTime; bool m_lastUpdatedDateTimeHasBeenSet = false; Aws::Utils::DateTime m_stateLastUpdatedDateTime; bool m_stateLastUpdatedDateTimeHasBeenSet = false; Aws::String m_trustStateReason; bool m_trustStateReasonHasBeenSet = false; SelectiveAuth m_selectiveAuth; bool m_selectiveAuthHasBeenSet = false; }; } // namespace Model } // namespace DirectoryService } // namespace Aws