/**
 * Database Service API
 * The API for the Database Service. Use this API to manage resources such as databases and DB Systems. For more information, see [Overview of the Database Service](/iaas/Content/Database/Concepts/databaseoverview.htm).

 * OpenAPI spec version: 20160918
 * Contact: sic_dbaas_cp_us_grp@oracle.com
 *
 * NOTE: This class is auto generated by OracleSDKGenerator.
 * Do not edit the class manually.
 *
 * Copyright (c) 2020, 2022, 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" ; import common = require ( "oci-common" ) ; /**
 * Describes the parameters for updating the DB system.
 * <p>
 **Warning:** Oracle recommends that you avoid using any confidential information when you supply string values using the API.
 *
 */ export interface UpdateDbSystemDetails { /**
     * The new number of CPU cores to set for the DB system. Not applicable for virtual machine DB systems. Note: Numbers greater than Number.MAX_SAFE_INTEGER will result in rounding issues.
     */ "cpuCoreCount" ? : number ; "version" ? : model . PatchDetails ; /**
     * The public key portion of the key pair to use for SSH access to the DB system. Multiple public keys can be provided. The length of the combined keys cannot exceed 40,000 characters.
     */ "sshPublicKeys" ? : Array < string > ; /**
     * The size, in gigabytes, to scale the attached storage up to for this virtual machine DB system. This value must be greater than current storage size. Note that the resulting total storage size attached will be greater than the amount requested to allow for REDO/RECO space and software volume. Applies only to virtual machine DB systems.
     *  Note: Numbers greater than Number.MAX_SAFE_INTEGER will result in rounding issues.
     */ "dataStorageSizeInGBs" ? : number ; /**
      * Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace.
  * For more information, see [Resource Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
  * <p>
  Example: `{\"Department\": \"Finance\"}`
  *
      */ "freeformTags" ? : { [ key ] : string ; } ; /**
     * Defined tags for this resource. Each key is predefined and scoped to a namespace.
     * For more information, see [Resource Tags](https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
     *
     */ "definedTags" ? : { [ key ] : { [ key ] : any ; } ; } ; /**
      * The shape of the DB system. The shape determines resources allocated to the DB system.
  * - For virtual machine shapes, the number of CPU cores and memory
  * <p>
  To get a list of shapes, use the  {@link #listDbSystemShapes(ListDbSystemShapesRequest) listDbSystemShapes} operation.
  *
       "shape" ? : string ; /**
     * A list of the [OCIDs](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the network security groups (NSGs) that this resource belongs to. Setting this to an empty array after the list is created removes the resource from all NSGs. For more information about NSGs, see [Security Rules](https://docs.cloud.oracle.com/Content/Network/Concepts/securityrules.htm).
     * **NsgIds restrictions:**
     * - Autonomous Databases with private access require at least 1 Network Security Group (NSG). The nsgIds array cannot be empty.
     *
     */ "nsgIds" ? : Array < string > ; /**
     * A list of the [OCIDs](https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the network security groups (NSGs) that the backup network of this DB system belongs to. Setting this to an empty array after the list is created removes the resource from all NSGs. For more information about NSGs, see [Security Rules](https://docs.cloud.oracle.com/Content/Network/Concepts/securityrules.htm). Applicable only to Exadata systems.
     *
     */ "backupNetworkNsgIds" ? : Array < string > ; /**
     * The Oracle Database license model that applies to all databases on the DB system. The default is LICENSE_INCLUDED.
     *
     */ "licenseModel" ? : UpdateDbSystemDetails . LicenseModel ; "maintenanceWindowDetails" ? : model . MaintenanceWindow ; } export namespace UpdateDbSystemDetails { export enum LicenseModel { LicenseIncluded = "LICENSE_INCLUDED" , BringYourOwnLicense = "BRING_YOUR_OWN_LICENSE" } export function getJsonObj ( obj ) { const jsonObj = { ... obj , ... { "version" : obj . version ? model . PatchDetails . getJsonObj ( obj . version ) : undefined , "maintenanceWindowDetails" : obj . maintenanceWindowDetails ? model . MaintenanceWindow . getJsonObj ( obj . maintenanceWindowDetails ) : undefined } } ; return jsonObj ; } export function getDeserializedJsonObj ( obj ) { const jsonObj = { ... obj , ... { "version" : obj . version ? model . PatchDetails . getDeserializedJsonObj ( obj . version ) : undefined , "maintenanceWindowDetails" : obj . maintenanceWindowDetails ? model . MaintenanceWindow . getDeserializedJsonObj ( obj . maintenanceWindowDetails ) : undefined } } ; return jsonObj ; } }