{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.CognitoIdentityProvider.Types.UserImportJobType
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.CognitoIdentityProvider.Types.UserImportJobType where

import Amazonka.CognitoIdentityProvider.Types.UserImportJobStatusType
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude

-- | The user import job type.
--
-- /See:/ 'newUserImportJobType' smart constructor.
data UserImportJobType = UserImportJobType'
  { -- | The role Amazon Resource Name (ARN) for the Amazon CloudWatch Logging
    -- role for the user import job. For more information, see \"Creating the
    -- CloudWatch Logs IAM Role\" in the Amazon Cognito Developer Guide.
    UserImportJobType -> Maybe Text
cloudWatchLogsRoleArn :: Prelude.Maybe Prelude.Text,
    -- | The date when the user import job was completed.
    UserImportJobType -> Maybe POSIX
completionDate :: Prelude.Maybe Data.POSIX,
    -- | The message returned when the user import job is completed.
    UserImportJobType -> Maybe Text
completionMessage :: Prelude.Maybe Prelude.Text,
    -- | The date the user import job was created.
    UserImportJobType -> Maybe POSIX
creationDate :: Prelude.Maybe Data.POSIX,
    -- | The number of users that couldn\'t be imported.
    UserImportJobType -> Maybe Integer
failedUsers :: Prelude.Maybe Prelude.Integer,
    -- | The number of users that were successfully imported.
    UserImportJobType -> Maybe Integer
importedUsers :: Prelude.Maybe Prelude.Integer,
    -- | The job ID for the user import job.
    UserImportJobType -> Maybe Text
jobId :: Prelude.Maybe Prelude.Text,
    -- | The job name for the user import job.
    UserImportJobType -> Maybe Text
jobName :: Prelude.Maybe Prelude.Text,
    -- | The pre-signed URL to be used to upload the @.csv@ file.
    UserImportJobType -> Maybe Text
preSignedUrl :: Prelude.Maybe Prelude.Text,
    -- | The number of users that were skipped.
    UserImportJobType -> Maybe Integer
skippedUsers :: Prelude.Maybe Prelude.Integer,
    -- | The date when the user import job was started.
    UserImportJobType -> Maybe POSIX
startDate :: Prelude.Maybe Data.POSIX,
    -- | The status of the user import job. One of the following:
    --
    -- -   @Created@ - The job was created but not started.
    --
    -- -   @Pending@ - A transition state. You have started the job, but it has
    --     not begun importing users yet.
    --
    -- -   @InProgress@ - The job has started, and users are being imported.
    --
    -- -   @Stopping@ - You have stopped the job, but the job has not stopped
    --     importing users yet.
    --
    -- -   @Stopped@ - You have stopped the job, and the job has stopped
    --     importing users.
    --
    -- -   @Succeeded@ - The job has completed successfully.
    --
    -- -   @Failed@ - The job has stopped due to an error.
    --
    -- -   @Expired@ - You created a job, but did not start the job within
    --     24-48 hours. All data associated with the job was deleted, and the
    --     job can\'t be started.
    UserImportJobType -> Maybe UserImportJobStatusType
status :: Prelude.Maybe UserImportJobStatusType,
    -- | The user pool ID for the user pool that the users are being imported
    -- into.
    UserImportJobType -> Maybe Text
userPoolId :: Prelude.Maybe Prelude.Text
  }
  deriving (UserImportJobType -> UserImportJobType -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UserImportJobType -> UserImportJobType -> Bool
$c/= :: UserImportJobType -> UserImportJobType -> Bool
== :: UserImportJobType -> UserImportJobType -> Bool
$c== :: UserImportJobType -> UserImportJobType -> Bool
Prelude.Eq, ReadPrec [UserImportJobType]
ReadPrec UserImportJobType
Int -> ReadS UserImportJobType
ReadS [UserImportJobType]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UserImportJobType]
$creadListPrec :: ReadPrec [UserImportJobType]
readPrec :: ReadPrec UserImportJobType
$creadPrec :: ReadPrec UserImportJobType
readList :: ReadS [UserImportJobType]
$creadList :: ReadS [UserImportJobType]
readsPrec :: Int -> ReadS UserImportJobType
$creadsPrec :: Int -> ReadS UserImportJobType
Prelude.Read, Int -> UserImportJobType -> ShowS
[UserImportJobType] -> ShowS
UserImportJobType -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UserImportJobType] -> ShowS
$cshowList :: [UserImportJobType] -> ShowS
show :: UserImportJobType -> String
$cshow :: UserImportJobType -> String
showsPrec :: Int -> UserImportJobType -> ShowS
$cshowsPrec :: Int -> UserImportJobType -> ShowS
Prelude.Show, forall x. Rep UserImportJobType x -> UserImportJobType
forall x. UserImportJobType -> Rep UserImportJobType x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UserImportJobType x -> UserImportJobType
$cfrom :: forall x. UserImportJobType -> Rep UserImportJobType x
Prelude.Generic)

