diff --git a/amazonka-swf.cabal b/amazonka-swf.cabal
--- a/amazonka-swf.cabal
+++ b/amazonka-swf.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-swf
-version:               0.0.0
+version:               0.0.1
 synopsis:              Amazon Simple Workflow Service SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -76,5 +76,5 @@
     other-modules:
 
     build-depends:
-          amazonka-core
-        , base          >= 4.7 && < 5
+          amazonka-core == 0.0.1.*
+        , base          >= 4.7     && < 5
diff --git a/gen/Network/AWS/SWF/ListActivityTypes.hs b/gen/Network/AWS/SWF/ListActivityTypes.hs
--- a/gen/Network/AWS/SWF/ListActivityTypes.hs
+++ b/gen/Network/AWS/SWF/ListActivityTypes.hs
@@ -69,9 +69,9 @@
     , _latMaximumPageSize    :: Maybe Nat
     , _latName               :: Maybe Text
     , _latNextPageToken      :: Maybe Text
-    , _latRegistrationStatus :: Text
+    , _latRegistrationStatus :: RegistrationStatus
     , _latReverseOrder       :: Maybe Bool
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Show)
 
 -- | 'ListActivityTypes' constructor.
 --
@@ -85,12 +85,12 @@
 --
 -- * 'latNextPageToken' @::@ 'Maybe' 'Text'
 --
--- * 'latRegistrationStatus' @::@ 'Text'
+-- * 'latRegistrationStatus' @::@ 'RegistrationStatus'
 --
 -- * 'latReverseOrder' @::@ 'Maybe' 'Bool'
 --
 listActivityTypes :: Text -- ^ 'latDomain'
