/**
 * LogAnalytics API
 * The LogAnalytics API for the LogAnalytics service.

 * OpenAPI spec version: 20200601
 *
 *
 * 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" ) ; /**
 * Input arguments for running a query synchronosly and streaming the results as soon as they become available.
 *
 */ export interface ExportDetails { /**
     * Compartment Identifier [OCID] (https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm).
     */ "compartmentId" : string ; /**
     * Flag to search all child compartments of the compartment Id specified in the compartmentId query parameter.
     *
     */ "compartmentIdInSubtree" ? : boolean ; /**
     * Query to perform.
     */ "queryString" : string ; /**
     * Default subsystem to qualify fields with in the queryString if not specified.
     *
     */ "subSystem" : model . SubSystemName ; /**
     * List of filters to be applied when the query executes. More than one filter per field is not permitted.
     *
     */ "scopeFilters" ? : Array < model . ScopeFilter > ; /**
      * Maximum number of results retrieved from data source.  Note a maximum value will be enforced; if the export results can be streamed, the maximum will be 50000000, otherwise 10000; that is, if not streamed, actualMaxTotalCountUsed = Math.min(maxTotalCount, 10000).
  * <p>
  
  * Export will incrementally stream results depending on the queryString.
  * <p>
  Some commands including head/tail are not compatible with streaming result delivery and therefore enforce a reduced limit on overall maxtotalcount.
  *  no sort command or sort by id, e.g. ' | sort id ' - is streaming compatible
  *  sort by time and id, e.g. ' | sort -time, id ' - is streaming compatible
  * all other cases, e.g. ' | sort -time, id, mtgtguid ' - is not streaming compatible due to the additional sort field
  *  Note: Numbers greater than Number.MAX_SAFE_INTEGER will result in rounding issues.
      */ "maxTotalCount" ? : number ; "timeFilter" ? : model . TimeRange ; /**
     * Amount of time, in seconds, allowed for a query to execute. If this time expires before the query is complete, any partial results will be returned. Note: Numbers greater than Number.MAX_SAFE_INTEGER will result in rounding issues.
     */ "queryTimeoutInSeconds" ? : number ; /**
     * Include columns in response
     */ "shouldIncludeColumns" ? : boolean ; /**
     * Specifies the format for the returned results.
     */ "outputFormat" ? : ExportDetails . OutputFormat ; /**
     * Localize results, including header columns, List-Of-Values and timestamp values.
     */ "shouldLocalize" ? : boolean ; /**
     * Controls if query should ignore pre-calculated results if available and only use raw data.
     *
     */ "shouldUseAcceleration" ? : boolean ; } export namespace ExportDetails { export enum OutputFormat { Csv = "CSV" , Json = "JSON" } export function getJsonObj ( obj ) { const jsonObj = { ... obj , ... { "scopeFilters" : obj . scopeFilters ? obj . scopeFilters . map ( item => { return model . ScopeFilter . getJsonObj ( item ) ; } ) : undefined , "timeFilter" : obj . timeFilter ? model . TimeRange . getJsonObj ( obj . timeFilter ) : undefined } } ; return jsonObj ; } export function getDeserializedJsonObj ( obj ) { const jsonObj = { ... obj , ... { "scopeFilters" : obj . scopeFilters ? obj . scopeFilters . map ( item => { return model . ScopeFilter . getDeserializedJsonObj ( item ) ; } ) : undefined , "timeFilter" : obj . timeFilter ? model . TimeRange . getDeserializedJsonObj ( obj . timeFilter ) : undefined } } ; return jsonObj ; } }