-- |
-- Create a value of 'UserImportJobType' 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:
--
-- 'cloudWatchLogsRoleArn', 'userImportJobType_cloudWatchLogsRoleArn' - The role Amazon Resource Name (ARN) for the Amazon CloudWatch Logging
-- role for the user import job. For more information, see \"Creating the
-- CloudWatch Logs IAM Role\" in the Amazon Cognito Developer Guide.
--
-- 'completionDate', 'userImportJobType_completionDate' - The date when the user import job was completed.
--
-- 'completionMessage', 'userImportJobType_completionMessage' - The message returned when the user import job is completed.
--
-- 'creationDate', 'userImportJobType_creationDate' - The date the user import job was created.
--
-- 'failedUsers', 'userImportJobType_failedUsers' - The number of users that couldn\'t be imported.
--
-- 'importedUsers', 'userImportJobType_importedUsers' - The number of users that were successfully imported.
--
-- 'jobId', 'userImportJobType_jobId' - The job ID for the user import job.
--
-- 'jobName', 'userImportJobType_jobName' - The job name for the user import job.
--
-- 'preSignedUrl', 'userImportJobType_preSignedUrl' - The pre-signed URL to be used to upload the @.csv@ file.
--
-- 'skippedUsers', 'userImportJobType_skippedUsers' - The number of users that were skipped.
--
-- 'startDate', 'userImportJobType_startDate' - The date when the user import job was started.
--
-- 'status', 'userImportJobType_status' - The status of the user import job. One of the following:
--
-- -   @Created@ - The job was created but not started.
--
-- -   @Pending@ - A transition state. You have started the job, but it has
--     not begun importing users yet.
--
-- -   @InProgress@ - The job has started, and users are being imported.
--
-- -   @Stopping@ - You have stopped the job, but the job has not stopped
--     importing users yet.
--
-- -   @Stopped@ - You have stopped the job, and the job has stopped
--     importing users.
--
-- -   @Succeeded@ - The job has completed successfully.
--
-- -   @Failed@ - The job has stopped due to an error.
--
-- -   @Expired@ - You created a job, but did not start the job within
--     24-48 hours. All data associated with the job was deleted, and the
--     job can\'t be started.
--
-- 'userPoolId', 'userImportJobType_userPoolId' - The user pool ID for the user pool that the users are being imported
-- into.
newUserImportJobType ::
  UserImportJobType
newUserImportJobType :: UserImportJobType
newUserImportJobType =
  UserImportJobType'
    { $sel:cloudWatchLogsRoleArn:UserImportJobType' :: Maybe Text
cloudWatchLogsRoleArn =
        forall a. Maybe a
Prelude.Nothing,
      $sel:completionDate:UserImportJobType' :: Maybe POSIX
completionDate = forall a. Maybe a
Prelude.Nothing,
      $sel:completionMessage:UserImportJobType' :: Maybe Text
completionMessage = forall a. Maybe a
Prelude.Nothing,
      $sel:creationDate:UserImportJobType' :: Maybe POSIX
creationDate = forall a. Maybe a
Prelude.Nothing,
      $sel:failedUsers:UserImportJobType' :: Maybe Integer
failedUsers = forall a. Maybe a
Prelude.Nothing,
      $sel:importedUsers:UserImportJobType' :: Maybe Integer
importedUsers = forall a. Maybe a
Prelude.Nothing,
      $sel:jobId:UserImportJobType' :: Maybe Text
jobId = forall a. Maybe a
Prelude.Nothing,
      $sel:jobName:UserImportJobType' :: Maybe Text
jobName = forall a. Maybe a
Prelude.Nothing,
      $sel:preSignedUrl:UserImportJobType' :: Maybe Text
preSignedUrl = forall a. Maybe a
Prelude.Nothing,
      $sel:skippedUsers:UserImportJobType' :: Maybe Integer
skippedUsers = forall a. Maybe a
Prelude.Nothing,
      $sel:startDate:UserImportJobType' :: Maybe POSIX
startDate = forall a. Maybe a
Prelude.Nothing,
      $sel:status:UserImportJobType' :: Maybe UserImportJobStatusType
status = forall a. Maybe a
Prelude.Nothing,
      $sel:userPoolId:UserImportJobType' :: Maybe Text
userPoolId = forall a. Maybe a
Prelude.Nothing
    }

