/**
 * Monitoring API
 * Use the Monitoring API to manage metric queries and alarms for assessing the health, capacity, and performance of your cloud resources.
Endpoints vary by operation. For PostMetric, use the `telemetry-ingestion` endpoints; for all other operations, use the `telemetry` endpoints.
For information about monitoring, see [Monitoring Overview](/iaas/Content/Monitoring/Concepts/monitoringoverview.htm).

 * OpenAPI spec version: 20180401
 *
 *
 * 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" ) ; /**
* A summary of properties for the specified alarm and its current evaluation status.
* For information about alarms, see [Alarms Overview](https://docs.cloud.oracle.com/iaas/Content/Monitoring/Concepts/monitoringoverview.htm#AlarmsOverview).
* <p>
To use any of the API operations, you must be authorized in an IAM policy. If you're not authorized,
* talk to an administrator. If you're an administrator who needs to write policies to give users access, see
* [Getting Started with Policies](https://docs.cloud.oracle.com/iaas/Content/Identity/Concepts/policygetstarted.htm).
* <p>
For information about endpoints and signing API requests, see
* [About the API](https://docs.cloud.oracle.com/iaas/Content/API/Concepts/usingapi.htm). For information about available SDKs and tools, see
* [SDKS and Other Tools](https://docs.cloud.oracle.com/iaas/Content/API/Concepts/sdks.htm).
*
*/ export interface AlarmStatusSummary { /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the alarm.
     *
     */ "id" : string ; /**
      * The configured name of the alarm.
  * <p>
  Example: `High CPU Utilization`
  *
      */ "displayName" : string ; /**
      * The configured severity of the alarm.
  * <p>
  Example: `CRITICAL`
  *
      */ "severity" : AlarmStatusSummary . Severity ; /**
      * Timestamp for the transition of the alarm state. For example, the time when the alarm transitioned from OK to Firing.
  * Note: A three-minute lag for this value accounts for any late-arriving metrics.
  * <p>
  Example: `2019-02-01T01:02:29.600Z`
  *
      */ "timestampTriggered" : Date ; /**
      * The status of this alarm.
  * <p>
  Example: `FIRING`
  *
      */ "status" : AlarmStatusSummary . Status ; /**
     * The configuration details for suppressing an alarm.
     *
     */ "suppression" ? : model . Suppression ; } export namespace AlarmStatusSummary { export enum Severity { Critical = "CRITICAL" , Error = "ERROR" , Warning = "WARNING" , Info = "INFO" , /**
         * 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 enum Status { Firing = "FIRING" , Ok = "OK" , Suspended = "SUSPENDED" , /**
         * 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 , ... { "suppression" : obj . suppression ? model . Suppression . getJsonObj ( obj . suppression ) : undefined } } ; return jsonObj ; } export function getDeserializedJsonObj ( obj ) { const jsonObj = { ... obj , ... { "suppression" : obj . suppression ? model . Suppression . getDeserializedJsonObj ( obj . suppression ) : undefined } } ; return jsonObj ; } }