{-# 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.DMS.CreateFleetAdvisorCollector
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Creates a Fleet Advisor collector using the specified parameters.
module Amazonka.DMS.CreateFleetAdvisorCollector
  ( -- * Creating a Request
    CreateFleetAdvisorCollector (..),
    newCreateFleetAdvisorCollector,

    -- * Request Lenses
    createFleetAdvisorCollector_description,
    createFleetAdvisorCollector_collectorName,
    createFleetAdvisorCollector_serviceAccessRoleArn,
    createFleetAdvisorCollector_s3BucketName,

    -- * Destructuring the Response
    CreateFleetAdvisorCollectorResponse (..),
    newCreateFleetAdvisorCollectorResponse,

    -- * Response Lenses
    createFleetAdvisorCollectorResponse_collectorName,
    createFleetAdvisorCollectorResponse_collectorReferencedId,
    createFleetAdvisorCollectorResponse_description,
    createFleetAdvisorCollectorResponse_s3BucketName,
    createFleetAdvisorCollectorResponse_serviceAccessRoleArn,
    createFleetAdvisorCollectorResponse_httpStatus,
  )
where

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

-- | /See:/ 'newCreateFleetAdvisorCollector' smart constructor.
data CreateFleetAdvisorCollector = CreateFleetAdvisorCollector'
  { -- | A summary description of your Fleet Advisor collector.
    CreateFleetAdvisorCollector -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The name of your Fleet Advisor collector (for example,
    -- @sample-collector@).
    CreateFleetAdvisorCollector -> Text
collectorName :: Prelude.Text,
    -- | The IAM role that grants permissions to access the specified Amazon S3
    -- bucket.
    CreateFleetAdvisorCollector -> Text
serviceAccessRoleArn :: Prelude.Text,
    -- | The Amazon S3 bucket that the Fleet Advisor collector uses to store
    -- inventory metadata.
    CreateFleetAdvisorCollector -> Text
s3BucketName :: Prelude.Text
  }
  deriving (CreateFleetAdvisorCollector -> CreateFleetAdvisorCollector -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateFleetAdvisorCollector -> CreateFleetAdvisorCollector -> Bool
$c/= :: CreateFleetAdvisorCollector -> CreateFleetAdvisorCollector -> Bool
== :: CreateFleetAdvisorCollector -> CreateFleetAdvisorCollector -> Bool
$c== :: CreateFleetAdvisorCollector -> CreateFleetAdvisorCollector -> Bool
Prelude.Eq, ReadPrec [CreateFleetAdvisorCollector]
ReadPrec CreateFleetAdvisorCollector
Int -> ReadS CreateFleetAdvisorCollector
ReadS [CreateFleetAdvisorCollector]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateFleetAdvisorCollector]
$creadListPrec :: ReadPrec [CreateFleetAdvisorCollector]
readPrec :: ReadPrec CreateFleetAdvisorCollector
$creadPrec :: ReadPrec CreateFleetAdvisorCollector
readList :: ReadS [CreateFleetAdvisorCollector]
$creadList :: ReadS [CreateFleetAdvisorCollector]
readsPrec :: Int -> ReadS CreateFleetAdvisorCollector
$creadsPrec :: Int -> ReadS CreateFleetAdvisorCollector
Prelude.Read, Int -> CreateFleetAdvisorCollector -> ShowS
[CreateFleetAdvisorCollector] -> ShowS
CreateFleetAdvisorCollector -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateFleetAdvisorCollector] -> ShowS
$cshowList :: [CreateFleetAdvisorCollector] -> ShowS
show :: CreateFleetAdvisorCollector -> String
$cshow :: CreateFleetAdvisorCollector -> String
showsPrec :: Int -> CreateFleetAdvisorCollector -> ShowS
$cshowsPrec :: Int -> CreateFleetAdvisorCollector -> ShowS
Prelude.Show, forall x.
Rep CreateFleetAdvisorCollector x -> CreateFleetAdvisorCollector
forall x.
CreateFleetAdvisorCollector -> Rep CreateFleetAdvisorCollector x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateFleetAdvisorCollector x -> CreateFleetAdvisorCollector
$cfrom :: forall x.
CreateFleetAdvisorCollector -> Rep CreateFleetAdvisorCollector x
Prelude.Generic)

