{-# 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.LicenseManager.ListResourceInventory
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Lists resources managed using Systems Manager inventory.
--
-- This operation returns paginated results.
module Amazonka.LicenseManager.ListResourceInventory
  ( -- * Creating a Request
    ListResourceInventory (..),
    newListResourceInventory,

    -- * Request Lenses
    listResourceInventory_filters,
    listResourceInventory_maxResults,
    listResourceInventory_nextToken,

    -- * Destructuring the Response
    ListResourceInventoryResponse (..),
    newListResourceInventoryResponse,

    -- * Response Lenses
    listResourceInventoryResponse_nextToken,
    listResourceInventoryResponse_resourceInventoryList,
    listResourceInventoryResponse_httpStatus,
  )
where

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

-- | /See:/ 'newListResourceInventory' smart constructor.
data ListResourceInventory = ListResourceInventory'
  { -- | Filters to scope the results. The following filters and logical
    -- operators are supported:
    --
    -- -   @account_id@ - The ID of the Amazon Web Services account that owns
    --     the resource. Logical operators are @EQUALS@ | @NOT_EQUALS@.
    --
    -- -   @application_name@ - The name of the application. Logical operators
    --     are @EQUALS@ | @BEGINS_WITH@.
    --
    -- -   @license_included@ - The type of license included. Logical operators
    --     are @EQUALS@ | @NOT_EQUALS@. Possible values are
    --     @sql-server-enterprise@ | @sql-server-standard@ | @sql-server-web@ |
    --     @windows-server-datacenter@.
    --
    -- -   @platform@ - The platform of the resource. Logical operators are
    --     @EQUALS@ | @BEGINS_WITH@.
    --
    -- -   @resource_id@ - The ID of the resource. Logical operators are
    --     @EQUALS@ | @NOT_EQUALS@.
    --
    -- -   @tag:\<key>@ - The key\/value combination of a tag assigned to the
    --     resource. Logical operators are @EQUALS@ (single account) or
    --     @EQUALS@ | @NOT_EQUALS@ (cross account).
    ListResourceInventory -> Maybe [InventoryFilter]
filters :: Prelude.Maybe [InventoryFilter],
    -- | Maximum number of results to return in a single call.
    ListResourceInventory -> Maybe Int
maxResults :: Prelude.Maybe Prelude.Int,
    -- | Token for the next set of results.
    ListResourceInventory -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text
  }
  deriving (ListResourceInventory -> ListResourceInventory -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListResourceInventory -> ListResourceInventory -> Bool
$c/= :: ListResourceInventory -> ListResourceInventory -> Bool
== :: ListResourceInventory -> ListResourceInventory -> Bool
$c== :: ListResourceInventory -> ListResourceInventory -> Bool
Prelude.Eq, ReadPrec [ListResourceInventory]
ReadPrec ListResourceInventory
Int -> ReadS ListResourceInventory
ReadS [ListResourceInventory]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListResourceInventory]
$creadListPrec :: ReadPrec [ListResourceInventory]
readPrec :: ReadPrec ListResourceInventory
$creadPrec :: ReadPrec ListResourceInventory
readList :: ReadS [ListResourceInventory]
$creadList :: ReadS [ListResourceInventory]
readsPrec :: Int -> ReadS ListResourceInventory
$creadsPrec :: Int -> ReadS ListResourceInventory
Prelude.Read, Int -> ListResourceInventory -> ShowS
[ListResourceInventory] -> ShowS
ListResourceInventory -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListResourceInventory] -> ShowS
$cshowList :: [ListResourceInventory] -> ShowS
show :: ListResourceInventory -> String
$cshow :: ListResourceInventory -> String
showsPrec :: Int -> ListResourceInventory -> ShowS
$cshowsPrec :: Int -> ListResourceInventory -> ShowS
Prelude.Show, forall x. Rep ListResourceInventory x -> ListResourceInventory
forall x. ListResourceInventory -> Rep ListResourceInventory x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ListResourceInventory x -> ListResourceInventory
$cfrom :: forall x. ListResourceInventory -> Rep ListResourceInventory x
Prelude.Generic)

