{-# 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.UpdateAssetProperty
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Updates an asset property\'s alias and notification state.
--
-- This operation overwrites the property\'s existing alias and
-- notification state. To keep your existing property\'s alias or
-- notification state, you must include the existing values in the
-- UpdateAssetProperty request. For more information, see
-- <https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeAssetProperty.html DescribeAssetProperty>.
module Amazonka.IoTSiteWise.UpdateAssetProperty
  ( -- * Creating a Request
    UpdateAssetProperty (..),
    newUpdateAssetProperty,

    -- * Request Lenses
    updateAssetProperty_clientToken,
    updateAssetProperty_propertyAlias,
    updateAssetProperty_propertyNotificationState,
    updateAssetProperty_propertyUnit,
    updateAssetProperty_assetId,
    updateAssetProperty_propertyId,

    -- * Destructuring the Response
    UpdateAssetPropertyResponse (..),
    newUpdateAssetPropertyResponse,
  )
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:/ 'newUpdateAssetProperty' smart constructor.
data UpdateAssetProperty = UpdateAssetProperty'
  { -- | A unique case-sensitive identifier that you can provide to ensure the
    -- idempotency of the request. Don\'t reuse this client token if a new
    -- idempotent request is required.
    UpdateAssetProperty -> Maybe Text
clientToken :: Prelude.Maybe Prelude.Text,
    -- | The alias that identifies the property, such as an OPC-UA server data
    -- stream path (for example,
    -- @\/company\/windfarm\/3\/turbine\/7\/temperature@). For more
    -- information, see
    -- <https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html Mapping industrial data streams to asset properties>
    -- in the /IoT SiteWise User Guide/.
    --
    -- If you omit this parameter, the alias is removed from the property.
    UpdateAssetProperty -> Maybe Text
propertyAlias :: Prelude.Maybe Prelude.Text,
    -- | The MQTT notification state (enabled or disabled) for this asset
    -- property. When the notification state is enabled, IoT SiteWise publishes
    -- property value updates to a unique MQTT topic. For more information, see
    -- <https://docs.aws.amazon.com/iot-sitewise/latest/userguide/interact-with-other-services.html Interacting with other services>
    -- in the /IoT SiteWise User Guide/.
    --
    -- If you omit this parameter, the notification state is set to @DISABLED@.
    UpdateAssetProperty -> Maybe PropertyNotificationState
propertyNotificationState :: Prelude.Maybe PropertyNotificationState,
    -- | The unit of measure (such as Newtons or RPM) of the asset property. If
    -- you don\'t specify a value for this parameter, the service uses the
    -- value of the @assetModelProperty@ in the asset model.
    UpdateAssetProperty -> Maybe Text
propertyUnit :: Prelude.Maybe Prelude.Text,
    -- | The ID of the asset to be updated.
    UpdateAssetProperty -> Text
assetId :: Prelude.Text,
    -- | The ID of the asset property to be updated.
    UpdateAssetProperty -> Text
propertyId :: Prelude.Text
  }
  deriving (UpdateAssetProperty -> UpdateAssetProperty -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateAssetProperty -> UpdateAssetProperty -> Bool
$c/= :: UpdateAssetProperty -> UpdateAssetProperty -> Bool
== :: UpdateAssetProperty -> UpdateAssetProperty -> Bool
$c== :: UpdateAssetProperty -> UpdateAssetProperty -> Bool
Prelude.Eq, ReadPrec [UpdateAssetProperty]
ReadPrec UpdateAssetProperty
Int -> ReadS UpdateAssetProperty
ReadS [UpdateAssetProperty]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateAssetProperty]
$creadListPrec :: ReadPrec [UpdateAssetProperty]
readPrec :: ReadPrec UpdateAssetProperty
$creadPrec :: ReadPrec UpdateAssetProperty
readList :: ReadS [UpdateAssetProperty]
$creadList :: ReadS [UpdateAssetProperty]
readsPrec :: Int -> ReadS UpdateAssetProperty
$creadsPrec :: Int -> ReadS UpdateAssetProperty
Prelude.Read, Int -> UpdateAssetProperty -> ShowS
[UpdateAssetProperty] -> ShowS
UpdateAssetProperty -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateAssetProperty] -> ShowS
$cshowList :: [UpdateAssetProperty] -> ShowS
show :: UpdateAssetProperty -> String
$cshow :: UpdateAssetProperty -> String
showsPrec :: Int -> UpdateAssetProperty -> ShowS
$cshowsPrec :: Int -> UpdateAssetProperty -> ShowS
Prelude.Show, forall x. Rep UpdateAssetProperty x -> UpdateAssetProperty
forall x. UpdateAssetProperty -> Rep UpdateAssetProperty x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateAssetProperty x -> UpdateAssetProperty
$cfrom :: forall x. UpdateAssetProperty -> Rep UpdateAssetProperty x
Prelude.Generic)

-- |
-- Create a value of 'UpdateAssetProperty' 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:
--
-- 'clientToken', 'updateAssetProperty_clientToken' - A unique case-sensitive identifier that you can provide to ensure the
-- idempotency of the request. Don\'t reuse this client token if a new
-- idempotent request is required.
--
-- 'propertyAlias', 'updateAssetProperty_propertyAlias' - The alias that identifies the property, such as an OPC-UA server data
-- stream path (for example,
-- @\/company\/windfarm\/3\/turbine\/7\/temperature@). For more
-- information, see
-- <https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html Mapping industrial data streams to asset properties>
-- in the /IoT SiteWise User Guide/.
--
-- If you omit this parameter, the alias is removed from the property.
--
-- 'propertyNotificationState', 'updateAssetProperty_propertyNotificationState' - The MQTT notification state (enabled or disabled) for this asset
-- property. When the notification state is enabled, IoT SiteWise publishes
-- property value updates to a unique MQTT topic. For more information, see
-- <https://docs.aws.amazon.com/iot-sitewise/latest/userguide/interact-with-other-services.html Interacting with other services>
-- in the /IoT SiteWise User Guide/.
--
-- If you omit this parameter, the notification state is set to @DISABLED@.
--
-- 'propertyUnit', 'updateAssetProperty_propertyUnit' - The unit of measure (such as Newtons or RPM) of the asset property. If
-- you don\'t specify a value for this parameter, the service uses the
-- value of the @assetModelProperty@ in the asset model.
--
-- 'assetId', 'updateAssetProperty_assetId' - The ID of the asset to be updated.
--
-- 'propertyId', 'updateAssetProperty_propertyId' - The ID of the asset property to be updated.
newUpdateAssetProperty ::
  -- | 'assetId'
  Prelude.Text ->
  -- | 'propertyId'
  Prelude.Text ->
  UpdateAssetProperty
newUpdateAssetProperty :: Text -> Text -> UpdateAssetProperty
newUpdateAssetProperty Text
pAssetId_ Text
pPropertyId_ =
  UpdateAssetProperty'
    { $sel:clientToken:UpdateAssetProperty' :: Maybe Text
clientToken = forall a. Maybe a
Prelude.Nothing,
      $sel:propertyAlias:UpdateAssetProperty' :: Maybe Text
propertyAlias = forall a. Maybe a
Prelude.Nothing,
      $sel:propertyNotificationState:UpdateAssetProperty' :: Maybe PropertyNotificationState
propertyNotificationState = forall a. Maybe a
Prelude.Nothing,
      $sel:propertyUnit:UpdateAssetProperty' :: Maybe Text
propertyUnit = forall a. Maybe a
Prelude.Nothing,
      $sel:assetId:UpdateAssetProperty' :: Text
assetId = Text
pAssetId_,
      $sel:propertyId:UpdateAssetProperty' :: Text
propertyId = Text
pPropertyId_
    }

-- | A unique case-sensitive identifier that you can provide to ensure the
-- idempotency of the request. Don\'t reuse this client token if a new
-- idempotent request is required.
updateAssetProperty_clientToken :: Lens.Lens' UpdateAssetProperty (Prelude.Maybe Prelude.Text)
updateAssetProperty_clientToken :: Lens' UpdateAssetProperty (Maybe Text)
updateAssetProperty_clientToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAssetProperty' {Maybe Text
clientToken :: Maybe Text
$sel:clientToken:UpdateAssetProperty' :: UpdateAssetProperty -> Maybe Text
clientToken} -> Maybe Text
clientToken) (\s :: UpdateAssetProperty
s@UpdateAssetProperty' {} Maybe Text
a -> UpdateAssetProperty
s {$sel:clientToken:UpdateAssetProperty' :: Maybe Text
clientToken = Maybe Text
a} :: UpdateAssetProperty)

