{-# 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.IotTwinMaker.GetPropertyValueHistory
-- 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 the history of a time series property value
-- for a component, component type, entity, or workspace.
--
-- You must specify a value for @workspaceId@. For entity-specific queries,
-- specify values for @componentName@ and @entityId@. For cross-entity
-- quries, specify a value for @componentTypeId@.
module Amazonka.IotTwinMaker.GetPropertyValueHistory
  ( -- * Creating a Request
    GetPropertyValueHistory (..),
    newGetPropertyValueHistory,

    -- * Request Lenses
    getPropertyValueHistory_componentName,
    getPropertyValueHistory_componentTypeId,
    getPropertyValueHistory_endDateTime,
    getPropertyValueHistory_endTime,
    getPropertyValueHistory_entityId,
    getPropertyValueHistory_interpolation,
    getPropertyValueHistory_maxResults,
    getPropertyValueHistory_nextToken,
    getPropertyValueHistory_orderByTime,
    getPropertyValueHistory_propertyFilters,
    getPropertyValueHistory_startDateTime,
    getPropertyValueHistory_startTime,
    getPropertyValueHistory_workspaceId,
    getPropertyValueHistory_selectedProperties,

    -- * Destructuring the Response
    GetPropertyValueHistoryResponse (..),
    newGetPropertyValueHistoryResponse,

    -- * Response Lenses
    getPropertyValueHistoryResponse_nextToken,
    getPropertyValueHistoryResponse_httpStatus,
    getPropertyValueHistoryResponse_propertyValues,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.IotTwinMaker.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newGetPropertyValueHistory' smart constructor.
data GetPropertyValueHistory = GetPropertyValueHistory'
  { -- | The name of the component.
    GetPropertyValueHistory -> Maybe Text
componentName :: Prelude.Maybe Prelude.Text,
    -- | The ID of the component type.
    GetPropertyValueHistory -> Maybe Text
componentTypeId :: Prelude.Maybe Prelude.Text,
    -- | The date and time of the latest property value to return.
    GetPropertyValueHistory -> Maybe POSIX
endDateTime :: Prelude.Maybe Data.POSIX,
    -- | The ISO8601 DateTime of the latest property value to return.
    --
    -- For more information about the ISO8601 DateTime format, see the data
    -- type
    -- <https://docs.aws.amazon.com/iot-twinmaker/latest/apireference/API_PropertyValue.html PropertyValue>.
    GetPropertyValueHistory -> Maybe Text
endTime :: Prelude.Maybe Prelude.Text,
    -- | The ID of the entity.
    GetPropertyValueHistory -> Maybe Text
entityId :: Prelude.Maybe Prelude.Text,
    -- | An object that specifies the interpolation type and the interval over
    -- which to interpolate data.
    GetPropertyValueHistory -> Maybe InterpolationParameters
interpolation :: Prelude.Maybe InterpolationParameters,
    -- | The maximum number of results to return at one time. The default is 25.
    --
    -- Valid Range: Minimum value of 1. Maximum value of 250.
    GetPropertyValueHistory -> Maybe Natural
maxResults :: Prelude.Maybe Prelude.Natural,
    -- | The string that specifies the next page of results.
    GetPropertyValueHistory -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The time direction to use in the result order.
    GetPropertyValueHistory -> Maybe OrderByTime
orderByTime :: Prelude.Maybe OrderByTime,
    -- | A list of objects that filter the property value history request.
    GetPropertyValueHistory -> Maybe (NonEmpty PropertyFilter)
propertyFilters :: Prelude.Maybe (Prelude.NonEmpty PropertyFilter),
    -- | The date and time of the earliest property value to return.
    GetPropertyValueHistory -> Maybe POSIX
startDateTime :: Prelude.Maybe Data.POSIX,
    -- | The ISO8601 DateTime of the earliest property value to return.
    --
    -- For more information about the ISO8601 DateTime format, see the data
    -- type
    -- <https://docs.aws.amazon.com/iot-twinmaker/latest/apireference/API_PropertyValue.html PropertyValue>.
    GetPropertyValueHistory -> Maybe Text
startTime :: Prelude.Maybe Prelude.Text,
    -- | The ID of the workspace.
    GetPropertyValueHistory -> Text
workspaceId :: Prelude.Text,
    -- | A list of properties whose value histories the request retrieves.
    GetPropertyValueHistory -> NonEmpty Text
selectedProperties :: Prelude.NonEmpty Prelude.Text
  }
  deriving (GetPropertyValueHistory -> GetPropertyValueHistory -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetPropertyValueHistory -> GetPropertyValueHistory -> Bool
$c/= :: GetPropertyValueHistory -> GetPropertyValueHistory -> Bool
== :: GetPropertyValueHistory -> GetPropertyValueHistory -> Bool
$c== :: GetPropertyValueHistory -> GetPropertyValueHistory -> Bool
Prelude.Eq, ReadPrec [GetPropertyValueHistory]
ReadPrec GetPropertyValueHistory
Int -> ReadS GetPropertyValueHistory
ReadS [GetPropertyValueHistory]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetPropertyValueHistory]
$creadListPrec :: ReadPrec [GetPropertyValueHistory]
readPrec :: ReadPrec GetPropertyValueHistory
$creadPrec :: ReadPrec GetPropertyValueHistory
readList :: ReadS [GetPropertyValueHistory]
$creadList :: ReadS [GetPropertyValueHistory]
readsPrec :: Int -> ReadS GetPropertyValueHistory
$creadsPrec :: Int -> ReadS GetPropertyValueHistory
Prelude.Read, Int -> GetPropertyValueHistory -> ShowS
[GetPropertyValueHistory] -> ShowS
GetPropertyValueHistory -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetPropertyValueHistory] -> ShowS
$cshowList :: [GetPropertyValueHistory] -> ShowS
show :: GetPropertyValueHistory -> String
$cshow :: GetPropertyValueHistory -> String
showsPrec :: Int -> GetPropertyValueHistory -> ShowS
$cshowsPrec :: Int -> GetPropertyValueHistory -> ShowS
Prelude.Show, forall x. Rep GetPropertyValueHistory x -> GetPropertyValueHistory
forall x. GetPropertyValueHistory -> Rep GetPropertyValueHistory x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetPropertyValueHistory x -> GetPropertyValueHistory
$cfrom :: forall x. GetPropertyValueHistory -> Rep GetPropertyValueHistory x
Prelude.Generic)