-- |
-- Create a value of 'ListResourceInventory' 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:
--
-- 'filters', 'listResourceInventory_filters' - Filters to scope the results. The following filters and logical
-- operators are supported:
--
-- -   @account_id@ - The ID of the Amazon Web Services account that owns
--     the resource. Logical operators are @EQUALS@ | @NOT_EQUALS@.
--
-- -   @application_name@ - The name of the application. Logical operators
--     are @EQUALS@ | @BEGINS_WITH@.
--
-- -   @license_included@ - The type of license included. Logical operators
--     are @EQUALS@ | @NOT_EQUALS@. Possible values are
--     @sql-server-enterprise@ | @sql-server-standard@ | @sql-server-web@ |
--     @windows-server-datacenter@.
--
-- -   @platform@ - The platform of the resource. Logical operators are
--     @EQUALS@ | @BEGINS_WITH@.
--
-- -   @resource_id@ - The ID of the resource. Logical operators are
--     @EQUALS@ | @NOT_EQUALS@.
--
-- -   @tag:\<key>@ - The key\/value combination of a tag assigned to the
--     resource. Logical operators are @EQUALS@ (single account) or
--     @EQUALS@ | @NOT_EQUALS@ (cross account).
--
-- 'maxResults', 'listResourceInventory_maxResults' - Maximum number of results to return in a single call.
--
-- 'nextToken', 'listResourceInventory_nextToken' - Token for the next set of results.
newListResourceInventory ::
  ListResourceInventory
newListResourceInventory :: ListResourceInventory
newListResourceInventory =
  ListResourceInventory'
    { $sel:filters:ListResourceInventory' :: Maybe [InventoryFilter]
filters = forall a. Maybe a
Prelude.Nothing,
      $sel:maxResults:ListResourceInventory' :: Maybe Int
maxResults = forall a. Maybe a
Prelude.Nothing,
      $sel:nextToken:ListResourceInventory' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing
    }

-- | Filters to scope the results. The following filters and logical
-- operators are supported:
--
-- -   @account_id@ - The ID of the Amazon Web Services account that owns
--     the resource. Logical operators are @EQUALS@ | @NOT_EQUALS@.
--
-- -   @application_name@ - The name of the application. Logical operators
--     are @EQUALS@ | @BEGINS_WITH@.
--
-- -   @license_included@ - The type of license included. Logical operators
--     are @EQUALS@ | @NOT_EQUALS@. Possible values are
--     @sql-server-enterprise@ | @sql-server-standard@ | @sql-server-web@ |
--     @windows-server-datacenter@.
--
-- -   @platform@ - The platform of the resource. Logical operators are
--     @EQUALS@ | @BEGINS_WITH@.
--
-- -   @resource_id@ - The ID of the resource. Logical operators are
--     @EQUALS@ | @NOT_EQUALS@.
--
-- -   @tag:\<key>@ - The key\/value combination of a tag assigned to the
--     resource. Logical operators are @EQUALS@ (single account) or
--     @EQUALS@ | @NOT_EQUALS@ (cross account).
listResourceInventory_filters :: Lens.Lens' ListResourceInventory (Prelude.Maybe [InventoryFilter])
listResourceInventory_filters :: Lens' ListResourceInventory (Maybe [InventoryFilter])
listResourceInventory_filters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListResourceInventory' {Maybe [InventoryFilter]
filters :: Maybe [InventoryFilter]
$sel:filters:ListResourceInventory' :: ListResourceInventory -> Maybe [InventoryFilter]
filters} -> Maybe [InventoryFilter]
filters) (\s :: ListResourceInventory
s@ListResourceInventory' {} Maybe [InventoryFilter]
a -> ListResourceInventory
s {$sel:filters:ListResourceInventory' :: Maybe [InventoryFilter]
filters = Maybe [InventoryFilter]
a} :: ListResourceInventory) 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

