/** * 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 CloudHSMV2 { namespace Model { /** *

Contains information about an AWS CloudHSM cluster.

See Also:

* AWS * API Reference

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

The cluster's backup policy.

*/ inline const BackupPolicy& GetBackupPolicy() const{ return m_backupPolicy; } /** *

The cluster's backup policy.

*/ inline bool BackupPolicyHasBeenSet() const { return m_backupPolicyHasBeenSet; } /** *

The cluster's backup policy.

*/ inline void SetBackupPolicy(const BackupPolicy& value) { m_backupPolicyHasBeenSet = true; m_backupPolicy = value; } /** *

The cluster's backup policy.

*/ inline void SetBackupPolicy(BackupPolicy&& value) { m_backupPolicyHasBeenSet = true; m_backupPolicy = std::move(value); } /** *

The cluster's backup policy.

*/ inline Cluster& WithBackupPolicy(const BackupPolicy& value) { SetBackupPolicy(value); return *this;} /** *

The cluster's backup policy.

*/ inline Cluster& WithBackupPolicy(BackupPolicy&& value) { SetBackupPolicy(std::move(value)); return *this;} /** *

A policy that defines how the service retains backups.

*/ inline const BackupRetentionPolicy& GetBackupRetentionPolicy() const{ return m_backupRetentionPolicy; } /** *

A policy that defines how the service retains backups.

*/ inline bool BackupRetentionPolicyHasBeenSet() const { return m_backupRetentionPolicyHasBeenSet; } /** *

A policy that defines how the service retains backups.

*/ inline void SetBackupRetentionPolicy(const BackupRetentionPolicy& value) { m_backupRetentionPolicyHasBeenSet = true; m_backupRetentionPolicy = value; } /** *

A policy that defines how the service retains backups.

*/ inline void SetBackupRetentionPolicy(BackupRetentionPolicy&& value) { m_backupRetentionPolicyHasBeenSet = true; m_backupRetentionPolicy = std::move(value); } /** *

A policy that defines how the service retains backups.

*/ inline Cluster& WithBackupRetentionPolicy(const BackupRetentionPolicy& value) { SetBackupRetentionPolicy(value); return *this;} /** *

A policy that defines how the service retains backups.

*/ inline Cluster& WithBackupRetentionPolicy(BackupRetentionPolicy&& value) { SetBackupRetentionPolicy(std::move(value)); return *this;} /** *

The cluster's identifier (ID).

*/ inline const Aws::String& GetClusterId() const{ return m_clusterId; } /** *

The cluster's identifier (ID).

*/ inline bool ClusterIdHasBeenSet() const { return m_clusterIdHasBeenSet; } /** *

The cluster's identifier (ID).

*/ inline void SetClusterId(const Aws::String& value) { m_clusterIdHasBeenSet = true; m_clusterId = value; } /** *

The cluster's identifier (ID).

*/ inline void SetClusterId(Aws::String&& value) { m_clusterIdHasBeenSet = true; m_clusterId = std::move(value); } /** *

The cluster's identifier (ID).

*/ inline void SetClusterId(const char* value) { m_clusterIdHasBeenSet = true; m_clusterId.assign(value); } /** *

The cluster's identifier (ID).

*/ inline Cluster& WithClusterId(const Aws::String& value) { SetClusterId(value); return *this;} /** *

The cluster's identifier (ID).

*/ inline Cluster& WithClusterId(Aws::String&& value) { SetClusterId(std::move(value)); return *this;} /** *

The cluster's identifier (ID).

*/ inline Cluster& WithClusterId(const char* value) { SetClusterId(value); return *this;} /** *

The date and time when the cluster was created.

*/ inline const Aws::Utils::DateTime& GetCreateTimestamp() const{ return m_createTimestamp; } /** *

The date and time when the cluster was created.

*/ inline bool CreateTimestampHasBeenSet() const { return m_createTimestampHasBeenSet; } /** *

The date and time when the cluster was created.

*/ inline void SetCreateTimestamp(const Aws::Utils::DateTime& value) { m_createTimestampHasBeenSet = true; m_createTimestamp = value; } /** *

The date and time when the cluster was created.

*/ inline void SetCreateTimestamp(Aws::Utils::DateTime&& value) { m_createTimestampHasBeenSet = true; m_createTimestamp = std::move(value); } /** *

The date and time when the cluster was created.

*/ inline Cluster& WithCreateTimestamp(const Aws::Utils::DateTime& value) { SetCreateTimestamp(value); return *this;} /** *

The date and time when the cluster was created.

*/ inline Cluster& WithCreateTimestamp(Aws::Utils::DateTime&& value) { SetCreateTimestamp(std::move(value)); return *this;} /** *

Contains information about the HSMs in the cluster.

*/ inline const Aws::Vector& GetHsms() const{ return m_hsms; } /** *

Contains information about the HSMs in the cluster.

*/ inline bool HsmsHasBeenSet() const { return m_hsmsHasBeenSet; } /** *

Contains information about the HSMs in the cluster.

*/ inline void SetHsms(const Aws::Vector& value) { m_hsmsHasBeenSet = true; m_hsms = value; } /** *

Contains information about the HSMs in the cluster.

*/ inline void SetHsms(Aws::Vector&& value) { m_hsmsHasBeenSet = true; m_hsms = std::move(value); } /** *

Contains information about the HSMs in the cluster.

*/ inline Cluster& WithHsms(const Aws::Vector& value) { SetHsms(value); return *this;} /** *

Contains information about the HSMs in the cluster.

*/ inline Cluster& WithHsms(Aws::Vector&& value) { SetHsms(std::move(value)); return *this;} /** *

Contains information about the HSMs in the cluster.

*/ inline Cluster& AddHsms(const Hsm& value) { m_hsmsHasBeenSet = true; m_hsms.push_back(value); return *this; } /** *

Contains information about the HSMs in the cluster.

*/ inline Cluster& AddHsms(Hsm&& value) { m_hsmsHasBeenSet = true; m_hsms.push_back(std::move(value)); return *this; } /** *

The type of HSM that the cluster contains.

*/ inline const Aws::String& GetHsmType() const{ return m_hsmType; } /** *

The type of HSM that the cluster contains.

*/ inline bool HsmTypeHasBeenSet() const { return m_hsmTypeHasBeenSet; } /** *

The type of HSM that the cluster contains.

*/ inline void SetHsmType(const Aws::String& value) { m_hsmTypeHasBeenSet = true; m_hsmType = value; } /** *

The type of HSM that the cluster contains.

*/ inline void SetHsmType(Aws::String&& value) { m_hsmTypeHasBeenSet = true; m_hsmType = std::move(value); } /** *

The type of HSM that the cluster contains.

*/ inline void SetHsmType(const char* value) { m_hsmTypeHasBeenSet = true; m_hsmType.assign(value); } /** *

The type of HSM that the cluster contains.

*/ inline Cluster& WithHsmType(const Aws::String& value) { SetHsmType(value); return *this;} /** *

The type of HSM that the cluster contains.

*/ inline Cluster& WithHsmType(Aws::String&& value) { SetHsmType(std::move(value)); return *this;} /** *

The type of HSM that the cluster contains.

*/ inline Cluster& WithHsmType(const char* value) { SetHsmType(value); return *this;} /** *

The default password for the cluster's Pre-Crypto Officer (PRECO) user.

*/ inline const Aws::String& GetPreCoPassword() const{ return m_preCoPassword; } /** *

The default password for the cluster's Pre-Crypto Officer (PRECO) user.

*/ inline bool PreCoPasswordHasBeenSet() const { return m_preCoPasswordHasBeenSet; } /** *

The default password for the cluster's Pre-Crypto Officer (PRECO) user.

*/ inline void SetPreCoPassword(const Aws::String& value) { m_preCoPasswordHasBeenSet = true; m_preCoPassword = value; } /** *

The default password for the cluster's Pre-Crypto Officer (PRECO) user.

*/ inline void SetPreCoPassword(Aws::String&& value) { m_preCoPasswordHasBeenSet = true; m_preCoPassword = std::move(value); } /** *

The default password for the cluster's Pre-Crypto Officer (PRECO) user.

*/ inline void SetPreCoPassword(const char* value) { m_preCoPasswordHasBeenSet = true; m_preCoPassword.assign(value); } /** *

The default password for the cluster's Pre-Crypto Officer (PRECO) user.

*/ inline Cluster& WithPreCoPassword(const Aws::String& value) { SetPreCoPassword(value); return *this;} /** *

The default password for the cluster's Pre-Crypto Officer (PRECO) user.

*/ inline Cluster& WithPreCoPassword(Aws::String&& value) { SetPreCoPassword(std::move(value)); return *this;} /** *

The default password for the cluster's Pre-Crypto Officer (PRECO) user.

*/ inline Cluster& WithPreCoPassword(const char* value) { SetPreCoPassword(value); return *this;} /** *

The identifier (ID) of the cluster's security group.

*/ inline const Aws::String& GetSecurityGroup() const{ return m_securityGroup; } /** *

The identifier (ID) of the cluster's security group.

*/ inline bool SecurityGroupHasBeenSet() const { return m_securityGroupHasBeenSet; } /** *

The identifier (ID) of the cluster's security group.

*/ inline void SetSecurityGroup(const Aws::String& value) { m_securityGroupHasBeenSet = true; m_securityGroup = value; } /** *

The identifier (ID) of the cluster's security group.

*/ inline void SetSecurityGroup(Aws::String&& value) { m_securityGroupHasBeenSet = true; m_securityGroup = std::move(value); } /** *

The identifier (ID) of the cluster's security group.

*/ inline void SetSecurityGroup(const char* value) { m_securityGroupHasBeenSet = true; m_securityGroup.assign(value); } /** *

The identifier (ID) of the cluster's security group.

*/ inline Cluster& WithSecurityGroup(const Aws::String& value) { SetSecurityGroup(value); return *this;} /** *

The identifier (ID) of the cluster's security group.

*/ inline Cluster& WithSecurityGroup(Aws::String&& value) { SetSecurityGroup(std::move(value)); return *this;} /** *

The identifier (ID) of the cluster's security group.

*/ inline Cluster& WithSecurityGroup(const char* value) { SetSecurityGroup(value); return *this;} /** *

The identifier (ID) of the backup used to create the cluster. This value * exists only when the cluster was created from a backup.

*/ inline const Aws::String& GetSourceBackupId() const{ return m_sourceBackupId; } /** *

The identifier (ID) of the backup used to create the cluster. This value * exists only when the cluster was created from a backup.

*/ inline bool SourceBackupIdHasBeenSet() const { return m_sourceBackupIdHasBeenSet; } /** *

The identifier (ID) of the backup used to create the cluster. This value * exists only when the cluster was created from a backup.

*/ inline void SetSourceBackupId(const Aws::String& value) { m_sourceBackupIdHasBeenSet = true; m_sourceBackupId = value; } /** *

The identifier (ID) of the backup used to create the cluster. This value * exists only when the cluster was created from a backup.

*/ inline void SetSourceBackupId(Aws::String&& value) { m_sourceBackupIdHasBeenSet = true; m_sourceBackupId = std::move(value); } /** *

The identifier (ID) of the backup used to create the cluster. This value * exists only when the cluster was created from a backup.

*/ inline void SetSourceBackupId(const char* value) { m_sourceBackupIdHasBeenSet = true; m_sourceBackupId.assign(value); } /** *

The identifier (ID) of the backup used to create the cluster. This value * exists only when the cluster was created from a backup.

*/ inline Cluster& WithSourceBackupId(const Aws::String& value) { SetSourceBackupId(value); return *this;} /** *

The identifier (ID) of the backup used to create the cluster. This value * exists only when the cluster was created from a backup.

*/ inline Cluster& WithSourceBackupId(Aws::String&& value) { SetSourceBackupId(std::move(value)); return *this;} /** *

The identifier (ID) of the backup used to create the cluster. This value * exists only when the cluster was created from a backup.

*/ inline Cluster& WithSourceBackupId(const char* value) { SetSourceBackupId(value); return *this;} /** *

The cluster's state.

*/ inline const ClusterState& GetState() const{ return m_state; } /** *

The cluster's state.

*/ inline bool StateHasBeenSet() const { return m_stateHasBeenSet; } /** *

The cluster's state.

*/ inline void SetState(const ClusterState& value) { m_stateHasBeenSet = true; m_state = value; } /** *

The cluster's state.

*/ inline void SetState(ClusterState&& value) { m_stateHasBeenSet = true; m_state = std::move(value); } /** *

The cluster's state.

*/ inline Cluster& WithState(const ClusterState& value) { SetState(value); return *this;} /** *

The cluster's state.

*/ inline Cluster& WithState(ClusterState&& value) { SetState(std::move(value)); return *this;} /** *

A description of the cluster's state.

*/ inline const Aws::String& GetStateMessage() const{ return m_stateMessage; } /** *

A description of the cluster's state.

*/ inline bool StateMessageHasBeenSet() const { return m_stateMessageHasBeenSet; } /** *

A description of the cluster's state.

*/ inline void SetStateMessage(const Aws::String& value) { m_stateMessageHasBeenSet = true; m_stateMessage = value; } /** *

A description of the cluster's state.

*/ inline void SetStateMessage(Aws::String&& value) { m_stateMessageHasBeenSet = true; m_stateMessage = std::move(value); } /** *

A description of the cluster's state.

*/ inline void SetStateMessage(const char* value) { m_stateMessageHasBeenSet = true; m_stateMessage.assign(value); } /** *

A description of the cluster's state.

*/ inline Cluster& WithStateMessage(const Aws::String& value) { SetStateMessage(value); return *this;} /** *

A description of the cluster's state.

*/ inline Cluster& WithStateMessage(Aws::String&& value) { SetStateMessage(std::move(value)); return *this;} /** *

A description of the cluster's state.

*/ inline Cluster& WithStateMessage(const char* value) { SetStateMessage(value); return *this;} /** *

A map from availability zone to the cluster’s subnet in that availability * zone.

*/ inline const Aws::Map& GetSubnetMapping() const{ return m_subnetMapping; } /** *

A map from availability zone to the cluster’s subnet in that availability * zone.

*/ inline bool SubnetMappingHasBeenSet() const { return m_subnetMappingHasBeenSet; } /** *

A map from availability zone to the cluster’s subnet in that availability * zone.

*/ inline void SetSubnetMapping(const Aws::Map& value) { m_subnetMappingHasBeenSet = true; m_subnetMapping = value; } /** *

A map from availability zone to the cluster’s subnet in that availability * zone.

*/ inline void SetSubnetMapping(Aws::Map&& value) { m_subnetMappingHasBeenSet = true; m_subnetMapping = std::move(value); } /** *

A map from availability zone to the cluster’s subnet in that availability * zone.

*/ inline Cluster& WithSubnetMapping(const Aws::Map& value) { SetSubnetMapping(value); return *this;} /** *

A map from availability zone to the cluster’s subnet in that availability * zone.

*/ inline Cluster& WithSubnetMapping(Aws::Map&& value) { SetSubnetMapping(std::move(value)); return *this;} /** *

A map from availability zone to the cluster’s subnet in that availability * zone.

*/ inline Cluster& AddSubnetMapping(const Aws::String& key, const Aws::String& value) { m_subnetMappingHasBeenSet = true; m_subnetMapping.emplace(key, value); return *this; } /** *

A map from availability zone to the cluster’s subnet in that availability * zone.

*/ inline Cluster& AddSubnetMapping(Aws::String&& key, const Aws::String& value) { m_subnetMappingHasBeenSet = true; m_subnetMapping.emplace(std::move(key), value); return *this; } /** *

A map from availability zone to the cluster’s subnet in that availability * zone.

*/ inline Cluster& AddSubnetMapping(const Aws::String& key, Aws::String&& value) { m_subnetMappingHasBeenSet = true; m_subnetMapping.emplace(key, std::move(value)); return *this; } /** *

A map from availability zone to the cluster’s subnet in that availability * zone.

*/ inline Cluster& AddSubnetMapping(Aws::String&& key, Aws::String&& value) { m_subnetMappingHasBeenSet = true; m_subnetMapping.emplace(std::move(key), std::move(value)); return *this; } /** *

A map from availability zone to the cluster’s subnet in that availability * zone.

*/ inline Cluster& AddSubnetMapping(const char* key, Aws::String&& value) { m_subnetMappingHasBeenSet = true; m_subnetMapping.emplace(key, std::move(value)); return *this; } /** *

A map from availability zone to the cluster’s subnet in that availability * zone.

*/ inline Cluster& AddSubnetMapping(Aws::String&& key, const char* value) { m_subnetMappingHasBeenSet = true; m_subnetMapping.emplace(std::move(key), value); return *this; } /** *

A map from availability zone to the cluster’s subnet in that availability * zone.

*/ inline Cluster& AddSubnetMapping(const char* key, const char* value) { m_subnetMappingHasBeenSet = true; m_subnetMapping.emplace(key, value); return *this; } /** *

The identifier (ID) of the virtual private cloud (VPC) that contains the * cluster.

*/ inline const Aws::String& GetVpcId() const{ return m_vpcId; } /** *

The identifier (ID) of the virtual private cloud (VPC) that contains the * cluster.

*/ inline bool VpcIdHasBeenSet() const { return m_vpcIdHasBeenSet; } /** *

The identifier (ID) of the virtual private cloud (VPC) that contains the * cluster.

*/ inline void SetVpcId(const Aws::String& value) { m_vpcIdHasBeenSet = true; m_vpcId = value; } /** *

The identifier (ID) of the virtual private cloud (VPC) that contains the * cluster.

*/ inline void SetVpcId(Aws::String&& value) { m_vpcIdHasBeenSet = true; m_vpcId = std::move(value); } /** *

The identifier (ID) of the virtual private cloud (VPC) that contains the * cluster.

*/ inline void SetVpcId(const char* value) { m_vpcIdHasBeenSet = true; m_vpcId.assign(value); } /** *

The identifier (ID) of the virtual private cloud (VPC) that contains the * cluster.

*/ inline Cluster& WithVpcId(const Aws::String& value) { SetVpcId(value); return *this;} /** *

The identifier (ID) of the virtual private cloud (VPC) that contains the * cluster.

*/ inline Cluster& WithVpcId(Aws::String&& value) { SetVpcId(std::move(value)); return *this;} /** *

The identifier (ID) of the virtual private cloud (VPC) that contains the * cluster.

*/ inline Cluster& WithVpcId(const char* value) { SetVpcId(value); return *this;} /** *

Contains one or more certificates or a certificate signing request (CSR).

*/ inline const Certificates& GetCertificates() const{ return m_certificates; } /** *

Contains one or more certificates or a certificate signing request (CSR).

*/ inline bool CertificatesHasBeenSet() const { return m_certificatesHasBeenSet; } /** *

Contains one or more certificates or a certificate signing request (CSR).

*/ inline void SetCertificates(const Certificates& value) { m_certificatesHasBeenSet = true; m_certificates = value; } /** *

Contains one or more certificates or a certificate signing request (CSR).

*/ inline void SetCertificates(Certificates&& value) { m_certificatesHasBeenSet = true; m_certificates = std::move(value); } /** *

Contains one or more certificates or a certificate signing request (CSR).

*/ inline Cluster& WithCertificates(const Certificates& value) { SetCertificates(value); return *this;} /** *

Contains one or more certificates or a certificate signing request (CSR).

*/ inline Cluster& WithCertificates(Certificates&& value) { SetCertificates(std::move(value)); return *this;} /** *

The list of tags for the cluster.

*/ inline const Aws::Vector& GetTagList() const{ return m_tagList; } /** *

The list of tags for the cluster.

*/ inline bool TagListHasBeenSet() const { return m_tagListHasBeenSet; } /** *

The list of tags for the cluster.

*/ inline void SetTagList(const Aws::Vector& value) { m_tagListHasBeenSet = true; m_tagList = value; } /** *

The list of tags for the cluster.

*/ inline void SetTagList(Aws::Vector&& value) { m_tagListHasBeenSet = true; m_tagList = std::move(value); } /** *

The list of tags for the cluster.

*/ inline Cluster& WithTagList(const Aws::Vector& value) { SetTagList(value); return *this;} /** *

The list of tags for the cluster.

*/ inline Cluster& WithTagList(Aws::Vector&& value) { SetTagList(std::move(value)); return *this;} /** *

The list of tags for the cluster.

*/ inline Cluster& AddTagList(const Tag& value) { m_tagListHasBeenSet = true; m_tagList.push_back(value); return *this; } /** *

The list of tags for the cluster.

*/ inline Cluster& AddTagList(Tag&& value) { m_tagListHasBeenSet = true; m_tagList.push_back(std::move(value)); return *this; } private: BackupPolicy m_backupPolicy; bool m_backupPolicyHasBeenSet = false; BackupRetentionPolicy m_backupRetentionPolicy; bool m_backupRetentionPolicyHasBeenSet = false; Aws::String m_clusterId; bool m_clusterIdHasBeenSet = false; Aws::Utils::DateTime m_createTimestamp; bool m_createTimestampHasBeenSet = false; Aws::Vector m_hsms; bool m_hsmsHasBeenSet = false; Aws::String m_hsmType; bool m_hsmTypeHasBeenSet = false; Aws::String m_preCoPassword; bool m_preCoPasswordHasBeenSet = false; Aws::String m_securityGroup; bool m_securityGroupHasBeenSet = false; Aws::String m_sourceBackupId; bool m_sourceBackupIdHasBeenSet = false; ClusterState m_state; bool m_stateHasBeenSet = false; Aws::String m_stateMessage; bool m_stateMessageHasBeenSet = false; Aws::Map m_subnetMapping; bool m_subnetMappingHasBeenSet = false; Aws::String m_vpcId; bool m_vpcIdHasBeenSet = false; Certificates m_certificates; bool m_certificatesHasBeenSet = false; Aws::Vector m_tagList; bool m_tagListHasBeenSet = false; }; } // namespace Model } // namespace CloudHSMV2 } // namespace Aws