{-# 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.ConnectCases.CreateField
(
CreateField (..),
newCreateField,
createField_description,
createField_domainId,
createField_name,
createField_type,
CreateFieldResponse (..),
newCreateFieldResponse,
createFieldResponse_httpStatus,
createFieldResponse_fieldArn,
createFieldResponse_fieldId,
)
where
import Amazonka.ConnectCases.Types
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
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data CreateField = CreateField'
{
CreateField -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
CreateField -> Text
domainId :: Prelude.Text,
CreateField -> Text
name :: Prelude.Text,
CreateField -> FieldType
type' :: FieldType
}
deriving (CreateField -> CreateField -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateField -> CreateField -> Bool
$c/= :: CreateField -> CreateField -> Bool
== :: CreateField -> CreateField -> Bool
$c== :: CreateField -> CreateField -> Bool
Prelude.Eq, ReadPrec [CreateField]
ReadPrec CreateField
Int -> ReadS CreateField
ReadS [CreateField]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateField]
$creadListPrec :: ReadPrec [CreateField]
readPrec :: ReadPrec CreateField
$creadPrec :: ReadPrec CreateField
readList :: ReadS [CreateField]
$creadList :: ReadS [CreateField]
readsPrec :: Int -> ReadS CreateField
$creadsPrec :: Int -> ReadS CreateField
Prelude.Read, Int -> CreateField -> ShowS
[CreateField] -> ShowS
CreateField -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateField] -> ShowS
$cshowList :: [CreateField] -> ShowS
show :: CreateField -> String
$cshow :: CreateField -> String
showsPrec :: Int -> CreateField -> ShowS
$cshowsPrec :: Int -> CreateField -> ShowS
Prelude.Show, forall x. Rep CreateField x -> CreateField
forall x. CreateField -> Rep CreateField x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateField x -> CreateField
$cfrom :: forall x. CreateField -> Rep CreateField x
Prelude.Generic)
newCreateField ::
Prelude.Text ->
Prelude.Text ->
FieldType ->
CreateField
newCreateField :: Text -> Text -> FieldType -> CreateField
newCreateField Text
pDomainId_ Text
pName_ FieldType
pType_ =
CreateField'
{ $sel:description:CreateField' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
$sel:domainId:CreateField' :: Text
domainId = Text
pDomainId_,
$sel:name:CreateField' :: Text
name = Text
pName_,
$sel:type':CreateField' :: FieldType
type' = FieldType
pType_
}
createField_description :: Lens.Lens' CreateField (Prelude.Maybe Prelude.Text)
createField_description :: Lens' CreateField (Maybe Text)
createField_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateField' {Maybe Text
description :: Maybe Text
$sel:description:CreateField' :: CreateField -> Maybe Text
description} -> Maybe Text
description) (\s :: CreateField
s@CreateField' {} Maybe Text
a -> CreateField
s {$sel:description:CreateField' :: Maybe Text
description = Maybe Text
a} :: CreateField)
createField_domainId :: Lens.Lens' CreateField Prelude.Text
createField_domainId :: Lens' CreateField Text
createField_domainId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateField' {Text
domainId :: Text
$sel:domainId:CreateField' :: CreateField -> Text
domainId} -> Text
domainId) (\s :: CreateField
s@CreateField' {} Text
a -> CreateField
s {$sel:domainId:CreateField' :: Text
domainId = Text
a} :: CreateField)
createField_name :: Lens.Lens' CreateField Prelude.Text
createField_name :: Lens' CreateField Text
createField_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateField' {Text
name :: Text
$sel:name:CreateField' :: CreateField -> Text
name} -> Text
name) (\s :: CreateField
s@CreateField' {} Text
a -> CreateField
s {$sel:name:CreateField' :: Text
name = Text
a} :: CreateField)
createField_type :: Lens.Lens' CreateField FieldType
createField_type :: Lens' CreateField FieldType
createField_type = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateField' {FieldType
type' :: FieldType
$sel:type':CreateField' :: CreateField -> FieldType
type'} -> FieldType
type') (\s :: CreateField
s@CreateField' {} FieldType
a -> CreateField
s {$sel:type':CreateField' :: FieldType
type' = FieldType
a} :: CreateField)
instance Core.AWSRequest CreateField where
type AWSResponse CreateField = CreateFieldResponse
request :: (Service -> Service) -> CreateField -> Request CreateField
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 CreateField
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateField)))
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 ->
Int -> Text -> Text -> CreateFieldResponse
CreateFieldResponse'
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))
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"fieldArn")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"fieldId")
)
instance Prelude.Hashable CreateField where
hashWithSalt :: Int -> CreateField -> Int
hashWithSalt Int
_salt CreateField' {Maybe Text
Text
FieldType
type' :: FieldType
name :: Text
domainId :: Text
description :: Maybe Text
$sel:type':CreateField' :: CreateField -> FieldType
$sel:name:CreateField' :: CreateField -> Text
$sel:domainId:CreateField' :: CreateField -> Text
$sel:description:CreateField' :: CreateField -> 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` Text
domainId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` FieldType
type'
instance Prelude.NFData CreateField where
rnf :: CreateField -> ()
rnf CreateField' {Maybe Text
Text
FieldType
type' :: FieldType
name :: Text
domainId :: Text
description :: Maybe Text
$sel:type':CreateField' :: CreateField -> FieldType
$sel:name:CreateField' :: CreateField -> Text
$sel:domainId:CreateField' :: CreateField -> Text
$sel:description:CreateField' :: CreateField -> 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 Text
domainId
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 FieldType
type'
instance Data.ToHeaders CreateField where
toHeaders :: CreateField -> 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 CreateField where
toJSON :: CreateField -> Value
toJSON CreateField' {Maybe Text
Text
FieldType
type' :: FieldType
name :: Text
domainId :: Text
description :: Maybe Text
$sel:type':CreateField' :: CreateField -> FieldType
$sel:name:CreateField' :: CreateField -> Text
$sel:domainId:CreateField' :: CreateField -> Text
$sel:description:CreateField' :: CreateField -> 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,
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
"type" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= FieldType
type')
]
)
instance Data.ToPath CreateField where
toPath :: CreateField -> ByteString
toPath CreateField' {Maybe Text
Text
FieldType
type' :: FieldType
name :: Text
domainId :: Text
description :: Maybe Text
$sel:type':CreateField' :: CreateField -> FieldType
$sel:name:CreateField' :: CreateField -> Text
$sel:domainId:CreateField' :: CreateField -> Text
$sel:description:CreateField' :: CreateField -> Maybe Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ByteString
"/domains/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
domainId, ByteString
"/fields"]
instance Data.ToQuery CreateField where
toQuery :: CreateField -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateFieldResponse = CreateFieldResponse'
{
CreateFieldResponse -> Int
httpStatus :: Prelude.Int,
CreateFieldResponse -> Text
fieldArn :: Prelude.Text,
CreateFieldResponse -> Text
fieldId :: Prelude.Text
}
deriving (CreateFieldResponse -> CreateFieldResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateFieldResponse -> CreateFieldResponse -> Bool
$c/= :: CreateFieldResponse -> CreateFieldResponse -> Bool
== :: CreateFieldResponse -> CreateFieldResponse -> Bool
$c== :: CreateFieldResponse -> CreateFieldResponse -> Bool
Prelude.Eq, ReadPrec [CreateFieldResponse]
ReadPrec CreateFieldResponse
Int -> ReadS CreateFieldResponse
ReadS [CreateFieldResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateFieldResponse]
$creadListPrec :: ReadPrec [CreateFieldResponse]
readPrec :: ReadPrec CreateFieldResponse
$creadPrec :: ReadPrec CreateFieldResponse
readList :: ReadS [CreateFieldResponse]
$creadList :: ReadS [CreateFieldResponse]
readsPrec :: Int -> ReadS CreateFieldResponse
$creadsPrec :: Int -> ReadS CreateFieldResponse
Prelude.Read, Int -> CreateFieldResponse -> ShowS
[CreateFieldResponse] -> ShowS
CreateFieldResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateFieldResponse] -> ShowS
$cshowList :: [CreateFieldResponse] -> ShowS
show :: CreateFieldResponse -> String
$cshow :: CreateFieldResponse -> String
showsPrec :: Int -> CreateFieldResponse -> ShowS
$cshowsPrec :: Int -> CreateFieldResponse -> ShowS
Prelude.Show, forall x. Rep CreateFieldResponse x -> CreateFieldResponse
forall x. CreateFieldResponse -> Rep CreateFieldResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateFieldResponse x -> CreateFieldResponse
$cfrom :: forall x. CreateFieldResponse -> Rep CreateFieldResponse x
Prelude.Generic)
newCreateFieldResponse ::
Prelude.Int ->
Prelude.Text ->
Prelude.Text ->
CreateFieldResponse
newCreateFieldResponse :: Int -> Text -> Text -> CreateFieldResponse
newCreateFieldResponse
Int
pHttpStatus_
Text
pFieldArn_
Text
pFieldId_ =
CreateFieldResponse'
{ $sel:httpStatus:CreateFieldResponse' :: Int
httpStatus = Int
pHttpStatus_,
$sel:fieldArn:CreateFieldResponse' :: Text
fieldArn = Text
pFieldArn_,
$sel:fieldId:CreateFieldResponse' :: Text
fieldId = Text
pFieldId_
}
createFieldResponse_httpStatus :: Lens.Lens' CreateFieldResponse Prelude.Int
createFieldResponse_httpStatus :: Lens' CreateFieldResponse Int
createFieldResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFieldResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateFieldResponse' :: CreateFieldResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateFieldResponse
s@CreateFieldResponse' {} Int
a -> CreateFieldResponse
s {$sel:httpStatus:CreateFieldResponse' :: Int
httpStatus = Int
a} :: CreateFieldResponse)
createFieldResponse_fieldArn :: Lens.Lens' CreateFieldResponse Prelude.Text
createFieldResponse_fieldArn :: Lens' CreateFieldResponse Text
createFieldResponse_fieldArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFieldResponse' {Text
fieldArn :: Text
$sel:fieldArn:CreateFieldResponse' :: CreateFieldResponse -> Text
fieldArn} -> Text
fieldArn) (\s :: CreateFieldResponse
s@CreateFieldResponse' {} Text
a -> CreateFieldResponse
s {$sel:fieldArn:CreateFieldResponse' :: Text
fieldArn = Text
a} :: CreateFieldResponse)
createFieldResponse_fieldId :: Lens.Lens' CreateFieldResponse Prelude.Text
createFieldResponse_fieldId :: Lens' CreateFieldResponse Text
createFieldResponse_fieldId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateFieldResponse' {Text
fieldId :: Text
$sel:fieldId:CreateFieldResponse' :: CreateFieldResponse -> Text
fieldId} -> Text
fieldId) (\s :: CreateFieldResponse
s@CreateFieldResponse' {} Text
a -> CreateFieldResponse
s {$sel:fieldId:CreateFieldResponse' :: Text
fieldId = Text
a} :: CreateFieldResponse)
instance Prelude.NFData CreateFieldResponse where
rnf :: CreateFieldResponse -> ()
rnf CreateFieldResponse' {Int
Text
fieldId :: Text
fieldArn :: Text
httpStatus :: Int
$sel:fieldId:CreateFieldResponse' :: CreateFieldResponse -> Text
$sel:fieldArn:CreateFieldResponse' :: CreateFieldResponse -> Text
$sel:httpStatus:CreateFieldResponse' :: CreateFieldResponse -> Int
..} =
forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
fieldArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
fieldId