{-# 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.FraudDetector.CreateVariable
-- 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 variable.
module Amazonka.FraudDetector.CreateVariable
  ( -- * Creating a Request
    CreateVariable (..),
    newCreateVariable,

    -- * Request Lenses
    createVariable_description,
    createVariable_tags,
    createVariable_variableType,
    createVariable_name,
    createVariable_dataType,
    createVariable_dataSource,
    createVariable_defaultValue,

    -- * Destructuring the Response
    CreateVariableResponse (..),
    newCreateVariableResponse,

    -- * Response Lenses
    createVariableResponse_httpStatus,
  )
where

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

-- | /See:/ 'newCreateVariable' smart constructor.
data CreateVariable = CreateVariable'
  { -- | The description.
    CreateVariable -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | A collection of key and value pairs.
    CreateVariable -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
    -- | The variable type. For more information see
    -- <https://docs.aws.amazon.com/frauddetector/latest/ug/create-a-variable.html#variable-types Variable types>.
    --
    -- Valid Values:
    -- @AUTH_CODE | AVS | BILLING_ADDRESS_L1 | BILLING_ADDRESS_L2 | BILLING_CITY | BILLING_COUNTRY | BILLING_NAME | BILLING_PHONE | BILLING_STATE | BILLING_ZIP | CARD_BIN | CATEGORICAL | CURRENCY_CODE | EMAIL_ADDRESS | FINGERPRINT | FRAUD_LABEL | FREE_FORM_TEXT | IP_ADDRESS | NUMERIC | ORDER_ID | PAYMENT_TYPE | PHONE_NUMBER | PRICE | PRODUCT_CATEGORY | SHIPPING_ADDRESS_L1 | SHIPPING_ADDRESS_L2 | SHIPPING_CITY | SHIPPING_COUNTRY | SHIPPING_NAME | SHIPPING_PHONE | SHIPPING_STATE | SHIPPING_ZIP | USERAGENT@
    CreateVariable -> Maybe Text
variableType :: Prelude.Maybe Prelude.Text,
    -- | The name of the variable.
    CreateVariable -> Text
name :: Prelude.Text,
    -- | The data type.
    CreateVariable -> DataType
dataType :: DataType,
    -- | The source of the data.
    CreateVariable -> DataSource
dataSource :: DataSource,
    -- | The default value for the variable when no value is received.
    CreateVariable -> Text
defaultValue :: Prelude.Text
  }
  deriving (CreateVariable -> CreateVariable -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateVariable -> CreateVariable -> Bool
$c/= :: CreateVariable -> CreateVariable -> Bool
== :: CreateVariable -> CreateVariable -> Bool
$c== :: CreateVariable -> CreateVariable -> Bool
Prelude.Eq, ReadPrec [CreateVariable]
ReadPrec CreateVariable
Int -> ReadS CreateVariable
ReadS [CreateVariable]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateVariable]
$creadListPrec :: ReadPrec [CreateVariable]
readPrec :: ReadPrec CreateVariable
$creadPrec :: ReadPrec CreateVariable
readList :: ReadS [CreateVariable]
$creadList :: ReadS [CreateVariable]
readsPrec :: Int -> ReadS CreateVariable
$creadsPrec :: Int -> ReadS CreateVariable
Prelude.Read, Int -> CreateVariable -> ShowS
[CreateVariable] -> ShowS
CreateVariable -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateVariable] -> ShowS
$cshowList :: [CreateVariable] -> ShowS
show :: CreateVariable -> String
$cshow :: CreateVariable -> String
showsPrec :: Int -> CreateVariable -> ShowS
$cshowsPrec :: Int -> CreateVariable -> ShowS
Prelude.Show, forall x. Rep CreateVariable x -> CreateVariable
forall x. CreateVariable -> Rep CreateVariable x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateVariable x -> CreateVariable
$cfrom :: forall x. CreateVariable -> Rep CreateVariable x
Prelude.Generic)