-- |
-- Create a value of 'GetPropertyValueHistory' 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:
--
-- 'componentName', 'getPropertyValueHistory_componentName' - The name of the component.
--
-- 'componentTypeId', 'getPropertyValueHistory_componentTypeId' - The ID of the component type.
--
-- 'endDateTime', 'getPropertyValueHistory_endDateTime' - The date and time of the latest property value to return.
--
-- 'endTime', 'getPropertyValueHistory_endTime' - The ISO8601 DateTime of the latest property value to return.
--
-- For more information about the ISO8601 DateTime format, see the data
-- type
-- <https://docs.aws.amazon.com/iot-twinmaker/latest/apireference/API_PropertyValue.html PropertyValue>.
--
-- 'entityId', 'getPropertyValueHistory_entityId' - The ID of the entity.
--
-- 'interpolation', 'getPropertyValueHistory_interpolation' - An object that specifies the interpolation type and the interval over
-- which to interpolate data.
--
-- 'maxResults', 'getPropertyValueHistory_maxResults' - The maximum number of results to return at one time. The default is 25.
--
-- Valid Range: Minimum value of 1. Maximum value of 250.
--
-- 'nextToken', 'getPropertyValueHistory_nextToken' - The string that specifies the next page of results.
--
-- 'orderByTime', 'getPropertyValueHistory_orderByTime' - The time direction to use in the result order.
--
-- 'propertyFilters', 'getPropertyValueHistory_propertyFilters' - A list of objects that filter the property value history request.
--
-- 'startDateTime', 'getPropertyValueHistory_startDateTime' - The date and time of the earliest property value to return.
--
-- 'startTime', 'getPropertyValueHistory_startTime' - The ISO8601 DateTime of the earliest property value to return.
--
-- For more information about the ISO8601 DateTime format, see the data
-- type
-- <https://docs.aws.amazon.com/iot-twinmaker/latest/apireference/API_PropertyValue.html PropertyValue>.
--
-- 'workspaceId', 'getPropertyValueHistory_workspaceId' - The ID of the workspace.
--
-- 'selectedProperties', 'getPropertyValueHistory_selectedProperties' - A list of properties whose value histories the request retrieves.
newGetPropertyValueHistory ::
  -- | 'workspaceId'
  Prelude.Text ->
  -- | 'selectedProperties'
  Prelude.NonEmpty Prelude.Text ->
  GetPropertyValueHistory
newGetPropertyValueHistory :: Text -> NonEmpty Text -> GetPropertyValueHistory
newGetPropertyValueHistory
  Text
pWorkspaceId_
  NonEmpty Text
