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

A description of a specific Amazon File Cache resource, which is a response * object from the DescribeFileCaches operation.

See * Also:

AWS API * Reference

*/ class FileCache { public: AWS_FSX_API FileCache(); AWS_FSX_API FileCache(Aws::Utils::Json::JsonView jsonValue); AWS_FSX_API FileCache& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_FSX_API Aws::Utils::Json::JsonValue Jsonize() const; 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 FileCache& WithOwnerId(const Aws::String& value) { SetOwnerId(value); return *this;} inline FileCache& WithOwnerId(Aws::String&& value) { SetOwnerId(std::move(value)); return *this;} inline FileCache& WithOwnerId(const char* value) { SetOwnerId(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 FileCache& WithCreationTime(const Aws::Utils::DateTime& value) { SetCreationTime(value); return *this;} inline FileCache& WithCreationTime(Aws::Utils::DateTime&& value) { SetCreationTime(std::move(value)); return *this;} /** *

The system-generated, unique ID of the cache.

*/ inline const Aws::String& GetFileCacheId() const{ return m_fileCacheId; } /** *

The system-generated, unique ID of the cache.

*/ inline bool FileCacheIdHasBeenSet() const { return m_fileCacheIdHasBeenSet; } /** *

The system-generated, unique ID of the cache.

*/ inline void SetFileCacheId(const Aws::String& value) { m_fileCacheIdHasBeenSet = true; m_fileCacheId = value; } /** *

The system-generated, unique ID of the cache.

*/ inline void SetFileCacheId(Aws::String&& value) { m_fileCacheIdHasBeenSet = true; m_fileCacheId = std::move(value); } /** *

The system-generated, unique ID of the cache.

*/ inline void SetFileCacheId(const char* value) { m_fileCacheIdHasBeenSet = true; m_fileCacheId.assign(value); } /** *

The system-generated, unique ID of the cache.

*/ inline FileCache& WithFileCacheId(const Aws::String& value) { SetFileCacheId(value); return *this;} /** *

The system-generated, unique ID of the cache.

*/ inline FileCache& WithFileCacheId(Aws::String&& value) { SetFileCacheId(std::move(value)); return *this;} /** *

The system-generated, unique ID of the cache.

*/ inline FileCache& WithFileCacheId(const char* value) { SetFileCacheId(value); return *this;} /** *

The type of cache, which must be LUSTRE.

*/ inline const FileCacheType& GetFileCacheType() const{ return m_fileCacheType; } /** *

The type of cache, which must be LUSTRE.

*/ inline bool FileCacheTypeHasBeenSet() const { return m_fileCacheTypeHasBeenSet; } /** *

The type of cache, which must be LUSTRE.

*/ inline void SetFileCacheType(const FileCacheType& value) { m_fileCacheTypeHasBeenSet = true; m_fileCacheType = value; } /** *

The type of cache, which must be LUSTRE.

*/ inline void SetFileCacheType(FileCacheType&& value) { m_fileCacheTypeHasBeenSet = true; m_fileCacheType = std::move(value); } /** *

The type of cache, which must be LUSTRE.

*/ inline FileCache& WithFileCacheType(const FileCacheType& value) { SetFileCacheType(value); return *this;} /** *

The type of cache, which must be LUSTRE.

*/ inline FileCache& WithFileCacheType(FileCacheType&& value) { SetFileCacheType(std::move(value)); return *this;} /** *

The Lustre version of the cache, which must be 2.12.

*/ inline const Aws::String& GetFileCacheTypeVersion() const{ return m_fileCacheTypeVersion; } /** *

The Lustre version of the cache, which must be 2.12.

*/ inline bool FileCacheTypeVersionHasBeenSet() const { return m_fileCacheTypeVersionHasBeenSet; } /** *

The Lustre version of the cache, which must be 2.12.

*/ inline void SetFileCacheTypeVersion(const Aws::String& value) { m_fileCacheTypeVersionHasBeenSet = true; m_fileCacheTypeVersion = value; } /** *

The Lustre version of the cache, which must be 2.12.

*/ inline void SetFileCacheTypeVersion(Aws::String&& value) { m_fileCacheTypeVersionHasBeenSet = true; m_fileCacheTypeVersion = std::move(value); } /** *

The Lustre version of the cache, which must be 2.12.

*/ inline void SetFileCacheTypeVersion(const char* value) { m_fileCacheTypeVersionHasBeenSet = true; m_fileCacheTypeVersion.assign(value); } /** *

The Lustre version of the cache, which must be 2.12.

*/ inline FileCache& WithFileCacheTypeVersion(const Aws::String& value) { SetFileCacheTypeVersion(value); return *this;} /** *

The Lustre version of the cache, which must be 2.12.

*/ inline FileCache& WithFileCacheTypeVersion(Aws::String&& value) { SetFileCacheTypeVersion(std::move(value)); return *this;} /** *

The Lustre version of the cache, which must be 2.12.

*/ inline FileCache& WithFileCacheTypeVersion(const char* value) { SetFileCacheTypeVersion(value); return *this;} /** *

The lifecycle status of the cache. The following are the possible values and * what they mean:

  • AVAILABLE - The cache is in a * healthy state, and is reachable and available for use.

  • * CREATING - The new cache is being created.

  • * DELETING - An existing cache is being deleted.

  • * UPDATING - The cache is undergoing a customer-initiated update.

    *
  • FAILED - An existing cache has experienced an * unrecoverable failure. When creating a new cache, the cache was unable to be * created.

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

The lifecycle status of the cache. The following are the possible values and * what they mean:

  • AVAILABLE - The cache is in a * healthy state, and is reachable and available for use.

  • * CREATING - The new cache is being created.

  • * DELETING - An existing cache is being deleted.

  • * UPDATING - The cache is undergoing a customer-initiated update.

    *
  • FAILED - An existing cache has experienced an * unrecoverable failure. When creating a new cache, the cache was unable to be * created.

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

The lifecycle status of the cache. The following are the possible values and * what they mean:

  • AVAILABLE - The cache is in a * healthy state, and is reachable and available for use.

  • * CREATING - The new cache is being created.

  • * DELETING - An existing cache is being deleted.

  • * UPDATING - The cache is undergoing a customer-initiated update.

    *
  • FAILED - An existing cache has experienced an * unrecoverable failure. When creating a new cache, the cache was unable to be * created.

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

The lifecycle status of the cache. The following are the possible values and * what they mean:

  • AVAILABLE - The cache is in a * healthy state, and is reachable and available for use.

  • * CREATING - The new cache is being created.

  • * DELETING - An existing cache is being deleted.

  • * UPDATING - The cache is undergoing a customer-initiated update.

    *
  • FAILED - An existing cache has experienced an * unrecoverable failure. When creating a new cache, the cache was unable to be * created.

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

The lifecycle status of the cache. The following are the possible values and * what they mean:

  • AVAILABLE - The cache is in a * healthy state, and is reachable and available for use.

  • * CREATING - The new cache is being created.

  • * DELETING - An existing cache is being deleted.

  • * UPDATING - The cache is undergoing a customer-initiated update.

    *
  • FAILED - An existing cache has experienced an * unrecoverable failure. When creating a new cache, the cache was unable to be * created.

*/ inline FileCache& WithLifecycle(const FileCacheLifecycle& value) { SetLifecycle(value); return *this;} /** *

The lifecycle status of the cache. The following are the possible values and * what they mean:

  • AVAILABLE - The cache is in a * healthy state, and is reachable and available for use.

  • * CREATING - The new cache is being created.

  • * DELETING - An existing cache is being deleted.

  • * UPDATING - The cache is undergoing a customer-initiated update.

    *
  • FAILED - An existing cache has experienced an * unrecoverable failure. When creating a new cache, the cache was unable to be * created.

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

A structure providing details of any failures that occurred.

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

A structure providing details of any failures that occurred.

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

A structure providing details of any failures that occurred.

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

A structure providing details of any failures that occurred.

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

A structure providing details of any failures that occurred.

*/ inline FileCache& WithFailureDetails(const FileCacheFailureDetails& value) { SetFailureDetails(value); return *this;} /** *

A structure providing details of any failures that occurred.

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

The storage capacity of the cache in gibibytes (GiB).

*/ inline int GetStorageCapacity() const{ return m_storageCapacity; } /** *

The storage capacity of the cache in gibibytes (GiB).

*/ inline bool StorageCapacityHasBeenSet() const { return m_storageCapacityHasBeenSet; } /** *

The storage capacity of the cache in gibibytes (GiB).

*/ inline void SetStorageCapacity(int value) { m_storageCapacityHasBeenSet = true; m_storageCapacity = value; } /** *

The storage capacity of the cache in gibibytes (GiB).

*/ inline FileCache& WithStorageCapacity(int value) { SetStorageCapacity(value); return *this;} inline const Aws::String& GetVpcId() const{ return m_vpcId; } inline bool VpcIdHasBeenSet() const { return m_vpcIdHasBeenSet; } inline void SetVpcId(const Aws::String& value) { m_vpcIdHasBeenSet = true; m_vpcId = value; } inline void SetVpcId(Aws::String&& value) { m_vpcIdHasBeenSet = true; m_vpcId = std::move(value); } inline void SetVpcId(const char* value) { m_vpcIdHasBeenSet = true; m_vpcId.assign(value); } inline FileCache& WithVpcId(const Aws::String& value) { SetVpcId(value); return *this;} inline FileCache& WithVpcId(Aws::String&& value) { SetVpcId(std::move(value)); return *this;} inline FileCache& WithVpcId(const char* value) { SetVpcId(value); return *this;} inline const Aws::Vector& GetSubnetIds() const{ return m_subnetIds; } inline bool SubnetIdsHasBeenSet() const { return m_subnetIdsHasBeenSet; } inline void SetSubnetIds(const Aws::Vector& value) { m_subnetIdsHasBeenSet = true; m_subnetIds = value; } inline void SetSubnetIds(Aws::Vector&& value) { m_subnetIdsHasBeenSet = true; m_subnetIds = std::move(value); } inline FileCache& WithSubnetIds(const Aws::Vector& value) { SetSubnetIds(value); return *this;} inline FileCache& WithSubnetIds(Aws::Vector&& value) { SetSubnetIds(std::move(value)); return *this;} inline FileCache& AddSubnetIds(const Aws::String& value) { m_subnetIdsHasBeenSet = true; m_subnetIds.push_back(value); return *this; } inline FileCache& AddSubnetIds(Aws::String&& value) { m_subnetIdsHasBeenSet = true; m_subnetIds.push_back(std::move(value)); return *this; } inline FileCache& AddSubnetIds(const char* value) { m_subnetIdsHasBeenSet = true; m_subnetIds.push_back(value); return *this; } inline const Aws::Vector& GetNetworkInterfaceIds() const{ return m_networkInterfaceIds; } inline bool NetworkInterfaceIdsHasBeenSet() const { return m_networkInterfaceIdsHasBeenSet; } inline void SetNetworkInterfaceIds(const Aws::Vector& value) { m_networkInterfaceIdsHasBeenSet = true; m_networkInterfaceIds = value; } inline void SetNetworkInterfaceIds(Aws::Vector&& value) { m_networkInterfaceIdsHasBeenSet = true; m_networkInterfaceIds = std::move(value); } inline FileCache& WithNetworkInterfaceIds(const Aws::Vector& value) { SetNetworkInterfaceIds(value); return *this;} inline FileCache& WithNetworkInterfaceIds(Aws::Vector&& value) { SetNetworkInterfaceIds(std::move(value)); return *this;} inline FileCache& AddNetworkInterfaceIds(const Aws::String& value) { m_networkInterfaceIdsHasBeenSet = true; m_networkInterfaceIds.push_back(value); return *this; } inline FileCache& AddNetworkInterfaceIds(Aws::String&& value) { m_networkInterfaceIdsHasBeenSet = true; m_networkInterfaceIds.push_back(std::move(value)); return *this; } inline FileCache& AddNetworkInterfaceIds(const char* value) { m_networkInterfaceIdsHasBeenSet = true; m_networkInterfaceIds.push_back(value); return *this; } /** *

The Domain Name System (DNS) name for the cache.

*/ inline const Aws::String& GetDNSName() const{ return m_dNSName; } /** *

The Domain Name System (DNS) name for the cache.

*/ inline bool DNSNameHasBeenSet() const { return m_dNSNameHasBeenSet; } /** *

The Domain Name System (DNS) name for the cache.

*/ inline void SetDNSName(const Aws::String& value) { m_dNSNameHasBeenSet = true; m_dNSName = value; } /** *

The Domain Name System (DNS) name for the cache.

*/ inline void SetDNSName(Aws::String&& value) { m_dNSNameHasBeenSet = true; m_dNSName = std::move(value); } /** *

The Domain Name System (DNS) name for the cache.

*/ inline void SetDNSName(const char* value) { m_dNSNameHasBeenSet = true; m_dNSName.assign(value); } /** *

The Domain Name System (DNS) name for the cache.

*/ inline FileCache& WithDNSName(const Aws::String& value) { SetDNSName(value); return *this;} /** *

The Domain Name System (DNS) name for the cache.

*/ inline FileCache& WithDNSName(Aws::String&& value) { SetDNSName(std::move(value)); return *this;} /** *

The Domain Name System (DNS) name for the cache.

*/ inline FileCache& WithDNSName(const char* value) { SetDNSName(value); return *this;} /** *

Specifies the ID of the Key Management Service (KMS) key to use for * encrypting data on an Amazon File Cache. If a KmsKeyId isn't * specified, the Amazon FSx-managed KMS key for your account is used. For more * information, see Encrypt * in the Key Management Service API Reference.

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

Specifies the ID of the Key Management Service (KMS) key to use for * encrypting data on an Amazon File Cache. If a KmsKeyId isn't * specified, the Amazon FSx-managed KMS key for your account is used. For more * information, see Encrypt * in the Key Management Service API Reference.

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

Specifies the ID of the Key Management Service (KMS) key to use for * encrypting data on an Amazon File Cache. If a KmsKeyId isn't * specified, the Amazon FSx-managed KMS key for your account is used. For more * information, see Encrypt * in the Key Management Service API Reference.

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

Specifies the ID of the Key Management Service (KMS) key to use for * encrypting data on an Amazon File Cache. If a KmsKeyId isn't * specified, the Amazon FSx-managed KMS key for your account is used. For more * information, see Encrypt * in the Key Management Service API Reference.

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

Specifies the ID of the Key Management Service (KMS) key to use for * encrypting data on an Amazon File Cache. If a KmsKeyId isn't * specified, the Amazon FSx-managed KMS key for your account is used. For more * information, see Encrypt * in the Key Management Service API Reference.

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

Specifies the ID of the Key Management Service (KMS) key to use for * encrypting data on an Amazon File Cache. If a KmsKeyId isn't * specified, the Amazon FSx-managed KMS key for your account is used. For more * information, see Encrypt * in the Key Management Service API Reference.

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

Specifies the ID of the Key Management Service (KMS) key to use for * encrypting data on an Amazon File Cache. If a KmsKeyId isn't * specified, the Amazon FSx-managed KMS key for your account is used. For more * information, see Encrypt * in the Key Management Service API Reference.

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

Specifies the ID of the Key Management Service (KMS) key to use for * encrypting data on an Amazon File Cache. If a KmsKeyId isn't * specified, the Amazon FSx-managed KMS key for your account is used. For more * information, see Encrypt * in the Key Management Service API Reference.

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

The configuration for the Amazon File Cache resource.

*/ inline const FileCacheLustreConfiguration& GetLustreConfiguration() const{ return m_lustreConfiguration; } /** *

The configuration for the Amazon File Cache resource.

*/ inline bool LustreConfigurationHasBeenSet() const { return m_lustreConfigurationHasBeenSet; } /** *

The configuration for the Amazon File Cache resource.

*/ inline void SetLustreConfiguration(const FileCacheLustreConfiguration& value) { m_lustreConfigurationHasBeenSet = true; m_lustreConfiguration = value; } /** *

The configuration for the Amazon File Cache resource.

*/ inline void SetLustreConfiguration(FileCacheLustreConfiguration&& value) { m_lustreConfigurationHasBeenSet = true; m_lustreConfiguration = std::move(value); } /** *

The configuration for the Amazon File Cache resource.

*/ inline FileCache& WithLustreConfiguration(const FileCacheLustreConfiguration& value) { SetLustreConfiguration(value); return *this;} /** *

The configuration for the Amazon File Cache resource.

*/ inline FileCache& WithLustreConfiguration(FileCacheLustreConfiguration&& value) { SetLustreConfiguration(std::move(value)); return *this;} /** *

A list of IDs of data repository associations that are associated with this * cache.

*/ inline const Aws::Vector& GetDataRepositoryAssociationIds() const{ return m_dataRepositoryAssociationIds; } /** *

A list of IDs of data repository associations that are associated with this * cache.

*/ inline bool DataRepositoryAssociationIdsHasBeenSet() const { return m_dataRepositoryAssociationIdsHasBeenSet; } /** *

A list of IDs of data repository associations that are associated with this * cache.

*/ inline void SetDataRepositoryAssociationIds(const Aws::Vector& value) { m_dataRepositoryAssociationIdsHasBeenSet = true; m_dataRepositoryAssociationIds = value; } /** *

A list of IDs of data repository associations that are associated with this * cache.

*/ inline void SetDataRepositoryAssociationIds(Aws::Vector&& value) { m_dataRepositoryAssociationIdsHasBeenSet = true; m_dataRepositoryAssociationIds = std::move(value); } /** *

A list of IDs of data repository associations that are associated with this * cache.

*/ inline FileCache& WithDataRepositoryAssociationIds(const Aws::Vector& value) { SetDataRepositoryAssociationIds(value); return *this;} /** *

A list of IDs of data repository associations that are associated with this * cache.

*/ inline FileCache& WithDataRepositoryAssociationIds(Aws::Vector&& value) { SetDataRepositoryAssociationIds(std::move(value)); return *this;} /** *

A list of IDs of data repository associations that are associated with this * cache.

*/ inline FileCache& AddDataRepositoryAssociationIds(const Aws::String& value) { m_dataRepositoryAssociationIdsHasBeenSet = true; m_dataRepositoryAssociationIds.push_back(value); return *this; } /** *

A list of IDs of data repository associations that are associated with this * cache.

*/ inline FileCache& AddDataRepositoryAssociationIds(Aws::String&& value) { m_dataRepositoryAssociationIdsHasBeenSet = true; m_dataRepositoryAssociationIds.push_back(std::move(value)); return *this; } /** *

A list of IDs of data repository associations that are associated with this * cache.

*/ inline FileCache& AddDataRepositoryAssociationIds(const char* value) { m_dataRepositoryAssociationIdsHasBeenSet = true; m_dataRepositoryAssociationIds.push_back(value); return *this; } private: Aws::String m_ownerId; bool m_ownerIdHasBeenSet = false; Aws::Utils::DateTime m_creationTime; bool m_creationTimeHasBeenSet = false; Aws::String m_fileCacheId; bool m_fileCacheIdHasBeenSet = false; FileCacheType m_fileCacheType; bool m_fileCacheTypeHasBeenSet = false; Aws::String m_fileCacheTypeVersion; bool m_fileCacheTypeVersionHasBeenSet = false; FileCacheLifecycle m_lifecycle; bool m_lifecycleHasBeenSet = false; FileCacheFailureDetails m_failureDetails; bool m_failureDetailsHasBeenSet = false; int m_storageCapacity; bool m_storageCapacityHasBeenSet = false; Aws::String m_vpcId; bool m_vpcIdHasBeenSet = false; Aws::Vector m_subnetIds; bool m_subnetIdsHasBeenSet = false; Aws::Vector m_networkInterfaceIds; bool m_networkInterfaceIdsHasBeenSet = false; Aws::String m_dNSName; bool m_dNSNameHasBeenSet = false; Aws::String m_kmsKeyId; bool m_kmsKeyIdHasBeenSet = false; Aws::String m_resourceARN; bool m_resourceARNHasBeenSet = false; FileCacheLustreConfiguration m_lustreConfiguration; bool m_lustreConfigurationHasBeenSet = false; Aws::Vector m_dataRepositoryAssociationIds; bool m_dataRepositoryAssociationIdsHasBeenSet = false; }; } // namespace Model } // namespace FSx } // namespace Aws