{-
   Alertmanager API
   API of the Prometheus Alertmanager (https://github.com/prometheus/alertmanager)

   OpenAPI spec version: 0.0.1

   NOTE: This file is auto generated by the openapi-generator.
   https://github.com/openapitools/openapi-generator.git
   Do not edit this file manually.
-}


module Data.Alert exposing (Alert(..), decoder, encoder)

import Dict exposing (Dict)
import Json.Decode as Decode exposing (Decoder)
import Json.Decode.Pipeline exposing (optional, required)
import Json.Encode as Encode


type alias Alert =
    { labels : Dict String String
    , generatorURL : Maybe String
    }


decoder : Decoder Alert
decoder =
    Decode.succeed Alert
        |> required "labels" (Decode.dict Decode.string)
        |> optional "generatorURL" (Decode.nullable Decode.string) Nothing


encoder : Alert -> Encode.Value
encoder model =
    Encode.object
        [ ( "labels", Encode.dict identity Encode.string model.labels )
        , ( "generatorURL", Maybe.withDefault Encode.null (Maybe.map Encode.string model.generatorURL) )
        ]
