amazonka-braket-2.0: gen/Amazonka/Braket/Types/DeviceSummary.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Amazonka.Braket.Types.DeviceSummary
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.Braket.Types.DeviceSummary where
import Amazonka.Braket.Types.DeviceStatus
import Amazonka.Braket.Types.DeviceType
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
-- | Includes information about the device.
--
-- /See:/ 'newDeviceSummary' smart constructor.
data DeviceSummary = DeviceSummary'
{ -- | The ARN of the device.
deviceArn :: Prelude.Text,
-- | The name of the device.
deviceName :: Prelude.Text,
-- | The status of the device.
deviceStatus :: DeviceStatus,
-- | The type of the device.
deviceType :: DeviceType,
-- | The provider of the device.
providerName :: Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'DeviceSummary' 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:
--
-- 'deviceArn', 'deviceSummary_deviceArn' - The ARN of the device.
--
-- 'deviceName', 'deviceSummary_deviceName' - The name of the device.
--
-- 'deviceStatus', 'deviceSummary_deviceStatus' - The status of the device.
--
-- 'deviceType', 'deviceSummary_deviceType' - The type of the device.
--
-- 'providerName', 'deviceSummary_providerName' - The provider of the device.
newDeviceSummary ::
-- | 'deviceArn'
Prelude.Text ->
-- | 'deviceName'
Prelude.Text ->
-- | 'deviceStatus'
DeviceStatus ->
-- | 'deviceType'
DeviceType ->
-- | 'providerName'
Prelude.Text ->
DeviceSummary
newDeviceSummary
pDeviceArn_
pDeviceName_
pDeviceStatus_
pDeviceType_
pProviderName_ =
DeviceSummary'
{ deviceArn = pDeviceArn_,
deviceName = pDeviceName_,
deviceStatus = pDeviceStatus_,
deviceType = pDeviceType_,
providerName = pProviderName_
}
-- | The ARN of the device.
deviceSummary_deviceArn :: Lens.Lens' DeviceSummary Prelude.Text
deviceSummary_deviceArn = Lens.lens (\DeviceSummary' {deviceArn} -> deviceArn) (\s@DeviceSummary' {} a -> s {deviceArn = a} :: DeviceSummary)
-- | The name of the device.
deviceSummary_deviceName :: Lens.Lens' DeviceSummary Prelude.Text
deviceSummary_deviceName = Lens.lens (\DeviceSummary' {deviceName} -> deviceName) (\s@DeviceSummary' {} a -> s {deviceName = a} :: DeviceSummary)
-- | The status of the device.
deviceSummary_deviceStatus :: Lens.Lens' DeviceSummary DeviceStatus
deviceSummary_deviceStatus = Lens.lens (\DeviceSummary' {deviceStatus} -> deviceStatus) (\s@DeviceSummary' {} a -> s {deviceStatus = a} :: DeviceSummary)
-- | The type of the device.
deviceSummary_deviceType :: Lens.Lens' DeviceSummary DeviceType
deviceSummary_deviceType = Lens.lens (\DeviceSummary' {deviceType} -> deviceType) (\s@DeviceSummary' {} a -> s {deviceType = a} :: DeviceSummary)
-- | The provider of the device.
deviceSummary_providerName :: Lens.Lens' DeviceSummary Prelude.Text
deviceSummary_providerName = Lens.lens (\DeviceSummary' {providerName} -> providerName) (\s@DeviceSummary' {} a -> s {providerName = a} :: DeviceSummary)
instance Data.FromJSON DeviceSummary where
parseJSON =
Data.withObject
"DeviceSummary"
( \x ->
DeviceSummary'
Prelude.<$> (x Data..: "deviceArn")
Prelude.<*> (x Data..: "deviceName")
Prelude.<*> (x Data..: "deviceStatus")
Prelude.<*> (x Data..: "deviceType")
Prelude.<*> (x Data..: "providerName")
)
instance Prelude.Hashable DeviceSummary where
hashWithSalt _salt DeviceSummary' {..} =
_salt
`Prelude.hashWithSalt` deviceArn
`Prelude.hashWithSalt` deviceName
`Prelude.hashWithSalt` deviceStatus
`Prelude.hashWithSalt` deviceType
`Prelude.hashWithSalt` providerName
instance Prelude.NFData DeviceSummary where
rnf DeviceSummary' {..} =
Prelude.rnf deviceArn
`Prelude.seq` Prelude.rnf deviceName
`Prelude.seq` Prelude.rnf deviceStatus
`Prelude.seq` Prelude.rnf deviceType
`Prelude.seq` Prelude.rnf providerName