/**
 * Health Checks API
 * API for the Health Checks service. Use this API to manage endpoint probes and monitors.
For more information, see
[Overview of the Health Checks Service](/iaas/Content/HealthChecks/Concepts/healthchecks.htm).

 * OpenAPI spec version: 20180501
 *
 *
 * 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" ) ; /**
 * The results returned by running a ping probe.  All times and durations are
 * returned in milliseconds. All times are relative to the POSIX epoch
 * (1970-01-01T00:00Z).
 *
 */ export interface PingProbeResultSummary { /**
     * A value identifying this specific probe result. The key is only unique within
     * the results of its probe configuration. The key may be reused after 90 days.
     *
     */ "key" ? : string ; /**
     * The OCID of the monitor or on-demand probe responsible for creating this result.
     *
     */ "probeConfigurationId" ? : string ; /**
     * The date and time the probe was executed, expressed in milliseconds since the
     * POSIX epoch. This field is defined by the PerformanceResourceTiming interface
     * of the W3C Resource Timing specification. For more information, see
     * [Resource Timing](https://w3c.github.io/resource-timing/#sec-resource-timing).
     *  Note: Numbers greater than Number.MAX_SAFE_INTEGER will result in rounding issues.
     */ "startTime" ? : number ; /**
     * The target hostname or IP address of the probe.
     */ "target" ? : string ; /**
     * The name of the vantage point that executed the probe.
     */ "vantagePointName" ? : string ; /**
     * True if the probe did not complete before the configured `timeoutInSeconds` value.
     *
     */ "isTimedOut" ? : boolean ; /**
     * True if the probe result is determined to be healthy based on probe
     * type-specific criteria.  For HTTP probes, a probe result is considered
     * healthy if the HTTP response code is greater than or equal to 200 and
     * less than 300.
     *
     */ "isHealthy" ? : boolean ; /**
     * The category of error if an error occurs executing the probe.
     * The `errorMessage` field provides a message with the error details.
     * * NONE - No error
     * * DNS - DNS errors
     * * TRANSPORT - Transport-related errors, for example a \"TLS certificate expired\" error.
     * * NETWORK - Network-related errors, for example a \"network unreachable\" error.
     * * SYSTEM - Internal system errors.
     *
     */ "errorCategory" ? : PingProbeResultSummary . ErrorCategory ; /**
     * The error information indicating why a probe execution failed.
     */ "errorMessage" ? : string ; "protocol" ? : model . PingProbeProtocol ; "connection" ? : model . Connection ; "dns" ? : model . DNS ; /**
     * The time immediately before the vantage point starts the domain name lookup for
     * the resource.
     *  Note: Numbers greater than Number.MAX_SAFE_INTEGER will result in rounding issues.
     */ "domainLookupStart" ? : number ; /**
     * The time immediately before the vantage point finishes the domain name lookup for
     * the resource.
     *  Note: Numbers greater than Number.MAX_SAFE_INTEGER will result in rounding issues.
     */ "domainLookupEnd" ? : number ; /**
     * The latency of the probe execution, in milliseconds.
     *  Note: Numbers greater than Number.MAX_SAFE_INTEGER will result in rounding issues.
     */ "latencyInMs" ? : number ; /**
     * The ICMP code of the response message.  This field is not used when the protocol
     * is set to TCP.  For more information on ICMP codes, see
     * [Internet Control Message Protocol (ICMP) Parameters](https://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml).
     *  Note: Numbers greater than Number.MAX_SAFE_INTEGER will result in rounding issues.
     */ "icmpCode" ? : number ; } export namespace PingProbeResultSummary { export enum ErrorCategory { None = "NONE" , Dns = "DNS" , Transport = "TRANSPORT" , Network = "NETWORK" , System = "SYSTEM" , /**
         * 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 , ... { "connection" : obj . connection ? model . Connection . getJsonObj ( obj . connection ) : undefined , "dns" : obj . dns ? model . DNS . getJsonObj ( obj . dns ) : undefined } } ; return jsonObj ; } export function getDeserializedJsonObj ( obj ) { const jsonObj = { ... obj , ... { "connection" : obj . connection ? model . Connection . getDeserializedJsonObj ( obj . connection ) : undefined , "dns" : obj . dns ? model . DNS . getDeserializedJsonObj ( obj . dns ) : undefined } } ; return jsonObj ; } }