/**
 * Cloud Advisor API
 * Use the Cloud Advisor API to find potential inefficiencies in your tenancy and address them.
Cloud Advisor can help you save money, improve performance, strengthen system resilience, and improve security.
For more information, see [Cloud Advisor](/Content/CloudAdvisor/Concepts/cloudadvisoroverview.htm).

 * OpenAPI spec version: 20200606
 *
 *
 * 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" ) ; /**
 * An individual field that can be used as part of a query filter.
 *
 */ export interface QueryableFieldSummary { /**
     * The type of the field, which dictates the semantics and query constraints that you can use when searching or querying.
     *
     */ "fieldType" : QueryableFieldSummary . FieldType ; /**
     * The name of the field to use when constructing the query. Field names are present for all types except `OBJECT`.
     *
     */ "fieldName" : string ; /**
     * If the field type is `OBJECT`, this property lists the individual properties of the object that can be queried.
     *
     */ "objectProperties" ? : Array < model . QueryableFieldSummary > ; } export namespace QueryableFieldSummary { export enum FieldType { String = "STRING" , Integer = "INTEGER" , Boolean = "BOOLEAN" , DateTime = "DATE_TIME" , Object = "OBJECT" , /**
         * This value is used if a service returns a value for this enum that is not recognized by this
         * version of the SDK.
         */ UnknownValue = "UNKNOWN_VALUE" } export function getJsonObj ( obj ) { const jsonObj = { ... obj , ... { "objectProperties" : obj . objectProperties ? obj . objectProperties . map ( item => { return model . QueryableFieldSummary . getJsonObj ( item ) ; } ) : undefined } } ; return jsonObj ; } export function getDeserializedJsonObj ( obj ) { const jsonObj = { ... obj , ... { "objectProperties" : obj . objectProperties ? obj . objectProperties . map ( item => { return model . QueryableFieldSummary . getDeserializedJsonObj ( item ) ; } ) : undefined } } ; return jsonObj ; } }