-- |
-- Create a value of 'CreateFleetAdvisorCollector' 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:
--
-- 'description', 'createFleetAdvisorCollector_description' - A summary description of your Fleet Advisor collector.
--
-- 'collectorName', 'createFleetAdvisorCollector_collectorName' - The name of your Fleet Advisor collector (for example,
-- @sample-collector@).
--
-- 'serviceAccessRoleArn', 'createFleetAdvisorCollector_serviceAccessRoleArn' - The IAM role that grants permissions to access the specified Amazon S3
-- bucket.
--
-- 's3BucketName', 'createFleetAdvisorCollector_s3BucketName' - The Amazon S3 bucket that the Fleet Advisor collector uses to store
-- inventory metadata.
newCreateFleetAdvisorCollector ::
  -- | 'collectorName'
  Prelude.Text ->
  -- | 'serviceAccessRoleArn'
  Prelude.Text ->
  -- | 's3BucketName'
  Prelude.Text ->
  CreateFleetAdvisorCollector
newCreateFleetAdvisorCollector :: Text -> Text -> Text -> CreateFleetAdvisorCollector
newCreateFleetAdvisorCollector
  Text
pCollectorName_
  Text
pServiceAccessRoleArn_
  Text
pS3BucketName_ =
    CreateFleetAdvisorCollector'
      { $sel:description:CreateFleetAdvisorCollector' :: Maybe Text
description =
          forall a. Maybe a
Prelude.Nothing,
        $sel:collectorName:CreateFleetAdvisorCollector' :: Text
collectorName = Text
pCollectorName_,
        $sel:serviceAccessRoleArn:CreateFleetAdvisorCollector' :: Text
serviceAccessRoleArn = Text
pServiceAccessRoleArn_,
        $sel:s3BucketName:CreateFleetAdvisorCollector' :: Text
s3BucketName = Text
pS3BucketName_
      }

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

-- | The name of your Fleet Advisor collector (for example,
-- @sample-collector@).
createFleetAdvisorCollector_collectorName :: Lens.Lens' CreateFleetAdvisorCollector Prelude.Text
createFleetAdvisorCollector_collectorName :: Lens' CreateFleetAdvisorCollector Text
createFleetAdvisorCollector_collectorName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFleetAdvisorCollector' {Text
collectorName :: Text
$sel:collectorName:CreateFleetAdvisorCollector' :: CreateFleetAdvisorCollector -> Text
collectorName} -> Text
collectorName) (\s :: CreateFleetAdvisorCollector
s@CreateFleetAdvisorCollector' {} Text
a -> CreateFleetAdvisorCollector
s {$sel:collectorName:CreateFleetAdvisorCollector' :: Text
collectorName = Text
a} :: CreateFleetAdvisorCollector)

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

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

instance Core.AWSRequest CreateFleetAdvisorCollector where
  type
    AWSResponse CreateFleetAdvisorCollector =
      CreateFleetAdvisorCollectorResponse
  request :: (Service -> Service)
-> CreateFleetAdvisorCollector
-> Request CreateFleetAdvisorCollector
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 CreateFleetAdvisorCollector
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse CreateFleetAdvisorCollector)))
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 Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Int
-> CreateFleetAdvisorCollectorResponse
CreateFleetAdvisorCollectorResponse'
            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
"CollectorName")
            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
"CollectorReferencedId")
            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
"Description")
            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
"S3BucketName")
            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
"ServiceAccessRoleArn")
            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 CreateFleetAdvisorCollector where
  hashWithSalt :: Int -> CreateFleetAdvisorCollector -> Int
