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

A backup of an Amazon FSx for file system.

See Also:

AWS API * Reference

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

The ID of the backup.

*/ inline const Aws::String& GetBackupId() const{ return m_backupId; } /** *

The ID of the backup.

*/ inline bool BackupIdHasBeenSet() const { return m_backupIdHasBeenSet; } /** *

The ID of the backup.

*/ inline void SetBackupId(const Aws::String& value) { m_backupIdHasBeenSet = true; m_backupId = value; } /** *

The ID of the backup.

*/ inline void SetBackupId(Aws::String&& value) { m_backupIdHasBeenSet = true; m_backupId = std::move(value); } /** *

The ID of the backup.

*/ inline void SetBackupId(const char* value) { m_backupIdHasBeenSet = true; m_backupId.assign(value); } /** *

The ID of the backup.

*/ inline Backup& WithBackupId(const Aws::String& value) { SetBackupId(value); return *this;} /** *

The ID of the backup.

*/ inline Backup& WithBackupId(Aws::String&& value) { SetBackupId(std::move(value)); return *this;} /** *

The ID of the backup.

*/ inline Backup& WithBackupId(const char* value) { SetBackupId(value); return *this;} /** *

The lifecycle status of the backup.

  • AVAILABLE * - The backup is fully available.

  • CREATING - FSx * is creating the backup.

  • TRANSFERRING - For * Lustre file systems only; FSx is transferring the backup to S3.

  • *

    DELETED - The backup was deleted is no longer available.

    *
  • FAILED - Amazon FSx could not complete the * backup.

*/ inline const BackupLifecycle& GetLifecycle() const{ return m_lifecycle; } /** *

The lifecycle status of the backup.

  • AVAILABLE * - The backup is fully available.

  • CREATING - FSx * is creating the backup.

  • TRANSFERRING - For * Lustre file systems only; FSx is transferring the backup to S3.

  • *

    DELETED - The backup was deleted is no longer available.

    *
  • FAILED - Amazon FSx could not complete the * backup.

*/ inline bool LifecycleHasBeenSet() const { return m_lifecycleHasBeenSet; } /** *

The lifecycle status of the backup.

  • AVAILABLE * - The backup is fully available.

  • CREATING - FSx * is creating the backup.

  • TRANSFERRING - For * Lustre file systems only; FSx is transferring the backup to S3.

  • *

    DELETED - The backup was deleted is no longer available.

    *
  • FAILED - Amazon FSx could not complete the * backup.

*/ inline void SetLifecycle(const BackupLifecycle& value) { m_lifecycleHasBeenSet = true; m_lifecycle = value; } /** *

The lifecycle status of the backup.

  • AVAILABLE * - The backup is fully available.

  • CREATING - FSx * is creating the backup.

  • TRANSFERRING - For * Lustre file systems only; FSx is transferring the backup to S3.

  • *

    DELETED - The backup was deleted is no longer available.

    *
  • FAILED - Amazon FSx could not complete the * backup.

*/ inline void SetLifecycle(BackupLifecycle&& value) { m_lifecycleHasBeenSet = true; m_lifecycle = std::move(value); } /** *

The lifecycle status of the backup.

  • AVAILABLE * - The backup is fully available.

  • CREATING - FSx * is creating the backup.

  • TRANSFERRING - For * Lustre file systems only; FSx is transferring the backup to S3.

  • *

    DELETED - The backup was deleted is no longer available.

    *
  • FAILED - Amazon FSx could not complete the * backup.

*/ inline Backup& WithLifecycle(const BackupLifecycle& value) { SetLifecycle(value); return *this;} /** *

The lifecycle status of the backup.

  • AVAILABLE * - The backup is fully available.

  • CREATING - FSx * is creating the backup.

  • TRANSFERRING - For * Lustre file systems only; FSx is transferring the backup to S3.

  • *

    DELETED - The backup was deleted is no longer available.

    *
  • FAILED - Amazon FSx could not complete the * backup.

*/ inline Backup& WithLifecycle(BackupLifecycle&& value) { SetLifecycle(std::move(value)); return *this;} /** *

Details explaining any failures that occur when creating a backup.

*/ inline const BackupFailureDetails& GetFailureDetails() const{ return m_failureDetails; } /** *

Details explaining any failures that occur when creating a backup.

*/ inline bool FailureDetailsHasBeenSet() const { return m_failureDetailsHasBeenSet; } /** *

Details explaining any failures that occur when creating a backup.

*/ inline void SetFailureDetails(const BackupFailureDetails& value) { m_failureDetailsHasBeenSet = true; m_failureDetails = value; } /** *

Details explaining any failures that occur when creating a backup.

*/ inline void SetFailureDetails(BackupFailureDetails&& value) { m_failureDetailsHasBeenSet = true; m_failureDetails = std::move(value); } /** *

Details explaining any failures that occur when creating a backup.

*/ inline Backup& WithFailureDetails(const BackupFailureDetails& value) { SetFailureDetails(value); return *this;} /** *

Details explaining any failures that occur when creating a backup.

*/ inline Backup& WithFailureDetails(BackupFailureDetails&& value) { SetFailureDetails(std::move(value)); return *this;} /** *

The type of the file system backup.

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

The type of the file system backup.

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

The type of the file system backup.

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

The type of the file system backup.

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

The type of the file system backup.

*/ inline Backup& WithType(const BackupType& value) { SetType(value); return *this;} /** *

The type of the file system backup.

*/ inline Backup& WithType(BackupType&& value) { SetType(std::move(value)); return *this;} inline int GetProgressPercent() const{ return m_progressPercent; } inline bool ProgressPercentHasBeenSet() const { return m_progressPercentHasBeenSet; } inline void SetProgressPercent(int value) { m_progressPercentHasBeenSet = true; m_progressPercent = value; } inline Backup& WithProgressPercent(int value) { SetProgressPercent(value); return *this;} /** *

The time when a particular backup was created.

*/ inline const Aws::Utils::DateTime& GetCreationTime() const{ return m_creationTime; } /** *

The time when a particular backup was created.

*/ inline bool CreationTimeHasBeenSet() const { return m_creationTimeHasBeenSet; } /** *

The time when a particular backup was created.

*/ inline void SetCreationTime(const Aws::Utils::DateTime& value) { m_creationTimeHasBeenSet = true; m_creationTime = value; } /** *

The time when a particular backup was created.

*/ inline void SetCreationTime(Aws::Utils::DateTime&& value) { m_creationTimeHasBeenSet = true; m_creationTime = std::move(value); } /** *

The time when a particular backup was created.

*/ inline Backup& WithCreationTime(const Aws::Utils::DateTime& value) { SetCreationTime(value); return *this;} /** *

The time when a particular backup was created.

*/ inline Backup& WithCreationTime(Aws::Utils::DateTime&& value) { SetCreationTime(std::move(value)); return *this;} /** *

The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the * backup of the Amazon FSx file system's data at rest.

*/ inline const Aws::String& GetKmsKeyId() const{ return m_kmsKeyId; } /** *

The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the * backup of the Amazon FSx file system's data at rest.

*/ inline bool KmsKeyIdHasBeenSet() const { return m_kmsKeyIdHasBeenSet; } /** *

The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the * backup of the Amazon FSx file system's data at rest.

*/ inline void SetKmsKeyId(const Aws::String& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = value; } /** *

The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the * backup of the Amazon FSx file system's data at rest.

*/ inline void SetKmsKeyId(Aws::String&& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = std::move(value); } /** *

The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the * backup of the Amazon FSx file system's data at rest.

*/ inline void SetKmsKeyId(const char* value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId.assign(value); } /** *

The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the * backup of the Amazon FSx file system's data at rest.

*/ inline Backup& WithKmsKeyId(const Aws::String& value) { SetKmsKeyId(value); return *this;} /** *

The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the * backup of the Amazon FSx file system's data at rest.

*/ inline Backup& WithKmsKeyId(Aws::String&& value) { SetKmsKeyId(std::move(value)); return *this;} /** *

The ID of the AWS Key Management Service (AWS KMS) key used to encrypt the * backup of the Amazon FSx file system's data at rest.

*/ inline Backup& WithKmsKeyId(const char* value) { SetKmsKeyId(value); return *this;} /** *

The Amazon Resource Name (ARN) for the backup resource.

*/ inline const Aws::String& GetResourceARN() const{ return m_resourceARN; } /** *

The Amazon Resource Name (ARN) for the backup resource.

*/ inline bool ResourceARNHasBeenSet() const { return m_resourceARNHasBeenSet; } /** *

The Amazon Resource Name (ARN) for the backup resource.

*/ inline void SetResourceARN(const Aws::String& value) { m_resourceARNHasBeenSet = true; m_resourceARN = value; } /** *

The Amazon Resource Name (ARN) for the backup resource.

*/ inline void SetResourceARN(Aws::String&& value) { m_resourceARNHasBeenSet = true; m_resourceARN = std::move(value); } /** *

The Amazon Resource Name (ARN) for the backup resource.

*/ inline void SetResourceARN(const char* value) { m_resourceARNHasBeenSet = true; m_resourceARN.assign(value); } /** *

The Amazon Resource Name (ARN) for the backup resource.

*/ inline Backup& WithResourceARN(const Aws::String& value) { SetResourceARN(value); return *this;} /** *

The Amazon Resource Name (ARN) for the backup resource.

*/ inline Backup& WithResourceARN(Aws::String&& value) { SetResourceARN(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) for the backup resource.

*/ inline Backup& WithResourceARN(const char* value) { SetResourceARN(value); return *this;} /** *

Tags associated with a particular file system.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

Tags associated with a particular file system.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

Tags associated with a particular file system.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

Tags associated with a particular file system.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

Tags associated with a particular file system.

*/ inline Backup& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

Tags associated with a particular file system.

*/ inline Backup& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

Tags associated with a particular file system.

*/ inline Backup& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

Tags associated with a particular file system.

*/ inline Backup& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

Metadata of the file system associated with the backup. This metadata is * persisted even if the file system is deleted.

*/ inline const FileSystem& GetFileSystem() const{ return m_fileSystem; } /** *

Metadata of the file system associated with the backup. This metadata is * persisted even if the file system is deleted.

*/ inline bool FileSystemHasBeenSet() const { return m_fileSystemHasBeenSet; } /** *

Metadata of the file system associated with the backup. This metadata is * persisted even if the file system is deleted.

*/ inline void SetFileSystem(const FileSystem& value) { m_fileSystemHasBeenSet = true; m_fileSystem = value; } /** *

Metadata of the file system associated with the backup. This metadata is * persisted even if the file system is deleted.

*/ inline void SetFileSystem(FileSystem&& value) { m_fileSystemHasBeenSet = true; m_fileSystem = std::move(value); } /** *

Metadata of the file system associated with the backup. This metadata is * persisted even if the file system is deleted.

*/ inline Backup& WithFileSystem(const FileSystem& value) { SetFileSystem(value); return *this;} /** *

Metadata of the file system associated with the backup. This metadata is * persisted even if the file system is deleted.

*/ inline Backup& WithFileSystem(FileSystem&& value) { SetFileSystem(std::move(value)); return *this;} /** *

The configuration of the self-managed Microsoft Active Directory (AD) to * which the Windows File Server instance is joined.

*/ inline const ActiveDirectoryBackupAttributes& GetDirectoryInformation() const{ return m_directoryInformation; } /** *

The configuration of the self-managed Microsoft Active Directory (AD) to * which the Windows File Server instance is joined.

*/ inline bool DirectoryInformationHasBeenSet() const { return m_directoryInformationHasBeenSet; } /** *

The configuration of the self-managed Microsoft Active Directory (AD) to * which the Windows File Server instance is joined.

*/ inline void SetDirectoryInformation(const ActiveDirectoryBackupAttributes& value) { m_directoryInformationHasBeenSet = true; m_directoryInformation = value; } /** *

The configuration of the self-managed Microsoft Active Directory (AD) to * which the Windows File Server instance is joined.

*/ inline void SetDirectoryInformation(ActiveDirectoryBackupAttributes&& value) { m_directoryInformationHasBeenSet = true; m_directoryInformation = std::move(value); } /** *

The configuration of the self-managed Microsoft Active Directory (AD) to * which the Windows File Server instance is joined.

*/ inline Backup& WithDirectoryInformation(const ActiveDirectoryBackupAttributes& value) { SetDirectoryInformation(value); return *this;} /** *

The configuration of the self-managed Microsoft Active Directory (AD) to * which the Windows File Server instance is joined.

*/ inline Backup& WithDirectoryInformation(ActiveDirectoryBackupAttributes&& value) { SetDirectoryInformation(std::move(value)); return *this;} private: Aws::String m_backupId; bool m_backupIdHasBeenSet; BackupLifecycle m_lifecycle; bool m_lifecycleHasBeenSet; BackupFailureDetails m_failureDetails; bool m_failureDetailsHasBeenSet; BackupType m_type; bool m_typeHasBeenSet; int m_progressPercent; bool m_progressPercentHasBeenSet; Aws::Utils::DateTime m_creationTime; bool m_creationTimeHasBeenSet; Aws::String m_kmsKeyId; bool m_kmsKeyIdHasBeenSet; Aws::String m_resourceARN; bool m_resourceARNHasBeenSet; Aws::Vector m_tags; bool m_tagsHasBeenSet; FileSystem m_fileSystem; bool m_fileSystemHasBeenSet; ActiveDirectoryBackupAttributes m_directoryInformation; bool m_directoryInformationHasBeenSet; }; } // namespace Model } // namespace FSx } // namespace Aws