createCloudVmCluster method

Future<CreateCloudVmClusterOutput> createCloudVmCluster({
  1. required String cloudExadataInfrastructureId,
  2. required int cpuCoreCount,
  3. required String displayName,
  4. required String giVersion,
  5. required String hostname,
  6. required String odbNetworkId,
  7. required List<String> sshPublicKeys,
  8. String? clientToken,
  9. String? clusterName,
  10. DataCollectionOptions? dataCollectionOptions,
  11. double? dataStorageSizeInTBs,
  12. int? dbNodeStorageSizeInGBs,
  13. List<String>? dbServers,
  14. bool? isLocalBackupEnabled,
  15. bool? isSparseDiskgroupEnabled,
  16. LicenseModel? licenseModel,
  17. int? memorySizeInGBs,
  18. int? scanListenerPortTcp,
  19. String? systemVersion,
  20. Map<String, String>? tags,
  21. String? timeZone,
})

Creates a VM cluster on the specified Exadata infrastructure.

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

Parameter cloudExadataInfrastructureId : The unique identifier of the Exadata infrastructure for this VM cluster.

Parameter cpuCoreCount : The number of CPU cores to enable on the VM cluster.

Parameter displayName : A user-friendly name for the VM cluster.

Parameter giVersion : A valid software version of Oracle Grid Infrastructure (GI). To get the list of valid values, use the ListGiVersions operation and specify the shape of the Exadata infrastructure.

Example: 19.0.0.0

Parameter hostname : The host name for the VM cluster.

Constraints:

  • Can't be "localhost" or "hostname".
  • Can't contain "-version".
  • The maximum length of the combined hostname and domain is 63 characters.
  • The hostname must be unique within the subnet.

Parameter odbNetworkId : The unique identifier of the ODB network for the VM cluster.

Parameter sshPublicKeys : The public key portion of one or more key pairs used for SSH access to the VM cluster.

Parameter clientToken : A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you don't specify a client token, the Amazon Web Services SDK automatically generates a client token and uses it for the request to ensure idempotency. The client token is valid for up to 24 hours after it's first used.

Parameter clusterName : A name for the Grid Infrastructure cluster. The name isn't case sensitive.

Parameter dataCollectionOptions : The set of preferences for the various diagnostic collection options for the VM cluster.

Parameter dataStorageSizeInTBs : The size of the data disk group, in terabytes (TBs), to allocate for the VM cluster.

Parameter dbNodeStorageSizeInGBs : The amount of local node storage, in gigabytes (GBs), to allocate for the VM cluster.

Parameter dbServers : The list of database servers for the VM cluster.

Parameter isLocalBackupEnabled : Specifies whether to enable database backups to local Exadata storage for the VM cluster.

Parameter isSparseDiskgroupEnabled : Specifies whether to create a sparse disk group for the VM cluster.

Parameter licenseModel : The Oracle license model to apply to the VM cluster.

Default: LICENSE_INCLUDED

Parameter memorySizeInGBs : The amount of memory, in gigabytes (GBs), to allocate for the VM cluster.

Parameter scanListenerPortTcp : The port number for TCP connections to the single client access name (SCAN) listener.

Valid values: 1024–8999 with the following exceptions: 2484, 6100, 6200, 7060, 7070, 7085, and 7879

Default: 1521

Parameter systemVersion : The version of the operating system of the image for the VM cluster.

Parameter tags : The list of resource tags to apply to the VM cluster.

Parameter timeZone : The time zone for the VM cluster. For a list of valid values for time zone, you can check the options in the console.

Default: UTC

Implementation

Future<CreateCloudVmClusterOutput> createCloudVmCluster({
  required String cloudExadataInfrastructureId,
  required int cpuCoreCount,
  required String displayName,
  required String giVersion,
  required String hostname,
  required String odbNetworkId,
  required List<String> sshPublicKeys,
  String? clientToken,
  String? clusterName,
  DataCollectionOptions? dataCollectionOptions,
  double? dataStorageSizeInTBs,
  int? dbNodeStorageSizeInGBs,
  List<String>? dbServers,
  bool? isLocalBackupEnabled,
  bool? isSparseDiskgroupEnabled,
  LicenseModel? licenseModel,
  int? memorySizeInGBs,
  int? scanListenerPortTcp,
  String? systemVersion,
  Map<String, String>? tags,
  String? timeZone,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.0',
    'X-Amz-Target': 'Odb.CreateCloudVmCluster'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'cloudExadataInfrastructureId': cloudExadataInfrastructureId,
      'cpuCoreCount': cpuCoreCount,
      'displayName': displayName,
      'giVersion': giVersion,
      'hostname': hostname,
      'odbNetworkId': odbNetworkId,
      'sshPublicKeys': sshPublicKeys,
      'clientToken': clientToken ?? _s.generateIdempotencyToken(),
      if (clusterName != null) 'clusterName': clusterName,
      if (dataCollectionOptions != null)
        'dataCollectionOptions': dataCollectionOptions,
      if (dataStorageSizeInTBs != null)
        'dataStorageSizeInTBs': dataStorageSizeInTBs,
      if (dbNodeStorageSizeInGBs != null)
        'dbNodeStorageSizeInGBs': dbNodeStorageSizeInGBs,
      if (dbServers != null) 'dbServers': dbServers,
      if (isLocalBackupEnabled != null)
        'isLocalBackupEnabled': isLocalBackupEnabled,
      if (isSparseDiskgroupEnabled != null)
        'isSparseDiskgroupEnabled': isSparseDiskgroupEnabled,
      if (licenseModel != null) 'licenseModel': licenseModel.value,
      if (memorySizeInGBs != null) 'memorySizeInGBs': memorySizeInGBs,
      if (scanListenerPortTcp != null)
        'scanListenerPortTcp': scanListenerPortTcp,
      if (systemVersion != null) 'systemVersion': systemVersion,
      if (tags != null) 'tags': tags,
      if (timeZone != null) 'timeZone': timeZone,
    },
  );

  return CreateCloudVmClusterOutput.fromJson(jsonResponse.body);
}