{-# 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.Glue.CreateCrawler
-- 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 new crawler with specified targets, role, configuration, and
-- optional schedule. At least one crawl target must be specified, in the
-- @s3Targets@ field, the @jdbcTargets@ field, or the @DynamoDBTargets@
-- field.
module Amazonka.Glue.CreateCrawler
  ( -- * Creating a Request
    CreateCrawler (..),
    newCreateCrawler,

    -- * Request Lenses
    createCrawler_classifiers,
    createCrawler_configuration,
    createCrawler_crawlerSecurityConfiguration,
    createCrawler_databaseName,
    createCrawler_description,
    createCrawler_lakeFormationConfiguration,
    createCrawler_lineageConfiguration,
    createCrawler_recrawlPolicy,
    createCrawler_schedule,
    createCrawler_schemaChangePolicy,
    createCrawler_tablePrefix,
    createCrawler_tags,
    createCrawler_name,
    createCrawler_role,
    createCrawler_targets,

    -- * Destructuring the Response
    CreateCrawlerResponse (..),
    newCreateCrawlerResponse,

    -- * Response Lenses
    createCrawlerResponse_httpStatus,
  )
where

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

-- | /See:/ 'newCreateCrawler' smart constructor.
data CreateCrawler = CreateCrawler'
  { -- | A list of custom classifiers that the user has registered. By default,
    -- all built-in classifiers are included in a crawl, but these custom
    -- classifiers always override the default classifiers for a given
    -- classification.
    CreateCrawler -> Maybe [Text]
classifiers :: Prelude.Maybe [Prelude.Text],
    -- | Crawler configuration information. This versioned JSON string allows
    -- users to specify aspects of a crawler\'s behavior. For more information,
    -- see
    -- <https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html Setting crawler configuration options>.
    CreateCrawler -> Maybe Text
configuration :: Prelude.Maybe Prelude.Text,
    -- | The name of the @SecurityConfiguration@ structure to be used by this
    -- crawler.
    CreateCrawler -> Maybe Text
crawlerSecurityConfiguration :: Prelude.Maybe Prelude.Text,
    -- | The Glue database where results are written, such as:
    -- @arn:aws:daylight:us-east-1::database\/sometable\/*@.
    CreateCrawler -> Maybe Text
databaseName :: Prelude.Maybe Prelude.Text,
    -- | A description of the new crawler.
    CreateCrawler -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | Specifies Lake Formation configuration settings for the crawler.
    CreateCrawler -> Maybe LakeFormationConfiguration
lakeFormationConfiguration :: Prelude.Maybe LakeFormationConfiguration,
    -- | Specifies data lineage configuration settings for the crawler.
    CreateCrawler -> Maybe LineageConfiguration
lineageConfiguration :: Prelude.Maybe LineageConfiguration,
    -- | A policy that specifies whether to crawl the entire dataset again, or to
    -- crawl only folders that were added since the last crawler run.
    CreateCrawler -> Maybe RecrawlPolicy
recrawlPolicy :: Prelude.Maybe RecrawlPolicy,
    -- | A @cron@ expression used to specify the schedule (see
    -- <https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html Time-Based Schedules for Jobs and Crawlers>.
    -- For example, to run something every day at 12:15 UTC, you would specify:
    -- @cron(15 12 * * ? *)@.
    CreateCrawler -> Maybe Text
schedule :: Prelude.Maybe Prelude.Text,
    -- | The policy for the crawler\'s update and deletion behavior.
    CreateCrawler -> Maybe SchemaChangePolicy
schemaChangePolicy :: Prelude.Maybe SchemaChangePolicy,
    -- | The table prefix used for catalog tables that are created.
    CreateCrawler -> Maybe Text
tablePrefix :: Prelude.Maybe Prelude.Text,
    -- | The tags to use with this crawler request. You may use tags to limit
    -- access to the crawler. For more information about tags in Glue, see
    -- <https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html Amazon Web Services Tags in Glue>
    -- in the developer guide.
    CreateCrawler -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | Name of the new crawler.
    CreateCrawler -> Text
name :: Prelude.Text,
    -- | The IAM role or Amazon Resource Name (ARN) of an IAM role used by the
    -- new crawler to access customer resources.
    CreateCrawler -> Text
role' :: Prelude.Text,
    -- | A list of collection of targets to crawl.
    CreateCrawler -> CrawlerTargets
targets :: CrawlerTargets
  }
  deriving (CreateCrawler -> CreateCrawler -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateCrawler -> CreateCrawler -> Bool
$c/= :: CreateCrawler -> CreateCrawler -> Bool
== :: CreateCrawler -> CreateCrawler -> Bool
$c== :: CreateCrawler -> CreateCrawler -> Bool
Prelude.Eq, ReadPrec [CreateCrawler]
ReadPrec CreateCrawler
Int -> ReadS CreateCrawler
ReadS [CreateCrawler]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateCrawler]
$creadListPrec :: ReadPrec [CreateCrawler]
readPrec :: ReadPrec CreateCrawler
$creadPrec :: ReadPrec CreateCrawler
readList :: ReadS [CreateCrawler]
$creadList :: ReadS [CreateCrawler]
readsPrec :: Int -> ReadS CreateCrawler
$creadsPrec :: Int -> ReadS CreateCrawler
Prelude.Read, Int -> CreateCrawler -> ShowS
[CreateCrawler] -> ShowS
CreateCrawler -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateCrawler] -> ShowS
$cshowList :: [CreateCrawler] -> ShowS
show :: CreateCrawler -> String
$cshow :: CreateCrawler -> String
showsPrec :: Int -> CreateCrawler -> ShowS
$cshowsPrec :: Int -> CreateCrawler -> ShowS
Prelude.Show, forall x. Rep CreateCrawler x -> CreateCrawler
forall x. CreateCrawler -> Rep CreateCrawler x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateCrawler x -> CreateCrawler
$cfrom :: forall x. CreateCrawler -> Rep CreateCrawler x
Prelude.Generic)

-- |
-- Create a value of 'CreateCrawler' 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:
--
-- 'classifiers', 'createCrawler_classifiers' - A list of custom classifiers that the user has registered. By default,
-- all built-in classifiers are included in a crawl, but these custom
-- classifiers always override the default classifiers for a given
-- classification.
--
-- 'configuration', 'createCrawler_configuration' - Crawler configuration information. This versioned JSON string allows
-- users to specify aspects of a crawler\'s behavior. For more information,
-- see
-- <https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html Setting crawler configuration options>.
--
-- 'crawlerSecurityConfiguration', 'createCrawler_crawlerSecurityConfiguration' - The name of the @SecurityConfiguration@ structure to be used by this
-- crawler.
--
-- 'databaseName', 'createCrawler_databaseName' - The Glue database where results are written, such as:
-- @arn:aws:daylight:us-east-1::database\/sometable\/*@.
--
-- 'description', 'createCrawler_description' - A description of the new crawler.
--
-- 'lakeFormationConfiguration', 'createCrawler_lakeFormationConfiguration' - Specifies Lake Formation configuration settings for the crawler.
--
-- 'lineageConfiguration', 'createCrawler_lineageConfiguration' - Specifies data lineage configuration settings for the crawler.
--
-- 'recrawlPolicy', 'createCrawler_recrawlPolicy' - A policy that specifies whether to crawl the entire dataset again, or to
-- crawl only folders that were added since the last crawler run.
--
-- 'schedule', 'createCrawler_schedule' - A @cron@ expression used to specify the schedule (see
-- <https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html Time-Based Schedules for Jobs and Crawlers>.
-- For example, to run something every day at 12:15 UTC, you would specify:
-- @cron(15 12 * * ? *)@.
--
-- 'schemaChangePolicy', 'createCrawler_schemaChangePolicy' - The policy for the crawler\'s update and deletion behavior.
--
-- 'tablePrefix', 'createCrawler_tablePrefix' - The table prefix used for catalog tables that are created.
--
-- 'tags', 'createCrawler_tags' - The tags to use with this crawler request. You may use tags to limit
-- access to the crawler. For more information about tags in Glue, see
-- <https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html Amazon Web Services Tags in Glue>
-- in the developer guide.
--
-- 'name', 'createCrawler_name' - Name of the new crawler.
--
-- 'role'', 'createCrawler_role' - The IAM role or Amazon Resource Name (ARN) of an IAM role used by the
-- new crawler to access customer resources.
--
-- 'targets', 'createCrawler_targets' - A list of collection of targets to crawl.
newCreateCrawler ::
  -- | 'name'
  Prelude.Text ->
  -- | 'role''
  Prelude.Text ->
  -- | 'targets'
  CrawlerTargets ->
  CreateCrawler
newCreateCrawler :: Text -> Text -> CrawlerTargets -> CreateCrawler
newCreateCrawler Text
pName_ Text
pRole_ CrawlerTargets
pTargets_ =
  CreateCrawler'
    { $sel:classifiers:CreateCrawler' :: Maybe [Text]
classifiers = forall a. Maybe a
Prelude.Nothing,
      $sel:configuration:CreateCrawler' :: Maybe Text
configuration = forall a. Maybe a
Prelude.Nothing,
      $sel:crawlerSecurityConfiguration:CreateCrawler' :: Maybe Text
crawlerSecurityConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:databaseName:CreateCrawler' :: Maybe Text
databaseName = forall a. Maybe a
Prelude.Nothing,
      $sel:description:CreateCrawler' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:lakeFormationConfiguration:CreateCrawler' :: Maybe LakeFormationConfiguration
lakeFormationConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:lineageConfiguration:CreateCrawler' :: Maybe LineageConfiguration
lineageConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:recrawlPolicy:CreateCrawler' :: Maybe RecrawlPolicy
recrawlPolicy = forall a. Maybe a
Prelude.Nothing,
      $sel:schedule:CreateCrawler' :: Maybe Text
schedule = forall a. Maybe a
Prelude.Nothing,
      $sel:schemaChangePolicy:CreateCrawler' :: Maybe SchemaChangePolicy
schemaChangePolicy = forall a. Maybe a
Prelude.Nothing,
      $sel:tablePrefix:CreateCrawler' :: Maybe Text
tablePrefix = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:CreateCrawler' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:name:CreateCrawler' :: Text
name = Text
pName_,
      $sel:role':CreateCrawler' :: Text
role' = Text
pRole_,
      $sel:targets:CreateCrawler' :: CrawlerTargets
targets = CrawlerTargets
pTargets_
    }

-- | A list of custom classifiers that the user has registered. By default,
-- all built-in classifiers are included in a crawl, but these custom
-- classifiers always override the default classifiers for a given
-- classification.
createCrawler_classifiers :: Lens.Lens' CreateCrawler (Prelude.Maybe [Prelude.Text])
createCrawler_classifiers :: Lens' CreateCrawler (Maybe [Text])
createCrawler_classifiers = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateCrawler' {Maybe [Text]
classifiers :: Maybe [Text]
$sel:classifiers:CreateCrawler' :: CreateCrawler -> Maybe [Text]
classifiers} -> Maybe [Text]
classifiers) (\s :: CreateCrawler
s@CreateCrawler' {} Maybe [Text]
a -> CreateCrawler
s {$sel:classifiers:CreateCrawler' :: Maybe [Text]
classifiers = Maybe [Text]
a} :: CreateCrawler) 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

-- | Crawler configuration information. This versioned JSON string allows
-- users to specify aspects of a crawler\'s behavior. For more information,
-- see
-- <https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html Setting crawler configuration options>.
createCrawler_configuration :: Lens.Lens' CreateCrawler (Prelude.Maybe Prelude.Text)
createCrawler_configuration :: Lens' CreateCrawler (Maybe Text)
createCrawler_configuration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateCrawler' {Maybe Text
configuration :: Maybe Text
$sel:configuration:CreateCrawler' :: CreateCrawler -> Maybe Text
configuration} -> Maybe Text
configuration) (\s :: CreateCrawler
s@CreateCrawler' {} Maybe Text
a -> CreateCrawler
s {$sel:configuration:CreateCrawler' :: Maybe Text
configuration = Maybe Text
a} :: CreateCrawler)

-- | The name of the @SecurityConfiguration@ structure to be used by this
-- crawler.
createCrawler_crawlerSecurityConfiguration :: Lens.Lens' CreateCrawler (Prelude.Maybe Prelude.Text)
createCrawler_crawlerSecurityConfiguration :: Lens' CreateCrawler (Maybe Text)
createCrawler_crawlerSecurityConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateCrawler' {Maybe Text
crawlerSecurityConfiguration :: Maybe Text
$sel:crawlerSecurityConfiguration:CreateCrawler' :: CreateCrawler -> Maybe Text
crawlerSecurityConfiguration} -> Maybe Text
crawlerSecurityConfiguration) (\s :: CreateCrawler
s@CreateCrawler' {} Maybe Text
a -> CreateCrawler
s {$sel:crawlerSecurityConfiguration:CreateCrawler' :: Maybe Text
crawlerSecurityConfiguration = Maybe Text
a} :: CreateCrawler)

-- | The Glue database where results are written, such as:
-- @arn:aws:daylight:us-east-1::database\/sometable\/*@.
createCrawler_databaseName :: Lens.Lens' CreateCrawler (Prelude.Maybe Prelude.Text)
createCrawler_databaseName :: Lens' CreateCrawler (Maybe Text)
createCrawler_databaseName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateCrawler' {Maybe Text
databaseName :: Maybe Text
$sel:databaseName:CreateCrawler' :: CreateCrawler -> Maybe Text
databaseName} -> Maybe Text
databaseName) (\s :: CreateCrawler
s@CreateCrawler' {} Maybe Text
a -> CreateCrawler
s {$sel:databaseName:CreateCrawler' :: Maybe Text
databaseName = Maybe Text
a} :: CreateCrawler)

-- | A description of the new crawler.
createCrawler_description :: Lens.Lens' CreateCrawler (Prelude.Maybe Prelude.Text)
createCrawler_description :: Lens' CreateCrawler (Maybe Text)
createCrawler_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateCrawler' {Maybe Text
description :: Maybe Text
$sel:description:CreateCrawler' :: CreateCrawler -> Maybe Text
description} -> Maybe Text
description) (\s :: CreateCrawler
s@CreateCrawler' {} Maybe Text
a -> CreateCrawler
s {$sel:description:CreateCrawler' :: Maybe Text
description = Maybe Text
a} :: CreateCrawler)

-- | Specifies Lake Formation configuration settings for the crawler.
createCrawler_lakeFormationConfiguration :: Lens.Lens' CreateCrawler (Prelude.Maybe LakeFormationConfiguration)
createCrawler_lakeFormationConfiguration :: Lens' CreateCrawler (Maybe LakeFormationConfiguration)
createCrawler_lakeFormationConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateCrawler' {Maybe LakeFormationConfiguration
lakeFormationConfiguration :: Maybe LakeFormationConfiguration
$sel:lakeFormationConfiguration:CreateCrawler' :: CreateCrawler -> Maybe LakeFormationConfiguration
lakeFormationConfiguration} -> Maybe LakeFormationConfiguration
lakeFormationConfiguration) (\s :: CreateCrawler
s@CreateCrawler' {} Maybe LakeFormationConfiguration
a -> CreateCrawler
s {$sel:lakeFormationConfiguration:CreateCrawler' :: Maybe LakeFormationConfiguration
lakeFormationConfiguration = Maybe LakeFormationConfiguration
a} :: CreateCrawler)

-- | Specifies data lineage configuration settings for the crawler.
createCrawler_lineageConfiguration :: Lens.Lens' CreateCrawler (Prelude.Maybe LineageConfiguration)
createCrawler_lineageConfiguration :: Lens' CreateCrawler (Maybe LineageConfiguration)
createCrawler_lineageConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateCrawler' {Maybe LineageConfiguration
lineageConfiguration :: Maybe LineageConfiguration
$sel:lineageConfiguration:CreateCrawler' :: CreateCrawler -> Maybe LineageConfiguration
lineageConfiguration} -> Maybe LineageConfiguration
lineageConfiguration) (\s :: CreateCrawler
s@CreateCrawler' {} Maybe LineageConfiguration
a -> CreateCrawler
s {$sel:lineageConfiguration:CreateCrawler' :: Maybe LineageConfiguration
lineageConfiguration = Maybe LineageConfiguration
a} :: CreateCrawler)

-- | A policy that specifies whether to crawl the entire dataset again, or to
-- crawl only folders that were added since the last crawler run.
createCrawler_recrawlPolicy :: Lens.Lens' CreateCrawler (Prelude.Maybe RecrawlPolicy)
createCrawler_recrawlPolicy :: Lens' CreateCrawler (Maybe RecrawlPolicy)
createCrawler_recrawlPolicy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateCrawler' {Maybe RecrawlPolicy
recrawlPolicy :: Maybe RecrawlPolicy
$sel:recrawlPolicy:CreateCrawler' :: CreateCrawler -> Maybe RecrawlPolicy
recrawlPolicy} -> Maybe RecrawlPolicy
recrawlPolicy) (\s :: CreateCrawler
s@CreateCrawler' {} Maybe RecrawlPolicy
a -> CreateCrawler
s {$sel:recrawlPolicy:CreateCrawler' :: Maybe RecrawlPolicy
recrawlPolicy = Maybe RecrawlPolicy
a} :: CreateCrawler)

-- | A @cron@ expression used to specify the schedule (see
-- <https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html Time-Based Schedules for Jobs and Crawlers>.
-- For example, to run something every day at 12:15 UTC, you would specify:
-- @cron(15 12 * * ? *)@.
createCrawler_schedule :: Lens.Lens' CreateCrawler (Prelude.Maybe Prelude.Text)
createCrawler_schedule :: Lens' CreateCrawler (Maybe Text)
createCrawler_schedule = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateCrawler' {Maybe Text
schedule :: Maybe Text
$sel:schedule:CreateCrawler' :: CreateCrawler -> Maybe Text
schedule} -> Maybe Text
schedule) (\s :: CreateCrawler
s@CreateCrawler' {} Maybe Text
a -> CreateCrawler
s {$sel:schedule:CreateCrawler' :: Maybe Text
schedule = Maybe Text
a} :: CreateCrawler)

-- | The policy for the crawler\'s update and deletion behavior.
createCrawler_schemaChangePolicy :: Lens.Lens' CreateCrawler (Prelude.Maybe SchemaChangePolicy)
createCrawler_schemaChangePolicy :: Lens' CreateCrawler (Maybe SchemaChangePolicy)
createCrawler_schemaChangePolicy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateCrawler' {Maybe SchemaChangePolicy
schemaChangePolicy :: Maybe SchemaChangePolicy
$sel:schemaChangePolicy:CreateCrawler' :: CreateCrawler -> Maybe SchemaChangePolicy
schemaChangePolicy} -> Maybe SchemaChangePolicy
schemaChangePolicy) (\s :: CreateCrawler
s@CreateCrawler' {} Maybe SchemaChangePolicy
a -> CreateCrawler
s {$sel:schemaChangePolicy:CreateCrawler' :: Maybe SchemaChangePolicy
schemaChangePolicy = Maybe SchemaChangePolicy
a} :: CreateCrawler)

-- | The table prefix used for catalog tables that are created.
createCrawler_tablePrefix :: Lens.Lens' CreateCrawler (Prelude.Maybe Prelude.Text)
createCrawler_tablePrefix :: Lens' CreateCrawler (Maybe Text)
createCrawler_tablePrefix = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateCrawler' {Maybe Text
tablePrefix :: Maybe Text
$sel:tablePrefix:CreateCrawler' :: CreateCrawler -> Maybe Text
tablePrefix} -> Maybe Text
tablePrefix) (\s :: CreateCrawler
s@CreateCrawler' {} Maybe Text
a -> CreateCrawler
s {$sel:tablePrefix:CreateCrawler' :: Maybe Text
tablePrefix = Maybe Text
a} :: CreateCrawler)

-- | The tags to use with this crawler request. You may use tags to limit
-- access to the crawler. For more information about tags in Glue, see
-- <https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html Amazon Web Services Tags in Glue>
-- in the developer guide.
createCrawler_tags :: Lens.Lens' CreateCrawler (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
createCrawler_tags :: Lens' CreateCrawler (Maybe (HashMap Text Text))
createCrawler_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateCrawler' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:CreateCrawler' :: CreateCrawler -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: CreateCrawler
s@CreateCrawler' {} Maybe (HashMap Text Text)
a -> CreateCrawler
s {$sel:tags:CreateCrawler' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: CreateCrawler) 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

-- | Name of the new crawler.
createCrawler_name :: Lens.Lens' CreateCrawler Prelude.Text
createCrawler_name :: Lens' CreateCrawler Text
createCrawler_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateCrawler' {Text
name :: Text
$sel:name:CreateCrawler' :: CreateCrawler -> Text
name} -> Text
name) (\s :: CreateCrawler
s@CreateCrawler' {} Text
a -> CreateCrawler
s {$sel:name:CreateCrawler' :: Text
name = Text
a} :: CreateCrawler)

-- | The IAM role or Amazon Resource Name (ARN) of an IAM role used by the
-- new crawler to access customer resources.
createCrawler_role :: Lens.Lens' CreateCrawler Prelude.Text
createCrawler_role :: Lens' CreateCrawler Text
createCrawler_role = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateCrawler' {Text
role' :: Text
$sel:role':CreateCrawler' :: CreateCrawler -> Text
role'} -> Text
role') (\s :: CreateCrawler
s@CreateCrawler' {} Text
a -> CreateCrawler
s {$sel:role':CreateCrawler' :: Text
role' = Text
a} :: CreateCrawler)

-- | A list of collection of targets to crawl.
createCrawler_targets :: Lens.Lens' CreateCrawler CrawlerTargets
createCrawler_targets :: Lens' CreateCrawler CrawlerTargets
createCrawler_targets = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateCrawler' {CrawlerTargets
targets :: CrawlerTargets
$sel:targets:CreateCrawler' :: CreateCrawler -> CrawlerTargets
targets} -> CrawlerTargets
targets) (\s :: CreateCrawler
s@CreateCrawler' {} CrawlerTargets
a -> CreateCrawler
s {$sel:targets:CreateCrawler' :: CrawlerTargets
targets = CrawlerTargets
a} :: CreateCrawler)

instance Core.AWSRequest CreateCrawler where
  type
    AWSResponse CreateCrawler =
      CreateCrawlerResponse
  request :: (Service -> Service) -> CreateCrawler -> Request CreateCrawler
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 CreateCrawler
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateCrawler)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> () -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveEmpty
      ( \Int
s ResponseHeaders
h ()
x ->
          Int -> CreateCrawlerResponse
CreateCrawlerResponse'
            forall (f :: * -> *) a b. Functor 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 CreateCrawler where
  hashWithSalt :: Int -> CreateCrawler -> Int
hashWithSalt Int
_salt CreateCrawler' {Maybe [Text]
Maybe Text
Maybe (HashMap Text Text)
Maybe LakeFormationConfiguration
Maybe LineageConfiguration
Maybe RecrawlPolicy
Maybe SchemaChangePolicy
Text
CrawlerTargets
targets :: CrawlerTargets
role' :: Text
name :: Text
tags :: Maybe (HashMap Text Text)
tablePrefix :: Maybe Text
schemaChangePolicy :: Maybe SchemaChangePolicy
schedule :: Maybe Text
recrawlPolicy :: Maybe RecrawlPolicy
lineageConfiguration :: Maybe LineageConfiguration
lakeFormationConfiguration :: Maybe LakeFormationConfiguration
description :: Maybe Text
databaseName :: Maybe Text
crawlerSecurityConfiguration :: Maybe Text
configuration :: Maybe Text
classifiers :: Maybe [Text]
$sel:targets:CreateCrawler' :: CreateCrawler -> CrawlerTargets
$sel:role':CreateCrawler' :: CreateCrawler -> Text
$sel:name:CreateCrawler' :: CreateCrawler -> Text
$sel:tags:CreateCrawler' :: CreateCrawler -> Maybe (HashMap Text Text)
$sel:tablePrefix:CreateCrawler' :: CreateCrawler -> Maybe Text
$sel:schemaChangePolicy:CreateCrawler' :: CreateCrawler -> Maybe SchemaChangePolicy
$sel:schedule:CreateCrawler' :: CreateCrawler -> Maybe Text
$sel:recrawlPolicy:CreateCrawler' :: CreateCrawler -> Maybe RecrawlPolicy
$sel:lineageConfiguration:CreateCrawler' :: CreateCrawler -> Maybe LineageConfiguration
$sel:lakeFormationConfiguration:CreateCrawler' :: CreateCrawler -> Maybe LakeFormationConfiguration
$sel:description:CreateCrawler' :: CreateCrawler -> Maybe Text
$sel:databaseName:CreateCrawler' :: CreateCrawler -> Maybe Text
$sel:crawlerSecurityConfiguration:CreateCrawler' :: CreateCrawler -> Maybe Text
$sel:configuration:CreateCrawler' :: CreateCrawler -> Maybe Text
$sel:classifiers:CreateCrawler' :: CreateCrawler -> Maybe [Text]
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
classifiers
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
configuration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
crawlerSecurityConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
databaseName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LakeFormationConfiguration
lakeFormationConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LineageConfiguration
lineageConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe RecrawlPolicy
recrawlPolicy
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
schedule
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SchemaChangePolicy
schemaChangePolicy
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
tablePrefix
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text Text)
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
role'
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` CrawlerTargets
targets

instance Prelude.NFData CreateCrawler where
  rnf :: CreateCrawler -> ()
rnf CreateCrawler' {Maybe [Text]
Maybe Text
Maybe (HashMap Text Text)
Maybe LakeFormationConfiguration
Maybe LineageConfiguration
Maybe RecrawlPolicy
Maybe SchemaChangePolicy
Text
CrawlerTargets
targets :: CrawlerTargets
role' :: Text
name :: Text
tags :: Maybe (HashMap Text Text)
tablePrefix :: Maybe Text
schemaChangePolicy :: Maybe SchemaChangePolicy
schedule :: Maybe Text
recrawlPolicy :: Maybe RecrawlPolicy
lineageConfiguration :: Maybe LineageConfiguration
lakeFormationConfiguration :: Maybe LakeFormationConfiguration
description :: Maybe Text
databaseName :: Maybe Text
crawlerSecurityConfiguration :: Maybe Text
configuration :: Maybe Text
classifiers :: Maybe [Text]
$sel:targets:CreateCrawler' :: CreateCrawler -> CrawlerTargets
$sel:role':CreateCrawler' :: CreateCrawler -> Text
$sel:name:CreateCrawler' :: CreateCrawler -> Text
$sel:tags:CreateCrawler' :: CreateCrawler -> Maybe (HashMap Text Text)
$sel:tablePrefix:CreateCrawler' :: CreateCrawler -> Maybe Text
$sel:schemaChangePolicy:CreateCrawler' :: CreateCrawler -> Maybe SchemaChangePolicy
$sel:schedule:CreateCrawler' :: CreateCrawler -> Maybe Text
$sel:recrawlPolicy:CreateCrawler' :: CreateCrawler -> Maybe RecrawlPolicy
$sel:lineageConfiguration:CreateCrawler' :: CreateCrawler -> Maybe LineageConfiguration
$sel:lakeFormationConfiguration:CreateCrawler' :: CreateCrawler -> Maybe LakeFormationConfiguration
$sel:description:CreateCrawler' :: CreateCrawler -> Maybe Text
$sel:databaseName:CreateCrawler' :: CreateCrawler -> Maybe Text
$sel:crawlerSecurityConfiguration:CreateCrawler' :: CreateCrawler -> Maybe Text
$sel:configuration:CreateCrawler' :: CreateCrawler -> Maybe Text
$sel:classifiers:CreateCrawler' :: CreateCrawler -> Maybe [Text]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
classifiers
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
configuration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
crawlerSecurityConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
databaseName
      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 LakeFormationConfiguration
lakeFormationConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LineageConfiguration
lineageConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe RecrawlPolicy
recrawlPolicy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
schedule
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SchemaChangePolicy
schemaChangePolicy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
tablePrefix
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
role'
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf CrawlerTargets
targets

instance Data.ToHeaders CreateCrawler where
  toHeaders :: CreateCrawler -> 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
"AWSGlue.CreateCrawler" :: 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 CreateCrawler where
  toJSON :: CreateCrawler -> Value
toJSON CreateCrawler' {Maybe [Text]
Maybe Text
Maybe (HashMap Text Text)
Maybe LakeFormationConfiguration
Maybe LineageConfiguration
Maybe RecrawlPolicy
Maybe SchemaChangePolicy
Text
CrawlerTargets
targets :: CrawlerTargets
role' :: Text
name :: Text
tags :: Maybe (HashMap Text Text)
tablePrefix :: Maybe Text
schemaChangePolicy :: Maybe SchemaChangePolicy
schedule :: Maybe Text
recrawlPolicy :: Maybe RecrawlPolicy
lineageConfiguration :: Maybe LineageConfiguration
lakeFormationConfiguration :: Maybe LakeFormationConfiguration
description :: Maybe Text
databaseName :: Maybe Text
crawlerSecurityConfiguration :: Maybe Text
configuration :: Maybe Text
classifiers :: Maybe [Text]
$sel:targets:CreateCrawler' :: CreateCrawler -> CrawlerTargets
$sel:role':CreateCrawler' :: CreateCrawler -> Text
$sel:name:CreateCrawler' :: CreateCrawler -> Text
$sel:tags:CreateCrawler' :: CreateCrawler -> Maybe (HashMap Text Text)
$sel:tablePrefix:CreateCrawler' :: CreateCrawler -> Maybe Text
$sel:schemaChangePolicy:CreateCrawler' :: CreateCrawler -> Maybe SchemaChangePolicy
$sel:schedule:CreateCrawler' :: CreateCrawler -> Maybe Text
$sel:recrawlPolicy:CreateCrawler' :: CreateCrawler -> Maybe RecrawlPolicy
$sel:lineageConfiguration:CreateCrawler' :: CreateCrawler -> Maybe LineageConfiguration
$sel:lakeFormationConfiguration:CreateCrawler' :: CreateCrawler -> Maybe LakeFormationConfiguration
$sel:description:CreateCrawler' :: CreateCrawler -> Maybe Text
$sel:databaseName:CreateCrawler' :: CreateCrawler -> Maybe Text
$sel:crawlerSecurityConfiguration:CreateCrawler' :: CreateCrawler -> Maybe Text
$sel:configuration:CreateCrawler' :: CreateCrawler -> Maybe Text
$sel:classifiers:CreateCrawler' :: CreateCrawler -> Maybe [Text]
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"Classifiers" 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]
classifiers,
            (Key
"Configuration" 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
configuration,
            (Key
"CrawlerSecurityConfiguration" 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
crawlerSecurityConfiguration,
            (Key
"DatabaseName" 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
databaseName,
            (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,
            (Key
"LakeFormationConfiguration" 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 LakeFormationConfiguration
lakeFormationConfiguration,
            (Key
"LineageConfiguration" 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 LineageConfiguration
lineageConfiguration,
            (Key
"RecrawlPolicy" 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 RecrawlPolicy
recrawlPolicy,
            (Key
"Schedule" 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
schedule,
            (Key
"SchemaChangePolicy" 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 SchemaChangePolicy
schemaChangePolicy,
            (Key
"TablePrefix" 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
tablePrefix,
            (Key
"Tags" 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 (HashMap Text Text)
tags,
            forall a. a -> Maybe a
Prelude.Just (Key
"Name" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
name),
            forall a. a -> Maybe a
Prelude.Just (Key
"Role" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
role'),
            forall a. a -> Maybe a
Prelude.Just (Key
"Targets" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= CrawlerTargets
targets)
          ]
      )

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

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

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

-- |
-- Create a value of 'CreateCrawlerResponse' 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:
--
-- 'httpStatus', 'createCrawlerResponse_httpStatus' - The response's http status code.
newCreateCrawlerResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  CreateCrawlerResponse
newCreateCrawlerResponse :: Int -> CreateCrawlerResponse
newCreateCrawlerResponse Int
pHttpStatus_ =
  CreateCrawlerResponse' {$sel:httpStatus:CreateCrawlerResponse' :: Int
httpStatus = Int
pHttpStatus_}

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

instance Prelude.NFData CreateCrawlerResponse where
  rnf :: CreateCrawlerResponse -> ()
rnf CreateCrawlerResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateCrawlerResponse' :: CreateCrawlerResponse -> Int
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus