createCloudAutonomousVmCluster method

Future<CreateCloudAutonomousVmClusterOutput> createCloudAutonomousVmCluster({
  1. required double autonomousDataStorageSizeInTBs,
  2. required String cloudExadataInfrastructureId,
  3. required int cpuCoreCountPerNode,
  4. required String displayName,
  5. required int memoryPerOracleComputeUnitInGBs,
  6. required String odbNetworkId,
  7. required int totalContainerDatabases,
  8. String? clientToken,
  9. List<String>? dbServers,
  10. String? description,
  11. bool? isMtlsEnabledVmCluster,
  12. LicenseModel? licenseModel,
  13. MaintenanceWindow? maintenanceWindow,
  14. int? scanListenerPortNonTls,
  15. int? scanListenerPortTls,
  16. Map<String, String>? tags,
  17. String? timeZone,
})

Creates a new Autonomous VM cluster in 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 autonomousDataStorageSizeInTBs : The data disk group size to be allocated for Autonomous Databases, in terabytes (TB).

Parameter cloudExadataInfrastructureId : The unique identifier of the Exadata infrastructure where the VM cluster will be created.

Parameter cpuCoreCountPerNode : The number of CPU cores to be enabled per VM cluster node.

Parameter displayName : The display name for the Autonomous VM cluster. The name does not need to be unique.

Parameter memoryPerOracleComputeUnitInGBs : The amount of memory to be allocated per OCPU, in GB.

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

Parameter totalContainerDatabases : The total number of Autonomous CDBs that you can create in the Autonomous VM cluster.

Parameter clientToken : A client-provided token to ensure idempotency of the request.

Parameter dbServers : The list of database servers to be used for the Autonomous VM cluster.

Parameter description : A user-provided description of the Autonomous VM cluster.

Parameter isMtlsEnabledVmCluster : Specifies whether to enable mutual TLS (mTLS) authentication for the Autonomous VM cluster.

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

Parameter maintenanceWindow : The scheduling details for the maintenance window. Patching and system updates take place during the maintenance window.

Parameter scanListenerPortNonTls : The SCAN listener port for non-TLS (TCP) protocol.

Parameter scanListenerPortTls : The SCAN listener port for TLS (TCP) protocol.

Parameter tags : Free-form tags for this resource. Each tag is a key-value pair with no predefined name, type, or namespace.

Parameter timeZone : The time zone to use for the Autonomous VM cluster.

Implementation

Future<CreateCloudAutonomousVmClusterOutput> createCloudAutonomousVmCluster({
  required double autonomousDataStorageSizeInTBs,
  required String cloudExadataInfrastructureId,
  required int cpuCoreCountPerNode,
  required String displayName,
  required int memoryPerOracleComputeUnitInGBs,
  required String odbNetworkId,
  required int totalContainerDatabases,
  String? clientToken,
  List<String>? dbServers,
  String? description,
  bool? isMtlsEnabledVmCluster,
  LicenseModel? licenseModel,
  MaintenanceWindow? maintenanceWindow,
  int? scanListenerPortNonTls,
  int? scanListenerPortTls,
  Map<String, String>? tags,
  String? timeZone,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.0',
    'X-Amz-Target': 'Odb.CreateCloudAutonomousVmCluster'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'autonomousDataStorageSizeInTBs': autonomousDataStorageSizeInTBs,
      'cloudExadataInfrastructureId': cloudExadataInfrastructureId,
      'cpuCoreCountPerNode': cpuCoreCountPerNode,
      'displayName': displayName,
      'memoryPerOracleComputeUnitInGBs': memoryPerOracleComputeUnitInGBs,
      'odbNetworkId': odbNetworkId,
      'totalContainerDatabases': totalContainerDatabases,
      'clientToken': clientToken ?? _s.generateIdempotencyToken(),
      if (dbServers != null) 'dbServers': dbServers,
      if (description != null) 'description': description,
      if (isMtlsEnabledVmCluster != null)
        'isMtlsEnabledVmCluster': isMtlsEnabledVmCluster,
      if (licenseModel != null) 'licenseModel': licenseModel.value,
      if (maintenanceWindow != null) 'maintenanceWindow': maintenanceWindow,
      if (scanListenerPortNonTls != null)
        'scanListenerPortNonTls': scanListenerPortNonTls,
      if (scanListenerPortTls != null)
        'scanListenerPortTls': scanListenerPortTls,
      if (tags != null) 'tags': tags,
      if (timeZone != null) 'timeZone': timeZone,
    },
  );

  return CreateCloudAutonomousVmClusterOutput.fromJson(jsonResponse.body);
}