{-# 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.EC2.CreateVerifiedAccessInstance
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- An Amazon Web Services Verified Access instance is a regional entity
-- that evaluates application requests and grants access only when your
-- security requirements are met.
module Amazonka.EC2.CreateVerifiedAccessInstance
  ( -- * Creating a Request
    CreateVerifiedAccessInstance (..),
    newCreateVerifiedAccessInstance,

    -- * Request Lenses
    createVerifiedAccessInstance_clientToken,
    createVerifiedAccessInstance_description,
    createVerifiedAccessInstance_dryRun,
    createVerifiedAccessInstance_tagSpecifications,

    -- * Destructuring the Response
    CreateVerifiedAccessInstanceResponse (..),
    newCreateVerifiedAccessInstanceResponse,

    -- * Response Lenses
    createVerifiedAccessInstanceResponse_verifiedAccessInstance,
    createVerifiedAccessInstanceResponse_httpStatus,
  )
where

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

-- | /See:/ 'newCreateVerifiedAccessInstance' smart constructor.
data CreateVerifiedAccessInstance = CreateVerifiedAccessInstance'
  { -- | A unique, case-sensitive token that you provide to ensure idempotency of
    -- your modification request. For more information, see
    -- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency>.
    CreateVerifiedAccessInstance -> Maybe Text
clientToken :: Prelude.Maybe Prelude.Text,
    -- | A description for the Amazon Web Services Verified Access instance.
    CreateVerifiedAccessInstance -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | Checks whether you have the required permissions for the action, without
    -- actually making the request, and provides an error response. If you have
    -- the required permissions, the error response is @DryRunOperation@.
    -- Otherwise, it is @UnauthorizedOperation@.
    CreateVerifiedAccessInstance -> Maybe Bool
dryRun :: Prelude.Maybe Prelude.Bool,
    -- | The tags to assign to the Amazon Web Services Verified Access instance.
    CreateVerifiedAccessInstance -> Maybe [TagSpecification]
tagSpecifications :: Prelude.Maybe [TagSpecification]
  }
  deriving (CreateVerifiedAccessInstance
-> CreateVerifiedAccessInstance -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateVerifiedAccessInstance
-> CreateVerifiedAccessInstance -> Bool
$c/= :: CreateVerifiedAccessInstance
-> CreateVerifiedAccessInstance -> Bool
== :: CreateVerifiedAccessInstance
-> CreateVerifiedAccessInstance -> Bool
$c== :: CreateVerifiedAccessInstance
-> CreateVerifiedAccessInstance -> Bool
Prelude.Eq, ReadPrec [CreateVerifiedAccessInstance]
ReadPrec CreateVerifiedAccessInstance
Int -> ReadS CreateVerifiedAccessInstance
ReadS [CreateVerifiedAccessInstance]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateVerifiedAccessInstance]
$creadListPrec :: ReadPrec [CreateVerifiedAccessInstance]
readPrec :: ReadPrec CreateVerifiedAccessInstance
$creadPrec :: ReadPrec CreateVerifiedAccessInstance
readList :: ReadS [CreateVerifiedAccessInstance]
$creadList :: ReadS [CreateVerifiedAccessInstance]
readsPrec :: Int -> ReadS CreateVerifiedAccessInstance
$creadsPrec :: Int -> ReadS CreateVerifiedAccessInstance
Prelude.Read, Int -> CreateVerifiedAccessInstance -> ShowS
[CreateVerifiedAccessInstance] -> ShowS
CreateVerifiedAccessInstance -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateVerifiedAccessInstance] -> ShowS
$cshowList :: [CreateVerifiedAccessInstance] -> ShowS
show :: CreateVerifiedAccessInstance -> String
$cshow :: CreateVerifiedAccessInstance -> String
showsPrec :: Int -> CreateVerifiedAccessInstance -> ShowS
$cshowsPrec :: Int -> CreateVerifiedAccessInstance -> ShowS
Prelude.Show, forall x.
Rep CreateVerifiedAccessInstance x -> CreateVerifiedAccessInstance
forall x.
CreateVerifiedAccessInstance -> Rep CreateVerifiedAccessInstance x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateVerifiedAccessInstance x -> CreateVerifiedAccessInstance
$cfrom :: forall x.
CreateVerifiedAccessInstance -> Rep CreateVerifiedAccessInstance x
Prelude.Generic)