hashWithSalt Int
_salt CreateFleetAdvisorCollector' {Maybe Text
Text
s3BucketName :: Text
serviceAccessRoleArn :: Text
collectorName :: Text
description :: Maybe Text
$sel:s3BucketName:CreateFleetAdvisorCollector' :: CreateFleetAdvisorCollector -> Text
$sel:serviceAccessRoleArn:CreateFleetAdvisorCollector' :: CreateFleetAdvisorCollector -> Text
$sel:collectorName:CreateFleetAdvisorCollector' :: CreateFleetAdvisorCollector -> Text
$sel:description:CreateFleetAdvisorCollector' :: CreateFleetAdvisorCollector -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
collectorName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
serviceAccessRoleArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
s3BucketName

instance Prelude.NFData CreateFleetAdvisorCollector where
  rnf :: CreateFleetAdvisorCollector -> ()
rnf CreateFleetAdvisorCollector' {Maybe Text
Text
s3BucketName :: Text
serviceAccessRoleArn :: Text
collectorName :: Text
description :: Maybe Text
$sel:s3BucketName:CreateFleetAdvisorCollector' :: CreateFleetAdvisorCollector -> Text
$sel:serviceAccessRoleArn:CreateFleetAdvisorCollector' :: CreateFleetAdvisorCollector -> Text
$sel:collectorName:CreateFleetAdvisorCollector' :: CreateFleetAdvisorCollector -> Text
$sel:description:CreateFleetAdvisorCollector' :: CreateFleetAdvisorCollector -> Maybe Text
..} =
    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 Text
collectorName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
serviceAccessRoleArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
s3BucketName

instance Data.ToHeaders CreateFleetAdvisorCollector where
  toHeaders :: CreateFleetAdvisorCollector -> 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
"AmazonDMSv20160101.CreateFleetAdvisorCollector" ::
                          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 CreateFleetAdvisorCollector where
  toJSON :: CreateFleetAdvisorCollector -> Value
toJSON CreateFleetAdvisorCollector' {Maybe Text
Text
s3BucketName :: Text
serviceAccessRoleArn :: Text
collectorName :: Text
description :: Maybe Text
$sel:s3BucketName:CreateFleetAdvisorCollector' :: CreateFleetAdvisorCollector -> Text
$sel:serviceAccessRoleArn:CreateFleetAdvisorCollector' :: CreateFleetAdvisorCollector -> Text
$sel:collectorName:CreateFleetAdvisorCollector' :: CreateFleetAdvisorCollector -> Text
$sel:description:CreateFleetAdvisorCollector' :: CreateFleetAdvisorCollector -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"Description" 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
description,
            forall a. a -> Maybe a
Prelude.Just (Key
"CollectorName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
collectorName),
            forall a. a -> Maybe a
Prelude.Just
              ( Key
"ServiceAccessRoleArn"
                  forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
serviceAccessRoleArn
              ),
            forall a. a -> Maybe a
Prelude.Just (Key
"S3BucketName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
s3BucketName)
          ]
      )

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

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