-- |
-- Create a value of 'CreateVariable' 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:
--
-- 'description', 'createVariable_description' - The description.
--
-- 'tags', 'createVariable_tags' - A collection of key and value pairs.
--
-- 'variableType', 'createVariable_variableType' - The variable type. For more information see
-- <https://docs.aws.amazon.com/frauddetector/latest/ug/create-a-variable.html#variable-types Variable types>.
--
-- Valid Values:
-- @AUTH_CODE | AVS | BILLING_ADDRESS_L1 | BILLING_ADDRESS_L2 | BILLING_CITY | BILLING_COUNTRY | BILLING_NAME | BILLING_PHONE | BILLING_STATE | BILLING_ZIP | CARD_BIN | CATEGORICAL | CURRENCY_CODE | EMAIL_ADDRESS | FINGERPRINT | FRAUD_LABEL | FREE_FORM_TEXT | IP_ADDRESS | NUMERIC | ORDER_ID | PAYMENT_TYPE | PHONE_NUMBER | PRICE | PRODUCT_CATEGORY | SHIPPING_ADDRESS_L1 | SHIPPING_ADDRESS_L2 | SHIPPING_CITY | SHIPPING_COUNTRY | SHIPPING_NAME | SHIPPING_PHONE | SHIPPING_STATE | SHIPPING_ZIP | USERAGENT@
--
-- 'name', 'createVariable_name' - The name of the variable.
--
-- 'dataType', 'createVariable_dataType' - The data type.
--
-- 'dataSource', 'createVariable_dataSource' - The source of the data.
--
-- 'defaultValue', 'createVariable_defaultValue' - The default value for the variable when no value is received.
newCreateVariable ::
  -- | 'name'
  Prelude.Text ->
  -- | 'dataType'
  DataType ->
  -- | 'dataSource'
  DataSource ->
  -- | 'defaultValue'
  Prelude.Text ->
  CreateVariable
newCreateVariable :: Text -> DataType -> DataSource -> Text -> CreateVariable
newCreateVariable
  Text
pName_
  DataType
pDataType_
  DataSource
pDataSource_
  Text
pDefaultValue_ =
    CreateVariable'
      { $sel:description:CreateVariable' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
        $sel:tags:CreateVariable' :: Maybe [Tag]
tags = forall a. Maybe a
Prelude.Nothing,
        $sel:variableType:CreateVariable' :: Maybe Text
variableType = forall a. Maybe a
Prelude.Nothing,
        $sel:name:CreateVariable' :: Text
name = Text
pName_,
        $sel:dataType:CreateVariable' :: DataType
dataType = DataType
pDataType_,
        $sel:dataSource:CreateVariable' :: DataSource
dataSource = DataSource
pDataSource_,
        $sel:defaultValue:CreateVariable' :: Text
defaultValue = Text
pDefaultValue_
      }

-- | The description.
createVariable_description :: Lens.Lens' CreateVariable (Prelude.Maybe Prelude.Text)
createVariable_description :: Lens' CreateVariable (Maybe Text)
createVariable_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateVariable' {Maybe Text
description :: Maybe Text
$sel:description:CreateVariable' :: CreateVariable -> Maybe Text
description} -> Maybe Text
description) (\s :: CreateVariable
s@CreateVariable' {} Maybe Text
a -> CreateVariable
s {$sel:description:CreateVariable' :: Maybe Text
description = Maybe Text
a} :: CreateVariable)