pSelectedProperties_ =
    GetPropertyValueHistory'
      { $sel:componentName:GetPropertyValueHistory' :: Maybe Text
componentName =
          forall a. Maybe a
Prelude.Nothing,
        $sel:componentTypeId:GetPropertyValueHistory' :: Maybe Text
componentTypeId = forall a. Maybe a
Prelude.Nothing,
        $sel:endDateTime:GetPropertyValueHistory' :: Maybe POSIX
endDateTime = forall a. Maybe a
Prelude.Nothing,
        $sel:endTime:GetPropertyValueHistory' :: Maybe Text
endTime = forall a. Maybe a
Prelude.Nothing,
        $sel:entityId:GetPropertyValueHistory' :: Maybe Text
entityId = forall a. Maybe a
Prelude.Nothing,
        $sel:interpolation:GetPropertyValueHistory' :: Maybe InterpolationParameters
interpolation = forall a. Maybe a
Prelude.Nothing,
        $sel:maxResults:GetPropertyValueHistory' :: Maybe Natural
maxResults = forall a. Maybe a
Prelude.Nothing,
        $sel:nextToken:GetPropertyValueHistory' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
        $sel:orderByTime:GetPropertyValueHistory' :: Maybe OrderByTime
orderByTime = forall a. Maybe a
Prelude.Nothing,
        $sel:propertyFilters:GetPropertyValueHistory' :: Maybe (NonEmpty PropertyFilter)
propertyFilters = forall a. Maybe a
Prelude.Nothing,
        $sel:startDateTime:GetPropertyValueHistory' :: Maybe POSIX
startDateTime = forall a. Maybe a
Prelude.Nothing,
        $sel:startTime:GetPropertyValueHistory' :: Maybe Text
startTime = forall a. Maybe a
Prelude.Nothing,
        $sel:workspaceId:GetPropertyValueHistory' :: Text
workspaceId = Text
pWorkspaceId_,
        $sel:selectedProperties:GetPropertyValueHistory' :: NonEmpty Text
selectedProperties =
          forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced forall t b. AReview t b -> b -> t
Lens.# NonEmpty Text
pSelectedProperties_
      }

-- | The name of the component.
getPropertyValueHistory_componentName :: Lens.Lens' GetPropertyValueHistory (Prelude.Maybe Prelude.Text)
getPropertyValueHistory_componentName :: Lens' GetPropertyValueHistory (Maybe Text)
getPropertyValueHistory_componentName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPropertyValueHistory' {Maybe Text
componentName :: Maybe Text
$sel:componentName:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
componentName} -> Maybe Text
componentName) (\s :: GetPropertyValueHistory
s@GetPropertyValueHistory' {} Maybe Text
a -> GetPropertyValueHistory
s {$sel:componentName:GetPropertyValueHistory' :: Maybe Text
componentName = Maybe Text
a} :: GetPropertyValueHistory)

-- | The ID of the component type.
getPropertyValueHistory_componentTypeId :: Lens.Lens' GetPropertyValueHistory (Prelude.Maybe Prelude.Text)
getPropertyValueHistory_componentTypeId :: Lens' GetPropertyValueHistory (Maybe Text)
getPropertyValueHistory_componentTypeId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPropertyValueHistory' {Maybe Text
componentTypeId :: Maybe Text
$sel:componentTypeId:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
componentTypeId} -> Maybe Text
componentTypeId) (\s :: GetPropertyValueHistory
s@GetPropertyValueHistory' {} Maybe Text
a -> GetPropertyValueHistory
s {$sel:componentTypeId:GetPropertyValueHistory' :: Maybe Text
componentTypeId = Maybe Text
a} :: GetPropertyValueHistory)

-- | The date and time of the latest property value to return.
getPropertyValueHistory_endDateTime :: Lens.Lens' GetPropertyValueHistory (Prelude.Maybe Prelude.UTCTime)
getPropertyValueHistory_endDateTime :: Lens' GetPropertyValueHistory (Maybe UTCTime)
getPropertyValueHistory_endDateTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPropertyValueHistory' {Maybe POSIX
endDateTime :: Maybe POSIX
$sel:endDateTime:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe POSIX
endDateTime} -> Maybe POSIX
endDateTime) (\s :: GetPropertyValueHistory
s@GetPropertyValueHistory' {} Maybe POSIX
a -> GetPropertyValueHistory
s {$sel:endDateTime:GetPropertyValueHistory' :: Maybe POSIX
endDateTime = Maybe POSIX
a} :: GetPropertyValueHistory) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The ISO8601 DateTime of the latest property value to return.
--
-- For more information about the ISO8601 DateTime format, see the data
-- type
-- <https://docs.aws.amazon.com/iot-twinmaker/latest/apireference/API_PropertyValue.html PropertyValue>.
getPropertyValueHistory_endTime :: Lens.Lens' GetPropertyValueHistory (Prelude.Maybe Prelude.Text)
getPropertyValueHistory_endTime :: Lens' GetPropertyValueHistory (Maybe Text)
getPropertyValueHistory_endTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPropertyValueHistory' {Maybe Text
endTime :: Maybe Text
$sel:endTime:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
endTime} -> Maybe Text
endTime) (\s :: GetPropertyValueHistory
s@GetPropertyValueHistory' {} Maybe Text
a -> GetPropertyValueHistory
s {$sel:endTime:GetPropertyValueHistory' :: Maybe Text
endTime = Maybe Text
a} :: GetPropertyValueHistory)

-- | The ID of the entity.
getPropertyValueHistory_entityId :: Lens.Lens' GetPropertyValueHistory (Prelude.Maybe Prelude.Text)
getPropertyValueHistory_entityId :: Lens' GetPropertyValueHistory (Maybe Text)
getPropertyValueHistory_entityId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPropertyValueHistory' {Maybe Text
entityId :: Maybe Text
$sel:entityId:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
entityId} -> Maybe Text
entityId) (\s :: GetPropertyValueHistory
s@GetPropertyValueHistory' {} Maybe Text
a -> GetPropertyValueHistory
s {$sel:entityId:GetPropertyValueHistory' :: Maybe Text
entityId = Maybe Text
a} :: GetPropertyValueHistory)

-- | An object that specifies the interpolation type and the interval over
-- which to interpolate data.
getPropertyValueHistory_interpolation :: Lens.Lens' GetPropertyValueHistory (Prelude.Maybe InterpolationParameters)
getPropertyValueHistory_interpolation :: Lens' GetPropertyValueHistory (Maybe InterpolationParameters)
getPropertyValueHistory_interpolation = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPropertyValueHistory' {Maybe InterpolationParameters
interpolation :: Maybe InterpolationParameters
$sel:interpolation:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe InterpolationParameters
interpolation} -> Maybe InterpolationParameters
interpolation) (\s :: GetPropertyValueHistory
s@GetPropertyValueHistory' {} Maybe InterpolationParameters
a -> GetPropertyValueHistory
s {$sel:interpolation:GetPropertyValueHistory' :: Maybe InterpolationParameters
interpolation = Maybe InterpolationParameters
a} :: GetPropertyValueHistory)

-- | The maximum number of results to return at one time. The default is 25.
--
-- Valid Range: Minimum value of 1. Maximum value of 250.
getPropertyValueHistory_maxResults :: Lens.Lens' GetPropertyValueHistory (Prelude.Maybe Prelude.Natural)
getPropertyValueHistory_maxResults :: Lens' GetPropertyValueHistory (Maybe Natural)
getPropertyValueHistory_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPropertyValueHistory' {Maybe Natural
maxResults :: Maybe Natural
$sel:maxResults:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Natural
maxResults} -> Maybe Natural
maxResults) (\s :: GetPropertyValueHistory
s@GetPropertyValueHistory' {} Maybe Natural
a -> GetPropertyValueHistory
s {$sel:maxResults:GetPropertyValueHistory' :: Maybe Natural
maxResults = Maybe Natural
a} :: GetPropertyValueHistory)

-- | The string that specifies the next page of results.
getPropertyValueHistory_nextToken :: Lens.Lens' GetPropertyValueHistory (Prelude.Maybe Prelude.Text)
getPropertyValueHistory_nextToken :: Lens' GetPropertyValueHistory (Maybe Text)
getPropertyValueHistory_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPropertyValueHistory' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: GetPropertyValueHistory
s@GetPropertyValueHistory' {} Maybe Text
a -> GetPropertyValueHistory
s {$sel:nextToken:GetPropertyValueHistory' :: Maybe Text
nextToken = Maybe Text
a} :: GetPropertyValueHistory)

-- | The time direction to use in the result order.
getPropertyValueHistory_orderByTime :: Lens.Lens' GetPropertyValueHistory (Prelude.Maybe OrderByTime)
getPropertyValueHistory_orderByTime :: Lens' GetPropertyValueHistory (Maybe OrderByTime)
getPropertyValueHistory_orderByTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPropertyValueHistory' {Maybe OrderByTime
orderByTime :: Maybe OrderByTime
$sel:orderByTime:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe OrderByTime
orderByTime} -> Maybe OrderByTime
orderByTime) (\s :: GetPropertyValueHistory
s@GetPropertyValueHistory' {} Maybe OrderByTime
a -> GetPropertyValueHistory
s {$sel:orderByTime:GetPropertyValueHistory' :: Maybe OrderByTime
orderByTime = Maybe OrderByTime
a} :: GetPropertyValueHistory)

