{-# 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.DMS.Types.CollectorResponse
-- 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.DMS.Types.CollectorResponse where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import Amazonka.DMS.Types.CollectorHealthCheck
import Amazonka.DMS.Types.InventoryData
import Amazonka.DMS.Types.VersionStatus
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude

-- | Describes a Fleet Advisor collector.
--
-- /See:/ 'newCollectorResponse' smart constructor.
data CollectorResponse = CollectorResponse'
  { CollectorResponse -> Maybe CollectorHealthCheck
collectorHealthCheck :: Prelude.Maybe CollectorHealthCheck,
    -- | The name of the Fleet Advisor collector .
    CollectorResponse -> Maybe Text
collectorName :: Prelude.Maybe Prelude.Text,
    -- | The reference ID of the Fleet Advisor collector.
    CollectorResponse -> Maybe Text
collectorReferencedId :: Prelude.Maybe Prelude.Text,
    -- | The version of your Fleet Advisor collector, in semantic versioning
    -- format, for example @1.0.2@
    CollectorResponse -> Maybe Text
collectorVersion :: Prelude.Maybe Prelude.Text,
    -- | The timestamp when you created the collector, in the following format:
    -- @2022-01-24T19:04:02.596113Z@
    CollectorResponse -> Maybe Text
createdDate :: Prelude.Maybe Prelude.Text,
    -- | A summary description of the Fleet Advisor collector.
    CollectorResponse -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    CollectorResponse -> Maybe InventoryData
inventoryData :: Prelude.Maybe InventoryData,
    -- | The timestamp of the last time the collector received data, in the
    -- following format: @2022-01-24T19:04:02.596113Z@
    CollectorResponse -> Maybe Text
lastDataReceived :: Prelude.Maybe Prelude.Text,
    -- | The timestamp when DMS last modified the collector, in the following
    -- format: @2022-01-24T19:04:02.596113Z@
    CollectorResponse -> Maybe Text
modifiedDate :: Prelude.Maybe Prelude.Text,
    -- | The timestamp when DMS registered the collector, in the following
    -- format: @2022-01-24T19:04:02.596113Z@
    CollectorResponse -> Maybe Text
registeredDate :: Prelude.Maybe Prelude.Text,
    -- | The Amazon S3 bucket that the Fleet Advisor collector uses to store
    -- inventory metadata.
    CollectorResponse -> Maybe Text
s3BucketName :: Prelude.Maybe Prelude.Text,
    -- | The IAM role that grants permissions to access the specified Amazon S3
    -- bucket.
    CollectorResponse -> Maybe Text
serviceAccessRoleArn :: Prelude.Maybe Prelude.Text,
    -- | Whether the collector version is up to date.
    CollectorResponse -> Maybe VersionStatus
versionStatus :: Prelude.Maybe VersionStatus
  }
  deriving (CollectorResponse -> CollectorResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CollectorResponse -> CollectorResponse -> Bool
$c/= :: CollectorResponse -> CollectorResponse -> Bool
== :: CollectorResponse -> CollectorResponse -> Bool
$c== :: CollectorResponse -> CollectorResponse -> Bool
Prelude.Eq, ReadPrec [CollectorResponse]
ReadPrec CollectorResponse
Int -> ReadS CollectorResponse
ReadS [CollectorResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CollectorResponse]
$creadListPrec :: ReadPrec [CollectorResponse]
readPrec :: ReadPrec CollectorResponse
$creadPrec :: ReadPrec CollectorResponse
readList :: ReadS [CollectorResponse]
$creadList :: ReadS [CollectorResponse]
readsPrec :: Int -> ReadS CollectorResponse
$creadsPrec :: Int -> ReadS CollectorResponse
Prelude.Read, Int -> CollectorResponse -> ShowS
[CollectorResponse] -> ShowS
CollectorResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CollectorResponse] -> ShowS
$cshowList :: [CollectorResponse] -> ShowS
show :: CollectorResponse -> String
$cshow :: CollectorResponse -> String
showsPrec :: Int -> CollectorResponse -> ShowS
$cshowsPrec :: Int -> CollectorResponse -> ShowS
Prelude.Show, forall x. Rep CollectorResponse x -> CollectorResponse
forall x. CollectorResponse -> Rep CollectorResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CollectorResponse x -> CollectorResponse
$cfrom :: forall x. CollectorResponse -> Rep CollectorResponse x
Prelude.Generic)