-- | The role Amazon Resource Name (ARN) for the Amazon CloudWatch Logging
-- role for the user import job. For more information, see \"Creating the
-- CloudWatch Logs IAM Role\" in the Amazon Cognito Developer Guide.
userImportJobType_cloudWatchLogsRoleArn :: Lens.Lens' UserImportJobType (Prelude.Maybe Prelude.Text)
userImportJobType_cloudWatchLogsRoleArn :: Lens' UserImportJobType (Maybe Text)
userImportJobType_cloudWatchLogsRoleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UserImportJobType' {Maybe Text
cloudWatchLogsRoleArn :: Maybe Text
$sel:cloudWatchLogsRoleArn:UserImportJobType' :: UserImportJobType -> Maybe Text
cloudWatchLogsRoleArn} -> Maybe Text
cloudWatchLogsRoleArn) (\s :: UserImportJobType
s@UserImportJobType' {} Maybe Text
a -> UserImportJobType
s {$sel:cloudWatchLogsRoleArn:UserImportJobType' :: Maybe Text
cloudWatchLogsRoleArn = Maybe Text
a} :: UserImportJobType)

-- | The date when the user import job was completed.
userImportJobType_completionDate :: Lens.Lens' UserImportJobType (Prelude.Maybe Prelude.UTCTime)
userImportJobType_completionDate :: Lens' UserImportJobType (Maybe UTCTime)
userImportJobType_completionDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UserImportJobType' {Maybe POSIX
completionDate :: Maybe POSIX
$sel:completionDate:UserImportJobType' :: UserImportJobType -> Maybe POSIX
completionDate} -> Maybe POSIX
completionDate) (\s :: UserImportJobType
s@UserImportJobType' {} Maybe POSIX
a -> UserImportJobType
s {$sel:completionDate:UserImportJobType' :: Maybe POSIX
completionDate = Maybe POSIX
a} :: UserImportJobType) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The message returned when the user import job is completed.
userImportJobType_completionMessage :: Lens.Lens' UserImportJobType (Prelude.Maybe Prelude.Text)
userImportJobType_completionMessage :: Lens' UserImportJobType (Maybe Text)
userImportJobType_completionMessage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UserImportJobType' {Maybe Text
completionMessage :: Maybe Text
$sel:completionMessage:UserImportJobType' :: UserImportJobType -> Maybe Text
completionMessage} -> Maybe Text
completionMessage) (\s :: UserImportJobType
s@UserImportJobType' {} Maybe Text
a -> UserImportJobType
s {$sel:completionMessage:UserImportJobType' :: Maybe Text
completionMessage = Maybe Text
a} :: UserImportJobType)