-- | The alias that identifies the property, such as an OPC-UA server data
-- stream path (for example,
-- @\/company\/windfarm\/3\/turbine\/7\/temperature@). For more
-- information, see
-- <https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html Mapping industrial data streams to asset properties>
-- in the /IoT SiteWise User Guide/.
--
-- If you omit this parameter, the alias is removed from the property.
updateAssetProperty_propertyAlias :: Lens.Lens' UpdateAssetProperty (Prelude.Maybe Prelude.Text)
updateAssetProperty_propertyAlias :: Lens' UpdateAssetProperty (Maybe Text)
updateAssetProperty_propertyAlias = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAssetProperty' {Maybe Text
propertyAlias :: Maybe Text
$sel:propertyAlias:UpdateAssetProperty' :: UpdateAssetProperty -> Maybe Text
propertyAlias} -> Maybe Text
propertyAlias) (\s :: UpdateAssetProperty
s@UpdateAssetProperty' {} Maybe Text
a -> UpdateAssetProperty
s {$sel:propertyAlias:UpdateAssetProperty' :: Maybe Text
propertyAlias = Maybe Text
a} :: UpdateAssetProperty)

-- | The MQTT notification state (enabled or disabled) for this asset
-- property. When the notification state is enabled, IoT SiteWise publishes
-- property value updates to a unique MQTT topic. For more information, see
-- <https://docs.aws.amazon.com/iot-sitewise/latest/userguide/interact-with-other-services.html Interacting with other services>
-- in the /IoT SiteWise User Guide/.
--
-- If you omit this parameter, the notification state is set to @DISABLED@.
updateAssetProperty_propertyNotificationState :: Lens.Lens' UpdateAssetProperty (Prelude.Maybe PropertyNotificationState)
updateAssetProperty_propertyNotificationState :: Lens' UpdateAssetProperty (Maybe PropertyNotificationState)
updateAssetProperty_propertyNotificationState = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAssetProperty' {Maybe PropertyNotificationState
propertyNotificationState :: Maybe PropertyNotificationState
$sel:propertyNotificationState:UpdateAssetProperty' :: UpdateAssetProperty -> Maybe PropertyNotificationState
propertyNotificationState} -> Maybe PropertyNotificationState
propertyNotificationState) (\s :: UpdateAssetProperty
s@UpdateAssetProperty' {} Maybe PropertyNotificationState
a -> UpdateAssetProperty
s {$sel:propertyNotificationState:UpdateAssetProperty' :: Maybe PropertyNotificationState
propertyNotificationState = Maybe PropertyNotificationState
a} :: UpdateAssetProperty)

-- | The unit of measure (such as Newtons or RPM) of the asset property. If
-- you don\'t specify a value for this parameter, the service uses the
-- value of the @assetModelProperty@ in the asset model.
updateAssetProperty_propertyUnit :: Lens.Lens' UpdateAssetProperty (Prelude.Maybe Prelude.Text)
updateAssetProperty_propertyUnit :: Lens' UpdateAssetProperty (Maybe Text)
updateAssetProperty_propertyUnit = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAssetProperty' {Maybe Text
propertyUnit :: Maybe Text
$sel:propertyUnit:UpdateAssetProperty' :: UpdateAssetProperty -> Maybe Text
propertyUnit} -> Maybe Text
propertyUnit) (\s :: UpdateAssetProperty
s@UpdateAssetProperty' {} Maybe Text
a -> UpdateAssetProperty
s {$sel:propertyUnit:UpdateAssetProperty' :: Maybe Text
propertyUnit = Maybe Text
a} :: UpdateAssetProperty)

-- | The ID of the asset to be updated.
updateAssetProperty_assetId :: Lens.Lens' UpdateAssetProperty Prelude.Text
updateAssetProperty_assetId :: Lens' UpdateAssetProperty Text
updateAssetProperty_assetId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAssetProperty' {Text
assetId :: Text
$sel:assetId:UpdateAssetProperty' :: UpdateAssetProperty -> Text
assetId} -> Text
assetId) (\s :: UpdateAssetProperty
s@UpdateAssetProperty' {} Text
a -> UpdateAssetProperty
s {$sel:assetId:UpdateAssetProperty' :: Text
assetId = Text
a} :: UpdateAssetProperty)