-- |
-- Create a value of 'CollectorResponse' 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:
--
-- 'collectorHealthCheck', 'collectorResponse_collectorHealthCheck' - Undocumented member.
--
-- 'collectorName', 'collectorResponse_collectorName' - The name of the Fleet Advisor collector .
--
-- 'collectorReferencedId', 'collectorResponse_collectorReferencedId' - The reference ID of the Fleet Advisor collector.
--
-- 'collectorVersion', 'collectorResponse_collectorVersion' - The version of your Fleet Advisor collector, in semantic versioning
-- format, for example @1.0.2@
--
-- 'createdDate', 'collectorResponse_createdDate' - The timestamp when you created the collector, in the following format:
-- @2022-01-24T19:04:02.596113Z@
--
-- 'description', 'collectorResponse_description' - A summary description of the Fleet Advisor collector.
--
-- 'inventoryData', 'collectorResponse_inventoryData' - Undocumented member.
--
-- 'lastDataReceived', 'collectorResponse_lastDataReceived' - The timestamp of the last time the collector received data, in the
-- following format: @2022-01-24T19:04:02.596113Z@
--
-- 'modifiedDate', 'collectorResponse_modifiedDate' - The timestamp when DMS last modified the collector, in the following
-- format: @2022-01-24T19:04:02.596113Z@
--
-- 'registeredDate', 'collectorResponse_registeredDate' - The timestamp when DMS registered the collector, in the following
-- format: @2022-01-24T19:04:02.596113Z@
--
-- 's3BucketName', 'collectorResponse_s3BucketName' - The Amazon S3 bucket that the Fleet Advisor collector uses to store
-- inventory metadata.
--
-- 'serviceAccessRoleArn', 'collectorResponse_serviceAccessRoleArn' - The IAM role that grants permissions to access the specified Amazon S3
-- bucket.
--
-- 'versionStatus', 'collectorResponse_versionStatus' - Whether the collector version is up to date.
newCollectorResponse ::
  CollectorResponse
newCollectorResponse :: CollectorResponse
newCollectorResponse =
  CollectorResponse'
    { $sel:collectorHealthCheck:CollectorResponse' :: Maybe CollectorHealthCheck
collectorHealthCheck =
        forall a. Maybe a
Prelude.Nothing,
      $sel:collectorName:CollectorResponse' :: Maybe Text
collectorName = forall a. Maybe a
Prelude.Nothing,
      $sel:collectorReferencedId:CollectorResponse' :: Maybe Text
collectorReferencedId = forall a. Maybe a
Prelude.Nothing,
      $sel:collectorVersion:CollectorResponse' :: Maybe Text
collectorVersion = forall a. Maybe a
Prelude.Nothing,
      $sel:createdDate:CollectorResponse' :: Maybe Text
createdDate = forall a. Maybe a
Prelude.Nothing,
      $sel:description:CollectorResponse' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:inventoryData:CollectorResponse' :: Maybe InventoryData
inventoryData = forall a. Maybe a
Prelude.Nothing,
      $sel:lastDataReceived:CollectorResponse' :: Maybe Text
lastDataReceived = forall a. Maybe a
Prelude.Nothing,
      $sel:modifiedDate:CollectorResponse' :: Maybe Text
modifiedDate = forall a. Maybe a
Prelude.Nothing,
      $sel:registeredDate:CollectorResponse' :: Maybe Text
registeredDate = forall a. Maybe a
Prelude.Nothing,
      $sel:s3BucketName:CollectorResponse' :: Maybe Text
s3BucketName = forall a. Maybe a
Prelude.Nothing,
      $sel:serviceAccessRoleArn:CollectorResponse' :: Maybe Text
serviceAccessRoleArn = forall a. Maybe a
Prelude.Nothing,
      $sel:versionStatus:CollectorResponse' :: Maybe VersionStatus
versionStatus = forall a. Maybe a
Prelude.Nothing
    }