-- | The date the user import job was created.
userImportJobType_creationDate :: Lens.Lens' UserImportJobType (Prelude.Maybe Prelude.UTCTime)
userImportJobType_creationDate :: Lens' UserImportJobType (Maybe UTCTime)
userImportJobType_creationDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UserImportJobType' {Maybe POSIX
creationDate :: Maybe POSIX
$sel:creationDate:UserImportJobType' :: UserImportJobType -> Maybe POSIX
creationDate} -> Maybe POSIX
creationDate) (\s :: UserImportJobType
s@UserImportJobType' {} Maybe POSIX
a -> UserImportJobType
s {$sel:creationDate:UserImportJobType' :: Maybe POSIX
creationDate = Maybe POSIX
a} :: UserImportJobType) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The number of users that couldn\'t be imported.
userImportJobType_failedUsers :: Lens.Lens' UserImportJobType (Prelude.Maybe Prelude.Integer)
userImportJobType_failedUsers :: Lens' UserImportJobType (Maybe Integer)
userImportJobType_failedUsers = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UserImportJobType' {Maybe Integer
failedUsers :: Maybe Integer
$sel:failedUsers:UserImportJobType' :: UserImportJobType -> Maybe Integer
failedUsers} -> Maybe Integer
failedUsers) (\s :: UserImportJobType
s@UserImportJobType' {} Maybe Integer
a -> UserImportJobType
s {$sel:failedUsers:UserImportJobType' :: Maybe Integer
failedUsers = Maybe Integer
a} :: UserImportJobType)

-- | The number of users that were successfully imported.
userImportJobType_importedUsers :: Lens.Lens' UserImportJobType (Prelude.Maybe Prelude.Integer)
userImportJobType_importedUsers :: Lens' UserImportJobType (Maybe Integer)
userImportJobType_importedUsers = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UserImportJobType' {Maybe Integer
importedUsers :: Maybe Integer
$sel:importedUsers:UserImportJobType' :: UserImportJobType -> Maybe Integer
importedUsers} -> Maybe Integer
importedUsers) (\s :: UserImportJobType
s@UserImportJobType' {} Maybe Integer
a -> UserImportJobType
s {$sel:importedUsers:UserImportJobType' :: Maybe Integer
importedUsers = Maybe Integer
a} :: UserImportJobType)

-- | The job ID for the user import job.
userImportJobType_jobId :: Lens.Lens' UserImportJobType (Prelude.Maybe Prelude.Text)
userImportJobType_jobId :: Lens' UserImportJobType (Maybe Text)
userImportJobType_jobId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UserImportJobType' {Maybe Text
jobId :: Maybe Text
$sel:jobId:UserImportJobType' :: UserImportJobType -> Maybe Text
jobId} -> Maybe Text
jobId) (\s :: UserImportJobType
s@UserImportJobType' {} Maybe Text
a -> UserImportJobType
s {$sel:jobId:UserImportJobType' :: Maybe Text
jobId = Maybe Text
a} :: UserImportJobType)

-- | The job name for the user import job.
userImportJobType_jobName :: Lens.Lens' UserImportJobType (Prelude.Maybe Prelude.Text)
userImportJobType_jobName :: Lens' UserImportJobType (Maybe Text)
userImportJobType_jobName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UserImportJobType' {Maybe Text
jobName :: Maybe Text
$sel:jobName:UserImportJobType' :: UserImportJobType -> Maybe Text
jobName} -> Maybe Text
jobName) (\s :: UserImportJobType
s@UserImportJobType' {} Maybe Text
a -> UserImportJobType
s {$sel:jobName:UserImportJobType' :: Maybe Text
jobName = Maybe Text
a} :: UserImportJobType)

-- | The pre-signed URL to be used to upload the @.csv@ file.
userImportJobType_preSignedUrl :: Lens.Lens' UserImportJobType (Prelude.Maybe Prelude.Text)
userImportJobType_preSignedUrl :: Lens' UserImportJobType (Maybe Text)
userImportJobType_preSignedUrl = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UserImportJobType' {Maybe Text
preSignedUrl :: Maybe Text
$sel:preSignedUrl:UserImportJobType' :: UserImportJobType -> Maybe Text
preSignedUrl} -> Maybe Text
preSignedUrl) (\s :: UserImportJobType
s@UserImportJobType' {} Maybe Text
a -> UserImportJobType
s {$sel:preSignedUrl:UserImportJobType' :: Maybe Text
preSignedUrl = Maybe Text
a} :: UserImportJobType)

-- | The number of users that were skipped.
userImportJobType_skippedUsers :: Lens.Lens' UserImportJobType (Prelude.Maybe Prelude.Integer)
userImportJobType_skippedUsers :: Lens' UserImportJobType (Maybe Integer)
userImportJobType_skippedUsers = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UserImportJobType' {Maybe Integer
skippedUsers :: Maybe Integer
$sel:skippedUsers:UserImportJobType' :: UserImportJobType -> Maybe Integer
skippedUsers} -> Maybe Integer
skippedUsers) (\s :: UserImportJobType
s@UserImportJobType' {} Maybe Integer
a -> UserImportJobType
s {$sel:skippedUsers:UserImportJobType' :: Maybe Integer
skippedUsers = Maybe Integer
a} :: UserImportJobType)