-- | A list of objects that filter the property value history request.
getPropertyValueHistory_propertyFilters :: Lens.Lens' GetPropertyValueHistory (Prelude.Maybe (Prelude.NonEmpty PropertyFilter))
getPropertyValueHistory_propertyFilters :: Lens' GetPropertyValueHistory (Maybe (NonEmpty PropertyFilter))
getPropertyValueHistory_propertyFilters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPropertyValueHistory' {Maybe (NonEmpty PropertyFilter)
propertyFilters :: Maybe (NonEmpty PropertyFilter)
$sel:propertyFilters:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe (NonEmpty PropertyFilter)
propertyFilters} -> Maybe (NonEmpty PropertyFilter)
propertyFilters) (\s :: GetPropertyValueHistory
s@GetPropertyValueHistory' {} Maybe (NonEmpty PropertyFilter)
a -> GetPropertyValueHistory
s {$sel:propertyFilters:GetPropertyValueHistory' :: Maybe (NonEmpty PropertyFilter)
propertyFilters = Maybe (NonEmpty PropertyFilter)
a} :: GetPropertyValueHistory) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The date and time of the earliest property value to return.
getPropertyValueHistory_startDateTime :: Lens.Lens' GetPropertyValueHistory (Prelude.Maybe Prelude.UTCTime)
getPropertyValueHistory_startDateTime :: Lens' GetPropertyValueHistory (Maybe UTCTime)
getPropertyValueHistory_startDateTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPropertyValueHistory' {Maybe POSIX
startDateTime :: Maybe POSIX
$sel:startDateTime:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe POSIX
startDateTime} -> Maybe POSIX
startDateTime) (\s :: GetPropertyValueHistory
s@GetPropertyValueHistory' {} Maybe POSIX
a -> GetPropertyValueHistory
s {$sel:startDateTime:GetPropertyValueHistory' :: Maybe POSIX
startDateTime = Maybe POSIX
a} :: GetPropertyValueHistory) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The ISO8601 DateTime of the earliest property value to return.
--
-- For more information about the ISO8601 DateTime format, see the data
-- type
-- <https://docs.aws.amazon.com/iot-twinmaker/latest/apireference/API_PropertyValue.html PropertyValue>.
getPropertyValueHistory_startTime :: Lens.Lens' GetPropertyValueHistory (Prelude.Maybe Prelude.Text)
getPropertyValueHistory_startTime :: Lens' GetPropertyValueHistory (Maybe Text)
getPropertyValueHistory_startTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPropertyValueHistory' {Maybe Text
startTime :: Maybe Text
$sel:startTime:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
startTime} -> Maybe Text
startTime) (\s :: GetPropertyValueHistory
s@GetPropertyValueHistory' {} Maybe Text
a -> GetPropertyValueHistory
s {$sel:startTime:GetPropertyValueHistory' :: Maybe Text
startTime = Maybe Text
a} :: GetPropertyValueHistory)

-- | The ID of the workspace.
getPropertyValueHistory_workspaceId :: Lens.Lens' GetPropertyValueHistory Prelude.Text
getPropertyValueHistory_workspaceId :: Lens' GetPropertyValueHistory Text
getPropertyValueHistory_workspaceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPropertyValueHistory' {Text
workspaceId :: Text
$sel:workspaceId:GetPropertyValueHistory' :: GetPropertyValueHistory -> Text
workspaceId} -> Text
workspaceId) (\s :: GetPropertyValueHistory
s@GetPropertyValueHistory' {} Text
a -> GetPropertyValueHistory
s {$sel:workspaceId:GetPropertyValueHistory' :: Text
workspaceId = Text
a} :: GetPropertyValueHistory)

-- | A list of properties whose value histories the request retrieves.
getPropertyValueHistory_selectedProperties :: Lens.Lens' GetPropertyValueHistory (Prelude.NonEmpty Prelude.Text)
getPropertyValueHistory_selectedProperties :: Lens' GetPropertyValueHistory (NonEmpty Text)
getPropertyValueHistory_selectedProperties = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPropertyValueHistory' {NonEmpty Text
selectedProperties :: NonEmpty Text
$sel:selectedProperties:GetPropertyValueHistory' :: GetPropertyValueHistory -> NonEmpty Text
selectedProperties} -> NonEmpty Text
selectedProperties) (\s :: GetPropertyValueHistory
s@GetPropertyValueHistory' {} NonEmpty Text
a -> GetPropertyValueHistory
s {$sel:selectedProperties:GetPropertyValueHistory' :: NonEmpty Text
selectedProperties = NonEmpty Text
a} :: GetPropertyValueHistory) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance Core.AWSRequest GetPropertyValueHistory where
  type
    AWSResponse GetPropertyValueHistory =
      GetPropertyValueHistoryResponse
  request :: (Service -> Service)
-> GetPropertyValueHistory -> Request GetPropertyValueHistory
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy GetPropertyValueHistory
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse GetPropertyValueHistory)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text
-> Int -> [PropertyValueHistory] -> GetPropertyValueHistoryResponse
GetPropertyValueHistoryResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"nextToken")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x
                            forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"propertyValues"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                        )
      )

instance Prelude.Hashable GetPropertyValueHistory where
  hashWithSalt :: Int -> GetPropertyValueHistory -> Int
