/** * MySQL Database Service API * The API for the MySQL Database Service * OpenAPI spec version: 20190415 * Contact: mysql-cloud-dev_ww_grp@oracle.com * * NOTE: This class is auto generated by OracleSDKGenerator. * Do not edit the class manually. * * Copyright (c) 2020, 2026, Oracle and/or its affiliates. All rights reserved. * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. */ import * as model from "../model"; /** * Details required to create a DB System. * */ export interface CreateDbSystemDetails { /** * The user-friendly name for the DB System. It does not have to be unique. */ "displayName"?: string; /** * User-provided data about the DB System. */ "description"?: string; /** * The OCID of the compartment. */ "compartmentId": string; "rest"?: model.CreateRestDetails; "databaseConsole"?: model.CreateDatabaseConsoleDetails; /** * Specifies if the DB System is highly available. *

When creating a DB System with High Availability, three instances * are created and placed according to your region- and * subnet-type. The secondaries are placed automatically in the other * two availability or fault domains. You can choose the preferred * location of your primary instance, only. * */ "isHighlyAvailable"?: boolean; /** * The availability domain on which to deploy the Read/Write endpoint. This defines the preferred primary instance. *

In a failover scenario, the Read/Write endpoint is redirected to one of the other availability domains * and the MySQL instance in that domain is promoted to the primary instance. * This redirection does not affect the IP address of the DB System in any way. *

For a standalone DB System, this defines the availability domain in which the DB System is placed. * */ "availabilityDomain"?: string; /** * The fault domain on which to deploy the Read/Write endpoint. This defines the preferred primary instance. *

In a failover scenario, the Read/Write endpoint is redirected to one of the other fault domains * and the MySQL instance in that domain is promoted to the primary instance. * This redirection does not affect the IP address of the DB System in any way. *

For a standalone DB System, this defines the fault domain in which the DB System is placed. * */ "faultDomain"?: string; /** * The OCID of the Configuration to be used for this DB System. */ "configurationId"?: string; /** * The name of the shape. The shape determines the resources allocated * - CPU cores and memory for VM shapes; CPU cores, memory and storage * for non-VM (or bare metal) shapes. To get a list of shapes, use the * {@link #listShapes(ListShapesRequest) listShapes} operation. * */ "shapeName": string; /** * The specific MySQL version identifier. */ "mysqlVersion"?: string; /** * The OCID of the subnet the DB System is associated with. * */ "subnetId": string; /** * Network Security Group OCIDs used for the VNIC attachment. */ "nsgIds"?: Array; /** * Security Attributes for this resource. Each key is predefined and scoped to a namespace. * For more information, see [ZPR Artifacts](https://docs.oracle.com/en-us/iaas/Content/zero-trust-packet-routing/zpr-artifacts.htm). * Example: {@code {\"Oracle-ZPR\": {\"MaxEgressCount\": {\"value\": \"42\", \"mode\": \"audit\"}}}} * */ "securityAttributes"?: { [key: string]: { [key: string]: any; }; }; /** * The username for the administrative user. */ "adminUsername"?: string; /** * The password for the administrative user. The password must be * between 8 and 32 characters long, and must contain at least 1 * numeric character, 1 lowercase character, 1 uppercase character, and * 1 special (nonalphanumeric) character. * */ "adminPassword"?: string; /** * Initial size of the data volume in GBs that will be created and attached. * Keep in mind that this only specifies the size of the database data volume, * the log volume for the database will be scaled appropriately with its shape. * Note: Numbers greater than Number.MAX_SAFE_INTEGER will result in rounding issues. */ "dataStorageSizeInGBs"?: number; "dataStorage"?: model.DataStorageDetails; /** * The hostname for the primary endpoint of the DB System. Used for DNS. *

The value is the hostname portion of the primary private IP's fully qualified domain name (FQDN) * (for example, \"dbsystem-1\" in FQDN \"dbsystem-1.subnet123.vcn1.oraclevcn.com\"). *

Must be unique across all VNICs in the subnet and comply with RFC 952 and RFC 1123. * */ "hostnameLabel"?: string; /** * The IP address the DB System is configured to listen on. * A private IP address of your choice to assign to the primary endpoint of the DB System. * Must be an available IP address within the subnet's CIDR. If you don't specify a value, * Oracle automatically assigns a private IP address from the subnet. This should be a * \"dotted-quad\" style IPv4 address. * */ "ipAddress"?: string; /** * The port for primary endpoint of the DB System to listen on. Note: Numbers greater than Number.MAX_SAFE_INTEGER will result in rounding issues. */ "port"?: number; /** * The TCP network port on which X Plugin listens for connections. This is the X Plugin equivalent of port. * Note: Numbers greater than Number.MAX_SAFE_INTEGER will result in rounding issues. */ "portX"?: number; "backupPolicy"?: model.CreateBackupPolicyDetails; "source"?: model.CreateDbSystemSourceFromBackupDetails | model.CreateDbSystemSourceFromNoneDetails | model.CreateDbSystemSourceImportFromUrlDetails | model.CreateDbSystemSourceFromPitrDetails; "maintenance"?: model.CreateMaintenanceDetails; /** * Simple key-value pair applied without any predefined name, type or scope. Exists for cross-compatibility only. * Example: {@code {\"bar-key\": \"value\"}} * */ "freeformTags"?: { [key: string]: string; }; /** * Usage of predefined tag keys. These predefined keys are scoped to namespaces. * Example: {@code {\"foo-namespace\": {\"bar-key\": \"value\"}}} * */ "definedTags"?: { [key: string]: { [key: string]: any; }; }; "deletionPolicy"?: model.CreateDeletionPolicyDetails; /** * Whether to run the DB System with InnoDB Redo Logs and the Double Write Buffer enabled or disabled, * and whether to enable or disable syncing of the Binary Logs. * */ "crashRecovery"?: model.CrashRecoveryStatus; /** * Whether to enable monitoring via the Database Management service. * */ "databaseManagement"?: model.DatabaseManagementStatus; "secureConnections"?: model.SecureConnectionDetails; "encryptData"?: model.EncryptDataDetails; /** * The database mode indicating the types of statements that will be allowed to run in the DB system. * This mode will apply only to statements run by user connections. Replicated write statements will continue * to be allowed regardless of the DatabaseMode. * - READ_WRITE (default): allow running read and write statements on the DB system; * - READ_ONLY: only allow running read statements on the DB system. * */ "databaseMode"?: string; /** * The access mode indicating if the database access will be restricted only to administrators or not: * - UNRESTRICTED (default): the access to the database is not restricted; * - RESTRICTED: the access will be allowed only to users with specific privileges; * RESTRICTED will correspond to setting the MySQL system variable * [offline_mode](https://dev.mysql.com/doc/en/server-system-variables.html#sysvar_offline_mode) to ON. * */ "accessMode"?: string; /** * The list of customer email addresses that receive information from Oracle about the specified OCI DB System resource. * Oracle uses these email addresses to send notifications about planned and unplanned software maintenance updates, information about system hardware, and other information needed by administrators. * Up to 10 email addresses can be added to the customer contacts for a DB System. * */ "customerContacts"?: Array; "readEndpoint"?: model.CreateReadEndpointDetails; "telemetryConfiguration"?: model.CreateTelemetryConfigurationDetails; } export declare namespace CreateDbSystemDetails { function getJsonObj(obj: CreateDbSystemDetails): object; function getDeserializedJsonObj(obj: CreateDbSystemDetails): object; }