createHsm method
This is documentation for AWS CloudHSM Classic. For more information, see AWS CloudHSM Classic FAQs, the AWS CloudHSM Classic User Guide, and the AWS CloudHSM Classic API Reference.
For information about the current version of AWS CloudHSM, see AWS CloudHSM, the AWS CloudHSM User Guide, and the AWS CloudHSM API Reference.
Creates an uninitialized HSM instance.
There is an upfront fee charged for each HSM instance that you create with
the CreateHsm
operation. If you accidentally provision an HSM
and want to request a refund, delete the instance using the
DeleteHsm operation, go to the AWS Support Center,
create a new case, and select Account and Billing Support.
May throw CloudHsmServiceException. May throw CloudHsmInternalException. May throw InvalidRequestException.
Parameter iamRoleArn
:
The ARN of an IAM role to enable the AWS CloudHSM service to allocate an
ENI on your behalf.
Parameter sshKey
:
The SSH public key to install on the HSM.
Parameter subnetId
:
The identifier of the subnet in your VPC in which to place the HSM.
Parameter clientToken
:
A user-defined token to ensure idempotence. Subsequent calls to this
operation with the same token will be ignored.
Parameter eniIp
:
The IP address to assign to the HSM's ENI.
If an IP address is not specified, an IP address will be randomly chosen from the CIDR range of the subnet.
Parameter externalId
:
The external ID from IamRoleArn
, if present.
Parameter syslogIp
:
The IP address for the syslog monitoring server. The AWS CloudHSM service
only supports one syslog monitoring server.
Implementation
Future<CreateHsmResponse> createHsm({
required String iamRoleArn,
required String sshKey,
required String subnetId,
required SubscriptionType subscriptionType,
String? clientToken,
String? eniIp,
String? externalId,
String? syslogIp,
}) async {
ArgumentError.checkNotNull(iamRoleArn, 'iamRoleArn');
ArgumentError.checkNotNull(sshKey, 'sshKey');
ArgumentError.checkNotNull(subnetId, 'subnetId');
ArgumentError.checkNotNull(subscriptionType, 'subscriptionType');
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'CloudHsmFrontendService.CreateHsm'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'IamRoleArn': iamRoleArn,
'SshKey': sshKey,
'SubnetId': subnetId,
'SubscriptionType': subscriptionType.toValue(),
if (clientToken != null) 'ClientToken': clientToken,
if (eniIp != null) 'EniIp': eniIp,
if (externalId != null) 'ExternalId': externalId,
if (syslogIp != null) 'SyslogIp': syslogIp,
},
);
return CreateHsmResponse.fromJson(jsonResponse.body);
}