diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,30 @@
+Copyright Capital Match (c) 2018
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided
+      with the distribution.
+
+    * Neither the name of Author name here nor the names of other
+      contributors may be used to endorse or promote products derived
+      from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/docusign-base-minimal.cabal b/docusign-base-minimal.cabal
new file mode 100644
--- /dev/null
+++ b/docusign-base-minimal.cabal
@@ -0,0 +1,132 @@
+name:           docusign-base-minimal
+version:        0.0.1
+synopsis:       Low-level bindings to the DocuSign API (only what is necessary for docusign-client)
+description:    DocuSign is an electronic signature technology and digital transaction
+                management. These are just low-level bindings to the API.
+category:       Business
+author:         Jonathan Knowles <mail@jonathanknowles.net>
+maintainer:     dev@capital-match.com
+license-file:   LICENSE
+license:        BSD3
+build-type:     Simple
+cabal-version:  >= 1.10
+
+source-repository head
+  type: git
+  location: https://github.com/capital-match/docusign-base-minimal
+
+library
+  exposed-modules:
+      DocuSign.Base
+      DocuSign.Base.Fields
+      DocuSign.Base.Types
+      DocuSign.Base.ContentTypes
+  other-modules:
+      -- directly used
+      DocuSign.Base.Types.Authentication
+      DocuSign.Base.Types.Document
+      DocuSign.Base.Types.EnvelopeDefinition
+      DocuSign.Base.Types.EnvelopeRecipientTabs
+      DocuSign.Base.Types.EnvelopeRecipients
+      DocuSign.Base.Types.EnvelopeSummary
+      DocuSign.Base.Types.EnvelopeViews
+      DocuSign.Base.Types.LoginAccount
+      DocuSign.Base.Types.RecipientViewRequest
+      DocuSign.Base.Types.SignHere
+      DocuSign.Base.Types.Signer
+
+      -- indirectly used
+      DocuSign.Base.Types.AccountCustomFields
+      DocuSign.Base.Types.AddressInformation
+      DocuSign.Base.Types.AddressInformationInput
+      DocuSign.Base.Types.Agent
+      DocuSign.Base.Types.Approve
+      DocuSign.Base.Types.Attachment
+      DocuSign.Base.Types.AuthenticationStatus
+      DocuSign.Base.Types.BccEmailAddress
+      DocuSign.Base.Types.CarbonCopy
+      DocuSign.Base.Types.CertifiedDelivery
+      DocuSign.Base.Types.Checkbox
+      DocuSign.Base.Types.Common
+      DocuSign.Base.Types.Company
+      DocuSign.Base.Types.CompositeTemplate
+      DocuSign.Base.Types.Date
+      DocuSign.Base.Types.DateSigned
+      DocuSign.Base.Types.Decline
+      DocuSign.Base.Types.DobInformationInput
+      DocuSign.Base.Types.DocumentVisibility
+      DocuSign.Base.Types.Editor
+      DocuSign.Base.Types.Email
+      DocuSign.Base.Types.EmailAddress
+      DocuSign.Base.Types.EnvelopeEmailSettings
+      DocuSign.Base.Types.EnvelopeEvent
+      DocuSign.Base.Types.EnvelopeId
+      DocuSign.Base.Types.EnvelopeLocks
+      DocuSign.Base.Types.Envelopes
+      DocuSign.Base.Types.ErrorDetails
+      DocuSign.Base.Types.EventNotification
+      DocuSign.Base.Types.EventResult
+      DocuSign.Base.Types.Expirations
+      DocuSign.Base.Types.FirstName
+      DocuSign.Base.Types.FormulaTab
+      DocuSign.Base.Types.FullName
+      DocuSign.Base.Types.IdCheckInformationInput
+      DocuSign.Base.Types.InPersonSigner
+      DocuSign.Base.Types.InitialHere
+      DocuSign.Base.Types.InlineTemplate
+      DocuSign.Base.Types.Intermediary
+      DocuSign.Base.Types.LastName
+      DocuSign.Base.Types.List
+      DocuSign.Base.Types.ListCustomField
+      DocuSign.Base.Types.ListItem
+      DocuSign.Base.Types.MatchBox
+      DocuSign.Base.Types.MergeField
+      DocuSign.Base.Types.Money
+      DocuSign.Base.Types.NameValue
+      DocuSign.Base.Types.NotaryHost
+      DocuSign.Base.Types.Note
+      DocuSign.Base.Types.Notification
+      DocuSign.Base.Types.PaymentDetails
+      DocuSign.Base.Types.PaymentLineItem
+      DocuSign.Base.Types.PropertyMetadata
+      DocuSign.Base.Types.Radio
+      DocuSign.Base.Types.RadioGroup
+      DocuSign.Base.Types.RecipientAttachment
+      DocuSign.Base.Types.RecipientEmailNotification
+      DocuSign.Base.Types.RecipientEvent
+      DocuSign.Base.Types.RecipientPhoneAuthentication
+      DocuSign.Base.Types.RecipientSAMLAuthentication
+      DocuSign.Base.Types.RecipientSMSAuthentication
+      DocuSign.Base.Types.RecipientSignatureInformation
+      DocuSign.Base.Types.RecipientSignatureProvider
+      DocuSign.Base.Types.RecipientSignatureProviderOptions
+      DocuSign.Base.Types.Reminders
+      DocuSign.Base.Types.SamlAssertionAttribute
+      DocuSign.Base.Types.ServerTemplate
+      DocuSign.Base.Types.SignerAttachment
+      DocuSign.Base.Types.SocialAuthentication
+      DocuSign.Base.Types.Ssn
+      DocuSign.Base.Types.Ssn4InformationInput
+      DocuSign.Base.Types.Ssn9InformationInput
+      DocuSign.Base.Types.TemplateRole
+      DocuSign.Base.Types.TextCustomField
+      DocuSign.Base.Types.Title
+      DocuSign.Base.Types.UserInfo
+      DocuSign.Base.Types.View
+      DocuSign.Base.Types.Zip
+
+  hs-source-dirs:
+      src
+  default-extensions: DeriveGeneric GeneralizedNewtypeDeriving
+  build-depends:
+      aeson
+      -- base upper version bound is nonsense
+    , base < 1000
+    , bytestring
+    , data-default
+    , http-media
+    , lens
+    , servant
+    , servant-client
+    , text
+  default-language: Haskell2010
diff --git a/src/DocuSign/Base.hs b/src/DocuSign/Base.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base.hs
@@ -0,0 +1,44 @@
+{-# LANGUAGE DataKinds         #-}
+{-# LANGUAGE FlexibleContexts  #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE RecordWildCards   #-}
+{-# LANGUAGE TypeFamilies      #-}
+{-# LANGUAGE TypeOperators     #-}
+
+{-# OPTIONS_GHC -freduction-depth=0 #-}
+
+module DocuSign.Base where
+
+import DocuSign.Base.ContentTypes
+import DocuSign.Base.Types
+import Servant.API
+
+import Data.Proxy                     ( Proxy (..) )
+import Data.Text                      ( Text )
+import Servant.API.Verbs              ( StdMethod (..)
+                                      , Verb )
+import Servant.Client                 ( ClientM
+                                      , client)
+
+type DocuSignAPI
+{- documentsGetDocument                                                     -} = "v2" :> "accounts" :> Capture "accountId" Text :> "envelopes" :> Capture "envelopeId" Text :> "documents" :> Capture "documentId" Text :> QueryParam "certificate" Text :> QueryParam "encoding" Text :> QueryParam "encrypt" Text :> QueryParam "language" Text :> QueryParam "recipient_id" Text :> QueryParam "show_changes" Text :> QueryParam "watermark" Text :> Verb 'GET 200 '[PDF] PDF
+{- envelopesPostEnvelopes                                                   -} :<|> "v2" :> "accounts" :> Capture "accountId" Text :> "envelopes" :> QueryParam "cdse_mode" Text :> QueryParam "completed_documents_only" Text :> QueryParam "merge_roles_on_draft" Text :> ReqBody '[JSON] EnvelopeDefinition :> Verb 'POST 200 '[JSON] EnvelopeSummary
+{- loginInformationGetLoginInformation                                      -} :<|> "v2" :> "login_information" :> QueryParam "api_password" Text :> QueryParam "embed_account_id_guid" Text :> QueryParam "include_account_id_guid" Text :> QueryParam "login_settings" Text :> Verb 'GET 200 '[JSON] Authentication
+{- viewsPostEnvelopeRecipientView                                           -} :<|> "v2" :> "accounts" :> Capture "accountId" Text :> "envelopes" :> Capture "envelopeId" Text :> "views" :> "recipient" :> ReqBody '[JSON] RecipientViewRequest :> Verb 'POST 200 '[JSON] EnvelopeViews
+
+data DocuSignClient m = DocuSignClient
+  { documentsGetDocument :: Text -> Text -> Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> m PDF
+  , envelopesPostEnvelopes :: Text -> Maybe Text -> Maybe Text -> Maybe Text -> EnvelopeDefinition -> m EnvelopeSummary
+  , loginInformationGetLoginInformation :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> m Authentication
+  , viewsPostEnvelopeRecipientView :: Text -> Text -> RecipientViewRequest -> m EnvelopeViews
+  }
+
+docuSignClient :: DocuSignClient ClientM
+docuSignClient = DocuSignClient {..}
+  where
+  (      documentsGetDocument
+    :<|> envelopesPostEnvelopes
+    :<|> loginInformationGetLoginInformation
+    :<|> viewsPostEnvelopeRecipientView
+    ) = client (Proxy :: Proxy DocuSignAPI)
+
diff --git a/src/DocuSign/Base/ContentTypes.hs b/src/DocuSign/Base/ContentTypes.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/ContentTypes.hs
@@ -0,0 +1,74 @@
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE OverloadedStrings     #-}
+
+module DocuSign.Base.ContentTypes
+  ( GIF
+  , JPEG
+  , PDF
+  , PNG
+  , fromBytes
+  , toBytes
+  ) where
+
+import Data.ByteString        ( ByteString )
+import Data.ByteString.Lazy   ( fromStrict
+                              , toStrict )
+import Data.Typeable          ( Typeable )
+import Network.HTTP.Media     ( (//) )
+import Servant.API            ( Accept
+                              , MimeRender
+                              , MimeUnrender
+                              , contentType
+                              , mimeRender
+                              , mimeUnrender )
+
+-- | Graphics Interchange Format
+newtype GIF = GIF ByteString
+  deriving Typeable
+
+-- | Joint Photographic Expert Group Format
+newtype JPEG = JPEG ByteString
+  deriving Typeable
+
+-- | Portable Document Format
+newtype PDF = PDF ByteString
+  deriving Typeable
+
+-- | Portable Network Graphics Format
+newtype PNG = PNG ByteString
+  deriving Typeable
+
+instance Show GIF  where show _ = "GIF"
+instance Show JPEG where show _ = "JPEG"
+instance Show PDF  where show _ = "PDF"
+instance Show PNG  where show _ = "PNG"
+
+instance Accept GIF  where contentType _ = "image"       // "gif"
+instance Accept JPEG where contentType _ = "image"       // "jpeg"
+instance Accept PDF  where contentType _ = "application" // "pdf"
+instance Accept PNG  where contentType _ = "image"       // "png"
+
+instance MimeRender GIF  GIF  where mimeRender _ = fromStrict . toBytes
+instance MimeRender JPEG JPEG where mimeRender _ = fromStrict . toBytes
+instance MimeRender PDF  PDF  where mimeRender _ = fromStrict . toBytes
+instance MimeRender PNG  PNG  where mimeRender _ = fromStrict . toBytes
+
+instance MimeUnrender GIF  GIF  where mimeUnrender _ = pure . fromBytes . toStrict
+instance MimeUnrender JPEG JPEG where mimeUnrender _ = pure . fromBytes . toStrict
+instance MimeUnrender PDF  PDF  where mimeUnrender _ = pure . fromBytes . toStrict
+instance MimeUnrender PNG  PNG  where mimeUnrender _ = pure . fromBytes . toStrict
+
+class ToBytes a where toBytes :: a -> ByteString
+
+instance ToBytes GIF  where toBytes (GIF  a) = a
+instance ToBytes JPEG where toBytes (JPEG a) = a
+instance ToBytes PDF  where toBytes (PDF  a) = a
+instance ToBytes PNG  where toBytes (PNG  a) = a
+
+class FromBytes a where fromBytes :: ByteString -> a
+
+instance FromBytes GIF  where fromBytes = GIF
+instance FromBytes JPEG where fromBytes = JPEG
+instance FromBytes PDF  where fromBytes = PDF
+instance FromBytes PNG  where fromBytes = PNG
+
diff --git a/src/DocuSign/Base/Fields.hs b/src/DocuSign/Base/Fields.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Fields.hs
@@ -0,0 +1,22 @@
+module DocuSign.Base.Fields
+  ( removeFieldLabelPrefix
+  , modifyFieldLabel
+  ) where
+
+import Control.Lens.Cons    ( _head )
+import Control.Lens.Setter  ( over )
+import Data.Aeson.Types     ( Options (..)
+                            , defaultOptions )
+
+import qualified Data.Char as C
+
+removeFieldLabelPrefix :: String -> Options
+removeFieldLabelPrefix p =
+  modifyFieldLabel (decapitalizeInitialChar . (drop $ length p)) defaultOptions
+
+modifyFieldLabel :: (String -> String) -> Options -> Options
+modifyFieldLabel m o = o { fieldLabelModifier = m . fieldLabelModifier o }
+
+decapitalizeInitialChar :: String -> String
+decapitalizeInitialChar = (over _head) C.toLower
+
diff --git a/src/DocuSign/Base/Types.hs b/src/DocuSign/Base/Types.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types.hs
@@ -0,0 +1,25 @@
+module DocuSign.Base.Types (
+    Authentication (..)
+  , Document (..)
+  , EnvelopeDefinition (..)
+  , EnvelopeRecipientTabs (..)
+  , EnvelopeRecipients (..)
+  , EnvelopeSummary (..)
+  , EnvelopeViews (..)
+  , LoginAccount (..)
+  , RecipientViewRequest (..)
+  , SignHere (..)
+  , Signer (..)
+  ) where
+
+import DocuSign.Base.Types.Authentication
+import DocuSign.Base.Types.Document
+import DocuSign.Base.Types.EnvelopeDefinition
+import DocuSign.Base.Types.EnvelopeRecipientTabs
+import DocuSign.Base.Types.EnvelopeRecipients
+import DocuSign.Base.Types.EnvelopeSummary
+import DocuSign.Base.Types.EnvelopeViews
+import DocuSign.Base.Types.LoginAccount
+import DocuSign.Base.Types.RecipientViewRequest
+import DocuSign.Base.Types.SignHere
+import DocuSign.Base.Types.Signer
diff --git a/src/DocuSign/Base/Types/AccountCustomFields.hs b/src/DocuSign/Base/Types/AccountCustomFields.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/AccountCustomFields.hs
@@ -0,0 +1,17 @@
+module DocuSign.Base.Types.AccountCustomFields where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ListCustomField
+import DocuSign.Base.Types.TextCustomField
+
+data AccountCustomFields = AccountCustomFields
+  { accountCustomFieldsListCustomFields :: Maybe [ListCustomField]
+  , accountCustomFieldsTextCustomFields :: Maybe [TextCustomField]
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON AccountCustomFields where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "accountCustomFields")
+instance ToJSON AccountCustomFields where
+  toJSON = genericToJSON (removeFieldLabelPrefix "accountCustomFields")
+
+instance Default AccountCustomFields
diff --git a/src/DocuSign/Base/Types/AddressInformation.hs b/src/DocuSign/Base/Types/AddressInformation.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/AddressInformation.hs
@@ -0,0 +1,21 @@
+module DocuSign.Base.Types.AddressInformation where
+
+import DocuSign.Base.Types.Common
+
+data AddressInformation = AddressInformation
+  { addressInformationCity    :: Maybe Text
+  , addressInformationCountry :: Maybe Text
+  , addressInformationFax     :: Maybe Text
+  , addressInformationPhone   :: Maybe Text
+  , addressInformationState   :: Maybe Text
+  , addressInformationStreet1 :: Maybe Text
+  , addressInformationStreet2 :: Maybe Text
+  , addressInformationZip     :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON AddressInformation where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "addressInformation")
+instance ToJSON AddressInformation where
+  toJSON = genericToJSON (removeFieldLabelPrefix "addressInformation")
+
+instance Default AddressInformation
diff --git a/src/DocuSign/Base/Types/AddressInformationInput.hs b/src/DocuSign/Base/Types/AddressInformationInput.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/AddressInformationInput.hs
@@ -0,0 +1,17 @@
+module DocuSign.Base.Types.AddressInformationInput where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.AddressInformation
+
+data AddressInformationInput = AddressInformationInput
+  { addressInformationInputAddressInformation :: Maybe AddressInformation
+  , addressInformationInputDisplayLevelCode   :: Maybe Text
+  , addressInformationInputReceiveInResponse  :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON AddressInformationInput where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "addressInformationInput")
+instance ToJSON AddressInformationInput where
+  toJSON = genericToJSON (removeFieldLabelPrefix "addressInformationInput")
+
+instance Default AddressInformationInput
diff --git a/src/DocuSign/Base/Types/Agent.hs b/src/DocuSign/Base/Types/Agent.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/Agent.hs
@@ -0,0 +1,66 @@
+module DocuSign.Base.Types.Agent where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.AuthenticationStatus
+import DocuSign.Base.Types.DocumentVisibility
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.IdCheckInformationInput
+import DocuSign.Base.Types.RecipientAttachment
+import DocuSign.Base.Types.RecipientEmailNotification
+import DocuSign.Base.Types.RecipientPhoneAuthentication
+import DocuSign.Base.Types.RecipientSAMLAuthentication
+import DocuSign.Base.Types.RecipientSMSAuthentication
+import DocuSign.Base.Types.SocialAuthentication
+import DocuSign.Base.Types.UserInfo
+
+data Agent = Agent
+  { agentAccessCode                            :: Maybe Text
+  , agentAddAccessCodeToEmail                  :: Maybe Text
+  , agentClientUserId                          :: Maybe Text
+  , agentCustomFields                          :: Maybe [Text]
+  , agentDeclinedDateTime                      :: Maybe Text
+  , agentDeclinedReason                        :: Maybe Text
+  , agentDeliveredDateTime                     :: Maybe Text
+  , agentDeliveryMethod                        :: Maybe Text
+  , agentDocumentVisibility                    :: Maybe [DocumentVisibility]
+  , agentEmail                                 :: Maybe Text
+  , agentEmailNotification                     :: Maybe RecipientEmailNotification
+  , agentEmailRecipientPostSigningURL          :: Maybe Text
+  , agentEmbeddedRecipientStartURL             :: Maybe Text
+  , agentErrorDetails                          :: Maybe ErrorDetails
+  , agentExcludedDocuments                     :: Maybe [Text]
+  , agentFaxNumber                             :: Maybe Text
+  , agentIdCheckConfigurationName              :: Maybe Text
+  , agentIdCheckInformationInput               :: Maybe IdCheckInformationInput
+  , agentInheritEmailNotificationConfiguration :: Maybe Text
+  , agentName                                  :: Maybe Text
+  , agentNote                                  :: Maybe Text
+  , agentPhoneAuthentication                   :: Maybe RecipientPhoneAuthentication
+  , agentRecipientAttachments                  :: Maybe [RecipientAttachment]
+  , agentRecipientAuthenticationStatus         :: Maybe AuthenticationStatus
+  , agentRecipientId                           :: Maybe Text
+  , agentRecipientIdGuid                       :: Maybe Text
+  , agentRequireIdLookup                       :: Maybe Text
+  , agentRoleName                              :: Maybe Text
+  , agentRoutingOrder                          :: Maybe Text
+  , agentSamlAuthentication                    :: Maybe RecipientSAMLAuthentication
+  , agentSentDateTime                          :: Maybe Text
+  , agentSignedDateTime                        :: Maybe Text
+  , agentSigningGroupId                        :: Maybe Text
+  , agentSigningGroupName                      :: Maybe Text
+  , agentSigningGroupUsers                     :: Maybe [UserInfo]
+  , agentSmsAuthentication                     :: Maybe RecipientSMSAuthentication
+  , agentSocialAuthentications                 :: Maybe [SocialAuthentication]
+  , agentStatus                                :: Maybe Text
+  , agentTemplateLocked                        :: Maybe Text
+  , agentTemplateRequired                      :: Maybe Text
+  , agentTotalTabCount                         :: Maybe Text
+  , agentUserId                                :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON Agent where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "agent")
+instance ToJSON Agent where
+  toJSON = genericToJSON (removeFieldLabelPrefix "agent")
+
+instance Default Agent
diff --git a/src/DocuSign/Base/Types/Approve.hs b/src/DocuSign/Base/Types/Approve.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/Approve.hs
@@ -0,0 +1,48 @@
+module DocuSign.Base.Types.Approve where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.MergeField
+
+data Approve = Approve
+  { approveAnchorCaseSensitive       :: Maybe Text
+  , approveAnchorHorizontalAlignment :: Maybe Text
+  , approveAnchorIgnoreIfNotPresent  :: Maybe Text
+  , approveAnchorMatchWholeWord      :: Maybe Text
+  , approveAnchorString              :: Maybe Text
+  , approveAnchorUnits               :: Maybe Text
+  , approveAnchorXOffset             :: Maybe Text
+  , approveAnchorYOffset             :: Maybe Text
+  , approveBold                      :: Maybe Text
+  , approveButtonText                :: Maybe Text
+  , approveConditionalParentLabel    :: Maybe Text
+  , approveConditionalParentValue    :: Maybe Text
+  , approveCustomTabId               :: Maybe Text
+  , approveDocumentId                :: Maybe Text
+  , approveErrorDetails              :: Maybe ErrorDetails
+  , approveFont                      :: Maybe Text
+  , approveFontColor                 :: Maybe Text
+  , approveFontSize                  :: Maybe Text
+  , approveHeight                    :: Maybe Int
+  , approveItalic                    :: Maybe Text
+  , approveMergeField                :: Maybe MergeField
+  , approvePageNumber                :: Maybe Text
+  , approveRecipientId               :: Maybe Text
+  , approveStatus                    :: Maybe Text
+  , approveTabId                     :: Maybe Text
+  , approveTabLabel                  :: Maybe Text
+  , approveTabOrder                  :: Maybe Text
+  , approveTemplateLocked            :: Maybe Text
+  , approveTemplateRequired          :: Maybe Text
+  , approveUnderline                 :: Maybe Text
+  , approveWidth                     :: Maybe Int
+  , approveXPosition                 :: Maybe Text
+  , approveYPosition                 :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON Approve where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "approve")
+instance ToJSON Approve where
+  toJSON = genericToJSON (removeFieldLabelPrefix "approve")
+
+instance Default Approve
diff --git a/src/DocuSign/Base/Types/Attachment.hs b/src/DocuSign/Base/Types/Attachment.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/Attachment.hs
@@ -0,0 +1,20 @@
+module DocuSign.Base.Types.Attachment where
+
+import DocuSign.Base.Types.Common
+
+data Attachment = Attachment
+  { attachmentAccessControl  :: Maybe Text
+  , attachmentAttachmentId   :: Maybe Text
+  , attachmentAttachmentType :: Maybe Text
+  , attachmentData           :: Maybe Text
+  , attachmentLabel          :: Maybe Text
+  , attachmentName           :: Maybe Text
+  , attachmentRemoteUrl      :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON Attachment where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "attachment")
+instance ToJSON Attachment where
+  toJSON = genericToJSON (removeFieldLabelPrefix "attachment")
+
+instance Default Attachment
diff --git a/src/DocuSign/Base/Types/Authentication.hs b/src/DocuSign/Base/Types/Authentication.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/Authentication.hs
@@ -0,0 +1,16 @@
+module DocuSign.Base.Types.Authentication where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.LoginAccount
+
+data Authentication = Authentication
+  { authenticationApiPassword   :: Maybe Text
+  , authenticationLoginAccounts :: Maybe [LoginAccount]
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON Authentication where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "authentication")
+instance ToJSON Authentication where
+  toJSON = genericToJSON (removeFieldLabelPrefix "authentication")
+
+instance Default Authentication
diff --git a/src/DocuSign/Base/Types/AuthenticationStatus.hs b/src/DocuSign/Base/Types/AuthenticationStatus.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/AuthenticationStatus.hs
@@ -0,0 +1,32 @@
+module DocuSign.Base.Types.AuthenticationStatus where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.EventResult
+
+data AuthenticationStatus = AuthenticationStatus
+  { authenticationStatusAccessCodeResult        :: Maybe EventResult
+  , authenticationStatusAgeVerifyResult         :: Maybe EventResult
+  , authenticationStatusAnySocialIDResult       :: Maybe EventResult
+  , authenticationStatusFacebookResult          :: Maybe EventResult
+  , authenticationStatusGoogleResult            :: Maybe EventResult
+  , authenticationStatusIdLookupResult          :: Maybe EventResult
+  , authenticationStatusIdQuestionsResult       :: Maybe EventResult
+  , authenticationStatusLinkedinResult          :: Maybe EventResult
+  , authenticationStatusLiveIDResult            :: Maybe EventResult
+  , authenticationStatusOfacResult              :: Maybe EventResult
+  , authenticationStatusOpenIDResult            :: Maybe EventResult
+  , authenticationStatusPhoneAuthResult         :: Maybe EventResult
+  , authenticationStatusSalesforceResult        :: Maybe EventResult
+  , authenticationStatusSignatureProviderResult :: Maybe EventResult
+  , authenticationStatusSmsAuthResult           :: Maybe EventResult
+  , authenticationStatusSTANPinResult           :: Maybe EventResult
+  , authenticationStatusTwitterResult           :: Maybe EventResult
+  , authenticationStatusYahooResult             :: Maybe EventResult
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON AuthenticationStatus where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "authenticationStatus")
+instance ToJSON AuthenticationStatus where
+  toJSON = genericToJSON (removeFieldLabelPrefix "authenticationStatus")
+
+instance Default AuthenticationStatus
diff --git a/src/DocuSign/Base/Types/BccEmailAddress.hs b/src/DocuSign/Base/Types/BccEmailAddress.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/BccEmailAddress.hs
@@ -0,0 +1,15 @@
+module DocuSign.Base.Types.BccEmailAddress where
+
+import DocuSign.Base.Types.Common
+
+data BccEmailAddress = BccEmailAddress
+  { bccEmailAddressBccEmailAddressId :: Maybe Text
+  , bccEmailAddressEmail             :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON BccEmailAddress where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "bccEmailAddress")
+instance ToJSON BccEmailAddress where
+  toJSON = genericToJSON (removeFieldLabelPrefix "bccEmailAddress")
+
+instance Default BccEmailAddress
diff --git a/src/DocuSign/Base/Types/CarbonCopy.hs b/src/DocuSign/Base/Types/CarbonCopy.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/CarbonCopy.hs
@@ -0,0 +1,66 @@
+module DocuSign.Base.Types.CarbonCopy where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.AuthenticationStatus
+import DocuSign.Base.Types.DocumentVisibility
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.IdCheckInformationInput
+import DocuSign.Base.Types.RecipientAttachment
+import DocuSign.Base.Types.RecipientEmailNotification
+import DocuSign.Base.Types.RecipientPhoneAuthentication
+import DocuSign.Base.Types.RecipientSAMLAuthentication
+import DocuSign.Base.Types.RecipientSMSAuthentication
+import DocuSign.Base.Types.SocialAuthentication
+import DocuSign.Base.Types.UserInfo
+
+data CarbonCopy = CarbonCopy
+  { carbonCopyAccessCode                            :: Maybe Text
+  , carbonCopyAddAccessCodeToEmail                  :: Maybe Text
+  , carbonCopyClientUserId                          :: Maybe Text
+  , carbonCopyCustomFields                          :: Maybe [Text]
+  , carbonCopyDeclinedDateTime                      :: Maybe Text
+  , carbonCopyDeclinedReason                        :: Maybe Text
+  , carbonCopyDeliveredDateTime                     :: Maybe Text
+  , carbonCopyDeliveryMethod                        :: Maybe Text
+  , carbonCopyDocumentVisibility                    :: Maybe [DocumentVisibility]
+  , carbonCopyEmail                                 :: Maybe Text
+  , carbonCopyEmailNotification                     :: Maybe RecipientEmailNotification
+  , carbonCopyEmailRecipientPostSigningURL          :: Maybe Text
+  , carbonCopyEmbeddedRecipientStartURL             :: Maybe Text
+  , carbonCopyErrorDetails                          :: Maybe ErrorDetails
+  , carbonCopyExcludedDocuments                     :: Maybe [Text]
+  , carbonCopyFaxNumber                             :: Maybe Text
+  , carbonCopyIdCheckConfigurationName              :: Maybe Text
+  , carbonCopyIdCheckInformationInput               :: Maybe IdCheckInformationInput
+  , carbonCopyInheritEmailNotificationConfiguration :: Maybe Text
+  , carbonCopyName                                  :: Maybe Text
+  , carbonCopyNote                                  :: Maybe Text
+  , carbonCopyPhoneAuthentication                   :: Maybe RecipientPhoneAuthentication
+  , carbonCopyRecipientAttachments                  :: Maybe [RecipientAttachment]
+  , carbonCopyRecipientAuthenticationStatus         :: Maybe AuthenticationStatus
+  , carbonCopyRecipientId                           :: Maybe Text
+  , carbonCopyRecipientIdGuid                       :: Maybe Text
+  , carbonCopyRequireIdLookup                       :: Maybe Text
+  , carbonCopyRoleName                              :: Maybe Text
+  , carbonCopyRoutingOrder                          :: Maybe Text
+  , carbonCopySamlAuthentication                    :: Maybe RecipientSAMLAuthentication
+  , carbonCopySentDateTime                          :: Maybe Text
+  , carbonCopySignedDateTime                        :: Maybe Text
+  , carbonCopySigningGroupId                        :: Maybe Text
+  , carbonCopySigningGroupName                      :: Maybe Text
+  , carbonCopySigningGroupUsers                     :: Maybe [UserInfo]
+  , carbonCopySmsAuthentication                     :: Maybe RecipientSMSAuthentication
+  , carbonCopySocialAuthentications                 :: Maybe [SocialAuthentication]
+  , carbonCopyStatus                                :: Maybe Text
+  , carbonCopyTemplateLocked                        :: Maybe Text
+  , carbonCopyTemplateRequired                      :: Maybe Text
+  , carbonCopyTotalTabCount                         :: Maybe Text
+  , carbonCopyUserId                                :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON CarbonCopy where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "carbonCopy")
+instance ToJSON CarbonCopy where
+  toJSON = genericToJSON (removeFieldLabelPrefix "carbonCopy")
+
+instance Default CarbonCopy
diff --git a/src/DocuSign/Base/Types/CertifiedDelivery.hs b/src/DocuSign/Base/Types/CertifiedDelivery.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/CertifiedDelivery.hs
@@ -0,0 +1,66 @@
+module DocuSign.Base.Types.CertifiedDelivery where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.AuthenticationStatus
+import DocuSign.Base.Types.DocumentVisibility
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.IdCheckInformationInput
+import DocuSign.Base.Types.RecipientAttachment
+import DocuSign.Base.Types.RecipientEmailNotification
+import DocuSign.Base.Types.RecipientPhoneAuthentication
+import DocuSign.Base.Types.RecipientSAMLAuthentication
+import DocuSign.Base.Types.RecipientSMSAuthentication
+import DocuSign.Base.Types.SocialAuthentication
+import DocuSign.Base.Types.UserInfo
+
+data CertifiedDelivery = CertifiedDelivery
+  { certifiedDeliveryAccessCode                            :: Maybe Text
+  , certifiedDeliveryAddAccessCodeToEmail                  :: Maybe Text
+  , certifiedDeliveryClientUserId                          :: Maybe Text
+  , certifiedDeliveryCustomFields                          :: Maybe [Text]
+  , certifiedDeliveryDeclinedDateTime                      :: Maybe Text
+  , certifiedDeliveryDeclinedReason                        :: Maybe Text
+  , certifiedDeliveryDeliveredDateTime                     :: Maybe Text
+  , certifiedDeliveryDeliveryMethod                        :: Maybe Text
+  , certifiedDeliveryDocumentVisibility                    :: Maybe [DocumentVisibility]
+  , certifiedDeliveryEmail                                 :: Maybe Text
+  , certifiedDeliveryEmailNotification                     :: Maybe RecipientEmailNotification
+  , certifiedDeliveryEmailRecipientPostSigningURL          :: Maybe Text
+  , certifiedDeliveryEmbeddedRecipientStartURL             :: Maybe Text
+  , certifiedDeliveryErrorDetails                          :: Maybe ErrorDetails
+  , certifiedDeliveryExcludedDocuments                     :: Maybe [Text]
+  , certifiedDeliveryFaxNumber                             :: Maybe Text
+  , certifiedDeliveryIdCheckConfigurationName              :: Maybe Text
+  , certifiedDeliveryIdCheckInformationInput               :: Maybe IdCheckInformationInput
+  , certifiedDeliveryInheritEmailNotificationConfiguration :: Maybe Text
+  , certifiedDeliveryName                                  :: Maybe Text
+  , certifiedDeliveryNote                                  :: Maybe Text
+  , certifiedDeliveryPhoneAuthentication                   :: Maybe RecipientPhoneAuthentication
+  , certifiedDeliveryRecipientAttachments                  :: Maybe [RecipientAttachment]
+  , certifiedDeliveryRecipientAuthenticationStatus         :: Maybe AuthenticationStatus
+  , certifiedDeliveryRecipientId                           :: Maybe Text
+  , certifiedDeliveryRecipientIdGuid                       :: Maybe Text
+  , certifiedDeliveryRequireIdLookup                       :: Maybe Text
+  , certifiedDeliveryRoleName                              :: Maybe Text
+  , certifiedDeliveryRoutingOrder                          :: Maybe Text
+  , certifiedDeliverySamlAuthentication                    :: Maybe RecipientSAMLAuthentication
+  , certifiedDeliverySentDateTime                          :: Maybe Text
+  , certifiedDeliverySignedDateTime                        :: Maybe Text
+  , certifiedDeliverySigningGroupId                        :: Maybe Text
+  , certifiedDeliverySigningGroupName                      :: Maybe Text
+  , certifiedDeliverySigningGroupUsers                     :: Maybe [UserInfo]
+  , certifiedDeliverySmsAuthentication                     :: Maybe RecipientSMSAuthentication
+  , certifiedDeliverySocialAuthentications                 :: Maybe [SocialAuthentication]
+  , certifiedDeliveryStatus                                :: Maybe Text
+  , certifiedDeliveryTemplateLocked                        :: Maybe Text
+  , certifiedDeliveryTemplateRequired                      :: Maybe Text
+  , certifiedDeliveryTotalTabCount                         :: Maybe Text
+  , certifiedDeliveryUserId                                :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON CertifiedDelivery where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "certifiedDelivery")
+instance ToJSON CertifiedDelivery where
+  toJSON = genericToJSON (removeFieldLabelPrefix "certifiedDelivery")
+
+instance Default CertifiedDelivery
diff --git a/src/DocuSign/Base/Types/Checkbox.hs b/src/DocuSign/Base/Types/Checkbox.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/Checkbox.hs
@@ -0,0 +1,45 @@
+module DocuSign.Base.Types.Checkbox where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.MergeField
+
+data Checkbox = Checkbox
+  { checkboxAnchorCaseSensitive          :: Maybe Text
+  , checkboxAnchorHorizontalAlignment    :: Maybe Text
+  , checkboxAnchorIgnoreIfNotPresent     :: Maybe Text
+  , checkboxAnchorMatchWholeWord         :: Maybe Text
+  , checkboxAnchorString                 :: Maybe Text
+  , checkboxAnchorUnits                  :: Maybe Text
+  , checkboxAnchorXOffset                :: Maybe Text
+  , checkboxAnchorYOffset                :: Maybe Text
+  , checkboxConditionalParentLabel       :: Maybe Text
+  , checkboxConditionalParentValue       :: Maybe Text
+  , checkboxCustomTabId                  :: Maybe Text
+  , checkboxDocumentId                   :: Maybe Text
+  , checkboxErrorDetails                 :: Maybe ErrorDetails
+  , checkboxLocked                       :: Maybe Text
+  , checkboxMergeField                   :: Maybe MergeField
+  , checkboxName                         :: Maybe Text
+  , checkboxPageNumber                   :: Maybe Text
+  , checkboxRecipientId                  :: Maybe Text
+  , checkboxRequired                     :: Maybe Text
+  , checkboxRequireInitialOnSharedChange :: Maybe Text
+  , checkboxSelected                     :: Maybe Text
+  , checkboxShared                       :: Maybe Text
+  , checkboxStatus                       :: Maybe Text
+  , checkboxTabId                        :: Maybe Text
+  , checkboxTabLabel                     :: Maybe Text
+  , checkboxTabOrder                     :: Maybe Text
+  , checkboxTemplateLocked               :: Maybe Text
+  , checkboxTemplateRequired             :: Maybe Text
+  , checkboxXPosition                    :: Maybe Text
+  , checkboxYPosition                    :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON Checkbox where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "checkbox")
+instance ToJSON Checkbox where
+  toJSON = genericToJSON (removeFieldLabelPrefix "checkbox")
+
+instance Default Checkbox
diff --git a/src/DocuSign/Base/Types/Common.hs b/src/DocuSign/Base/Types/Common.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/Common.hs
@@ -0,0 +1,19 @@
+module DocuSign.Base.Types.Common
+  ( FromJSON (..)
+  , ToJSON (..)
+  , genericParseJSON
+  , genericToJSON
+  , removeFieldLabelPrefix
+  , Default
+  , Text
+  , Generic
+  ) where
+
+import Data.Aeson               ( FromJSON (..)
+                                , ToJSON (..)
+                                , genericParseJSON
+                                , genericToJSON )
+import Data.Default             ( Default )
+import Data.Text                ( Text )
+import DocuSign.Base.Fields ( removeFieldLabelPrefix )
+import GHC.Generics             ( Generic )
diff --git a/src/DocuSign/Base/Types/Company.hs b/src/DocuSign/Base/Types/Company.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/Company.hs
@@ -0,0 +1,54 @@
+module DocuSign.Base.Types.Company where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.MergeField
+
+data Company = Company
+  { companyAnchorCaseSensitive       :: Maybe Text
+  , companyAnchorHorizontalAlignment :: Maybe Text
+  , companyAnchorIgnoreIfNotPresent  :: Maybe Text
+  , companyAnchorMatchWholeWord      :: Maybe Text
+  , companyAnchorString              :: Maybe Text
+  , companyAnchorUnits               :: Maybe Text
+  , companyAnchorXOffset             :: Maybe Text
+  , companyAnchorYOffset             :: Maybe Text
+  , companyBold                      :: Maybe Text
+  , companyConcealValueOnDocument    :: Maybe Text
+  , companyConditionalParentLabel    :: Maybe Text
+  , companyConditionalParentValue    :: Maybe Text
+  , companyCustomTabId               :: Maybe Text
+  , companyDisableAutoSize           :: Maybe Text
+  , companyDocumentId                :: Maybe Text
+  , companyErrorDetails              :: Maybe ErrorDetails
+  , companyFont                      :: Maybe Text
+  , companyFontColor                 :: Maybe Text
+  , companyFontSize                  :: Maybe Text
+  , companyItalic                    :: Maybe Text
+  , companyLocked                    :: Maybe Text
+  , companyMaxLength                 :: Maybe Int
+  , companyMergeField                :: Maybe MergeField
+  , companyName                      :: Maybe Text
+  , companyOriginalValue             :: Maybe Text
+  , companyPageNumber                :: Maybe Text
+  , companyRecipientId               :: Maybe Text
+  , companyRequired                  :: Maybe Text
+  , companyStatus                    :: Maybe Text
+  , companyTabId                     :: Maybe Text
+  , companyTabLabel                  :: Maybe Text
+  , companyTabOrder                  :: Maybe Text
+  , companyTemplateLocked            :: Maybe Text
+  , companyTemplateRequired          :: Maybe Text
+  , companyUnderline                 :: Maybe Text
+  , companyValue                     :: Maybe Text
+  , companyWidth                     :: Maybe Int
+  , companyXPosition                 :: Maybe Text
+  , companyYPosition                 :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON Company where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "company")
+instance ToJSON Company where
+  toJSON = genericToJSON (removeFieldLabelPrefix "company")
+
+instance Default Company
diff --git a/src/DocuSign/Base/Types/CompositeTemplate.hs b/src/DocuSign/Base/Types/CompositeTemplate.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/CompositeTemplate.hs
@@ -0,0 +1,21 @@
+module DocuSign.Base.Types.CompositeTemplate where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.Document
+import DocuSign.Base.Types.InlineTemplate
+import DocuSign.Base.Types.ServerTemplate
+
+data CompositeTemplate = CompositeTemplate
+  { compositeTemplateCompositeTemplateId         :: Maybe Text
+  , compositeTemplateDocument                    :: Maybe Document
+  , compositeTemplateInlineTemplates             :: Maybe [InlineTemplate]
+  , compositeTemplatePdfMetaDataTemplateSequence :: Maybe Text
+  , compositeTemplateServerTemplates             :: Maybe [ServerTemplate]
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON CompositeTemplate where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "compositeTemplate")
+instance ToJSON CompositeTemplate where
+  toJSON = genericToJSON (removeFieldLabelPrefix "compositeTemplate")
+
+instance Default CompositeTemplate
diff --git a/src/DocuSign/Base/Types/Date.hs b/src/DocuSign/Base/Types/Date.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/Date.hs
@@ -0,0 +1,60 @@
+module DocuSign.Base.Types.Date where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.MergeField
+
+data Date = Date
+  { dateAnchorCaseSensitive          :: Maybe Text
+  , dateAnchorHorizontalAlignment    :: Maybe Text
+  , dateAnchorIgnoreIfNotPresent     :: Maybe Text
+  , dateAnchorMatchWholeWord         :: Maybe Text
+  , dateAnchorString                 :: Maybe Text
+  , dateAnchorUnits                  :: Maybe Text
+  , dateAnchorXOffset                :: Maybe Text
+  , dateAnchorYOffset                :: Maybe Text
+  , dateBold                         :: Maybe Text
+  , dateConcealValueOnDocument       :: Maybe Text
+  , dateConditionalParentLabel       :: Maybe Text
+  , dateConditionalParentValue       :: Maybe Text
+  , dateCustomTabId                  :: Maybe Text
+  , dateDisableAutoSize              :: Maybe Text
+  , dateDocumentId                   :: Maybe Text
+  , dateErrorDetails                 :: Maybe ErrorDetails
+  , dateFont                         :: Maybe Text
+  , dateFontColor                    :: Maybe Text
+  , dateFontSize                     :: Maybe Text
+  , dateItalic                       :: Maybe Text
+  , dateLocked                       :: Maybe Text
+  , dateMaxLength                    :: Maybe Int
+  , dateMergeField                   :: Maybe MergeField
+  , dateName                         :: Maybe Text
+  , dateOriginalValue                :: Maybe Text
+  , datePageNumber                   :: Maybe Text
+  , dateRecipientId                  :: Maybe Text
+  , dateRequireAll                   :: Maybe Text
+  , dateRequired                     :: Maybe Text
+  , dateRequireInitialOnSharedChange :: Maybe Text
+  , dateSenderRequired               :: Maybe Text
+  , dateShared                       :: Maybe Text
+  , dateStatus                       :: Maybe Text
+  , dateTabId                        :: Maybe Text
+  , dateTabLabel                     :: Maybe Text
+  , dateTabOrder                     :: Maybe Text
+  , dateTemplateLocked               :: Maybe Text
+  , dateTemplateRequired             :: Maybe Text
+  , dateUnderline                    :: Maybe Text
+  , dateValidationMessage            :: Maybe Text
+  , dateValidationPattern            :: Maybe Text
+  , dateValue                        :: Maybe Text
+  , dateWidth                        :: Maybe Int
+  , dateXPosition                    :: Maybe Text
+  , dateYPosition                    :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON Date where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "date")
+instance ToJSON Date where
+  toJSON = genericToJSON (removeFieldLabelPrefix "date")
+
+instance Default Date
diff --git a/src/DocuSign/Base/Types/DateSigned.hs b/src/DocuSign/Base/Types/DateSigned.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/DateSigned.hs
@@ -0,0 +1,47 @@
+module DocuSign.Base.Types.DateSigned where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.MergeField
+
+data DateSigned = DateSigned
+  { dateSignedAnchorCaseSensitive       :: Maybe Text
+  , dateSignedAnchorHorizontalAlignment :: Maybe Text
+  , dateSignedAnchorIgnoreIfNotPresent  :: Maybe Text
+  , dateSignedAnchorMatchWholeWord      :: Maybe Text
+  , dateSignedAnchorString              :: Maybe Text
+  , dateSignedAnchorUnits               :: Maybe Text
+  , dateSignedAnchorXOffset             :: Maybe Text
+  , dateSignedAnchorYOffset             :: Maybe Text
+  , dateSignedBold                      :: Maybe Text
+  , dateSignedConditionalParentLabel    :: Maybe Text
+  , dateSignedConditionalParentValue    :: Maybe Text
+  , dateSignedCustomTabId               :: Maybe Text
+  , dateSignedDocumentId                :: Maybe Text
+  , dateSignedErrorDetails              :: Maybe ErrorDetails
+  , dateSignedFont                      :: Maybe Text
+  , dateSignedFontColor                 :: Maybe Text
+  , dateSignedFontSize                  :: Maybe Text
+  , dateSignedItalic                    :: Maybe Text
+  , dateSignedMergeField                :: Maybe MergeField
+  , dateSignedName                      :: Maybe Text
+  , dateSignedPageNumber                :: Maybe Text
+  , dateSignedRecipientId               :: Maybe Text
+  , dateSignedStatus                    :: Maybe Text
+  , dateSignedTabId                     :: Maybe Text
+  , dateSignedTabLabel                  :: Maybe Text
+  , dateSignedTabOrder                  :: Maybe Text
+  , dateSignedTemplateLocked            :: Maybe Text
+  , dateSignedTemplateRequired          :: Maybe Text
+  , dateSignedUnderline                 :: Maybe Text
+  , dateSignedValue                     :: Maybe Text
+  , dateSignedXPosition                 :: Maybe Text
+  , dateSignedYPosition                 :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON DateSigned where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "dateSigned")
+instance ToJSON DateSigned where
+  toJSON = genericToJSON (removeFieldLabelPrefix "dateSigned")
+
+instance Default DateSigned
diff --git a/src/DocuSign/Base/Types/Decline.hs b/src/DocuSign/Base/Types/Decline.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/Decline.hs
@@ -0,0 +1,49 @@
+module DocuSign.Base.Types.Decline where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.MergeField
+
+data Decline = Decline
+  { declineAnchorCaseSensitive       :: Maybe Text
+  , declineAnchorHorizontalAlignment :: Maybe Text
+  , declineAnchorIgnoreIfNotPresent  :: Maybe Text
+  , declineAnchorMatchWholeWord      :: Maybe Text
+  , declineAnchorString              :: Maybe Text
+  , declineAnchorUnits               :: Maybe Text
+  , declineAnchorXOffset             :: Maybe Text
+  , declineAnchorYOffset             :: Maybe Text
+  , declineBold                      :: Maybe Text
+  , declineButtonText                :: Maybe Text
+  , declineConditionalParentLabel    :: Maybe Text
+  , declineConditionalParentValue    :: Maybe Text
+  , declineCustomTabId               :: Maybe Text
+  , declineDeclineReason             :: Maybe Text
+  , declineDocumentId                :: Maybe Text
+  , declineErrorDetails              :: Maybe ErrorDetails
+  , declineFont                      :: Maybe Text
+  , declineFontColor                 :: Maybe Text
+  , declineFontSize                  :: Maybe Text
+  , declineHeight                    :: Maybe Int
+  , declineItalic                    :: Maybe Text
+  , declineMergeField                :: Maybe MergeField
+  , declinePageNumber                :: Maybe Text
+  , declineRecipientId               :: Maybe Text
+  , declineStatus                    :: Maybe Text
+  , declineTabId                     :: Maybe Text
+  , declineTabLabel                  :: Maybe Text
+  , declineTabOrder                  :: Maybe Text
+  , declineTemplateLocked            :: Maybe Text
+  , declineTemplateRequired          :: Maybe Text
+  , declineUnderline                 :: Maybe Text
+  , declineWidth                     :: Maybe Int
+  , declineXPosition                 :: Maybe Text
+  , declineYPosition                 :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON Decline where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "decline")
+instance ToJSON Decline where
+  toJSON = genericToJSON (removeFieldLabelPrefix "decline")
+
+instance Default Decline
diff --git a/src/DocuSign/Base/Types/DobInformationInput.hs b/src/DocuSign/Base/Types/DobInformationInput.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/DobInformationInput.hs
@@ -0,0 +1,16 @@
+module DocuSign.Base.Types.DobInformationInput where
+
+import DocuSign.Base.Types.Common
+
+data DobInformationInput = DobInformationInput
+  { dobInformationInputDateOfBirth       :: Maybe Text
+  , dobInformationInputDisplayLevelCode  :: Maybe Text
+  , dobInformationInputReceiveInResponse :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON DobInformationInput where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "dobInformationInput")
+instance ToJSON DobInformationInput where
+  toJSON = genericToJSON (removeFieldLabelPrefix "dobInformationInput")
+
+instance Default DobInformationInput
diff --git a/src/DocuSign/Base/Types/Document.hs b/src/DocuSign/Base/Types/Document.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/Document.hs
@@ -0,0 +1,36 @@
+module DocuSign.Base.Types.Document where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.MatchBox
+import DocuSign.Base.Types.NameValue
+
+data Document = Document
+  { documentApplyAnchorTabs         :: Maybe Text
+  , documentDisplay                 :: Maybe Text
+  , documentDocumentBase64          :: Maybe Text
+  , documentDocumentFields          :: Maybe [NameValue]
+  , documentDocumentGroup           :: Maybe Text
+  , documentDocumentId              :: Maybe Text
+  , documentEncryptedWithKeyManager :: Maybe Text
+  , documentFileExtension           :: Maybe Text
+  , documentFileFormatHint          :: Maybe Text
+  , documentIncludeInDownload       :: Maybe Text
+  , documentMatchBoxes              :: Maybe [MatchBox]
+  , documentName                    :: Maybe Text
+  , documentOrder                   :: Maybe Text
+  , documentPages                   :: Maybe Text
+  , documentPassword                :: Maybe Text
+  , documentRemoteUrl               :: Maybe Text
+  , documentSignerMustAcknowledge   :: Maybe Text
+  , documentTemplateLocked          :: Maybe Text
+  , documentTemplateRequired        :: Maybe Text
+  , documentTransformPdfFields      :: Maybe Text
+  , documentUri                     :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON Document where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "document")
+instance ToJSON Document where
+  toJSON = genericToJSON (removeFieldLabelPrefix "document")
+
+instance Default Document
diff --git a/src/DocuSign/Base/Types/DocumentVisibility.hs b/src/DocuSign/Base/Types/DocumentVisibility.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/DocumentVisibility.hs
@@ -0,0 +1,19 @@
+module DocuSign.Base.Types.DocumentVisibility where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+
+data DocumentVisibility = DocumentVisibility
+  { documentVisibilityDocumentId   :: Maybe Text
+  , documentVisibilityErrorDetails :: Maybe ErrorDetails
+  , documentVisibilityRecipientId  :: Maybe Text
+  , documentVisibilityRights       :: Maybe Text
+  , documentVisibilityVisible      :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON DocumentVisibility where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "documentVisibility")
+instance ToJSON DocumentVisibility where
+  toJSON = genericToJSON (removeFieldLabelPrefix "documentVisibility")
+
+instance Default DocumentVisibility
diff --git a/src/DocuSign/Base/Types/Editor.hs b/src/DocuSign/Base/Types/Editor.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/Editor.hs
@@ -0,0 +1,65 @@
+module DocuSign.Base.Types.Editor where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.AuthenticationStatus
+import DocuSign.Base.Types.DocumentVisibility
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.IdCheckInformationInput
+import DocuSign.Base.Types.RecipientAttachment
+import DocuSign.Base.Types.RecipientEmailNotification
+import DocuSign.Base.Types.RecipientPhoneAuthentication
+import DocuSign.Base.Types.RecipientSAMLAuthentication
+import DocuSign.Base.Types.RecipientSMSAuthentication
+import DocuSign.Base.Types.SocialAuthentication
+import DocuSign.Base.Types.UserInfo
+
+data Editor = Editor
+  { editorAccessCode                            :: Maybe Text
+  , editorAddAccessCodeToEmail                  :: Maybe Text
+  , editorClientUserId                          :: Maybe Text
+  , editorCustomFields                          :: Maybe [Text]
+  , editorDeclinedDateTime                      :: Maybe Text
+  , editorDeclinedReason                        :: Maybe Text
+  , editorDeliveredDateTime                     :: Maybe Text
+  , editorDeliveryMethod                        :: Maybe Text
+  , editorDocumentVisibility                    :: Maybe [DocumentVisibility]
+  , editorEmail                                 :: Maybe Text
+  , editorEmailNotification                     :: Maybe RecipientEmailNotification
+  , editorEmailRecipientPostSigningURL          :: Maybe Text
+  , editorEmbeddedRecipientStartURL             :: Maybe Text
+  , editorErrorDetails                          :: Maybe ErrorDetails
+  , editorFaxNumber                             :: Maybe Text
+  , editorIdCheckConfigurationName              :: Maybe Text
+  , editorIdCheckInformationInput               :: Maybe IdCheckInformationInput
+  , editorInheritEmailNotificationConfiguration :: Maybe Text
+  , editorName                                  :: Maybe Text
+  , editorNote                                  :: Maybe Text
+  , editorPhoneAuthentication                   :: Maybe RecipientPhoneAuthentication
+  , editorRecipientAttachments                  :: Maybe [RecipientAttachment]
+  , editorRecipientAuthenticationStatus         :: Maybe AuthenticationStatus
+  , editorRecipientId                           :: Maybe Text
+  , editorRecipientIdGuid                       :: Maybe Text
+  , editorRequireIdLookup                       :: Maybe Text
+  , editorRoleName                              :: Maybe Text
+  , editorRoutingOrder                          :: Maybe Text
+  , editorSamlAuthentication                    :: Maybe RecipientSAMLAuthentication
+  , editorSentDateTime                          :: Maybe Text
+  , editorSignedDateTime                        :: Maybe Text
+  , editorSigningGroupId                        :: Maybe Text
+  , editorSigningGroupName                      :: Maybe Text
+  , editorSigningGroupUsers                     :: Maybe [UserInfo]
+  , editorSmsAuthentication                     :: Maybe RecipientSMSAuthentication
+  , editorSocialAuthentications                 :: Maybe [SocialAuthentication]
+  , editorStatus                                :: Maybe Text
+  , editorTemplateLocked                        :: Maybe Text
+  , editorTemplateRequired                      :: Maybe Text
+  , editorTotalTabCount                         :: Maybe Text
+  , editorUserId                                :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON Editor where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "editor")
+instance ToJSON Editor where
+  toJSON = genericToJSON (removeFieldLabelPrefix "editor")
+
+instance Default Editor
diff --git a/src/DocuSign/Base/Types/Email.hs b/src/DocuSign/Base/Types/Email.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/Email.hs
@@ -0,0 +1,60 @@
+module DocuSign.Base.Types.Email where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.MergeField
+
+data Email = Email
+  { emailAnchorCaseSensitive          :: Maybe Text
+  , emailAnchorHorizontalAlignment    :: Maybe Text
+  , emailAnchorIgnoreIfNotPresent     :: Maybe Text
+  , emailAnchorMatchWholeWord         :: Maybe Text
+  , emailAnchorString                 :: Maybe Text
+  , emailAnchorUnits                  :: Maybe Text
+  , emailAnchorXOffset                :: Maybe Text
+  , emailAnchorYOffset                :: Maybe Text
+  , emailBold                         :: Maybe Text
+  , emailConcealValueOnDocument       :: Maybe Text
+  , emailConditionalParentLabel       :: Maybe Text
+  , emailConditionalParentValue       :: Maybe Text
+  , emailCustomTabId                  :: Maybe Text
+  , emailDisableAutoSize              :: Maybe Text
+  , emailDocumentId                   :: Maybe Text
+  , emailErrorDetails                 :: Maybe ErrorDetails
+  , emailFont                         :: Maybe Text
+  , emailFontColor                    :: Maybe Text
+  , emailFontSize                     :: Maybe Text
+  , emailItalic                       :: Maybe Text
+  , emailLocked                       :: Maybe Text
+  , emailMaxLength                    :: Maybe Int
+  , emailMergeField                   :: Maybe MergeField
+  , emailName                         :: Maybe Text
+  , emailOriginalValue                :: Maybe Text
+  , emailPageNumber                   :: Maybe Text
+  , emailRecipientId                  :: Maybe Text
+  , emailRequireAll                   :: Maybe Text
+  , emailRequired                     :: Maybe Text
+  , emailRequireInitialOnSharedChange :: Maybe Text
+  , emailSenderRequired               :: Maybe Text
+  , emailShared                       :: Maybe Text
+  , emailStatus                       :: Maybe Text
+  , emailTabId                        :: Maybe Text
+  , emailTabLabel                     :: Maybe Text
+  , emailTabOrder                     :: Maybe Text
+  , emailTemplateLocked               :: Maybe Text
+  , emailTemplateRequired             :: Maybe Text
+  , emailUnderline                    :: Maybe Text
+  , emailValidationMessage            :: Maybe Text
+  , emailValidationPattern            :: Maybe Text
+  , emailValue                        :: Maybe Text
+  , emailWidth                        :: Maybe Int
+  , emailXPosition                    :: Maybe Text
+  , emailYPosition                    :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON Email where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "email")
+instance ToJSON Email where
+  toJSON = genericToJSON (removeFieldLabelPrefix "email")
+
+instance Default Email
diff --git a/src/DocuSign/Base/Types/EmailAddress.hs b/src/DocuSign/Base/Types/EmailAddress.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/EmailAddress.hs
@@ -0,0 +1,47 @@
+module DocuSign.Base.Types.EmailAddress where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.MergeField
+
+data EmailAddress = EmailAddress
+  { emailAddressAnchorCaseSensitive       :: Maybe Text
+  , emailAddressAnchorHorizontalAlignment :: Maybe Text
+  , emailAddressAnchorIgnoreIfNotPresent  :: Maybe Text
+  , emailAddressAnchorMatchWholeWord      :: Maybe Text
+  , emailAddressAnchorString              :: Maybe Text
+  , emailAddressAnchorUnits               :: Maybe Text
+  , emailAddressAnchorXOffset             :: Maybe Text
+  , emailAddressAnchorYOffset             :: Maybe Text
+  , emailAddressBold                      :: Maybe Text
+  , emailAddressConditionalParentLabel    :: Maybe Text
+  , emailAddressConditionalParentValue    :: Maybe Text
+  , emailAddressCustomTabId               :: Maybe Text
+  , emailAddressDocumentId                :: Maybe Text
+  , emailAddressErrorDetails              :: Maybe ErrorDetails
+  , emailAddressFont                      :: Maybe Text
+  , emailAddressFontColor                 :: Maybe Text
+  , emailAddressFontSize                  :: Maybe Text
+  , emailAddressItalic                    :: Maybe Text
+  , emailAddressMergeField                :: Maybe MergeField
+  , emailAddressName                      :: Maybe Text
+  , emailAddressPageNumber                :: Maybe Text
+  , emailAddressRecipientId               :: Maybe Text
+  , emailAddressStatus                    :: Maybe Text
+  , emailAddressTabId                     :: Maybe Text
+  , emailAddressTabLabel                  :: Maybe Text
+  , emailAddressTabOrder                  :: Maybe Text
+  , emailAddressTemplateLocked            :: Maybe Text
+  , emailAddressTemplateRequired          :: Maybe Text
+  , emailAddressUnderline                 :: Maybe Text
+  , emailAddressValue                     :: Maybe Text
+  , emailAddressXPosition                 :: Maybe Text
+  , emailAddressYPosition                 :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON EmailAddress where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "emailAddress")
+instance ToJSON EmailAddress where
+  toJSON = genericToJSON (removeFieldLabelPrefix "emailAddress")
+
+instance Default EmailAddress
diff --git a/src/DocuSign/Base/Types/EnvelopeDefinition.hs b/src/DocuSign/Base/Types/EnvelopeDefinition.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/EnvelopeDefinition.hs
@@ -0,0 +1,79 @@
+module DocuSign.Base.Types.EnvelopeDefinition where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.AccountCustomFields
+import DocuSign.Base.Types.Attachment
+import DocuSign.Base.Types.CompositeTemplate
+import DocuSign.Base.Types.Document
+import DocuSign.Base.Types.EnvelopeEmailSettings
+import DocuSign.Base.Types.EnvelopeLocks
+import DocuSign.Base.Types.EnvelopeRecipients
+import DocuSign.Base.Types.EventNotification
+import DocuSign.Base.Types.Notification
+import DocuSign.Base.Types.TemplateRole
+
+data EnvelopeDefinition = EnvelopeDefinition
+  { envelopeDefinitionAccessibility               :: Maybe Text
+  , envelopeDefinitionAllowMarkup                 :: Maybe Text
+  , envelopeDefinitionAllowReassign               :: Maybe Text
+  , envelopeDefinitionAllowRecipientRecursion     :: Maybe Text
+  , envelopeDefinitionAsynchronous                :: Maybe Text
+  , envelopeDefinitionAttachments                 :: Maybe [Attachment]
+  , envelopeDefinitionAttachmentsUri              :: Maybe Text
+  , envelopeDefinitionAuthoritativeCopy           :: Maybe Text
+  , envelopeDefinitionAutoNavigation              :: Maybe Text
+  , envelopeDefinitionBrandId                     :: Maybe Text
+  , envelopeDefinitionBrandLock                   :: Maybe Text
+  , envelopeDefinitionCertificateUri              :: Maybe Text
+  , envelopeDefinitionCompletedDateTime           :: Maybe Text
+  , envelopeDefinitionCompositeTemplates          :: Maybe [CompositeTemplate]
+  , envelopeDefinitionCreatedDateTime             :: Maybe Text
+  , envelopeDefinitionCustomFields                :: Maybe AccountCustomFields
+  , envelopeDefinitionCustomFieldsUri             :: Maybe Text
+  , envelopeDefinitionDeclinedDateTime            :: Maybe Text
+  , envelopeDefinitionDeletedDateTime             :: Maybe Text
+  , envelopeDefinitionDeliveredDateTime           :: Maybe Text
+  , envelopeDefinitionDocuments                   :: Maybe [Document]
+  , envelopeDefinitionDocumentsCombinedUri        :: Maybe Text
+  , envelopeDefinitionDocumentsUri                :: Maybe Text
+  , envelopeDefinitionEmailBlurb                  :: Maybe Text
+  , envelopeDefinitionEmailSettings               :: Maybe EnvelopeEmailSettings
+  , envelopeDefinitionEmailSubject                :: Maybe Text
+  , envelopeDefinitionEnableWetSign               :: Maybe Text
+  , envelopeDefinitionEnforceSignerVisibility     :: Maybe Text
+  , envelopeDefinitionEnvelopeId                  :: Maybe Text
+  , envelopeDefinitionEnvelopeIdStamping          :: Maybe Text
+  , envelopeDefinitionEnvelopeUri                 :: Maybe Text
+  , envelopeDefinitionEventNotification           :: Maybe EventNotification
+  , envelopeDefinitionInitialSentDateTime         :: Maybe Text
+  , envelopeDefinitionIs21CFRPart11               :: Maybe Text
+  , envelopeDefinitionIsSignatureProviderEnvelope :: Maybe Text
+  , envelopeDefinitionLastModifiedDateTime        :: Maybe Text
+  , envelopeDefinitionLockInformation             :: Maybe EnvelopeLocks
+  , envelopeDefinitionMessageLock                 :: Maybe Text
+  , envelopeDefinitionNotification                :: Maybe Notification
+  , envelopeDefinitionNotificationUri             :: Maybe Text
+  , envelopeDefinitionPassword                    :: Maybe Text
+  , envelopeDefinitionPurgeState                  :: Maybe Text
+  , envelopeDefinitionRecipients                  :: Maybe EnvelopeRecipients
+  , envelopeDefinitionRecipientsLock              :: Maybe Text
+  , envelopeDefinitionRecipientsUri               :: Maybe Text
+  , envelopeDefinitionSentDateTime                :: Maybe Text
+  , envelopeDefinitionSigningLocation             :: Maybe Text
+  , envelopeDefinitionStatus                      :: Maybe Text
+  , envelopeDefinitionStatusChangedDateTime       :: Maybe Text
+  , envelopeDefinitionTemplateId                  :: Maybe Text
+  , envelopeDefinitionTemplateRoles               :: Maybe [TemplateRole]
+  , envelopeDefinitionTemplatesUri                :: Maybe Text
+  , envelopeDefinitionTransactionId               :: Maybe Text
+  , envelopeDefinitionUseDisclosure               :: Maybe Text
+  , envelopeDefinitionVoidedDateTime              :: Maybe Text
+  , envelopeDefinitionVoidedReason                :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON EnvelopeDefinition where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "envelopeDefinition")
+instance ToJSON EnvelopeDefinition where
+  toJSON = genericToJSON (removeFieldLabelPrefix "envelopeDefinition")
+
+instance Default EnvelopeDefinition
diff --git a/src/DocuSign/Base/Types/EnvelopeEmailSettings.hs b/src/DocuSign/Base/Types/EnvelopeEmailSettings.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/EnvelopeEmailSettings.hs
@@ -0,0 +1,17 @@
+module DocuSign.Base.Types.EnvelopeEmailSettings where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.BccEmailAddress
+
+data EnvelopeEmailSettings = EnvelopeEmailSettings
+  { envelopeEmailSettingsBccEmailAddresses         :: Maybe [BccEmailAddress]
+  , envelopeEmailSettingsReplyEmailAddressOverride :: Maybe Text
+  , envelopeEmailSettingsReplyEmailNameOverride    :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON EnvelopeEmailSettings where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "envelopeEmailSettings")
+instance ToJSON EnvelopeEmailSettings where
+  toJSON = genericToJSON (removeFieldLabelPrefix "envelopeEmailSettings")
+
+instance Default EnvelopeEmailSettings
diff --git a/src/DocuSign/Base/Types/EnvelopeEvent.hs b/src/DocuSign/Base/Types/EnvelopeEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/EnvelopeEvent.hs
@@ -0,0 +1,15 @@
+module DocuSign.Base.Types.EnvelopeEvent where
+
+import DocuSign.Base.Types.Common
+
+data EnvelopeEvent = EnvelopeEvent
+  { envelopeEventEnvelopeEventStatusCode :: Maybe Text
+  , envelopeEventIncludeDocuments        :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON EnvelopeEvent where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "envelopeEvent")
+instance ToJSON EnvelopeEvent where
+  toJSON = genericToJSON (removeFieldLabelPrefix "envelopeEvent")
+
+instance Default EnvelopeEvent
diff --git a/src/DocuSign/Base/Types/EnvelopeId.hs b/src/DocuSign/Base/Types/EnvelopeId.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/EnvelopeId.hs
@@ -0,0 +1,46 @@
+module DocuSign.Base.Types.EnvelopeId where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.MergeField
+
+data EnvelopeId = EnvelopeId
+  { envelopeIdAnchorCaseSensitive       :: Maybe Text
+  , envelopeIdAnchorHorizontalAlignment :: Maybe Text
+  , envelopeIdAnchorIgnoreIfNotPresent  :: Maybe Text
+  , envelopeIdAnchorMatchWholeWord      :: Maybe Text
+  , envelopeIdAnchorString              :: Maybe Text
+  , envelopeIdAnchorUnits               :: Maybe Text
+  , envelopeIdAnchorXOffset             :: Maybe Text
+  , envelopeIdAnchorYOffset             :: Maybe Text
+  , envelopeIdBold                      :: Maybe Text
+  , envelopeIdConditionalParentLabel    :: Maybe Text
+  , envelopeIdConditionalParentValue    :: Maybe Text
+  , envelopeIdCustomTabId               :: Maybe Text
+  , envelopeIdDocumentId                :: Maybe Text
+  , envelopeIdErrorDetails              :: Maybe ErrorDetails
+  , envelopeIdFont                      :: Maybe Text
+  , envelopeIdFontColor                 :: Maybe Text
+  , envelopeIdFontSize                  :: Maybe Text
+  , envelopeIdItalic                    :: Maybe Text
+  , envelopeIdMergeField                :: Maybe MergeField
+  , envelopeIdName                      :: Maybe Text
+  , envelopeIdPageNumber                :: Maybe Text
+  , envelopeIdRecipientId               :: Maybe Text
+  , envelopeIdStatus                    :: Maybe Text
+  , envelopeIdTabId                     :: Maybe Text
+  , envelopeIdTabLabel                  :: Maybe Text
+  , envelopeIdTabOrder                  :: Maybe Text
+  , envelopeIdTemplateLocked            :: Maybe Text
+  , envelopeIdTemplateRequired          :: Maybe Text
+  , envelopeIdUnderline                 :: Maybe Text
+  , envelopeIdXPosition                 :: Maybe Text
+  , envelopeIdYPosition                 :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON EnvelopeId where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "envelopeId")
+instance ToJSON EnvelopeId where
+  toJSON = genericToJSON (removeFieldLabelPrefix "envelopeId")
+
+instance Default EnvelopeId
diff --git a/src/DocuSign/Base/Types/EnvelopeLocks.hs b/src/DocuSign/Base/Types/EnvelopeLocks.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/EnvelopeLocks.hs
@@ -0,0 +1,23 @@
+module DocuSign.Base.Types.EnvelopeLocks where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.UserInfo
+
+data EnvelopeLocks = EnvelopeLocks
+  { envelopeLocksErrorDetails          :: Maybe ErrorDetails
+  , envelopeLocksLockDurationInSeconds :: Maybe Text
+  , envelopeLocksLockedByApp           :: Maybe Text
+  , envelopeLocksLockedByUser          :: Maybe UserInfo
+  , envelopeLocksLockedUntilDateTime   :: Maybe Text
+  , envelopeLocksLockToken             :: Maybe Text
+  , envelopeLocksLockType              :: Maybe Text
+  , envelopeLocksUseScratchPad         :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON EnvelopeLocks where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "envelopeLocks")
+instance ToJSON EnvelopeLocks where
+  toJSON = genericToJSON (removeFieldLabelPrefix "envelopeLocks")
+
+instance Default EnvelopeLocks
diff --git a/src/DocuSign/Base/Types/EnvelopeRecipientTabs.hs b/src/DocuSign/Base/Types/EnvelopeRecipientTabs.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/EnvelopeRecipientTabs.hs
@@ -0,0 +1,61 @@
+module DocuSign.Base.Types.EnvelopeRecipientTabs where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.Approve
+import DocuSign.Base.Types.Checkbox
+import DocuSign.Base.Types.Company
+import DocuSign.Base.Types.Date
+import DocuSign.Base.Types.DateSigned
+import DocuSign.Base.Types.Decline
+import DocuSign.Base.Types.Email
+import DocuSign.Base.Types.EmailAddress
+import DocuSign.Base.Types.EnvelopeId
+import DocuSign.Base.Types.FirstName
+import DocuSign.Base.Types.FormulaTab
+import DocuSign.Base.Types.FullName
+import DocuSign.Base.Types.InitialHere
+import DocuSign.Base.Types.LastName
+import DocuSign.Base.Types.List
+import DocuSign.Base.Types.Note
+import DocuSign.Base.Types.RadioGroup
+import DocuSign.Base.Types.SignerAttachment
+import DocuSign.Base.Types.SignHere
+import DocuSign.Base.Types.Ssn
+import DocuSign.Base.Types.Title
+import DocuSign.Base.Types.View
+import DocuSign.Base.Types.Zip
+
+data EnvelopeRecipientTabs = EnvelopeRecipientTabs
+  { envelopeRecipientTabsApproveTabs          :: Maybe [Approve]
+  , envelopeRecipientTabsCheckboxTabs         :: Maybe [Checkbox]
+  , envelopeRecipientTabsCompanyTabs          :: Maybe [Company]
+  , envelopeRecipientTabsDateSignedTabs       :: Maybe [DateSigned]
+  , envelopeRecipientTabsDateTabs             :: Maybe [Date]
+  , envelopeRecipientTabsDeclineTabs          :: Maybe [Decline]
+  , envelopeRecipientTabsEmailAddressTabs     :: Maybe [EmailAddress]
+  , envelopeRecipientTabsEmailTabs            :: Maybe [Email]
+  , envelopeRecipientTabsEnvelopeIdTabs       :: Maybe [EnvelopeId]
+  , envelopeRecipientTabsFirstNameTabs        :: Maybe [FirstName]
+  , envelopeRecipientTabsFormulaTabs          :: Maybe [FormulaTab]
+  , envelopeRecipientTabsFullNameTabs         :: Maybe [FullName]
+  , envelopeRecipientTabsInitialHereTabs      :: Maybe [InitialHere]
+  , envelopeRecipientTabsLastNameTabs         :: Maybe [LastName]
+  , envelopeRecipientTabsListTabs             :: Maybe [List]
+  , envelopeRecipientTabsNoteTabs             :: Maybe [Note]
+  , envelopeRecipientTabsNumberTabs           :: Maybe [Double]
+  , envelopeRecipientTabsRadioGroupTabs       :: Maybe [RadioGroup]
+  , envelopeRecipientTabsSignerAttachmentTabs :: Maybe [SignerAttachment]
+  , envelopeRecipientTabsSignHereTabs         :: Maybe [SignHere]
+  , envelopeRecipientTabsSsnTabs              :: Maybe [Ssn]
+  , envelopeRecipientTabsTextTabs             :: Maybe [Text]
+  , envelopeRecipientTabsTitleTabs            :: Maybe [Title]
+  , envelopeRecipientTabsViewTabs             :: Maybe [View]
+  , envelopeRecipientTabsZipTabs              :: Maybe [Zip]
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON EnvelopeRecipientTabs where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "envelopeRecipientTabs")
+instance ToJSON EnvelopeRecipientTabs where
+  toJSON = genericToJSON (removeFieldLabelPrefix "envelopeRecipientTabs")
+
+instance Default EnvelopeRecipientTabs
diff --git a/src/DocuSign/Base/Types/EnvelopeRecipients.hs b/src/DocuSign/Base/Types/EnvelopeRecipients.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/EnvelopeRecipients.hs
@@ -0,0 +1,31 @@
+module DocuSign.Base.Types.EnvelopeRecipients where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.Agent
+import DocuSign.Base.Types.CarbonCopy
+import DocuSign.Base.Types.CertifiedDelivery
+import DocuSign.Base.Types.Editor
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.InPersonSigner
+import DocuSign.Base.Types.Intermediary
+import DocuSign.Base.Types.Signer
+
+data EnvelopeRecipients = EnvelopeRecipients
+  { envelopeRecipientsAgents              :: Maybe [Agent]
+  , envelopeRecipientsCarbonCopies        :: Maybe [CarbonCopy]
+  , envelopeRecipientsCertifiedDeliveries :: Maybe [CertifiedDelivery]
+  , envelopeRecipientsCurrentRoutingOrder :: Maybe Text
+  , envelopeRecipientsEditors             :: Maybe [Editor]
+  , envelopeRecipientsErrorDetails        :: Maybe ErrorDetails
+  , envelopeRecipientsInPersonSigners     :: Maybe [InPersonSigner]
+  , envelopeRecipientsIntermediaries      :: Maybe [Intermediary]
+  , envelopeRecipientsRecipientCount      :: Maybe Text
+  , envelopeRecipientsSigners             :: Maybe [Signer]
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON EnvelopeRecipients where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "envelopeRecipients")
+instance ToJSON EnvelopeRecipients where
+  toJSON = genericToJSON (removeFieldLabelPrefix "envelopeRecipients")
+
+instance Default EnvelopeRecipients
diff --git a/src/DocuSign/Base/Types/EnvelopeSummary.hs b/src/DocuSign/Base/Types/EnvelopeSummary.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/EnvelopeSummary.hs
@@ -0,0 +1,17 @@
+module DocuSign.Base.Types.EnvelopeSummary where
+
+import DocuSign.Base.Types.Common
+
+data EnvelopeSummary = EnvelopeSummary
+  { envelopeSummaryEnvelopeId     :: Maybe Text
+  , envelopeSummaryStatus         :: Maybe Text
+  , envelopeSummaryStatusDateTime :: Maybe Text
+  , envelopeSummaryUri            :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON EnvelopeSummary where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "envelopeSummary")
+instance ToJSON EnvelopeSummary where
+  toJSON = genericToJSON (removeFieldLabelPrefix "envelopeSummary")
+
+instance Default EnvelopeSummary
diff --git a/src/DocuSign/Base/Types/EnvelopeViews.hs b/src/DocuSign/Base/Types/EnvelopeViews.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/EnvelopeViews.hs
@@ -0,0 +1,14 @@
+module DocuSign.Base.Types.EnvelopeViews where
+
+import DocuSign.Base.Types.Common
+
+data EnvelopeViews = EnvelopeViews
+  { envelopeViewsUrl :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON EnvelopeViews where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "envelopeViews")
+instance ToJSON EnvelopeViews where
+  toJSON = genericToJSON (removeFieldLabelPrefix "envelopeViews")
+
+instance Default EnvelopeViews
diff --git a/src/DocuSign/Base/Types/Envelopes.hs b/src/DocuSign/Base/Types/Envelopes.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/Envelopes.hs
@@ -0,0 +1,65 @@
+module DocuSign.Base.Types.Envelopes where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.AccountCustomFields
+import DocuSign.Base.Types.EnvelopeEmailSettings
+import DocuSign.Base.Types.EnvelopeLocks
+import DocuSign.Base.Types.EnvelopeRecipients
+import DocuSign.Base.Types.Notification
+
+data Envelopes = Envelopes
+  { envelopesAllowMarkup                 :: Maybe Text
+  , envelopesAllowReassign               :: Maybe Text
+  , envelopesAsynchronous                :: Maybe Text
+  , envelopesAttachmentsUri              :: Maybe Text
+  , envelopesAuthoritativeCopy           :: Maybe Text
+  , envelopesAutoNavigation              :: Maybe Text
+  , envelopesBrandId                     :: Maybe Text
+  , envelopesBrandLock                   :: Maybe Text
+  , envelopesCertificateUri              :: Maybe Text
+  , envelopesCompletedDateTime           :: Maybe Text
+  , envelopesCreatedDateTime             :: Maybe Text
+  , envelopesCustomFields                :: Maybe AccountCustomFields
+  , envelopesCustomFieldsUri             :: Maybe Text
+  , envelopesDeclinedDateTime            :: Maybe Text
+  , envelopesDeletedDateTime             :: Maybe Text
+  , envelopesDeliveredDateTime           :: Maybe Text
+  , envelopesDocumentsCombinedUri        :: Maybe Text
+  , envelopesDocumentsUri                :: Maybe Text
+  , envelopesEmailBlurb                  :: Maybe Text
+  , envelopesEmailSettings               :: Maybe EnvelopeEmailSettings
+  , envelopesEmailSubject                :: Maybe Text
+  , envelopesEnableWetSign               :: Maybe Text
+  , envelopesEnforceSignerVisibility     :: Maybe Text
+  , envelopesEnvelopeId                  :: Maybe Text
+  , envelopesEnvelopeIdStamping          :: Maybe Text
+  , envelopesEnvelopeUri                 :: Maybe Text
+  , envelopesInitialSentDateTime         :: Maybe Text
+  , envelopesIs21CFRPart11               :: Maybe Text
+  , envelopesIsSignatureProviderEnvelope :: Maybe Text
+  , envelopesLastModifiedDateTime        :: Maybe Text
+  , envelopesLockInformation             :: Maybe EnvelopeLocks
+  , envelopesMessageLock                 :: Maybe Text
+  , envelopesNotification                :: Maybe Notification
+  , envelopesNotificationUri             :: Maybe Text
+  , envelopesPurgeState                  :: Maybe Text
+  , envelopesRecipients                  :: Maybe EnvelopeRecipients
+  , envelopesRecipientsLock              :: Maybe Text
+  , envelopesRecipientsUri               :: Maybe Text
+  , envelopesSentDateTime                :: Maybe Text
+  , envelopesSigningLocation             :: Maybe Text
+  , envelopesStatus                      :: Maybe Text
+  , envelopesStatusChangedDateTime       :: Maybe Text
+  , envelopesTemplatesUri                :: Maybe Text
+  , envelopesTransactionId               :: Maybe Text
+  , envelopesUseDisclosure               :: Maybe Text
+  , envelopesVoidedDateTime              :: Maybe Text
+  , envelopesVoidedReason                :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON Envelopes where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "envelopes")
+instance ToJSON Envelopes where
+  toJSON = genericToJSON (removeFieldLabelPrefix "envelopes")
+
+instance Default Envelopes
diff --git a/src/DocuSign/Base/Types/ErrorDetails.hs b/src/DocuSign/Base/Types/ErrorDetails.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/ErrorDetails.hs
@@ -0,0 +1,15 @@
+module DocuSign.Base.Types.ErrorDetails where
+
+import DocuSign.Base.Types.Common
+
+data ErrorDetails = ErrorDetails
+  { errorDetailsErrorCode :: Maybe Text
+  , errorDetailsMessage   :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON ErrorDetails where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "errorDetails")
+instance ToJSON ErrorDetails where
+  toJSON = genericToJSON (removeFieldLabelPrefix "errorDetails")
+
+instance Default ErrorDetails
diff --git a/src/DocuSign/Base/Types/EventNotification.hs b/src/DocuSign/Base/Types/EventNotification.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/EventNotification.hs
@@ -0,0 +1,30 @@
+module DocuSign.Base.Types.EventNotification where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.EnvelopeEvent
+import DocuSign.Base.Types.RecipientEvent
+
+data EventNotification = EventNotification
+  { eventNotificationEnvelopeEvents                    :: Maybe [EnvelopeEvent]
+  , eventNotificationIncludeCertificateOfCompletion    :: Maybe Text
+  , eventNotificationIncludeCertificateWithSoap        :: Maybe Text
+  , eventNotificationIncludeDocumentFields             :: Maybe Text
+  , eventNotificationIncludeDocuments                  :: Maybe Text
+  , eventNotificationIncludeEnvelopeVoidReason         :: Maybe Text
+  , eventNotificationIncludeSenderAccountAsCustomField :: Maybe Text
+  , eventNotificationIncludeTimeZone                   :: Maybe Text
+  , eventNotificationLoggingEnabled                    :: Maybe Text
+  , eventNotificationRecipientEvents                   :: Maybe [RecipientEvent]
+  , eventNotificationRequireAcknowledgment             :: Maybe Text
+  , eventNotificationSignMessageWithX509Cert           :: Maybe Text
+  , eventNotificationSoapNameSpace                     :: Maybe Text
+  , eventNotificationUrl                               :: Maybe Text
+  , eventNotificationUseSoapInterface                  :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON EventNotification where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "eventNotification")
+instance ToJSON EventNotification where
+  toJSON = genericToJSON (removeFieldLabelPrefix "eventNotification")
+
+instance Default EventNotification
diff --git a/src/DocuSign/Base/Types/EventResult.hs b/src/DocuSign/Base/Types/EventResult.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/EventResult.hs
@@ -0,0 +1,17 @@
+module DocuSign.Base.Types.EventResult where
+
+import DocuSign.Base.Types.Common
+
+data EventResult = EventResult
+  { eventResultEventTimestamp          :: Maybe Text
+  , eventResultFailureDescription      :: Maybe Text
+  , eventResultStatus                  :: Maybe Text
+  , eventResultVendorFailureStatusCode :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON EventResult where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "eventResult")
+instance ToJSON EventResult where
+  toJSON = genericToJSON (removeFieldLabelPrefix "eventResult")
+
+instance Default EventResult
diff --git a/src/DocuSign/Base/Types/Expirations.hs b/src/DocuSign/Base/Types/Expirations.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/Expirations.hs
@@ -0,0 +1,16 @@
+module DocuSign.Base.Types.Expirations where
+
+import DocuSign.Base.Types.Common
+
+data Expirations = Expirations
+  { expirationsExpireAfter   :: Maybe Text
+  , expirationsExpireEnabled :: Maybe Text
+  , expirationsExpireWarn    :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON Expirations where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "expirations")
+instance ToJSON Expirations where
+  toJSON = genericToJSON (removeFieldLabelPrefix "expirations")
+
+instance Default Expirations
diff --git a/src/DocuSign/Base/Types/FirstName.hs b/src/DocuSign/Base/Types/FirstName.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/FirstName.hs
@@ -0,0 +1,47 @@
+module DocuSign.Base.Types.FirstName where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.MergeField
+
+data FirstName = FirstName
+  { firstNameAnchorCaseSensitive       :: Maybe Text
+  , firstNameAnchorHorizontalAlignment :: Maybe Text
+  , firstNameAnchorIgnoreIfNotPresent  :: Maybe Text
+  , firstNameAnchorMatchWholeWord      :: Maybe Text
+  , firstNameAnchorString              :: Maybe Text
+  , firstNameAnchorUnits               :: Maybe Text
+  , firstNameAnchorXOffset             :: Maybe Text
+  , firstNameAnchorYOffset             :: Maybe Text
+  , firstNameBold                      :: Maybe Text
+  , firstNameConditionalParentLabel    :: Maybe Text
+  , firstNameConditionalParentValue    :: Maybe Text
+  , firstNameCustomTabId               :: Maybe Text
+  , firstNameDocumentId                :: Maybe Text
+  , firstNameErrorDetails              :: Maybe ErrorDetails
+  , firstNameFont                      :: Maybe Text
+  , firstNameFontColor                 :: Maybe Text
+  , firstNameFontSize                  :: Maybe Text
+  , firstNameItalic                    :: Maybe Text
+  , firstNameMergeField                :: Maybe MergeField
+  , firstNameName                      :: Maybe Text
+  , firstNamePageNumber                :: Maybe Text
+  , firstNameRecipientId               :: Maybe Text
+  , firstNameStatus                    :: Maybe Text
+  , firstNameTabId                     :: Maybe Text
+  , firstNameTabLabel                  :: Maybe Text
+  , firstNameTabOrder                  :: Maybe Text
+  , firstNameTemplateLocked            :: Maybe Text
+  , firstNameTemplateRequired          :: Maybe Text
+  , firstNameUnderline                 :: Maybe Text
+  , firstNameValue                     :: Maybe Text
+  , firstNameXPosition                 :: Maybe Text
+  , firstNameYPosition                 :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON FirstName where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "firstName")
+instance ToJSON FirstName where
+  toJSON = genericToJSON (removeFieldLabelPrefix "firstName")
+
+instance Default FirstName
diff --git a/src/DocuSign/Base/Types/FormulaTab.hs b/src/DocuSign/Base/Types/FormulaTab.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/FormulaTab.hs
@@ -0,0 +1,66 @@
+module DocuSign.Base.Types.FormulaTab where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.MergeField
+import DocuSign.Base.Types.PaymentDetails
+
+data FormulaTab = FormulaTab
+  { formulaTabAnchorCaseSensitive          :: Maybe Text
+  , formulaTabAnchorHorizontalAlignment    :: Maybe Text
+  , formulaTabAnchorIgnoreIfNotPresent     :: Maybe Text
+  , formulaTabAnchorMatchWholeWord         :: Maybe Text
+  , formulaTabAnchorString                 :: Maybe Text
+  , formulaTabAnchorUnits                  :: Maybe Text
+  , formulaTabAnchorXOffset                :: Maybe Text
+  , formulaTabAnchorYOffset                :: Maybe Text
+  , formulaTabBold                         :: Maybe Text
+  , formulaTabConcealValueOnDocument       :: Maybe Text
+  , formulaTabConditionalParentLabel       :: Maybe Text
+  , formulaTabConditionalParentValue       :: Maybe Text
+  , formulaTabCustomTabId                  :: Maybe Text
+  , formulaTabDisableAutoSize              :: Maybe Text
+  , formulaTabDocumentId                   :: Maybe Text
+  , formulaTabErrorDetails                 :: Maybe ErrorDetails
+  , formulaTabFont                         :: Maybe Text
+  , formulaTabFontColor                    :: Maybe Text
+  , formulaTabFontSize                     :: Maybe Text
+  , formulaTabFormula                      :: Maybe Text
+  , formulaTabHidden                       :: Maybe Text
+  , formulaTabIsPaymentAmount              :: Maybe Text
+  , formulaTabItalic                       :: Maybe Text
+  , formulaTabLocked                       :: Maybe Text
+  , formulaTabMaxLength                    :: Maybe Int
+  , formulaTabMergeField                   :: Maybe MergeField
+  , formulaTabName                         :: Maybe Text
+  , formulaTabOriginalValue                :: Maybe Text
+  , formulaTabPageNumber                   :: Maybe Text
+  , formulaTabPaymentDetails               :: Maybe PaymentDetails
+  , formulaTabRecipientId                  :: Maybe Text
+  , formulaTabRequireAll                   :: Maybe Text
+  , formulaTabRequired                     :: Maybe Text
+  , formulaTabRequireInitialOnSharedChange :: Maybe Text
+  , formulaTabRoundDecimalPlaces           :: Maybe Text
+  , formulaTabSenderRequired               :: Maybe Text
+  , formulaTabShared                       :: Maybe Text
+  , formulaTabStatus                       :: Maybe Text
+  , formulaTabTabId                        :: Maybe Text
+  , formulaTabTabLabel                     :: Maybe Text
+  , formulaTabTabOrder                     :: Maybe Text
+  , formulaTabTemplateLocked               :: Maybe Text
+  , formulaTabTemplateRequired             :: Maybe Text
+  , formulaTabUnderline                    :: Maybe Text
+  , formulaTabValidationMessage            :: Maybe Text
+  , formulaTabValidationPattern            :: Maybe Text
+  , formulaTabValue                        :: Maybe Text
+  , formulaTabWidth                        :: Maybe Int
+  , formulaTabXPosition                    :: Maybe Text
+  , formulaTabYPosition                    :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON FormulaTab where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "formulaTab")
+instance ToJSON FormulaTab where
+  toJSON = genericToJSON (removeFieldLabelPrefix "formulaTab")
+
+instance Default FormulaTab
diff --git a/src/DocuSign/Base/Types/FullName.hs b/src/DocuSign/Base/Types/FullName.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/FullName.hs
@@ -0,0 +1,47 @@
+module DocuSign.Base.Types.FullName where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.MergeField
+
+data FullName = FullName
+  { fullNameAnchorCaseSensitive       :: Maybe Text
+  , fullNameAnchorHorizontalAlignment :: Maybe Text
+  , fullNameAnchorIgnoreIfNotPresent  :: Maybe Text
+  , fullNameAnchorMatchWholeWord      :: Maybe Text
+  , fullNameAnchorString              :: Maybe Text
+  , fullNameAnchorUnits               :: Maybe Text
+  , fullNameAnchorXOffset             :: Maybe Text
+  , fullNameAnchorYOffset             :: Maybe Text
+  , fullNameBold                      :: Maybe Text
+  , fullNameConditionalParentLabel    :: Maybe Text
+  , fullNameConditionalParentValue    :: Maybe Text
+  , fullNameCustomTabId               :: Maybe Text
+  , fullNameDocumentId                :: Maybe Text
+  , fullNameErrorDetails              :: Maybe ErrorDetails
+  , fullNameFont                      :: Maybe Text
+  , fullNameFontColor                 :: Maybe Text
+  , fullNameFontSize                  :: Maybe Text
+  , fullNameItalic                    :: Maybe Text
+  , fullNameMergeField                :: Maybe MergeField
+  , fullNameName                      :: Maybe Text
+  , fullNamePageNumber                :: Maybe Text
+  , fullNameRecipientId               :: Maybe Text
+  , fullNameStatus                    :: Maybe Text
+  , fullNameTabId                     :: Maybe Text
+  , fullNameTabLabel                  :: Maybe Text
+  , fullNameTabOrder                  :: Maybe Text
+  , fullNameTemplateLocked            :: Maybe Text
+  , fullNameTemplateRequired          :: Maybe Text
+  , fullNameUnderline                 :: Maybe Text
+  , fullNameValue                     :: Maybe Text
+  , fullNameXPosition                 :: Maybe Text
+  , fullNameYPosition                 :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON FullName where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "fullName")
+instance ToJSON FullName where
+  toJSON = genericToJSON (removeFieldLabelPrefix "fullName")
+
+instance Default FullName
diff --git a/src/DocuSign/Base/Types/IdCheckInformationInput.hs b/src/DocuSign/Base/Types/IdCheckInformationInput.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/IdCheckInformationInput.hs
@@ -0,0 +1,21 @@
+module DocuSign.Base.Types.IdCheckInformationInput where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.AddressInformationInput
+import DocuSign.Base.Types.DobInformationInput
+import DocuSign.Base.Types.Ssn4InformationInput
+import DocuSign.Base.Types.Ssn9InformationInput
+
+data IdCheckInformationInput = IdCheckInformationInput
+  { idCheckInformationInputAddressInformationInput :: Maybe AddressInformationInput
+  , idCheckInformationInputDobInformationInput     :: Maybe DobInformationInput
+  , idCheckInformationInputSsn4InformationInput    :: Maybe Ssn4InformationInput
+  , idCheckInformationInputSsn9InformationInput    :: Maybe Ssn9InformationInput
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON IdCheckInformationInput where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "idCheckInformationInput")
+instance ToJSON IdCheckInformationInput where
+  toJSON = genericToJSON (removeFieldLabelPrefix "idCheckInformationInput")
+
+instance Default IdCheckInformationInput
diff --git a/src/DocuSign/Base/Types/InPersonSigner.hs b/src/DocuSign/Base/Types/InPersonSigner.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/InPersonSigner.hs
@@ -0,0 +1,85 @@
+module DocuSign.Base.Types.InPersonSigner where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.AuthenticationStatus
+import DocuSign.Base.Types.DocumentVisibility
+import DocuSign.Base.Types.EnvelopeRecipientTabs
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.IdCheckInformationInput
+import DocuSign.Base.Types.NotaryHost
+import DocuSign.Base.Types.RecipientAttachment
+import DocuSign.Base.Types.RecipientEmailNotification
+import DocuSign.Base.Types.RecipientPhoneAuthentication
+import DocuSign.Base.Types.RecipientSAMLAuthentication
+import DocuSign.Base.Types.RecipientSignatureInformation
+import DocuSign.Base.Types.RecipientSignatureProvider
+import DocuSign.Base.Types.RecipientSMSAuthentication
+import DocuSign.Base.Types.SocialAuthentication
+import DocuSign.Base.Types.UserInfo
+
+data InPersonSigner = InPersonSigner
+  { inPersonSignerAccessCode                            :: Maybe Text
+  , inPersonSignerAddAccessCodeToEmail                  :: Maybe Text
+  , inPersonSignerAutoNavigation                        :: Maybe Text
+  , inPersonSignerCanSignOffline                        :: Maybe Text
+  , inPersonSignerClientUserId                          :: Maybe Text
+  , inPersonSignerCreationReason                        :: Maybe Text
+  , inPersonSignerCustomFields                          :: Maybe [Text]
+  , inPersonSignerDeclinedDateTime                      :: Maybe Text
+  , inPersonSignerDeclinedReason                        :: Maybe Text
+  , inPersonSignerDefaultRecipient                      :: Maybe Text
+  , inPersonSignerDeliveredDateTime                     :: Maybe Text
+  , inPersonSignerDeliveryMethod                        :: Maybe Text
+  , inPersonSignerDocumentVisibility                    :: Maybe [DocumentVisibility]
+  , inPersonSignerEmail                                 :: Maybe Text
+  , inPersonSignerEmailNotification                     :: Maybe RecipientEmailNotification
+  , inPersonSignerEmbeddedRecipientStartURL             :: Maybe Text
+  , inPersonSignerErrorDetails                          :: Maybe ErrorDetails
+  , inPersonSignerFaxNumber                             :: Maybe Text
+  , inPersonSignerHostEmail                             :: Maybe Text
+  , inPersonSignerHostName                              :: Maybe Text
+  , inPersonSignerIdCheckConfigurationName              :: Maybe Text
+  , inPersonSignerIdCheckInformationInput               :: Maybe IdCheckInformationInput
+  , inPersonSignerInheritEmailNotificationConfiguration :: Maybe Text
+  , inPersonSignerInPersonSigningType                   :: Maybe Text
+  , inPersonSignerName                                  :: Maybe Text
+  , inPersonSignerNotaryHost                            :: Maybe NotaryHost
+  , inPersonSignerNote                                  :: Maybe Text
+  , inPersonSignerPhoneAuthentication                   :: Maybe RecipientPhoneAuthentication
+  , inPersonSignerRecipientAttachments                  :: Maybe [RecipientAttachment]
+  , inPersonSignerRecipientAuthenticationStatus         :: Maybe AuthenticationStatus
+  , inPersonSignerRecipientId                           :: Maybe Text
+  , inPersonSignerRecipientIdGuid                       :: Maybe Text
+  , inPersonSignerRecipientSignatureProviders           :: Maybe [RecipientSignatureProvider]
+  , inPersonSignerRecipientSuppliesTabs                 :: Maybe Text
+  , inPersonSignerRequireIdLookup                       :: Maybe Text
+  , inPersonSignerRequireSignerCertificate              :: Maybe Text
+  , inPersonSignerRequireSignOnPaper                    :: Maybe Text
+  , inPersonSignerRoleName                              :: Maybe Text
+  , inPersonSignerRoutingOrder                          :: Maybe Text
+  , inPersonSignerSamlAuthentication                    :: Maybe RecipientSAMLAuthentication
+  , inPersonSignerSentDateTime                          :: Maybe Text
+  , inPersonSignerSignatureInfo                         :: Maybe RecipientSignatureInformation
+  , inPersonSignerSignedDateTime                        :: Maybe Text
+  , inPersonSignerSignerEmail                           :: Maybe Text
+  , inPersonSignerSignerName                            :: Maybe Text
+  , inPersonSignerSignInEachLocation                    :: Maybe Text
+  , inPersonSignerSigningGroupId                        :: Maybe Text
+  , inPersonSignerSigningGroupName                      :: Maybe Text
+  , inPersonSignerSigningGroupUsers                     :: Maybe [UserInfo]
+  , inPersonSignerSmsAuthentication                     :: Maybe RecipientSMSAuthentication
+  , inPersonSignerSocialAuthentications                 :: Maybe [SocialAuthentication]
+  , inPersonSignerStatus                                :: Maybe Text
+  , inPersonSignerTabs                                  :: Maybe EnvelopeRecipientTabs
+  , inPersonSignerTemplateLocked                        :: Maybe Text
+  , inPersonSignerTemplateRequired                      :: Maybe Text
+  , inPersonSignerTotalTabCount                         :: Maybe Text
+  , inPersonSignerUserId                                :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON InPersonSigner where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "inPersonSigner")
+instance ToJSON InPersonSigner where
+  toJSON = genericToJSON (removeFieldLabelPrefix "inPersonSigner")
+
+instance Default InPersonSigner
diff --git a/src/DocuSign/Base/Types/InitialHere.hs b/src/DocuSign/Base/Types/InitialHere.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/InitialHere.hs
@@ -0,0 +1,42 @@
+module DocuSign.Base.Types.InitialHere where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.MergeField
+
+data InitialHere = InitialHere
+  { initialHereAnchorCaseSensitive       :: Maybe Text
+  , initialHereAnchorHorizontalAlignment :: Maybe Text
+  , initialHereAnchorIgnoreIfNotPresent  :: Maybe Text
+  , initialHereAnchorMatchWholeWord      :: Maybe Text
+  , initialHereAnchorString              :: Maybe Text
+  , initialHereAnchorUnits               :: Maybe Text
+  , initialHereAnchorXOffset             :: Maybe Text
+  , initialHereAnchorYOffset             :: Maybe Text
+  , initialHereConditionalParentLabel    :: Maybe Text
+  , initialHereConditionalParentValue    :: Maybe Text
+  , initialHereCustomTabId               :: Maybe Text
+  , initialHereDocumentId                :: Maybe Text
+  , initialHereErrorDetails              :: Maybe ErrorDetails
+  , initialHereMergeField                :: Maybe MergeField
+  , initialHereName                      :: Maybe Text
+  , initialHereOptional                  :: Maybe Text
+  , initialHerePageNumber                :: Maybe Text
+  , initialHereRecipientId               :: Maybe Text
+  , initialHereScaleValue                :: Maybe Double
+  , initialHereStatus                    :: Maybe Text
+  , initialHereTabId                     :: Maybe Text
+  , initialHereTabLabel                  :: Maybe Text
+  , initialHereTabOrder                  :: Maybe Text
+  , initialHereTemplateLocked            :: Maybe Text
+  , initialHereTemplateRequired          :: Maybe Text
+  , initialHereXPosition                 :: Maybe Text
+  , initialHereYPosition                 :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON InitialHere where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "initialHere")
+instance ToJSON InitialHere where
+  toJSON = genericToJSON (removeFieldLabelPrefix "initialHere")
+
+instance Default InitialHere
diff --git a/src/DocuSign/Base/Types/InlineTemplate.hs b/src/DocuSign/Base/Types/InlineTemplate.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/InlineTemplate.hs
@@ -0,0 +1,22 @@
+module DocuSign.Base.Types.InlineTemplate where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.AccountCustomFields
+import DocuSign.Base.Types.Document
+import DocuSign.Base.Types.EnvelopeRecipients
+import DocuSign.Base.Types.Envelopes
+
+data InlineTemplate = InlineTemplate
+  { inlineTemplateCustomFields :: Maybe AccountCustomFields
+  , inlineTemplateDocuments    :: Maybe [Document]
+  , inlineTemplateEnvelope     :: Maybe Envelopes
+  , inlineTemplateRecipients   :: Maybe EnvelopeRecipients
+  , inlineTemplateSequence     :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON InlineTemplate where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "inlineTemplate")
+instance ToJSON InlineTemplate where
+  toJSON = genericToJSON (removeFieldLabelPrefix "inlineTemplate")
+
+instance Default InlineTemplate
diff --git a/src/DocuSign/Base/Types/Intermediary.hs b/src/DocuSign/Base/Types/Intermediary.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/Intermediary.hs
@@ -0,0 +1,66 @@
+module DocuSign.Base.Types.Intermediary where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.AuthenticationStatus
+import DocuSign.Base.Types.DocumentVisibility
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.IdCheckInformationInput
+import DocuSign.Base.Types.RecipientAttachment
+import DocuSign.Base.Types.RecipientEmailNotification
+import DocuSign.Base.Types.RecipientPhoneAuthentication
+import DocuSign.Base.Types.RecipientSAMLAuthentication
+import DocuSign.Base.Types.RecipientSMSAuthentication
+import DocuSign.Base.Types.SocialAuthentication
+import DocuSign.Base.Types.UserInfo
+
+data Intermediary = Intermediary
+  { intermediaryAccessCode                            :: Maybe Text
+  , intermediaryAddAccessCodeToEmail                  :: Maybe Text
+  , intermediaryClientUserId                          :: Maybe Text
+  , intermediaryCustomFields                          :: Maybe [Text]
+  , intermediaryDeclinedDateTime                      :: Maybe Text
+  , intermediaryDeclinedReason                        :: Maybe Text
+  , intermediaryDeliveredDateTime                     :: Maybe Text
+  , intermediaryDeliveryMethod                        :: Maybe Text
+  , intermediaryDocumentVisibility                    :: Maybe [DocumentVisibility]
+  , intermediaryEmail                                 :: Maybe Text
+  , intermediaryEmailNotification                     :: Maybe RecipientEmailNotification
+  , intermediaryEmailRecipientPostSigningURL          :: Maybe Text
+  , intermediaryEmbeddedRecipientStartURL             :: Maybe Text
+  , intermediaryErrorDetails                          :: Maybe ErrorDetails
+  , intermediaryExcludedDocuments                     :: Maybe [Text]
+  , intermediaryFaxNumber                             :: Maybe Text
+  , intermediaryIdCheckConfigurationName              :: Maybe Text
+  , intermediaryIdCheckInformationInput               :: Maybe IdCheckInformationInput
+  , intermediaryInheritEmailNotificationConfiguration :: Maybe Text
+  , intermediaryName                                  :: Maybe Text
+  , intermediaryNote                                  :: Maybe Text
+  , intermediaryPhoneAuthentication                   :: Maybe RecipientPhoneAuthentication
+  , intermediaryRecipientAttachments                  :: Maybe [RecipientAttachment]
+  , intermediaryRecipientAuthenticationStatus         :: Maybe AuthenticationStatus
+  , intermediaryRecipientId                           :: Maybe Text
+  , intermediaryRecipientIdGuid                       :: Maybe Text
+  , intermediaryRequireIdLookup                       :: Maybe Text
+  , intermediaryRoleName                              :: Maybe Text
+  , intermediaryRoutingOrder                          :: Maybe Text
+  , intermediarySamlAuthentication                    :: Maybe RecipientSAMLAuthentication
+  , intermediarySentDateTime                          :: Maybe Text
+  , intermediarySignedDateTime                        :: Maybe Text
+  , intermediarySigningGroupId                        :: Maybe Text
+  , intermediarySigningGroupName                      :: Maybe Text
+  , intermediarySigningGroupUsers                     :: Maybe [UserInfo]
+  , intermediarySmsAuthentication                     :: Maybe RecipientSMSAuthentication
+  , intermediarySocialAuthentications                 :: Maybe [SocialAuthentication]
+  , intermediaryStatus                                :: Maybe Text
+  , intermediaryTemplateLocked                        :: Maybe Text
+  , intermediaryTemplateRequired                      :: Maybe Text
+  , intermediaryTotalTabCount                         :: Maybe Text
+  , intermediaryUserId                                :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON Intermediary where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "intermediary")
+instance ToJSON Intermediary where
+  toJSON = genericToJSON (removeFieldLabelPrefix "intermediary")
+
+instance Default Intermediary
diff --git a/src/DocuSign/Base/Types/LastName.hs b/src/DocuSign/Base/Types/LastName.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/LastName.hs
@@ -0,0 +1,47 @@
+module DocuSign.Base.Types.LastName where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.MergeField
+
+data LastName = LastName
+  { lastNameAnchorCaseSensitive       :: Maybe Text
+  , lastNameAnchorHorizontalAlignment :: Maybe Text
+  , lastNameAnchorIgnoreIfNotPresent  :: Maybe Text
+  , lastNameAnchorMatchWholeWord      :: Maybe Text
+  , lastNameAnchorString              :: Maybe Text
+  , lastNameAnchorUnits               :: Maybe Text
+  , lastNameAnchorXOffset             :: Maybe Text
+  , lastNameAnchorYOffset             :: Maybe Text
+  , lastNameBold                      :: Maybe Text
+  , lastNameConditionalParentLabel    :: Maybe Text
+  , lastNameConditionalParentValue    :: Maybe Text
+  , lastNameCustomTabId               :: Maybe Text
+  , lastNameDocumentId                :: Maybe Text
+  , lastNameErrorDetails              :: Maybe ErrorDetails
+  , lastNameFont                      :: Maybe Text
+  , lastNameFontColor                 :: Maybe Text
+  , lastNameFontSize                  :: Maybe Text
+  , lastNameItalic                    :: Maybe Text
+  , lastNameMergeField                :: Maybe MergeField
+  , lastNameName                      :: Maybe Text
+  , lastNamePageNumber                :: Maybe Text
+  , lastNameRecipientId               :: Maybe Text
+  , lastNameStatus                    :: Maybe Text
+  , lastNameTabId                     :: Maybe Text
+  , lastNameTabLabel                  :: Maybe Text
+  , lastNameTabOrder                  :: Maybe Text
+  , lastNameTemplateLocked            :: Maybe Text
+  , lastNameTemplateRequired          :: Maybe Text
+  , lastNameUnderline                 :: Maybe Text
+  , lastNameValue                     :: Maybe Text
+  , lastNameXPosition                 :: Maybe Text
+  , lastNameYPosition                 :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON LastName where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "lastName")
+instance ToJSON LastName where
+  toJSON = genericToJSON (removeFieldLabelPrefix "lastName")
+
+instance Default LastName
diff --git a/src/DocuSign/Base/Types/List.hs b/src/DocuSign/Base/Types/List.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/List.hs
@@ -0,0 +1,55 @@
+module DocuSign.Base.Types.List where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.ListItem
+import DocuSign.Base.Types.MergeField
+
+data List = List
+  { listAnchorCaseSensitive          :: Maybe Text
+  , listAnchorHorizontalAlignment    :: Maybe Text
+  , listAnchorIgnoreIfNotPresent     :: Maybe Text
+  , listAnchorMatchWholeWord         :: Maybe Text
+  , listAnchorString                 :: Maybe Text
+  , listAnchorUnits                  :: Maybe Text
+  , listAnchorXOffset                :: Maybe Text
+  , listAnchorYOffset                :: Maybe Text
+  , listBold                         :: Maybe Text
+  , listConditionalParentLabel       :: Maybe Text
+  , listConditionalParentValue       :: Maybe Text
+  , listCustomTabId                  :: Maybe Text
+  , listDocumentId                   :: Maybe Text
+  , listErrorDetails                 :: Maybe ErrorDetails
+  , listFont                         :: Maybe Text
+  , listFontColor                    :: Maybe Text
+  , listFontSize                     :: Maybe Text
+  , listItalic                       :: Maybe Text
+  , listListItems                    :: Maybe [ListItem]
+  , listLocked                       :: Maybe Text
+  , listMergeField                   :: Maybe MergeField
+  , listPageNumber                   :: Maybe Text
+  , listRecipientId                  :: Maybe Text
+  , listRequireAll                   :: Maybe Text
+  , listRequired                     :: Maybe Text
+  , listRequireInitialOnSharedChange :: Maybe Text
+  , listSenderRequired               :: Maybe Text
+  , listShared                       :: Maybe Text
+  , listStatus                       :: Maybe Text
+  , listTabId                        :: Maybe Text
+  , listTabLabel                     :: Maybe Text
+  , listTabOrder                     :: Maybe Text
+  , listTemplateLocked               :: Maybe Text
+  , listTemplateRequired             :: Maybe Text
+  , listUnderline                    :: Maybe Text
+  , listValue                        :: Maybe Text
+  , listWidth                        :: Maybe Int
+  , listXPosition                    :: Maybe Text
+  , listYPosition                    :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON List where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "list")
+instance ToJSON List where
+  toJSON = genericToJSON (removeFieldLabelPrefix "list")
+
+instance Default List
diff --git a/src/DocuSign/Base/Types/ListCustomField.hs b/src/DocuSign/Base/Types/ListCustomField.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/ListCustomField.hs
@@ -0,0 +1,22 @@
+module DocuSign.Base.Types.ListCustomField where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+
+data ListCustomField = ListCustomField
+  { listCustomFieldConfigurationType :: Maybe Text
+  , listCustomFieldErrorDetails      :: Maybe ErrorDetails
+  , listCustomFieldFieldId           :: Maybe Text
+  , listCustomFieldListItems         :: Maybe [Text]
+  , listCustomFieldName              :: Maybe Text
+  , listCustomFieldRequired          :: Maybe Text
+  , listCustomFieldShow              :: Maybe Text
+  , listCustomFieldValue             :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON ListCustomField where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "listCustomField")
+instance ToJSON ListCustomField where
+  toJSON = genericToJSON (removeFieldLabelPrefix "listCustomField")
+
+instance Default ListCustomField
diff --git a/src/DocuSign/Base/Types/ListItem.hs b/src/DocuSign/Base/Types/ListItem.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/ListItem.hs
@@ -0,0 +1,16 @@
+module DocuSign.Base.Types.ListItem where
+
+import DocuSign.Base.Types.Common
+
+data ListItem = ListItem
+  { listItemSelected :: Maybe Text
+  , listItemText     :: Maybe Text
+  , listItemValue    :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON ListItem where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "listItem")
+instance ToJSON ListItem where
+  toJSON = genericToJSON (removeFieldLabelPrefix "listItem")
+
+instance Default ListItem
diff --git a/src/DocuSign/Base/Types/LoginAccount.hs b/src/DocuSign/Base/Types/LoginAccount.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/LoginAccount.hs
@@ -0,0 +1,25 @@
+module DocuSign.Base.Types.LoginAccount where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.NameValue
+
+data LoginAccount = LoginAccount
+  { loginAccountAccountId            :: Maybe Text
+  , loginAccountAccountIdGuid        :: Maybe Text
+  , loginAccountBaseUrl              :: Maybe Text
+  , loginAccountEmail                :: Maybe Text
+  , loginAccountIsDefault            :: Maybe Text
+  , loginAccountLoginAccountSettings :: Maybe [NameValue]
+  , loginAccountLoginUserSettings    :: Maybe [NameValue]
+  , loginAccountName                 :: Maybe Text
+  , loginAccountSiteDescription      :: Maybe Text
+  , loginAccountUserId               :: Maybe Text
+  , loginAccountUserName             :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON LoginAccount where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "loginAccount")
+instance ToJSON LoginAccount where
+  toJSON = genericToJSON (removeFieldLabelPrefix "loginAccount")
+
+instance Default LoginAccount
diff --git a/src/DocuSign/Base/Types/MatchBox.hs b/src/DocuSign/Base/Types/MatchBox.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/MatchBox.hs
@@ -0,0 +1,18 @@
+module DocuSign.Base.Types.MatchBox where
+
+import DocuSign.Base.Types.Common
+
+data MatchBox = MatchBox
+  { matchBoxHeight     :: Maybe Int
+  , matchBoxPageNumber :: Maybe Int
+  , matchBoxWidth      :: Maybe Int
+  , matchBoxXPosition  :: Maybe Int
+  , matchBoxYPosition  :: Maybe Int
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON MatchBox where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "matchBox")
+instance ToJSON MatchBox where
+  toJSON = genericToJSON (removeFieldLabelPrefix "matchBox")
+
+instance Default MatchBox
diff --git a/src/DocuSign/Base/Types/MergeField.hs b/src/DocuSign/Base/Types/MergeField.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/MergeField.hs
@@ -0,0 +1,18 @@
+module DocuSign.Base.Types.MergeField where
+
+import DocuSign.Base.Types.Common
+
+data MergeField = MergeField
+  { mergeFieldAllowSenderToEdit :: Maybe Text
+  , mergeFieldConfigurationType :: Maybe Text
+  , mergeFieldPath              :: Maybe Text
+  , mergeFieldRow               :: Maybe Text
+  , mergeFieldWriteBack         :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON MergeField where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "mergeField")
+instance ToJSON MergeField where
+  toJSON = genericToJSON (removeFieldLabelPrefix "mergeField")
+
+instance Default MergeField
diff --git a/src/DocuSign/Base/Types/Money.hs b/src/DocuSign/Base/Types/Money.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/Money.hs
@@ -0,0 +1,16 @@
+module DocuSign.Base.Types.Money where
+
+import DocuSign.Base.Types.Common
+
+data Money = Money
+  { moneyAmountInBaseUnit :: Maybe Text
+  , moneyCurrency         :: Maybe Text
+  , moneyDisplayAmount    :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON Money where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "money")
+instance ToJSON Money where
+  toJSON = genericToJSON (removeFieldLabelPrefix "money")
+
+instance Default Money
diff --git a/src/DocuSign/Base/Types/NameValue.hs b/src/DocuSign/Base/Types/NameValue.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/NameValue.hs
@@ -0,0 +1,18 @@
+module DocuSign.Base.Types.NameValue where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+
+data NameValue = NameValue
+  { nameValueErrorDetails  :: Maybe ErrorDetails
+  , nameValueName          :: Maybe Text
+  , nameValueOriginalValue :: Maybe Text
+  , nameValueValue         :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON NameValue where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "nameValue")
+instance ToJSON NameValue where
+  toJSON = genericToJSON (removeFieldLabelPrefix "nameValue")
+
+instance Default NameValue
diff --git a/src/DocuSign/Base/Types/NotaryHost.hs b/src/DocuSign/Base/Types/NotaryHost.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/NotaryHost.hs
@@ -0,0 +1,64 @@
+module DocuSign.Base.Types.NotaryHost where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.AuthenticationStatus
+import DocuSign.Base.Types.DocumentVisibility
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.IdCheckInformationInput
+import DocuSign.Base.Types.PropertyMetadata
+import DocuSign.Base.Types.RecipientAttachment
+import DocuSign.Base.Types.RecipientEmailNotification
+import DocuSign.Base.Types.RecipientPhoneAuthentication
+import DocuSign.Base.Types.RecipientSAMLAuthentication
+import DocuSign.Base.Types.RecipientSMSAuthentication
+import DocuSign.Base.Types.SocialAuthentication
+
+data NotaryHost = NotaryHost
+  { notaryHostAccessCode                            :: Maybe Text
+  , notaryHostAddAccessCodeToEmail                  :: Maybe Text
+  , notaryHostClientUserId                          :: Maybe Text
+  , notaryHostCustomFields                          :: Maybe [Text]
+  , notaryHostDeclinedDateTime                      :: Maybe Text
+  , notaryHostDeclinedReason                        :: Maybe Text
+  , notaryHostDeliveredDateTime                     :: Maybe Text
+  , notaryHostDeliveryMethod                        :: Maybe Text
+  , notaryHostDocumentVisibility                    :: Maybe [DocumentVisibility]
+  , notaryHostEmail                                 :: Maybe Text
+  , notaryHostEmailNotification                     :: Maybe RecipientEmailNotification
+  , notaryHostEmbeddedRecipientStartURL             :: Maybe Text
+  , notaryHostErrorDetails                          :: Maybe ErrorDetails
+  , notaryHostFaxNumber                             :: Maybe Text
+  , notaryHostHostRecipientId                       :: Maybe Text
+  , notaryHostIdCheckConfigurationName              :: Maybe Text
+  , notaryHostIdCheckInformationInput               :: Maybe IdCheckInformationInput
+  , notaryHostInheritEmailNotificationConfiguration :: Maybe Text
+  , notaryHostName                                  :: Maybe Text
+  , notaryHostNotaryEmailMetadata                   :: Maybe PropertyMetadata
+  , notaryHostNotaryNameMetadata                    :: Maybe PropertyMetadata
+  , notaryHostNote                                  :: Maybe Text
+  , notaryHostPhoneAuthentication                   :: Maybe RecipientPhoneAuthentication
+  , notaryHostRecipientAttachments                  :: Maybe [RecipientAttachment]
+  , notaryHostRecipientAuthenticationStatus         :: Maybe AuthenticationStatus
+  , notaryHostRecipientId                           :: Maybe Text
+  , notaryHostRecipientIdGuid                       :: Maybe Text
+  , notaryHostRequireIdLookup                       :: Maybe Text
+  , notaryHostRoleName                              :: Maybe Text
+  , notaryHostRoutingOrder                          :: Maybe Text
+  , notaryHostSamlAuthentication                    :: Maybe RecipientSAMLAuthentication
+  , notaryHostSentDateTime                          :: Maybe Text
+  , notaryHostSignedDateTime                        :: Maybe Text
+  , notaryHostSmsAuthentication                     :: Maybe RecipientSMSAuthentication
+  , notaryHostSocialAuthentications                 :: Maybe [SocialAuthentication]
+  , notaryHostStatus                                :: Maybe Text
+  , notaryHostTemplateLocked                        :: Maybe Text
+  , notaryHostTemplateRequired                      :: Maybe Text
+  , notaryHostTotalTabCount                         :: Maybe Text
+  , notaryHostUserId                                :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON NotaryHost where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "notaryHost")
+instance ToJSON NotaryHost where
+  toJSON = genericToJSON (removeFieldLabelPrefix "notaryHost")
+
+instance Default NotaryHost
diff --git a/src/DocuSign/Base/Types/Note.hs b/src/DocuSign/Base/Types/Note.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/Note.hs
@@ -0,0 +1,50 @@
+module DocuSign.Base.Types.Note where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.MergeField
+
+data Note = Note
+  { noteAnchorCaseSensitive       :: Maybe Text
+  , noteAnchorHorizontalAlignment :: Maybe Text
+  , noteAnchorIgnoreIfNotPresent  :: Maybe Text
+  , noteAnchorMatchWholeWord      :: Maybe Text
+  , noteAnchorString              :: Maybe Text
+  , noteAnchorUnits               :: Maybe Text
+  , noteAnchorXOffset             :: Maybe Text
+  , noteAnchorYOffset             :: Maybe Text
+  , noteBold                      :: Maybe Text
+  , noteConditionalParentLabel    :: Maybe Text
+  , noteConditionalParentValue    :: Maybe Text
+  , noteCustomTabId               :: Maybe Text
+  , noteDocumentId                :: Maybe Text
+  , noteErrorDetails              :: Maybe ErrorDetails
+  , noteFont                      :: Maybe Text
+  , noteFontColor                 :: Maybe Text
+  , noteFontSize                  :: Maybe Text
+  , noteHeight                    :: Maybe Int
+  , noteItalic                    :: Maybe Text
+  , noteMergeField                :: Maybe MergeField
+  , noteName                      :: Maybe Text
+  , notePageNumber                :: Maybe Text
+  , noteRecipientId               :: Maybe Text
+  , noteShared                    :: Maybe Text
+  , noteStatus                    :: Maybe Text
+  , noteTabId                     :: Maybe Text
+  , noteTabLabel                  :: Maybe Text
+  , noteTabOrder                  :: Maybe Text
+  , noteTemplateLocked            :: Maybe Text
+  , noteTemplateRequired          :: Maybe Text
+  , noteUnderline                 :: Maybe Text
+  , noteValue                     :: Maybe Text
+  , noteWidth                     :: Maybe Int
+  , noteXPosition                 :: Maybe Text
+  , noteYPosition                 :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON Note where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "note")
+instance ToJSON Note where
+  toJSON = genericToJSON (removeFieldLabelPrefix "note")
+
+instance Default Note
diff --git a/src/DocuSign/Base/Types/Notification.hs b/src/DocuSign/Base/Types/Notification.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/Notification.hs
@@ -0,0 +1,18 @@
+module DocuSign.Base.Types.Notification where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.Expirations
+import DocuSign.Base.Types.Reminders
+
+data Notification = Notification
+  { notificationExpirations        :: Maybe Expirations
+  , notificationReminders          :: Maybe Reminders
+  , notificationUseAccountDefaults :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON Notification where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "notification")
+instance ToJSON Notification where
+  toJSON = genericToJSON (removeFieldLabelPrefix "notification")
+
+instance Default Notification
diff --git a/src/DocuSign/Base/Types/PaymentDetails.hs b/src/DocuSign/Base/Types/PaymentDetails.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/PaymentDetails.hs
@@ -0,0 +1,22 @@
+module DocuSign.Base.Types.PaymentDetails where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.Money
+import DocuSign.Base.Types.PaymentLineItem
+
+data PaymentDetails = PaymentDetails
+  { paymentDetailsChargeId         :: Maybe Text
+  , paymentDetailsCurrencyCode     :: Maybe Text
+  , paymentDetailsGatewayAccountId :: Maybe Text
+  , paymentDetailsGatewayName      :: Maybe Text
+  , paymentDetailsLineItems        :: Maybe [PaymentLineItem]
+  , paymentDetailsStatus           :: Maybe Text
+  , paymentDetailsTotal            :: Maybe Money
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON PaymentDetails where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "paymentDetails")
+instance ToJSON PaymentDetails where
+  toJSON = genericToJSON (removeFieldLabelPrefix "paymentDetails")
+
+instance Default PaymentDetails
diff --git a/src/DocuSign/Base/Types/PaymentLineItem.hs b/src/DocuSign/Base/Types/PaymentLineItem.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/PaymentLineItem.hs
@@ -0,0 +1,17 @@
+module DocuSign.Base.Types.PaymentLineItem where
+
+import DocuSign.Base.Types.Common
+
+data PaymentLineItem = PaymentLineItem
+  { paymentLineItemAmountReference :: Maybe Text
+  , paymentLineItemDescription     :: Maybe Text
+  , paymentLineItemItemCode        :: Maybe Text
+  , paymentLineItemName            :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON PaymentLineItem where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "paymentLineItem")
+instance ToJSON PaymentLineItem where
+  toJSON = genericToJSON (removeFieldLabelPrefix "paymentLineItem")
+
+instance Default PaymentLineItem
diff --git a/src/DocuSign/Base/Types/PropertyMetadata.hs b/src/DocuSign/Base/Types/PropertyMetadata.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/PropertyMetadata.hs
@@ -0,0 +1,15 @@
+module DocuSign.Base.Types.PropertyMetadata where
+
+import DocuSign.Base.Types.Common
+
+data PropertyMetadata = PropertyMetadata
+  { propertyMetadataOptions :: Maybe [Text]
+  , propertyMetadataRights  :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON PropertyMetadata where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "propertyMetadata")
+instance ToJSON PropertyMetadata where
+  toJSON = genericToJSON (removeFieldLabelPrefix "propertyMetadata")
+
+instance Default PropertyMetadata
diff --git a/src/DocuSign/Base/Types/Radio.hs b/src/DocuSign/Base/Types/Radio.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/Radio.hs
@@ -0,0 +1,32 @@
+module DocuSign.Base.Types.Radio where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+
+data Radio = Radio
+  { radioAnchorCaseSensitive       :: Maybe Text
+  , radioAnchorHorizontalAlignment :: Maybe Text
+  , radioAnchorIgnoreIfNotPresent  :: Maybe Text
+  , radioAnchorMatchWholeWord      :: Maybe Text
+  , radioAnchorString              :: Maybe Text
+  , radioAnchorUnits               :: Maybe Text
+  , radioAnchorXOffset             :: Maybe Text
+  , radioAnchorYOffset             :: Maybe Text
+  , radioErrorDetails              :: Maybe ErrorDetails
+  , radioLocked                    :: Maybe Text
+  , radioPageNumber                :: Maybe Text
+  , radioRequired                  :: Maybe Text
+  , radioSelected                  :: Maybe Text
+  , radioTabId                     :: Maybe Text
+  , radioTabOrder                  :: Maybe Text
+  , radioValue                     :: Maybe Text
+  , radioXPosition                 :: Maybe Text
+  , radioYPosition                 :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON Radio where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "radio")
+instance ToJSON Radio where
+  toJSON = genericToJSON (removeFieldLabelPrefix "radio")
+
+instance Default Radio
diff --git a/src/DocuSign/Base/Types/RadioGroup.hs b/src/DocuSign/Base/Types/RadioGroup.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/RadioGroup.hs
@@ -0,0 +1,23 @@
+module DocuSign.Base.Types.RadioGroup where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.Radio
+
+data RadioGroup = RadioGroup
+  { radioGroupConditionalParentLabel       :: Maybe Text
+  , radioGroupConditionalParentValue       :: Maybe Text
+  , radioGroupDocumentId                   :: Maybe Text
+  , radioGroupGroupName                    :: Maybe Text
+  , radioGroupRadios                       :: Maybe [Radio]
+  , radioGroupRecipientId                  :: Maybe Text
+  , radioGroupRequireAll                   :: Maybe Text
+  , radioGroupRequireInitialOnSharedChange :: Maybe Text
+  , radioGroupShared                       :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON RadioGroup where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "radioGroup")
+instance ToJSON RadioGroup where
+  toJSON = genericToJSON (removeFieldLabelPrefix "radioGroup")
+
+instance Default RadioGroup
diff --git a/src/DocuSign/Base/Types/RecipientAttachment.hs b/src/DocuSign/Base/Types/RecipientAttachment.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/RecipientAttachment.hs
@@ -0,0 +1,19 @@
+module DocuSign.Base.Types.RecipientAttachment where
+
+import DocuSign.Base.Types.Common
+
+data RecipientAttachment = RecipientAttachment
+  { recipientAttachmentAttachmentId   :: Maybe Text
+  , recipientAttachmentAttachmentType :: Maybe Text
+  , recipientAttachmentData           :: Maybe Text
+  , recipientAttachmentLabel          :: Maybe Text
+  , recipientAttachmentName           :: Maybe Text
+  , recipientAttachmentRemoteUrl      :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON RecipientAttachment where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "recipientAttachment")
+instance ToJSON RecipientAttachment where
+  toJSON = genericToJSON (removeFieldLabelPrefix "recipientAttachment")
+
+instance Default RecipientAttachment
diff --git a/src/DocuSign/Base/Types/RecipientEmailNotification.hs b/src/DocuSign/Base/Types/RecipientEmailNotification.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/RecipientEmailNotification.hs
@@ -0,0 +1,16 @@
+module DocuSign.Base.Types.RecipientEmailNotification where
+
+import DocuSign.Base.Types.Common
+
+data RecipientEmailNotification = RecipientEmailNotification
+  { recipientEmailNotificationEmailBody         :: Maybe Text
+  , recipientEmailNotificationEmailSubject      :: Maybe Text
+  , recipientEmailNotificationSupportedLanguage :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON RecipientEmailNotification where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "recipientEmailNotification")
+instance ToJSON RecipientEmailNotification where
+  toJSON = genericToJSON (removeFieldLabelPrefix "recipientEmailNotification")
+
+instance Default RecipientEmailNotification
diff --git a/src/DocuSign/Base/Types/RecipientEvent.hs b/src/DocuSign/Base/Types/RecipientEvent.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/RecipientEvent.hs
@@ -0,0 +1,15 @@
+module DocuSign.Base.Types.RecipientEvent where
+
+import DocuSign.Base.Types.Common
+
+data RecipientEvent = RecipientEvent
+  { recipientEventIncludeDocuments         :: Maybe Text
+  , recipientEventRecipientEventStatusCode :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON RecipientEvent where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "recipientEvent")
+instance ToJSON RecipientEvent where
+  toJSON = genericToJSON (removeFieldLabelPrefix "recipientEvent")
+
+instance Default RecipientEvent
diff --git a/src/DocuSign/Base/Types/RecipientPhoneAuthentication.hs b/src/DocuSign/Base/Types/RecipientPhoneAuthentication.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/RecipientPhoneAuthentication.hs
@@ -0,0 +1,17 @@
+module DocuSign.Base.Types.RecipientPhoneAuthentication where
+
+import DocuSign.Base.Types.Common
+
+data RecipientPhoneAuthentication = RecipientPhoneAuthentication
+  { recipientPhoneAuthenticationRecipMayProvideNumber       :: Maybe Text
+  , recipientPhoneAuthenticationRecordVoicePrint            :: Maybe Text
+  , recipientPhoneAuthenticationSenderProvidedNumbers       :: Maybe [Text]
+  , recipientPhoneAuthenticationValidateRecipProvidedNumber :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON RecipientPhoneAuthentication where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "recipientPhoneAuthentication")
+instance ToJSON RecipientPhoneAuthentication where
+  toJSON = genericToJSON (removeFieldLabelPrefix "recipientPhoneAuthentication")
+
+instance Default RecipientPhoneAuthentication
diff --git a/src/DocuSign/Base/Types/RecipientSAMLAuthentication.hs b/src/DocuSign/Base/Types/RecipientSAMLAuthentication.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/RecipientSAMLAuthentication.hs
@@ -0,0 +1,15 @@
+module DocuSign.Base.Types.RecipientSAMLAuthentication where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.SamlAssertionAttribute
+
+data RecipientSAMLAuthentication = RecipientSAMLAuthentication
+  { recipientSAMLAuthenticationSamlAssertionAttributes :: Maybe [SamlAssertionAttribute]
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON RecipientSAMLAuthentication where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "recipientSAMLAuthentication")
+instance ToJSON RecipientSAMLAuthentication where
+  toJSON = genericToJSON (removeFieldLabelPrefix "recipientSAMLAuthentication")
+
+instance Default RecipientSAMLAuthentication
diff --git a/src/DocuSign/Base/Types/RecipientSMSAuthentication.hs b/src/DocuSign/Base/Types/RecipientSMSAuthentication.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/RecipientSMSAuthentication.hs
@@ -0,0 +1,14 @@
+module DocuSign.Base.Types.RecipientSMSAuthentication where
+
+import DocuSign.Base.Types.Common
+
+data RecipientSMSAuthentication = RecipientSMSAuthentication
+  { recipientSMSAuthenticationSenderProvidedNumbers :: Maybe [Text]
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON RecipientSMSAuthentication where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "recipientSMSAuthentication")
+instance ToJSON RecipientSMSAuthentication where
+  toJSON = genericToJSON (removeFieldLabelPrefix "recipientSMSAuthentication")
+
+instance Default RecipientSMSAuthentication
diff --git a/src/DocuSign/Base/Types/RecipientSignatureInformation.hs b/src/DocuSign/Base/Types/RecipientSignatureInformation.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/RecipientSignatureInformation.hs
@@ -0,0 +1,16 @@
+module DocuSign.Base.Types.RecipientSignatureInformation where
+
+import DocuSign.Base.Types.Common
+
+data RecipientSignatureInformation = RecipientSignatureInformation
+  { recipientSignatureInformationFontStyle         :: Maybe Text
+  , recipientSignatureInformationSignatureInitials :: Maybe Text
+  , recipientSignatureInformationSignatureName     :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON RecipientSignatureInformation where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "recipientSignatureInformation")
+instance ToJSON RecipientSignatureInformation where
+  toJSON = genericToJSON (removeFieldLabelPrefix "recipientSignatureInformation")
+
+instance Default RecipientSignatureInformation
diff --git a/src/DocuSign/Base/Types/RecipientSignatureProvider.hs b/src/DocuSign/Base/Types/RecipientSignatureProvider.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/RecipientSignatureProvider.hs
@@ -0,0 +1,16 @@
+module DocuSign.Base.Types.RecipientSignatureProvider where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.RecipientSignatureProviderOptions
+
+data RecipientSignatureProvider = RecipientSignatureProvider
+  { recipientSignatureProviderSignatureProviderName    :: Maybe Text
+  , recipientSignatureProviderSignatureProviderOptions :: Maybe RecipientSignatureProviderOptions
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON RecipientSignatureProvider where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "recipientSignatureProvider")
+instance ToJSON RecipientSignatureProvider where
+  toJSON = genericToJSON (removeFieldLabelPrefix "recipientSignatureProvider")
+
+instance Default RecipientSignatureProvider
diff --git a/src/DocuSign/Base/Types/RecipientSignatureProviderOptions.hs b/src/DocuSign/Base/Types/RecipientSignatureProviderOptions.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/RecipientSignatureProviderOptions.hs
@@ -0,0 +1,17 @@
+module DocuSign.Base.Types.RecipientSignatureProviderOptions where
+
+import DocuSign.Base.Types.Common
+
+data RecipientSignatureProviderOptions = RecipientSignatureProviderOptions
+  { recipientSignatureProviderOptionsCpfNumber       :: Maybe Text
+  , recipientSignatureProviderOptionsOneTimePassword :: Maybe Text
+  , recipientSignatureProviderOptionsSignerRole      :: Maybe Text
+  , recipientSignatureProviderOptionsSms             :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON RecipientSignatureProviderOptions where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "recipientSignatureProviderOptions")
+instance ToJSON RecipientSignatureProviderOptions where
+  toJSON = genericToJSON (removeFieldLabelPrefix "recipientSignatureProviderOptions")
+
+instance Default RecipientSignatureProviderOptions
diff --git a/src/DocuSign/Base/Types/RecipientViewRequest.hs b/src/DocuSign/Base/Types/RecipientViewRequest.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/RecipientViewRequest.hs
@@ -0,0 +1,27 @@
+module DocuSign.Base.Types.RecipientViewRequest where
+
+import DocuSign.Base.Types.Common
+
+data RecipientViewRequest = RecipientViewRequest
+  { recipientViewRequestAssertionId               :: Maybe Text
+  , recipientViewRequestAuthenticationInstant     :: Maybe Text
+  , recipientViewRequestAuthenticationMethod      :: Maybe Text
+  , recipientViewRequestClientUserId              :: Maybe Text
+  , recipientViewRequestEmail                     :: Maybe Text
+  , recipientViewRequestPingFrequency             :: Maybe Text
+  , recipientViewRequestPingUrl                   :: Maybe Text
+  , recipientViewRequestRecipientId               :: Maybe Text
+  , recipientViewRequestReturnUrl                 :: Maybe Text
+  , recipientViewRequestSecurityDomain            :: Maybe Text
+  , recipientViewRequestUserId                    :: Maybe Text
+  , recipientViewRequestUserName                  :: Maybe Text
+  , recipientViewRequestXFrameOptions             :: Maybe Text
+  , recipientViewRequestXFrameOptionsAllowFromUrl :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON RecipientViewRequest where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "recipientViewRequest")
+instance ToJSON RecipientViewRequest where
+  toJSON = genericToJSON (removeFieldLabelPrefix "recipientViewRequest")
+
+instance Default RecipientViewRequest
diff --git a/src/DocuSign/Base/Types/Reminders.hs b/src/DocuSign/Base/Types/Reminders.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/Reminders.hs
@@ -0,0 +1,16 @@
+module DocuSign.Base.Types.Reminders where
+
+import DocuSign.Base.Types.Common
+
+data Reminders = Reminders
+  { remindersReminderDelay     :: Maybe Text
+  , remindersReminderEnabled   :: Maybe Text
+  , remindersReminderFrequency :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON Reminders where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "reminders")
+instance ToJSON Reminders where
+  toJSON = genericToJSON (removeFieldLabelPrefix "reminders")
+
+instance Default Reminders
diff --git a/src/DocuSign/Base/Types/SamlAssertionAttribute.hs b/src/DocuSign/Base/Types/SamlAssertionAttribute.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/SamlAssertionAttribute.hs
@@ -0,0 +1,18 @@
+module DocuSign.Base.Types.SamlAssertionAttribute where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+
+data SamlAssertionAttribute = SamlAssertionAttribute
+  { samlAssertionAttributeErrorDetails  :: Maybe ErrorDetails
+  , samlAssertionAttributeName          :: Maybe Text
+  , samlAssertionAttributeOriginalValue :: Maybe Text
+  , samlAssertionAttributeValue         :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON SamlAssertionAttribute where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "samlAssertionAttribute")
+instance ToJSON SamlAssertionAttribute where
+  toJSON = genericToJSON (removeFieldLabelPrefix "samlAssertionAttribute")
+
+instance Default SamlAssertionAttribute
diff --git a/src/DocuSign/Base/Types/ServerTemplate.hs b/src/DocuSign/Base/Types/ServerTemplate.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/ServerTemplate.hs
@@ -0,0 +1,15 @@
+module DocuSign.Base.Types.ServerTemplate where
+
+import DocuSign.Base.Types.Common
+
+data ServerTemplate = ServerTemplate
+  { serverTemplateSequence   :: Maybe Text
+  , serverTemplateTemplateId :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON ServerTemplate where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "serverTemplate")
+instance ToJSON ServerTemplate where
+  toJSON = genericToJSON (removeFieldLabelPrefix "serverTemplate")
+
+instance Default ServerTemplate
diff --git a/src/DocuSign/Base/Types/SignHere.hs b/src/DocuSign/Base/Types/SignHere.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/SignHere.hs
@@ -0,0 +1,45 @@
+module DocuSign.Base.Types.SignHere where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.MergeField
+import DocuSign.Base.Types.PropertyMetadata
+
+data SignHere = SignHere
+  { signHereAnchorCaseSensitive       :: Maybe Text
+  , signHereAnchorHorizontalAlignment :: Maybe Text
+  , signHereAnchorIgnoreIfNotPresent  :: Maybe Text
+  , signHereAnchorMatchWholeWord      :: Maybe Text
+  , signHereAnchorString              :: Maybe Text
+  , signHereAnchorUnits               :: Maybe Text
+  , signHereAnchorXOffset             :: Maybe Text
+  , signHereAnchorYOffset             :: Maybe Text
+  , signHereConditionalParentLabel    :: Maybe Text
+  , signHereConditionalParentValue    :: Maybe Text
+  , signHereCustomTabId               :: Maybe Text
+  , signHereDocumentId                :: Maybe Text
+  , signHereErrorDetails              :: Maybe ErrorDetails
+  , signHereMergeField                :: Maybe MergeField
+  , signHereName                      :: Maybe Text
+  , signHereOptional                  :: Maybe Text
+  , signHerePageNumber                :: Maybe Text
+  , signHereRecipientId               :: Maybe Text
+  , signHereScaleValue                :: Maybe Double
+  , signHereStampType                 :: Maybe Text
+  , signHereStampTypeMetadata         :: Maybe PropertyMetadata
+  , signHereStatus                    :: Maybe Text
+  , signHereTabId                     :: Maybe Text
+  , signHereTabLabel                  :: Maybe Text
+  , signHereTabOrder                  :: Maybe Text
+  , signHereTemplateLocked            :: Maybe Text
+  , signHereTemplateRequired          :: Maybe Text
+  , signHereXPosition                 :: Maybe Text
+  , signHereYPosition                 :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON SignHere where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "signHere")
+instance ToJSON SignHere where
+  toJSON = genericToJSON (removeFieldLabelPrefix "signHere")
+
+instance Default SignHere
diff --git a/src/DocuSign/Base/Types/Signer.hs b/src/DocuSign/Base/Types/Signer.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/Signer.hs
@@ -0,0 +1,82 @@
+module DocuSign.Base.Types.Signer where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.AuthenticationStatus
+import DocuSign.Base.Types.DocumentVisibility
+import DocuSign.Base.Types.EnvelopeRecipientTabs
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.IdCheckInformationInput
+import DocuSign.Base.Types.RecipientAttachment
+import DocuSign.Base.Types.RecipientEmailNotification
+import DocuSign.Base.Types.RecipientPhoneAuthentication
+import DocuSign.Base.Types.RecipientSAMLAuthentication
+import DocuSign.Base.Types.RecipientSignatureInformation
+import DocuSign.Base.Types.RecipientSignatureProvider
+import DocuSign.Base.Types.RecipientSMSAuthentication
+import DocuSign.Base.Types.SocialAuthentication
+import DocuSign.Base.Types.UserInfo
+
+data Signer = Signer
+  { signerAccessCode                            :: Maybe Text
+  , signerAddAccessCodeToEmail                  :: Maybe Text
+  , signerAutoNavigation                        :: Maybe Text
+  , signerBulkRecipientsUri                     :: Maybe Text
+  , signerCanSignOffline                        :: Maybe Text
+  , signerClientUserId                          :: Maybe Text
+  , signerCreationReason                        :: Maybe Text
+  , signerCustomFields                          :: Maybe [Text]
+  , signerDeclinedDateTime                      :: Maybe Text
+  , signerDeclinedReason                        :: Maybe Text
+  , signerDefaultRecipient                      :: Maybe Text
+  , signerDeliveredDateTime                     :: Maybe Text
+  , signerDeliveryMethod                        :: Maybe Text
+  , signerDocumentVisibility                    :: Maybe [DocumentVisibility]
+  , signerEmail                                 :: Maybe Text
+  , signerEmailNotification                     :: Maybe RecipientEmailNotification
+  , signerEmailRecipientPostSigningURL          :: Maybe Text
+  , signerEmbeddedRecipientStartURL             :: Maybe Text
+  , signerErrorDetails                          :: Maybe ErrorDetails
+  , signerExcludedDocuments                     :: Maybe [Text]
+  , signerFaxNumber                             :: Maybe Text
+  , signerIdCheckConfigurationName              :: Maybe Text
+  , signerIdCheckInformationInput               :: Maybe IdCheckInformationInput
+  , signerInheritEmailNotificationConfiguration :: Maybe Text
+  , signerIsBulkRecipient                       :: Maybe Text
+  , signerName                                  :: Maybe Text
+  , signerNote                                  :: Maybe Text
+  , signerPhoneAuthentication                   :: Maybe RecipientPhoneAuthentication
+  , signerRecipientAttachments                  :: Maybe [RecipientAttachment]
+  , signerRecipientAuthenticationStatus         :: Maybe AuthenticationStatus
+  , signerRecipientId                           :: Maybe Text
+  , signerRecipientIdGuid                       :: Maybe Text
+  , signerRecipientSignatureProviders           :: Maybe [RecipientSignatureProvider]
+  , signerRecipientSuppliesTabs                 :: Maybe Text
+  , signerRequireIdLookup                       :: Maybe Text
+  , signerRequireSignerCertificate              :: Maybe Text
+  , signerRequireSignOnPaper                    :: Maybe Text
+  , signerRoleName                              :: Maybe Text
+  , signerRoutingOrder                          :: Maybe Text
+  , signerSamlAuthentication                    :: Maybe RecipientSAMLAuthentication
+  , signerSentDateTime                          :: Maybe Text
+  , signerSignatureInfo                         :: Maybe RecipientSignatureInformation
+  , signerSignedDateTime                        :: Maybe Text
+  , signerSignInEachLocation                    :: Maybe Text
+  , signerSigningGroupId                        :: Maybe Text
+  , signerSigningGroupName                      :: Maybe Text
+  , signerSigningGroupUsers                     :: Maybe [UserInfo]
+  , signerSmsAuthentication                     :: Maybe RecipientSMSAuthentication
+  , signerSocialAuthentications                 :: Maybe [SocialAuthentication]
+  , signerStatus                                :: Maybe Text
+  , signerTabs                                  :: Maybe EnvelopeRecipientTabs
+  , signerTemplateLocked                        :: Maybe Text
+  , signerTemplateRequired                      :: Maybe Text
+  , signerTotalTabCount                         :: Maybe Text
+  , signerUserId                                :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON Signer where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "signer")
+instance ToJSON Signer where
+  toJSON = genericToJSON (removeFieldLabelPrefix "signer")
+
+instance Default Signer
diff --git a/src/DocuSign/Base/Types/SignerAttachment.hs b/src/DocuSign/Base/Types/SignerAttachment.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/SignerAttachment.hs
@@ -0,0 +1,42 @@
+module DocuSign.Base.Types.SignerAttachment where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.MergeField
+
+data SignerAttachment = SignerAttachment
+  { signerAttachmentAnchorCaseSensitive       :: Maybe Text
+  , signerAttachmentAnchorHorizontalAlignment :: Maybe Text
+  , signerAttachmentAnchorIgnoreIfNotPresent  :: Maybe Text
+  , signerAttachmentAnchorMatchWholeWord      :: Maybe Text
+  , signerAttachmentAnchorString              :: Maybe Text
+  , signerAttachmentAnchorUnits               :: Maybe Text
+  , signerAttachmentAnchorXOffset             :: Maybe Text
+  , signerAttachmentAnchorYOffset             :: Maybe Text
+  , signerAttachmentConditionalParentLabel    :: Maybe Text
+  , signerAttachmentConditionalParentValue    :: Maybe Text
+  , signerAttachmentCustomTabId               :: Maybe Text
+  , signerAttachmentDocumentId                :: Maybe Text
+  , signerAttachmentErrorDetails              :: Maybe ErrorDetails
+  , signerAttachmentMergeField                :: Maybe MergeField
+  , signerAttachmentName                      :: Maybe Text
+  , signerAttachmentOptional                  :: Maybe Text
+  , signerAttachmentPageNumber                :: Maybe Text
+  , signerAttachmentRecipientId               :: Maybe Text
+  , signerAttachmentScaleValue                :: Maybe Double
+  , signerAttachmentStatus                    :: Maybe Text
+  , signerAttachmentTabId                     :: Maybe Text
+  , signerAttachmentTabLabel                  :: Maybe Text
+  , signerAttachmentTabOrder                  :: Maybe Text
+  , signerAttachmentTemplateLocked            :: Maybe Text
+  , signerAttachmentTemplateRequired          :: Maybe Text
+  , signerAttachmentXPosition                 :: Maybe Text
+  , signerAttachmentYPosition                 :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON SignerAttachment where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "signerAttachment")
+instance ToJSON SignerAttachment where
+  toJSON = genericToJSON (removeFieldLabelPrefix "signerAttachment")
+
+instance Default SignerAttachment
diff --git a/src/DocuSign/Base/Types/SocialAuthentication.hs b/src/DocuSign/Base/Types/SocialAuthentication.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/SocialAuthentication.hs
@@ -0,0 +1,14 @@
+module DocuSign.Base.Types.SocialAuthentication where
+
+import DocuSign.Base.Types.Common
+
+data SocialAuthentication = SocialAuthentication
+  { socialAuthenticationAuthentication :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON SocialAuthentication where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "socialAuthentication")
+instance ToJSON SocialAuthentication where
+  toJSON = genericToJSON (removeFieldLabelPrefix "socialAuthentication")
+
+instance Default SocialAuthentication
diff --git a/src/DocuSign/Base/Types/Ssn.hs b/src/DocuSign/Base/Types/Ssn.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/Ssn.hs
@@ -0,0 +1,60 @@
+module DocuSign.Base.Types.Ssn where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.MergeField
+
+data Ssn = Ssn
+  { ssnAnchorCaseSensitive          :: Maybe Text
+  , ssnAnchorHorizontalAlignment    :: Maybe Text
+  , ssnAnchorIgnoreIfNotPresent     :: Maybe Text
+  , ssnAnchorMatchWholeWord         :: Maybe Text
+  , ssnAnchorString                 :: Maybe Text
+  , ssnAnchorUnits                  :: Maybe Text
+  , ssnAnchorXOffset                :: Maybe Text
+  , ssnAnchorYOffset                :: Maybe Text
+  , ssnBold                         :: Maybe Text
+  , ssnConcealValueOnDocument       :: Maybe Text
+  , ssnConditionalParentLabel       :: Maybe Text
+  , ssnConditionalParentValue       :: Maybe Text
+  , ssnCustomTabId                  :: Maybe Text
+  , ssnDisableAutoSize              :: Maybe Text
+  , ssnDocumentId                   :: Maybe Text
+  , ssnErrorDetails                 :: Maybe ErrorDetails
+  , ssnFont                         :: Maybe Text
+  , ssnFontColor                    :: Maybe Text
+  , ssnFontSize                     :: Maybe Text
+  , ssnItalic                       :: Maybe Text
+  , ssnLocked                       :: Maybe Text
+  , ssnMaxLength                    :: Maybe Int
+  , ssnMergeField                   :: Maybe MergeField
+  , ssnName                         :: Maybe Text
+  , ssnOriginalValue                :: Maybe Text
+  , ssnPageNumber                   :: Maybe Text
+  , ssnRecipientId                  :: Maybe Text
+  , ssnRequireAll                   :: Maybe Text
+  , ssnRequired                     :: Maybe Text
+  , ssnRequireInitialOnSharedChange :: Maybe Text
+  , ssnSenderRequired               :: Maybe Text
+  , ssnShared                       :: Maybe Text
+  , ssnStatus                       :: Maybe Text
+  , ssnTabId                        :: Maybe Text
+  , ssnTabLabel                     :: Maybe Text
+  , ssnTabOrder                     :: Maybe Text
+  , ssnTemplateLocked               :: Maybe Text
+  , ssnTemplateRequired             :: Maybe Text
+  , ssnUnderline                    :: Maybe Text
+  , ssnValidationMessage            :: Maybe Text
+  , ssnValidationPattern            :: Maybe Text
+  , ssnValue                        :: Maybe Text
+  , ssnWidth                        :: Maybe Int
+  , ssnXPosition                    :: Maybe Text
+  , ssnYPosition                    :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON Ssn where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "ssn")
+instance ToJSON Ssn where
+  toJSON = genericToJSON (removeFieldLabelPrefix "ssn")
+
+instance Default Ssn
diff --git a/src/DocuSign/Base/Types/Ssn4InformationInput.hs b/src/DocuSign/Base/Types/Ssn4InformationInput.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/Ssn4InformationInput.hs
@@ -0,0 +1,16 @@
+module DocuSign.Base.Types.Ssn4InformationInput where
+
+import DocuSign.Base.Types.Common
+
+data Ssn4InformationInput = Ssn4InformationInput
+  { ssn4InformationInputDisplayLevelCode  :: Maybe Text
+  , ssn4InformationInputReceiveInResponse :: Maybe Text
+  , ssn4InformationInputSsn4              :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON Ssn4InformationInput where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "ssn4InformationInput")
+instance ToJSON Ssn4InformationInput where
+  toJSON = genericToJSON (removeFieldLabelPrefix "ssn4InformationInput")
+
+instance Default Ssn4InformationInput
diff --git a/src/DocuSign/Base/Types/Ssn9InformationInput.hs b/src/DocuSign/Base/Types/Ssn9InformationInput.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/Ssn9InformationInput.hs
@@ -0,0 +1,15 @@
+module DocuSign.Base.Types.Ssn9InformationInput where
+
+import DocuSign.Base.Types.Common
+
+data Ssn9InformationInput = Ssn9InformationInput
+  { ssn9InformationInputDisplayLevelCode :: Maybe Text
+  , ssn9InformationInputSsn9             :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON Ssn9InformationInput where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "ssn9InformationInput")
+instance ToJSON Ssn9InformationInput where
+  toJSON = genericToJSON (removeFieldLabelPrefix "ssn9InformationInput")
+
+instance Default Ssn9InformationInput
diff --git a/src/DocuSign/Base/Types/TemplateRole.hs b/src/DocuSign/Base/Types/TemplateRole.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/TemplateRole.hs
@@ -0,0 +1,29 @@
+module DocuSign.Base.Types.TemplateRole where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.EnvelopeRecipientTabs
+import DocuSign.Base.Types.RecipientEmailNotification
+import DocuSign.Base.Types.RecipientSignatureProvider
+
+data TemplateRole = TemplateRole
+  { templateRoleAccessCode                  :: Maybe Text
+  , templateRoleClientUserId                :: Maybe Text
+  , templateRoleDefaultRecipient            :: Maybe Text
+  , templateRoleEmail                       :: Maybe Text
+  , templateRoleEmailNotification           :: Maybe RecipientEmailNotification
+  , templateRoleEmbeddedRecipientStartURL   :: Maybe Text
+  , templateRoleInPersonSignerName          :: Maybe Text
+  , templateRoleName                        :: Maybe Text
+  , templateRoleRecipientSignatureProviders :: Maybe [RecipientSignatureProvider]
+  , templateRoleRoleName                    :: Maybe Text
+  , templateRoleRoutingOrder                :: Maybe Text
+  , templateRoleSigningGroupId              :: Maybe Text
+  , templateRoleTabs                        :: Maybe EnvelopeRecipientTabs
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON TemplateRole where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "templateRole")
+instance ToJSON TemplateRole where
+  toJSON = genericToJSON (removeFieldLabelPrefix "templateRole")
+
+instance Default TemplateRole
diff --git a/src/DocuSign/Base/Types/TextCustomField.hs b/src/DocuSign/Base/Types/TextCustomField.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/TextCustomField.hs
@@ -0,0 +1,21 @@
+module DocuSign.Base.Types.TextCustomField where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+
+data TextCustomField = TextCustomField
+  { textCustomFieldConfigurationType :: Maybe Text
+  , textCustomFieldErrorDetails      :: Maybe ErrorDetails
+  , textCustomFieldFieldId           :: Maybe Text
+  , textCustomFieldName              :: Maybe Text
+  , textCustomFieldRequired          :: Maybe Text
+  , textCustomFieldShow              :: Maybe Text
+  , textCustomFieldValue             :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON TextCustomField where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "textCustomField")
+instance ToJSON TextCustomField where
+  toJSON = genericToJSON (removeFieldLabelPrefix "textCustomField")
+
+instance Default TextCustomField
diff --git a/src/DocuSign/Base/Types/Title.hs b/src/DocuSign/Base/Types/Title.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/Title.hs
@@ -0,0 +1,54 @@
+module DocuSign.Base.Types.Title where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.MergeField
+
+data Title = Title
+  { titleAnchorCaseSensitive       :: Maybe Text
+  , titleAnchorHorizontalAlignment :: Maybe Text
+  , titleAnchorIgnoreIfNotPresent  :: Maybe Text
+  , titleAnchorMatchWholeWord      :: Maybe Text
+  , titleAnchorString              :: Maybe Text
+  , titleAnchorUnits               :: Maybe Text
+  , titleAnchorXOffset             :: Maybe Text
+  , titleAnchorYOffset             :: Maybe Text
+  , titleBold                      :: Maybe Text
+  , titleConcealValueOnDocument    :: Maybe Text
+  , titleConditionalParentLabel    :: Maybe Text
+  , titleConditionalParentValue    :: Maybe Text
+  , titleCustomTabId               :: Maybe Text
+  , titleDisableAutoSize           :: Maybe Text
+  , titleDocumentId                :: Maybe Text
+  , titleErrorDetails              :: Maybe ErrorDetails
+  , titleFont                      :: Maybe Text
+  , titleFontColor                 :: Maybe Text
+  , titleFontSize                  :: Maybe Text
+  , titleItalic                    :: Maybe Text
+  , titleLocked                    :: Maybe Text
+  , titleMaxLength                 :: Maybe Int
+  , titleMergeField                :: Maybe MergeField
+  , titleName                      :: Maybe Text
+  , titleOriginalValue             :: Maybe Text
+  , titlePageNumber                :: Maybe Text
+  , titleRecipientId               :: Maybe Text
+  , titleRequired                  :: Maybe Text
+  , titleStatus                    :: Maybe Text
+  , titleTabId                     :: Maybe Text
+  , titleTabLabel                  :: Maybe Text
+  , titleTabOrder                  :: Maybe Text
+  , titleTemplateLocked            :: Maybe Text
+  , titleTemplateRequired          :: Maybe Text
+  , titleUnderline                 :: Maybe Text
+  , titleValue                     :: Maybe Text
+  , titleWidth                     :: Maybe Int
+  , titleXPosition                 :: Maybe Text
+  , titleYPosition                 :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON Title where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "title")
+instance ToJSON Title where
+  toJSON = genericToJSON (removeFieldLabelPrefix "title")
+
+instance Default Title
diff --git a/src/DocuSign/Base/Types/UserInfo.hs b/src/DocuSign/Base/Types/UserInfo.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/UserInfo.hs
@@ -0,0 +1,24 @@
+module DocuSign.Base.Types.UserInfo where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+
+data UserInfo = UserInfo
+  { userInfoActivationAccessCode :: Maybe Text
+  , userInfoEmail                :: Maybe Text
+  , userInfoErrorDetails         :: Maybe ErrorDetails
+  , userInfoLoginStatus          :: Maybe Text
+  , userInfoSendActivationEmail  :: Maybe Text
+  , userInfoUri                  :: Maybe Text
+  , userInfoUserId               :: Maybe Text
+  , userInfoUserName             :: Maybe Text
+  , userInfoUserStatus           :: Maybe Text
+  , userInfoUserType             :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON UserInfo where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "userInfo")
+instance ToJSON UserInfo where
+  toJSON = genericToJSON (removeFieldLabelPrefix "userInfo")
+
+instance Default UserInfo
diff --git a/src/DocuSign/Base/Types/View.hs b/src/DocuSign/Base/Types/View.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/View.hs
@@ -0,0 +1,50 @@
+module DocuSign.Base.Types.View where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.MergeField
+
+data View = View
+  { viewAnchorCaseSensitive       :: Maybe Text
+  , viewAnchorHorizontalAlignment :: Maybe Text
+  , viewAnchorIgnoreIfNotPresent  :: Maybe Text
+  , viewAnchorMatchWholeWord      :: Maybe Text
+  , viewAnchorString              :: Maybe Text
+  , viewAnchorUnits               :: Maybe Text
+  , viewAnchorXOffset             :: Maybe Text
+  , viewAnchorYOffset             :: Maybe Text
+  , viewBold                      :: Maybe Text
+  , viewButtonText                :: Maybe Text
+  , viewConditionalParentLabel    :: Maybe Text
+  , viewConditionalParentValue    :: Maybe Text
+  , viewCustomTabId               :: Maybe Text
+  , viewDocumentId                :: Maybe Text
+  , viewErrorDetails              :: Maybe ErrorDetails
+  , viewFont                      :: Maybe Text
+  , viewFontColor                 :: Maybe Text
+  , viewFontSize                  :: Maybe Text
+  , viewHeight                    :: Maybe Int
+  , viewItalic                    :: Maybe Text
+  , viewMergeField                :: Maybe MergeField
+  , viewPageNumber                :: Maybe Text
+  , viewRecipientId               :: Maybe Text
+  , viewRequired                  :: Maybe Text
+  , viewRequiredRead              :: Maybe Text
+  , viewStatus                    :: Maybe Text
+  , viewTabId                     :: Maybe Text
+  , viewTabLabel                  :: Maybe Text
+  , viewTabOrder                  :: Maybe Text
+  , viewTemplateLocked            :: Maybe Text
+  , viewTemplateRequired          :: Maybe Text
+  , viewUnderline                 :: Maybe Text
+  , viewWidth                     :: Maybe Int
+  , viewXPosition                 :: Maybe Text
+  , viewYPosition                 :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON View where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "view")
+instance ToJSON View where
+  toJSON = genericToJSON (removeFieldLabelPrefix "view")
+
+instance Default View
diff --git a/src/DocuSign/Base/Types/Zip.hs b/src/DocuSign/Base/Types/Zip.hs
new file mode 100644
--- /dev/null
+++ b/src/DocuSign/Base/Types/Zip.hs
@@ -0,0 +1,61 @@
+module DocuSign.Base.Types.Zip where
+
+import DocuSign.Base.Types.Common
+import DocuSign.Base.Types.ErrorDetails
+import DocuSign.Base.Types.MergeField
+
+data Zip = Zip
+  { zipAnchorCaseSensitive          :: Maybe Text
+  , zipAnchorHorizontalAlignment    :: Maybe Text
+  , zipAnchorIgnoreIfNotPresent     :: Maybe Text
+  , zipAnchorMatchWholeWord         :: Maybe Text
+  , zipAnchorString                 :: Maybe Text
+  , zipAnchorUnits                  :: Maybe Text
+  , zipAnchorXOffset                :: Maybe Text
+  , zipAnchorYOffset                :: Maybe Text
+  , zipBold                         :: Maybe Text
+  , zipConcealValueOnDocument       :: Maybe Text
+  , zipConditionalParentLabel       :: Maybe Text
+  , zipConditionalParentValue       :: Maybe Text
+  , zipCustomTabId                  :: Maybe Text
+  , zipDisableAutoSize              :: Maybe Text
+  , zipDocumentId                   :: Maybe Text
+  , zipErrorDetails                 :: Maybe ErrorDetails
+  , zipFont                         :: Maybe Text
+  , zipFontColor                    :: Maybe Text
+  , zipFontSize                     :: Maybe Text
+  , zipItalic                       :: Maybe Text
+  , zipLocked                       :: Maybe Text
+  , zipMaxLength                    :: Maybe Int
+  , zipMergeField                   :: Maybe MergeField
+  , zipName                         :: Maybe Text
+  , zipOriginalValue                :: Maybe Text
+  , zipPageNumber                   :: Maybe Text
+  , zipRecipientId                  :: Maybe Text
+  , zipRequireAll                   :: Maybe Text
+  , zipRequired                     :: Maybe Text
+  , zipRequireInitialOnSharedChange :: Maybe Text
+  , zipSenderRequired               :: Maybe Text
+  , zipShared                       :: Maybe Text
+  , zipStatus                       :: Maybe Text
+  , zipTabId                        :: Maybe Text
+  , zipTabLabel                     :: Maybe Text
+  , zipTabOrder                     :: Maybe Text
+  , zipTemplateLocked               :: Maybe Text
+  , zipTemplateRequired             :: Maybe Text
+  , zipUnderline                    :: Maybe Text
+  , zipUseDash4                     :: Maybe Text
+  , zipValidationMessage            :: Maybe Text
+  , zipValidationPattern            :: Maybe Text
+  , zipValue                        :: Maybe Text
+  , zipWidth                        :: Maybe Int
+  , zipXPosition                    :: Maybe Text
+  , zipYPosition                    :: Maybe Text
+  } deriving (Show, Eq, Generic)
+
+instance FromJSON Zip where
+  parseJSON = genericParseJSON (removeFieldLabelPrefix "zip")
+instance ToJSON Zip where
+  toJSON = genericToJSON (removeFieldLabelPrefix "zip")
+
+instance Default Zip