-- | Undocumented member.
collectorResponse_collectorHealthCheck :: Lens.Lens' CollectorResponse (Prelude.Maybe CollectorHealthCheck)
collectorResponse_collectorHealthCheck :: Lens' CollectorResponse (Maybe CollectorHealthCheck)
collectorResponse_collectorHealthCheck = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CollectorResponse' {Maybe CollectorHealthCheck
collectorHealthCheck :: Maybe CollectorHealthCheck
$sel:collectorHealthCheck:CollectorResponse' :: CollectorResponse -> Maybe CollectorHealthCheck
collectorHealthCheck} -> Maybe CollectorHealthCheck
collectorHealthCheck) (\s :: CollectorResponse
s@CollectorResponse' {} Maybe CollectorHealthCheck
a -> CollectorResponse
s {$sel:collectorHealthCheck:CollectorResponse' :: Maybe CollectorHealthCheck
collectorHealthCheck = Maybe CollectorHealthCheck
a} :: CollectorResponse)

-- | The name of the Fleet Advisor collector .
collectorResponse_collectorName :: Lens.Lens' CollectorResponse (Prelude.Maybe Prelude.Text)
collectorResponse_collectorName :: Lens' CollectorResponse (Maybe Text)
collectorResponse_collectorName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CollectorResponse' {Maybe Text
collectorName :: Maybe Text
$sel:collectorName:CollectorResponse' :: CollectorResponse -> Maybe Text
collectorName} -> Maybe Text
collectorName) (\s :: CollectorResponse
s@CollectorResponse' {} Maybe Text
a -> CollectorResponse
s {$sel:collectorName:CollectorResponse' :: Maybe Text
collectorName = Maybe Text
a} :: CollectorResponse)

-- | The reference ID of the Fleet Advisor collector.
collectorResponse_collectorReferencedId :: Lens.Lens' CollectorResponse (Prelude.Maybe Prelude.Text)
collectorResponse_collectorReferencedId :: Lens' CollectorResponse (Maybe Text)
collectorResponse_collectorReferencedId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CollectorResponse' {Maybe Text
collectorReferencedId :: Maybe Text
$sel:collectorReferencedId:CollectorResponse' :: CollectorResponse -> Maybe Text
collectorReferencedId} -> Maybe Text
collectorReferencedId) (\s :: CollectorResponse
s@CollectorResponse' {} Maybe Text
a -> CollectorResponse
s {$sel:collectorReferencedId:CollectorResponse' :: Maybe Text
collectorReferencedId = Maybe Text
a} :: CollectorResponse)

-- | The version of your Fleet Advisor collector, in semantic versioning
-- format, for example @1.0.2@
collectorResponse_collectorVersion :: Lens.Lens' CollectorResponse (Prelude.Maybe Prelude.Text)
collectorResponse_collectorVersion :: Lens' CollectorResponse (Maybe Text)
collectorResponse_collectorVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CollectorResponse' {Maybe Text
collectorVersion :: Maybe Text
$sel:collectorVersion:CollectorResponse' :: CollectorResponse -> Maybe Text
collectorVersion} -> Maybe Text
collectorVersion) (\s :: CollectorResponse
s@CollectorResponse' {} Maybe Text
a -> CollectorResponse
s {$sel:collectorVersion:CollectorResponse' :: Maybe Text
collectorVersion = Maybe Text
a} :: CollectorResponse)

-- | The timestamp when you created the collector, in the following format:
-- @2022-01-24T19:04:02.596113Z@
collectorResponse_createdDate :: Lens.Lens' CollectorResponse (Prelude.Maybe Prelude.Text)
collectorResponse_createdDate :: Lens' CollectorResponse (Maybe Text)
collectorResponse_createdDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CollectorResponse' {Maybe Text
createdDate :: Maybe Text
$sel:createdDate:CollectorResponse' :: CollectorResponse -> Maybe Text
createdDate} -> Maybe Text
createdDate) (\s :: CollectorResponse
s@CollectorResponse' {} Maybe Text
a -> CollectorResponse
s {$sel:createdDate:CollectorResponse' :: Maybe Text
createdDate = Maybe Text
a} :: CollectorResponse)

