{-# 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.BatchPutAssetPropertyValue
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Sends a list of asset property values to IoT SiteWise. Each value is a
-- timestamp-quality-value (TQV) data point. For more information, see
-- <https://docs.aws.amazon.com/iot-sitewise/latest/userguide/ingest-api.html Ingesting data using the API>
-- in the /IoT SiteWise User Guide/.
--
-- To identify an asset property, you must specify one of the following:
--
-- -   The @assetId@ and @propertyId@ of an asset property.
--
-- -   A @propertyAlias@, which is a data stream alias (for example,
--     @\/company\/windfarm\/3\/turbine\/7\/temperature@). To define an
--     asset property\'s alias, see
--     <https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html UpdateAssetProperty>.
--
-- With respect to Unix epoch time, IoT SiteWise accepts only TQVs that
-- have a timestamp of no more than 7 days in the past and no more than 10
-- minutes in the future. IoT SiteWise rejects timestamps outside of the
-- inclusive range of [-7 days, +10 minutes] and returns a
-- @TimestampOutOfRangeException@ error.
--
-- For each asset property, IoT SiteWise overwrites TQVs with duplicate
-- timestamps unless the newer TQV has a different quality. For example, if
-- you store a TQV @{T1, GOOD, V1}@, then storing @{T1, GOOD, V2}@ replaces
-- the existing TQV.
--
-- IoT SiteWise authorizes access to each @BatchPutAssetPropertyValue@
-- entry individually. For more information, see
-- <https://docs.aws.amazon.com/iot-sitewise/latest/userguide/security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-batchputassetpropertyvalue-action BatchPutAssetPropertyValue authorization>
-- in the /IoT SiteWise User Guide/.
module Amazonka.IoTSiteWise.BatchPutAssetPropertyValue
  ( -- * Creating a Request
    BatchPutAssetPropertyValue (..),
    newBatchPutAssetPropertyValue,

    -- * Request Lenses
    batchPutAssetPropertyValue_entries,

    -- * Destructuring the Response
    BatchPutAssetPropertyValueResponse (..),
    newBatchPutAssetPropertyValueResponse,

    -- * Response Lenses
    batchPutAssetPropertyValueResponse_httpStatus,
    batchPutAssetPropertyValueResponse_errorEntries,
  )
where

import qualified Amazonka.Core as Core
import Amazonka.IoTSiteWise.Types
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newBatchPutAssetPropertyValue' smart constructor.
data BatchPutAssetPropertyValue = BatchPutAssetPropertyValue'
  { -- | The list of asset property value entries for the batch put request. You
    -- can specify up to 10 entries per request.
    BatchPutAssetPropertyValue -> [PutAssetPropertyValueEntry]
entries :: [PutAssetPropertyValueEntry]
  }
  deriving (BatchPutAssetPropertyValue -> BatchPutAssetPropertyValue -> Bool
(BatchPutAssetPropertyValue -> BatchPutAssetPropertyValue -> Bool)
-> (BatchPutAssetPropertyValue
    -> BatchPutAssetPropertyValue -> Bool)
-> Eq BatchPutAssetPropertyValue
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BatchPutAssetPropertyValue -> BatchPutAssetPropertyValue -> Bool
$c/= :: BatchPutAssetPropertyValue -> BatchPutAssetPropertyValue -> Bool
== :: BatchPutAssetPropertyValue -> BatchPutAssetPropertyValue -> Bool
$c== :: BatchPutAssetPropertyValue -> BatchPutAssetPropertyValue -> Bool
Prelude.Eq, ReadPrec [BatchPutAssetPropertyValue]
ReadPrec BatchPutAssetPropertyValue
Int -> ReadS BatchPutAssetPropertyValue
ReadS [BatchPutAssetPropertyValue]
(Int -> ReadS BatchPutAssetPropertyValue)
-> ReadS [BatchPutAssetPropertyValue]
-> ReadPrec BatchPutAssetPropertyValue
-> ReadPrec [BatchPutAssetPropertyValue]
-> Read BatchPutAssetPropertyValue
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [BatchPutAssetPropertyValue]
$creadListPrec :: ReadPrec [BatchPutAssetPropertyValue]
readPrec :: ReadPrec BatchPutAssetPropertyValue
$creadPrec :: ReadPrec BatchPutAssetPropertyValue
readList :: ReadS [BatchPutAssetPropertyValue]
$creadList :: ReadS [BatchPutAssetPropertyValue]
readsPrec :: Int -> ReadS BatchPutAssetPropertyValue
$creadsPrec :: Int -> ReadS BatchPutAssetPropertyValue
Prelude.Read, Int -> BatchPutAssetPropertyValue -> ShowS
[BatchPutAssetPropertyValue] -> ShowS
BatchPutAssetPropertyValue -> String
(Int -> BatchPutAssetPropertyValue -> ShowS)
-> (BatchPutAssetPropertyValue -> String)
-> ([BatchPutAssetPropertyValue] -> ShowS)
-> Show BatchPutAssetPropertyValue
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [BatchPutAssetPropertyValue] -> ShowS
$cshowList :: [BatchPutAssetPropertyValue] -> ShowS
show :: BatchPutAssetPropertyValue -> String
$cshow :: BatchPutAssetPropertyValue -> String
showsPrec :: Int -> BatchPutAssetPropertyValue -> ShowS
$cshowsPrec :: Int -> BatchPutAssetPropertyValue -> ShowS
Prelude.Show, (forall x.
 BatchPutAssetPropertyValue -> Rep BatchPutAssetPropertyValue x)
-> (forall x.
    Rep BatchPutAssetPropertyValue x -> BatchPutAssetPropertyValue)
-> Generic BatchPutAssetPropertyValue
forall x.
Rep BatchPutAssetPropertyValue x -> BatchPutAssetPropertyValue
forall x.
BatchPutAssetPropertyValue -> Rep BatchPutAssetPropertyValue x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep BatchPutAssetPropertyValue x -> BatchPutAssetPropertyValue
$cfrom :: forall x.
BatchPutAssetPropertyValue -> Rep BatchPutAssetPropertyValue x
Prelude.Generic)

-- |
-- Create a value of 'BatchPutAssetPropertyValue' 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:
--
-- 'entries', 'batchPutAssetPropertyValue_entries' - The list of asset property value entries for the batch put request. You
-- can specify up to 10 entries per request.
newBatchPutAssetPropertyValue ::
  BatchPutAssetPropertyValue
newBatchPutAssetPropertyValue :: BatchPutAssetPropertyValue
newBatchPutAssetPropertyValue =
  BatchPutAssetPropertyValue' :: [PutAssetPropertyValueEntry] -> BatchPutAssetPropertyValue
BatchPutAssetPropertyValue'
    { $sel:entries:BatchPutAssetPropertyValue' :: [PutAssetPropertyValueEntry]
entries =
        [PutAssetPropertyValueEntry]
forall a. Monoid a => a
Prelude.mempty
    }

-- | The list of asset property value entries for the batch put request. You
-- can specify up to 10 entries per request.
batchPutAssetPropertyValue_entries :: Lens.Lens' BatchPutAssetPropertyValue [PutAssetPropertyValueEntry]
batchPutAssetPropertyValue_entries :: ([PutAssetPropertyValueEntry] -> f [PutAssetPropertyValueEntry])
-> BatchPutAssetPropertyValue -> f BatchPutAssetPropertyValue
batchPutAssetPropertyValue_entries = (BatchPutAssetPropertyValue -> [PutAssetPropertyValueEntry])
-> (BatchPutAssetPropertyValue
    -> [PutAssetPropertyValueEntry] -> BatchPutAssetPropertyValue)
-> Lens
     BatchPutAssetPropertyValue
     BatchPutAssetPropertyValue
     [PutAssetPropertyValueEntry]
     [PutAssetPropertyValueEntry]
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchPutAssetPropertyValue' {[PutAssetPropertyValueEntry]
entries :: [PutAssetPropertyValueEntry]
$sel:entries:BatchPutAssetPropertyValue' :: BatchPutAssetPropertyValue -> [PutAssetPropertyValueEntry]
entries} -> [PutAssetPropertyValueEntry]
entries) (\s :: BatchPutAssetPropertyValue
s@BatchPutAssetPropertyValue' {} [PutAssetPropertyValueEntry]
a -> BatchPutAssetPropertyValue
s {$sel:entries:BatchPutAssetPropertyValue' :: [PutAssetPropertyValueEntry]
entries = [PutAssetPropertyValueEntry]
a} :: BatchPutAssetPropertyValue) (([PutAssetPropertyValueEntry] -> f [PutAssetPropertyValueEntry])
 -> BatchPutAssetPropertyValue -> f BatchPutAssetPropertyValue)
