diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`1.1.0`
+`1.2.0`
 
 
 ## Description
diff --git a/amazonka-ecs.cabal b/amazonka-ecs.cabal
--- a/amazonka-ecs.cabal
+++ b/amazonka-ecs.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-ecs
-version:               1.1.0
+version:               1.2.0
 synopsis:              Amazon EC2 Container Service SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -89,7 +89,7 @@
         , Network.AWS.ECS.Types.Sum
 
     build-depends:
-          amazonka-core == 1.1.0.*
+          amazonka-core == 1.2.0.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-ecs-test
@@ -108,9 +108,9 @@
         , Test.AWS.ECS.Internal
 
     build-depends:
-          amazonka-core == 1.1.0
-        , amazonka-test == 1.1.0
-        , amazonka-ecs == 1.1.0
+          amazonka-core == 1.2.0
+        , amazonka-test == 1.2.0
+        , amazonka-ecs == 1.2.0
         , base
         , bytestring
         , lens
diff --git a/gen/Network/AWS/ECS.hs b/gen/Network/AWS/ECS.hs
--- a/gen/Network/AWS/ECS.hs
+++ b/gen/Network/AWS/ECS.hs
@@ -29,8 +29,8 @@
 -- /See:/ <http://docs.aws.amazon.com/AmazonECS/latest/APIReference/Welcome.html AWS API Reference>
 module Network.AWS.ECS
     (
-    -- * Service
-      ECS
+    -- * Service Configuration
+      eCS
 
     -- * Errors
     -- $errors
diff --git a/gen/Network/AWS/ECS/CreateCluster.hs b/gen/Network/AWS/ECS/CreateCluster.hs
--- a/gen/Network/AWS/ECS/CreateCluster.hs
+++ b/gen/Network/AWS/ECS/CreateCluster.hs
@@ -70,9 +70,8 @@
 ccClusterName = lens _ccClusterName (\ s a -> s{_ccClusterName = a});
 
 instance AWSRequest CreateCluster where
-        type Sv CreateCluster = ECS
         type Rs CreateCluster = CreateClusterResponse
-        request = postJSON
+        request = postJSON eCS
         response
           = receiveJSON
               (\ s h x ->
@@ -91,7 +90,8 @@
 
 instance ToJSON CreateCluster where
         toJSON CreateCluster'{..}
-          = object ["clusterName" .= _ccClusterName]
+          = object
+              (catMaybes [("clusterName" .=) <$> _ccClusterName])
 
 instance ToPath CreateCluster where
         toPath = const "/"
diff --git a/gen/Network/AWS/ECS/CreateService.hs b/gen/Network/AWS/ECS/CreateService.hs
--- a/gen/Network/AWS/ECS/CreateService.hs
+++ b/gen/Network/AWS/ECS/CreateService.hs
@@ -139,9 +139,8 @@
 cDesiredCount = lens _cDesiredCount (\ s a -> s{_cDesiredCount = a});
 
 instance AWSRequest CreateService where
-        type Sv CreateService = ECS
         type Rs CreateService = CreateServiceResponse
-        request = postJSON
+        request = postJSON eCS
         response
           = receiveJSON
               (\ s h x ->
@@ -161,12 +160,14 @@
 instance ToJSON CreateService where
         toJSON CreateService'{..}
           = object
-              ["cluster" .= _cCluster,
-               "clientToken" .= _cClientToken,
-               "loadBalancers" .= _cLoadBalancers, "role" .= _cRole,
-               "serviceName" .= _cServiceName,
-               "taskDefinition" .= _cTaskDefinition,
-               "desiredCount" .= _cDesiredCount]
+              (catMaybes
+                 [("cluster" .=) <$> _cCluster,
+                  ("clientToken" .=) <$> _cClientToken,
+                  ("loadBalancers" .=) <$> _cLoadBalancers,
+                  ("role" .=) <$> _cRole,
+                  Just ("serviceName" .= _cServiceName),
+                  Just ("taskDefinition" .= _cTaskDefinition),
+                  Just ("desiredCount" .= _cDesiredCount)])
 
 instance ToPath CreateService where
         toPath = const "/"
diff --git a/gen/Network/AWS/ECS/DeleteCluster.hs b/gen/Network/AWS/ECS/DeleteCluster.hs
--- a/gen/Network/AWS/ECS/DeleteCluster.hs
+++ b/gen/Network/AWS/ECS/DeleteCluster.hs
@@ -70,9 +70,8 @@
 dcCluster = lens _dcCluster (\ s a -> s{_dcCluster = a});
 
 instance AWSRequest DeleteCluster where
-        type Sv DeleteCluster = ECS
         type Rs DeleteCluster = DeleteClusterResponse
-        request = postJSON
+        request = postJSON eCS
         response
           = receiveJSON
               (\ s h x ->
@@ -91,7 +90,7 @@
 
 instance ToJSON DeleteCluster where
         toJSON DeleteCluster'{..}
-          = object ["cluster" .= _dcCluster]
+          = object (catMaybes [Just ("cluster" .= _dcCluster)])
 
 instance ToPath DeleteCluster where
         toPath = const "/"
diff --git a/gen/Network/AWS/ECS/DeleteService.hs b/gen/Network/AWS/ECS/DeleteService.hs
--- a/gen/Network/AWS/ECS/DeleteService.hs
+++ b/gen/Network/AWS/ECS/DeleteService.hs
@@ -75,9 +75,8 @@
 dsService = lens _dsService (\ s a -> s{_dsService = a});
 
 instance AWSRequest DeleteService where
-        type Sv DeleteService = ECS
         type Rs DeleteService = DeleteServiceResponse
-        request = postJSON
+        request = postJSON eCS
         response
           = receiveJSON
               (\ s h x ->
@@ -97,7 +96,9 @@
 instance ToJSON DeleteService where
         toJSON DeleteService'{..}
           = object
-              ["cluster" .= _dsCluster, "service" .= _dsService]
+              (catMaybes
+                 [("cluster" .=) <$> _dsCluster,
+                  Just ("service" .= _dsService)])
 
 instance ToPath DeleteService where
         toPath = const "/"
diff --git a/gen/Network/AWS/ECS/DeregisterContainerInstance.hs b/gen/Network/AWS/ECS/DeregisterContainerInstance.hs
--- a/gen/Network/AWS/ECS/DeregisterContainerInstance.hs
+++ b/gen/Network/AWS/ECS/DeregisterContainerInstance.hs
@@ -114,10 +114,9 @@
 derContainerInstance = lens _derContainerInstance (\ s a -> s{_derContainerInstance = a});
 
 instance AWSRequest DeregisterContainerInstance where
-        type Sv DeregisterContainerInstance = ECS
         type Rs DeregisterContainerInstance =
              DeregisterContainerInstanceResponse
-        request = postJSON
+        request = postJSON eCS
         response
           = receiveJSON
               (\ s h x ->
@@ -137,8 +136,10 @@
 instance ToJSON DeregisterContainerInstance where
         toJSON DeregisterContainerInstance'{..}
           = object
-              ["cluster" .= _derCluster, "force" .= _derForce,
-               "containerInstance" .= _derContainerInstance]
+              (catMaybes
+                 [("cluster" .=) <$> _derCluster,
+                  ("force" .=) <$> _derForce,
+                  Just ("containerInstance" .= _derContainerInstance)])
 
 instance ToPath DeregisterContainerInstance where
         toPath = const "/"
diff --git a/gen/Network/AWS/ECS/DeregisterTaskDefinition.hs b/gen/Network/AWS/ECS/DeregisterTaskDefinition.hs
--- a/gen/Network/AWS/ECS/DeregisterTaskDefinition.hs
+++ b/gen/Network/AWS/ECS/DeregisterTaskDefinition.hs
@@ -79,10 +79,9 @@
 derTaskDefinition = lens _derTaskDefinition (\ s a -> s{_derTaskDefinition = a});
 
 instance AWSRequest DeregisterTaskDefinition where
-        type Sv DeregisterTaskDefinition = ECS
         type Rs DeregisterTaskDefinition =
              DeregisterTaskDefinitionResponse
-        request = postJSON
+        request = postJSON eCS
         response
           = receiveJSON
               (\ s h x ->
@@ -101,7 +100,9 @@
 
 instance ToJSON DeregisterTaskDefinition where
         toJSON DeregisterTaskDefinition'{..}
-          = object ["taskDefinition" .= _derTaskDefinition]
+          = object
+              (catMaybes
+                 [Just ("taskDefinition" .= _derTaskDefinition)])
 
 instance ToPath DeregisterTaskDefinition where
         toPath = const "/"
diff --git a/gen/Network/AWS/ECS/DescribeClusters.hs b/gen/Network/AWS/ECS/DescribeClusters.hs
--- a/gen/Network/AWS/ECS/DescribeClusters.hs
+++ b/gen/Network/AWS/ECS/DescribeClusters.hs
@@ -68,9 +68,8 @@
 dcClusters = lens _dcClusters (\ s a -> s{_dcClusters = a}) . _Default . _Coerce;
 
 instance AWSRequest DescribeClusters where
-        type Sv DescribeClusters = ECS
         type Rs DescribeClusters = DescribeClustersResponse
-        request = postJSON
+        request = postJSON eCS
         response
           = receiveJSON
               (\ s h x ->
@@ -91,7 +90,8 @@
 
 instance ToJSON DescribeClusters where
         toJSON DescribeClusters'{..}
-          = object ["clusters" .= _dcClusters]
+          = object
+              (catMaybes [("clusters" .=) <$> _dcClusters])
 
 instance ToPath DescribeClusters where
         toPath = const "/"
diff --git a/gen/Network/AWS/ECS/DescribeContainerInstances.hs b/gen/Network/AWS/ECS/DescribeContainerInstances.hs
--- a/gen/Network/AWS/ECS/DescribeContainerInstances.hs
+++ b/gen/Network/AWS/ECS/DescribeContainerInstances.hs
@@ -80,10 +80,9 @@
 dciContainerInstances = lens _dciContainerInstances (\ s a -> s{_dciContainerInstances = a}) . _Coerce;
 
 instance AWSRequest DescribeContainerInstances where
-        type Sv DescribeContainerInstances = ECS
         type Rs DescribeContainerInstances =
              DescribeContainerInstancesResponse
-        request = postJSON
+        request = postJSON eCS
         response
           = receiveJSON
               (\ s h x ->
@@ -105,8 +104,10 @@
 instance ToJSON DescribeContainerInstances where
         toJSON DescribeContainerInstances'{..}
           = object
-              ["cluster" .= _dciCluster,
-               "containerInstances" .= _dciContainerInstances]
+              (catMaybes
+                 [("cluster" .=) <$> _dciCluster,
+                  Just
+                    ("containerInstances" .= _dciContainerInstances)])
 
 instance ToPath DescribeContainerInstances where
         toPath = const "/"
diff --git a/gen/Network/AWS/ECS/DescribeServices.hs b/gen/Network/AWS/ECS/DescribeServices.hs
--- a/gen/Network/AWS/ECS/DescribeServices.hs
+++ b/gen/Network/AWS/ECS/DescribeServices.hs
@@ -75,9 +75,8 @@
 dServices = lens _dServices (\ s a -> s{_dServices = a}) . _Coerce;
 
 instance AWSRequest DescribeServices where
-        type Sv DescribeServices = ECS
         type Rs DescribeServices = DescribeServicesResponse
-        request = postJSON
+        request = postJSON eCS
         response
           = receiveJSON
               (\ s h x ->
@@ -99,7 +98,9 @@
 instance ToJSON DescribeServices where
         toJSON DescribeServices'{..}
           = object
-              ["cluster" .= _dCluster, "services" .= _dServices]
+              (catMaybes
+                 [("cluster" .=) <$> _dCluster,
+                  Just ("services" .= _dServices)])
 
 instance ToPath DescribeServices where
         toPath = const "/"
diff --git a/gen/Network/AWS/ECS/DescribeTaskDefinition.hs b/gen/Network/AWS/ECS/DescribeTaskDefinition.hs
--- a/gen/Network/AWS/ECS/DescribeTaskDefinition.hs
+++ b/gen/Network/AWS/ECS/DescribeTaskDefinition.hs
@@ -74,10 +74,9 @@
 dtdTaskDefinition = lens _dtdTaskDefinition (\ s a -> s{_dtdTaskDefinition = a});
 
 instance AWSRequest DescribeTaskDefinition where
-        type Sv DescribeTaskDefinition = ECS
         type Rs DescribeTaskDefinition =
              DescribeTaskDefinitionResponse
-        request = postJSON
+        request = postJSON eCS
         response
           = receiveJSON
               (\ s h x ->
@@ -96,7 +95,9 @@
 
 instance ToJSON DescribeTaskDefinition where
         toJSON DescribeTaskDefinition'{..}
-          = object ["taskDefinition" .= _dtdTaskDefinition]
+          = object
+              (catMaybes
+                 [Just ("taskDefinition" .= _dtdTaskDefinition)])
 
 instance ToPath DescribeTaskDefinition where
         toPath = const "/"
diff --git a/gen/Network/AWS/ECS/DescribeTasks.hs b/gen/Network/AWS/ECS/DescribeTasks.hs
--- a/gen/Network/AWS/ECS/DescribeTasks.hs
+++ b/gen/Network/AWS/ECS/DescribeTasks.hs
@@ -78,9 +78,8 @@
 dtTasks = lens _dtTasks (\ s a -> s{_dtTasks = a}) . _Coerce;
 
 instance AWSRequest DescribeTasks where
-        type Sv DescribeTasks = ECS
         type Rs DescribeTasks = DescribeTasksResponse
-        request = postJSON
+        request = postJSON eCS
         response
           = receiveJSON
               (\ s h x ->
@@ -102,7 +101,9 @@
 instance ToJSON DescribeTasks where
         toJSON DescribeTasks'{..}
           = object
-              ["cluster" .= _dtCluster, "tasks" .= _dtTasks]
+              (catMaybes
+                 [("cluster" .=) <$> _dtCluster,
+                  Just ("tasks" .= _dtTasks)])
 
 instance ToPath DescribeTasks where
         toPath = const "/"
diff --git a/gen/Network/AWS/ECS/DiscoverPollEndpoint.hs b/gen/Network/AWS/ECS/DiscoverPollEndpoint.hs
--- a/gen/Network/AWS/ECS/DiscoverPollEndpoint.hs
+++ b/gen/Network/AWS/ECS/DiscoverPollEndpoint.hs
@@ -84,10 +84,9 @@
 dpeContainerInstance = lens _dpeContainerInstance (\ s a -> s{_dpeContainerInstance = a});
 
 instance AWSRequest DiscoverPollEndpoint where
-        type Sv DiscoverPollEndpoint = ECS
         type Rs DiscoverPollEndpoint =
              DiscoverPollEndpointResponse
-        request = postJSON
+        request = postJSON eCS
         response
           = receiveJSON
               (\ s h x ->
@@ -108,8 +107,9 @@
 instance ToJSON DiscoverPollEndpoint where
         toJSON DiscoverPollEndpoint'{..}
           = object
-              ["cluster" .= _dpeCluster,
-               "containerInstance" .= _dpeContainerInstance]
+              (catMaybes
+                 [("cluster" .=) <$> _dpeCluster,
+                  ("containerInstance" .=) <$> _dpeContainerInstance])
 
 instance ToPath DiscoverPollEndpoint where
         toPath = const "/"
diff --git a/gen/Network/AWS/ECS/ListClusters.hs b/gen/Network/AWS/ECS/ListClusters.hs
--- a/gen/Network/AWS/ECS/ListClusters.hs
+++ b/gen/Network/AWS/ECS/ListClusters.hs
@@ -96,9 +96,8 @@
             Just $ rq & lcNextToken .~ rs ^. lcrsNextToken
 
 instance AWSRequest ListClusters where
-        type Sv ListClusters = ECS
         type Rs ListClusters = ListClustersResponse
-        request = postJSON
+        request = postJSON eCS
         response
           = receiveJSON
               (\ s h x ->
@@ -120,8 +119,9 @@
 instance ToJSON ListClusters where
         toJSON ListClusters'{..}
           = object
-              ["nextToken" .= _lcNextToken,
-               "maxResults" .= _lcMaxResults]
+              (catMaybes
+                 [("nextToken" .=) <$> _lcNextToken,
+                  ("maxResults" .=) <$> _lcMaxResults])
 
 instance ToPath ListClusters where
         toPath = const "/"
diff --git a/gen/Network/AWS/ECS/ListContainerInstances.hs b/gen/Network/AWS/ECS/ListContainerInstances.hs
--- a/gen/Network/AWS/ECS/ListContainerInstances.hs
+++ b/gen/Network/AWS/ECS/ListContainerInstances.hs
@@ -108,10 +108,9 @@
             Just $ rq & lciNextToken .~ rs ^. lcirsNextToken
 
 instance AWSRequest ListContainerInstances where
-        type Sv ListContainerInstances = ECS
         type Rs ListContainerInstances =
              ListContainerInstancesResponse
-        request = postJSON
+        request = postJSON eCS
         response
           = receiveJSON
               (\ s h x ->
@@ -133,9 +132,10 @@
 instance ToJSON ListContainerInstances where
         toJSON ListContainerInstances'{..}
           = object
-              ["cluster" .= _lciCluster,
-               "nextToken" .= _lciNextToken,
-               "maxResults" .= _lciMaxResults]
+              (catMaybes
+                 [("cluster" .=) <$> _lciCluster,
+                  ("nextToken" .=) <$> _lciNextToken,
+                  ("maxResults" .=) <$> _lciMaxResults])
 
 instance ToPath ListContainerInstances where
         toPath = const "/"
diff --git a/gen/Network/AWS/ECS/ListServices.hs b/gen/Network/AWS/ECS/ListServices.hs
--- a/gen/Network/AWS/ECS/ListServices.hs
+++ b/gen/Network/AWS/ECS/ListServices.hs
@@ -107,9 +107,8 @@
             Just $ rq & lsNextToken .~ rs ^. lsrsNextToken
 
 instance AWSRequest ListServices where
-        type Sv ListServices = ECS
         type Rs ListServices = ListServicesResponse
-        request = postJSON
+        request = postJSON eCS
         response
           = receiveJSON
               (\ s h x ->
@@ -131,9 +130,10 @@
 instance ToJSON ListServices where
         toJSON ListServices'{..}
           = object
-              ["cluster" .= _lsCluster,
-               "nextToken" .= _lsNextToken,
-               "maxResults" .= _lsMaxResults]
+              (catMaybes
+                 [("cluster" .=) <$> _lsCluster,
+                  ("nextToken" .=) <$> _lsNextToken,
+                  ("maxResults" .=) <$> _lsMaxResults])
 
 instance ToPath ListServices where
         toPath = const "/"
diff --git a/gen/Network/AWS/ECS/ListTaskDefinitionFamilies.hs b/gen/Network/AWS/ECS/ListTaskDefinitionFamilies.hs
--- a/gen/Network/AWS/ECS/ListTaskDefinitionFamilies.hs
+++ b/gen/Network/AWS/ECS/ListTaskDefinitionFamilies.hs
@@ -112,10 +112,9 @@
             Just $ rq & ltdfNextToken .~ rs ^. ltdfrsNextToken
 
 instance AWSRequest ListTaskDefinitionFamilies where
-        type Sv ListTaskDefinitionFamilies = ECS
         type Rs ListTaskDefinitionFamilies =
              ListTaskDefinitionFamiliesResponse
-        request = postJSON
+        request = postJSON eCS
         response
           = receiveJSON
               (\ s h x ->
@@ -136,9 +135,10 @@
 instance ToJSON ListTaskDefinitionFamilies where
         toJSON ListTaskDefinitionFamilies'{..}
           = object
-              ["familyPrefix" .= _ltdfFamilyPrefix,
-               "nextToken" .= _ltdfNextToken,
-               "maxResults" .= _ltdfMaxResults]
+              (catMaybes
+                 [("familyPrefix" .=) <$> _ltdfFamilyPrefix,
+                  ("nextToken" .=) <$> _ltdfNextToken,
+                  ("maxResults" .=) <$> _ltdfMaxResults])
 
 instance ToPath ListTaskDefinitionFamilies where
         toPath = const "/"
diff --git a/gen/Network/AWS/ECS/ListTaskDefinitions.hs b/gen/Network/AWS/ECS/ListTaskDefinitions.hs
--- a/gen/Network/AWS/ECS/ListTaskDefinitions.hs
+++ b/gen/Network/AWS/ECS/ListTaskDefinitions.hs
@@ -138,10 +138,9 @@
             Just $ rq & ltdNextToken .~ rs ^. ltdrsNextToken
 
 instance AWSRequest ListTaskDefinitions where
-        type Sv ListTaskDefinitions = ECS
         type Rs ListTaskDefinitions =
              ListTaskDefinitionsResponse
-        request = postJSON
+        request = postJSON eCS
         response
           = receiveJSON
               (\ s h x ->
@@ -163,10 +162,12 @@
 instance ToJSON ListTaskDefinitions where
         toJSON ListTaskDefinitions'{..}
           = object
-              ["status" .= _ltdStatus,
-               "familyPrefix" .= _ltdFamilyPrefix,
-               "nextToken" .= _ltdNextToken, "sort" .= _ltdSort,
-               "maxResults" .= _ltdMaxResults]
+              (catMaybes
+                 [("status" .=) <$> _ltdStatus,
+                  ("familyPrefix" .=) <$> _ltdFamilyPrefix,
+                  ("nextToken" .=) <$> _ltdNextToken,
+                  ("sort" .=) <$> _ltdSort,
+                  ("maxResults" .=) <$> _ltdMaxResults])
 
 instance ToPath ListTaskDefinitions where
         toPath = const "/"
diff --git a/gen/Network/AWS/ECS/ListTasks.hs b/gen/Network/AWS/ECS/ListTasks.hs
--- a/gen/Network/AWS/ECS/ListTasks.hs
+++ b/gen/Network/AWS/ECS/ListTasks.hs
@@ -168,9 +168,8 @@
             Just $ rq & ltNextToken .~ rs ^. ltrsNextToken
 
 instance AWSRequest ListTasks where
-        type Sv ListTasks = ECS
         type Rs ListTasks = ListTasksResponse
-        request = postJSON
+        request = postJSON eCS
         response
           = receiveJSON
               (\ s h x ->
@@ -191,13 +190,15 @@
 instance ToJSON ListTasks where
         toJSON ListTasks'{..}
           = object
-              ["desiredStatus" .= _ltDesiredStatus,
-               "cluster" .= _ltCluster, "family" .= _ltFamily,
-               "nextToken" .= _ltNextToken,
-               "startedBy" .= _ltStartedBy,
-               "serviceName" .= _ltServiceName,
-               "containerInstance" .= _ltContainerInstance,
-               "maxResults" .= _ltMaxResults]
+              (catMaybes
+                 [("desiredStatus" .=) <$> _ltDesiredStatus,
+                  ("cluster" .=) <$> _ltCluster,
+                  ("family" .=) <$> _ltFamily,
+                  ("nextToken" .=) <$> _ltNextToken,
+                  ("startedBy" .=) <$> _ltStartedBy,
+                  ("serviceName" .=) <$> _ltServiceName,
+                  ("containerInstance" .=) <$> _ltContainerInstance,
+                  ("maxResults" .=) <$> _ltMaxResults])
 
 instance ToPath ListTasks where
         toPath = const "/"
diff --git a/gen/Network/AWS/ECS/RegisterContainerInstance.hs b/gen/Network/AWS/ECS/RegisterContainerInstance.hs
--- a/gen/Network/AWS/ECS/RegisterContainerInstance.hs
+++ b/gen/Network/AWS/ECS/RegisterContainerInstance.hs
@@ -124,10 +124,9 @@
 rciTotalResources = lens _rciTotalResources (\ s a -> s{_rciTotalResources = a}) . _Default . _Coerce;
 
 instance AWSRequest RegisterContainerInstance where
-        type Sv RegisterContainerInstance = ECS
         type Rs RegisterContainerInstance =
              RegisterContainerInstanceResponse
-        request = postJSON
+        request = postJSON eCS
         response
           = receiveJSON
               (\ s h x ->
@@ -147,14 +146,16 @@
 instance ToJSON RegisterContainerInstance where
         toJSON RegisterContainerInstance'{..}
           = object
-              ["instanceIdentityDocumentSignature" .=
-                 _rciInstanceIdentityDocumentSignature,
-               "cluster" .= _rciCluster,
-               "instanceIdentityDocument" .=
-                 _rciInstanceIdentityDocument,
-               "containerInstanceArn" .= _rciContainerInstanceARN,
-               "versionInfo" .= _rciVersionInfo,
-               "totalResources" .= _rciTotalResources]
+              (catMaybes
+                 [("instanceIdentityDocumentSignature" .=) <$>
+                    _rciInstanceIdentityDocumentSignature,
+                  ("cluster" .=) <$> _rciCluster,
+                  ("instanceIdentityDocument" .=) <$>
+                    _rciInstanceIdentityDocument,
+                  ("containerInstanceArn" .=) <$>
+                    _rciContainerInstanceARN,
+                  ("versionInfo" .=) <$> _rciVersionInfo,
+                  ("totalResources" .=) <$> _rciTotalResources])
 
 instance ToPath RegisterContainerInstance where
         toPath = const "/"
diff --git a/gen/Network/AWS/ECS/RegisterTaskDefinition.hs b/gen/Network/AWS/ECS/RegisterTaskDefinition.hs
--- a/gen/Network/AWS/ECS/RegisterTaskDefinition.hs
+++ b/gen/Network/AWS/ECS/RegisterTaskDefinition.hs
@@ -95,10 +95,9 @@
 rtdContainerDefinitions = lens _rtdContainerDefinitions (\ s a -> s{_rtdContainerDefinitions = a}) . _Coerce;
 
 instance AWSRequest RegisterTaskDefinition where
-        type Sv RegisterTaskDefinition = ECS
         type Rs RegisterTaskDefinition =
              RegisterTaskDefinitionResponse
-        request = postJSON
+        request = postJSON eCS
         response
           = receiveJSON
               (\ s h x ->
@@ -118,8 +117,12 @@
 instance ToJSON RegisterTaskDefinition where
         toJSON RegisterTaskDefinition'{..}
           = object
-              ["volumes" .= _rtdVolumes, "family" .= _rtdFamily,
-               "containerDefinitions" .= _rtdContainerDefinitions]
+              (catMaybes
+                 [("volumes" .=) <$> _rtdVolumes,
+                  Just ("family" .= _rtdFamily),
+                  Just
+                    ("containerDefinitions" .=
+                       _rtdContainerDefinitions)])
 
 instance ToPath RegisterTaskDefinition where
         toPath = const "/"
diff --git a/gen/Network/AWS/ECS/RunTask.hs b/gen/Network/AWS/ECS/RunTask.hs
--- a/gen/Network/AWS/ECS/RunTask.hs
+++ b/gen/Network/AWS/ECS/RunTask.hs
@@ -130,9 +130,8 @@
 rtTaskDefinition = lens _rtTaskDefinition (\ s a -> s{_rtTaskDefinition = a});
 
 instance AWSRequest RunTask where
-        type Sv RunTask = ECS
         type Rs RunTask = RunTaskResponse
-        request = postJSON
+        request = postJSON eCS
         response
           = receiveJSON
               (\ s h x ->
@@ -154,10 +153,12 @@
 instance ToJSON RunTask where
         toJSON RunTask'{..}
           = object
-              ["overrides" .= _rtOverrides,
-               "cluster" .= _rtCluster, "count" .= _rtCount,
-               "startedBy" .= _rtStartedBy,
-               "taskDefinition" .= _rtTaskDefinition]
+              (catMaybes
+                 [("overrides" .=) <$> _rtOverrides,
+                  ("cluster" .=) <$> _rtCluster,
+                  ("count" .=) <$> _rtCount,
+                  ("startedBy" .=) <$> _rtStartedBy,
+                  Just ("taskDefinition" .= _rtTaskDefinition)])
 
 instance ToPath RunTask where
         toPath = const "/"
diff --git a/gen/Network/AWS/ECS/StartTask.hs b/gen/Network/AWS/ECS/StartTask.hs
--- a/gen/Network/AWS/ECS/StartTask.hs
+++ b/gen/Network/AWS/ECS/StartTask.hs
@@ -130,9 +130,8 @@
 sContainerInstances = lens _sContainerInstances (\ s a -> s{_sContainerInstances = a}) . _Coerce;
 
 instance AWSRequest StartTask where
-        type Sv StartTask = ECS
         type Rs StartTask = StartTaskResponse
-        request = postJSON
+        request = postJSON eCS
         response
           = receiveJSON
               (\ s h x ->
@@ -154,10 +153,12 @@
 instance ToJSON StartTask where
         toJSON StartTask'{..}
           = object
-              ["overrides" .= _sOverrides, "cluster" .= _sCluster,
-               "startedBy" .= _sStartedBy,
-               "taskDefinition" .= _sTaskDefinition,
-               "containerInstances" .= _sContainerInstances]
+              (catMaybes
+                 [("overrides" .=) <$> _sOverrides,
+                  ("cluster" .=) <$> _sCluster,
+                  ("startedBy" .=) <$> _sStartedBy,
+                  Just ("taskDefinition" .= _sTaskDefinition),
+                  Just ("containerInstances" .= _sContainerInstances)])
 
 instance ToPath StartTask where
         toPath = const "/"
diff --git a/gen/Network/AWS/ECS/StopTask.hs b/gen/Network/AWS/ECS/StopTask.hs
--- a/gen/Network/AWS/ECS/StopTask.hs
+++ b/gen/Network/AWS/ECS/StopTask.hs
@@ -78,9 +78,8 @@
 stTask = lens _stTask (\ s a -> s{_stTask = a});
 
 instance AWSRequest StopTask where
-        type Sv StopTask = ECS
         type Rs StopTask = StopTaskResponse
-        request = postJSON
+        request = postJSON eCS
         response
           = receiveJSON
               (\ s h x ->
@@ -99,7 +98,10 @@
 
 instance ToJSON StopTask where
         toJSON StopTask'{..}
-          = object ["cluster" .= _stCluster, "task" .= _stTask]
+          = object
+              (catMaybes
+                 [("cluster" .=) <$> _stCluster,
+                  Just ("task" .= _stTask)])
 
 instance ToPath StopTask where
         toPath = const "/"
diff --git a/gen/Network/AWS/ECS/SubmitContainerStateChange.hs b/gen/Network/AWS/ECS/SubmitContainerStateChange.hs
--- a/gen/Network/AWS/ECS/SubmitContainerStateChange.hs
+++ b/gen/Network/AWS/ECS/SubmitContainerStateChange.hs
@@ -124,10 +124,9 @@
 scscTask = lens _scscTask (\ s a -> s{_scscTask = a});
 
 instance AWSRequest SubmitContainerStateChange where
-        type Sv SubmitContainerStateChange = ECS
         type Rs SubmitContainerStateChange =
              SubmitContainerStateChangeResponse
-        request = postJSON
+        request = postJSON eCS
         response
           = receiveJSON
               (\ s h x ->
@@ -147,11 +146,14 @@
 instance ToJSON SubmitContainerStateChange where
         toJSON SubmitContainerStateChange'{..}
           = object
-              ["networkBindings" .= _scscNetworkBindings,
-               "status" .= _scscStatus, "cluster" .= _scscCluster,
-               "containerName" .= _scscContainerName,
-               "reason" .= _scscReason, "exitCode" .= _scscExitCode,
-               "task" .= _scscTask]
+              (catMaybes
+                 [("networkBindings" .=) <$> _scscNetworkBindings,
+                  ("status" .=) <$> _scscStatus,
+                  ("cluster" .=) <$> _scscCluster,
+                  ("containerName" .=) <$> _scscContainerName,
+                  ("reason" .=) <$> _scscReason,
+                  ("exitCode" .=) <$> _scscExitCode,
+                  ("task" .=) <$> _scscTask])
 
 instance ToPath SubmitContainerStateChange where
         toPath = const "/"
diff --git a/gen/Network/AWS/ECS/SubmitTaskStateChange.hs b/gen/Network/AWS/ECS/SubmitTaskStateChange.hs
--- a/gen/Network/AWS/ECS/SubmitTaskStateChange.hs
+++ b/gen/Network/AWS/ECS/SubmitTaskStateChange.hs
@@ -97,10 +97,9 @@
 stscTask = lens _stscTask (\ s a -> s{_stscTask = a});
 
 instance AWSRequest SubmitTaskStateChange where
-        type Sv SubmitTaskStateChange = ECS
         type Rs SubmitTaskStateChange =
              SubmitTaskStateChangeResponse
-        request = postJSON
+        request = postJSON eCS
         response
           = receiveJSON
               (\ s h x ->
@@ -120,8 +119,11 @@
 instance ToJSON SubmitTaskStateChange where
         toJSON SubmitTaskStateChange'{..}
           = object
-              ["status" .= _stscStatus, "cluster" .= _stscCluster,
-               "reason" .= _stscReason, "task" .= _stscTask]
+              (catMaybes
+                 [("status" .=) <$> _stscStatus,
+                  ("cluster" .=) <$> _stscCluster,
+                  ("reason" .=) <$> _stscReason,
+                  ("task" .=) <$> _stscTask])
 
 instance ToPath SubmitTaskStateChange where
         toPath = const "/"
diff --git a/gen/Network/AWS/ECS/Types.hs b/gen/Network/AWS/ECS/Types.hs
--- a/gen/Network/AWS/ECS/Types.hs
+++ b/gen/Network/AWS/ECS/Types.hs
@@ -1,5 +1,4 @@
 {-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE TypeFamilies      #-}
 
 -- Derived from AWS service descriptions, licensed under Apache 2.0.
 
@@ -13,8 +12,8 @@
 --
 module Network.AWS.ECS.Types
     (
-    -- * Service
-      ECS
+    -- * Service Configuration
+      eCS
 
     -- * Errors
     , _InvalidParameterException
@@ -247,39 +246,36 @@
 import           Network.AWS.Prelude
 import           Network.AWS.Sign.V4
 
--- | Version @2014-11-13@ of the Amazon EC2 Container Service SDK.
-data ECS
-
-instance AWSService ECS where
-    type Sg ECS = V4
-    service = const svc
-      where
-        svc =
-            Service
-            { _svcAbbrev = "ECS"
-            , _svcPrefix = "ecs"
-            , _svcVersion = "2014-11-13"
-            , _svcEndpoint = defaultEndpoint svc
-            , _svcTimeout = Just 70
-            , _svcStatus = statusSuccess
-            , _svcError = parseJSONError
-            , _svcRetry = retry
-            }
-        retry =
-            Exponential
-            { _retryBase = 5.0e-2
-            , _retryGrowth = 2
-            , _retryAttempts = 5
-            , _retryCheck = check
-            }
-        check e
-          | has (hasCode "ThrottlingException" . hasStatus 400) e =
-              Just "throttling_exception"
-          | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"
-          | has (hasStatus 503) e = Just "service_unavailable"
-          | has (hasStatus 500) e = Just "general_server_error"
-          | has (hasStatus 509) e = Just "limit_exceeded"
-          | otherwise = Nothing
+-- | API version '2014-11-13' of the Amazon EC2 Container Service SDK configuration.
+eCS :: Service
+eCS =
+    Service
+    { _svcAbbrev = "ECS"
+    , _svcSigner = v4
+    , _svcPrefix = "ecs"
+    , _svcVersion = "2014-11-13"
+    , _svcEndpoint = defaultEndpoint eCS
+    , _svcTimeout = Just 70
+    , _svcCheck = statusSuccess
+    , _svcError = parseJSONError
+    , _svcRetry = retry
+    }
+  where
+    retry =
+        Exponential
+        { _retryBase = 5.0e-2
+        , _retryGrowth = 2
+        , _retryAttempts = 5
+        , _retryCheck = check
+        }
+    check e
+      | has (hasCode "ThrottlingException" . hasStatus 400) e =
+          Just "throttling_exception"
+      | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"
+      | has (hasStatus 503) e = Just "service_unavailable"
+      | has (hasStatus 500) e = Just "general_server_error"
+      | has (hasStatus 509) e = Just "limit_exceeded"
+      | otherwise = Nothing
 
 -- | The specified parameter is invalid. Review the available parameters for
 -- the API request.
diff --git a/gen/Network/AWS/ECS/Types/Product.hs b/gen/Network/AWS/ECS/Types/Product.hs
--- a/gen/Network/AWS/ECS/Types/Product.hs
+++ b/gen/Network/AWS/ECS/Types/Product.hs
@@ -2,7 +2,6 @@
 {-# LANGUAGE DeriveGeneric      #-}
 {-# LANGUAGE OverloadedStrings  #-}
 {-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
 
 {-# OPTIONS_GHC -fno-warn-unused-imports #-}
 
@@ -394,14 +393,18 @@
 instance ToJSON ContainerDefinition where
         toJSON ContainerDefinition'{..}
           = object
-              ["image" .= _cdImage, "command" .= _cdCommand,
-               "volumesFrom" .= _cdVolumesFrom,
-               "environment" .= _cdEnvironment,
-               "entryPoint" .= _cdEntryPoint,
-               "portMappings" .= _cdPortMappings,
-               "memory" .= _cdMemory, "name" .= _cdName,
-               "mountPoints" .= _cdMountPoints, "links" .= _cdLinks,
-               "essential" .= _cdEssential, "cpu" .= _cdCpu]
+              (catMaybes
+                 [("image" .=) <$> _cdImage,
+                  ("command" .=) <$> _cdCommand,
+                  ("volumesFrom" .=) <$> _cdVolumesFrom,
+                  ("environment" .=) <$> _cdEnvironment,
+                  ("entryPoint" .=) <$> _cdEntryPoint,
+                  ("portMappings" .=) <$> _cdPortMappings,
+                  ("memory" .=) <$> _cdMemory, ("name" .=) <$> _cdName,
+                  ("mountPoints" .=) <$> _cdMountPoints,
+                  ("links" .=) <$> _cdLinks,
+                  ("essential" .=) <$> _cdEssential,
+                  ("cpu" .=) <$> _cdCpu])
 
 -- | An Amazon EC2 instance that is running the Amazon ECS agent and has been
 -- registered with a cluster.
@@ -585,8 +588,10 @@
 instance ToJSON ContainerOverride where
         toJSON ContainerOverride'{..}
           = object
-              ["command" .= _coCommand,
-               "environment" .= _coEnvironment, "name" .= _coName]
+              (catMaybes
+                 [("command" .=) <$> _coCommand,
+                  ("environment" .=) <$> _coEnvironment,
+                  ("name" .=) <$> _coName])
 
 -- | Details on a service within a cluster
 --
@@ -899,7 +904,8 @@
 
 instance ToJSON HostVolumeProperties where
         toJSON HostVolumeProperties'{..}
-          = object ["sourcePath" .= _hvpSourcePath]
+          = object
+              (catMaybes [("sourcePath" .=) <$> _hvpSourcePath])
 
 -- | A key and value pair object.
 --
@@ -942,7 +948,10 @@
 
 instance ToJSON KeyValuePair where
         toJSON KeyValuePair'{..}
-          = object ["value" .= _kvpValue, "name" .= _kvpName]
+          = object
+              (catMaybes
+                 [("value" .=) <$> _kvpValue,
+                  ("name" .=) <$> _kvpName])
 
 -- | Details on a load balancer that is used with a service.
 --
@@ -998,9 +1007,10 @@
 instance ToJSON LoadBalancer where
         toJSON LoadBalancer'{..}
           = object
-              ["loadBalancerName" .= _lbLoadBalancerName,
-               "containerName" .= _lbContainerName,
-               "containerPort" .= _lbContainerPort]
+              (catMaybes
+                 [("loadBalancerName" .=) <$> _lbLoadBalancerName,
+                  ("containerName" .=) <$> _lbContainerName,
+                  ("containerPort" .=) <$> _lbContainerPort])
 
 -- | Details on a volume mount point that is used in a container definition.
 --
@@ -1054,9 +1064,10 @@
 instance ToJSON MountPoint where
         toJSON MountPoint'{..}
           = object
-              ["containerPath" .= _mpContainerPath,
-               "sourceVolume" .= _mpSourceVolume,
-               "readOnly" .= _mpReadOnly]
+              (catMaybes
+                 [("containerPath" .=) <$> _mpContainerPath,
+                  ("sourceVolume" .=) <$> _mpSourceVolume,
+                  ("readOnly" .=) <$> _mpReadOnly])
 
 -- | Details on the network bindings between a container and its host
 -- container instance.
@@ -1119,9 +1130,11 @@
 instance ToJSON NetworkBinding where
         toJSON NetworkBinding'{..}
           = object
-              ["bindIP" .= _nbBindIP, "protocol" .= _nbProtocol,
-               "hostPort" .= _nbHostPort,
-               "containerPort" .= _nbContainerPort]
+              (catMaybes
+                 [("bindIP" .=) <$> _nbBindIP,
+                  ("protocol" .=) <$> _nbProtocol,
+                  ("hostPort" .=) <$> _nbHostPort,
+                  ("containerPort" .=) <$> _nbContainerPort])
 
 -- | Port mappings allow containers to access ports on the host container
 -- instance to send or receive traffic. Port mappings are specified as part
@@ -1202,9 +1215,10 @@
 instance ToJSON PortMapping where
         toJSON PortMapping'{..}
           = object
-              ["protocol" .= _pmProtocol,
-               "hostPort" .= _pmHostPort,
-               "containerPort" .= _pmContainerPort]
+              (catMaybes
+                 [("protocol" .=) <$> _pmProtocol,
+                  ("hostPort" .=) <$> _pmHostPort,
+                  ("containerPort" .=) <$> _pmContainerPort])
 
 -- | Describes the resources available for a container instance.
 --
@@ -1290,11 +1304,12 @@
 instance ToJSON Resource where
         toJSON Resource'{..}
           = object
-              ["stringSetValue" .= _rStringSetValue,
-               "integerValue" .= _rIntegerValue,
-               "doubleValue" .= _rDoubleValue,
-               "longValue" .= _rLongValue, "name" .= _rName,
-               "type" .= _rType]
+              (catMaybes
+                 [("stringSetValue" .=) <$> _rStringSetValue,
+                  ("integerValue" .=) <$> _rIntegerValue,
+                  ("doubleValue" .=) <$> _rDoubleValue,
+                  ("longValue" .=) <$> _rLongValue,
+                  ("name" .=) <$> _rName, ("type" .=) <$> _rType])
 
 -- | Details on an event associated with a service.
 --
@@ -1569,7 +1584,9 @@
 instance ToJSON TaskOverride where
         toJSON TaskOverride'{..}
           = object
-              ["containerOverrides" .= _toContainerOverrides]
+              (catMaybes
+                 [("containerOverrides" .=) <$>
+                    _toContainerOverrides])
 
 -- | The Docker and Amazon ECS container agent version information on a
 -- container instance.
@@ -1624,9 +1641,10 @@
 instance ToJSON VersionInfo where
         toJSON VersionInfo'{..}
           = object
-              ["agentVersion" .= _viAgentVersion,
-               "agentHash" .= _viAgentHash,
-               "dockerVersion" .= _viDockerVersion]
+              (catMaybes
+                 [("agentVersion" .=) <$> _viAgentVersion,
+                  ("agentHash" .=) <$> _viAgentHash,
+                  ("dockerVersion" .=) <$> _viDockerVersion])
 
 -- | A data volume used in a task definition.
 --
@@ -1670,7 +1688,9 @@
 
 instance ToJSON Volume where
         toJSON Volume'{..}
-          = object ["name" .= _vName, "host" .= _vHost]
+          = object
+              (catMaybes
+                 [("name" .=) <$> _vName, ("host" .=) <$> _vHost])
 
 -- | Details on a data volume from another container.
 --
@@ -1715,5 +1735,6 @@
 instance ToJSON VolumeFrom where
         toJSON VolumeFrom'{..}
           = object
-              ["sourceContainer" .= _vfSourceContainer,
-               "readOnly" .= _vfReadOnly]
+              (catMaybes
+                 [("sourceContainer" .=) <$> _vfSourceContainer,
+                  ("readOnly" .=) <$> _vfReadOnly])
diff --git a/gen/Network/AWS/ECS/UpdateContainerAgent.hs b/gen/Network/AWS/ECS/UpdateContainerAgent.hs
--- a/gen/Network/AWS/ECS/UpdateContainerAgent.hs
+++ b/gen/Network/AWS/ECS/UpdateContainerAgent.hs
@@ -90,10 +90,9 @@
 ucaContainerInstance = lens _ucaContainerInstance (\ s a -> s{_ucaContainerInstance = a});
 
 instance AWSRequest UpdateContainerAgent where
-        type Sv UpdateContainerAgent = ECS
         type Rs UpdateContainerAgent =
              UpdateContainerAgentResponse
-        request = postJSON
+        request = postJSON eCS
         response
           = receiveJSON
               (\ s h x ->
@@ -113,8 +112,9 @@
 instance ToJSON UpdateContainerAgent where
         toJSON UpdateContainerAgent'{..}
           = object
-              ["cluster" .= _ucaCluster,
-               "containerInstance" .= _ucaContainerInstance]
+              (catMaybes
+                 [("cluster" .=) <$> _ucaCluster,
+                  Just ("containerInstance" .= _ucaContainerInstance)])
 
 instance ToPath UpdateContainerAgent where
         toPath = const "/"
diff --git a/gen/Network/AWS/ECS/UpdateService.hs b/gen/Network/AWS/ECS/UpdateService.hs
--- a/gen/Network/AWS/ECS/UpdateService.hs
+++ b/gen/Network/AWS/ECS/UpdateService.hs
@@ -116,9 +116,8 @@
 usService = lens _usService (\ s a -> s{_usService = a});
 
 instance AWSRequest UpdateService where
-        type Sv UpdateService = ECS
         type Rs UpdateService = UpdateServiceResponse
-        request = postJSON
+        request = postJSON eCS
         response
           = receiveJSON
               (\ s h x ->
@@ -138,10 +137,11 @@
 instance ToJSON UpdateService where
         toJSON UpdateService'{..}
           = object
-              ["cluster" .= _usCluster,
-               "desiredCount" .= _usDesiredCount,
-               "taskDefinition" .= _usTaskDefinition,
-               "service" .= _usService]
+              (catMaybes
+                 [("cluster" .=) <$> _usCluster,
+                  ("desiredCount" .=) <$> _usDesiredCount,
+                  ("taskDefinition" .=) <$> _usTaskDefinition,
+                  Just ("service" .= _usService)])
 
 instance ToPath UpdateService where
         toPath = const "/"
diff --git a/test/Test/AWS/Gen/ECS.hs b/test/Test/AWS/Gen/ECS.hs
--- a/test/Test/AWS/Gen/ECS.hs
+++ b/test/Test/AWS/Gen/ECS.hs
@@ -339,160 +339,187 @@
 testListServicesResponse = res
     "ListServicesResponse"
     "fixture/ListServicesResponse"
+    eCS
     (Proxy :: Proxy ListServices)
 
 testDescribeClustersResponse :: DescribeClustersResponse -> TestTree
 testDescribeClustersResponse = res
     "DescribeClustersResponse"
     "fixture/DescribeClustersResponse"
+    eCS
     (Proxy :: Proxy DescribeClusters)
 
 testDeleteServiceResponse :: DeleteServiceResponse -> TestTree
 testDeleteServiceResponse = res
     "DeleteServiceResponse"
     "fixture/DeleteServiceResponse"
+    eCS
     (Proxy :: Proxy DeleteService)
 
 testUpdateServiceResponse :: UpdateServiceResponse -> TestTree
 testUpdateServiceResponse = res
     "UpdateServiceResponse"
     "fixture/UpdateServiceResponse"
+    eCS
     (Proxy :: Proxy UpdateService)
 
 testDiscoverPollEndpointResponse :: DiscoverPollEndpointResponse -> TestTree
 testDiscoverPollEndpointResponse = res
     "DiscoverPollEndpointResponse"
     "fixture/DiscoverPollEndpointResponse"
+    eCS
     (Proxy :: Proxy DiscoverPollEndpoint)
 
 testSubmitContainerStateChangeResponse :: SubmitContainerStateChangeResponse -> TestTree
 testSubmitContainerStateChangeResponse = res
     "SubmitContainerStateChangeResponse"
     "fixture/SubmitContainerStateChangeResponse"
+    eCS
     (Proxy :: Proxy SubmitContainerStateChange)
 
 testStopTaskResponse :: StopTaskResponse -> TestTree
 testStopTaskResponse = res
     "StopTaskResponse"
     "fixture/StopTaskResponse"
+    eCS
     (Proxy :: Proxy StopTask)
 
 testDescribeTaskDefinitionResponse :: DescribeTaskDefinitionResponse -> TestTree
 testDescribeTaskDefinitionResponse = res
     "DescribeTaskDefinitionResponse"
     "fixture/DescribeTaskDefinitionResponse"
+    eCS
     (Proxy :: Proxy DescribeTaskDefinition)
 
 testSubmitTaskStateChangeResponse :: SubmitTaskStateChangeResponse -> TestTree
 testSubmitTaskStateChangeResponse = res
     "SubmitTaskStateChangeResponse"
     "fixture/SubmitTaskStateChangeResponse"
+    eCS
     (Proxy :: Proxy SubmitTaskStateChange)
 
 testDescribeContainerInstancesResponse :: DescribeContainerInstancesResponse -> TestTree
 testDescribeContainerInstancesResponse = res
     "DescribeContainerInstancesResponse"
     "fixture/DescribeContainerInstancesResponse"
+    eCS
     (Proxy :: Proxy DescribeContainerInstances)
 
 testDeleteClusterResponse :: DeleteClusterResponse -> TestTree
 testDeleteClusterResponse = res
     "DeleteClusterResponse"
     "fixture/DeleteClusterResponse"
+    eCS
     (Proxy :: Proxy DeleteCluster)
 
 testCreateClusterResponse :: CreateClusterResponse -> TestTree
 testCreateClusterResponse = res
     "CreateClusterResponse"
     "fixture/CreateClusterResponse"
+    eCS
     (Proxy :: Proxy CreateCluster)
 
 testListTaskDefinitionsResponse :: ListTaskDefinitionsResponse -> TestTree
 testListTaskDefinitionsResponse = res
     "ListTaskDefinitionsResponse"
     "fixture/ListTaskDefinitionsResponse"
+    eCS
     (Proxy :: Proxy ListTaskDefinitions)
 
 testListTasksResponse :: ListTasksResponse -> TestTree
 testListTasksResponse = res
     "ListTasksResponse"
     "fixture/ListTasksResponse"
+    eCS
     (Proxy :: Proxy ListTasks)
 
 testRunTaskResponse :: RunTaskResponse -> TestTree
 testRunTaskResponse = res
     "RunTaskResponse"
     "fixture/RunTaskResponse"
+    eCS
     (Proxy :: Proxy RunTask)
 
 testListContainerInstancesResponse :: ListContainerInstancesResponse -> TestTree
 testListContainerInstancesResponse = res
     "ListContainerInstancesResponse"
     "fixture/ListContainerInstancesResponse"
+    eCS
     (Proxy :: Proxy ListContainerInstances)
 
 testRegisterContainerInstanceResponse :: RegisterContainerInstanceResponse -> TestTree
 testRegisterContainerInstanceResponse = res
     "RegisterContainerInstanceResponse"
     "fixture/RegisterContainerInstanceResponse"
+    eCS
     (Proxy :: Proxy RegisterContainerInstance)
 
 testUpdateContainerAgentResponse :: UpdateContainerAgentResponse -> TestTree
 testUpdateContainerAgentResponse = res
     "UpdateContainerAgentResponse"
     "fixture/UpdateContainerAgentResponse"
+    eCS
     (Proxy :: Proxy UpdateContainerAgent)
 
 testListTaskDefinitionFamiliesResponse :: ListTaskDefinitionFamiliesResponse -> TestTree
 testListTaskDefinitionFamiliesResponse = res
     "ListTaskDefinitionFamiliesResponse"
     "fixture/ListTaskDefinitionFamiliesResponse"
+    eCS
     (Proxy :: Proxy ListTaskDefinitionFamilies)
 
 testStartTaskResponse :: StartTaskResponse -> TestTree
 testStartTaskResponse = res
     "StartTaskResponse"
     "fixture/StartTaskResponse"
+    eCS
     (Proxy :: Proxy StartTask)
 
 testDeregisterTaskDefinitionResponse :: DeregisterTaskDefinitionResponse -> TestTree
 testDeregisterTaskDefinitionResponse = res
     "DeregisterTaskDefinitionResponse"
     "fixture/DeregisterTaskDefinitionResponse"
+    eCS
     (Proxy :: Proxy DeregisterTaskDefinition)
 
 testDescribeTasksResponse :: DescribeTasksResponse -> TestTree
 testDescribeTasksResponse = res
     "DescribeTasksResponse"
     "fixture/DescribeTasksResponse"
+    eCS
     (Proxy :: Proxy DescribeTasks)
 
 testListClustersResponse :: ListClustersResponse -> TestTree
 testListClustersResponse = res
     "ListClustersResponse"
     "fixture/ListClustersResponse"
+    eCS
     (Proxy :: Proxy ListClusters)
 
 testDescribeServicesResponse :: DescribeServicesResponse -> TestTree
 testDescribeServicesResponse = res
     "DescribeServicesResponse"
     "fixture/DescribeServicesResponse"
+    eCS
     (Proxy :: Proxy DescribeServices)
 
 testDeregisterContainerInstanceResponse :: DeregisterContainerInstanceResponse -> TestTree
 testDeregisterContainerInstanceResponse = res
     "DeregisterContainerInstanceResponse"
     "fixture/DeregisterContainerInstanceResponse"
+    eCS
     (Proxy :: Proxy DeregisterContainerInstance)
 
 testRegisterTaskDefinitionResponse :: RegisterTaskDefinitionResponse -> TestTree
 testRegisterTaskDefinitionResponse = res
     "RegisterTaskDefinitionResponse"
     "fixture/RegisterTaskDefinitionResponse"
+    eCS
     (Proxy :: Proxy RegisterTaskDefinition)
 
 testCreateServiceResponse :: CreateServiceResponse -> TestTree
 testCreateServiceResponse = res
     "CreateServiceResponse"
     "fixture/CreateServiceResponse"
+    eCS
     (Proxy :: Proxy CreateService)