-- | A summary description of the Fleet Advisor collector.
collectorResponse_description :: Lens.Lens' CollectorResponse (Prelude.Maybe Prelude.Text)
collectorResponse_description :: Lens' CollectorResponse (Maybe Text)
collectorResponse_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CollectorResponse' {Maybe Text
description :: Maybe Text
$sel:description:CollectorResponse' :: CollectorResponse -> Maybe Text
description} -> Maybe Text
description) (\s :: CollectorResponse
s@CollectorResponse' {} Maybe Text
a -> CollectorResponse
s {$sel:description:CollectorResponse' :: Maybe Text
description = Maybe Text
a} :: CollectorResponse)

-- | Undocumented member.
collectorResponse_inventoryData :: Lens.Lens' CollectorResponse (Prelude.Maybe InventoryData)
collectorResponse_inventoryData :: Lens' CollectorResponse (Maybe InventoryData)
collectorResponse_inventoryData = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CollectorResponse' {Maybe InventoryData
inventoryData :: Maybe InventoryData
$sel:inventoryData:CollectorResponse' :: CollectorResponse -> Maybe InventoryData
inventoryData} -> Maybe InventoryData
inventoryData) (\s :: CollectorResponse
s@CollectorResponse' {} Maybe InventoryData
a -> CollectorResponse
s {$sel:inventoryData:CollectorResponse' :: Maybe InventoryData
inventoryData = Maybe InventoryData
a} :: CollectorResponse)

-- | The timestamp of the last time the collector received data, in the
-- following format: @2022-01-24T19:04:02.596113Z@
collectorResponse_lastDataReceived :: Lens.Lens' CollectorResponse (Prelude.Maybe Prelude.Text)
collectorResponse_lastDataReceived :: Lens' CollectorResponse (Maybe Text)
collectorResponse_lastDataReceived = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CollectorResponse' {Maybe Text
lastDataReceived :: Maybe Text
$sel:lastDataReceived:CollectorResponse' :: CollectorResponse -> Maybe Text
lastDataReceived} -> Maybe Text
lastDataReceived) (\s :: CollectorResponse
s@CollectorResponse' {} Maybe Text
a -> CollectorResponse
s {$sel:lastDataReceived:CollectorResponse' :: Maybe Text
lastDataReceived = Maybe Text
a} :: CollectorResponse)

-- | The timestamp when DMS last modified the collector, in the following
-- format: @2022-01-24T19:04:02.596113Z@
collectorResponse_modifiedDate :: Lens.Lens' CollectorResponse (Prelude.Maybe Prelude.Text)
collectorResponse_modifiedDate :: Lens' CollectorResponse (Maybe Text)
collectorResponse_modifiedDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CollectorResponse' {Maybe Text
modifiedDate :: Maybe Text
$sel:modifiedDate:CollectorResponse' :: CollectorResponse -> Maybe Text
modifiedDate} -> Maybe Text
modifiedDate) (\s :: CollectorResponse
s@CollectorResponse' {} Maybe Text
a -> CollectorResponse
s {$sel:modifiedDate:CollectorResponse' :: Maybe Text
modifiedDate = Maybe Text
a} :: CollectorResponse)

-- | The timestamp when DMS registered the collector, in the following
-- format: @2022-01-24T19:04:02.596113Z@
collectorResponse_registeredDate :: Lens.Lens' CollectorResponse (Prelude.Maybe Prelude.Text)
collectorResponse_registeredDate :: Lens' CollectorResponse (Maybe Text)
collectorResponse_registeredDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CollectorResponse' {Maybe Text
registeredDate :: Maybe Text
$sel:registeredDate:CollectorResponse' :: CollectorResponse -> Maybe Text
registeredDate} -> Maybe Text
registeredDate) (\s :: CollectorResponse
s@CollectorResponse' {} Maybe Text
a -> CollectorResponse
s {$sel:registeredDate:CollectorResponse' :: Maybe Text
registeredDate = Maybe Text
a} :: CollectorResponse)

-- | The Amazon S3 bucket that the Fleet Advisor collector uses to store
-- inventory metadata.
collectorResponse_s3BucketName :: Lens.Lens' CollectorResponse (Prelude.Maybe Prelude.Text)
collectorResponse_s3BucketName :: Lens' CollectorResponse (Maybe Text)
collectorResponse_s3BucketName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CollectorResponse' {Maybe Text
s3BucketName :: Maybe Text
$sel:s3BucketName:CollectorResponse' :: CollectorResponse -> Maybe Text
s3BucketName} -> Maybe Text
s3BucketName) (\s :: CollectorResponse
s@CollectorResponse' {} Maybe Text
a -> CollectorResponse
s {$sel:s3BucketName:CollectorResponse' :: Maybe Text
s3BucketName = Maybe Text
a} :: CollectorResponse)

-- | The IAM role that grants permissions to access the specified Amazon S3
-- bucket.
collectorResponse_serviceAccessRoleArn :: Lens.Lens' CollectorResponse (Prelude.Maybe Prelude.Text)
collectorResponse_serviceAccessRoleArn :: Lens' CollectorResponse (Maybe Text)
collectorResponse_serviceAccessRoleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CollectorResponse' {Maybe Text
serviceAccessRoleArn :: Maybe Text
$sel:serviceAccessRoleArn:CollectorResponse' :: CollectorResponse -> Maybe Text
serviceAccessRoleArn} -> Maybe Text
serviceAccessRoleArn) (\s :: CollectorResponse
s@CollectorResponse' {} Maybe Text
a -> CollectorResponse
s {$sel:serviceAccessRoleArn:CollectorResponse' :: Maybe Text
serviceAccessRoleArn = Maybe Text
a} :: CollectorResponse)

-- | Whether the collector version is up to date.
collectorResponse_versionStatus :: Lens.Lens' CollectorResponse (Prelude.Maybe VersionStatus)
collectorResponse_versionStatus :: Lens' CollectorResponse (Maybe VersionStatus)
collectorResponse_versionStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CollectorResponse' {Maybe VersionStatus
versionStatus :: Maybe VersionStatus
$sel:versionStatus:CollectorResponse' :: CollectorResponse -> Maybe VersionStatus
versionStatus} -> Maybe VersionStatus
versionStatus) (\s :: CollectorResponse
s@CollectorResponse' {} Maybe VersionStatus
a -> CollectorResponse
s {$sel:versionStatus:CollectorResponse' :: Maybe VersionStatus
versionStatus = Maybe VersionStatus
a} :: CollectorResponse)

instance Data.FromJSON CollectorResponse where
  parseJSON :: Value -> Parser CollectorResponse
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"CollectorResponse"
      ( \Object
x ->
          Maybe CollectorHealthCheck
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe InventoryData
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe VersionStatus
-> CollectorResponse
CollectorResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CollectorHealthCheck")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CollectorName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CollectorReferencedId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CollectorVersion")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CreatedDate")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Description")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"InventoryData")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"LastDataReceived")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ModifiedDate")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"RegisteredDate")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"S3BucketName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ServiceAccessRoleArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"VersionStatus")
      )

instance Prelude.Hashable CollectorResponse where
  hashWithSalt :: Int -> CollectorResponse -> Int