-> (([PutAssetPropertyValueEntry]
     -> f [PutAssetPropertyValueEntry])
    -> [PutAssetPropertyValueEntry] -> f [PutAssetPropertyValueEntry])
-> ([PutAssetPropertyValueEntry] -> f [PutAssetPropertyValueEntry])
-> BatchPutAssetPropertyValue
-> f BatchPutAssetPropertyValue
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. ([PutAssetPropertyValueEntry] -> f [PutAssetPropertyValueEntry])
-> [PutAssetPropertyValueEntry] -> f [PutAssetPropertyValueEntry]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

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

instance Prelude.Hashable BatchPutAssetPropertyValue

instance Prelude.NFData BatchPutAssetPropertyValue

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

instance Core.ToJSON BatchPutAssetPropertyValue where
  toJSON :: BatchPutAssetPropertyValue -> Value
toJSON BatchPutAssetPropertyValue' {[PutAssetPropertyValueEntry]
entries :: [PutAssetPropertyValueEntry]
$sel:entries:BatchPutAssetPropertyValue' :: BatchPutAssetPropertyValue -> [PutAssetPropertyValueEntry]
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just (Key
"entries" Key -> [PutAssetPropertyValueEntry] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Core..= [PutAssetPropertyValueEntry]
entries)]
      )