-- | /See:/ 'newCreateFleetAdvisorCollectorResponse' smart constructor.
data CreateFleetAdvisorCollectorResponse = CreateFleetAdvisorCollectorResponse'
  { -- | The name of the new Fleet Advisor collector.
    CreateFleetAdvisorCollectorResponse -> Maybe Text
collectorName :: Prelude.Maybe Prelude.Text,
    -- | The unique ID of the new Fleet Advisor collector, for example:
    -- @22fda70c-40d5-4acf-b233-a495bd8eb7f5@
    CreateFleetAdvisorCollectorResponse -> Maybe Text
collectorReferencedId :: Prelude.Maybe Prelude.Text,
    -- | A summary description of the Fleet Advisor collector.
    CreateFleetAdvisorCollectorResponse -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The Amazon S3 bucket that the collector uses to store inventory
    -- metadata.
    CreateFleetAdvisorCollectorResponse -> Maybe Text
s3BucketName :: Prelude.Maybe Prelude.Text,
    -- | The IAM role that grants permissions to access the specified Amazon S3
    -- bucket.
    CreateFleetAdvisorCollectorResponse -> Maybe Text
serviceAccessRoleArn :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    CreateFleetAdvisorCollectorResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (CreateFleetAdvisorCollectorResponse
-> CreateFleetAdvisorCollectorResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateFleetAdvisorCollectorResponse
-> CreateFleetAdvisorCollectorResponse -> Bool
$c/= :: CreateFleetAdvisorCollectorResponse
-> CreateFleetAdvisorCollectorResponse -> Bool
== :: CreateFleetAdvisorCollectorResponse
-> CreateFleetAdvisorCollectorResponse -> Bool
$c== :: CreateFleetAdvisorCollectorResponse
-> CreateFleetAdvisorCollectorResponse -> Bool
Prelude.Eq, ReadPrec [CreateFleetAdvisorCollectorResponse]
ReadPrec CreateFleetAdvisorCollectorResponse
Int -> ReadS CreateFleetAdvisorCollectorResponse
ReadS [CreateFleetAdvisorCollectorResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateFleetAdvisorCollectorResponse]
$creadListPrec :: ReadPrec [CreateFleetAdvisorCollectorResponse]
readPrec :: ReadPrec CreateFleetAdvisorCollectorResponse
$creadPrec :: ReadPrec CreateFleetAdvisorCollectorResponse
readList :: ReadS [CreateFleetAdvisorCollectorResponse]
$creadList :: ReadS [CreateFleetAdvisorCollectorResponse]
readsPrec :: Int -> ReadS CreateFleetAdvisorCollectorResponse
$creadsPrec :: Int -> ReadS CreateFleetAdvisorCollectorResponse
Prelude.Read, Int -> CreateFleetAdvisorCollectorResponse -> ShowS
[CreateFleetAdvisorCollectorResponse] -> ShowS
CreateFleetAdvisorCollectorResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateFleetAdvisorCollectorResponse] -> ShowS
$cshowList :: [CreateFleetAdvisorCollectorResponse] -> ShowS
show :: CreateFleetAdvisorCollectorResponse -> String
$cshow :: CreateFleetAdvisorCollectorResponse -> String
showsPrec :: Int -> CreateFleetAdvisorCollectorResponse -> ShowS
$cshowsPrec :: Int -> CreateFleetAdvisorCollectorResponse -> ShowS
Prelude.Show, forall x.
Rep CreateFleetAdvisorCollectorResponse x
-> CreateFleetAdvisorCollectorResponse
forall x.
CreateFleetAdvisorCollectorResponse
-> Rep CreateFleetAdvisorCollectorResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateFleetAdvisorCollectorResponse x
-> CreateFleetAdvisorCollectorResponse
$cfrom :: forall x.
CreateFleetAdvisorCollectorResponse
-> Rep CreateFleetAdvisorCollectorResponse x
Prelude.Generic)

-- |
-- Create a value of 'CreateFleetAdvisorCollectorResponse' 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:
--
-- 'collectorName', 'createFleetAdvisorCollectorResponse_collectorName' - The name of the new Fleet Advisor collector.
--
-- 'collectorReferencedId', 'createFleetAdvisorCollectorResponse_collectorReferencedId' - The unique ID of the new Fleet Advisor collector, for example:
-- @22fda70c-40d5-4acf-b233-a495bd8eb7f5@
--
-- 'description', 'createFleetAdvisorCollectorResponse_description' - A summary description of the Fleet Advisor collector.
--
-- 's3BucketName', 'createFleetAdvisorCollectorResponse_s3BucketName' - The Amazon S3 bucket that the collector uses to store inventory
-- metadata.
--
-- 'serviceAccessRoleArn', 'createFleetAdvisorCollectorResponse_serviceAccessRoleArn' - The IAM role that grants permissions to access the specified Amazon S3
-- bucket.
--
-- 'httpStatus', 'createFleetAdvisorCollectorResponse_httpStatus' - The response's http status code.
newCreateFleetAdvisorCollectorResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  CreateFleetAdvisorCollectorResponse
newCreateFleetAdvisorCollectorResponse :: Int -> CreateFleetAdvisorCollectorResponse
newCreateFleetAdvisorCollectorResponse Int
pHttpStatus_ =
  CreateFleetAdvisorCollectorResponse'
    { $sel:collectorName:CreateFleetAdvisorCollectorResponse' :: Maybe Text
collectorName =
        forall a. Maybe a
Prelude.Nothing,
      $sel:collectorReferencedId:CreateFleetAdvisorCollectorResponse' :: Maybe Text
collectorReferencedId =
        forall a. Maybe a
Prelude.Nothing,
      $sel:description:CreateFleetAdvisorCollectorResponse' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:s3BucketName:CreateFleetAdvisorCollectorResponse' :: Maybe Text
s3BucketName = forall a. Maybe a
Prelude.Nothing,
      $sel:serviceAccessRoleArn:CreateFleetAdvisorCollectorResponse' :: Maybe Text
serviceAccessRoleArn = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:CreateFleetAdvisorCollectorResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

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

-- | The unique ID of the new Fleet Advisor collector, for example:
-- @22fda70c-40d5-4acf-b233-a495bd8eb7f5@
createFleetAdvisorCollectorResponse_collectorReferencedId :: Lens.Lens' CreateFleetAdvisorCollectorResponse (Prelude.Maybe Prelude.Text)
createFleetAdvisorCollectorResponse_collectorReferencedId :: Lens' CreateFleetAdvisorCollectorResponse (Maybe Text)
createFleetAdvisorCollectorResponse_collectorReferencedId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFleetAdvisorCollectorResponse' {Maybe Text
collectorReferencedId :: Maybe Text
$sel:collectorReferencedId:CreateFleetAdvisorCollectorResponse' :: CreateFleetAdvisorCollectorResponse -> Maybe Text
collectorReferencedId} -> Maybe Text
collectorReferencedId) (\s :: CreateFleetAdvisorCollectorResponse
s@CreateFleetAdvisorCollectorResponse' {} Maybe Text
a -> CreateFleetAdvisorCollectorResponse
s {$sel:collectorReferencedId:CreateFleetAdvisorCollectorResponse' :: Maybe Text
collectorReferencedId = Maybe Text
a} :: CreateFleetAdvisorCollectorResponse)

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

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

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

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

instance
  Prelude.NFData
    CreateFleetAdvisorCollectorResponse
  where
  rnf :: CreateFleetAdvisorCollectorResponse -> ()
rnf CreateFleetAdvisorCollectorResponse' {Int
Maybe Text
httpStatus :: Int
serviceAccessRoleArn :: Maybe Text
s3BucketName :: Maybe Text
description :: Maybe Text
collectorReferencedId :: Maybe Text
collectorName :: Maybe Text
$sel:httpStatus:CreateFleetAdvisorCollectorResponse' :: CreateFleetAdvisorCollectorResponse -> Int
$sel:serviceAccessRoleArn:CreateFleetAdvisorCollectorResponse' :: CreateFleetAdvisorCollectorResponse -> Maybe Text
$sel:s3BucketName:CreateFleetAdvisorCollectorResponse' :: CreateFleetAdvisorCollectorResponse -> Maybe Text
$sel:description:CreateFleetAdvisorCollectorResponse' :: CreateFleetAdvisorCollectorResponse -> Maybe Text
$sel:collectorReferencedId:CreateFleetAdvisorCollectorResponse' :: CreateFleetAdvisorCollectorResponse -> Maybe Text
$sel:collectorName:CreateFleetAdvisorCollectorResponse' :: CreateFleetAdvisorCollectorResponse -> Maybe Text
..} =
    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
description
      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 Int
httpStatus