-                  -> Text -- ^ 'latRegistrationStatus'
+                  -> RegistrationStatus -- ^ 'latRegistrationStatus'
                   -> ListActivityTypes
 listActivityTypes p1 p2 = ListActivityTypes
     { _latDomain             = p1
@@ -127,7 +127,7 @@
 latNextPageToken = lens _latNextPageToken (\s a -> s { _latNextPageToken = a })
 
 -- | Specifies the registration status of the activity types to list.
-latRegistrationStatus :: Lens' ListActivityTypes Text
+latRegistrationStatus :: Lens' ListActivityTypes RegistrationStatus
 latRegistrationStatus =
     lens _latRegistrationStatus (\s a -> s { _latRegistrationStatus = a })
 
diff --git a/gen/Network/AWS/SWF/ListDomains.hs b/gen/Network/AWS/SWF/ListDomains.hs
--- a/gen/Network/AWS/SWF/ListDomains.hs
+++ b/gen/Network/AWS/SWF/ListDomains.hs
@@ -64,9 +64,9 @@
 data ListDomains = ListDomains
     { _ldMaximumPageSize    :: Maybe Nat
     , _ldNextPageToken      :: Maybe Text
-    , _ldRegistrationStatus :: Text
+    , _ldRegistrationStatus :: RegistrationStatus
     , _ldReverseOrder       :: Maybe Bool
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Show)
 
 -- | 'ListDomains' constructor.
 --
@@ -76,11 +76,11 @@
 --
 -- * 'ldNextPageToken' @::@ 'Maybe' 'Text'
 --
--- * 'ldRegistrationStatus' @::@ 'Text'
+-- * 'ldRegistrationStatus' @::@ 'RegistrationStatus'
 --
 -- * 'ldReverseOrder' @::@ 'Maybe' 'Bool'
 --
-listDomains :: Text -- ^ 'ldRegistrationStatus'
+listDomains :: RegistrationStatus -- ^ 'ldRegistrationStatus'
             -> ListDomains
 listDomains p1 = ListDomains
     { _ldRegistrationStatus = p1
@@ -107,7 +107,7 @@
 ldNextPageToken = lens _ldNextPageToken (\s a -> s { _ldNextPageToken = a })
 
 -- | Specifies the registration status of the domains to list.
-ldRegistrationStatus :: Lens' ListDomains Text
+ldRegistrationStatus :: Lens' ListDomains RegistrationStatus
 ldRegistrationStatus =
     lens _ldRegistrationStatus (\s a -> s { _ldRegistrationStatus = a })
 
diff --git a/gen/Network/AWS/SWF/ListWorkflowTypes.hs b/gen/Network/AWS/SWF/ListWorkflowTypes.hs
--- a/gen/Network/AWS/SWF/ListWorkflowTypes.hs
+++ b/gen/Network/AWS/SWF/ListWorkflowTypes.hs
@@ -66,9 +66,9 @@
     , _lwtMaximumPageSize    :: Maybe Nat
     , _lwtName               :: Maybe Text
     , _lwtNextPageToken      :: Maybe Text
-    , _lwtRegistrationStatus :: Text
+    , _lwtRegistrationStatus :: RegistrationStatus
     , _lwtReverseOrder       :: Maybe Bool
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Show)
 
 -- | 'ListWorkflowTypes' constructor.
 --
@@ -82,12 +82,12 @@
 --
 -- * 'lwtNextPageToken' @::@ 'Maybe' 'Text'
 --
--- * 'lwtRegistrationStatus' @::@ 'Text'
+-- * 'lwtRegistrationStatus' @::@ 'RegistrationStatus'
 --
 -- * 'lwtReverseOrder' @::@ 'Maybe' 'Bool'
 --
 listWorkflowTypes :: Text -- ^ 'lwtDomain'
-                  -> Text -- ^ 'lwtRegistrationStatus'
+                  -> RegistrationStatus -- ^ 'lwtRegistrationStatus'
                   -> ListWorkflowTypes
 listWorkflowTypes p1 p2 = ListWorkflowTypes
     { _lwtDomain             = p1
@@ -124,7 +124,7 @@
 lwtNextPageToken = lens _lwtNextPageToken (\s a -> s { _lwtNextPageToken = a })
 
 -- | Specifies the registration status of the workflow types to list.
-lwtRegistrationStatus :: Lens' ListWorkflowTypes Text
+lwtRegistrationStatus :: Lens' ListWorkflowTypes RegistrationStatus
 lwtRegistrationStatus =
     lens _lwtRegistrationStatus (\s a -> s { _lwtRegistrationStatus = a })
 
diff --git a/gen/Network/AWS/SWF/RegisterWorkflowType.hs b/gen/Network/AWS/SWF/RegisterWorkflowType.hs
--- a/gen/Network/AWS/SWF/RegisterWorkflowType.hs
+++ b/gen/Network/AWS/SWF/RegisterWorkflowType.hs
@@ -67,7 +67,7 @@
 import qualified GHC.Exts
 
 data RegisterWorkflowType = RegisterWorkflowType
-    { _rwtDefaultChildPolicy                  :: Maybe Text
+    { _rwtDefaultChildPolicy                  :: Maybe ChildPolicy
     , _rwtDefaultExecutionStartToCloseTimeout :: Maybe Text
     , _rwtDefaultTaskList                     :: Maybe TaskList
     , _rwtDefaultTaskStartToCloseTimeout      :: Maybe Text
@@ -81,7 +81,7 @@
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'rwtDefaultChildPolicy' @::@ 'Maybe' 'Text'
+-- * 'rwtDefaultChildPolicy' @::@ 'Maybe' 'ChildPolicy'
 --
 -- * 'rwtDefaultExecutionStartToCloseTimeout' @::@ 'Maybe' 'Text'
 --
@@ -124,7 +124,7 @@
 -- decider to take appropriate actions when it receives an execution history
 -- with this event. ABANDON: no action will be taken. The child executions
 -- will continue to run.
-rwtDefaultChildPolicy :: Lens' RegisterWorkflowType (Maybe Text)
+rwtDefaultChildPolicy :: Lens' RegisterWorkflowType (Maybe ChildPolicy)
 rwtDefaultChildPolicy =
     lens _rwtDefaultChildPolicy (\s a -> s { _rwtDefaultChildPolicy = a })
 
diff --git a/gen/Network/AWS/SWF/StartWorkflowExecution.hs b/gen/Network/AWS/SWF/StartWorkflowExecution.hs
--- a/gen/Network/AWS/SWF/StartWorkflowExecution.hs
+++ b/gen/Network/AWS/SWF/StartWorkflowExecution.hs
@@ -71,7 +71,7 @@
 import qualified GHC.Exts
 
 data StartWorkflowExecution = StartWorkflowExecution
-    { _swe1ChildPolicy                  :: Maybe Text
+    { _swe1ChildPolicy                  :: Maybe ChildPolicy
     , _swe1Domain                       :: Text
     , _swe1ExecutionStartToCloseTimeout :: Maybe Text
     , _swe1Input                        :: Maybe Text
@@ -86,7 +86,7 @@
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'swe1ChildPolicy' @::@ 'Maybe' 'Text'
+-- * 'swe1ChildPolicy' @::@ 'Maybe' 'ChildPolicy'
 --
 -- * 'swe1Domain' @::@ 'Text'
 --
@@ -131,7 +131,7 @@
 -- history. It is up to the decider to take appropriate actions when it
 -- receives an execution history with this event. ABANDON: no action will be
 -- taken. The child executions will continue to run.
-swe1ChildPolicy :: Lens' StartWorkflowExecution (Maybe Text)
+swe1ChildPolicy :: Lens' StartWorkflowExecution (Maybe ChildPolicy)
 swe1ChildPolicy = lens _swe1ChildPolicy (\s a -> s { _swe1ChildPolicy = a })
 
 -- | The name of the domain in which the workflow execution is created.
diff --git a/gen/Network/AWS/SWF/TerminateWorkflowExecution.hs b/gen/Network/AWS/SWF/TerminateWorkflowExecution.hs
--- a/gen/Network/AWS/SWF/TerminateWorkflowExecution.hs
+++ b/gen/Network/AWS/SWF/TerminateWorkflowExecution.hs
@@ -63,19 +63,19 @@
 import qualified GHC.Exts
 
 data TerminateWorkflowExecution = TerminateWorkflowExecution
-    { _tweChildPolicy :: Maybe Text
+    { _tweChildPolicy :: Maybe ChildPolicy
     , _tweDetails     :: Maybe Text
     , _tweDomain      :: Text
     , _tweReason      :: Maybe Text
     , _tweRunId       :: Maybe Text
     , _tweWorkflowId  :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Show)
 
 -- | 'TerminateWorkflowExecution' constructor.
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'tweChildPolicy' @::@ 'Maybe' 'Text'
+-- * 'tweChildPolicy' @::@ 'Maybe' 'ChildPolicy'
 --
 -- * 'tweDetails' @::@ 'Maybe' 'Text'
 --
@@ -109,7 +109,7 @@
 -- decider to take appropriate actions when it receives an execution history
 -- with this event. ABANDON: no action will be taken. The child executions
 -- will continue to run.
-tweChildPolicy :: Lens' TerminateWorkflowExecution (Maybe Text)
+tweChildPolicy :: Lens' TerminateWorkflowExecution (Maybe ChildPolicy)
 tweChildPolicy = lens _tweChildPolicy (\s a -> s { _tweChildPolicy = a })
 
 -- | Optional details for terminating the workflow execution.
diff --git a/gen/Network/AWS/SWF/Types.hs b/gen/Network/AWS/SWF/Types.hs
--- a/gen/Network/AWS/SWF/Types.hs
+++ b/gen/Network/AWS/SWF/Types.hs
@@ -801,7 +801,7 @@
     handle = jsonError statusSuccess
 
 data WorkflowExecutionCancelRequestedEventAttributes = WorkflowExecutionCancelRequestedEventAttributes
-    { _wecreaCause                     :: Maybe Text
+    { _wecreaCause                     :: Maybe WorkflowExecutionCancelRequestedCause
     , _wecreaExternalInitiatedEventId  :: Maybe Integer
     , _wecreaExternalWorkflowExecution :: Maybe WorkflowExecution
     } deriving (Eq, Show)
@@ -810,7 +810,7 @@
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'wecreaCause' @::@ 'Maybe' 'Text'
+-- * 'wecreaCause' @::@ 'Maybe' 'WorkflowExecutionCancelRequestedCause'
 --
 -- * 'wecreaExternalInitiatedEventId' @::@ 'Maybe' 'Integer'
 --
@@ -827,7 +827,7 @@
 -- automatically generated, and specifies the cause. This happens if the
 -- parent workflow execution times out or is terminated, and the child
 -- policy is set to cancel child executions.
-wecreaCause :: Lens' WorkflowExecutionCancelRequestedEventAttributes (Maybe Text)
+wecreaCause :: Lens' WorkflowExecutionCancelRequestedEventAttributes (Maybe WorkflowExecutionCancelRequestedCause)
 wecreaCause = lens _wecreaCause (\s a -> s { _wecreaCause = a })
 
 -- | The id of the RequestCancelExternalWorkflowExecutionInitiated event
@@ -1041,23 +1041,23 @@
         ]
 
 data StartTimerFailedEventAttributes = StartTimerFailedEventAttributes
-    { _stfeaCause                        :: Text
+    { _stfeaCause                        :: StartTimerFailedCause
     , _stfeaDecisionTaskCompletedEventId :: Integer
     , _stfeaTimerId                      :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Show)
 
 -- | 'StartTimerFailedEventAttributes' constructor.
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'stfeaCause' @::@ 'Text'
+-- * 'stfeaCause' @::@ 'StartTimerFailedCause'
 --
 -- * 'stfeaDecisionTaskCompletedEventId' @::@ 'Integer'
 --
 -- * 'stfeaTimerId' @::@ 'Text'
 --
 startTimerFailedEventAttributes :: Text -- ^ 'stfeaTimerId'
-                                -> Text -- ^ 'stfeaCause'
+                                -> StartTimerFailedCause -- ^ 'stfeaCause'
                                 -> Integer -- ^ 'stfeaDecisionTaskCompletedEventId'
                                 -> StartTimerFailedEventAttributes
 startTimerFailedEventAttributes p1 p2 p3 = StartTimerFailedEventAttributes
@@ -1068,7 +1068,7 @@
 
 -- | The cause of the failure to process the decision. This information is
 -- generated by the system and can be useful for diagnostic purposes.
-stfeaCause :: Lens' StartTimerFailedEventAttributes Text
+stfeaCause :: Lens' StartTimerFailedEventAttributes StartTimerFailedCause
 stfeaCause = lens _stfeaCause (\s a -> s { _stfeaCause = a })
 
 -- | The id of the DecisionTaskCompleted event corresponding to the decision
@@ -1165,23 +1165,23 @@
         ]
 
 data RecordMarkerFailedEventAttributes = RecordMarkerFailedEventAttributes
-    { _rmfeaCause                        :: Text
+    { _rmfeaCause                        :: RecordMarkerFailedCause
     , _rmfeaDecisionTaskCompletedEventId :: Integer
     , _rmfeaMarkerName                   :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Show)
 
 -- | 'RecordMarkerFailedEventAttributes' constructor.
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'rmfeaCause' @::@ 'Text'
+-- * 'rmfeaCause' @::@ 'RecordMarkerFailedCause'
 --
 -- * 'rmfeaDecisionTaskCompletedEventId' @::@ 'Integer'
 --
 -- * 'rmfeaMarkerName' @::@ 'Text'
 --
 recordMarkerFailedEventAttributes :: Text -- ^ 'rmfeaMarkerName'
-                                  -> Text -- ^ 'rmfeaCause'
+                                  -> RecordMarkerFailedCause -- ^ 'rmfeaCause'
                                   -> Integer -- ^ 'rmfeaDecisionTaskCompletedEventId'
                                   -> RecordMarkerFailedEventAttributes
 recordMarkerFailedEventAttributes p1 p2 p3 = RecordMarkerFailedEventAttributes
@@ -1192,7 +1192,7 @@
 
 -- | The cause of the failure to process the decision. This information is
 -- generated by the system and can be useful for diagnostic purposes.
-rmfeaCause :: Lens' RecordMarkerFailedEventAttributes Text
+rmfeaCause :: Lens' RecordMarkerFailedEventAttributes RecordMarkerFailedCause
 rmfeaCause = lens _rmfeaCause (\s a -> s { _rmfeaCause = a })
 
 -- | The id of the DecisionTaskCompleted event corresponding to the decision
@@ -1404,16 +1404,16 @@
         ]
 
 newtype CloseStatusFilter = CloseStatusFilter
-    { _csfStatus :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+    { _csfStatus :: CloseStatus
+    } deriving (Eq, Show)
 
 -- | 'CloseStatusFilter' constructor.
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'csfStatus' @::@ 'Text'
+-- * 'csfStatus' @::@ 'CloseStatus'
 --
-closeStatusFilter :: Text -- ^ 'csfStatus'
+closeStatusFilter :: CloseStatus -- ^ 'csfStatus'
                   -> CloseStatusFilter
 closeStatusFilter p1 = CloseStatusFilter
     { _csfStatus = p1
@@ -1421,7 +1421,7 @@
 
 -- | The close status that must match the close status of an execution for it
 -- to meet the criteria of this filter. This field is required.
-csfStatus :: Lens' CloseStatusFilter Text
+csfStatus :: Lens' CloseStatusFilter CloseStatus
 csfStatus = lens _csfStatus (\s a -> s { _csfStatus = a })
 
 instance FromJSON CloseStatusFilter where
@@ -1445,6 +1445,10 @@
 instance ToText WorkflowExecutionTimeoutType where
     toText StartToClose = "START_TO_CLOSE"
 
+instance ToByteString WorkflowExecutionTimeoutType
+instance ToHeader     WorkflowExecutionTimeoutType
+instance ToQuery      WorkflowExecutionTimeoutType
+
 instance FromJSON WorkflowExecutionTimeoutType where
     parseJSON = parseJSONText "WorkflowExecutionTimeoutType"
 
@@ -1751,7 +1755,7 @@
     { _wtiCreationDate    :: RFC822
     , _wtiDeprecationDate :: Maybe RFC822
     , _wtiDescription     :: Maybe Text
-    , _wtiStatus          :: Text
+    , _wtiStatus          :: RegistrationStatus
     , _wtiWorkflowType    :: WorkflowType
     } deriving (Eq, Show)
 
@@ -1765,12 +1769,12 @@
 --
 -- * 'wtiDescription' @::@ 'Maybe' 'Text'
 --
--- * 'wtiStatus' @::@ 'Text'
+-- * 'wtiStatus' @::@ 'RegistrationStatus'
 --
 -- * 'wtiWorkflowType' @::@ 'WorkflowType'
 --
 workflowTypeInfo :: WorkflowType -- ^ 'wtiWorkflowType'
-                 -> Text -- ^ 'wtiStatus'
+                 -> RegistrationStatus -- ^ 'wtiStatus'
                  -> UTCTime -- ^ 'wtiCreationDate'
                  -> WorkflowTypeInfo
 workflowTypeInfo p1 p2 p3 = WorkflowTypeInfo
@@ -1797,7 +1801,7 @@
 wtiDescription = lens _wtiDescription (\s a -> s { _wtiDescription = a })
 
 -- | The current status of the workflow type.
-wtiStatus :: Lens' WorkflowTypeInfo Text
+wtiStatus :: Lens' WorkflowTypeInfo RegistrationStatus
 wtiStatus = lens _wtiStatus (\s a -> s { _wtiStatus = a })
 
 -- | The workflow type this information is about.
@@ -1990,6 +1994,10 @@
         ActivityIdUnknown     -> "ACTIVITY_ID_UNKNOWN"
         OperationNotPermitted -> "OPERATION_NOT_PERMITTED"
 
+instance ToByteString RequestCancelActivityTaskFailedCause
+instance ToHeader     RequestCancelActivityTaskFailedCause
+instance ToQuery      RequestCancelActivityTaskFailedCause
+
 instance FromJSON RequestCancelActivityTaskFailedCause where
     parseJSON = parseJSONText "RequestCancelActivityTaskFailedCause"
 
@@ -1999,7 +2007,7 @@
 data ScheduleActivityTaskFailedEventAttributes = ScheduleActivityTaskFailedEventAttributes
     { _satfeaActivityId                   :: Text
     , _satfeaActivityType                 :: ActivityType
-    , _satfeaCause                        :: Text
+    , _satfeaCause                        :: ScheduleActivityTaskFailedCause
     , _satfeaDecisionTaskCompletedEventId :: Integer
     } deriving (Eq, Show)
 
@@ -2011,13 +2019,13 @@
 --
 -- * 'satfeaActivityType' @::@ 'ActivityType'
 --
--- * 'satfeaCause' @::@ 'Text'
+-- * 'satfeaCause' @::@ 'ScheduleActivityTaskFailedCause'
 --
 -- * 'satfeaDecisionTaskCompletedEventId' @::@ 'Integer'
 --
 scheduleActivityTaskFailedEventAttributes :: ActivityType -- ^ 'satfeaActivityType'
                                           -> Text -- ^ 'satfeaActivityId'
-                                          -> Text -- ^ 'satfeaCause'
+                                          -> ScheduleActivityTaskFailedCause -- ^ 'satfeaCause'
                                           -> Integer -- ^ 'satfeaDecisionTaskCompletedEventId'
                                           -> ScheduleActivityTaskFailedEventAttributes
 scheduleActivityTaskFailedEventAttributes p1 p2 p3 p4 = ScheduleActivityTaskFailedEventAttributes
@@ -2039,7 +2047,7 @@
 
 -- | The cause of the failure to process the decision. This information is
 -- generated by the system and can be useful for diagnostic purposes.
-satfeaCause :: Lens' ScheduleActivityTaskFailedEventAttributes Text
+satfeaCause :: Lens' ScheduleActivityTaskFailedEventAttributes ScheduleActivityTaskFailedCause
 satfeaCause = lens _satfeaCause (\s a -> s { _satfeaCause = a })
 
 -- | The id of the DecisionTaskCompleted event corresponding to the decision
@@ -2214,6 +2222,10 @@
         EventLimitExceeded -> "EVENT_LIMIT_EXCEEDED"
         OperatorInitiated  -> "OPERATOR_INITIATED"
 
+instance ToByteString WorkflowExecutionTerminatedCause
+instance ToHeader     WorkflowExecutionTerminatedCause
+instance ToQuery      WorkflowExecutionTerminatedCause
+
 instance FromJSON WorkflowExecutionTerminatedCause where
     parseJSON = parseJSONText "WorkflowExecutionTerminatedCause"
 
@@ -2236,6 +2248,10 @@
         CWEFCOperationNotPermitted -> "OPERATION_NOT_PERMITTED"
         CWEFCUnhandledDecision     -> "UNHANDLED_DECISION"
 
+instance ToByteString CancelWorkflowExecutionFailedCause
+instance ToHeader     CancelWorkflowExecutionFailedCause
+instance ToQuery      CancelWorkflowExecutionFailedCause
+
 instance FromJSON CancelWorkflowExecutionFailedCause where
     parseJSON = parseJSONText "CancelWorkflowExecutionFailedCause"
 
@@ -2261,6 +2277,10 @@
         SEWEFCSignalExternalWorkflowExecutionRateExceeded -> "SIGNAL_EXTERNAL_WORKFLOW_EXECUTION_RATE_EXCEEDED"
         SEWEFCUnknownExternalWorkflowExecution            -> "UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION"
 
+instance ToByteString SignalExternalWorkflowExecutionFailedCause
+instance ToHeader     SignalExternalWorkflowExecutionFailedCause
+instance ToQuery      SignalExternalWorkflowExecutionFailedCause
+
 instance FromJSON SignalExternalWorkflowExecutionFailedCause where
     parseJSON = parseJSONText "SignalExternalWorkflowExecutionFailedCause"
 
@@ -2307,19 +2327,19 @@
         ]
 
 data CompleteWorkflowExecutionFailedEventAttributes = CompleteWorkflowExecutionFailedEventAttributes
-    { _cwefeaCause                        :: Text
+    { _cwefeaCause                        :: CompleteWorkflowExecutionFailedCause
     , _cwefeaDecisionTaskCompletedEventId :: Integer
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Show)
 
 -- | 'CompleteWorkflowExecutionFailedEventAttributes' constructor.
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'cwefeaCause' @::@ 'Text'
+-- * 'cwefeaCause' @::@ 'CompleteWorkflowExecutionFailedCause'
 --
 -- * 'cwefeaDecisionTaskCompletedEventId' @::@ 'Integer'
 --
-completeWorkflowExecutionFailedEventAttributes :: Text -- ^ 'cwefeaCause'
+completeWorkflowExecutionFailedEventAttributes :: CompleteWorkflowExecutionFailedCause -- ^ 'cwefeaCause'
                                                -> Integer -- ^ 'cwefeaDecisionTaskCompletedEventId'
                                                -> CompleteWorkflowExecutionFailedEventAttributes
 completeWorkflowExecutionFailedEventAttributes p1 p2 = CompleteWorkflowExecutionFailedEventAttributes
@@ -2329,7 +2349,7 @@
 
 -- | The cause of the failure. This information is generated by the system and
 -- can be useful for diagnostic purposes.
-cwefeaCause :: Lens' CompleteWorkflowExecutionFailedEventAttributes Text
+cwefeaCause :: Lens' CompleteWorkflowExecutionFailedEventAttributes CompleteWorkflowExecutionFailedCause
 cwefeaCause = lens _cwefeaCause (\s a -> s { _cwefeaCause = a })
 
 -- | The id of the DecisionTaskCompleted event corresponding to the decision
@@ -2456,6 +2476,10 @@
         StartChildWorkflowExecution            -> "StartChildWorkflowExecution"
         StartTimer                             -> "StartTimer"
 
+instance ToByteString DecisionType
+instance ToHeader     DecisionType
+instance ToQuery      DecisionType
+
 instance FromJSON DecisionType where
     parseJSON = parseJSONText "DecisionType"
 
@@ -2463,19 +2487,19 @@
     toJSON = toJSONText
 
 data RequestCancelExternalWorkflowExecutionFailedEventAttributes = RequestCancelExternalWorkflowExecutionFailedEventAttributes
-    { _rcewefeaCause                        :: Text
+    { _rcewefeaCause                        :: RequestCancelExternalWorkflowExecutionFailedCause
     , _rcewefeaControl                      :: Maybe Text
     , _rcewefeaDecisionTaskCompletedEventId :: Integer
     , _rcewefeaInitiatedEventId             :: Integer
     , _rcewefeaRunId                        :: Maybe Text
     , _rcewefeaWorkflowId                   :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Show)
 
 -- | 'RequestCancelExternalWorkflowExecutionFailedEventAttributes' constructor.
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'rcewefeaCause' @::@ 'Text'
+-- * 'rcewefeaCause' @::@ 'RequestCancelExternalWorkflowExecutionFailedCause'
 --
 -- * 'rcewefeaControl' @::@ 'Maybe' 'Text'
 --
@@ -2488,7 +2512,7 @@
 -- * 'rcewefeaWorkflowId' @::@ 'Text'
 --
 requestCancelExternalWorkflowExecutionFailedEventAttributes :: Text -- ^ 'rcewefeaWorkflowId'
-                                                            -> Text -- ^ 'rcewefeaCause'
+                                                            -> RequestCancelExternalWorkflowExecutionFailedCause -- ^ 'rcewefeaCause'
                                                             -> Integer -- ^ 'rcewefeaInitiatedEventId'
                                                             -> Integer -- ^ 'rcewefeaDecisionTaskCompletedEventId'
                                                             -> RequestCancelExternalWorkflowExecutionFailedEventAttributes
@@ -2503,7 +2527,7 @@
 
 -- | The cause of the failure to process the decision. This information is
 -- generated by the system and can be useful for diagnostic purposes.
-rcewefeaCause :: Lens' RequestCancelExternalWorkflowExecutionFailedEventAttributes Text
+rcewefeaCause :: Lens' RequestCancelExternalWorkflowExecutionFailedEventAttributes RequestCancelExternalWorkflowExecutionFailedCause
 rcewefeaCause = lens _rcewefeaCause (\s a -> s { _rcewefeaCause = a })
 
 rcewefeaControl :: Lens' RequestCancelExternalWorkflowExecutionFailedEventAttributes (Maybe Text)
@@ -2562,7 +2586,7 @@
     , _atiCreationDate    :: RFC822
     , _atiDeprecationDate :: Maybe RFC822
     , _atiDescription     :: Maybe Text
-    , _atiStatus          :: Text
+    , _atiStatus          :: RegistrationStatus
     } deriving (Eq, Show)
 
 -- | 'ActivityTypeInfo' constructor.
@@ -2577,10 +2601,10 @@
 --
 -- * 'atiDescription' @::@ 'Maybe' 'Text'
 --
--- * 'atiStatus' @::@ 'Text'
+-- * 'atiStatus' @::@ 'RegistrationStatus'
 --
 activityTypeInfo :: ActivityType -- ^ 'atiActivityType'
-                 -> Text -- ^ 'atiStatus'
+                 -> RegistrationStatus -- ^ 'atiStatus'
                  -> UTCTime -- ^ 'atiCreationDate'
                  -> ActivityTypeInfo
 activityTypeInfo p1 p2 p3 = ActivityTypeInfo
@@ -2611,7 +2635,7 @@
 atiDescription = lens _atiDescription (\s a -> s { _atiDescription = a })
 
 -- | The current status of the activity type.
-atiStatus :: Lens' ActivityTypeInfo Text
+atiStatus :: Lens' ActivityTypeInfo RegistrationStatus
 atiStatus = lens _atiStatus (\s a -> s { _atiStatus = a })
 
 instance FromJSON ActivityTypeInfo where
@@ -2691,7 +2715,7 @@
         ]
 
 data WorkflowExecutionStartedEventAttributes = WorkflowExecutionStartedEventAttributes
-    { _weseaChildPolicy                  :: Text
+    { _weseaChildPolicy                  :: ChildPolicy
     , _weseaContinuedExecutionRunId      :: Maybe Text
     , _weseaExecutionStartToCloseTimeout :: Maybe Text
     , _weseaInput                        :: Maybe Text
@@ -2707,7 +2731,7 @@
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'weseaChildPolicy' @::@ 'Text'
+-- * 'weseaChildPolicy' @::@ 'ChildPolicy'
 --
 -- * 'weseaContinuedExecutionRunId' @::@ 'Maybe' 'Text'
 --
@@ -2727,7 +2751,7 @@
 --
 -- * 'weseaWorkflowType' @::@ 'WorkflowType'
 --
-workflowExecutionStartedEventAttributes :: Text -- ^ 'weseaChildPolicy'
+workflowExecutionStartedEventAttributes :: ChildPolicy -- ^ 'weseaChildPolicy'
                                         -> TaskList -- ^ 'weseaTaskList'
                                         -> WorkflowType -- ^ 'weseaWorkflowType'
                                         -> WorkflowExecutionStartedEventAttributes
@@ -2753,7 +2777,7 @@
 -- up to the decider to take appropriate actions when it receives an
 -- execution history with this event. ABANDON: no action will be taken. The
 -- child executions will continue to run.
-weseaChildPolicy :: Lens' WorkflowExecutionStartedEventAttributes Text
+weseaChildPolicy :: Lens' WorkflowExecutionStartedEventAttributes ChildPolicy
 weseaChildPolicy = lens _weseaChildPolicy (\s a -> s { _weseaChildPolicy = a })
 
 -- | If this workflow execution was started due to a
@@ -2849,7 +2873,7 @@
         ]
 
 data WorkflowTypeConfiguration = WorkflowTypeConfiguration
-    { _wtcDefaultChildPolicy                  :: Maybe Text
+    { _wtcDefaultChildPolicy                  :: Maybe ChildPolicy
     , _wtcDefaultExecutionStartToCloseTimeout :: Maybe Text
     , _wtcDefaultTaskList                     :: Maybe TaskList
     , _wtcDefaultTaskStartToCloseTimeout      :: Maybe Text
@@ -2859,7 +2883,7 @@
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'wtcDefaultChildPolicy' @::@ 'Maybe' 'Text'
+-- * 'wtcDefaultChildPolicy' @::@ 'Maybe' 'ChildPolicy'
 --
 -- * 'wtcDefaultExecutionStartToCloseTimeout' @::@ 'Maybe' 'Text'
 --
@@ -2887,7 +2911,7 @@
 -- decider to take appropriate actions when it receives an execution history
 -- with this event. ABANDON: no action will be taken. The child executions
 -- will continue to run.
-wtcDefaultChildPolicy :: Lens' WorkflowTypeConfiguration (Maybe Text)
+wtcDefaultChildPolicy :: Lens' WorkflowTypeConfiguration (Maybe ChildPolicy)
 wtcDefaultChildPolicy =
     lens _wtcDefaultChildPolicy (\s a -> s { _wtcDefaultChildPolicy = a })
 
@@ -2964,6 +2988,10 @@
         ATTTScheduleToStart -> "SCHEDULE_TO_START"
         ATTTStartToClose    -> "START_TO_CLOSE"
 
+instance ToByteString ActivityTaskTimeoutType
+instance ToHeader     ActivityTaskTimeoutType
+instance ToQuery      ActivityTaskTimeoutType
+
 instance FromJSON ActivityTaskTimeoutType where
     parseJSON = parseJSONText "ActivityTaskTimeoutType"
 
@@ -3083,6 +3111,10 @@
         Closed -> "CLOSED"
         Open   -> "OPEN"
 
+instance ToByteString ExecutionStatus
+instance ToHeader     ExecutionStatus
+instance ToQuery      ExecutionStatus
+
 instance FromJSON ExecutionStatus where
     parseJSON = parseJSONText "ExecutionStatus"
 
@@ -3101,6 +3133,10 @@
 instance ToText DecisionTaskTimeoutType where
     toText DTTTStartToClose = "START_TO_CLOSE"
 
+instance ToByteString DecisionTaskTimeoutType
+instance ToHeader     DecisionTaskTimeoutType
+instance ToQuery      DecisionTaskTimeoutType
+
 instance FromJSON DecisionTaskTimeoutType where
     parseJSON = parseJSONText "DecisionTaskTimeoutType"
 
@@ -3119,6 +3155,10 @@
 instance ToText WorkflowExecutionCancelRequestedCause where
     toText WECRCChildPolicyApplied = "CHILD_POLICY_APPLIED"
 
+instance ToByteString WorkflowExecutionCancelRequestedCause
+instance ToHeader     WorkflowExecutionCancelRequestedCause
+instance ToQuery      WorkflowExecutionCancelRequestedCause
+
 instance FromJSON WorkflowExecutionCancelRequestedCause where
     parseJSON = parseJSONText "WorkflowExecutionCancelRequestedCause"
 
@@ -3168,6 +3208,10 @@
         SCWEFCWorkflowTypeDeprecated                       -> "WORKFLOW_TYPE_DEPRECATED"
         SCWEFCWorkflowTypeDoesNotExist                     -> "WORKFLOW_TYPE_DOES_NOT_EXIST"
 
+instance ToByteString StartChildWorkflowExecutionFailedCause
+instance ToHeader     StartChildWorkflowExecutionFailedCause
+instance ToQuery      StartChildWorkflowExecutionFailedCause
+
 instance FromJSON StartChildWorkflowExecutionFailedCause where
     parseJSON = parseJSONText "StartChildWorkflowExecutionFailedCause"
 
@@ -3177,8 +3221,8 @@
 data DecisionTaskTimedOutEventAttributes = DecisionTaskTimedOutEventAttributes
     { _dttoeaScheduledEventId :: Integer
     , _dttoeaStartedEventId   :: Integer
-    , _dttoeaTimeoutType      :: Text
-    } deriving (Eq, Ord, Show)
+    , _dttoeaTimeoutType      :: DecisionTaskTimeoutType
+    } deriving (Eq, Show)
 
 -- | 'DecisionTaskTimedOutEventAttributes' constructor.
 --
@@ -3188,9 +3232,9 @@
 --
 -- * 'dttoeaStartedEventId' @::@ 'Integer'
 --
--- * 'dttoeaTimeoutType' @::@ 'Text'
+-- * 'dttoeaTimeoutType' @::@ 'DecisionTaskTimeoutType'
 --
-decisionTaskTimedOutEventAttributes :: Text -- ^ 'dttoeaTimeoutType'
+decisionTaskTimedOutEventAttributes :: DecisionTaskTimeoutType -- ^ 'dttoeaTimeoutType'
                                     -> Integer -- ^ 'dttoeaScheduledEventId'
                                     -> Integer -- ^ 'dttoeaStartedEventId'
                                     -> DecisionTaskTimedOutEventAttributes
@@ -3217,7 +3261,7 @@
 
 -- | The type of timeout that expired before the decision task could be
 -- completed.
-dttoeaTimeoutType :: Lens' DecisionTaskTimedOutEventAttributes Text
+dttoeaTimeoutType :: Lens' DecisionTaskTimedOutEventAttributes DecisionTaskTimeoutType
 dttoeaTimeoutType =
     lens _dttoeaTimeoutType (\s a -> s { _dttoeaTimeoutType = a })
 
@@ -3292,23 +3336,23 @@
         ]
 
 data CancelTimerFailedEventAttributes = CancelTimerFailedEventAttributes
-    { _ctfeaCause                        :: Text
+    { _ctfeaCause                        :: CancelTimerFailedCause
     , _ctfeaDecisionTaskCompletedEventId :: Integer
     , _ctfeaTimerId                      :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Show)
 
 -- | 'CancelTimerFailedEventAttributes' constructor.
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'ctfeaCause' @::@ 'Text'
+-- * 'ctfeaCause' @::@ 'CancelTimerFailedCause'
 --
 -- * 'ctfeaDecisionTaskCompletedEventId' @::@ 'Integer'
 --
 -- * 'ctfeaTimerId' @::@ 'Text'
 --
 cancelTimerFailedEventAttributes :: Text -- ^ 'ctfeaTimerId'
-                                 -> Text -- ^ 'ctfeaCause'
+                                 -> CancelTimerFailedCause -- ^ 'ctfeaCause'
                                  -> Integer -- ^ 'ctfeaDecisionTaskCompletedEventId'
                                  -> CancelTimerFailedEventAttributes
 cancelTimerFailedEventAttributes p1 p2 p3 = CancelTimerFailedEventAttributes
@@ -3319,7 +3363,7 @@
 
 -- | The cause of the failure to process the decision. This information is
 -- generated by the system and can be useful for diagnostic purposes.
-ctfeaCause :: Lens' CancelTimerFailedEventAttributes Text
+ctfeaCause :: Lens' CancelTimerFailedEventAttributes CancelTimerFailedCause
 ctfeaCause = lens _ctfeaCause (\s a -> s { _ctfeaCause = a })
 
 -- | The id of the DecisionTaskCompleted event corresponding to the decision
@@ -3364,6 +3408,10 @@
         FWEFCOperationNotPermitted -> "OPERATION_NOT_PERMITTED"
         FWEFCUnhandledDecision     -> "UNHANDLED_DECISION"
 
+instance ToByteString FailWorkflowExecutionFailedCause
+instance ToHeader     FailWorkflowExecutionFailedCause
+instance ToQuery      FailWorkflowExecutionFailedCause
+
 instance FromJSON FailWorkflowExecutionFailedCause where
     parseJSON = parseJSONText "FailWorkflowExecutionFailedCause"
 
@@ -3514,7 +3562,7 @@
         ]
 
 data StartChildWorkflowExecutionDecisionAttributes = StartChildWorkflowExecutionDecisionAttributes
-    { _scwedaChildPolicy                  :: Maybe Text
+    { _scwedaChildPolicy                  :: Maybe ChildPolicy
     , _scwedaControl                      :: Maybe Text
     , _scwedaExecutionStartToCloseTimeout :: Maybe Text
     , _scwedaInput                        :: Maybe Text
@@ -3529,7 +3577,7 @@
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'scwedaChildPolicy' @::@ 'Maybe' 'Text'
+-- * 'scwedaChildPolicy' @::@ 'Maybe' 'ChildPolicy'
 --
 -- * 'scwedaControl' @::@ 'Maybe' 'Text'
 --
@@ -3573,7 +3621,7 @@
 -- history. It is up to the decider to take appropriate actions when it
 -- receives an execution history with this event. ABANDON: no action will be
 -- taken. The child executions will continue to run.
-scwedaChildPolicy :: Lens' StartChildWorkflowExecutionDecisionAttributes (Maybe Text)
+scwedaChildPolicy :: Lens' StartChildWorkflowExecutionDecisionAttributes (Maybe ChildPolicy)
 scwedaChildPolicy =
     lens _scwedaChildPolicy (\s a -> s { _scwedaChildPolicy = a })
 
@@ -3695,6 +3743,10 @@
         CANWEFCWorkflowTypeDeprecated                       -> "WORKFLOW_TYPE_DEPRECATED"
         CANWEFCWorkflowTypeDoesNotExist                     -> "WORKFLOW_TYPE_DOES_NOT_EXIST"
 
+instance ToByteString ContinueAsNewWorkflowExecutionFailedCause
+instance ToHeader     ContinueAsNewWorkflowExecutionFailedCause
+instance ToQuery      ContinueAsNewWorkflowExecutionFailedCause
+
 instance FromJSON ContinueAsNewWorkflowExecutionFailedCause where
     parseJSON = parseJSONText "ContinueAsNewWorkflowExecutionFailedCause"
 
@@ -3890,6 +3942,10 @@
         WorkflowExecutionTerminated                     -> "WorkflowExecutionTerminated"
         WorkflowExecutionTimedOut                       -> "WorkflowExecutionTimedOut"
 
+instance ToByteString EventType
+instance ToHeader     EventType
+instance ToQuery      EventType
+
 instance FromJSON EventType where
     parseJSON = parseJSONText "EventType"
 
@@ -3900,8 +3956,8 @@
     { _attoeaDetails          :: Maybe Text
     , _attoeaScheduledEventId :: Integer
     , _attoeaStartedEventId   :: Integer
-    , _attoeaTimeoutType      :: Text
-    } deriving (Eq, Ord, Show)
+    , _attoeaTimeoutType      :: ActivityTaskTimeoutType
+    } deriving (Eq, Show)
 
 -- | 'ActivityTaskTimedOutEventAttributes' constructor.
 --
@@ -3913,9 +3969,9 @@
 --
 -- * 'attoeaStartedEventId' @::@ 'Integer'
 --
--- * 'attoeaTimeoutType' @::@ 'Text'
+-- * 'attoeaTimeoutType' @::@ 'ActivityTaskTimeoutType'
 --
-activityTaskTimedOutEventAttributes :: Text -- ^ 'attoeaTimeoutType'
+activityTaskTimedOutEventAttributes :: ActivityTaskTimeoutType -- ^ 'attoeaTimeoutType'
                                     -> Integer -- ^ 'attoeaScheduledEventId'
                                     -> Integer -- ^ 'attoeaStartedEventId'
                                     -> ActivityTaskTimedOutEventAttributes
@@ -3947,7 +4003,7 @@
     lens _attoeaStartedEventId (\s a -> s { _attoeaStartedEventId = a })
 
 -- | The type of the timeout that caused this event.
-attoeaTimeoutType :: Lens' ActivityTaskTimedOutEventAttributes Text
+attoeaTimeoutType :: Lens' ActivityTaskTimedOutEventAttributes ActivityTaskTimeoutType
 attoeaTimeoutType =
     lens _attoeaTimeoutType (\s a -> s { _attoeaTimeoutType = a })
 
@@ -3968,9 +4024,9 @@
 
 data RequestCancelActivityTaskFailedEventAttributes = RequestCancelActivityTaskFailedEventAttributes
     { _rcatfeaActivityId                   :: Text
-    , _rcatfeaCause                        :: Text
+    , _rcatfeaCause                        :: RequestCancelActivityTaskFailedCause
     , _rcatfeaDecisionTaskCompletedEventId :: Integer
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Show)
 
 -- | 'RequestCancelActivityTaskFailedEventAttributes' constructor.
 --
@@ -3978,12 +4034,12 @@
 --
 -- * 'rcatfeaActivityId' @::@ 'Text'
 --
--- * 'rcatfeaCause' @::@ 'Text'
+-- * 'rcatfeaCause' @::@ 'RequestCancelActivityTaskFailedCause'
 --
 -- * 'rcatfeaDecisionTaskCompletedEventId' @::@ 'Integer'
 --
 requestCancelActivityTaskFailedEventAttributes :: Text -- ^ 'rcatfeaActivityId'
-                                               -> Text -- ^ 'rcatfeaCause'
+                                               -> RequestCancelActivityTaskFailedCause -- ^ 'rcatfeaCause'
                                                -> Integer -- ^ 'rcatfeaDecisionTaskCompletedEventId'
                                                -> RequestCancelActivityTaskFailedEventAttributes
 requestCancelActivityTaskFailedEventAttributes p1 p2 p3 = RequestCancelActivityTaskFailedEventAttributes
@@ -4000,7 +4056,7 @@
 
 -- | The cause of the failure to process the decision. This information is
 -- generated by the system and can be useful for diagnostic purposes.
-rcatfeaCause :: Lens' RequestCancelActivityTaskFailedEventAttributes Text
+rcatfeaCause :: Lens' RequestCancelActivityTaskFailedEventAttributes RequestCancelActivityTaskFailedCause
 rcatfeaCause = lens _rcatfeaCause (\s a -> s { _rcatfeaCause = a })
 
 -- | The id of the DecisionTaskCompleted event corresponding to the decision
@@ -4101,7 +4157,7 @@
 data ChildWorkflowExecutionTimedOutEventAttributes = ChildWorkflowExecutionTimedOutEventAttributes
     { _cwetoeaInitiatedEventId  :: Integer
     , _cwetoeaStartedEventId    :: Integer
-    , _cwetoeaTimeoutType       :: Text
+    , _cwetoeaTimeoutType       :: WorkflowExecutionTimeoutType
     , _cwetoeaWorkflowExecution :: WorkflowExecution
     , _cwetoeaWorkflowType      :: WorkflowType
     } deriving (Eq, Show)
@@ -4114,7 +4170,7 @@
 --
 -- * 'cwetoeaStartedEventId' @::@ 'Integer'
 --
--- * 'cwetoeaTimeoutType' @::@ 'Text'
+-- * 'cwetoeaTimeoutType' @::@ 'WorkflowExecutionTimeoutType'
 --
 -- * 'cwetoeaWorkflowExecution' @::@ 'WorkflowExecution'
 --
@@ -4122,7 +4178,7 @@
 --
 childWorkflowExecutionTimedOutEventAttributes :: WorkflowExecution -- ^ 'cwetoeaWorkflowExecution'
                                               -> WorkflowType -- ^ 'cwetoeaWorkflowType'
-                                              -> Text -- ^ 'cwetoeaTimeoutType'
+                                              -> WorkflowExecutionTimeoutType -- ^ 'cwetoeaTimeoutType'
                                               -> Integer -- ^ 'cwetoeaInitiatedEventId'
                                               -> Integer -- ^ 'cwetoeaStartedEventId'
                                               -> ChildWorkflowExecutionTimedOutEventAttributes
@@ -4152,7 +4208,7 @@
 
 -- | The type of the timeout that caused the child workflow execution to time
 -- out.
-cwetoeaTimeoutType :: Lens' ChildWorkflowExecutionTimedOutEventAttributes Text
+cwetoeaTimeoutType :: Lens' ChildWorkflowExecutionTimedOutEventAttributes WorkflowExecutionTimeoutType
 cwetoeaTimeoutType =
     lens _cwetoeaTimeoutType (\s a -> s { _cwetoeaTimeoutType = a })
 
@@ -4185,7 +4241,7 @@
         ]
 
 data StartChildWorkflowExecutionInitiatedEventAttributes = StartChildWorkflowExecutionInitiatedEventAttributes
-    { _scweieaChildPolicy                  :: Text
+    { _scweieaChildPolicy                  :: ChildPolicy
     , _scweieaControl                      :: Maybe Text
     , _scweieaDecisionTaskCompletedEventId :: Integer
     , _scweieaExecutionStartToCloseTimeout :: Maybe Text
@@ -4201,7 +4257,7 @@
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'scweieaChildPolicy' @::@ 'Text'
+-- * 'scweieaChildPolicy' @::@ 'ChildPolicy'
 --
 -- * 'scweieaControl' @::@ 'Maybe' 'Text'
 --
@@ -4225,7 +4281,7 @@
                                                     -> WorkflowType -- ^ 'scweieaWorkflowType'
                                                     -> TaskList -- ^ 'scweieaTaskList'
                                                     -> Integer -- ^ 'scweieaDecisionTaskCompletedEventId'
-                                                    -> Text -- ^ 'scweieaChildPolicy'
+                                                    -> ChildPolicy -- ^ 'scweieaChildPolicy'
                                                     -> StartChildWorkflowExecutionInitiatedEventAttributes
 startChildWorkflowExecutionInitiatedEventAttributes p1 p2 p3 p4 p5 = StartChildWorkflowExecutionInitiatedEventAttributes
     { _scweieaWorkflowId                   = p1
@@ -4249,7 +4305,7 @@
 -- decider to take appropriate actions when it receives an execution history
 -- with this event. ABANDON: no action will be taken. The child executions
 -- will continue to run.
-scweieaChildPolicy :: Lens' StartChildWorkflowExecutionInitiatedEventAttributes Text
+scweieaChildPolicy :: Lens' StartChildWorkflowExecutionInitiatedEventAttributes ChildPolicy
 scweieaChildPolicy =
     lens _scweieaChildPolicy (\s a -> s { _scweieaChildPolicy = a })
 
@@ -4337,19 +4393,19 @@
         ]
 
 data CancelWorkflowExecutionFailedEventAttributes = CancelWorkflowExecutionFailedEventAttributes
-    { _cwefea1Cause                        :: Text
+    { _cwefea1Cause                        :: CancelWorkflowExecutionFailedCause
     , _cwefea1DecisionTaskCompletedEventId :: Integer
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Show)
 
 -- | 'CancelWorkflowExecutionFailedEventAttributes' constructor.
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'cwefea1Cause' @::@ 'Text'
+-- * 'cwefea1Cause' @::@ 'CancelWorkflowExecutionFailedCause'
 --
 -- * 'cwefea1DecisionTaskCompletedEventId' @::@ 'Integer'
 --
-cancelWorkflowExecutionFailedEventAttributes :: Text -- ^ 'cwefea1Cause'
+cancelWorkflowExecutionFailedEventAttributes :: CancelWorkflowExecutionFailedCause -- ^ 'cwefea1Cause'
                                              -> Integer -- ^ 'cwefea1DecisionTaskCompletedEventId'
                                              -> CancelWorkflowExecutionFailedEventAttributes
 cancelWorkflowExecutionFailedEventAttributes p1 p2 = CancelWorkflowExecutionFailedEventAttributes
@@ -4359,7 +4415,7 @@
 
 -- | The cause of the failure. This information is generated by the system and
 -- can be useful for diagnostic purposes.
-cwefea1Cause :: Lens' CancelWorkflowExecutionFailedEventAttributes Text
+cwefea1Cause :: Lens' CancelWorkflowExecutionFailedEventAttributes CancelWorkflowExecutionFailedCause
 cwefea1Cause = lens _cwefea1Cause (\s a -> s { _cwefea1Cause = a })
 
 -- | The id of the DecisionTaskCompleted event corresponding to the decision
@@ -4383,25 +4439,25 @@
         ]
 
 data WorkflowExecutionTerminatedEventAttributes = WorkflowExecutionTerminatedEventAttributes
-    { _weteaCause       :: Maybe Text
-    , _weteaChildPolicy :: Text
+    { _weteaCause       :: Maybe WorkflowExecutionTerminatedCause
+    , _weteaChildPolicy :: ChildPolicy
     , _weteaDetails     :: Maybe Text
     , _weteaReason      :: Maybe Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Show)
 
 -- | 'WorkflowExecutionTerminatedEventAttributes' constructor.
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'weteaCause' @::@ 'Maybe' 'Text'
+-- * 'weteaCause' @::@ 'Maybe' 'WorkflowExecutionTerminatedCause'
 --
--- * 'weteaChildPolicy' @::@ 'Text'
+-- * 'weteaChildPolicy' @::@ 'ChildPolicy'
 --
 -- * 'weteaDetails' @::@ 'Maybe' 'Text'
 --
 -- * 'weteaReason' @::@ 'Maybe' 'Text'
 --
-workflowExecutionTerminatedEventAttributes :: Text -- ^ 'weteaChildPolicy'
+workflowExecutionTerminatedEventAttributes :: ChildPolicy -- ^ 'weteaChildPolicy'
                                            -> WorkflowExecutionTerminatedEventAttributes
 workflowExecutionTerminatedEventAttributes p1 = WorkflowExecutionTerminatedEventAttributes
     { _weteaChildPolicy = p1
@@ -4414,7 +4470,7 @@
 -- terminated, and specifies the cause. This happens if the parent workflow
 -- execution times out or is terminated and the child policy is set to
 -- terminate child executions.
-weteaCause :: Lens' WorkflowExecutionTerminatedEventAttributes (Maybe Text)
+weteaCause :: Lens' WorkflowExecutionTerminatedEventAttributes (Maybe WorkflowExecutionTerminatedCause)
 weteaCause = lens _weteaCause (\s a -> s { _weteaCause = a })
 
 -- | The policy used for the child workflow executions of this workflow
@@ -4425,7 +4481,7 @@
 -- decider to take appropriate actions when it receives an execution history
 -- with this event. ABANDON: no action will be taken. The child executions
 -- will continue to run.
-weteaChildPolicy :: Lens' WorkflowExecutionTerminatedEventAttributes Text
+weteaChildPolicy :: Lens' WorkflowExecutionTerminatedEventAttributes ChildPolicy
 weteaChildPolicy = lens _weteaChildPolicy (\s a -> s { _weteaChildPolicy = a })
 
 -- | The details provided for the termination (if any).
@@ -4523,6 +4579,10 @@
         SATFCOpenActivitiesLimitExceeded            -> "OPEN_ACTIVITIES_LIMIT_EXCEEDED"
         SATFCOperationNotPermitted                  -> "OPERATION_NOT_PERMITTED"
 
+instance ToByteString ScheduleActivityTaskFailedCause
+instance ToHeader     ScheduleActivityTaskFailedCause
+instance ToQuery      ScheduleActivityTaskFailedCause
+
 instance FromJSON ScheduleActivityTaskFailedCause where
     parseJSON = parseJSONText "ScheduleActivityTaskFailedCause"
 
@@ -4614,10 +4674,10 @@
 
 data WorkflowExecutionInfo = WorkflowExecutionInfo
     { _weiCancelRequested :: Maybe Bool
-    , _weiCloseStatus     :: Maybe Text
+    , _weiCloseStatus     :: Maybe CloseStatus
     , _weiCloseTimestamp  :: Maybe RFC822
     , _weiExecution       :: WorkflowExecution
-    , _weiExecutionStatus :: Text
+    , _weiExecutionStatus :: ExecutionStatus
     , _weiParent          :: Maybe WorkflowExecution
     , _weiStartTimestamp  :: RFC822
     , _weiTagList         :: List "tagList" Text
@@ -4630,13 +4690,13 @@
 --
 -- * 'weiCancelRequested' @::@ 'Maybe' 'Bool'
 --
--- * 'weiCloseStatus' @::@ 'Maybe' 'Text'
+-- * 'weiCloseStatus' @::@ 'Maybe' 'CloseStatus'
 --
 -- * 'weiCloseTimestamp' @::@ 'Maybe' 'UTCTime'
 --
 -- * 'weiExecution' @::@ 'WorkflowExecution'
 --
--- * 'weiExecutionStatus' @::@ 'Text'
+-- * 'weiExecutionStatus' @::@ 'ExecutionStatus'
 --
 -- * 'weiParent' @::@ 'Maybe' 'WorkflowExecution'
 --
@@ -4649,7 +4709,7 @@
 workflowExecutionInfo :: WorkflowExecution -- ^ 'weiExecution'
                       -> WorkflowType -- ^ 'weiWorkflowType'
                       -> UTCTime -- ^ 'weiStartTimestamp'
-                      -> Text -- ^ 'weiExecutionStatus'
+                      -> ExecutionStatus -- ^ 'weiExecutionStatus'
                       -> WorkflowExecutionInfo
 workflowExecutionInfo p1 p2 p3 p4 = WorkflowExecutionInfo
     { _weiExecution       = p1
@@ -4677,7 +4737,7 @@
 -- alloted time and was automatically timed out. CONTINUED_AS_NEW: the
 -- execution is logically continued. This means the current execution was
 -- completed and a new execution was started to carry on the workflow.
-weiCloseStatus :: Lens' WorkflowExecutionInfo (Maybe Text)
+weiCloseStatus :: Lens' WorkflowExecutionInfo (Maybe CloseStatus)
 weiCloseStatus = lens _weiCloseStatus (\s a -> s { _weiCloseStatus = a })
 
 -- | The time when the workflow execution was closed. Set only if the
@@ -4692,7 +4752,7 @@
 weiExecution = lens _weiExecution (\s a -> s { _weiExecution = a })
 
 -- | The current status of the execution.
-weiExecutionStatus :: Lens' WorkflowExecutionInfo Text
+weiExecutionStatus :: Lens' WorkflowExecutionInfo ExecutionStatus
 weiExecutionStatus =
     lens _weiExecutionStatus (\s a -> s { _weiExecutionStatus = a })
 
@@ -4743,19 +4803,19 @@
         ]
 
 data SignalExternalWorkflowExecutionFailedEventAttributes = SignalExternalWorkflowExecutionFailedEventAttributes
-    { _sewefeaCause                        :: Text
+    { _sewefeaCause                        :: SignalExternalWorkflowExecutionFailedCause
     , _sewefeaControl                      :: Maybe Text
     , _sewefeaDecisionTaskCompletedEventId :: Integer
     , _sewefeaInitiatedEventId             :: Integer
     , _sewefeaRunId                        :: Maybe Text
     , _sewefeaWorkflowId                   :: Text
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Show)
 
 -- | 'SignalExternalWorkflowExecutionFailedEventAttributes' constructor.
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'sewefeaCause' @::@ 'Text'
+-- * 'sewefeaCause' @::@ 'SignalExternalWorkflowExecutionFailedCause'
 --
 -- * 'sewefeaControl' @::@ 'Maybe' 'Text'
 --
@@ -4768,7 +4828,7 @@
 -- * 'sewefeaWorkflowId' @::@ 'Text'
 --
 signalExternalWorkflowExecutionFailedEventAttributes :: Text -- ^ 'sewefeaWorkflowId'
-                                                     -> Text -- ^ 'sewefeaCause'
+                                                     -> SignalExternalWorkflowExecutionFailedCause -- ^ 'sewefeaCause'
                                                      -> Integer -- ^ 'sewefeaInitiatedEventId'
                                                      -> Integer -- ^ 'sewefeaDecisionTaskCompletedEventId'
                                                      -> SignalExternalWorkflowExecutionFailedEventAttributes
@@ -4783,7 +4843,7 @@
 
 -- | The cause of the failure to process the decision. This information is
 -- generated by the system and can be useful for diagnostic purposes.
-sewefeaCause :: Lens' SignalExternalWorkflowExecutionFailedEventAttributes Text
+sewefeaCause :: Lens' SignalExternalWorkflowExecutionFailedEventAttributes SignalExternalWorkflowExecutionFailedCause
 sewefeaCause = lens _sewefeaCause (\s a -> s { _sewefeaCause = a })
 
 sewefeaControl :: Lens' SignalExternalWorkflowExecutionFailedEventAttributes (Maybe Text)
@@ -4885,6 +4945,10 @@
         RequestCancel -> "REQUEST_CANCEL"
         Terminate     -> "TERMINATE"
 
+instance ToByteString ChildPolicy
+instance ToHeader     ChildPolicy
+instance ToQuery      ChildPolicy
+
 instance FromJSON ChildPolicy where
     parseJSON = parseJSONText "ChildPolicy"
 
@@ -4963,6 +5027,10 @@
         CSTerminated     -> "TERMINATED"
         CSTimedOut       -> "TIMED_OUT"
 
+instance ToByteString CloseStatus
+instance ToHeader     CloseStatus
+instance ToQuery      CloseStatus
+
 instance FromJSON CloseStatus where
     parseJSON = parseJSONText "CloseStatus"
 
@@ -4985,6 +5053,10 @@
         CompleteWorkflowExecutionFailedCauseOperationNotPermitted -> "OPERATION_NOT_PERMITTED"
         CompleteWorkflowExecutionFailedCauseUnhandledDecision     -> "UNHANDLED_DECISION"
 
+instance ToByteString CompleteWorkflowExecutionFailedCause
+instance ToHeader     CompleteWorkflowExecutionFailedCause
+instance ToQuery      CompleteWorkflowExecutionFailedCause
+
 instance FromJSON CompleteWorkflowExecutionFailedCause where
     parseJSON = parseJSONText "CompleteWorkflowExecutionFailedCause"
 
@@ -5013,6 +5085,10 @@
         STFCTimerCreationRateExceeded -> "TIMER_CREATION_RATE_EXCEEDED"
         STFCTimerIdAlreadyInUse       -> "TIMER_ID_ALREADY_IN_USE"
 
+instance ToByteString StartTimerFailedCause
+instance ToHeader     StartTimerFailedCause
+instance ToQuery      StartTimerFailedCause
+
 instance FromJSON StartTimerFailedCause where
     parseJSON = parseJSONText "StartTimerFailedCause"
 
@@ -5065,20 +5141,20 @@
         ]
 
 data WorkflowExecutionTimedOutEventAttributes = WorkflowExecutionTimedOutEventAttributes
-    { _wetoeaChildPolicy :: Text
-    , _wetoeaTimeoutType :: Text
-    } deriving (Eq, Ord, Show)
+    { _wetoeaChildPolicy :: ChildPolicy
+    , _wetoeaTimeoutType :: WorkflowExecutionTimeoutType
+    } deriving (Eq, Show)
 
 -- | 'WorkflowExecutionTimedOutEventAttributes' constructor.
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'wetoeaChildPolicy' @::@ 'Text'
+-- * 'wetoeaChildPolicy' @::@ 'ChildPolicy'
 --
--- * 'wetoeaTimeoutType' @::@ 'Text'
+-- * 'wetoeaTimeoutType' @::@ 'WorkflowExecutionTimeoutType'
 --
-workflowExecutionTimedOutEventAttributes :: Text -- ^ 'wetoeaTimeoutType'
-                                         -> Text -- ^ 'wetoeaChildPolicy'
+workflowExecutionTimedOutEventAttributes :: WorkflowExecutionTimeoutType -- ^ 'wetoeaTimeoutType'
+                                         -> ChildPolicy -- ^ 'wetoeaChildPolicy'
                                          -> WorkflowExecutionTimedOutEventAttributes
 workflowExecutionTimedOutEventAttributes p1 p2 = WorkflowExecutionTimedOutEventAttributes
     { _wetoeaTimeoutType = p1
@@ -5093,12 +5169,12 @@
 -- decider to take appropriate actions when it receives an execution history
 -- with this event. ABANDON: no action will be taken. The child executions
 -- will continue to run.
-wetoeaChildPolicy :: Lens' WorkflowExecutionTimedOutEventAttributes Text
+wetoeaChildPolicy :: Lens' WorkflowExecutionTimedOutEventAttributes ChildPolicy
 wetoeaChildPolicy =
     lens _wetoeaChildPolicy (\s a -> s { _wetoeaChildPolicy = a })
 
 -- | The type of timeout that caused this event.
-wetoeaTimeoutType :: Lens' WorkflowExecutionTimedOutEventAttributes Text
+wetoeaTimeoutType :: Lens' WorkflowExecutionTimedOutEventAttributes WorkflowExecutionTimeoutType
 wetoeaTimeoutType =
     lens _wetoeaTimeoutType (\s a -> s { _wetoeaTimeoutType = a })
 
@@ -5313,6 +5389,10 @@
 instance ToText RecordMarkerFailedCause where
     toText RMFCOperationNotPermitted = "OPERATION_NOT_PERMITTED"
 
+instance ToByteString RecordMarkerFailedCause
+instance ToHeader     RecordMarkerFailedCause
+instance ToQuery      RecordMarkerFailedCause
+
 instance FromJSON RecordMarkerFailedCause where
     parseJSON = parseJSONText "RecordMarkerFailedCause"
 
@@ -5335,6 +5415,10 @@
         Deprecated -> "DEPRECATED"
         Registered -> "REGISTERED"
 
+instance ToByteString RegistrationStatus
+instance ToHeader     RegistrationStatus
+instance ToQuery      RegistrationStatus
+
 instance FromJSON RegistrationStatus where
     parseJSON = parseJSONText "RegistrationStatus"
 
@@ -5445,7 +5529,7 @@
     , _dCancelWorkflowExecutionDecisionAttributes                :: Maybe CancelWorkflowExecutionDecisionAttributes
     , _dCompleteWorkflowExecutionDecisionAttributes              :: Maybe CompleteWorkflowExecutionDecisionAttributes
     , _dContinueAsNewWorkflowExecutionDecisionAttributes         :: Maybe ContinueAsNewWorkflowExecutionDecisionAttributes
-    , _dDecisionType                                             :: Text
+    , _dDecisionType                                             :: DecisionType
     , _dFailWorkflowExecutionDecisionAttributes                  :: Maybe FailWorkflowExecutionDecisionAttributes
     , _dRecordMarkerDecisionAttributes                           :: Maybe RecordMarkerDecisionAttributes
     , _dRequestCancelActivityTaskDecisionAttributes              :: Maybe RequestCancelActivityTaskDecisionAttributes
@@ -5468,7 +5552,7 @@
 --
 -- * 'dContinueAsNewWorkflowExecutionDecisionAttributes' @::@ 'Maybe' 'ContinueAsNewWorkflowExecutionDecisionAttributes'
 --
--- * 'dDecisionType' @::@ 'Text'
+-- * 'dDecisionType' @::@ 'DecisionType'
 --
 -- * 'dFailWorkflowExecutionDecisionAttributes' @::@ 'Maybe' 'FailWorkflowExecutionDecisionAttributes'
 --
@@ -5486,7 +5570,7 @@
 --
 -- * 'dStartTimerDecisionAttributes' @::@ 'Maybe' 'StartTimerDecisionAttributes'
 --
-decision :: Text -- ^ 'dDecisionType'
+decision :: DecisionType -- ^ 'dDecisionType'
          -> Decision
 decision p1 = Decision
     { _dDecisionType                                             = p1
@@ -5533,7 +5617,7 @@
         (\s a -> s { _dContinueAsNewWorkflowExecutionDecisionAttributes = a })
 
 -- | Specifies the type of the decision.
-dDecisionType :: Lens' Decision Text
+dDecisionType :: Lens' Decision DecisionType
 dDecisionType = lens _dDecisionType (\s a -> s { _dDecisionType = a })
 
 -- | Provides details of the FailWorkflowExecution decision. It is not set for
@@ -5840,19 +5924,19 @@
         ]
 
 data FailWorkflowExecutionFailedEventAttributes = FailWorkflowExecutionFailedEventAttributes
-    { _fwefeaCause                        :: Text
+    { _fwefeaCause                        :: FailWorkflowExecutionFailedCause
     , _fwefeaDecisionTaskCompletedEventId :: Integer
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Show)
 
 -- | 'FailWorkflowExecutionFailedEventAttributes' constructor.
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'fwefeaCause' @::@ 'Text'
+-- * 'fwefeaCause' @::@ 'FailWorkflowExecutionFailedCause'
 --
 -- * 'fwefeaDecisionTaskCompletedEventId' @::@ 'Integer'
 --
-failWorkflowExecutionFailedEventAttributes :: Text -- ^ 'fwefeaCause'
+failWorkflowExecutionFailedEventAttributes :: FailWorkflowExecutionFailedCause -- ^ 'fwefeaCause'
                                            -> Integer -- ^ 'fwefeaDecisionTaskCompletedEventId'
                                            -> FailWorkflowExecutionFailedEventAttributes
 failWorkflowExecutionFailedEventAttributes p1 p2 = FailWorkflowExecutionFailedEventAttributes
@@ -5862,7 +5946,7 @@
 
 -- | The cause of the failure. This information is generated by the system and
 -- can be useful for diagnostic purposes.
-fwefeaCause :: Lens' FailWorkflowExecutionFailedEventAttributes Text
+fwefeaCause :: Lens' FailWorkflowExecutionFailedEventAttributes FailWorkflowExecutionFailedCause
 fwefeaCause = lens _fwefeaCause (\s a -> s { _fwefeaCause = a })
 
 -- | The id of the DecisionTaskCompleted event corresponding to the decision
@@ -5886,7 +5970,7 @@
         ]
 
 data StartChildWorkflowExecutionFailedEventAttributes = StartChildWorkflowExecutionFailedEventAttributes
-    { _scwefeaCause                        :: Text
+    { _scwefeaCause                        :: StartChildWorkflowExecutionFailedCause
     , _scwefeaControl                      :: Maybe Text
     , _scwefeaDecisionTaskCompletedEventId :: Integer
     , _scwefeaInitiatedEventId             :: Integer
@@ -5898,7 +5982,7 @@
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'scwefeaCause' @::@ 'Text'
+-- * 'scwefeaCause' @::@ 'StartChildWorkflowExecutionFailedCause'
 --
 -- * 'scwefeaControl' @::@ 'Maybe' 'Text'
 --
@@ -5911,7 +5995,7 @@
 -- * 'scwefeaWorkflowType' @::@ 'WorkflowType'
 --
 startChildWorkflowExecutionFailedEventAttributes :: WorkflowType -- ^ 'scwefeaWorkflowType'
-                                                 -> Text -- ^ 'scwefeaCause'
+                                                 -> StartChildWorkflowExecutionFailedCause -- ^ 'scwefeaCause'
                                                  -> Text -- ^ 'scwefeaWorkflowId'
                                                  -> Integer -- ^ 'scwefeaInitiatedEventId'
                                                  -> Integer -- ^ 'scwefeaDecisionTaskCompletedEventId'
@@ -5927,7 +6011,7 @@
 
 -- | The cause of the failure to process the decision. This information is
 -- generated by the system and can be useful for diagnostic purposes.
-scwefeaCause :: Lens' StartChildWorkflowExecutionFailedEventAttributes Text
+scwefeaCause :: Lens' StartChildWorkflowExecutionFailedEventAttributes StartChildWorkflowExecutionFailedCause
 scwefeaCause = lens _scwefeaCause (\s a -> s { _scwefeaCause = a })
 
 scwefeaControl :: Lens' StartChildWorkflowExecutionFailedEventAttributes (Maybe Text)
@@ -6035,6 +6119,10 @@
         CTFCOperationNotPermitted -> "OPERATION_NOT_PERMITTED"
         CTFCTimerIdUnknown        -> "TIMER_ID_UNKNOWN"
 
+instance ToByteString CancelTimerFailedCause
+instance ToHeader     CancelTimerFailedCause
+instance ToQuery      CancelTimerFailedCause
+
 instance FromJSON CancelTimerFailedCause where
     parseJSON = parseJSONText "CancelTimerFailedCause"
 
@@ -6194,8 +6282,8 @@
 data DomainInfo = DomainInfo
     { _diDescription :: Maybe Text
     , _diName        :: Text
-    , _diStatus      :: Text
-    } deriving (Eq, Ord, Show)
+    , _diStatus      :: RegistrationStatus
+    } deriving (Eq, Show)
 
 -- | 'DomainInfo' constructor.
 --
@@ -6205,10 +6293,10 @@
 --
 -- * 'diName' @::@ 'Text'
 --
--- * 'diStatus' @::@ 'Text'
+-- * 'diStatus' @::@ 'RegistrationStatus'
 --
 domainInfo :: Text -- ^ 'diName'
-           -> Text -- ^ 'diStatus'
+           -> RegistrationStatus -- ^ 'diStatus'
            -> DomainInfo
 domainInfo p1 p2 = DomainInfo
     { _diName        = p1
@@ -6229,7 +6317,7 @@
 -- new workflow executions. DEPRECATED: The domain was deprecated using
 -- DeprecateDomain, but is still in use. You should not create new workflow
 -- executions in this domain.
-diStatus :: Lens' DomainInfo Text
+diStatus :: Lens' DomainInfo RegistrationStatus
 diStatus = lens _diStatus (\s a -> s { _diStatus = a })
 
 instance FromJSON DomainInfo where
@@ -6269,7 +6357,7 @@
     , _heDecisionTaskTimedOutEventAttributes                            :: Maybe DecisionTaskTimedOutEventAttributes
     , _heEventId                                                        :: Integer
     , _heEventTimestamp                                                 :: RFC822
-    , _heEventType                                                      :: Text
+    , _heEventType                                                      :: EventType
     , _heExternalWorkflowExecutionCancelRequestedEventAttributes        :: Maybe ExternalWorkflowExecutionCancelRequestedEventAttributes
     , _heExternalWorkflowExecutionSignaledEventAttributes               :: Maybe ExternalWorkflowExecutionSignaledEventAttributes
     , _heFailWorkflowExecutionFailedEventAttributes                     :: Maybe FailWorkflowExecutionFailedEventAttributes
@@ -6348,7 +6436,7 @@
 --
 -- * 'heEventTimestamp' @::@ 'UTCTime'
 --
--- * 'heEventType' @::@ 'Text'
+-- * 'heEventType' @::@ 'EventType'
 --
 -- * 'heExternalWorkflowExecutionCancelRequestedEventAttributes' @::@ 'Maybe' 'ExternalWorkflowExecutionCancelRequestedEventAttributes'
 --
@@ -6403,7 +6491,7 @@
 -- * 'heWorkflowExecutionTimedOutEventAttributes' @::@ 'Maybe' 'WorkflowExecutionTimedOutEventAttributes'
 --
 historyEvent :: UTCTime -- ^ 'heEventTimestamp'
-             -> Text -- ^ 'heEventType'
+             -> EventType -- ^ 'heEventType'
              -> Integer -- ^ 'heEventId'
              -> HistoryEvent
 historyEvent p1 p2 p3 = HistoryEvent
@@ -6637,7 +6725,7 @@
 heEventTimestamp = lens _heEventTimestamp (\s a -> s { _heEventTimestamp = a }) . _Time
 
 -- | The type of the history event.
-heEventType :: Lens' HistoryEvent Text
+heEventType :: Lens' HistoryEvent EventType
 heEventType = lens _heEventType (\s a -> s { _heEventType = a })
 
 -- | If the event is of type ExternalWorkflowExecutionCancelRequested then
@@ -6956,19 +7044,19 @@
         ]
 
 data ContinueAsNewWorkflowExecutionFailedEventAttributes = ContinueAsNewWorkflowExecutionFailedEventAttributes
-    { _canwefeaCause                        :: Text
+    { _canwefeaCause                        :: ContinueAsNewWorkflowExecutionFailedCause
     , _canwefeaDecisionTaskCompletedEventId :: Integer
-    } deriving (Eq, Ord, Show)
+    } deriving (Eq, Show)
 
 -- | 'ContinueAsNewWorkflowExecutionFailedEventAttributes' constructor.
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'canwefeaCause' @::@ 'Text'
+-- * 'canwefeaCause' @::@ 'ContinueAsNewWorkflowExecutionFailedCause'
 --
 -- * 'canwefeaDecisionTaskCompletedEventId' @::@ 'Integer'
 --
-continueAsNewWorkflowExecutionFailedEventAttributes :: Text -- ^ 'canwefeaCause'
+continueAsNewWorkflowExecutionFailedEventAttributes :: ContinueAsNewWorkflowExecutionFailedCause -- ^ 'canwefeaCause'
                                                     -> Integer -- ^ 'canwefeaDecisionTaskCompletedEventId'
                                                     -> ContinueAsNewWorkflowExecutionFailedEventAttributes
 continueAsNewWorkflowExecutionFailedEventAttributes p1 p2 = ContinueAsNewWorkflowExecutionFailedEventAttributes
@@ -6978,7 +7066,7 @@
 
 -- | The cause of the failure. This information is generated by the system and
 -- can be useful for diagnostic purposes.
-canwefeaCause :: Lens' ContinueAsNewWorkflowExecutionFailedEventAttributes Text
+canwefeaCause :: Lens' ContinueAsNewWorkflowExecutionFailedEventAttributes ContinueAsNewWorkflowExecutionFailedCause
 canwefeaCause = lens _canwefeaCause (\s a -> s { _canwefeaCause = a })
 
 -- | The id of the DecisionTaskCompleted event corresponding to the decision
@@ -7174,7 +7262,7 @@
         ]
 
 data WorkflowExecutionConfiguration = WorkflowExecutionConfiguration
-    { _wecChildPolicy                  :: Text
+    { _wecChildPolicy                  :: ChildPolicy
     , _wecExecutionStartToCloseTimeout :: Text
     , _wecTaskList                     :: TaskList
     , _wecTaskStartToCloseTimeout      :: Text
@@ -7184,7 +7272,7 @@
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'wecChildPolicy' @::@ 'Text'
+-- * 'wecChildPolicy' @::@ 'ChildPolicy'
 --
 -- * 'wecExecutionStartToCloseTimeout' @::@ 'Text'
 --
@@ -7195,7 +7283,7 @@
 workflowExecutionConfiguration :: Text -- ^ 'wecTaskStartToCloseTimeout'
                                -> Text -- ^ 'wecExecutionStartToCloseTimeout'
                                -> TaskList -- ^ 'wecTaskList'
-                               -> Text -- ^ 'wecChildPolicy'
+                               -> ChildPolicy -- ^ 'wecChildPolicy'
                                -> WorkflowExecutionConfiguration
 workflowExecutionConfiguration p1 p2 p3 p4 = WorkflowExecutionConfiguration
     { _wecTaskStartToCloseTimeout      = p1
@@ -7213,7 +7301,7 @@
 -- up to the decider to take appropriate actions when it receives an
 -- execution history with this event. ABANDON: no action will be taken. The
 -- child executions will continue to run.
-wecChildPolicy :: Lens' WorkflowExecutionConfiguration Text
+wecChildPolicy :: Lens' WorkflowExecutionConfiguration ChildPolicy
 wecChildPolicy = lens _wecChildPolicy (\s a -> s { _wecChildPolicy = a })
 
 -- | The total duration for this workflow execution. The valid values are
@@ -7313,6 +7401,10 @@
         RCEWEFCRequestCancelExternalWorkflowExecutionRateExceeded -> "REQUEST_CANCEL_EXTERNAL_WORKFLOW_EXECUTION_RATE_EXCEEDED"
         RCEWEFCUnknownExternalWorkflowExecution                   -> "UNKNOWN_EXTERNAL_WORKFLOW_EXECUTION"
 
+instance ToByteString RequestCancelExternalWorkflowExecutionFailedCause
+instance ToHeader     RequestCancelExternalWorkflowExecutionFailedCause
+instance ToQuery      RequestCancelExternalWorkflowExecutionFailedCause
+
 instance FromJSON RequestCancelExternalWorkflowExecutionFailedCause where
     parseJSON = parseJSONText "RequestCancelExternalWorkflowExecutionFailedCause"
 
@@ -7320,7 +7412,7 @@
     toJSON = toJSONText
 
 data ContinueAsNewWorkflowExecutionDecisionAttributes = ContinueAsNewWorkflowExecutionDecisionAttributes
-    { _canwedaChildPolicy                  :: Maybe Text
+    { _canwedaChildPolicy                  :: Maybe ChildPolicy
     , _canwedaExecutionStartToCloseTimeout :: Maybe Text
     , _canwedaInput                        :: Maybe Text
     , _canwedaTagList                      :: List "tagList" Text
@@ -7333,7 +7425,7 @@
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'canwedaChildPolicy' @::@ 'Maybe' 'Text'
+-- * 'canwedaChildPolicy' @::@ 'Maybe' 'ChildPolicy'
 --
 -- * 'canwedaExecutionStartToCloseTimeout' @::@ 'Maybe' 'Text'
 --
@@ -7369,7 +7461,7 @@
 -- history. It is up to the decider to take appropriate actions when it
 -- receives an execution history with this event. ABANDON: no action will be
 -- taken. The child executions will continue to run.
-canwedaChildPolicy :: Lens' ContinueAsNewWorkflowExecutionDecisionAttributes (Maybe Text)
+canwedaChildPolicy :: Lens' ContinueAsNewWorkflowExecutionDecisionAttributes (Maybe ChildPolicy)
 canwedaChildPolicy =
     lens _canwedaChildPolicy (\s a -> s { _canwedaChildPolicy = a })
 
@@ -7523,7 +7615,7 @@
         ]
 
 data WorkflowExecutionContinuedAsNewEventAttributes = WorkflowExecutionContinuedAsNewEventAttributes
-    { _wecaneaChildPolicy                  :: Text
+    { _wecaneaChildPolicy                  :: ChildPolicy
     , _wecaneaDecisionTaskCompletedEventId :: Integer
     , _wecaneaExecutionStartToCloseTimeout :: Maybe Text
     , _wecaneaInput                        :: Maybe Text
@@ -7538,7 +7630,7 @@
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'wecaneaChildPolicy' @::@ 'Text'
+-- * 'wecaneaChildPolicy' @::@ 'ChildPolicy'
 --
 -- * 'wecaneaDecisionTaskCompletedEventId' @::@ 'Integer'
 --
@@ -7559,7 +7651,7 @@
 workflowExecutionContinuedAsNewEventAttributes :: Integer -- ^ 'wecaneaDecisionTaskCompletedEventId'
                                                -> Text -- ^ 'wecaneaNewExecutionRunId'
                                                -> TaskList -- ^ 'wecaneaTaskList'
-                                               -> Text -- ^ 'wecaneaChildPolicy'
+                                               -> ChildPolicy -- ^ 'wecaneaChildPolicy'
                                                -> WorkflowType -- ^ 'wecaneaWorkflowType'
                                                -> WorkflowExecutionContinuedAsNewEventAttributes
 workflowExecutionContinuedAsNewEventAttributes p1 p2 p3 p4 p5 = WorkflowExecutionContinuedAsNewEventAttributes
@@ -7583,7 +7675,7 @@
 -- up to the decider to take appropriate actions when it receives an
 -- execution history with this event. ABANDON: no action will be taken. The
 -- child executions will continue to run.
-wecaneaChildPolicy :: Lens' WorkflowExecutionContinuedAsNewEventAttributes Text
+wecaneaChildPolicy :: Lens' WorkflowExecutionContinuedAsNewEventAttributes ChildPolicy
 wecaneaChildPolicy =
     lens _wecaneaChildPolicy (\s a -> s { _wecaneaChildPolicy = a })
 