instance Core.ToPath BatchPutAssetPropertyValue where
  toPath :: BatchPutAssetPropertyValue -> ByteString
toPath = ByteString -> BatchPutAssetPropertyValue -> ByteString
forall a b. a -> b -> a
Prelude.const ByteString
"/properties"

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

-- | /See:/ 'newBatchPutAssetPropertyValueResponse' smart constructor.
data BatchPutAssetPropertyValueResponse = BatchPutAssetPropertyValueResponse'
  { -- | The response's http status code.
    BatchPutAssetPropertyValueResponse -> Int
httpStatus :: Prelude.Int,
    -- | A list of the errors (if any) associated with the batch put request.
    -- Each error entry contains the @entryId@ of the entry that failed.
    BatchPutAssetPropertyValueResponse
-> [BatchPutAssetPropertyErrorEntry]
errorEntries :: [BatchPutAssetPropertyErrorEntry]
  }
  deriving (BatchPutAssetPropertyValueResponse
-> BatchPutAssetPropertyValueResponse -> Bool
(BatchPutAssetPropertyValueResponse
 -> BatchPutAssetPropertyValueResponse -> Bool)
-> (BatchPutAssetPropertyValueResponse
    -> BatchPutAssetPropertyValueResponse -> Bool)
-> Eq BatchPutAssetPropertyValueResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BatchPutAssetPropertyValueResponse
-> BatchPutAssetPropertyValueResponse -> Bool
$c/= :: BatchPutAssetPropertyValueResponse
-> BatchPutAssetPropertyValueResponse -> Bool
== :: BatchPutAssetPropertyValueResponse
-> BatchPutAssetPropertyValueResponse -> Bool
$c== :: BatchPutAssetPropertyValueResponse
-> BatchPutAssetPropertyValueResponse -> Bool
Prelude.Eq, ReadPrec [BatchPutAssetPropertyValueResponse]
ReadPrec BatchPutAssetPropertyValueResponse
Int -> ReadS BatchPutAssetPropertyValueResponse
ReadS [BatchPutAssetPropertyValueResponse]
(Int -> ReadS BatchPutAssetPropertyValueResponse)
-> ReadS [BatchPutAssetPropertyValueResponse]
-> ReadPrec BatchPutAssetPropertyValueResponse
-> ReadPrec [BatchPutAssetPropertyValueResponse]
-> Read BatchPutAssetPropertyValueResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [BatchPutAssetPropertyValueResponse]
$creadListPrec :: ReadPrec [BatchPutAssetPropertyValueResponse]
readPrec :: ReadPrec BatchPutAssetPropertyValueResponse
$creadPrec :: ReadPrec BatchPutAssetPropertyValueResponse
readList :: ReadS [BatchPutAssetPropertyValueResponse]
$creadList :: ReadS [BatchPutAssetPropertyValueResponse]
readsPrec :: Int -> ReadS BatchPutAssetPropertyValueResponse
$creadsPrec :: Int -> ReadS BatchPutAssetPropertyValueResponse
Prelude.Read, Int -> BatchPutAssetPropertyValueResponse -> ShowS
[BatchPutAssetPropertyValueResponse] -> ShowS
BatchPutAssetPropertyValueResponse -> String
(Int -> BatchPutAssetPropertyValueResponse -> ShowS)
-> (BatchPutAssetPropertyValueResponse -> String)
-> ([BatchPutAssetPropertyValueResponse] -> ShowS)
-> Show BatchPutAssetPropertyValueResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [BatchPutAssetPropertyValueResponse] -> ShowS
$cshowList :: [BatchPutAssetPropertyValueResponse] -> ShowS
show :: BatchPutAssetPropertyValueResponse -> String
$cshow :: BatchPutAssetPropertyValueResponse -> String
showsPrec :: Int -> BatchPutAssetPropertyValueResponse -> ShowS
$cshowsPrec :: Int -> BatchPutAssetPropertyValueResponse -> ShowS
Prelude.Show, (forall x.
 BatchPutAssetPropertyValueResponse
 -> Rep BatchPutAssetPropertyValueResponse x)
-> (forall x.
    Rep BatchPutAssetPropertyValueResponse x
    -> BatchPutAssetPropertyValueResponse)
-> Generic BatchPutAssetPropertyValueResponse
forall x.
Rep BatchPutAssetPropertyValueResponse x
-> BatchPutAssetPropertyValueResponse
forall x.
BatchPutAssetPropertyValueResponse
-> Rep BatchPutAssetPropertyValueResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep BatchPutAssetPropertyValueResponse x
-> BatchPutAssetPropertyValueResponse
$cfrom :: forall x.
BatchPutAssetPropertyValueResponse
-> Rep BatchPutAssetPropertyValueResponse x
Prelude.Generic)

