/** * 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 #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 Windows File Server, Amazon FSx for Lustre file * system, Amazon FSx for NetApp ONTAP volume, or Amazon FSx for OpenZFS file * system.

See Also:

AWS API * Reference

*/ class Backup { public: AWS_FSX_API Backup(); AWS_FSX_API Backup(Aws::Utils::Json::JsonView jsonValue); AWS_FSX_API Backup& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_FSX_API 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.

  • PENDING - For * user-initiated backups on Lustre file systems only; Amazon FSx hasn't started * creating the backup.

  • CREATING - Amazon FSx is * creating the backup.

  • TRANSFERRING - For * user-initiated backups on Lustre file systems only; Amazon FSx is transferring * the backup to Amazon S3.

  • COPYING - Amazon FSx is * copying the backup.

  • DELETED - Amazon FSx deleted * the backup and it's no longer available.

  • FAILED * - Amazon FSx couldn't finish the backup.

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

The lifecycle status of the backup.

  • AVAILABLE * - The backup is fully available.

  • PENDING - For * user-initiated backups on Lustre file systems only; Amazon FSx hasn't started * creating the backup.

  • CREATING - Amazon FSx is * creating the backup.

  • TRANSFERRING - For * user-initiated backups on Lustre file systems only; Amazon FSx is transferring * the backup to Amazon S3.

  • COPYING - Amazon FSx is * copying the backup.

  • DELETED - Amazon FSx deleted * the backup and it's no longer available.

  • FAILED * - Amazon FSx couldn't finish the backup.

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

The lifecycle status of the backup.

  • AVAILABLE * - The backup is fully available.

  • PENDING - For * user-initiated backups on Lustre file systems only; Amazon FSx hasn't started * creating the backup.

  • CREATING - Amazon FSx is * creating the backup.

  • TRANSFERRING - For * user-initiated backups on Lustre file systems only; Amazon FSx is transferring * the backup to Amazon S3.

  • COPYING - Amazon FSx is * copying the backup.

  • DELETED - Amazon FSx deleted * the backup and it's no longer available.

  • FAILED * - Amazon FSx couldn't finish 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.

  • PENDING - For * user-initiated backups on Lustre file systems only; Amazon FSx hasn't started * creating the backup.

  • CREATING - Amazon FSx is * creating the backup.

  • TRANSFERRING - For * user-initiated backups on Lustre file systems only; Amazon FSx is transferring * the backup to Amazon S3.

  • COPYING - Amazon FSx is * copying the backup.

  • DELETED - Amazon FSx deleted * the backup and it's no longer available.

  • FAILED * - Amazon FSx couldn't finish 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.

  • PENDING - For * user-initiated backups on Lustre file systems only; Amazon FSx hasn't started * creating the backup.

  • CREATING - Amazon FSx is * creating the backup.

  • TRANSFERRING - For * user-initiated backups on Lustre file systems only; Amazon FSx is transferring * the backup to Amazon S3.

  • COPYING - Amazon FSx is * copying the backup.

  • DELETED - Amazon FSx deleted * the backup and it's no longer available.

  • FAILED * - Amazon FSx couldn't finish the backup.

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

The lifecycle status of the backup.

  • AVAILABLE * - The backup is fully available.

  • PENDING - For * user-initiated backups on Lustre file systems only; Amazon FSx hasn't started * creating the backup.

  • CREATING - Amazon FSx is * creating the backup.

  • TRANSFERRING - For * user-initiated backups on Lustre file systems only; Amazon FSx is transferring * the backup to Amazon S3.

  • COPYING - Amazon FSx is * copying the backup.

  • DELETED - Amazon FSx deleted * the backup and it's no longer available.

  • FAILED * - Amazon FSx couldn't finish the backup.

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

Details explaining any failures that occurred when creating a backup.

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

Details explaining any failures that occurred when creating a backup.

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

Details explaining any failures that occurred when creating a backup.

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

Details explaining any failures that occurred when creating a backup.

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

Details explaining any failures that occurred when creating a backup.

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

Details explaining any failures that occurred 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 Key Management Service (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 Key Management Service (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 Key Management Service (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 Key Management Service (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 Key Management Service (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 Key Management Service (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 Key Management Service (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 Key Management Service (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;} /** *

The tags associated with a particular file system.

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

The tags associated with a particular file system.

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

The tags associated with a particular file system.

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

The tags associated with a particular file system.

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

The tags associated with a particular file system.

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

The tags associated with a particular file system.

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

The tags associated with a particular file system.

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

The tags associated with a particular file system.

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

The 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; } /** *

The 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; } /** *

The 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; } /** *

The 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); } /** *

The 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;} /** *

The 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 directory 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 directory 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 directory 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 directory 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 directory 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 directory to * which the Windows File Server instance is joined.

*/ inline Backup& WithDirectoryInformation(ActiveDirectoryBackupAttributes&& value) { SetDirectoryInformation(std::move(value)); return *this;} inline const Aws::String& GetOwnerId() const{ return m_ownerId; } inline bool OwnerIdHasBeenSet() const { return m_ownerIdHasBeenSet; } inline void SetOwnerId(const Aws::String& value) { m_ownerIdHasBeenSet = true; m_ownerId = value; } inline void SetOwnerId(Aws::String&& value) { m_ownerIdHasBeenSet = true; m_ownerId = std::move(value); } inline void SetOwnerId(const char* value) { m_ownerIdHasBeenSet = true; m_ownerId.assign(value); } inline Backup& WithOwnerId(const Aws::String& value) { SetOwnerId(value); return *this;} inline Backup& WithOwnerId(Aws::String&& value) { SetOwnerId(std::move(value)); return *this;} inline Backup& WithOwnerId(const char* value) { SetOwnerId(value); return *this;} inline const Aws::String& GetSourceBackupId() const{ return m_sourceBackupId; } inline bool SourceBackupIdHasBeenSet() const { return m_sourceBackupIdHasBeenSet; } inline void SetSourceBackupId(const Aws::String& value) { m_sourceBackupIdHasBeenSet = true; m_sourceBackupId = value; } inline void SetSourceBackupId(Aws::String&& value) { m_sourceBackupIdHasBeenSet = true; m_sourceBackupId = std::move(value); } inline void SetSourceBackupId(const char* value) { m_sourceBackupIdHasBeenSet = true; m_sourceBackupId.assign(value); } inline Backup& WithSourceBackupId(const Aws::String& value) { SetSourceBackupId(value); return *this;} inline Backup& WithSourceBackupId(Aws::String&& value) { SetSourceBackupId(std::move(value)); return *this;} inline Backup& WithSourceBackupId(const char* value) { SetSourceBackupId(value); return *this;} /** *

The source Region of the backup. Specifies the Region from where this backup * is copied.

*/ inline const Aws::String& GetSourceBackupRegion() const{ return m_sourceBackupRegion; } /** *

The source Region of the backup. Specifies the Region from where this backup * is copied.

*/ inline bool SourceBackupRegionHasBeenSet() const { return m_sourceBackupRegionHasBeenSet; } /** *

The source Region of the backup. Specifies the Region from where this backup * is copied.

*/ inline void SetSourceBackupRegion(const Aws::String& value) { m_sourceBackupRegionHasBeenSet = true; m_sourceBackupRegion = value; } /** *

The source Region of the backup. Specifies the Region from where this backup * is copied.

*/ inline void SetSourceBackupRegion(Aws::String&& value) { m_sourceBackupRegionHasBeenSet = true; m_sourceBackupRegion = std::move(value); } /** *

The source Region of the backup. Specifies the Region from where this backup * is copied.

*/ inline void SetSourceBackupRegion(const char* value) { m_sourceBackupRegionHasBeenSet = true; m_sourceBackupRegion.assign(value); } /** *

The source Region of the backup. Specifies the Region from where this backup * is copied.

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

The source Region of the backup. Specifies the Region from where this backup * is copied.

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

The source Region of the backup. Specifies the Region from where this backup * is copied.

*/ inline Backup& WithSourceBackupRegion(const char* value) { SetSourceBackupRegion(value); return *this;} /** *

Specifies the resource type that's backed up.

*/ inline const ResourceType& GetResourceType() const{ return m_resourceType; } /** *

Specifies the resource type that's backed up.

*/ inline bool ResourceTypeHasBeenSet() const { return m_resourceTypeHasBeenSet; } /** *

Specifies the resource type that's backed up.

*/ inline void SetResourceType(const ResourceType& value) { m_resourceTypeHasBeenSet = true; m_resourceType = value; } /** *

Specifies the resource type that's backed up.

*/ inline void SetResourceType(ResourceType&& value) { m_resourceTypeHasBeenSet = true; m_resourceType = std::move(value); } /** *

Specifies the resource type that's backed up.

*/ inline Backup& WithResourceType(const ResourceType& value) { SetResourceType(value); return *this;} /** *

Specifies the resource type that's backed up.

*/ inline Backup& WithResourceType(ResourceType&& value) { SetResourceType(std::move(value)); return *this;} inline const Volume& GetVolume() const{ return m_volume; } inline bool VolumeHasBeenSet() const { return m_volumeHasBeenSet; } inline void SetVolume(const Volume& value) { m_volumeHasBeenSet = true; m_volume = value; } inline void SetVolume(Volume&& value) { m_volumeHasBeenSet = true; m_volume = std::move(value); } inline Backup& WithVolume(const Volume& value) { SetVolume(value); return *this;} inline Backup& WithVolume(Volume&& value) { SetVolume(std::move(value)); return *this;} private: Aws::String m_backupId; bool m_backupIdHasBeenSet = false; BackupLifecycle m_lifecycle; bool m_lifecycleHasBeenSet = false; BackupFailureDetails m_failureDetails; bool m_failureDetailsHasBeenSet = false; BackupType m_type; bool m_typeHasBeenSet = false; int m_progressPercent; bool m_progressPercentHasBeenSet = false; Aws::Utils::DateTime m_creationTime; bool m_creationTimeHasBeenSet = false; Aws::String m_kmsKeyId; bool m_kmsKeyIdHasBeenSet = false; Aws::String m_resourceARN; bool m_resourceARNHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; FileSystem m_fileSystem; bool m_fileSystemHasBeenSet = false; ActiveDirectoryBackupAttributes m_directoryInformation; bool m_directoryInformationHasBeenSet = false; Aws::String m_ownerId; bool m_ownerIdHasBeenSet = false; Aws::String m_sourceBackupId; bool m_sourceBackupIdHasBeenSet = false; Aws::String m_sourceBackupRegion; bool m_sourceBackupRegionHasBeenSet = false; ResourceType m_resourceType; bool m_resourceTypeHasBeenSet = false; Volume m_volume; bool m_volumeHasBeenSet = false; }; } // namespace Model } // namespace FSx } // namespace Aws