createHsm method

Future<CreateHsmResponse> createHsm({
  1. required String iamRoleArn,
  2. required String sshKey,
  3. required String subnetId,
  4. required SubscriptionType subscriptionType,
  5. String? clientToken,
  6. String? eniIp,
  7. String? externalId,
  8. String? syslogIp,
})

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);
}