{-# 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.ECR.StartImageScan
(
StartImageScan (..),
newStartImageScan,
startImageScan_registryId,
startImageScan_repositoryName,
startImageScan_imageId,
StartImageScanResponse (..),
newStartImageScanResponse,
startImageScanResponse_imageId,
startImageScanResponse_imageScanStatus,
startImageScanResponse_registryId,
startImageScanResponse_repositoryName,
startImageScanResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.ECR.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data StartImageScan = StartImageScan'
{
StartImageScan -> Maybe Text
registryId :: Prelude.Maybe Prelude.Text,
StartImageScan -> Text
repositoryName :: Prelude.Text,
StartImageScan -> ImageIdentifier
imageId :: ImageIdentifier
}
deriving (StartImageScan -> StartImageScan -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StartImageScan -> StartImageScan -> Bool
$c/= :: StartImageScan -> StartImageScan -> Bool
== :: StartImageScan -> StartImageScan -> Bool
$c== :: StartImageScan -> StartImageScan -> Bool
Prelude.Eq, ReadPrec [StartImageScan]
ReadPrec StartImageScan
Int -> ReadS StartImageScan
ReadS [StartImageScan]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [StartImageScan]
$creadListPrec :: ReadPrec [StartImageScan]
readPrec :: ReadPrec StartImageScan
$creadPrec :: ReadPrec StartImageScan
readList :: ReadS [StartImageScan]
$creadList :: ReadS [StartImageScan]
readsPrec :: Int -> ReadS StartImageScan
$creadsPrec :: Int -> ReadS StartImageScan
Prelude.Read, Int -> StartImageScan -> ShowS
[StartImageScan] -> ShowS
StartImageScan -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StartImageScan] -> ShowS
$cshowList :: [StartImageScan] -> ShowS
show :: StartImageScan -> String
$cshow :: StartImageScan -> String
showsPrec :: Int -> StartImageScan -> ShowS
$cshowsPrec :: Int -> StartImageScan -> ShowS
Prelude.Show, forall x. Rep StartImageScan x -> StartImageScan
forall x. StartImageScan -> Rep StartImageScan x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep StartImageScan x -> StartImageScan
$cfrom :: forall x. StartImageScan -> Rep StartImageScan x
Prelude.Generic)
newStartImageScan ::
Prelude.Text ->
ImageIdentifier ->
StartImageScan
newStartImageScan :: Text -> ImageIdentifier -> StartImageScan
newStartImageScan Text
pRepositoryName_ ImageIdentifier
pImageId_ =
StartImageScan'
{ $sel:registryId:StartImageScan' :: Maybe Text
registryId = forall a. Maybe a
Prelude.Nothing,
$sel:repositoryName:StartImageScan' :: Text
repositoryName = Text
pRepositoryName_,
$sel:imageId:StartImageScan' :: ImageIdentifier
imageId = ImageIdentifier
pImageId_
}
startImageScan_registryId :: Lens.Lens' StartImageScan (Prelude.Maybe Prelude.Text)
startImageScan_registryId :: Lens' StartImageScan (Maybe Text)
startImageScan_registryId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartImageScan' {Maybe Text
registryId :: Maybe Text
$sel:registryId:StartImageScan' :: StartImageScan -> Maybe Text
registryId} -> Maybe Text
registryId) (\s :: StartImageScan
s@StartImageScan' {} Maybe Text
a -> StartImageScan
s {$sel:registryId:StartImageScan' :: Maybe Text
registryId = Maybe Text
a} :: StartImageScan)
startImageScan_repositoryName :: Lens.Lens' StartImageScan Prelude.Text
startImageScan_repositoryName :: Lens' StartImageScan Text
startImageScan_repositoryName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartImageScan' {Text
repositoryName :: Text
$sel:repositoryName:StartImageScan' :: StartImageScan -> Text
repositoryName} -> Text
repositoryName) (\s :: StartImageScan
s@StartImageScan' {} Text
a -> StartImageScan
s {$sel:repositoryName:StartImageScan' :: Text
repositoryName = Text
a} :: StartImageScan)
startImageScan_imageId :: Lens.Lens' StartImageScan ImageIdentifier
startImageScan_imageId :: Lens' StartImageScan ImageIdentifier
startImageScan_imageId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartImageScan' {ImageIdentifier
imageId :: ImageIdentifier
$sel:imageId:StartImageScan' :: StartImageScan -> ImageIdentifier
imageId} -> ImageIdentifier
imageId) (\s :: StartImageScan
s@StartImageScan' {} ImageIdentifier
a -> StartImageScan
s {$sel:imageId:StartImageScan' :: ImageIdentifier
imageId = ImageIdentifier
a} :: StartImageScan)
instance Core.AWSRequest StartImageScan where
type
AWSResponse StartImageScan =
StartImageScanResponse
request :: (Service -> Service) -> StartImageScan -> Request StartImageScan
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 StartImageScan
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse StartImageScan)))
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 ImageIdentifier
-> Maybe ImageScanStatus
-> Maybe Text
-> Maybe Text
-> Int
-> StartImageScanResponse
StartImageScanResponse'
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
"imageId")
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
"imageScanStatus")
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
"registryId")
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
"repositoryName")
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 StartImageScan where
hashWithSalt :: Int -> StartImageScan -> Int
hashWithSalt Int
_salt StartImageScan' {Maybe Text
Text
ImageIdentifier
imageId :: ImageIdentifier
repositoryName :: Text
registryId :: Maybe Text
$sel:imageId:StartImageScan' :: StartImageScan -> ImageIdentifier
$sel:repositoryName:StartImageScan' :: StartImageScan -> Text
$sel:registryId:StartImageScan' :: StartImageScan -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
registryId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
repositoryName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ImageIdentifier
imageId
instance Prelude.NFData StartImageScan where
rnf :: StartImageScan -> ()
rnf StartImageScan' {Maybe Text
Text
ImageIdentifier
imageId :: ImageIdentifier
repositoryName :: Text
registryId :: Maybe Text
$sel:imageId:StartImageScan' :: StartImageScan -> ImageIdentifier
$sel:repositoryName:StartImageScan' :: StartImageScan -> Text
$sel:registryId:StartImageScan' :: StartImageScan -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
registryId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
repositoryName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ImageIdentifier
imageId
instance Data.ToHeaders StartImageScan where
toHeaders :: StartImageScan -> 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
"AmazonEC2ContainerRegistry_V20150921.StartImageScan" ::
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 StartImageScan where
toJSON :: StartImageScan -> Value
toJSON StartImageScan' {Maybe Text
Text
ImageIdentifier
imageId :: ImageIdentifier
repositoryName :: Text
registryId :: Maybe Text
$sel:imageId:StartImageScan' :: StartImageScan -> ImageIdentifier
$sel:repositoryName:StartImageScan' :: StartImageScan -> Text
$sel:registryId:StartImageScan' :: StartImageScan -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"registryId" 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
registryId,
forall a. a -> Maybe a
Prelude.Just
(Key
"repositoryName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
repositoryName),
forall a. a -> Maybe a
Prelude.Just (Key
"imageId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= ImageIdentifier
imageId)
]
)
instance Data.ToPath StartImageScan where
toPath :: StartImageScan -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery StartImageScan where
toQuery :: StartImageScan -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data StartImageScanResponse = StartImageScanResponse'
{ StartImageScanResponse -> Maybe ImageIdentifier
imageId :: Prelude.Maybe ImageIdentifier,
StartImageScanResponse -> Maybe ImageScanStatus
imageScanStatus :: Prelude.Maybe ImageScanStatus,
StartImageScanResponse -> Maybe Text
registryId :: Prelude.Maybe Prelude.Text,
StartImageScanResponse -> Maybe Text
repositoryName :: Prelude.Maybe Prelude.Text,
StartImageScanResponse -> Int
httpStatus :: Prelude.Int
}
deriving (StartImageScanResponse -> StartImageScanResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StartImageScanResponse -> StartImageScanResponse -> Bool
$c/= :: StartImageScanResponse -> StartImageScanResponse -> Bool
== :: StartImageScanResponse -> StartImageScanResponse -> Bool
$c== :: StartImageScanResponse -> StartImageScanResponse -> Bool
Prelude.Eq, ReadPrec [StartImageScanResponse]
ReadPrec StartImageScanResponse
Int -> ReadS StartImageScanResponse
ReadS [StartImageScanResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [StartImageScanResponse]
$creadListPrec :: ReadPrec [StartImageScanResponse]
readPrec :: ReadPrec StartImageScanResponse
$creadPrec :: ReadPrec StartImageScanResponse
readList :: ReadS [StartImageScanResponse]
$creadList :: ReadS [StartImageScanResponse]
readsPrec :: Int -> ReadS StartImageScanResponse
$creadsPrec :: Int -> ReadS StartImageScanResponse
Prelude.Read, Int -> StartImageScanResponse -> ShowS
[StartImageScanResponse] -> ShowS
StartImageScanResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StartImageScanResponse] -> ShowS
$cshowList :: [StartImageScanResponse] -> ShowS
show :: StartImageScanResponse -> String
$cshow :: StartImageScanResponse -> String
showsPrec :: Int -> StartImageScanResponse -> ShowS
$cshowsPrec :: Int -> StartImageScanResponse -> ShowS
Prelude.Show, forall x. Rep StartImageScanResponse x -> StartImageScanResponse
forall x. StartImageScanResponse -> Rep StartImageScanResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep StartImageScanResponse x -> StartImageScanResponse
$cfrom :: forall x. StartImageScanResponse -> Rep StartImageScanResponse x
Prelude.Generic)
newStartImageScanResponse ::
Prelude.Int ->
StartImageScanResponse
newStartImageScanResponse :: Int -> StartImageScanResponse
newStartImageScanResponse Int
pHttpStatus_ =
StartImageScanResponse'
{ $sel:imageId:StartImageScanResponse' :: Maybe ImageIdentifier
imageId = forall a. Maybe a
Prelude.Nothing,
$sel:imageScanStatus:StartImageScanResponse' :: Maybe ImageScanStatus
imageScanStatus = forall a. Maybe a
Prelude.Nothing,
$sel:registryId:StartImageScanResponse' :: Maybe Text
registryId = forall a. Maybe a
Prelude.Nothing,
$sel:repositoryName:StartImageScanResponse' :: Maybe Text
repositoryName = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:StartImageScanResponse' :: Int
httpStatus = Int
pHttpStatus_
}
startImageScanResponse_imageId :: Lens.Lens' StartImageScanResponse (Prelude.Maybe ImageIdentifier)
startImageScanResponse_imageId :: Lens' StartImageScanResponse (Maybe ImageIdentifier)
startImageScanResponse_imageId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartImageScanResponse' {Maybe ImageIdentifier
imageId :: Maybe ImageIdentifier
$sel:imageId:StartImageScanResponse' :: StartImageScanResponse -> Maybe ImageIdentifier
imageId} -> Maybe ImageIdentifier
imageId) (\s :: StartImageScanResponse
s@StartImageScanResponse' {} Maybe ImageIdentifier
a -> StartImageScanResponse
s {$sel:imageId:StartImageScanResponse' :: Maybe ImageIdentifier
imageId = Maybe ImageIdentifier
a} :: StartImageScanResponse)
startImageScanResponse_imageScanStatus :: Lens.Lens' StartImageScanResponse (Prelude.Maybe ImageScanStatus)
startImageScanResponse_imageScanStatus :: Lens' StartImageScanResponse (Maybe ImageScanStatus)
startImageScanResponse_imageScanStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartImageScanResponse' {Maybe ImageScanStatus
imageScanStatus :: Maybe ImageScanStatus
$sel:imageScanStatus:StartImageScanResponse' :: StartImageScanResponse -> Maybe ImageScanStatus
imageScanStatus} -> Maybe ImageScanStatus
imageScanStatus) (\s :: StartImageScanResponse
s@StartImageScanResponse' {} Maybe ImageScanStatus
a -> StartImageScanResponse
s {$sel:imageScanStatus:StartImageScanResponse' :: Maybe ImageScanStatus
imageScanStatus = Maybe ImageScanStatus
a} :: StartImageScanResponse)
startImageScanResponse_registryId :: Lens.Lens' StartImageScanResponse (Prelude.Maybe Prelude.Text)
startImageScanResponse_registryId :: Lens' StartImageScanResponse (Maybe Text)
startImageScanResponse_registryId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartImageScanResponse' {Maybe Text
registryId :: Maybe Text
$sel:registryId:StartImageScanResponse' :: StartImageScanResponse -> Maybe Text
registryId} -> Maybe Text
registryId) (\s :: StartImageScanResponse
s@StartImageScanResponse' {} Maybe Text
a -> StartImageScanResponse
s {$sel:registryId:StartImageScanResponse' :: Maybe Text
registryId = Maybe Text
a} :: StartImageScanResponse)
startImageScanResponse_repositoryName :: Lens.Lens' StartImageScanResponse (Prelude.Maybe Prelude.Text)
startImageScanResponse_repositoryName :: Lens' StartImageScanResponse (Maybe Text)
startImageScanResponse_repositoryName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartImageScanResponse' {Maybe Text
repositoryName :: Maybe Text
$sel:repositoryName:StartImageScanResponse' :: StartImageScanResponse -> Maybe Text
repositoryName} -> Maybe Text
repositoryName) (\s :: StartImageScanResponse
s@StartImageScanResponse' {} Maybe Text
a -> StartImageScanResponse
s {$sel:repositoryName:StartImageScanResponse' :: Maybe Text
repositoryName = Maybe Text
a} :: StartImageScanResponse)
startImageScanResponse_httpStatus :: Lens.Lens' StartImageScanResponse Prelude.Int
startImageScanResponse_httpStatus :: Lens' StartImageScanResponse Int
startImageScanResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartImageScanResponse' {Int
httpStatus :: Int
$sel:httpStatus:StartImageScanResponse' :: StartImageScanResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: StartImageScanResponse
s@StartImageScanResponse' {} Int
a -> StartImageScanResponse
s {$sel:httpStatus:StartImageScanResponse' :: Int
httpStatus = Int
a} :: StartImageScanResponse)
instance Prelude.NFData StartImageScanResponse where
rnf :: StartImageScanResponse -> ()
rnf StartImageScanResponse' {Int
Maybe Text
Maybe ImageIdentifier
Maybe ImageScanStatus
httpStatus :: Int
repositoryName :: Maybe Text
registryId :: Maybe Text
imageScanStatus :: Maybe ImageScanStatus
imageId :: Maybe ImageIdentifier
$sel:httpStatus:StartImageScanResponse' :: StartImageScanResponse -> Int
$sel:repositoryName:StartImageScanResponse' :: StartImageScanResponse -> Maybe Text
$sel:registryId:StartImageScanResponse' :: StartImageScanResponse -> Maybe Text
$sel:imageScanStatus:StartImageScanResponse' :: StartImageScanResponse -> Maybe ImageScanStatus
$sel:imageId:StartImageScanResponse' :: StartImageScanResponse -> Maybe ImageIdentifier
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe ImageIdentifier
imageId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ImageScanStatus
imageScanStatus
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
registryId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
repositoryName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus