/** * 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 { /** *

Describes the Amazon FSx for NetApp ONTAP storage virtual machine (SVM) * configuration.

See Also:

AWS * API Reference

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

Describes the Microsoft Active Directory configuration to which the SVM is * joined, if applicable.

*/ inline const SvmActiveDirectoryConfiguration& GetActiveDirectoryConfiguration() const{ return m_activeDirectoryConfiguration; } /** *

Describes the Microsoft Active Directory configuration to which the SVM is * joined, if applicable.

*/ inline bool ActiveDirectoryConfigurationHasBeenSet() const { return m_activeDirectoryConfigurationHasBeenSet; } /** *

Describes the Microsoft Active Directory configuration to which the SVM is * joined, if applicable.

*/ inline void SetActiveDirectoryConfiguration(const SvmActiveDirectoryConfiguration& value) { m_activeDirectoryConfigurationHasBeenSet = true; m_activeDirectoryConfiguration = value; } /** *

Describes the Microsoft Active Directory configuration to which the SVM is * joined, if applicable.

*/ inline void SetActiveDirectoryConfiguration(SvmActiveDirectoryConfiguration&& value) { m_activeDirectoryConfigurationHasBeenSet = true; m_activeDirectoryConfiguration = std::move(value); } /** *

Describes the Microsoft Active Directory configuration to which the SVM is * joined, if applicable.

*/ inline StorageVirtualMachine& WithActiveDirectoryConfiguration(const SvmActiveDirectoryConfiguration& value) { SetActiveDirectoryConfiguration(value); return *this;} /** *

Describes the Microsoft Active Directory configuration to which the SVM is * joined, if applicable.

*/ inline StorageVirtualMachine& WithActiveDirectoryConfiguration(SvmActiveDirectoryConfiguration&& value) { SetActiveDirectoryConfiguration(std::move(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 StorageVirtualMachine& WithCreationTime(const Aws::Utils::DateTime& value) { SetCreationTime(value); return *this;} inline StorageVirtualMachine& WithCreationTime(Aws::Utils::DateTime&& value) { SetCreationTime(std::move(value)); return *this;} /** *

The endpoints that are used to access data or to manage the SVM using the * NetApp ONTAP CLI, REST API, or NetApp CloudManager. They are the * Iscsi, Management, Nfs, and * Smb endpoints.

*/ inline const SvmEndpoints& GetEndpoints() const{ return m_endpoints; } /** *

The endpoints that are used to access data or to manage the SVM using the * NetApp ONTAP CLI, REST API, or NetApp CloudManager. They are the * Iscsi, Management, Nfs, and * Smb endpoints.

*/ inline bool EndpointsHasBeenSet() const { return m_endpointsHasBeenSet; } /** *

The endpoints that are used to access data or to manage the SVM using the * NetApp ONTAP CLI, REST API, or NetApp CloudManager. They are the * Iscsi, Management, Nfs, and * Smb endpoints.

*/ inline void SetEndpoints(const SvmEndpoints& value) { m_endpointsHasBeenSet = true; m_endpoints = value; } /** *

The endpoints that are used to access data or to manage the SVM using the * NetApp ONTAP CLI, REST API, or NetApp CloudManager. They are the * Iscsi, Management, Nfs, and * Smb endpoints.

*/ inline void SetEndpoints(SvmEndpoints&& value) { m_endpointsHasBeenSet = true; m_endpoints = std::move(value); } /** *

The endpoints that are used to access data or to manage the SVM using the * NetApp ONTAP CLI, REST API, or NetApp CloudManager. They are the * Iscsi, Management, Nfs, and * Smb endpoints.

*/ inline StorageVirtualMachine& WithEndpoints(const SvmEndpoints& value) { SetEndpoints(value); return *this;} /** *

The endpoints that are used to access data or to manage the SVM using the * NetApp ONTAP CLI, REST API, or NetApp CloudManager. They are the * Iscsi, Management, Nfs, and * Smb endpoints.

*/ inline StorageVirtualMachine& WithEndpoints(SvmEndpoints&& value) { SetEndpoints(std::move(value)); return *this;} inline const Aws::String& GetFileSystemId() const{ return m_fileSystemId; } inline bool FileSystemIdHasBeenSet() const { return m_fileSystemIdHasBeenSet; } inline void SetFileSystemId(const Aws::String& value) { m_fileSystemIdHasBeenSet = true; m_fileSystemId = value; } inline void SetFileSystemId(Aws::String&& value) { m_fileSystemIdHasBeenSet = true; m_fileSystemId = std::move(value); } inline void SetFileSystemId(const char* value) { m_fileSystemIdHasBeenSet = true; m_fileSystemId.assign(value); } inline StorageVirtualMachine& WithFileSystemId(const Aws::String& value) { SetFileSystemId(value); return *this;} inline StorageVirtualMachine& WithFileSystemId(Aws::String&& value) { SetFileSystemId(std::move(value)); return *this;} inline StorageVirtualMachine& WithFileSystemId(const char* value) { SetFileSystemId(value); return *this;} /** *

Describes the SVM's lifecycle status.

  • CREATED * - The SVM is fully available for use.

  • CREATING - * Amazon FSx is creating the new SVM.

  • DELETING - * Amazon FSx is deleting an existing SVM.

  • FAILED - * Amazon FSx was unable to create the SVM.

  • * MISCONFIGURED - The SVM is in a failed but recoverable state.

    *
  • PENDING - Amazon FSx has not started creating the * SVM.

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

Describes the SVM's lifecycle status.

  • CREATED * - The SVM is fully available for use.

  • CREATING - * Amazon FSx is creating the new SVM.

  • DELETING - * Amazon FSx is deleting an existing SVM.

  • FAILED - * Amazon FSx was unable to create the SVM.

  • * MISCONFIGURED - The SVM is in a failed but recoverable state.

    *
  • PENDING - Amazon FSx has not started creating the * SVM.

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

Describes the SVM's lifecycle status.

  • CREATED * - The SVM is fully available for use.

  • CREATING - * Amazon FSx is creating the new SVM.

  • DELETING - * Amazon FSx is deleting an existing SVM.

  • FAILED - * Amazon FSx was unable to create the SVM.

  • * MISCONFIGURED - The SVM is in a failed but recoverable state.

    *
  • PENDING - Amazon FSx has not started creating the * SVM.

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

Describes the SVM's lifecycle status.

  • CREATED * - The SVM is fully available for use.

  • CREATING - * Amazon FSx is creating the new SVM.

  • DELETING - * Amazon FSx is deleting an existing SVM.

  • FAILED - * Amazon FSx was unable to create the SVM.

  • * MISCONFIGURED - The SVM is in a failed but recoverable state.

    *
  • PENDING - Amazon FSx has not started creating the * SVM.

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

Describes the SVM's lifecycle status.

  • CREATED * - The SVM is fully available for use.

  • CREATING - * Amazon FSx is creating the new SVM.

  • DELETING - * Amazon FSx is deleting an existing SVM.

  • FAILED - * Amazon FSx was unable to create the SVM.

  • * MISCONFIGURED - The SVM is in a failed but recoverable state.

    *
  • PENDING - Amazon FSx has not started creating the * SVM.

*/ inline StorageVirtualMachine& WithLifecycle(const StorageVirtualMachineLifecycle& value) { SetLifecycle(value); return *this;} /** *

Describes the SVM's lifecycle status.

  • CREATED * - The SVM is fully available for use.

  • CREATING - * Amazon FSx is creating the new SVM.

  • DELETING - * Amazon FSx is deleting an existing SVM.

  • FAILED - * Amazon FSx was unable to create the SVM.

  • * MISCONFIGURED - The SVM is in a failed but recoverable state.

    *
  • PENDING - Amazon FSx has not started creating the * SVM.

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

The name of the SVM, if provisioned.

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

The name of the SVM, if provisioned.

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

The name of the SVM, if provisioned.

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

The name of the SVM, if provisioned.

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

The name of the SVM, if provisioned.

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

The name of the SVM, if provisioned.

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

The name of the SVM, if provisioned.

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

The name of the SVM, if provisioned.

*/ inline StorageVirtualMachine& WithName(const char* value) { SetName(value); return *this;} 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 StorageVirtualMachine& WithResourceARN(const Aws::String& value) { SetResourceARN(value); return *this;} inline StorageVirtualMachine& WithResourceARN(Aws::String&& value) { SetResourceARN(std::move(value)); return *this;} inline StorageVirtualMachine& WithResourceARN(const char* value) { SetResourceARN(value); return *this;} /** *

The SVM's system generated unique ID.

*/ inline const Aws::String& GetStorageVirtualMachineId() const{ return m_storageVirtualMachineId; } /** *

The SVM's system generated unique ID.

*/ inline bool StorageVirtualMachineIdHasBeenSet() const { return m_storageVirtualMachineIdHasBeenSet; } /** *

The SVM's system generated unique ID.

*/ inline void SetStorageVirtualMachineId(const Aws::String& value) { m_storageVirtualMachineIdHasBeenSet = true; m_storageVirtualMachineId = value; } /** *

The SVM's system generated unique ID.

*/ inline void SetStorageVirtualMachineId(Aws::String&& value) { m_storageVirtualMachineIdHasBeenSet = true; m_storageVirtualMachineId = std::move(value); } /** *

The SVM's system generated unique ID.

*/ inline void SetStorageVirtualMachineId(const char* value) { m_storageVirtualMachineIdHasBeenSet = true; m_storageVirtualMachineId.assign(value); } /** *

The SVM's system generated unique ID.

*/ inline StorageVirtualMachine& WithStorageVirtualMachineId(const Aws::String& value) { SetStorageVirtualMachineId(value); return *this;} /** *

The SVM's system generated unique ID.

*/ inline StorageVirtualMachine& WithStorageVirtualMachineId(Aws::String&& value) { SetStorageVirtualMachineId(std::move(value)); return *this;} /** *

The SVM's system generated unique ID.

*/ inline StorageVirtualMachine& WithStorageVirtualMachineId(const char* value) { SetStorageVirtualMachineId(value); return *this;} /** *

Describes the SVM's subtype.

*/ inline const StorageVirtualMachineSubtype& GetSubtype() const{ return m_subtype; } /** *

Describes the SVM's subtype.

*/ inline bool SubtypeHasBeenSet() const { return m_subtypeHasBeenSet; } /** *

Describes the SVM's subtype.

*/ inline void SetSubtype(const StorageVirtualMachineSubtype& value) { m_subtypeHasBeenSet = true; m_subtype = value; } /** *

Describes the SVM's subtype.

*/ inline void SetSubtype(StorageVirtualMachineSubtype&& value) { m_subtypeHasBeenSet = true; m_subtype = std::move(value); } /** *

Describes the SVM's subtype.

*/ inline StorageVirtualMachine& WithSubtype(const StorageVirtualMachineSubtype& value) { SetSubtype(value); return *this;} /** *

Describes the SVM's subtype.

*/ inline StorageVirtualMachine& WithSubtype(StorageVirtualMachineSubtype&& value) { SetSubtype(std::move(value)); return *this;} /** *

The SVM's UUID (universally unique identifier).

*/ inline const Aws::String& GetUUID() const{ return m_uUID; } /** *

The SVM's UUID (universally unique identifier).

*/ inline bool UUIDHasBeenSet() const { return m_uUIDHasBeenSet; } /** *

The SVM's UUID (universally unique identifier).

*/ inline void SetUUID(const Aws::String& value) { m_uUIDHasBeenSet = true; m_uUID = value; } /** *

The SVM's UUID (universally unique identifier).

*/ inline void SetUUID(Aws::String&& value) { m_uUIDHasBeenSet = true; m_uUID = std::move(value); } /** *

The SVM's UUID (universally unique identifier).

*/ inline void SetUUID(const char* value) { m_uUIDHasBeenSet = true; m_uUID.assign(value); } /** *

The SVM's UUID (universally unique identifier).

*/ inline StorageVirtualMachine& WithUUID(const Aws::String& value) { SetUUID(value); return *this;} /** *

The SVM's UUID (universally unique identifier).

*/ inline StorageVirtualMachine& WithUUID(Aws::String&& value) { SetUUID(std::move(value)); return *this;} /** *

The SVM's UUID (universally unique identifier).

*/ inline StorageVirtualMachine& WithUUID(const char* value) { SetUUID(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 StorageVirtualMachine& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} inline StorageVirtualMachine& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} inline StorageVirtualMachine& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } inline StorageVirtualMachine& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

Describes why the SVM lifecycle state changed.

*/ inline const LifecycleTransitionReason& GetLifecycleTransitionReason() const{ return m_lifecycleTransitionReason; } /** *

Describes why the SVM lifecycle state changed.

*/ inline bool LifecycleTransitionReasonHasBeenSet() const { return m_lifecycleTransitionReasonHasBeenSet; } /** *

Describes why the SVM lifecycle state changed.

*/ inline void SetLifecycleTransitionReason(const LifecycleTransitionReason& value) { m_lifecycleTransitionReasonHasBeenSet = true; m_lifecycleTransitionReason = value; } /** *

Describes why the SVM lifecycle state changed.

*/ inline void SetLifecycleTransitionReason(LifecycleTransitionReason&& value) { m_lifecycleTransitionReasonHasBeenSet = true; m_lifecycleTransitionReason = std::move(value); } /** *

Describes why the SVM lifecycle state changed.

*/ inline StorageVirtualMachine& WithLifecycleTransitionReason(const LifecycleTransitionReason& value) { SetLifecycleTransitionReason(value); return *this;} /** *

Describes why the SVM lifecycle state changed.

*/ inline StorageVirtualMachine& WithLifecycleTransitionReason(LifecycleTransitionReason&& value) { SetLifecycleTransitionReason(std::move(value)); return *this;} /** *

The security style of the root volume of the SVM.

*/ inline const StorageVirtualMachineRootVolumeSecurityStyle& GetRootVolumeSecurityStyle() const{ return m_rootVolumeSecurityStyle; } /** *

The security style of the root volume of the SVM.

*/ inline bool RootVolumeSecurityStyleHasBeenSet() const { return m_rootVolumeSecurityStyleHasBeenSet; } /** *

The security style of the root volume of the SVM.

*/ inline void SetRootVolumeSecurityStyle(const StorageVirtualMachineRootVolumeSecurityStyle& value) { m_rootVolumeSecurityStyleHasBeenSet = true; m_rootVolumeSecurityStyle = value; } /** *

The security style of the root volume of the SVM.

*/ inline void SetRootVolumeSecurityStyle(StorageVirtualMachineRootVolumeSecurityStyle&& value) { m_rootVolumeSecurityStyleHasBeenSet = true; m_rootVolumeSecurityStyle = std::move(value); } /** *

The security style of the root volume of the SVM.

*/ inline StorageVirtualMachine& WithRootVolumeSecurityStyle(const StorageVirtualMachineRootVolumeSecurityStyle& value) { SetRootVolumeSecurityStyle(value); return *this;} /** *

The security style of the root volume of the SVM.

*/ inline StorageVirtualMachine& WithRootVolumeSecurityStyle(StorageVirtualMachineRootVolumeSecurityStyle&& value) { SetRootVolumeSecurityStyle(std::move(value)); return *this;} private: SvmActiveDirectoryConfiguration m_activeDirectoryConfiguration; bool m_activeDirectoryConfigurationHasBeenSet = false; Aws::Utils::DateTime m_creationTime; bool m_creationTimeHasBeenSet = false; SvmEndpoints m_endpoints; bool m_endpointsHasBeenSet = false; Aws::String m_fileSystemId; bool m_fileSystemIdHasBeenSet = false; StorageVirtualMachineLifecycle m_lifecycle; bool m_lifecycleHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_resourceARN; bool m_resourceARNHasBeenSet = false; Aws::String m_storageVirtualMachineId; bool m_storageVirtualMachineIdHasBeenSet = false; StorageVirtualMachineSubtype m_subtype; bool m_subtypeHasBeenSet = false; Aws::String m_uUID; bool m_uUIDHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; LifecycleTransitionReason m_lifecycleTransitionReason; bool m_lifecycleTransitionReasonHasBeenSet = false; StorageVirtualMachineRootVolumeSecurityStyle m_rootVolumeSecurityStyle; bool m_rootVolumeSecurityStyleHasBeenSet = false; }; } // namespace Model } // namespace FSx } // namespace Aws