-- | The ID of the asset property to be updated.
updateAssetProperty_propertyId :: Lens.Lens' UpdateAssetProperty Prelude.Text
updateAssetProperty_propertyId :: Lens' UpdateAssetProperty Text
updateAssetProperty_propertyId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAssetProperty' {Text
propertyId :: Text
$sel:propertyId:UpdateAssetProperty' :: UpdateAssetProperty -> Text
propertyId} -> Text
propertyId) (\s :: UpdateAssetProperty
s@UpdateAssetProperty' {} Text
a -> UpdateAssetProperty
s {$sel:propertyId:UpdateAssetProperty' :: Text
propertyId = Text
a} :: UpdateAssetProperty)

instance Core.AWSRequest UpdateAssetProperty where
  type
    AWSResponse UpdateAssetProperty =
      UpdateAssetPropertyResponse
  request :: (Service -> Service)
-> UpdateAssetProperty -> Request UpdateAssetProperty
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.putJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy UpdateAssetProperty
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse UpdateAssetProperty)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
AWSResponse a
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveNull UpdateAssetPropertyResponse
UpdateAssetPropertyResponse'

instance Prelude.Hashable UpdateAssetProperty where
  hashWithSalt :: Int -> UpdateAssetProperty -> Int
hashWithSalt Int
_salt UpdateAssetProperty' {Maybe Text
Maybe PropertyNotificationState
Text
propertyId :: Text
assetId :: Text
propertyUnit :: Maybe Text
propertyNotificationState :: Maybe PropertyNotificationState
propertyAlias :: Maybe Text
clientToken :: Maybe Text
$sel:propertyId:UpdateAssetProperty' :: UpdateAssetProperty -> Text
$sel:assetId:UpdateAssetProperty' :: UpdateAssetProperty -> Text
$sel:propertyUnit:UpdateAssetProperty' :: UpdateAssetProperty -> Maybe Text
$sel:propertyNotificationState:UpdateAssetProperty' :: UpdateAssetProperty -> Maybe PropertyNotificationState
$sel:propertyAlias:UpdateAssetProperty' :: UpdateAssetProperty -> Maybe Text
$sel:clientToken:UpdateAssetProperty' :: UpdateAssetProperty -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
clientToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
propertyAlias
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PropertyNotificationState
propertyNotificationState
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
propertyUnit
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
assetId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
propertyId

instance Prelude.NFData UpdateAssetProperty where
  rnf :: UpdateAssetProperty -> ()
rnf UpdateAssetProperty' {Maybe Text
Maybe PropertyNotificationState
Text
propertyId :: Text
assetId :: Text
propertyUnit :: Maybe Text
propertyNotificationState :: Maybe PropertyNotificationState
propertyAlias :: Maybe Text
clientToken :: Maybe Text
$sel:propertyId:UpdateAssetProperty' :: UpdateAssetProperty -> Text
$sel:assetId:UpdateAssetProperty' :: UpdateAssetProperty -> Text
$sel:propertyUnit:UpdateAssetProperty' :: UpdateAssetProperty -> Maybe Text
$sel:propertyNotificationState:UpdateAssetProperty' :: UpdateAssetProperty -> Maybe PropertyNotificationState
$sel:propertyAlias:UpdateAssetProperty' :: UpdateAssetProperty -> Maybe Text
$sel:clientToken:UpdateAssetProperty' :: UpdateAssetProperty -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
clientToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
propertyAlias
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PropertyNotificationState
propertyNotificationState
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
propertyUnit
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
assetId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
propertyId

instance Data.ToHeaders UpdateAssetProperty where
  toHeaders :: UpdateAssetProperty -> [Header]
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 -> [Header]
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON UpdateAssetProperty where
  toJSON :: UpdateAssetProperty -> Value
