{-# 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 #-}
module Amazonka.GuardDuty.GetRemainingFreeTrialDays
(
GetRemainingFreeTrialDays (..),
newGetRemainingFreeTrialDays,
getRemainingFreeTrialDays_accountIds,
getRemainingFreeTrialDays_detectorId,
GetRemainingFreeTrialDaysResponse (..),
newGetRemainingFreeTrialDaysResponse,
getRemainingFreeTrialDaysResponse_accounts,
getRemainingFreeTrialDaysResponse_unprocessedAccounts,
getRemainingFreeTrialDaysResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.GuardDuty.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data GetRemainingFreeTrialDays = GetRemainingFreeTrialDays'
{
GetRemainingFreeTrialDays -> Maybe (NonEmpty Text)
accountIds :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),
GetRemainingFreeTrialDays -> Text
detectorId :: Prelude.Text
}
deriving (GetRemainingFreeTrialDays -> GetRemainingFreeTrialDays -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetRemainingFreeTrialDays -> GetRemainingFreeTrialDays -> Bool
$c/= :: GetRemainingFreeTrialDays -> GetRemainingFreeTrialDays -> Bool
== :: GetRemainingFreeTrialDays -> GetRemainingFreeTrialDays -> Bool
$c== :: GetRemainingFreeTrialDays -> GetRemainingFreeTrialDays -> Bool
Prelude.Eq, ReadPrec [GetRemainingFreeTrialDays]
ReadPrec GetRemainingFreeTrialDays
Int -> ReadS GetRemainingFreeTrialDays
ReadS [GetRemainingFreeTrialDays]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetRemainingFreeTrialDays]
$creadListPrec :: ReadPrec [GetRemainingFreeTrialDays]
readPrec :: ReadPrec GetRemainingFreeTrialDays
$creadPrec :: ReadPrec GetRemainingFreeTrialDays
readList :: ReadS [GetRemainingFreeTrialDays]
$creadList :: ReadS [GetRemainingFreeTrialDays]
readsPrec :: Int -> ReadS GetRemainingFreeTrialDays
$creadsPrec :: Int -> ReadS GetRemainingFreeTrialDays
Prelude.Read, Int -> GetRemainingFreeTrialDays -> ShowS
[GetRemainingFreeTrialDays] -> ShowS
GetRemainingFreeTrialDays -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetRemainingFreeTrialDays] -> ShowS
$cshowList :: [GetRemainingFreeTrialDays] -> ShowS
show :: GetRemainingFreeTrialDays -> String
$cshow :: GetRemainingFreeTrialDays -> String
showsPrec :: Int -> GetRemainingFreeTrialDays -> ShowS
$cshowsPrec :: Int -> GetRemainingFreeTrialDays -> ShowS
Prelude.Show, forall x.
Rep GetRemainingFreeTrialDays x -> GetRemainingFreeTrialDays
forall x.
GetRemainingFreeTrialDays -> Rep GetRemainingFreeTrialDays x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetRemainingFreeTrialDays x -> GetRemainingFreeTrialDays
$cfrom :: forall x.
GetRemainingFreeTrialDays -> Rep GetRemainingFreeTrialDays x
Prelude.Generic)
newGetRemainingFreeTrialDays ::
Prelude.Text ->
GetRemainingFreeTrialDays
newGetRemainingFreeTrialDays :: Text -> GetRemainingFreeTrialDays
newGetRemainingFreeTrialDays Text
pDetectorId_ =
GetRemainingFreeTrialDays'
{ $sel:accountIds:GetRemainingFreeTrialDays' :: Maybe (NonEmpty Text)
accountIds =
forall a. Maybe a
Prelude.Nothing,
$sel:detectorId:GetRemainingFreeTrialDays' :: Text
detectorId = Text
pDetectorId_
}
getRemainingFreeTrialDays_accountIds :: Lens.Lens' GetRemainingFreeTrialDays (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))
getRemainingFreeTrialDays_accountIds :: Lens' GetRemainingFreeTrialDays (Maybe (NonEmpty Text))
getRemainingFreeTrialDays_accountIds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetRemainingFreeTrialDays' {Maybe (NonEmpty Text)
accountIds :: Maybe (NonEmpty Text)
$sel:accountIds:GetRemainingFreeTrialDays' :: GetRemainingFreeTrialDays -> Maybe (NonEmpty Text)
accountIds} -> Maybe (NonEmpty Text)
accountIds) (\s :: GetRemainingFreeTrialDays
s@GetRemainingFreeTrialDays' {} Maybe (NonEmpty Text)
a -> GetRemainingFreeTrialDays
s {$sel:accountIds:GetRemainingFreeTrialDays' :: Maybe (NonEmpty Text)
accountIds = Maybe (NonEmpty Text)
a} :: GetRemainingFreeTrialDays) 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
getRemainingFreeTrialDays_detectorId :: Lens.Lens' GetRemainingFreeTrialDays Prelude.Text
getRemainingFreeTrialDays_detectorId :: Lens' GetRemainingFreeTrialDays Text
getRemainingFreeTrialDays_detectorId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetRemainingFreeTrialDays' {Text
detectorId :: Text
$sel:detectorId:GetRemainingFreeTrialDays' :: GetRemainingFreeTrialDays -> Text
detectorId} -> Text
detectorId) (\s :: GetRemainingFreeTrialDays
s@GetRemainingFreeTrialDays' {} Text
a -> GetRemainingFreeTrialDays
s {$sel:detectorId:GetRemainingFreeTrialDays' :: Text
detectorId = Text
a} :: GetRemainingFreeTrialDays)
instance Core.AWSRequest GetRemainingFreeTrialDays where
type
AWSResponse GetRemainingFreeTrialDays =
GetRemainingFreeTrialDaysResponse
request :: (Service -> Service)
-> GetRemainingFreeTrialDays -> Request GetRemainingFreeTrialDays
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 GetRemainingFreeTrialDays
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse GetRemainingFreeTrialDays)))
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 [AccountFreeTrialInfo]
-> Maybe [UnprocessedAccount]
-> Int
-> GetRemainingFreeTrialDaysResponse
GetRemainingFreeTrialDaysResponse'
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
"accounts" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x
forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"unprocessedAccounts"
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
)
instance Prelude.Hashable GetRemainingFreeTrialDays where
hashWithSalt :: Int -> GetRemainingFreeTrialDays -> Int
hashWithSalt Int
_salt GetRemainingFreeTrialDays' {Maybe (NonEmpty Text)
Text
detectorId :: Text
accountIds :: Maybe (NonEmpty Text)
$sel:detectorId:GetRemainingFreeTrialDays' :: GetRemainingFreeTrialDays -> Text
$sel:accountIds:GetRemainingFreeTrialDays' :: GetRemainingFreeTrialDays -> Maybe (NonEmpty Text)
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty Text)
accountIds
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
detectorId
instance Prelude.NFData GetRemainingFreeTrialDays where
rnf :: GetRemainingFreeTrialDays -> ()
rnf GetRemainingFreeTrialDays' {Maybe (NonEmpty Text)
Text
detectorId :: Text
accountIds :: Maybe (NonEmpty Text)
$sel:detectorId:GetRemainingFreeTrialDays' :: GetRemainingFreeTrialDays -> Text
$sel:accountIds:GetRemainingFreeTrialDays' :: GetRemainingFreeTrialDays -> Maybe (NonEmpty Text)
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty Text)
accountIds
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
detectorId
instance Data.ToHeaders GetRemainingFreeTrialDays where
toHeaders :: GetRemainingFreeTrialDays -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON GetRemainingFreeTrialDays where
toJSON :: GetRemainingFreeTrialDays -> Value
toJSON GetRemainingFreeTrialDays' {Maybe (NonEmpty Text)
Text
detectorId :: Text
accountIds :: Maybe (NonEmpty Text)
$sel:detectorId:GetRemainingFreeTrialDays' :: GetRemainingFreeTrialDays -> Text
$sel:accountIds:GetRemainingFreeTrialDays' :: GetRemainingFreeTrialDays -> Maybe (NonEmpty Text)
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[(Key
"accountIds" 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 (NonEmpty Text)
accountIds]
)
instance Data.ToPath GetRemainingFreeTrialDays where
toPath :: GetRemainingFreeTrialDays -> ByteString
toPath GetRemainingFreeTrialDays' {Maybe (NonEmpty Text)
Text
detectorId :: Text
accountIds :: Maybe (NonEmpty Text)
$sel:detectorId:GetRemainingFreeTrialDays' :: GetRemainingFreeTrialDays -> Text
$sel:accountIds:GetRemainingFreeTrialDays' :: GetRemainingFreeTrialDays -> Maybe (NonEmpty Text)
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"/detector/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
detectorId,
ByteString
"/freeTrial/daysRemaining"
]
instance Data.ToQuery GetRemainingFreeTrialDays where
toQuery :: GetRemainingFreeTrialDays -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data GetRemainingFreeTrialDaysResponse = GetRemainingFreeTrialDaysResponse'
{
GetRemainingFreeTrialDaysResponse -> Maybe [AccountFreeTrialInfo]
accounts :: Prelude.Maybe [AccountFreeTrialInfo],
GetRemainingFreeTrialDaysResponse -> Maybe [UnprocessedAccount]
unprocessedAccounts :: Prelude.Maybe [UnprocessedAccount],
GetRemainingFreeTrialDaysResponse -> Int
httpStatus :: Prelude.Int
}
deriving (GetRemainingFreeTrialDaysResponse
-> GetRemainingFreeTrialDaysResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetRemainingFreeTrialDaysResponse
-> GetRemainingFreeTrialDaysResponse -> Bool
$c/= :: GetRemainingFreeTrialDaysResponse
-> GetRemainingFreeTrialDaysResponse -> Bool
== :: GetRemainingFreeTrialDaysResponse
-> GetRemainingFreeTrialDaysResponse -> Bool
$c== :: GetRemainingFreeTrialDaysResponse
-> GetRemainingFreeTrialDaysResponse -> Bool
Prelude.Eq, ReadPrec [GetRemainingFreeTrialDaysResponse]
ReadPrec GetRemainingFreeTrialDaysResponse
Int -> ReadS GetRemainingFreeTrialDaysResponse
ReadS [GetRemainingFreeTrialDaysResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetRemainingFreeTrialDaysResponse]
$creadListPrec :: ReadPrec [GetRemainingFreeTrialDaysResponse]
readPrec :: ReadPrec GetRemainingFreeTrialDaysResponse
$creadPrec :: ReadPrec GetRemainingFreeTrialDaysResponse
readList :: ReadS [GetRemainingFreeTrialDaysResponse]
$creadList :: ReadS [GetRemainingFreeTrialDaysResponse]
readsPrec :: Int -> ReadS GetRemainingFreeTrialDaysResponse
$creadsPrec :: Int -> ReadS GetRemainingFreeTrialDaysResponse
Prelude.Read, Int -> GetRemainingFreeTrialDaysResponse -> ShowS
[GetRemainingFreeTrialDaysResponse] -> ShowS
GetRemainingFreeTrialDaysResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetRemainingFreeTrialDaysResponse] -> ShowS
$cshowList :: [GetRemainingFreeTrialDaysResponse] -> ShowS
show :: GetRemainingFreeTrialDaysResponse -> String
$cshow :: GetRemainingFreeTrialDaysResponse -> String
showsPrec :: Int -> GetRemainingFreeTrialDaysResponse -> ShowS
$cshowsPrec :: Int -> GetRemainingFreeTrialDaysResponse -> ShowS
Prelude.Show, forall x.
Rep GetRemainingFreeTrialDaysResponse x
-> GetRemainingFreeTrialDaysResponse
forall x.
GetRemainingFreeTrialDaysResponse
-> Rep GetRemainingFreeTrialDaysResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetRemainingFreeTrialDaysResponse x
-> GetRemainingFreeTrialDaysResponse
$cfrom :: forall x.
GetRemainingFreeTrialDaysResponse
-> Rep GetRemainingFreeTrialDaysResponse x
Prelude.Generic)
newGetRemainingFreeTrialDaysResponse ::
Prelude.Int ->
GetRemainingFreeTrialDaysResponse
newGetRemainingFreeTrialDaysResponse :: Int -> GetRemainingFreeTrialDaysResponse
newGetRemainingFreeTrialDaysResponse Int
pHttpStatus_ =
GetRemainingFreeTrialDaysResponse'
{ $sel:accounts:GetRemainingFreeTrialDaysResponse' :: Maybe [AccountFreeTrialInfo]
accounts =
forall a. Maybe a
Prelude.Nothing,
$sel:unprocessedAccounts:GetRemainingFreeTrialDaysResponse' :: Maybe [UnprocessedAccount]
unprocessedAccounts = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:GetRemainingFreeTrialDaysResponse' :: Int
httpStatus = Int
pHttpStatus_
}
getRemainingFreeTrialDaysResponse_accounts :: Lens.Lens' GetRemainingFreeTrialDaysResponse (Prelude.Maybe [AccountFreeTrialInfo])
getRemainingFreeTrialDaysResponse_accounts :: Lens'
GetRemainingFreeTrialDaysResponse (Maybe [AccountFreeTrialInfo])
getRemainingFreeTrialDaysResponse_accounts = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetRemainingFreeTrialDaysResponse' {Maybe [AccountFreeTrialInfo]
accounts :: Maybe [AccountFreeTrialInfo]
$sel:accounts:GetRemainingFreeTrialDaysResponse' :: GetRemainingFreeTrialDaysResponse -> Maybe [AccountFreeTrialInfo]
accounts} -> Maybe [AccountFreeTrialInfo]
accounts) (\s :: GetRemainingFreeTrialDaysResponse
s@GetRemainingFreeTrialDaysResponse' {} Maybe [AccountFreeTrialInfo]
a -> GetRemainingFreeTrialDaysResponse
s {$sel:accounts:GetRemainingFreeTrialDaysResponse' :: Maybe [AccountFreeTrialInfo]
accounts = Maybe [AccountFreeTrialInfo]
a} :: GetRemainingFreeTrialDaysResponse) 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
getRemainingFreeTrialDaysResponse_unprocessedAccounts :: Lens.Lens' GetRemainingFreeTrialDaysResponse (Prelude.Maybe [UnprocessedAccount])
getRemainingFreeTrialDaysResponse_unprocessedAccounts :: Lens'
GetRemainingFreeTrialDaysResponse (Maybe [UnprocessedAccount])
getRemainingFreeTrialDaysResponse_unprocessedAccounts = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetRemainingFreeTrialDaysResponse' {Maybe [UnprocessedAccount]
unprocessedAccounts :: Maybe [UnprocessedAccount]
$sel:unprocessedAccounts:GetRemainingFreeTrialDaysResponse' :: GetRemainingFreeTrialDaysResponse -> Maybe [UnprocessedAccount]
unprocessedAccounts} -> Maybe [UnprocessedAccount]
unprocessedAccounts) (\s :: GetRemainingFreeTrialDaysResponse
s@GetRemainingFreeTrialDaysResponse' {} Maybe [UnprocessedAccount]
a -> GetRemainingFreeTrialDaysResponse
s {$sel:unprocessedAccounts:GetRemainingFreeTrialDaysResponse' :: Maybe [UnprocessedAccount]
unprocessedAccounts = Maybe [UnprocessedAccount]
a} :: GetRemainingFreeTrialDaysResponse) 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
getRemainingFreeTrialDaysResponse_httpStatus :: Lens.Lens' GetRemainingFreeTrialDaysResponse Prelude.Int
getRemainingFreeTrialDaysResponse_httpStatus :: Lens' GetRemainingFreeTrialDaysResponse Int
getRemainingFreeTrialDaysResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetRemainingFreeTrialDaysResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetRemainingFreeTrialDaysResponse' :: GetRemainingFreeTrialDaysResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetRemainingFreeTrialDaysResponse
s@GetRemainingFreeTrialDaysResponse' {} Int
a -> GetRemainingFreeTrialDaysResponse
s {$sel:httpStatus:GetRemainingFreeTrialDaysResponse' :: Int
httpStatus = Int
a} :: GetRemainingFreeTrialDaysResponse)
instance
Prelude.NFData
GetRemainingFreeTrialDaysResponse
where
rnf :: GetRemainingFreeTrialDaysResponse -> ()
rnf GetRemainingFreeTrialDaysResponse' {Int
Maybe [AccountFreeTrialInfo]
Maybe [UnprocessedAccount]
httpStatus :: Int
unprocessedAccounts :: Maybe [UnprocessedAccount]
accounts :: Maybe [AccountFreeTrialInfo]
$sel:httpStatus:GetRemainingFreeTrialDaysResponse' :: GetRemainingFreeTrialDaysResponse -> Int
$sel:unprocessedAccounts:GetRemainingFreeTrialDaysResponse' :: GetRemainingFreeTrialDaysResponse -> Maybe [UnprocessedAccount]
$sel:accounts:GetRemainingFreeTrialDaysResponse' :: GetRemainingFreeTrialDaysResponse -> Maybe [AccountFreeTrialInfo]
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe [AccountFreeTrialInfo]
accounts
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [UnprocessedAccount]
unprocessedAccounts
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus