{-
   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.Receiver exposing (Receiver, 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 Receiver =
    { name : String
    , labels : Maybe (Dict String String)
    }


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


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