hashWithSalt Int
_salt GetPropertyValueHistory' {Maybe Natural
Maybe (NonEmpty PropertyFilter)
Maybe Text
Maybe POSIX
Maybe InterpolationParameters
Maybe OrderByTime
NonEmpty Text
Text
selectedProperties :: NonEmpty Text
workspaceId :: Text
startTime :: Maybe Text
startDateTime :: Maybe POSIX
propertyFilters :: Maybe (NonEmpty PropertyFilter)
orderByTime :: Maybe OrderByTime
nextToken :: Maybe Text
maxResults :: Maybe Natural
interpolation :: Maybe InterpolationParameters
entityId :: Maybe Text
endTime :: Maybe Text
endDateTime :: Maybe POSIX
componentTypeId :: Maybe Text
componentName :: Maybe Text
$sel:selectedProperties:GetPropertyValueHistory' :: GetPropertyValueHistory -> NonEmpty Text
$sel:workspaceId:GetPropertyValueHistory' :: GetPropertyValueHistory -> Text
$sel:startTime:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
$sel:startDateTime:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe POSIX
$sel:propertyFilters:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe (NonEmpty PropertyFilter)
$sel:orderByTime:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe OrderByTime
$sel:nextToken:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
$sel:maxResults:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Natural
$sel:interpolation:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe InterpolationParameters
$sel:entityId:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
$sel:endTime:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
$sel:endDateTime:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe POSIX
$sel:componentTypeId:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
$sel:componentName:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
componentName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
componentTypeId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
endDateTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
endTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
entityId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe InterpolationParameters
interpolation
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
maxResults
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe OrderByTime
orderByTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty PropertyFilter)
propertyFilters
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
startDateTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
startTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
workspaceId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` NonEmpty Text
selectedProperties

instance Prelude.NFData GetPropertyValueHistory where
  rnf :: GetPropertyValueHistory -> ()
rnf GetPropertyValueHistory' {Maybe Natural
Maybe (NonEmpty PropertyFilter)
Maybe Text
Maybe POSIX
Maybe InterpolationParameters
Maybe OrderByTime
NonEmpty Text
Text
selectedProperties :: NonEmpty Text
workspaceId :: Text
startTime :: Maybe Text
startDateTime :: Maybe POSIX
propertyFilters :: Maybe (NonEmpty PropertyFilter)
orderByTime :: Maybe OrderByTime
nextToken :: Maybe Text
maxResults :: Maybe Natural
interpolation :: Maybe InterpolationParameters
entityId :: Maybe Text
endTime :: Maybe Text
endDateTime :: Maybe POSIX
componentTypeId :: Maybe Text
componentName :: Maybe Text
$sel:selectedProperties:GetPropertyValueHistory' :: GetPropertyValueHistory -> NonEmpty Text
$sel:workspaceId:GetPropertyValueHistory' :: GetPropertyValueHistory -> Text
$sel:startTime:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
$sel:startDateTime:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe POSIX
$sel:propertyFilters:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe (NonEmpty PropertyFilter)
$sel:orderByTime:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe OrderByTime
$sel:nextToken:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
$sel:maxResults:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Natural
$sel:interpolation:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe InterpolationParameters
$sel:entityId:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
$sel:endTime:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
$sel:endDateTime:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe POSIX
$sel:componentTypeId:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
$sel:componentName:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
componentName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
componentTypeId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
endDateTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
endTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
entityId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe InterpolationParameters
interpolation
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
maxResults
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe OrderByTime
orderByTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty PropertyFilter)
propertyFilters
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
startDateTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
startTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
workspaceId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf NonEmpty Text
selectedProperties

instance Data.ToHeaders GetPropertyValueHistory where
  toHeaders :: GetPropertyValueHistory -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON GetPropertyValueHistory where
  toJSON :: GetPropertyValueHistory -> Value
toJSON GetPropertyValueHistory' {Maybe Natural
Maybe (NonEmpty PropertyFilter)
Maybe Text
Maybe POSIX
Maybe InterpolationParameters
Maybe OrderByTime
NonEmpty Text
Text
selectedProperties :: NonEmpty Text
workspaceId :: Text
startTime :: Maybe Text
startDateTime :: Maybe POSIX
propertyFilters :: Maybe (NonEmpty PropertyFilter)
orderByTime :: Maybe OrderByTime
nextToken :: Maybe Text
maxResults :: Maybe Natural
interpolation :: Maybe InterpolationParameters
entityId :: Maybe Text
endTime :: Maybe Text
endDateTime :: Maybe POSIX
componentTypeId :: Maybe Text
componentName :: Maybe Text
$sel:selectedProperties:GetPropertyValueHistory' :: GetPropertyValueHistory -> NonEmpty Text
$sel:workspaceId:GetPropertyValueHistory' :: GetPropertyValueHistory -> Text
$sel:startTime:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
$sel:startDateTime:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe POSIX
$sel:propertyFilters:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe (NonEmpty PropertyFilter)
$sel:orderByTime:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe OrderByTime
$sel:nextToken:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
$sel:maxResults:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Natural
$sel:interpolation:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe InterpolationParameters
$sel:entityId:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
$sel:endTime:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
$sel:endDateTime:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe POSIX
$sel:componentTypeId:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
$sel:componentName:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"componentName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
componentName,
            (Key
"componentTypeId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
componentTypeId,
            (Key
"endDateTime" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe POSIX
endDateTime,
            (Key
"endTime" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
endTime,
            (Key
"entityId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
entityId,
            (Key
"interpolation" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe InterpolationParameters
interpolation,
            (Key
"maxResults" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
maxResults,
            (Key
"nextToken" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
nextToken,
            (Key
"orderByTime" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe OrderByTime
orderByTime,
            (Key
"propertyFilters" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (NonEmpty PropertyFilter)
propertyFilters,
            (Key
"startDateTime" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe POSIX
startDateTime,
            (Key
"startTime" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
startTime,
            forall a. a -> Maybe a
Prelude.Just
              (Key
"selectedProperties" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= NonEmpty Text
selectedProperties)
          ]
      )

instance Data.ToPath GetPropertyValueHistory where
  toPath :: GetPropertyValueHistory -> ByteString
toPath GetPropertyValueHistory' {Maybe Natural
Maybe (NonEmpty PropertyFilter)
Maybe Text
Maybe POSIX
Maybe InterpolationParameters
Maybe OrderByTime
NonEmpty Text
Text
selectedProperties :: NonEmpty Text
workspaceId :: Text
startTime :: Maybe Text
startDateTime :: Maybe POSIX
propertyFilters :: Maybe (NonEmpty PropertyFilter)
orderByTime :: Maybe OrderByTime
nextToken :: Maybe Text
maxResults :: Maybe Natural
interpolation :: Maybe InterpolationParameters
entityId :: Maybe Text
endTime :: Maybe Text
endDateTime :: Maybe POSIX
componentTypeId :: Maybe Text
componentName :: Maybe Text
$sel:selectedProperties:GetPropertyValueHistory' :: GetPropertyValueHistory -> NonEmpty Text
$sel:workspaceId:GetPropertyValueHistory' :: GetPropertyValueHistory -> Text
$sel:startTime:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
$sel:startDateTime:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe POSIX
$sel:propertyFilters:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe (NonEmpty PropertyFilter)
$sel:orderByTime:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe OrderByTime
$sel:nextToken:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
$sel:maxResults:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Natural
$sel:interpolation:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe InterpolationParameters
$sel:entityId:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
$sel:endTime:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
$sel:endDateTime:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe POSIX
$sel:componentTypeId:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
$sel:componentName:GetPropertyValueHistory' :: GetPropertyValueHistory -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/workspaces/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
workspaceId,
        ByteString
"/entity-properties/history"
      ]

instance Data.ToQuery GetPropertyValueHistory where
  toQuery :: GetPropertyValueHistory -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newGetPropertyValueHistoryResponse' smart constructor.
data GetPropertyValueHistoryResponse = GetPropertyValueHistoryResponse'
  { -- | The string that specifies the next page of results.
    GetPropertyValueHistoryResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    GetPropertyValueHistoryResponse -> Int
httpStatus :: Prelude.Int,
    -- | An object that maps strings to the property definitions in the component
    -- type. Each string in the mapping must be unique to this object.
    GetPropertyValueHistoryResponse -> [PropertyValueHistory]
propertyValues :: [PropertyValueHistory]
  }
  deriving (GetPropertyValueHistoryResponse
-> GetPropertyValueHistoryResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetPropertyValueHistoryResponse
-> GetPropertyValueHistoryResponse -> Bool
$c/= :: GetPropertyValueHistoryResponse
-> GetPropertyValueHistoryResponse -> Bool
== :: GetPropertyValueHistoryResponse
-> GetPropertyValueHistoryResponse -> Bool
$c== :: GetPropertyValueHistoryResponse
-> GetPropertyValueHistoryResponse -> Bool
Prelude.Eq, ReadPrec [GetPropertyValueHistoryResponse]
ReadPrec GetPropertyValueHistoryResponse
Int -> ReadS GetPropertyValueHistoryResponse
ReadS [GetPropertyValueHistoryResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetPropertyValueHistoryResponse]
$creadListPrec :: ReadPrec [GetPropertyValueHistoryResponse]
readPrec :: ReadPrec GetPropertyValueHistoryResponse
$creadPrec :: ReadPrec GetPropertyValueHistoryResponse
readList :: ReadS [GetPropertyValueHistoryResponse]
$creadList :: ReadS [GetPropertyValueHistoryResponse]
readsPrec :: Int -> ReadS GetPropertyValueHistoryResponse
$creadsPrec :: Int -> ReadS GetPropertyValueHistoryResponse
Prelude.Read, Int -> GetPropertyValueHistoryResponse -> ShowS
[GetPropertyValueHistoryResponse] -> ShowS
GetPropertyValueHistoryResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetPropertyValueHistoryResponse] -> ShowS
$cshowList :: [GetPropertyValueHistoryResponse] -> ShowS
show :: GetPropertyValueHistoryResponse -> String
$cshow :: GetPropertyValueHistoryResponse -> String
showsPrec :: Int -> GetPropertyValueHistoryResponse -> ShowS
$cshowsPrec :: Int -> GetPropertyValueHistoryResponse -> ShowS
Prelude.Show, forall x.
Rep GetPropertyValueHistoryResponse x
-> GetPropertyValueHistoryResponse
forall x.
GetPropertyValueHistoryResponse
-> Rep GetPropertyValueHistoryResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetPropertyValueHistoryResponse x
-> GetPropertyValueHistoryResponse
$cfrom :: forall x.
GetPropertyValueHistoryResponse
-> Rep GetPropertyValueHistoryResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetPropertyValueHistoryResponse' 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:
--
-- 'nextToken', 'getPropertyValueHistoryResponse_nextToken' - The string that specifies the next page of results.
--
-- 'httpStatus', 'getPropertyValueHistoryResponse_httpStatus' - The response's http status code.
--
-- 'propertyValues', 'getPropertyValueHistoryResponse_propertyValues' - An object that maps strings to the property definitions in the component
-- type. Each string in the mapping must be unique to this object.
newGetPropertyValueHistoryResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetPropertyValueHistoryResponse
newGetPropertyValueHistoryResponse :: Int -> GetPropertyValueHistoryResponse
newGetPropertyValueHistoryResponse Int
pHttpStatus_ =
  GetPropertyValueHistoryResponse'
    { $sel:nextToken:GetPropertyValueHistoryResponse' :: Maybe Text
nextToken =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetPropertyValueHistoryResponse' :: Int
httpStatus = Int
pHttpStatus_,
      $sel:propertyValues:GetPropertyValueHistoryResponse' :: [PropertyValueHistory]
propertyValues = forall a. Monoid a => a
Prelude.mempty
    }

-- | The string that specifies the next page of results.
getPropertyValueHistoryResponse_nextToken :: Lens.Lens' GetPropertyValueHistoryResponse (Prelude.Maybe Prelude.Text)
getPropertyValueHistoryResponse_nextToken :: Lens' GetPropertyValueHistoryResponse (Maybe Text)
getPropertyValueHistoryResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPropertyValueHistoryResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:GetPropertyValueHistoryResponse' :: GetPropertyValueHistoryResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: GetPropertyValueHistoryResponse
s@GetPropertyValueHistoryResponse' {} Maybe Text
a -> GetPropertyValueHistoryResponse
s {$sel:nextToken:GetPropertyValueHistoryResponse' :: Maybe Text
nextToken = Maybe Text
a} :: GetPropertyValueHistoryResponse)

-- | The response's http status code.
getPropertyValueHistoryResponse_httpStatus :: Lens.Lens' GetPropertyValueHistoryResponse Prelude.Int
getPropertyValueHistoryResponse_httpStatus :: Lens' GetPropertyValueHistoryResponse Int
getPropertyValueHistoryResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPropertyValueHistoryResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetPropertyValueHistoryResponse' :: GetPropertyValueHistoryResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetPropertyValueHistoryResponse
s@GetPropertyValueHistoryResponse' {} Int
a -> GetPropertyValueHistoryResponse
s {$sel:httpStatus:GetPropertyValueHistoryResponse' :: Int
httpStatus = Int
a} :: GetPropertyValueHistoryResponse)

-- | An object that maps strings to the property definitions in the component
-- type. Each string in the mapping must be unique to this object.
getPropertyValueHistoryResponse_propertyValues :: Lens.Lens' GetPropertyValueHistoryResponse [PropertyValueHistory]
getPropertyValueHistoryResponse_propertyValues :: Lens' GetPropertyValueHistoryResponse [PropertyValueHistory]
getPropertyValueHistoryResponse_propertyValues = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetPropertyValueHistoryResponse' {[PropertyValueHistory]
propertyValues :: [PropertyValueHistory]
$sel:propertyValues:GetPropertyValueHistoryResponse' :: GetPropertyValueHistoryResponse -> [PropertyValueHistory]
propertyValues} -> [PropertyValueHistory]
propertyValues) (\s :: GetPropertyValueHistoryResponse
s@GetPropertyValueHistoryResponse' {} [PropertyValueHistory]
a -> GetPropertyValueHistoryResponse
s {$sel:propertyValues:GetPropertyValueHistoryResponse' :: [PropertyValueHistory]
propertyValues = [PropertyValueHistory]
a} :: GetPropertyValueHistoryResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance
  Prelude.NFData
    GetPropertyValueHistoryResponse
  where
  rnf :: GetPropertyValueHistoryResponse -> ()
rnf GetPropertyValueHistoryResponse' {Int
[PropertyValueHistory]
Maybe Text
propertyValues :: [PropertyValueHistory]
httpStatus :: Int
nextToken :: Maybe Text
$sel:propertyValues:GetPropertyValueHistoryResponse' :: GetPropertyValueHistoryResponse -> [PropertyValueHistory]
$sel:httpStatus:GetPropertyValueHistoryResponse' :: GetPropertyValueHistoryResponse -> Int
$sel:nextToken:GetPropertyValueHistoryResponse' :: GetPropertyValueHistoryResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf [PropertyValueHistory]
propertyValues