/**
 * OS Management API
 * API for the OS Management service. Use these API operations for working
with Managed instances and Managed instance groups.

 * OpenAPI spec version: 20190801
 *
 *
 * 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" ) ; /**
 * Detail information for an OCI Compute instance that is being managed
 */ export interface ManagedInstance { /**
     * Managed Instance identifier
     */ "displayName" : string ; /**
     * OCID for the managed instance
     */ "id" : string ; /**
     * Information specified by the user about the managed instance
     */ "description" ? : string ; /**
     * Time at which the instance last checked in
     */ "lastCheckin" ? : string ; /**
     * Time at which the instance last booted
     */ "lastBoot" ? : string ; /**
     * Number of updates available to be installed Note: Numbers greater than Number.MAX_SAFE_INTEGER will result in rounding issues.
     */ "updatesAvailable" ? : number ; /**
     * Operating System Name
     */ "osName" ? : string ; /**
     * Operating System Version
     */ "osVersion" ? : string ; /**
     * Operating System Kernel Version
     */ "osKernelVersion" ? : string ; /**
     * OCID for the Compartment
     */ "compartmentId" : string ; /**
     * status of the managed instance.
     */ "status" ? : ManagedInstance . Status ; /**
     * the parent (base) Software Source attached to the Managed Instance
     */ "parentSoftwareSource" ? : model . SoftwareSourceId ; /**
     * list of child Software Sources attached to the Managed Instance
     */ "childSoftwareSources" ? : Array < model . SoftwareSourceId > ; /**
     * The ids of the managed instance groups of which this instance is a
     * member.
     *
     */ "managedInstanceGroups" ? : Array < model . Id > ; /**
     * The Operating System type of the managed instance.
     */ "osFamily" ? : model . OsFamilies ; /**
     * Indicates whether a reboot is required to complete installation of updates.
     */ "isRebootRequired" ? : boolean ; /**
     * OCID of the ONS topic used to send notification to users
     */ "notificationTopicId" ? : string ; /**
     * The ksplice effective kernel version
     */ "kspliceEffectiveKernelVersion" ? : string ; /**
     * True if user allow data collection for this instance
     */ "isDataCollectionAuthorized" ? : boolean ; /**
     * if present, indicates the Managed Instance is an autonomous instance. Holds all the Autonomous specific information
     */ "autonomous" ? : model . AutonomousSettings ; /**
     * Number of security type updates available to be installed Note: Numbers greater than Number.MAX_SAFE_INTEGER will result in rounding issues.
     */ "securityUpdatesAvailable" ? : number ; /**
     * Number of bug fix type updates available to be installed Note: Numbers greater than Number.MAX_SAFE_INTEGER will result in rounding issues.
     */ "bugUpdatesAvailable" ? : number ; /**
     * Number of enhancement type updates available to be installed Note: Numbers greater than Number.MAX_SAFE_INTEGER will result in rounding issues.
     */ "enhancementUpdatesAvailable" ? : number ; /**
     * Number of non-classified updates available to be installed Note: Numbers greater than Number.MAX_SAFE_INTEGER will result in rounding issues.
     */ "otherUpdatesAvailable" ? : number ; /**
     * Number of scheduled jobs associated with this instance Note: Numbers greater than Number.MAX_SAFE_INTEGER will result in rounding issues.
     */ "scheduledJobCount" ? : number ; /**
     * Number of work requests associated with this instance Note: Numbers greater than Number.MAX_SAFE_INTEGER will result in rounding issues.
     */ "workRequestCount" ? : number ; } export namespace ManagedInstance { export enum Status { Normal = "NORMAL" , Unreachable = "UNREACHABLE" , Error = "ERROR" , Warning = "WARNING" , /**
         * 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 , ... { "parentSoftwareSource" : obj . parentSoftwareSource ? model . SoftwareSourceId . getJsonObj ( obj . parentSoftwareSource ) : undefined , "childSoftwareSources" : obj . childSoftwareSources ? obj . childSoftwareSources . map ( item => { return model . SoftwareSourceId . getJsonObj ( item ) ; } ) : undefined , "managedInstanceGroups" : obj . managedInstanceGroups ? obj . managedInstanceGroups . map ( item => { return model . Id . getJsonObj ( item ) ; } ) : undefined , "autonomous" : obj . autonomous ? model . AutonomousSettings . getJsonObj ( obj . autonomous ) : undefined } } ; return jsonObj ; } export function getDeserializedJsonObj ( obj ) { const jsonObj = { ... obj , ... { "parentSoftwareSource" : obj . parentSoftwareSource ? model . SoftwareSourceId . getDeserializedJsonObj ( obj . parentSoftwareSource ) : undefined , "childSoftwareSources" : obj . childSoftwareSources ? obj . childSoftwareSources . map ( item => { return model . SoftwareSourceId . getDeserializedJsonObj ( item ) ; } ) : undefined , "managedInstanceGroups" : obj . managedInstanceGroups ? obj . managedInstanceGroups . map ( item => { return model . Id . getDeserializedJsonObj ( item ) ; } ) : undefined , "autonomous" : obj . autonomous ? model . AutonomousSettings . getDeserializedJsonObj ( obj . autonomous ) : undefined } } ; return jsonObj ; } }