-- |
-- Create a value of 'BatchPutAssetPropertyValueResponse' 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:
--
-- 'httpStatus', 'batchPutAssetPropertyValueResponse_httpStatus' - The response's http status code.
--
-- 'errorEntries', 'batchPutAssetPropertyValueResponse_errorEntries' - A list of the errors (if any) associated with the batch put request.
-- Each error entry contains the @entryId@ of the entry that failed.
newBatchPutAssetPropertyValueResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  BatchPutAssetPropertyValueResponse
newBatchPutAssetPropertyValueResponse :: Int -> BatchPutAssetPropertyValueResponse
newBatchPutAssetPropertyValueResponse Int
pHttpStatus_ =
  BatchPutAssetPropertyValueResponse' :: Int
-> [BatchPutAssetPropertyErrorEntry]
-> BatchPutAssetPropertyValueResponse
BatchPutAssetPropertyValueResponse'
    { $sel:httpStatus:BatchPutAssetPropertyValueResponse' :: Int
httpStatus =
        Int
pHttpStatus_,
      $sel:errorEntries:BatchPutAssetPropertyValueResponse' :: [BatchPutAssetPropertyErrorEntry]
errorEntries = [BatchPutAssetPropertyErrorEntry]
forall a. Monoid a => a
Prelude.mempty
    }

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

-- | A list of the errors (if any) associated with the batch put request.
-- Each error entry contains the @entryId@ of the entry that failed.
batchPutAssetPropertyValueResponse_errorEntries :: Lens.Lens' BatchPutAssetPropertyValueResponse [BatchPutAssetPropertyErrorEntry]
batchPutAssetPropertyValueResponse_errorEntries :: ([BatchPutAssetPropertyErrorEntry]
 -> f [BatchPutAssetPropertyErrorEntry])
-> BatchPutAssetPropertyValueResponse
-> f BatchPutAssetPropertyValueResponse
batchPutAssetPropertyValueResponse_errorEntries = (BatchPutAssetPropertyValueResponse
 -> [BatchPutAssetPropertyErrorEntry])
-> (BatchPutAssetPropertyValueResponse
    -> [BatchPutAssetPropertyErrorEntry]
    -> BatchPutAssetPropertyValueResponse)
-> Lens
     BatchPutAssetPropertyValueResponse
     BatchPutAssetPropertyValueResponse
     [BatchPutAssetPropertyErrorEntry]
     [BatchPutAssetPropertyErrorEntry]
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchPutAssetPropertyValueResponse' {[BatchPutAssetPropertyErrorEntry]
errorEntries :: [BatchPutAssetPropertyErrorEntry]
$sel:errorEntries:BatchPutAssetPropertyValueResponse' :: BatchPutAssetPropertyValueResponse
-> [BatchPutAssetPropertyErrorEntry]
errorEntries} -> [BatchPutAssetPropertyErrorEntry]
errorEntries) (\s :: BatchPutAssetPropertyValueResponse
s@BatchPutAssetPropertyValueResponse' {} [BatchPutAssetPropertyErrorEntry]
a -> BatchPutAssetPropertyValueResponse
s {$sel:errorEntries:BatchPutAssetPropertyValueResponse' :: [BatchPutAssetPropertyErrorEntry]
errorEntries = [BatchPutAssetPropertyErrorEntry]
a} :: BatchPutAssetPropertyValueResponse) (([BatchPutAssetPropertyErrorEntry]
  -> f [BatchPutAssetPropertyErrorEntry])
 -> BatchPutAssetPropertyValueResponse
 -> f BatchPutAssetPropertyValueResponse)
-> (([BatchPutAssetPropertyErrorEntry]
     -> f [BatchPutAssetPropertyErrorEntry])
    -> [BatchPutAssetPropertyErrorEntry]
    -> f [BatchPutAssetPropertyErrorEntry])
-> ([BatchPutAssetPropertyErrorEntry]
    -> f [BatchPutAssetPropertyErrorEntry])
-> BatchPutAssetPropertyValueResponse
-> f BatchPutAssetPropertyValueResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. ([BatchPutAssetPropertyErrorEntry]
 -> f [BatchPutAssetPropertyErrorEntry])
-> [BatchPutAssetPropertyErrorEntry]
-> f [BatchPutAssetPropertyErrorEntry]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance
  Prelude.NFData
    BatchPutAssetPropertyValueResponse