module OpenTelemetry.Resource.OperatingSystem where
import Data.Text (Text)
import OpenTelemetry.Attributes.Key (unkey)
import OpenTelemetry.Resource
import qualified OpenTelemetry.SemanticConventions as SC
data OperatingSystem = OperatingSystem
{ OperatingSystem -> Text
osType :: Text
, OperatingSystem -> Maybe Text
osDescription :: Maybe Text
, OperatingSystem -> Maybe Text
osName :: Maybe Text
, OperatingSystem -> Maybe Text
osVersion :: Maybe Text
, OperatingSystem -> Maybe Text
osBuildId :: Maybe Text
}
instance ToResource OperatingSystem where
toResource :: OperatingSystem -> Resource
toResource OperatingSystem {Maybe Text
Text
osType :: OperatingSystem -> Text
osDescription :: OperatingSystem -> Maybe Text
osName :: OperatingSystem -> Maybe Text
osVersion :: OperatingSystem -> Maybe Text
osBuildId :: OperatingSystem -> Maybe Text
osType :: Text
osDescription :: Maybe Text
osName :: Maybe Text
osVersion :: Maybe Text
osBuildId :: Maybe Text
..} =
Maybe Text -> [Maybe (Text, Attribute)] -> Resource
mkResourceWithSchema
(Text -> Maybe Text
forall a. a -> Maybe a
Just Text
semConvSchemaUrl)
[ AttributeKey Text -> Text
forall a. AttributeKey a -> Text
unkey AttributeKey Text
SC.os_type Text -> Text -> Maybe (Text, Attribute)
forall a. ToAttribute a => Text -> a -> Maybe (Text, Attribute)
.= Text
osType
, AttributeKey Text -> Text
forall a. AttributeKey a -> Text
unkey AttributeKey Text
SC.os_description Text -> Maybe Text -> Maybe (Text, Attribute)
forall a.
ToAttribute a =>
Text -> Maybe a -> Maybe (Text, Attribute)
.=? Maybe Text
osDescription
, AttributeKey Text -> Text
forall a. AttributeKey a -> Text
unkey AttributeKey Text
SC.os_name Text -> Maybe Text -> Maybe (Text, Attribute)
forall a.
ToAttribute a =>
Text -> Maybe a -> Maybe (Text, Attribute)
.=? Maybe Text
osName
, AttributeKey Text -> Text
forall a. AttributeKey a -> Text
unkey AttributeKey Text
SC.os_version Text -> Maybe Text -> Maybe (Text, Attribute)
forall a.
ToAttribute a =>
Text -> Maybe a -> Maybe (Text, Attribute)
.=? Maybe Text
osVersion
, AttributeKey Text -> Text
forall a. AttributeKey a -> Text
unkey AttributeKey Text
SC.os_buildId Text -> Maybe Text -> Maybe (Text, Attribute)
forall a.
ToAttribute a =>
Text -> Maybe a -> Maybe (Text, Attribute)
.=? Maybe Text
osBuildId
]