-- |
-- Create a value of 'CreateVerifiedAccessInstance' 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:
--
-- 'clientToken', 'createVerifiedAccessInstance_clientToken' - A unique, case-sensitive token that you provide to ensure idempotency of
-- your modification request. For more information, see
-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency>.
--
-- 'description', 'createVerifiedAccessInstance_description' - A description for the Amazon Web Services Verified Access instance.
--
-- 'dryRun', 'createVerifiedAccessInstance_dryRun' - Checks whether you have the required permissions for the action, without
-- actually making the request, and provides an error response. If you have
-- the required permissions, the error response is @DryRunOperation@.
-- Otherwise, it is @UnauthorizedOperation@.
--
-- 'tagSpecifications', 'createVerifiedAccessInstance_tagSpecifications' - The tags to assign to the Amazon Web Services Verified Access instance.
newCreateVerifiedAccessInstance ::
  CreateVerifiedAccessInstance
newCreateVerifiedAccessInstance :: CreateVerifiedAccessInstance
newCreateVerifiedAccessInstance =
  CreateVerifiedAccessInstance'
    { $sel:clientToken:CreateVerifiedAccessInstance' :: Maybe Text
clientToken =
        forall a. Maybe a
Prelude.Nothing,
      $sel:description:CreateVerifiedAccessInstance' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:dryRun:CreateVerifiedAccessInstance' :: Maybe Bool
dryRun = forall a. Maybe a
Prelude.Nothing,
      $sel:tagSpecifications:CreateVerifiedAccessInstance' :: Maybe [TagSpecification]
tagSpecifications = forall a. Maybe a
Prelude.Nothing
    }

-- | A unique, case-sensitive token that you provide to ensure idempotency of
-- your modification request. For more information, see
-- <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Ensuring Idempotency>.
createVerifiedAccessInstance_clientToken :: Lens.Lens' CreateVerifiedAccessInstance (Prelude.Maybe Prelude.Text)
createVerifiedAccessInstance_clientToken :: Lens' CreateVerifiedAccessInstance (Maybe Text)
createVerifiedAccessInstance_clientToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateVerifiedAccessInstance' {Maybe Text
clientToken :: Maybe Text
$sel:clientToken:CreateVerifiedAccessInstance' :: CreateVerifiedAccessInstance -> Maybe Text
clientToken} -> Maybe Text
clientToken) (\s :: CreateVerifiedAccessInstance
s@CreateVerifiedAccessInstance' {} Maybe Text
a -> CreateVerifiedAccessInstance
s {$sel:clientToken:CreateVerifiedAccessInstance' :: Maybe Text
clientToken = Maybe Text
a} :: CreateVerifiedAccessInstance)

-- | A description for the Amazon Web Services Verified Access instance.
createVerifiedAccessInstance_description :: Lens.Lens' CreateVerifiedAccessInstance (Prelude.Maybe Prelude.Text)
createVerifiedAccessInstance_description :: Lens' CreateVerifiedAccessInstance (Maybe Text)
createVerifiedAccessInstance_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateVerifiedAccessInstance' {Maybe Text
description :: Maybe Text
$sel:description:CreateVerifiedAccessInstance' :: CreateVerifiedAccessInstance -> Maybe Text
description} -> Maybe Text
description) (\s :: CreateVerifiedAccessInstance
s@CreateVerifiedAccessInstance' {} Maybe Text
a -> CreateVerifiedAccessInstance
s {$sel:description:CreateVerifiedAccessInstance' :: Maybe Text
description = Maybe Text
a} :: CreateVerifiedAccessInstance)

