/** * 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 Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace DirectoryService { namespace Model { /** *

Describes a directory snapshot.

See Also:

AWS API * Reference

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

The directory identifier.

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

The directory identifier.

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

The directory identifier.

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

The directory identifier.

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

The directory identifier.

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

The directory identifier.

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

The directory identifier.

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

The directory identifier.

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

The snapshot identifier.

*/ inline const Aws::String& GetSnapshotId() const{ return m_snapshotId; } /** *

The snapshot identifier.

*/ inline bool SnapshotIdHasBeenSet() const { return m_snapshotIdHasBeenSet; } /** *

The snapshot identifier.

*/ inline void SetSnapshotId(const Aws::String& value) { m_snapshotIdHasBeenSet = true; m_snapshotId = value; } /** *

The snapshot identifier.

*/ inline void SetSnapshotId(Aws::String&& value) { m_snapshotIdHasBeenSet = true; m_snapshotId = std::move(value); } /** *

The snapshot identifier.

*/ inline void SetSnapshotId(const char* value) { m_snapshotIdHasBeenSet = true; m_snapshotId.assign(value); } /** *

The snapshot identifier.

*/ inline Snapshot& WithSnapshotId(const Aws::String& value) { SetSnapshotId(value); return *this;} /** *

The snapshot identifier.

*/ inline Snapshot& WithSnapshotId(Aws::String&& value) { SetSnapshotId(std::move(value)); return *this;} /** *

The snapshot identifier.

*/ inline Snapshot& WithSnapshotId(const char* value) { SetSnapshotId(value); return *this;} /** *

The snapshot type.

*/ inline const SnapshotType& GetType() const{ return m_type; } /** *

The snapshot type.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

The snapshot type.

*/ inline void SetType(const SnapshotType& value) { m_typeHasBeenSet = true; m_type = value; } /** *

The snapshot type.

*/ inline void SetType(SnapshotType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

The snapshot type.

*/ inline Snapshot& WithType(const SnapshotType& value) { SetType(value); return *this;} /** *

The snapshot type.

*/ inline Snapshot& WithType(SnapshotType&& value) { SetType(std::move(value)); return *this;} /** *

The descriptive name of the snapshot.

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

The descriptive name of the snapshot.

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

The descriptive name of the snapshot.

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

The descriptive name of the snapshot.

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

The descriptive name of the snapshot.

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

The descriptive name of the snapshot.

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

The descriptive name of the snapshot.

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

The descriptive name of the snapshot.

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

The snapshot status.

*/ inline const SnapshotStatus& GetStatus() const{ return m_status; } /** *

The snapshot status.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

The snapshot status.

*/ inline void SetStatus(const SnapshotStatus& value) { m_statusHasBeenSet = true; m_status = value; } /** *

The snapshot status.

*/ inline void SetStatus(SnapshotStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

The snapshot status.

*/ inline Snapshot& WithStatus(const SnapshotStatus& value) { SetStatus(value); return *this;} /** *

The snapshot status.

*/ inline Snapshot& WithStatus(SnapshotStatus&& value) { SetStatus(std::move(value)); return *this;} /** *

The date and time that the snapshot was taken.

*/ inline const Aws::Utils::DateTime& GetStartTime() const{ return m_startTime; } /** *

The date and time that the snapshot was taken.

*/ inline bool StartTimeHasBeenSet() const { return m_startTimeHasBeenSet; } /** *

The date and time that the snapshot was taken.

*/ inline void SetStartTime(const Aws::Utils::DateTime& value) { m_startTimeHasBeenSet = true; m_startTime = value; } /** *

The date and time that the snapshot was taken.

*/ inline void SetStartTime(Aws::Utils::DateTime&& value) { m_startTimeHasBeenSet = true; m_startTime = std::move(value); } /** *

The date and time that the snapshot was taken.

*/ inline Snapshot& WithStartTime(const Aws::Utils::DateTime& value) { SetStartTime(value); return *this;} /** *

The date and time that the snapshot was taken.

*/ inline Snapshot& WithStartTime(Aws::Utils::DateTime&& value) { SetStartTime(std::move(value)); return *this;} private: Aws::String m_directoryId; bool m_directoryIdHasBeenSet = false; Aws::String m_snapshotId; bool m_snapshotIdHasBeenSet = false; SnapshotType m_type; bool m_typeHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; SnapshotStatus m_status; bool m_statusHasBeenSet = false; Aws::Utils::DateTime m_startTime; bool m_startTimeHasBeenSet = false; }; } // namespace Model } // namespace DirectoryService } // namespace Aws