-- | The date when the user import job was started.
userImportJobType_startDate :: Lens.Lens' UserImportJobType (Prelude.Maybe Prelude.UTCTime)
userImportJobType_startDate :: Lens' UserImportJobType (Maybe UTCTime)
userImportJobType_startDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UserImportJobType' {Maybe POSIX
startDate :: Maybe POSIX
$sel:startDate:UserImportJobType' :: UserImportJobType -> Maybe POSIX
startDate} -> Maybe POSIX
startDate) (\s :: UserImportJobType
s@UserImportJobType' {} Maybe POSIX
a -> UserImportJobType
s {$sel:startDate:UserImportJobType' :: Maybe POSIX
startDate = Maybe POSIX
a} :: UserImportJobType) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The status of the user import job. One of the following:
--
-- -   @Created@ - The job was created but not started.
--
-- -   @Pending@ - A transition state. You have started the job, but it has
--     not begun importing users yet.
--
-- -   @InProgress@ - The job has started, and users are being imported.
--
-- -   @Stopping@ - You have stopped the job, but the job has not stopped
--     importing users yet.
--
-- -   @Stopped@ - You have stopped the job, and the job has stopped
--     importing users.
--
-- -   @Succeeded@ - The job has completed successfully.
--
-- -   @Failed@ - The job has stopped due to an error.
--
-- -   @Expired@ - You created a job, but did not start the job within
--     24-48 hours. All data associated with the job was deleted, and the
--     job can\'t be started.
userImportJobType_status :: Lens.Lens' UserImportJobType (Prelude.Maybe UserImportJobStatusType)
userImportJobType_status :: Lens' UserImportJobType (Maybe UserImportJobStatusType)
userImportJobType_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UserImportJobType' {Maybe UserImportJobStatusType
status :: Maybe UserImportJobStatusType
$sel:status:UserImportJobType' :: UserImportJobType -> Maybe UserImportJobStatusType
status} -> Maybe UserImportJobStatusType
status) (\s :: UserImportJobType
s@UserImportJobType' {} Maybe UserImportJobStatusType
a -> UserImportJobType
s {$sel:status:UserImportJobType' :: Maybe UserImportJobStatusType
status = Maybe UserImportJobStatusType
a} :: UserImportJobType)

-- | The user pool ID for the user pool that the users are being imported
-- into.
userImportJobType_userPoolId :: Lens.Lens' UserImportJobType (Prelude.Maybe Prelude.Text)
userImportJobType_userPoolId :: Lens' UserImportJobType (Maybe Text)
userImportJobType_userPoolId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UserImportJobType' {Maybe Text
userPoolId :: Maybe Text
$sel:userPoolId:UserImportJobType' :: UserImportJobType -> Maybe Text
userPoolId} -> Maybe Text
userPoolId) (\s :: UserImportJobType
s@UserImportJobType' {} Maybe Text
a -> UserImportJobType
s {$sel:userPoolId:UserImportJobType' :: Maybe Text
userPoolId = Maybe Text
a} :: UserImportJobType)

instance Data.FromJSON UserImportJobType where
  parseJSON :: Value -> Parser UserImportJobType
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"UserImportJobType"
      ( \Object
x ->
          Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe POSIX
-> Maybe Integer
-> Maybe Integer
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Integer
-> Maybe POSIX
-> Maybe UserImportJobStatusType
-> Maybe Text
-> UserImportJobType
UserImportJobType'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CloudWatchLogsRoleArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CompletionDate")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CompletionMessage")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CreationDate")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"FailedUsers")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ImportedUsers")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"JobId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"JobName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"PreSignedUrl")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SkippedUsers")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"StartDate")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Status")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"UserPoolId")
      )

instance Prelude.Hashable UserImportJobType where
  hashWithSalt :: Int -> UserImportJobType -> Int