toJSON UpdateAssetProperty' {Maybe Text
Maybe PropertyNotificationState
Text
propertyId :: Text
assetId :: Text
propertyUnit :: Maybe Text
propertyNotificationState :: Maybe PropertyNotificationState
propertyAlias :: Maybe Text
clientToken :: Maybe Text
$sel:propertyId:UpdateAssetProperty' :: UpdateAssetProperty -> Text
$sel:assetId:UpdateAssetProperty' :: UpdateAssetProperty -> Text
$sel:propertyUnit:UpdateAssetProperty' :: UpdateAssetProperty -> Maybe Text
$sel:propertyNotificationState:UpdateAssetProperty' :: UpdateAssetProperty -> Maybe PropertyNotificationState
$sel:propertyAlias:UpdateAssetProperty' :: UpdateAssetProperty -> Maybe Text
$sel:clientToken:UpdateAssetProperty' :: UpdateAssetProperty -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"clientToken" 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
clientToken,
            (Key
"propertyAlias" 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
propertyAlias,
            (Key
"propertyNotificationState" 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 PropertyNotificationState
propertyNotificationState,
            (Key
"propertyUnit" 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
propertyUnit
          ]
      )

instance Data.ToPath UpdateAssetProperty where
  toPath :: UpdateAssetProperty -> ByteString
toPath UpdateAssetProperty' {Maybe Text
Maybe PropertyNotificationState
Text
propertyId :: Text
assetId :: Text
propertyUnit :: Maybe Text
propertyNotificationState :: Maybe PropertyNotificationState
propertyAlias :: Maybe Text
clientToken :: Maybe Text
$sel:propertyId:UpdateAssetProperty' :: UpdateAssetProperty -> Text
$sel:assetId:UpdateAssetProperty' :: UpdateAssetProperty -> Text
$sel:propertyUnit:UpdateAssetProperty' :: UpdateAssetProperty -> Maybe Text
$sel:propertyNotificationState:UpdateAssetProperty' :: UpdateAssetProperty -> Maybe PropertyNotificationState
$sel:propertyAlias:UpdateAssetProperty' :: UpdateAssetProperty -> Maybe Text
$sel:clientToken:UpdateAssetProperty' :: UpdateAssetProperty -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/assets/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
assetId,
        ByteString
"/properties/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
propertyId
      ]

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

-- | /See:/ 'newUpdateAssetPropertyResponse' smart constructor.
data UpdateAssetPropertyResponse = UpdateAssetPropertyResponse'
  {
  }
  deriving (UpdateAssetPropertyResponse -> UpdateAssetPropertyResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateAssetPropertyResponse -> UpdateAssetPropertyResponse -> Bool
$c/= :: UpdateAssetPropertyResponse -> UpdateAssetPropertyResponse -> Bool
== :: UpdateAssetPropertyResponse -> UpdateAssetPropertyResponse -> Bool
$c== :: UpdateAssetPropertyResponse -> UpdateAssetPropertyResponse -> Bool
Prelude.Eq, ReadPrec [UpdateAssetPropertyResponse]
ReadPrec UpdateAssetPropertyResponse
Int -> ReadS UpdateAssetPropertyResponse
ReadS [UpdateAssetPropertyResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateAssetPropertyResponse]
$creadListPrec :: ReadPrec [UpdateAssetPropertyResponse]
readPrec :: ReadPrec UpdateAssetPropertyResponse
$creadPrec :: ReadPrec UpdateAssetPropertyResponse
readList :: ReadS [UpdateAssetPropertyResponse]
$creadList :: ReadS [UpdateAssetPropertyResponse]
readsPrec :: Int -> ReadS UpdateAssetPropertyResponse
$creadsPrec :: Int -> ReadS UpdateAssetPropertyResponse
Prelude.Read, Int -> UpdateAssetPropertyResponse -> ShowS
[UpdateAssetPropertyResponse] -> ShowS
UpdateAssetPropertyResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateAssetPropertyResponse] -> ShowS
$cshowList :: [UpdateAssetPropertyResponse] -> ShowS
show :: UpdateAssetPropertyResponse -> String
$cshow :: UpdateAssetPropertyResponse -> String
showsPrec :: Int -> UpdateAssetPropertyResponse -> ShowS
$cshowsPrec :: Int -> UpdateAssetPropertyResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateAssetPropertyResponse x -> UpdateAssetPropertyResponse
forall x.
UpdateAssetPropertyResponse -> Rep UpdateAssetPropertyResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateAssetPropertyResponse x -> UpdateAssetPropertyResponse
$cfrom :: forall x.
UpdateAssetPropertyResponse -> Rep UpdateAssetPropertyResponse x
Prelude.Generic)

-- |
-- Create a value of 'UpdateAssetPropertyResponse' 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.
newUpdateAssetPropertyResponse ::
  UpdateAssetPropertyResponse
newUpdateAssetPropertyResponse :: UpdateAssetPropertyResponse
newUpdateAssetPropertyResponse =
  UpdateAssetPropertyResponse
UpdateAssetPropertyResponse'

instance Prelude.NFData UpdateAssetPropertyResponse where
  rnf :: UpdateAssetPropertyResponse -> ()
rnf UpdateAssetPropertyResponse
_ = ()