-- | A collection of key and value pairs.
createVariable_tags :: Lens.Lens' CreateVariable (Prelude.Maybe [Tag])
createVariable_tags :: Lens' CreateVariable (Maybe [Tag])
createVariable_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateVariable' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:CreateVariable' :: CreateVariable -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: CreateVariable
s@CreateVariable' {} Maybe [Tag]
a -> CreateVariable
s {$sel:tags:CreateVariable' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: CreateVariable) 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

-- | The variable type. For more information see
-- <https://docs.aws.amazon.com/frauddetector/latest/ug/create-a-variable.html#variable-types Variable types>.
--
-- Valid Values:
-- @AUTH_CODE | AVS | BILLING_ADDRESS_L1 | BILLING_ADDRESS_L2 | BILLING_CITY | BILLING_COUNTRY | BILLING_NAME | BILLING_PHONE | BILLING_STATE | BILLING_ZIP | CARD_BIN | CATEGORICAL | CURRENCY_CODE | EMAIL_ADDRESS | FINGERPRINT | FRAUD_LABEL | FREE_FORM_TEXT | IP_ADDRESS | NUMERIC | ORDER_ID | PAYMENT_TYPE | PHONE_NUMBER | PRICE | PRODUCT_CATEGORY | SHIPPING_ADDRESS_L1 | SHIPPING_ADDRESS_L2 | SHIPPING_CITY | SHIPPING_COUNTRY | SHIPPING_NAME | SHIPPING_PHONE | SHIPPING_STATE | SHIPPING_ZIP | USERAGENT@
createVariable_variableType :: Lens.Lens' CreateVariable (Prelude.Maybe Prelude.Text)
createVariable_variableType :: Lens' CreateVariable (Maybe Text)
createVariable_variableType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateVariable' {Maybe Text
variableType :: Maybe Text
$sel:variableType:CreateVariable' :: CreateVariable -> Maybe Text
variableType} -> Maybe Text
variableType) (\s :: CreateVariable
s@CreateVariable' {} Maybe Text
a -> CreateVariable
s {$sel:variableType:CreateVariable' :: Maybe Text
variableType = Maybe Text
a} :: CreateVariable)

-- | The name of the variable.
createVariable_name :: Lens.Lens' CreateVariable Prelude.Text
createVariable_name :: Lens' CreateVariable Text
createVariable_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateVariable' {Text
name :: Text
$sel:name:CreateVariable' :: CreateVariable -> Text
name} -> Text
name) (\s :: CreateVariable
s@CreateVariable' {} Text
a -> CreateVariable
s {$sel:name:CreateVariable' :: Text
name = Text
a} :: CreateVariable)

-- | The data type.
createVariable_dataType :: Lens.Lens' CreateVariable DataType
createVariable_dataType :: Lens' CreateVariable DataType
createVariable_dataType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateVariable' {DataType
dataType :: DataType
$sel:dataType:CreateVariable' :: CreateVariable -> DataType
dataType} -> DataType
dataType) (\s :: CreateVariable
s@CreateVariable' {} DataType
a -> CreateVariable
s {$sel:dataType:CreateVariable' :: DataType
dataType = DataType
a} :: CreateVariable)

-- | The source of the data.
createVariable_dataSource :: Lens.Lens' CreateVariable DataSource
createVariable_dataSource :: Lens' CreateVariable DataSource
createVariable_dataSource = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateVariable' {DataSource
dataSource :: DataSource
$sel:dataSource:CreateVariable' :: CreateVariable -> DataSource
dataSource} -> DataSource
dataSource) (\s :: CreateVariable
s@CreateVariable' {} DataSource
a -> CreateVariable
s {$sel:dataSource:CreateVariable' :: DataSource
dataSource = DataSource
a} :: CreateVariable)

-- | The default value for the variable when no value is received.
createVariable_defaultValue :: Lens.Lens' CreateVariable Prelude.Text
createVariable_defaultValue :: Lens' CreateVariable Text
createVariable_defaultValue = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateVariable' {Text
defaultValue :: Text
$sel:defaultValue:CreateVariable' :: CreateVariable -> Text
defaultValue} -> Text
defaultValue) (\s :: CreateVariable
s@CreateVariable' {} Text
a -> CreateVariable
s {$sel:defaultValue:CreateVariable' :: Text
defaultValue = Text
a} :: CreateVariable)