hashWithSalt Int
_salt CollectorResponse' {Maybe Text
Maybe CollectorHealthCheck
Maybe InventoryData
Maybe VersionStatus
versionStatus :: Maybe VersionStatus
serviceAccessRoleArn :: Maybe Text
s3BucketName :: Maybe Text
registeredDate :: Maybe Text
modifiedDate :: Maybe Text
lastDataReceived :: Maybe Text
inventoryData :: Maybe InventoryData
description :: Maybe Text
createdDate :: Maybe Text
collectorVersion :: Maybe Text
collectorReferencedId :: Maybe Text
collectorName :: Maybe Text
collectorHealthCheck :: Maybe CollectorHealthCheck
$sel:versionStatus:CollectorResponse' :: CollectorResponse -> Maybe VersionStatus
$sel:serviceAccessRoleArn:CollectorResponse' :: CollectorResponse -> Maybe Text
$sel:s3BucketName:CollectorResponse' :: CollectorResponse -> Maybe Text
$sel:registeredDate:CollectorResponse' :: CollectorResponse -> Maybe Text
$sel:modifiedDate:CollectorResponse' :: CollectorResponse -> Maybe Text
$sel:lastDataReceived:CollectorResponse' :: CollectorResponse -> Maybe Text
$sel:inventoryData:CollectorResponse' :: CollectorResponse -> Maybe InventoryData
$sel:description:CollectorResponse' :: CollectorResponse -> Maybe Text
$sel:createdDate:CollectorResponse' :: CollectorResponse -> Maybe Text
$sel:collectorVersion:CollectorResponse' :: CollectorResponse -> Maybe Text
$sel:collectorReferencedId:CollectorResponse' :: CollectorResponse -> Maybe Text
$sel:collectorName:CollectorResponse' :: CollectorResponse -> Maybe Text
$sel:collectorHealthCheck:CollectorResponse' :: CollectorResponse -> Maybe CollectorHealthCheck
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CollectorHealthCheck
collectorHealthCheck
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
collectorName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
collectorReferencedId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
collectorVersion
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
createdDate
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe InventoryData
inventoryData
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
lastDataReceived
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
modifiedDate
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
registeredDate
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
s3BucketName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
serviceAccessRoleArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe VersionStatus
versionStatus

instance Prelude.NFData CollectorResponse where
  rnf :: CollectorResponse -> ()
rnf CollectorResponse' {Maybe Text
Maybe CollectorHealthCheck
Maybe InventoryData
Maybe VersionStatus
versionStatus :: Maybe VersionStatus
serviceAccessRoleArn :: Maybe Text
s3BucketName :: Maybe Text
registeredDate :: Maybe Text
modifiedDate :: Maybe Text
lastDataReceived :: Maybe Text
inventoryData :: Maybe InventoryData
description :: Maybe Text
createdDate :: Maybe Text
collectorVersion :: Maybe Text
collectorReferencedId :: Maybe Text
collectorName :: Maybe Text
collectorHealthCheck :: Maybe CollectorHealthCheck
$sel:versionStatus:CollectorResponse' :: CollectorResponse -> Maybe VersionStatus
$sel:serviceAccessRoleArn:CollectorResponse' :: CollectorResponse -> Maybe Text
$sel:s3BucketName:CollectorResponse' :: CollectorResponse -> Maybe Text
$sel:registeredDate:CollectorResponse' :: CollectorResponse -> Maybe Text
$sel:modifiedDate:CollectorResponse' :: CollectorResponse -> Maybe Text
$sel:lastDataReceived:CollectorResponse' :: CollectorResponse -> Maybe Text
$sel:inventoryData:CollectorResponse' :: CollectorResponse -> Maybe InventoryData
$sel:description:CollectorResponse' :: CollectorResponse -> Maybe Text
$sel:createdDate:CollectorResponse' :: CollectorResponse -> Maybe Text
$sel:collectorVersion:CollectorResponse' :: CollectorResponse -> Maybe Text
$sel:collectorReferencedId:CollectorResponse' :: CollectorResponse -> Maybe Text
$sel:collectorName:CollectorResponse' :: CollectorResponse -> Maybe Text
$sel:collectorHealthCheck:CollectorResponse' :: CollectorResponse -> Maybe CollectorHealthCheck
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe CollectorHealthCheck
collectorHealthCheck
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
collectorName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
collectorReferencedId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
collectorVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
createdDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe InventoryData
inventoryData
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
lastDataReceived
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
modifiedDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
registeredDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
s3BucketName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
serviceAccessRoleArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe VersionStatus
versionStatus