hashWithSalt Int
_salt UserImportJobType' {Maybe Integer
Maybe Text
Maybe POSIX
Maybe UserImportJobStatusType
userPoolId :: Maybe Text
status :: Maybe UserImportJobStatusType
startDate :: Maybe POSIX
skippedUsers :: Maybe Integer
preSignedUrl :: Maybe Text
jobName :: Maybe Text
jobId :: Maybe Text
importedUsers :: Maybe Integer
failedUsers :: Maybe Integer
creationDate :: Maybe POSIX
completionMessage :: Maybe Text
completionDate :: Maybe POSIX
cloudWatchLogsRoleArn :: Maybe Text
$sel:userPoolId:UserImportJobType' :: UserImportJobType -> Maybe Text
$sel:status:UserImportJobType' :: UserImportJobType -> Maybe UserImportJobStatusType
$sel:startDate:UserImportJobType' :: UserImportJobType -> Maybe POSIX
$sel:skippedUsers:UserImportJobType' :: UserImportJobType -> Maybe Integer
$sel:preSignedUrl:UserImportJobType' :: UserImportJobType -> Maybe Text
$sel:jobName:UserImportJobType' :: UserImportJobType -> Maybe Text
$sel:jobId:UserImportJobType' :: UserImportJobType -> Maybe Text
$sel:importedUsers:UserImportJobType' :: UserImportJobType -> Maybe Integer
$sel:failedUsers:UserImportJobType' :: UserImportJobType -> Maybe Integer
$sel:creationDate:UserImportJobType' :: UserImportJobType -> Maybe POSIX
$sel:completionMessage:UserImportJobType' :: UserImportJobType -> Maybe Text
$sel:completionDate:UserImportJobType' :: UserImportJobType -> Maybe POSIX
$sel:cloudWatchLogsRoleArn:UserImportJobType' :: UserImportJobType -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
cloudWatchLogsRoleArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
completionDate
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
completionMessage
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
creationDate
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Integer
failedUsers
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Integer
importedUsers
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
jobId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
jobName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
preSignedUrl
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Integer
skippedUsers
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
startDate
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe UserImportJobStatusType
status
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
userPoolId

instance Prelude.NFData UserImportJobType where
  rnf :: UserImportJobType -> ()
rnf UserImportJobType' {Maybe Integer
Maybe Text
Maybe POSIX
Maybe UserImportJobStatusType
userPoolId :: Maybe Text
status :: Maybe UserImportJobStatusType
startDate :: Maybe POSIX
skippedUsers :: Maybe Integer
preSignedUrl :: Maybe Text
jobName :: Maybe Text
jobId :: Maybe Text
importedUsers :: Maybe Integer
failedUsers :: Maybe Integer
creationDate :: Maybe POSIX
completionMessage :: Maybe Text
completionDate :: Maybe POSIX
cloudWatchLogsRoleArn :: Maybe Text
$sel:userPoolId:UserImportJobType' :: UserImportJobType -> Maybe Text
$sel:status:UserImportJobType' :: UserImportJobType -> Maybe UserImportJobStatusType
$sel:startDate:UserImportJobType' :: UserImportJobType -> Maybe POSIX
$sel:skippedUsers:UserImportJobType' :: UserImportJobType -> Maybe Integer
$sel:preSignedUrl:UserImportJobType' :: UserImportJobType -> Maybe Text
$sel:jobName:UserImportJobType' :: UserImportJobType -> Maybe Text
$sel:jobId:UserImportJobType' :: UserImportJobType -> Maybe Text
$sel:importedUsers:UserImportJobType' :: UserImportJobType -> Maybe Integer
$sel:failedUsers:UserImportJobType' :: UserImportJobType -> Maybe Integer
$sel:creationDate:UserImportJobType' :: UserImportJobType -> Maybe POSIX
$sel:completionMessage:UserImportJobType' :: UserImportJobType -> Maybe Text
$sel:completionDate:UserImportJobType' :: UserImportJobType -> Maybe POSIX
$sel:cloudWatchLogsRoleArn:UserImportJobType' :: UserImportJobType -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
cloudWatchLogsRoleArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
completionDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
completionMessage
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
creationDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
failedUsers
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
importedUsers
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
jobId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
jobName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
preSignedUrl
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
skippedUsers
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
startDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe UserImportJobStatusType
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
userPoolId