instance Core.AWSRequest CreateVariable where
  type
    AWSResponse CreateVariable =
      CreateVariableResponse
  request :: (Service -> Service) -> CreateVariable -> Request CreateVariable
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 CreateVariable
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateVariable)))
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 -> CreateVariableResponse
CreateVariableResponse'
            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 CreateVariable where
  hashWithSalt :: Int -> CreateVariable -> Int
hashWithSalt Int
_salt CreateVariable' {Maybe [Tag]
Maybe Text
Text
DataSource
DataType
defaultValue :: Text
dataSource :: DataSource
dataType :: DataType
name :: Text
variableType :: Maybe Text
tags :: Maybe [Tag]
description :: Maybe Text
$sel:defaultValue:CreateVariable' :: CreateVariable -> Text
$sel:dataSource:CreateVariable' :: CreateVariable -> DataSource
$sel:dataType:CreateVariable' :: CreateVariable -> DataType
$sel:name:CreateVariable' :: CreateVariable -> Text
$sel:variableType:CreateVariable' :: CreateVariable -> Maybe Text
$sel:tags:CreateVariable' :: CreateVariable -> Maybe [Tag]
$sel:description:CreateVariable' :: CreateVariable -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Tag]
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
variableType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` DataType
dataType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` DataSource
dataSource
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
defaultValue

instance Prelude.NFData CreateVariable where
  rnf :: CreateVariable -> ()
rnf CreateVariable' {Maybe [Tag]
Maybe Text
Text
DataSource
DataType
defaultValue :: Text
dataSource :: DataSource
dataType :: DataType
name :: Text
variableType :: Maybe Text
tags :: Maybe [Tag]
description :: Maybe Text
$sel:defaultValue:CreateVariable' :: CreateVariable -> Text
$sel:dataSource:CreateVariable' :: CreateVariable -> DataSource
$sel:dataType:CreateVariable' :: CreateVariable -> DataType
$sel:name:CreateVariable' :: CreateVariable -> Text
$sel:variableType:CreateVariable' :: CreateVariable -> Maybe Text
$sel:tags:CreateVariable' :: CreateVariable -> Maybe [Tag]
$sel:description:CreateVariable' :: CreateVariable -> Maybe Text
..} =
    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 [Tag]
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
variableType
      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 DataType
dataType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf DataSource
dataSource
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
defaultValue

instance Data.ToHeaders CreateVariable where
  toHeaders :: CreateVariable -> 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
"AWSHawksNestServiceFacade.CreateVariable" ::
                          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 CreateVariable where
  toJSON :: CreateVariable -> Value
toJSON CreateVariable' {Maybe [Tag]
Maybe Text
Text
DataSource
DataType
defaultValue :: Text
dataSource :: DataSource
dataType :: DataType
name :: Text
variableType :: Maybe Text
tags :: Maybe [Tag]
description :: Maybe Text
$sel:defaultValue:CreateVariable' :: CreateVariable -> Text
$sel:dataSource:CreateVariable' :: CreateVariable -> DataSource
$sel:dataType:CreateVariable' :: CreateVariable -> DataType
$sel:name:CreateVariable' :: CreateVariable -> Text
$sel:variableType:CreateVariable' :: CreateVariable -> Maybe Text
$sel:tags:CreateVariable' :: CreateVariable -> Maybe [Tag]
$sel:description:CreateVariable' :: CreateVariable -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (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
"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 [Tag]
tags,
            (Key
"variableType" 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
variableType,
            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
"dataType" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= DataType
dataType),
            forall a. a -> Maybe a
Prelude.Just (Key
"dataSource" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= DataSource
dataSource),
            forall a. a -> Maybe a
Prelude.Just (Key
"defaultValue" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
defaultValue)
          ]
      )

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

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

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

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

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

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