-- | Maximum number of results to return in a single call.
listResourceInventory_maxResults :: Lens.Lens' ListResourceInventory (Prelude.Maybe Prelude.Int)
listResourceInventory_maxResults :: Lens' ListResourceInventory (Maybe Int)
listResourceInventory_maxResults = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListResourceInventory' {Maybe Int
maxResults :: Maybe Int
$sel:maxResults:ListResourceInventory' :: ListResourceInventory -> Maybe Int
maxResults} -> Maybe Int
maxResults) (\s :: ListResourceInventory
s@ListResourceInventory' {} Maybe Int
a -> ListResourceInventory
s {$sel:maxResults:ListResourceInventory' :: Maybe Int
maxResults = Maybe Int
a} :: ListResourceInventory)

-- | Token for the next set of results.
listResourceInventory_nextToken :: Lens.Lens' ListResourceInventory (Prelude.Maybe Prelude.Text)
listResourceInventory_nextToken :: Lens' ListResourceInventory (Maybe Text)
listResourceInventory_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListResourceInventory' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListResourceInventory' :: ListResourceInventory -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListResourceInventory
s@ListResourceInventory' {} Maybe Text
a -> ListResourceInventory
s {$sel:nextToken:ListResourceInventory' :: Maybe Text
nextToken = Maybe Text
a} :: ListResourceInventory)

instance Core.AWSPager ListResourceInventory where
  page :: ListResourceInventory
-> AWSResponse ListResourceInventory -> Maybe ListResourceInventory
page ListResourceInventory
rq AWSResponse ListResourceInventory
rs
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse ListResourceInventory
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListResourceInventoryResponse (Maybe Text)
listResourceInventoryResponse_nextToken
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | forall a. AWSTruncated a => a -> Bool
Core.stop
        ( AWSResponse ListResourceInventory
rs
            forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListResourceInventoryResponse (Maybe [ResourceInventory])
listResourceInventoryResponse_resourceInventoryList
            forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just
        ) =
        forall a. Maybe a
Prelude.Nothing
    | Bool
Prelude.otherwise =
        forall a. a -> Maybe a
Prelude.Just
          forall a b. (a -> b) -> a -> b
Prelude.$ ListResourceInventory
rq
          forall a b. a -> (a -> b) -> b
Prelude.& Lens' ListResourceInventory (Maybe Text)
listResourceInventory_nextToken
          forall s t a b. ASetter s t a b -> b -> s -> t
Lens..~ AWSResponse ListResourceInventory
rs
          forall s a. s -> Getting (First a) s a -> Maybe a
Lens.^? Lens' ListResourceInventoryResponse (Maybe Text)
listResourceInventoryResponse_nextToken
          forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a b. Prism (Maybe a) (Maybe b) a b
Lens._Just

instance Core.AWSRequest ListResourceInventory where
  type
    AWSResponse ListResourceInventory =
      ListResourceInventoryResponse
  request :: (Service -> Service)
-> ListResourceInventory -> Request ListResourceInventory
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 ListResourceInventory
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse ListResourceInventory)))
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
-> Maybe [ResourceInventory]
-> Int
-> ListResourceInventoryResponse
ListResourceInventoryResponse'
            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.<*> ( Object
x
                            forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"ResourceInventoryList"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
                        )
            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))
      )

instance Prelude.Hashable ListResourceInventory where
  hashWithSalt :: Int -> ListResourceInventory -> Int
hashWithSalt Int
_salt ListResourceInventory' {Maybe Int
Maybe [InventoryFilter]
Maybe Text
nextToken :: Maybe Text
maxResults :: Maybe Int
filters :: Maybe [InventoryFilter]
$sel:nextToken:ListResourceInventory' :: ListResourceInventory -> Maybe Text
$sel:maxResults:ListResourceInventory' :: ListResourceInventory -> Maybe Int
$sel:filters:ListResourceInventory' :: ListResourceInventory -> Maybe [InventoryFilter]
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [InventoryFilter]
filters
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
maxResults
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken

instance Prelude.NFData ListResourceInventory where
  rnf :: ListResourceInventory -> ()
