amazonka-iotsitewise-2.0: gen/Amazonka/IoTSiteWise/DescribeTimeSeries.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Amazonka.IoTSiteWise.DescribeTimeSeries
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Retrieves information about a time series (data stream).
--
-- To identify a time series, do one of the following:
--
-- - If the time series isn\'t associated with an asset property, specify
-- the @alias@ of the time series.
--
-- - If the time series is associated with an asset property, specify one
-- of the following:
--
-- - The @alias@ of the time series.
--
-- - The @assetId@ and @propertyId@ that identifies the asset
-- property.
module Amazonka.IoTSiteWise.DescribeTimeSeries
( -- * Creating a Request
DescribeTimeSeries (..),
newDescribeTimeSeries,
-- * Request Lenses
describeTimeSeries_alias,
describeTimeSeries_assetId,
describeTimeSeries_propertyId,
-- * Destructuring the Response
DescribeTimeSeriesResponse (..),
newDescribeTimeSeriesResponse,
-- * Response Lenses
describeTimeSeriesResponse_alias,
describeTimeSeriesResponse_assetId,
describeTimeSeriesResponse_dataTypeSpec,
describeTimeSeriesResponse_propertyId,
describeTimeSeriesResponse_httpStatus,
describeTimeSeriesResponse_timeSeriesId,
describeTimeSeriesResponse_dataType,
describeTimeSeriesResponse_timeSeriesCreationDate,
describeTimeSeriesResponse_timeSeriesLastUpdateDate,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.IoTSiteWise.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
-- | /See:/ 'newDescribeTimeSeries' smart constructor.
data DescribeTimeSeries = DescribeTimeSeries'
{ -- | The alias that identifies the time series.
alias :: Prelude.Maybe Prelude.Text,
-- | The ID of the asset in which the asset property was created.
assetId :: Prelude.Maybe Prelude.Text,
-- | The ID of the asset property.
propertyId :: Prelude.Maybe Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'DescribeTimeSeries' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'alias', 'describeTimeSeries_alias' - The alias that identifies the time series.
--
-- 'assetId', 'describeTimeSeries_assetId' - The ID of the asset in which the asset property was created.
--
-- 'propertyId', 'describeTimeSeries_propertyId' - The ID of the asset property.
newDescribeTimeSeries ::
DescribeTimeSeries
newDescribeTimeSeries =
DescribeTimeSeries'
{ alias = Prelude.Nothing,
assetId = Prelude.Nothing,
propertyId = Prelude.Nothing
}
-- | The alias that identifies the time series.
describeTimeSeries_alias :: Lens.Lens' DescribeTimeSeries (Prelude.Maybe Prelude.Text)
describeTimeSeries_alias = Lens.lens (\DescribeTimeSeries' {alias} -> alias) (\s@DescribeTimeSeries' {} a -> s {alias = a} :: DescribeTimeSeries)
-- | The ID of the asset in which the asset property was created.
describeTimeSeries_assetId :: Lens.Lens' DescribeTimeSeries (Prelude.Maybe Prelude.Text)
describeTimeSeries_assetId = Lens.lens (\DescribeTimeSeries' {assetId} -> assetId) (\s@DescribeTimeSeries' {} a -> s {assetId = a} :: DescribeTimeSeries)
-- | The ID of the asset property.
describeTimeSeries_propertyId :: Lens.Lens' DescribeTimeSeries (Prelude.Maybe Prelude.Text)
describeTimeSeries_propertyId = Lens.lens (\DescribeTimeSeries' {propertyId} -> propertyId) (\s@DescribeTimeSeries' {} a -> s {propertyId = a} :: DescribeTimeSeries)
instance Core.AWSRequest DescribeTimeSeries where
type
AWSResponse DescribeTimeSeries =
DescribeTimeSeriesResponse
request overrides =
Request.get (overrides defaultService)
response =
Response.receiveJSON
( \s h x ->
DescribeTimeSeriesResponse'
Prelude.<$> (x Data..?> "alias")
Prelude.<*> (x Data..?> "assetId")
Prelude.<*> (x Data..?> "dataTypeSpec")
Prelude.<*> (x Data..?> "propertyId")
Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
Prelude.<*> (x Data..:> "timeSeriesId")
Prelude.<*> (x Data..:> "dataType")
Prelude.<*> (x Data..:> "timeSeriesCreationDate")
Prelude.<*> (x Data..:> "timeSeriesLastUpdateDate")
)
instance Prelude.Hashable DescribeTimeSeries where
hashWithSalt _salt DescribeTimeSeries' {..} =
_salt
`Prelude.hashWithSalt` alias
`Prelude.hashWithSalt` assetId
`Prelude.hashWithSalt` propertyId
instance Prelude.NFData DescribeTimeSeries where
rnf DescribeTimeSeries' {..} =
Prelude.rnf alias
`Prelude.seq` Prelude.rnf assetId
`Prelude.seq` Prelude.rnf propertyId
instance Data.ToHeaders DescribeTimeSeries where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToPath DescribeTimeSeries where
toPath = Prelude.const "/timeseries/describe/"
instance Data.ToQuery DescribeTimeSeries where
toQuery DescribeTimeSeries' {..} =
Prelude.mconcat
[ "alias" Data.=: alias,
"assetId" Data.=: assetId,
"propertyId" Data.=: propertyId
]
-- | /See:/ 'newDescribeTimeSeriesResponse' smart constructor.
data DescribeTimeSeriesResponse = DescribeTimeSeriesResponse'
{ -- | The alias that identifies the time series.
alias :: Prelude.Maybe Prelude.Text,
-- | The ID of the asset in which the asset property was created.
assetId :: Prelude.Maybe Prelude.Text,
-- | The data type of the structure for this time series. This parameter is
-- required for time series that have the @STRUCT@ data type.
--
-- The options for this parameter depend on the type of the composite model
-- in which you created the asset property that is associated with your
-- time series. Use @AWS\/ALARM_STATE@ for alarm state in alarm composite
-- models.
dataTypeSpec :: Prelude.Maybe Prelude.Text,
-- | The ID of the asset property.
propertyId :: Prelude.Maybe Prelude.Text,
-- | The response's http status code.
httpStatus :: Prelude.Int,
-- | The ID of the time series.
timeSeriesId :: Prelude.Text,
-- | The data type of the time series.
--
-- If you specify @STRUCT@, you must also specify @dataTypeSpec@ to
-- identify the type of the structure for this time series.
dataType :: PropertyDataType,
-- | The date that the time series was created, in Unix epoch time.
timeSeriesCreationDate :: Data.POSIX,
-- | The date that the time series was last updated, in Unix epoch time.
timeSeriesLastUpdateDate :: Data.POSIX
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'DescribeTimeSeriesResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'alias', 'describeTimeSeriesResponse_alias' - The alias that identifies the time series.
--
-- 'assetId', 'describeTimeSeriesResponse_assetId' - The ID of the asset in which the asset property was created.
--
-- 'dataTypeSpec', 'describeTimeSeriesResponse_dataTypeSpec' - The data type of the structure for this time series. This parameter is
-- required for time series that have the @STRUCT@ data type.
--
-- The options for this parameter depend on the type of the composite model
-- in which you created the asset property that is associated with your
-- time series. Use @AWS\/ALARM_STATE@ for alarm state in alarm composite
-- models.
--
-- 'propertyId', 'describeTimeSeriesResponse_propertyId' - The ID of the asset property.
--
-- 'httpStatus', 'describeTimeSeriesResponse_httpStatus' - The response's http status code.
--
-- 'timeSeriesId', 'describeTimeSeriesResponse_timeSeriesId' - The ID of the time series.
--
-- 'dataType', 'describeTimeSeriesResponse_dataType' - The data type of the time series.
--
-- If you specify @STRUCT@, you must also specify @dataTypeSpec@ to
-- identify the type of the structure for this time series.
--
-- 'timeSeriesCreationDate', 'describeTimeSeriesResponse_timeSeriesCreationDate' - The date that the time series was created, in Unix epoch time.
--
-- 'timeSeriesLastUpdateDate', 'describeTimeSeriesResponse_timeSeriesLastUpdateDate' - The date that the time series was last updated, in Unix epoch time.
newDescribeTimeSeriesResponse ::
-- | 'httpStatus'
Prelude.Int ->
-- | 'timeSeriesId'
Prelude.Text ->
-- | 'dataType'
PropertyDataType ->
-- | 'timeSeriesCreationDate'
Prelude.UTCTime ->
-- | 'timeSeriesLastUpdateDate'
Prelude.UTCTime ->
DescribeTimeSeriesResponse
newDescribeTimeSeriesResponse
pHttpStatus_
pTimeSeriesId_
pDataType_
pTimeSeriesCreationDate_
pTimeSeriesLastUpdateDate_ =
DescribeTimeSeriesResponse'
{ alias =
Prelude.Nothing,
assetId = Prelude.Nothing,
dataTypeSpec = Prelude.Nothing,
propertyId = Prelude.Nothing,
httpStatus = pHttpStatus_,
timeSeriesId = pTimeSeriesId_,
dataType = pDataType_,
timeSeriesCreationDate =
Data._Time Lens.# pTimeSeriesCreationDate_,
timeSeriesLastUpdateDate =
Data._Time Lens.# pTimeSeriesLastUpdateDate_
}
-- | The alias that identifies the time series.
describeTimeSeriesResponse_alias :: Lens.Lens' DescribeTimeSeriesResponse (Prelude.Maybe Prelude.Text)
describeTimeSeriesResponse_alias = Lens.lens (\DescribeTimeSeriesResponse' {alias} -> alias) (\s@DescribeTimeSeriesResponse' {} a -> s {alias = a} :: DescribeTimeSeriesResponse)
-- | The ID of the asset in which the asset property was created.
describeTimeSeriesResponse_assetId :: Lens.Lens' DescribeTimeSeriesResponse (Prelude.Maybe Prelude.Text)
describeTimeSeriesResponse_assetId = Lens.lens (\DescribeTimeSeriesResponse' {assetId} -> assetId) (\s@DescribeTimeSeriesResponse' {} a -> s {assetId = a} :: DescribeTimeSeriesResponse)
-- | The data type of the structure for this time series. This parameter is
-- required for time series that have the @STRUCT@ data type.
--
-- The options for this parameter depend on the type of the composite model
-- in which you created the asset property that is associated with your
-- time series. Use @AWS\/ALARM_STATE@ for alarm state in alarm composite
-- models.
describeTimeSeriesResponse_dataTypeSpec :: Lens.Lens' DescribeTimeSeriesResponse (Prelude.Maybe Prelude.Text)
describeTimeSeriesResponse_dataTypeSpec = Lens.lens (\DescribeTimeSeriesResponse' {dataTypeSpec} -> dataTypeSpec) (\s@DescribeTimeSeriesResponse' {} a -> s {dataTypeSpec = a} :: DescribeTimeSeriesResponse)
-- | The ID of the asset property.
describeTimeSeriesResponse_propertyId :: Lens.Lens' DescribeTimeSeriesResponse (Prelude.Maybe Prelude.Text)
describeTimeSeriesResponse_propertyId = Lens.lens (\DescribeTimeSeriesResponse' {propertyId} -> propertyId) (\s@DescribeTimeSeriesResponse' {} a -> s {propertyId = a} :: DescribeTimeSeriesResponse)
-- | The response's http status code.
describeTimeSeriesResponse_httpStatus :: Lens.Lens' DescribeTimeSeriesResponse Prelude.Int
describeTimeSeriesResponse_httpStatus = Lens.lens (\DescribeTimeSeriesResponse' {httpStatus} -> httpStatus) (\s@DescribeTimeSeriesResponse' {} a -> s {httpStatus = a} :: DescribeTimeSeriesResponse)
-- | The ID of the time series.
describeTimeSeriesResponse_timeSeriesId :: Lens.Lens' DescribeTimeSeriesResponse Prelude.Text
describeTimeSeriesResponse_timeSeriesId = Lens.lens (\DescribeTimeSeriesResponse' {timeSeriesId} -> timeSeriesId) (\s@DescribeTimeSeriesResponse' {} a -> s {timeSeriesId = a} :: DescribeTimeSeriesResponse)
-- | The data type of the time series.
--
-- If you specify @STRUCT@, you must also specify @dataTypeSpec@ to
-- identify the type of the structure for this time series.
describeTimeSeriesResponse_dataType :: Lens.Lens' DescribeTimeSeriesResponse PropertyDataType
describeTimeSeriesResponse_dataType = Lens.lens (\DescribeTimeSeriesResponse' {dataType} -> dataType) (\s@DescribeTimeSeriesResponse' {} a -> s {dataType = a} :: DescribeTimeSeriesResponse)
-- | The date that the time series was created, in Unix epoch time.
describeTimeSeriesResponse_timeSeriesCreationDate :: Lens.Lens' DescribeTimeSeriesResponse Prelude.UTCTime
describeTimeSeriesResponse_timeSeriesCreationDate = Lens.lens (\DescribeTimeSeriesResponse' {timeSeriesCreationDate} -> timeSeriesCreationDate) (\s@DescribeTimeSeriesResponse' {} a -> s {timeSeriesCreationDate = a} :: DescribeTimeSeriesResponse) Prelude.. Data._Time
-- | The date that the time series was last updated, in Unix epoch time.
describeTimeSeriesResponse_timeSeriesLastUpdateDate :: Lens.Lens' DescribeTimeSeriesResponse Prelude.UTCTime
describeTimeSeriesResponse_timeSeriesLastUpdateDate = Lens.lens (\DescribeTimeSeriesResponse' {timeSeriesLastUpdateDate} -> timeSeriesLastUpdateDate) (\s@DescribeTimeSeriesResponse' {} a -> s {timeSeriesLastUpdateDate = a} :: DescribeTimeSeriesResponse) Prelude.. Data._Time
instance Prelude.NFData DescribeTimeSeriesResponse where
rnf DescribeTimeSeriesResponse' {..} =
Prelude.rnf alias
`Prelude.seq` Prelude.rnf assetId
`Prelude.seq` Prelude.rnf dataTypeSpec
`Prelude.seq` Prelude.rnf propertyId
`Prelude.seq` Prelude.rnf httpStatus
`Prelude.seq` Prelude.rnf timeSeriesId
`Prelude.seq` Prelude.rnf dataType
`Prelude.seq` Prelude.rnf timeSeriesCreationDate
`Prelude.seq` Prelude.rnf timeSeriesLastUpdateDate