/**
 * Database Management API
 * Use the Database Management API to perform tasks such as obtaining performance and resource usage metrics
for a fleet of Managed Databases or a specific Managed Database, creating Managed Database Groups, and
running a SQL job on a Managed Database or Managed Database Group.

 * OpenAPI spec version: 20201101
 *
 *
 * 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" ) ; /**
 * Request to start a SQL tuning task
 */ export interface StartSqlTuningTaskDetails { /**
     * The name of the SQL tuning task. The name is unique per user in a database, and it is case sensitive.
     */ "taskName" : string ; /**
     * The description of the SQL tuning task.
     */ "taskDescription" ? : string ; "credentialDetails" : model . SqlTuningTaskSecretCredentialDetails | model . SqlTuningTaskPasswordCredentialDetails ; /**
     * The time limit for running the SQL tuning task. Note: Numbers greater than Number.MAX_SAFE_INTEGER will result in rounding issues.
     */ "totalTimeLimitInMinutes" : number ; /**
     * The scope for the SQL tuning task. For LIMITED scope, the SQL profile recommendation
     * is excluded, so the task is faster. For COMPREHENSIVE scope, the SQL profile recommendation
     * is included.
     *
     */ "scope" : StartSqlTuningTaskDetails . Scope ; /**
     * The time limit per SQL statement in minutes. This is for task with COMPREHENSIVE scope.
     * Per statement time limit should not be larger than the total time limit.
     *  Note: Numbers greater than Number.MAX_SAFE_INTEGER will result in rounding issues.
     */ "statementTimeLimitInMinutes" ? : number ; /**
     * The array of the details of SQL statments on which the tuning is performed.
     */ "sqlDetails" : Array < model . SqlTuningTaskSqlDetail > ; /**
     * The start time of the period, in which SQL statements are running.
     */ "timeStarted" : Date ; /**
     * The end time of the period, in which SQL statements are running.
     */ "timeEnded" : Date ; } export namespace StartSqlTuningTaskDetails { export enum Scope { Limited = "LIMITED" , Comprehensive = "COMPREHENSIVE" } export function getJsonObj ( obj ) { const jsonObj = { ... obj , ... { "credentialDetails" : obj . credentialDetails ? model . SqlTuningTaskCredentialDetails . getJsonObj ( obj . credentialDetails ) : undefined , "sqlDetails" : obj . sqlDetails ? obj . sqlDetails . map ( item => { return model . SqlTuningTaskSqlDetail . getJsonObj ( item ) ; } ) : undefined } } ; return jsonObj ; } export function getDeserializedJsonObj ( obj ) { const jsonObj = { ... obj , ... { "credentialDetails" : obj . credentialDetails ? model . SqlTuningTaskCredentialDetails . getDeserializedJsonObj ( obj . credentialDetails ) : undefined , "sqlDetails" : obj . sqlDetails ? obj . sqlDetails . map ( item => { return model . SqlTuningTaskSqlDetail . getDeserializedJsonObj ( item ) ; } ) : undefined } } ; return jsonObj ; } }