rnf ListResourceInventory' {Maybe Int
Maybe [InventoryFilter]
Maybe Text
nextToken :: Maybe Text
maxResults :: Maybe Int
filters :: Maybe [InventoryFilter]
$sel:nextToken:ListResourceInventory' :: ListResourceInventory -> Maybe Text
$sel:maxResults:ListResourceInventory' :: ListResourceInventory -> Maybe Int
$sel:filters:ListResourceInventory' :: ListResourceInventory -> Maybe [InventoryFilter]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [InventoryFilter]
filters
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
maxResults
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken

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

instance Data.ToJSON ListResourceInventory where
  toJSON :: ListResourceInventory -> Value
toJSON ListResourceInventory' {Maybe Int
Maybe [InventoryFilter]
Maybe Text
nextToken :: Maybe Text
maxResults :: Maybe Int
filters :: Maybe [InventoryFilter]
$sel:nextToken:ListResourceInventory' :: ListResourceInventory -> Maybe Text
$sel:maxResults:ListResourceInventory' :: ListResourceInventory -> Maybe Int
$sel:filters:ListResourceInventory' :: ListResourceInventory -> Maybe [InventoryFilter]
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"Filters" 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 [InventoryFilter]
filters,
            (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 Int
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
          ]
      )

instance Data.ToPath ListResourceInventory where
  toPath :: ListResourceInventory -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

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

-- | /See:/ 'newListResourceInventoryResponse' smart constructor.
data ListResourceInventoryResponse = ListResourceInventoryResponse'
  { -- | Token for the next set of results.
    ListResourceInventoryResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | Information about the resources.
    ListResourceInventoryResponse -> Maybe [ResourceInventory]
resourceInventoryList :: Prelude.Maybe [ResourceInventory],
    -- | The response's http status code.
    ListResourceInventoryResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (ListResourceInventoryResponse
-> ListResourceInventoryResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ListResourceInventoryResponse
-> ListResourceInventoryResponse -> Bool
$c/= :: ListResourceInventoryResponse
-> ListResourceInventoryResponse -> Bool
== :: ListResourceInventoryResponse
-> ListResourceInventoryResponse -> Bool
$c== :: ListResourceInventoryResponse
-> ListResourceInventoryResponse -> Bool
Prelude.Eq, ReadPrec [ListResourceInventoryResponse]
ReadPrec ListResourceInventoryResponse
Int -> ReadS ListResourceInventoryResponse
ReadS [ListResourceInventoryResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ListResourceInventoryResponse]
$creadListPrec :: ReadPrec [ListResourceInventoryResponse]
readPrec :: ReadPrec ListResourceInventoryResponse
$creadPrec :: ReadPrec ListResourceInventoryResponse
readList :: ReadS [ListResourceInventoryResponse]
$creadList :: ReadS [ListResourceInventoryResponse]
readsPrec :: Int -> ReadS ListResourceInventoryResponse
$creadsPrec :: Int -> ReadS ListResourceInventoryResponse
Prelude.Read, Int -> ListResourceInventoryResponse -> ShowS
[ListResourceInventoryResponse] -> ShowS
ListResourceInventoryResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ListResourceInventoryResponse] -> ShowS
$cshowList :: [ListResourceInventoryResponse] -> ShowS
show :: ListResourceInventoryResponse -> String
$cshow :: ListResourceInventoryResponse -> String
showsPrec :: Int -> ListResourceInventoryResponse -> ShowS
$cshowsPrec :: Int -> ListResourceInventoryResponse -> ShowS
Prelude.Show, forall x.
Rep ListResourceInventoryResponse x
-> ListResourceInventoryResponse
forall x.
ListResourceInventoryResponse
-> Rep ListResourceInventoryResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep ListResourceInventoryResponse x
-> ListResourceInventoryResponse
$cfrom :: forall x.
ListResourceInventoryResponse
-> Rep ListResourceInventoryResponse x
Prelude.Generic)

-- |
-- Create a value of 'ListResourceInventoryResponse' 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', 'listResourceInventoryResponse_nextToken' - Token for the next set of results.
--
-- 'resourceInventoryList', 'listResourceInventoryResponse_resourceInventoryList' - Information about the resources.
--
-- 'httpStatus', 'listResourceInventoryResponse_httpStatus' - The response's http status code.
newListResourceInventoryResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  ListResourceInventoryResponse
newListResourceInventoryResponse :: Int -> ListResourceInventoryResponse
newListResourceInventoryResponse Int
pHttpStatus_ =
  ListResourceInventoryResponse'
    { $sel:nextToken:ListResourceInventoryResponse' :: Maybe Text
nextToken =
        forall a. Maybe a
Prelude.Nothing,
      $sel:resourceInventoryList:ListResourceInventoryResponse' :: Maybe [ResourceInventory]
resourceInventoryList = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:ListResourceInventoryResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Token for the next set of results.
listResourceInventoryResponse_nextToken :: Lens.Lens' ListResourceInventoryResponse (Prelude.Maybe Prelude.Text)
listResourceInventoryResponse_nextToken :: Lens' ListResourceInventoryResponse (Maybe Text)
listResourceInventoryResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListResourceInventoryResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:ListResourceInventoryResponse' :: ListResourceInventoryResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: ListResourceInventoryResponse
s@ListResourceInventoryResponse' {} Maybe Text
a -> ListResourceInventoryResponse
s {$sel:nextToken:ListResourceInventoryResponse' :: Maybe Text
nextToken = Maybe Text
a} :: ListResourceInventoryResponse)

-- | Information about the resources.
listResourceInventoryResponse_resourceInventoryList :: Lens.Lens' ListResourceInventoryResponse (Prelude.Maybe [ResourceInventory])
listResourceInventoryResponse_resourceInventoryList :: Lens' ListResourceInventoryResponse (Maybe [ResourceInventory])
listResourceInventoryResponse_resourceInventoryList = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListResourceInventoryResponse' {Maybe [ResourceInventory]
resourceInventoryList :: Maybe [ResourceInventory]
$sel:resourceInventoryList:ListResourceInventoryResponse' :: ListResourceInventoryResponse -> Maybe [ResourceInventory]
resourceInventoryList} -> Maybe [ResourceInventory]
resourceInventoryList) (\s :: ListResourceInventoryResponse
s@ListResourceInventoryResponse' {} Maybe [ResourceInventory]
a -> ListResourceInventoryResponse
s {$sel:resourceInventoryList:ListResourceInventoryResponse' :: Maybe [ResourceInventory]
resourceInventoryList = Maybe [ResourceInventory]
a} :: ListResourceInventoryResponse) 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 response's http status code.
listResourceInventoryResponse_httpStatus :: Lens.Lens' ListResourceInventoryResponse Prelude.Int
listResourceInventoryResponse_httpStatus :: Lens' ListResourceInventoryResponse Int
listResourceInventoryResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ListResourceInventoryResponse' {Int
httpStatus :: Int
$sel:httpStatus:ListResourceInventoryResponse' :: ListResourceInventoryResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: ListResourceInventoryResponse
s@ListResourceInventoryResponse' {} Int
a -> ListResourceInventoryResponse
s {$sel:httpStatus:ListResourceInventoryResponse' :: Int
httpStatus = Int
a} :: ListResourceInventoryResponse)

instance Prelude.NFData ListResourceInventoryResponse where
  rnf :: ListResourceInventoryResponse -> ()
rnf ListResourceInventoryResponse' {Int
Maybe [ResourceInventory]
Maybe Text
httpStatus :: Int
resourceInventoryList :: Maybe [ResourceInventory]
nextToken :: Maybe Text
$sel:httpStatus:ListResourceInventoryResponse' :: ListResourceInventoryResponse -> Int
$sel:resourceInventoryList:ListResourceInventoryResponse' :: ListResourceInventoryResponse -> Maybe [ResourceInventory]
$sel:nextToken:ListResourceInventoryResponse' :: ListResourceInventoryResponse -> 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 Maybe [ResourceInventory]
resourceInventoryList
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus