createKxScalingGroup method

Future<CreateKxScalingGroupResponse> createKxScalingGroup({
  1. required String availabilityZoneId,
  2. required String environmentId,
  3. required String hostType,
  4. required String scalingGroupName,
  5. String? clientToken,
  6. Map<String, String>? tags,
})

Creates a new scaling group.

May throw AccessDeniedException. May throw ConflictException. May throw InternalServerException. May throw LimitExceededException. May throw ResourceNotFoundException. May throw ThrottlingException. May throw ValidationException.

Parameter availabilityZoneId : The identifier of the availability zones.

Parameter environmentId : A unique identifier for the kdb environment, where you want to create the scaling group.

Parameter hostType : The memory and CPU capabilities of the scaling group host on which FinSpace Managed kdb clusters will be placed.

You can add one of the following values:

  • kx.sg.large – The host type with a configuration of 16 GiB memory and 2 vCPUs.
  • kx.sg.xlarge – The host type with a configuration of 32 GiB memory and 4 vCPUs.
  • kx.sg.2xlarge – The host type with a configuration of 64 GiB memory and 8 vCPUs.
  • kx.sg.4xlarge – The host type with a configuration of 108 GiB memory and 16 vCPUs.
  • kx.sg.8xlarge – The host type with a configuration of 216 GiB memory and 32 vCPUs.
  • kx.sg.16xlarge – The host type with a configuration of 432 GiB memory and 64 vCPUs.
  • kx.sg.32xlarge – The host type with a configuration of 864 GiB memory and 128 vCPUs.
  • kx.sg1.16xlarge – The host type with a configuration of 1949 GiB memory and 64 vCPUs.
  • kx.sg1.24xlarge – The host type with a configuration of 2948 GiB memory and 96 vCPUs.

Parameter scalingGroupName : A unique identifier for the kdb scaling group.

Parameter clientToken : A token that ensures idempotency. This token expires in 10 minutes.

Parameter tags : A list of key-value pairs to label the scaling group. You can add up to 50 tags to a scaling group.

Implementation

Future<CreateKxScalingGroupResponse> createKxScalingGroup({
  required String availabilityZoneId,
  required String environmentId,
  required String hostType,
  required String scalingGroupName,
  String? clientToken,
  Map<String, String>? tags,
}) async {
  final $payload = <String, dynamic>{
    'availabilityZoneId': availabilityZoneId,
    'hostType': hostType,
    'scalingGroupName': scalingGroupName,
    'clientToken': clientToken ?? _s.generateIdempotencyToken(),
    if (tags != null) 'tags': tags,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'POST',
    requestUri:
        '/kx/environments/${Uri.encodeComponent(environmentId)}/scalingGroups',
    exceptionFnMap: _exceptionFns,
  );
  return CreateKxScalingGroupResponse.fromJson(response);
}