-- | Checks whether you have the required permissions for the action, without
-- actually making the request, and provides an error response. If you have
-- the required permissions, the error response is @DryRunOperation@.
-- Otherwise, it is @UnauthorizedOperation@.
createVerifiedAccessInstance_dryRun :: Lens.Lens' CreateVerifiedAccessInstance (Prelude.Maybe Prelude.Bool)
createVerifiedAccessInstance_dryRun :: Lens' CreateVerifiedAccessInstance (Maybe Bool)
createVerifiedAccessInstance_dryRun = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateVerifiedAccessInstance' {Maybe Bool
dryRun :: Maybe Bool
$sel:dryRun:CreateVerifiedAccessInstance' :: CreateVerifiedAccessInstance -> Maybe Bool
dryRun} -> Maybe Bool
dryRun) (\s :: CreateVerifiedAccessInstance
s@CreateVerifiedAccessInstance' {} Maybe Bool
a -> CreateVerifiedAccessInstance
s {$sel:dryRun:CreateVerifiedAccessInstance' :: Maybe Bool
dryRun = Maybe Bool
a} :: CreateVerifiedAccessInstance)

-- | The tags to assign to the Amazon Web Services Verified Access instance.
createVerifiedAccessInstance_tagSpecifications :: Lens.Lens' CreateVerifiedAccessInstance (Prelude.Maybe [TagSpecification])
createVerifiedAccessInstance_tagSpecifications :: Lens' CreateVerifiedAccessInstance (Maybe [TagSpecification])
createVerifiedAccessInstance_tagSpecifications = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateVerifiedAccessInstance' {Maybe [TagSpecification]
tagSpecifications :: Maybe [TagSpecification]
$sel:tagSpecifications:CreateVerifiedAccessInstance' :: CreateVerifiedAccessInstance -> Maybe [TagSpecification]
tagSpecifications} -> Maybe [TagSpecification]
tagSpecifications) (\s :: CreateVerifiedAccessInstance
s@CreateVerifiedAccessInstance' {} Maybe [TagSpecification]
a -> CreateVerifiedAccessInstance
s {$sel:tagSpecifications:CreateVerifiedAccessInstance' :: Maybe [TagSpecification]
tagSpecifications = Maybe [TagSpecification]
a} :: CreateVerifiedAccessInstance) 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

instance Core.AWSRequest CreateVerifiedAccessInstance where
  type
    AWSResponse CreateVerifiedAccessInstance =
      CreateVerifiedAccessInstanceResponse
  request :: (Service -> Service)
-> CreateVerifiedAccessInstance
-> Request CreateVerifiedAccessInstance
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.postQuery (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy CreateVerifiedAccessInstance
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse CreateVerifiedAccessInstance)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXML
      ( \Int
s ResponseHeaders
h [Node]
x ->
          Maybe VerifiedAccessInstance
-> Int -> CreateVerifiedAccessInstanceResponse
CreateVerifiedAccessInstanceResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"verifiedAccessInstance")
            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
    CreateVerifiedAccessInstance
  where
  hashWithSalt :: Int -> CreateVerifiedAccessInstance -> Int
hashWithSalt Int
_salt CreateVerifiedAccessInstance' {Maybe Bool
Maybe [TagSpecification]
Maybe Text
tagSpecifications :: Maybe [TagSpecification]
dryRun :: Maybe Bool
description :: Maybe Text
clientToken :: Maybe Text
$sel:tagSpecifications:CreateVerifiedAccessInstance' :: CreateVerifiedAccessInstance -> Maybe [TagSpecification]
$sel:dryRun:CreateVerifiedAccessInstance' :: CreateVerifiedAccessInstance -> Maybe Bool
$sel:description:CreateVerifiedAccessInstance' :: CreateVerifiedAccessInstance -> Maybe Text
$sel:clientToken:CreateVerifiedAccessInstance' :: CreateVerifiedAccessInstance -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
clientToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
dryRun
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [TagSpecification]
tagSpecifications

instance Prelude.NFData CreateVerifiedAccessInstance where
  rnf :: CreateVerifiedAccessInstance -> ()
rnf CreateVerifiedAccessInstance' {Maybe Bool
Maybe [TagSpecification]
Maybe Text
tagSpecifications :: Maybe [TagSpecification]
dryRun :: Maybe Bool
description :: Maybe Text
clientToken :: Maybe Text
$sel:tagSpecifications:CreateVerifiedAccessInstance' :: CreateVerifiedAccessInstance -> Maybe [TagSpecification]
$sel:dryRun:CreateVerifiedAccessInstance' :: CreateVerifiedAccessInstance -> Maybe Bool
$sel:description:CreateVerifiedAccessInstance' :: CreateVerifiedAccessInstance -> Maybe Text
$sel:clientToken:CreateVerifiedAccessInstance' :: CreateVerifiedAccessInstance -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
clientToken
      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 Bool
dryRun
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [TagSpecification]
tagSpecifications

instance Data.ToHeaders CreateVerifiedAccessInstance where
  toHeaders :: CreateVerifiedAccessInstance -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

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

instance Data.ToQuery CreateVerifiedAccessInstance where
  toQuery :: CreateVerifiedAccessInstance -> QueryString
toQuery CreateVerifiedAccessInstance' {Maybe Bool
Maybe [TagSpecification]
Maybe Text
tagSpecifications :: Maybe [TagSpecification]
dryRun :: Maybe Bool
description :: Maybe Text
clientToken :: Maybe Text
$sel:tagSpecifications:CreateVerifiedAccessInstance' :: CreateVerifiedAccessInstance -> Maybe [TagSpecification]
$sel:dryRun:CreateVerifiedAccessInstance' :: CreateVerifiedAccessInstance -> Maybe Bool
$sel:description:CreateVerifiedAccessInstance' :: CreateVerifiedAccessInstance -> Maybe Text
$sel:clientToken:CreateVerifiedAccessInstance' :: CreateVerifiedAccessInstance -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"Action"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: ( ByteString
"CreateVerifiedAccessInstance" ::
                      Prelude.ByteString
                  ),
        ByteString
"Version"
          forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2016-11-15" :: Prelude.ByteString),
        ByteString
"ClientToken" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
clientToken,
        ByteString
"Description" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Text
description,
        ByteString
"DryRun" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe Bool
dryRun,
        forall a. ToQuery a => a -> QueryString
Data.toQuery
          ( forall a.
(IsList a, ToQuery (Item a)) =>
ByteString -> a -> QueryString
Data.toQueryList ByteString
"TagSpecification"
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [TagSpecification]
tagSpecifications
          )
      ]

-- | /See:/ 'newCreateVerifiedAccessInstanceResponse' smart constructor.
data CreateVerifiedAccessInstanceResponse = CreateVerifiedAccessInstanceResponse'
  { -- | The ID of the Amazon Web Services Verified Access instance.
    CreateVerifiedAccessInstanceResponse
-> Maybe VerifiedAccessInstance
verifiedAccessInstance :: Prelude.Maybe VerifiedAccessInstance,
    -- | The response's http status code.
    CreateVerifiedAccessInstanceResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (CreateVerifiedAccessInstanceResponse
-> CreateVerifiedAccessInstanceResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateVerifiedAccessInstanceResponse
-> CreateVerifiedAccessInstanceResponse -> Bool
$c/= :: CreateVerifiedAccessInstanceResponse
-> CreateVerifiedAccessInstanceResponse -> Bool
== :: CreateVerifiedAccessInstanceResponse
-> CreateVerifiedAccessInstanceResponse -> Bool
$c== :: CreateVerifiedAccessInstanceResponse
-> CreateVerifiedAccessInstanceResponse -> Bool
Prelude.Eq, ReadPrec [CreateVerifiedAccessInstanceResponse]
ReadPrec CreateVerifiedAccessInstanceResponse
Int -> ReadS CreateVerifiedAccessInstanceResponse
ReadS [CreateVerifiedAccessInstanceResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateVerifiedAccessInstanceResponse]
$creadListPrec :: ReadPrec [CreateVerifiedAccessInstanceResponse]
readPrec :: ReadPrec CreateVerifiedAccessInstanceResponse
$creadPrec :: ReadPrec CreateVerifiedAccessInstanceResponse
readList :: ReadS [CreateVerifiedAccessInstanceResponse]
$creadList :: ReadS [CreateVerifiedAccessInstanceResponse]
readsPrec :: Int -> ReadS CreateVerifiedAccessInstanceResponse
$creadsPrec :: Int -> ReadS CreateVerifiedAccessInstanceResponse
Prelude.Read, Int -> CreateVerifiedAccessInstanceResponse -> ShowS
[CreateVerifiedAccessInstanceResponse] -> ShowS
CreateVerifiedAccessInstanceResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateVerifiedAccessInstanceResponse] -> ShowS
$cshowList :: [CreateVerifiedAccessInstanceResponse] -> ShowS
show :: CreateVerifiedAccessInstanceResponse -> String
$cshow :: CreateVerifiedAccessInstanceResponse -> String
showsPrec :: Int -> CreateVerifiedAccessInstanceResponse -> ShowS
$cshowsPrec :: Int -> CreateVerifiedAccessInstanceResponse -> ShowS
Prelude.Show, forall x.
Rep CreateVerifiedAccessInstanceResponse x
-> CreateVerifiedAccessInstanceResponse
forall x.
CreateVerifiedAccessInstanceResponse
-> Rep CreateVerifiedAccessInstanceResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateVerifiedAccessInstanceResponse x
-> CreateVerifiedAccessInstanceResponse
$cfrom :: forall x.
CreateVerifiedAccessInstanceResponse
-> Rep CreateVerifiedAccessInstanceResponse x
Prelude.Generic)

-- |
-- Create a value of 'CreateVerifiedAccessInstanceResponse' 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:
--
-- 'verifiedAccessInstance', 'createVerifiedAccessInstanceResponse_verifiedAccessInstance' - The ID of the Amazon Web Services Verified Access instance.
--
-- 'httpStatus', 'createVerifiedAccessInstanceResponse_httpStatus' - The response's http status code.
newCreateVerifiedAccessInstanceResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  CreateVerifiedAccessInstanceResponse
newCreateVerifiedAccessInstanceResponse :: Int -> CreateVerifiedAccessInstanceResponse
newCreateVerifiedAccessInstanceResponse Int
pHttpStatus_ =
  CreateVerifiedAccessInstanceResponse'
    { $sel:verifiedAccessInstance:CreateVerifiedAccessInstanceResponse' :: Maybe VerifiedAccessInstance
verifiedAccessInstance =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:CreateVerifiedAccessInstanceResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The ID of the Amazon Web Services Verified Access instance.
createVerifiedAccessInstanceResponse_verifiedAccessInstance :: Lens.Lens' CreateVerifiedAccessInstanceResponse (Prelude.Maybe VerifiedAccessInstance)
createVerifiedAccessInstanceResponse_verifiedAccessInstance :: Lens'
  CreateVerifiedAccessInstanceResponse (Maybe VerifiedAccessInstance)
createVerifiedAccessInstanceResponse_verifiedAccessInstance = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateVerifiedAccessInstanceResponse' {Maybe VerifiedAccessInstance
verifiedAccessInstance :: Maybe VerifiedAccessInstance
$sel:verifiedAccessInstance:CreateVerifiedAccessInstanceResponse' :: CreateVerifiedAccessInstanceResponse
-> Maybe VerifiedAccessInstance
verifiedAccessInstance} -> Maybe VerifiedAccessInstance
verifiedAccessInstance) (\s :: CreateVerifiedAccessInstanceResponse
s@CreateVerifiedAccessInstanceResponse' {} Maybe VerifiedAccessInstance
a -> CreateVerifiedAccessInstanceResponse
s {$sel:verifiedAccessInstance:CreateVerifiedAccessInstanceResponse' :: Maybe VerifiedAccessInstance
verifiedAccessInstance = Maybe VerifiedAccessInstance
a} :: CreateVerifiedAccessInstanceResponse)

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

instance
  Prelude.NFData
    CreateVerifiedAccessInstanceResponse
  where
  rnf :: CreateVerifiedAccessInstanceResponse -> ()
rnf CreateVerifiedAccessInstanceResponse' {Int
Maybe VerifiedAccessInstance
httpStatus :: Int
verifiedAccessInstance :: Maybe VerifiedAccessInstance
$sel:httpStatus:CreateVerifiedAccessInstanceResponse' :: CreateVerifiedAccessInstanceResponse -> Int
$sel:verifiedAccessInstance:CreateVerifiedAccessInstanceResponse' :: CreateVerifiedAccessInstanceResponse
-> Maybe VerifiedAccessInstance
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe VerifiedAccessInstance
verifiedAccessInstance
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus