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

A snapshot of an Amazon FSx for OpenZFS volume.

See Also:

AWS API * Reference

*/ class Snapshot { public: AWS_FSX_API Snapshot(); AWS_FSX_API Snapshot(Aws::Utils::Json::JsonView jsonValue); AWS_FSX_API Snapshot& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_FSX_API Aws::Utils::Json::JsonValue Jsonize() const; inline const Aws::String& GetResourceARN() const{ return m_resourceARN; } inline bool ResourceARNHasBeenSet() const { return m_resourceARNHasBeenSet; } inline void SetResourceARN(const Aws::String& value) { m_resourceARNHasBeenSet = true; m_resourceARN = value; } inline void SetResourceARN(Aws::String&& value) { m_resourceARNHasBeenSet = true; m_resourceARN = std::move(value); } inline void SetResourceARN(const char* value) { m_resourceARNHasBeenSet = true; m_resourceARN.assign(value); } inline Snapshot& WithResourceARN(const Aws::String& value) { SetResourceARN(value); return *this;} inline Snapshot& WithResourceARN(Aws::String&& value) { SetResourceARN(std::move(value)); return *this;} inline Snapshot& WithResourceARN(const char* value) { SetResourceARN(value); return *this;} /** *

The ID of the snapshot.

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

The ID of the snapshot.

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

The ID of the snapshot.

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

The ID of the snapshot.

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

The ID of the snapshot.

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

The ID of the snapshot.

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

The ID of the snapshot.

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

The ID of the snapshot.

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

The name of the snapshot.

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

The name of the snapshot.

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

The name of the snapshot.

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

The name of the snapshot.

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

The name of the snapshot.

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

The name of the snapshot.

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

The name of the snapshot.

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

The name of the snapshot.

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

The ID of the volume that the snapshot is of.

*/ inline const Aws::String& GetVolumeId() const{ return m_volumeId; } /** *

The ID of the volume that the snapshot is of.

*/ inline bool VolumeIdHasBeenSet() const { return m_volumeIdHasBeenSet; } /** *

The ID of the volume that the snapshot is of.

*/ inline void SetVolumeId(const Aws::String& value) { m_volumeIdHasBeenSet = true; m_volumeId = value; } /** *

The ID of the volume that the snapshot is of.

*/ inline void SetVolumeId(Aws::String&& value) { m_volumeIdHasBeenSet = true; m_volumeId = std::move(value); } /** *

The ID of the volume that the snapshot is of.

*/ inline void SetVolumeId(const char* value) { m_volumeIdHasBeenSet = true; m_volumeId.assign(value); } /** *

The ID of the volume that the snapshot is of.

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

The ID of the volume that the snapshot is of.

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

The ID of the volume that the snapshot is of.

*/ inline Snapshot& WithVolumeId(const char* value) { SetVolumeId(value); return *this;} inline const Aws::Utils::DateTime& GetCreationTime() const{ return m_creationTime; } inline bool CreationTimeHasBeenSet() const { return m_creationTimeHasBeenSet; } inline void SetCreationTime(const Aws::Utils::DateTime& value) { m_creationTimeHasBeenSet = true; m_creationTime = value; } inline void SetCreationTime(Aws::Utils::DateTime&& value) { m_creationTimeHasBeenSet = true; m_creationTime = std::move(value); } inline Snapshot& WithCreationTime(const Aws::Utils::DateTime& value) { SetCreationTime(value); return *this;} inline Snapshot& WithCreationTime(Aws::Utils::DateTime&& value) { SetCreationTime(std::move(value)); return *this;} /** *

The lifecycle status of the snapshot.

  • PENDING * - Amazon FSx hasn't started creating the snapshot.

  • * CREATING - Amazon FSx is creating the snapshot.

  • * DELETING - Amazon FSx is deleting the snapshot.

  • * AVAILABLE - The snapshot is fully available.

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

The lifecycle status of the snapshot.

  • PENDING * - Amazon FSx hasn't started creating the snapshot.

  • * CREATING - Amazon FSx is creating the snapshot.

  • * DELETING - Amazon FSx is deleting the snapshot.

  • * AVAILABLE - The snapshot is fully available.

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

The lifecycle status of the snapshot.

  • PENDING * - Amazon FSx hasn't started creating the snapshot.

  • * CREATING - Amazon FSx is creating the snapshot.

  • * DELETING - Amazon FSx is deleting the snapshot.

  • * AVAILABLE - The snapshot is fully available.

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

The lifecycle status of the snapshot.

  • PENDING * - Amazon FSx hasn't started creating the snapshot.

  • * CREATING - Amazon FSx is creating the snapshot.

  • * DELETING - Amazon FSx is deleting the snapshot.

  • * AVAILABLE - The snapshot is fully available.

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

The lifecycle status of the snapshot.

  • PENDING * - Amazon FSx hasn't started creating the snapshot.

  • * CREATING - Amazon FSx is creating the snapshot.

  • * DELETING - Amazon FSx is deleting the snapshot.

  • * AVAILABLE - The snapshot is fully available.

*/ inline Snapshot& WithLifecycle(const SnapshotLifecycle& value) { SetLifecycle(value); return *this;} /** *

The lifecycle status of the snapshot.

  • PENDING * - Amazon FSx hasn't started creating the snapshot.

  • * CREATING - Amazon FSx is creating the snapshot.

  • * DELETING - Amazon FSx is deleting the snapshot.

  • * AVAILABLE - The snapshot is fully available.

*/ inline Snapshot& WithLifecycle(SnapshotLifecycle&& value) { SetLifecycle(std::move(value)); return *this;} inline const LifecycleTransitionReason& GetLifecycleTransitionReason() const{ return m_lifecycleTransitionReason; } inline bool LifecycleTransitionReasonHasBeenSet() const { return m_lifecycleTransitionReasonHasBeenSet; } inline void SetLifecycleTransitionReason(const LifecycleTransitionReason& value) { m_lifecycleTransitionReasonHasBeenSet = true; m_lifecycleTransitionReason = value; } inline void SetLifecycleTransitionReason(LifecycleTransitionReason&& value) { m_lifecycleTransitionReasonHasBeenSet = true; m_lifecycleTransitionReason = std::move(value); } inline Snapshot& WithLifecycleTransitionReason(const LifecycleTransitionReason& value) { SetLifecycleTransitionReason(value); return *this;} inline Snapshot& WithLifecycleTransitionReason(LifecycleTransitionReason&& value) { SetLifecycleTransitionReason(std::move(value)); return *this;} inline const Aws::Vector& GetTags() const{ return m_tags; } inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } inline Snapshot& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} inline Snapshot& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} inline Snapshot& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } inline Snapshot& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

A list of administrative actions for the file system that are in process or * waiting to be processed. Administrative actions describe changes to the Amazon * FSx system.

*/ inline const Aws::Vector& GetAdministrativeActions() const{ return m_administrativeActions; } /** *

A list of administrative actions for the file system that are in process or * waiting to be processed. Administrative actions describe changes to the Amazon * FSx system.

*/ inline bool AdministrativeActionsHasBeenSet() const { return m_administrativeActionsHasBeenSet; } /** *

A list of administrative actions for the file system that are in process or * waiting to be processed. Administrative actions describe changes to the Amazon * FSx system.

*/ inline void SetAdministrativeActions(const Aws::Vector& value) { m_administrativeActionsHasBeenSet = true; m_administrativeActions = value; } /** *

A list of administrative actions for the file system that are in process or * waiting to be processed. Administrative actions describe changes to the Amazon * FSx system.

*/ inline void SetAdministrativeActions(Aws::Vector&& value) { m_administrativeActionsHasBeenSet = true; m_administrativeActions = std::move(value); } /** *

A list of administrative actions for the file system that are in process or * waiting to be processed. Administrative actions describe changes to the Amazon * FSx system.

*/ inline Snapshot& WithAdministrativeActions(const Aws::Vector& value) { SetAdministrativeActions(value); return *this;} /** *

A list of administrative actions for the file system that are in process or * waiting to be processed. Administrative actions describe changes to the Amazon * FSx system.

*/ inline Snapshot& WithAdministrativeActions(Aws::Vector&& value) { SetAdministrativeActions(std::move(value)); return *this;} /** *

A list of administrative actions for the file system that are in process or * waiting to be processed. Administrative actions describe changes to the Amazon * FSx system.

*/ inline Snapshot& AddAdministrativeActions(const AdministrativeAction& value) { m_administrativeActionsHasBeenSet = true; m_administrativeActions.push_back(value); return *this; } /** *

A list of administrative actions for the file system that are in process or * waiting to be processed. Administrative actions describe changes to the Amazon * FSx system.

*/ inline Snapshot& AddAdministrativeActions(AdministrativeAction&& value) { m_administrativeActionsHasBeenSet = true; m_administrativeActions.push_back(std::move(value)); return *this; } private: Aws::String m_resourceARN; bool m_resourceARNHasBeenSet = false; Aws::String m_snapshotId; bool m_snapshotIdHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_volumeId; bool m_volumeIdHasBeenSet = false; Aws::Utils::DateTime m_creationTime; bool m_creationTimeHasBeenSet = false; SnapshotLifecycle m_lifecycle; bool m_lifecycleHasBeenSet = false; LifecycleTransitionReason m_lifecycleTransitionReason; bool m_lifecycleTransitionReasonHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; Aws::Vector m_administrativeActions; bool m_administrativeActionsHasBeenSet = false; }; } // namespace Model } // namespace FSx } // namespace Aws