packages feed

amazonka-emr 0.2.1 → 0.2.2

raw patch · 19 files changed

+246/−134 lines, 19 filesdep ~amazonka-corePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: amazonka-core

API changes (from Hackage documentation)

+ Network.AWS.EMR.AddInstanceGroups: instance Read AddInstanceGroups
+ Network.AWS.EMR.AddInstanceGroups: instance Read AddInstanceGroupsResponse
+ Network.AWS.EMR.AddJobFlowSteps: instance Read AddJobFlowSteps
+ Network.AWS.EMR.AddJobFlowSteps: instance Read AddJobFlowStepsResponse
+ Network.AWS.EMR.AddTags: instance Read AddTags
+ Network.AWS.EMR.AddTags: instance Read AddTagsResponse
+ Network.AWS.EMR.DescribeCluster: instance Read DescribeCluster
+ Network.AWS.EMR.DescribeCluster: instance Read DescribeClusterResponse
+ Network.AWS.EMR.DescribeJobFlows: instance Read DescribeJobFlows
+ Network.AWS.EMR.DescribeJobFlows: instance Read DescribeJobFlowsResponse
+ Network.AWS.EMR.DescribeStep: instance Read DescribeStep
+ Network.AWS.EMR.DescribeStep: instance Read DescribeStepResponse
+ Network.AWS.EMR.ListBootstrapActions: instance Read ListBootstrapActions
+ Network.AWS.EMR.ListBootstrapActions: instance Read ListBootstrapActionsResponse
+ Network.AWS.EMR.ListClusters: instance Read ListClusters
+ Network.AWS.EMR.ListClusters: instance Read ListClustersResponse
+ Network.AWS.EMR.ListInstanceGroups: instance Read ListInstanceGroups
+ Network.AWS.EMR.ListInstanceGroups: instance Read ListInstanceGroupsResponse
+ Network.AWS.EMR.ListInstances: instance Read ListInstances
+ Network.AWS.EMR.ListInstances: instance Read ListInstancesResponse
+ Network.AWS.EMR.ListSteps: instance Read ListSteps
+ Network.AWS.EMR.ListSteps: instance Read ListStepsResponse
+ Network.AWS.EMR.ModifyInstanceGroups: instance Read ModifyInstanceGroups
+ Network.AWS.EMR.ModifyInstanceGroups: instance Read ModifyInstanceGroupsResponse
+ Network.AWS.EMR.RemoveTags: instance Read RemoveTags
+ Network.AWS.EMR.RemoveTags: instance Read RemoveTagsResponse
+ Network.AWS.EMR.RunJobFlow: instance Read RunJobFlow
+ Network.AWS.EMR.RunJobFlow: instance Read RunJobFlowResponse
+ Network.AWS.EMR.SetTerminationProtection: instance Read SetTerminationProtection
+ Network.AWS.EMR.SetTerminationProtection: instance Read SetTerminationProtectionResponse
+ Network.AWS.EMR.SetVisibleToAllUsers: instance Read SetVisibleToAllUsers
+ Network.AWS.EMR.SetVisibleToAllUsers: instance Read SetVisibleToAllUsersResponse
+ Network.AWS.EMR.TerminateJobFlows: instance Read TerminateJobFlows
+ Network.AWS.EMR.TerminateJobFlows: instance Read TerminateJobFlowsResponse
+ Network.AWS.EMR.Types: eiaAdditionalMasterSecurityGroups :: Lens' Ec2InstanceAttributes [Text]
+ Network.AWS.EMR.Types: eiaAdditionalSlaveSecurityGroups :: Lens' Ec2InstanceAttributes [Text]
+ Network.AWS.EMR.Types: eiaEmrManagedMasterSecurityGroup :: Lens' Ec2InstanceAttributes (Maybe Text)
+ Network.AWS.EMR.Types: eiaEmrManagedSlaveSecurityGroup :: Lens' Ec2InstanceAttributes (Maybe Text)
+ Network.AWS.EMR.Types: instance Read ActionOnFailure
+ Network.AWS.EMR.Types: instance Read Application
+ Network.AWS.EMR.Types: instance Read BootstrapActionConfig
+ Network.AWS.EMR.Types: instance Read BootstrapActionDetail
+ Network.AWS.EMR.Types: instance Read Cluster
+ Network.AWS.EMR.Types: instance Read ClusterState
+ Network.AWS.EMR.Types: instance Read ClusterStateChangeReason
+ Network.AWS.EMR.Types: instance Read ClusterStateChangeReasonCode
+ Network.AWS.EMR.Types: instance Read ClusterStatus
+ Network.AWS.EMR.Types: instance Read ClusterSummary
+ Network.AWS.EMR.Types: instance Read ClusterTimeline
+ Network.AWS.EMR.Types: instance Read Command
+ Network.AWS.EMR.Types: instance Read Ec2InstanceAttributes
+ Network.AWS.EMR.Types: instance Read HadoopJarStepConfig
+ Network.AWS.EMR.Types: instance Read HadoopStepConfig
+ Network.AWS.EMR.Types: instance Read Instance
+ Network.AWS.EMR.Types: instance Read InstanceGroup
+ Network.AWS.EMR.Types: instance Read InstanceGroupConfig
+ Network.AWS.EMR.Types: instance Read InstanceGroupDetail
+ Network.AWS.EMR.Types: instance Read InstanceGroupModifyConfig
+ Network.AWS.EMR.Types: instance Read InstanceGroupState
+ Network.AWS.EMR.Types: instance Read InstanceGroupStateChangeReason
+ Network.AWS.EMR.Types: instance Read InstanceGroupStateChangeReasonCode
+ Network.AWS.EMR.Types: instance Read InstanceGroupStatus
+ Network.AWS.EMR.Types: instance Read InstanceGroupTimeline
+ Network.AWS.EMR.Types: instance Read InstanceGroupType
+ Network.AWS.EMR.Types: instance Read InstanceRoleType
+ Network.AWS.EMR.Types: instance Read InstanceState
+ Network.AWS.EMR.Types: instance Read InstanceStateChangeReason
+ Network.AWS.EMR.Types: instance Read InstanceStateChangeReasonCode
+ Network.AWS.EMR.Types: instance Read InstanceStatus
+ Network.AWS.EMR.Types: instance Read InstanceTimeline
+ Network.AWS.EMR.Types: instance Read JobFlowDetail
+ Network.AWS.EMR.Types: instance Read JobFlowExecutionState
+ Network.AWS.EMR.Types: instance Read JobFlowExecutionStatusDetail
+ Network.AWS.EMR.Types: instance Read JobFlowInstancesConfig
+ Network.AWS.EMR.Types: instance Read JobFlowInstancesDetail
+ Network.AWS.EMR.Types: instance Read KeyValue
+ Network.AWS.EMR.Types: instance Read MarketType
+ Network.AWS.EMR.Types: instance Read PlacementType
+ Network.AWS.EMR.Types: instance Read ScriptBootstrapActionConfig
+ Network.AWS.EMR.Types: instance Read Step
+ Network.AWS.EMR.Types: instance Read StepConfig
+ Network.AWS.EMR.Types: instance Read StepDetail
+ Network.AWS.EMR.Types: instance Read StepExecutionState
+ Network.AWS.EMR.Types: instance Read StepExecutionStatusDetail
+ Network.AWS.EMR.Types: instance Read StepState
+ Network.AWS.EMR.Types: instance Read StepStateChangeReason
+ Network.AWS.EMR.Types: instance Read StepStateChangeReasonCode
+ Network.AWS.EMR.Types: instance Read StepStatus
+ Network.AWS.EMR.Types: instance Read StepSummary
+ Network.AWS.EMR.Types: instance Read StepTimeline
+ Network.AWS.EMR.Types: instance Read SupportedProductConfig
+ Network.AWS.EMR.Types: instance Read Tag
+ Network.AWS.EMR.Types: jficAdditionalMasterSecurityGroups :: Lens' JobFlowInstancesConfig [Text]
+ Network.AWS.EMR.Types: jficAdditionalSlaveSecurityGroups :: Lens' JobFlowInstancesConfig [Text]
+ Network.AWS.EMR.Types: jficEmrManagedMasterSecurityGroup :: Lens' JobFlowInstancesConfig (Maybe Text)
+ Network.AWS.EMR.Types: jficEmrManagedSlaveSecurityGroup :: Lens' JobFlowInstancesConfig (Maybe Text)

Files

amazonka-emr.cabal view
@@ -1,5 +1,5 @@ name:                  amazonka-emr-version:               0.2.1+version:               0.2.2 synopsis:              Amazon Elastic MapReduce SDK. homepage:              https://github.com/brendanhay/amazonka license:               OtherLicense@@ -60,5 +60,5 @@     other-modules:      build-depends:-          amazonka-core == 0.2.1.*+          amazonka-core == 0.2.2.*         , base          >= 4.7     && < 5
gen/Network/AWS/EMR/AddInstanceGroups.hs view
@@ -52,7 +52,7 @@ data AddInstanceGroups = AddInstanceGroups     { _aigInstanceGroups :: List "InstanceGroups" InstanceGroupConfig     , _aigJobFlowId      :: Text-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'AddInstanceGroups' constructor. --@@ -82,7 +82,7 @@ data AddInstanceGroupsResponse = AddInstanceGroupsResponse     { _aigrInstanceGroupIds :: List "InstanceGroupIds" Text     , _aigrJobFlowId        :: Maybe Text-    } deriving (Eq, Ord, Show)+    } deriving (Eq, Ord, Read, Show)  -- | 'AddInstanceGroupsResponse' constructor. --
gen/Network/AWS/EMR/AddJobFlowSteps.hs view
@@ -73,7 +73,7 @@ data AddJobFlowSteps = AddJobFlowSteps     { _ajfsJobFlowId :: Text     , _ajfsSteps     :: List "Steps" StepConfig-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'AddJobFlowSteps' constructor. --@@ -101,7 +101,7 @@  newtype AddJobFlowStepsResponse = AddJobFlowStepsResponse     { _ajfsrStepIds :: List "StepIds" Text-    } deriving (Eq, Ord, Show, Monoid, Semigroup)+    } deriving (Eq, Ord, Read, Show, Monoid, Semigroup)  instance GHC.Exts.IsList AddJobFlowStepsResponse where     type Item AddJobFlowStepsResponse = Text
gen/Network/AWS/EMR/AddTags.hs view
@@ -51,7 +51,7 @@ data AddTags = AddTags     { _atResourceId :: Text     , _atTags       :: List "Tags" Tag-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'AddTags' constructor. --@@ -81,7 +81,7 @@ atTags = lens _atTags (\s a -> s { _atTags = a }) . _List  data AddTagsResponse = AddTagsResponse-    deriving (Eq, Ord, Show, Generic)+    deriving (Eq, Ord, Read, Show, Generic)  -- | 'AddTagsResponse' constructor. addTagsResponse :: AddTagsResponse
gen/Network/AWS/EMR/DescribeCluster.hs view
@@ -51,7 +51,7 @@  newtype DescribeCluster = DescribeCluster     { _dcClusterId :: Text-    } deriving (Eq, Ord, Show, Monoid, IsString)+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)  -- | 'DescribeCluster' constructor. --@@ -71,7 +71,7 @@  newtype DescribeClusterResponse = DescribeClusterResponse     { _dcrCluster :: Cluster-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'DescribeClusterResponse' constructor. --
gen/Network/AWS/EMR/DescribeJobFlows.hs view
@@ -70,7 +70,7 @@     , _djfCreatedBefore :: Maybe POSIX     , _djfJobFlowIds    :: List "JobFlowIds" Text     , _djfJobFlowStates :: List "JobFlowStates" JobFlowExecutionState-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'DescribeJobFlows' constructor. --@@ -110,7 +110,7 @@  newtype DescribeJobFlowsResponse = DescribeJobFlowsResponse     { _djfrJobFlows :: List "JobFlows" JobFlowDetail-    } deriving (Eq, Show, Monoid, Semigroup)+    } deriving (Eq, Read, Show, Monoid, Semigroup)  instance GHC.Exts.IsList DescribeJobFlowsResponse where     type Item DescribeJobFlowsResponse = JobFlowDetail
gen/Network/AWS/EMR/DescribeStep.hs view
@@ -51,7 +51,7 @@ data DescribeStep = DescribeStep     { _dsClusterId :: Text     , _dsStepId    :: Text-    } deriving (Eq, Ord, Show)+    } deriving (Eq, Ord, Read, Show)  -- | 'DescribeStep' constructor. --@@ -79,7 +79,7 @@  newtype DescribeStepResponse = DescribeStepResponse     { _dsrStep :: Maybe Step-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'DescribeStepResponse' constructor. --
gen/Network/AWS/EMR/ListBootstrapActions.hs view
@@ -52,7 +52,7 @@ data ListBootstrapActions = ListBootstrapActions     { _lbaClusterId :: Text     , _lbaMarker    :: Maybe Text-    } deriving (Eq, Ord, Show)+    } deriving (Eq, Ord, Read, Show)  -- | 'ListBootstrapActions' constructor. --@@ -80,7 +80,7 @@ data ListBootstrapActionsResponse = ListBootstrapActionsResponse     { _lbarBootstrapActions :: List "BootstrapActions" Command     , _lbarMarker           :: Maybe Text-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'ListBootstrapActionsResponse' constructor. --
gen/Network/AWS/EMR/ListClusters.hs view
@@ -60,7 +60,7 @@     , _lcCreatedAfter  :: Maybe POSIX     , _lcCreatedBefore :: Maybe POSIX     , _lcMarker        :: Maybe Text-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'ListClusters' constructor. --@@ -101,7 +101,7 @@ data ListClustersResponse = ListClustersResponse     { _lcrClusters :: List "Clusters" ClusterSummary     , _lcrMarker   :: Maybe Text-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'ListClustersResponse' constructor. --
gen/Network/AWS/EMR/ListInstanceGroups.hs view
@@ -52,7 +52,7 @@ data ListInstanceGroups = ListInstanceGroups     { _ligClusterId :: Text     , _ligMarker    :: Maybe Text-    } deriving (Eq, Ord, Show)+    } deriving (Eq, Ord, Read, Show)  -- | 'ListInstanceGroups' constructor. --@@ -80,7 +80,7 @@ data ListInstanceGroupsResponse = ListInstanceGroupsResponse     { _ligrInstanceGroups :: List "InstanceGroups" InstanceGroup     , _ligrMarker         :: Maybe Text-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'ListInstanceGroupsResponse' constructor. --
gen/Network/AWS/EMR/ListInstances.hs view
@@ -60,7 +60,7 @@     , _liInstanceGroupId    :: Maybe Text     , _liInstanceGroupTypes :: List "InstanceGroupTypes" InstanceGroupType     , _liMarker             :: Maybe Text-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'ListInstances' constructor. --@@ -105,7 +105,7 @@ data ListInstancesResponse = ListInstancesResponse     { _lirInstances :: List "Instances" Instance     , _lirMarker    :: Maybe Text-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'ListInstancesResponse' constructor. --
gen/Network/AWS/EMR/ListSteps.hs view
@@ -56,7 +56,7 @@     , _lsMarker     :: Maybe Text     , _lsStepIds    :: List "StepIds" Text     , _lsStepStates :: List "StepStates" StepState-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'ListSteps' constructor. --@@ -98,7 +98,7 @@ data ListStepsResponse = ListStepsResponse     { _lsrMarker :: Maybe Text     , _lsrSteps  :: List "Steps" StepSummary-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'ListStepsResponse' constructor. --
gen/Network/AWS/EMR/ModifyInstanceGroups.hs view
@@ -50,7 +50,7 @@  newtype ModifyInstanceGroups = ModifyInstanceGroups     { _migInstanceGroups :: List "InstanceGroups" InstanceGroupModifyConfig-    } deriving (Eq, Show, Monoid, Semigroup)+    } deriving (Eq, Read, Show, Monoid, Semigroup)  instance GHC.Exts.IsList ModifyInstanceGroups where     type Item ModifyInstanceGroups = InstanceGroupModifyConfig@@ -76,7 +76,7 @@         . _List  data ModifyInstanceGroupsResponse = ModifyInstanceGroupsResponse-    deriving (Eq, Ord, Show, Generic)+    deriving (Eq, Ord, Read, Show, Generic)  -- | 'ModifyInstanceGroupsResponse' constructor. modifyInstanceGroupsResponse :: ModifyInstanceGroupsResponse
gen/Network/AWS/EMR/RemoveTags.hs view
@@ -53,7 +53,7 @@ data RemoveTags = RemoveTags     { _rtResourceId :: Text     , _rtTagKeys    :: List "TagKeys" Text-    } deriving (Eq, Ord, Show)+    } deriving (Eq, Ord, Read, Show)  -- | 'RemoveTags' constructor. --@@ -80,7 +80,7 @@ rtTagKeys = lens _rtTagKeys (\s a -> s { _rtTagKeys = a }) . _List  data RemoveTagsResponse = RemoveTagsResponse-    deriving (Eq, Ord, Show, Generic)+    deriving (Eq, Ord, Read, Show, Generic)  -- | 'RemoveTagsResponse' constructor. removeTagsResponse :: RemoveTagsResponse
gen/Network/AWS/EMR/RunJobFlow.hs view
@@ -92,7 +92,7 @@     , _rjfSupportedProducts    :: List "SupportedProducts" Text     , _rjfTags                 :: List "Tags" Tag     , _rjfVisibleToAllUsers    :: Maybe Bool-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'RunJobFlow' constructor. --@@ -238,7 +238,7 @@  newtype RunJobFlowResponse = RunJobFlowResponse     { _rjfrJobFlowId :: Maybe Text-    } deriving (Eq, Ord, Show, Monoid)+    } deriving (Eq, Ord, Read, Show, Monoid)  -- | 'RunJobFlowResponse' constructor. --
gen/Network/AWS/EMR/SetTerminationProtection.hs view
@@ -64,7 +64,7 @@ data SetTerminationProtection = SetTerminationProtection     { _stpJobFlowIds           :: List "JobFlowIds" Text     , _stpTerminationProtected :: Bool-    } deriving (Eq, Ord, Show)+    } deriving (Eq, Ord, Read, Show)  -- | 'SetTerminationProtection' constructor. --@@ -94,7 +94,7 @@     lens _stpTerminationProtected (\s a -> s { _stpTerminationProtected = a })  data SetTerminationProtectionResponse = SetTerminationProtectionResponse-    deriving (Eq, Ord, Show, Generic)+    deriving (Eq, Ord, Read, Show, Generic)  -- | 'SetTerminationProtectionResponse' constructor. setTerminationProtectionResponse :: SetTerminationProtectionResponse
gen/Network/AWS/EMR/SetVisibleToAllUsers.hs view
@@ -54,7 +54,7 @@ data SetVisibleToAllUsers = SetVisibleToAllUsers     { _svtauJobFlowIds        :: List "JobFlowIds" Text     , _svtauVisibleToAllUsers :: Bool-    } deriving (Eq, Ord, Show)+    } deriving (Eq, Ord, Read, Show)  -- | 'SetVisibleToAllUsers' constructor. --@@ -85,7 +85,7 @@     lens _svtauVisibleToAllUsers (\s a -> s { _svtauVisibleToAllUsers = a })  data SetVisibleToAllUsersResponse = SetVisibleToAllUsersResponse-    deriving (Eq, Ord, Show, Generic)+    deriving (Eq, Ord, Read, Show, Generic)  -- | 'SetVisibleToAllUsersResponse' constructor. setVisibleToAllUsersResponse :: SetVisibleToAllUsersResponse
gen/Network/AWS/EMR/TerminateJobFlows.hs view
@@ -56,7 +56,7 @@  newtype TerminateJobFlows = TerminateJobFlows     { _tjfJobFlowIds :: List "JobFlowIds" Text-    } deriving (Eq, Ord, Show, Monoid, Semigroup)+    } deriving (Eq, Ord, Read, Show, Monoid, Semigroup)  instance GHC.Exts.IsList TerminateJobFlows where     type Item TerminateJobFlows = Text@@ -80,7 +80,7 @@ tjfJobFlowIds = lens _tjfJobFlowIds (\s a -> s { _tjfJobFlowIds = a }) . _List  data TerminateJobFlowsResponse = TerminateJobFlowsResponse-    deriving (Eq, Ord, Show, Generic)+    deriving (Eq, Ord, Read, Show, Generic)  -- | 'TerminateJobFlowsResponse' constructor. terminateJobFlowsResponse :: TerminateJobFlowsResponse
gen/Network/AWS/EMR/Types.hs view
@@ -156,9 +156,13 @@     -- * Ec2InstanceAttributes     , Ec2InstanceAttributes     , ec2InstanceAttributes+    , eiaAdditionalMasterSecurityGroups+    , eiaAdditionalSlaveSecurityGroups     , eiaEc2AvailabilityZone     , eiaEc2KeyName     , eiaEc2SubnetId+    , eiaEmrManagedMasterSecurityGroup+    , eiaEmrManagedSlaveSecurityGroup     , eiaIamInstanceProfile      -- * StepStateChangeReasonCode@@ -315,8 +319,12 @@     -- * JobFlowInstancesConfig     , JobFlowInstancesConfig     , jobFlowInstancesConfig+    , jficAdditionalMasterSecurityGroups+    , jficAdditionalSlaveSecurityGroups     , jficEc2KeyName     , jficEc2SubnetId+    , jficEmrManagedMasterSecurityGroup+    , jficEmrManagedSlaveSecurityGroup     , jficHadoopVersion     , jficInstanceCount     , jficInstanceGroups@@ -464,7 +472,7 @@ data MarketType     = OnDemand -- ^ ON_DEMAND     | Spot     -- ^ SPOT-      deriving (Eq, Ord, Show, Generic, Enum)+      deriving (Eq, Ord, Read, Show, Generic, Enum)  instance Hashable MarketType @@ -497,7 +505,7 @@     , _igcInstanceType  :: Text     , _igcMarket        :: Maybe MarketType     , _igcName          :: Maybe Text-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'InstanceGroupConfig' constructor. --@@ -575,7 +583,7 @@ data InstanceStateChangeReason = InstanceStateChangeReason     { _iscrCode    :: Maybe InstanceStateChangeReasonCode     , _iscrMessage :: Maybe Text-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'InstanceStateChangeReason' constructor. --@@ -623,7 +631,7 @@     , _jfdSteps                 :: List "Steps" StepDetail     , _jfdSupportedProducts     :: List "SupportedProducts" Text     , _jfdVisibleToAllUsers     :: Maybe Bool-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'JobFlowDetail' constructor. --@@ -773,7 +781,7 @@ data KeyValue = KeyValue     { _kvKey   :: Maybe Text     , _kvValue :: Maybe Text-    } deriving (Eq, Ord, Show)+    } deriving (Eq, Ord, Read, Show)  -- | 'KeyValue' constructor. --@@ -811,7 +819,7 @@ data SupportedProductConfig = SupportedProductConfig     { _spcArgs :: List "Args" Text     , _spcName :: Maybe Text-    } deriving (Eq, Ord, Show)+    } deriving (Eq, Ord, Read, Show)  -- | 'SupportedProductConfig' constructor. --@@ -850,7 +858,7 @@     { _cArgs       :: List "Args" Text     , _cName       :: Maybe Text     , _cScriptPath :: Maybe Text-    } deriving (Eq, Ord, Show)+    } deriving (Eq, Ord, Read, Show)  -- | 'Command' constructor. --@@ -902,7 +910,7 @@     | Interrupted -- ^ INTERRUPTED     | Pending     -- ^ PENDING     | Running     -- ^ RUNNING-      deriving (Eq, Ord, Show, Generic, Enum)+      deriving (Eq, Ord, Read, Show, Generic, Enum)  instance Hashable StepExecutionState @@ -943,7 +951,7 @@     | AOFContinue         -- ^ CONTINUE     | AOFTerminateCluster -- ^ TERMINATE_CLUSTER     | AOFTerminateJobFlow -- ^ TERMINATE_JOB_FLOW-      deriving (Eq, Ord, Show, Generic, Enum)+      deriving (Eq, Ord, Read, Show, Generic, Enum)  instance Hashable ActionOnFailure @@ -976,7 +984,7 @@ data ClusterStateChangeReason = ClusterStateChangeReason     { _cscrCode    :: Maybe ClusterStateChangeReasonCode     , _cscrMessage :: Maybe Text-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'ClusterStateChangeReason' constructor. --@@ -1014,7 +1022,7 @@ data Tag = Tag     { _tagKey   :: Maybe Text     , _tagValue :: Maybe Text-    } deriving (Eq, Ord, Show)+    } deriving (Eq, Ord, Read, Show)  -- | 'Tag' constructor. --@@ -1055,7 +1063,7 @@     , _aArgs           :: List "Args" Text     , _aName           :: Maybe Text     , _aVersion        :: Maybe Text-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'Application' constructor. --@@ -1116,7 +1124,7 @@     , _jfesdReadyDateTime         :: Maybe POSIX     , _jfesdStartDateTime         :: Maybe POSIX     , _jfesdState                 :: JobFlowExecutionState-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'JobFlowExecutionStatusDetail' constructor. --@@ -1202,7 +1210,7 @@     { _igsState             :: Maybe InstanceGroupState     , _igsStateChangeReason :: Maybe InstanceGroupStateChangeReason     , _igsTimeline          :: Maybe InstanceGroupTimeline-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'InstanceGroupStatus' constructor. --@@ -1263,7 +1271,7 @@     , _c1Tags                    :: List "Tags" Tag     , _c1TerminationProtected    :: Maybe Bool     , _c1VisibleToAllUsers       :: Maybe Bool-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'Cluster' constructor. --@@ -1443,7 +1451,7 @@     { _itCreationDateTime :: Maybe POSIX     , _itEndDateTime      :: Maybe POSIX     , _itReadyDateTime    :: Maybe POSIX-    } deriving (Eq, Ord, Show)+    } deriving (Eq, Ord, Read, Show)  -- | 'InstanceTimeline' constructor. --@@ -1490,32 +1498,62 @@         ]  data Ec2InstanceAttributes = Ec2InstanceAttributes-    { _eiaEc2AvailabilityZone :: Maybe Text-    , _eiaEc2KeyName          :: Maybe Text-    , _eiaEc2SubnetId         :: Maybe Text-    , _eiaIamInstanceProfile  :: Maybe Text-    } deriving (Eq, Ord, Show)+    { _eiaAdditionalMasterSecurityGroups :: List "AdditionalMasterSecurityGroups" Text+    , _eiaAdditionalSlaveSecurityGroups  :: List "AdditionalSlaveSecurityGroups" Text+    , _eiaEc2AvailabilityZone            :: Maybe Text+    , _eiaEc2KeyName                     :: Maybe Text+    , _eiaEc2SubnetId                    :: Maybe Text+    , _eiaEmrManagedMasterSecurityGroup  :: Maybe Text+    , _eiaEmrManagedSlaveSecurityGroup   :: Maybe Text+    , _eiaIamInstanceProfile             :: Maybe Text+    } deriving (Eq, Ord, Read, Show)  -- | 'Ec2InstanceAttributes' constructor. -- -- The fields accessible through corresponding lenses are: --+-- * 'eiaAdditionalMasterSecurityGroups' @::@ ['Text']+--+-- * 'eiaAdditionalSlaveSecurityGroups' @::@ ['Text']+-- -- * 'eiaEc2AvailabilityZone' @::@ 'Maybe' 'Text' -- -- * 'eiaEc2KeyName' @::@ 'Maybe' 'Text' -- -- * 'eiaEc2SubnetId' @::@ 'Maybe' 'Text' --+-- * 'eiaEmrManagedMasterSecurityGroup' @::@ 'Maybe' 'Text'+--+-- * 'eiaEmrManagedSlaveSecurityGroup' @::@ 'Maybe' 'Text'+-- -- * 'eiaIamInstanceProfile' @::@ 'Maybe' 'Text' -- ec2InstanceAttributes :: Ec2InstanceAttributes ec2InstanceAttributes = Ec2InstanceAttributes-    { _eiaEc2KeyName          = Nothing-    , _eiaEc2SubnetId         = Nothing-    , _eiaEc2AvailabilityZone = Nothing-    , _eiaIamInstanceProfile  = Nothing+    { _eiaEc2KeyName                     = Nothing+    , _eiaEc2SubnetId                    = Nothing+    , _eiaEc2AvailabilityZone            = Nothing+    , _eiaIamInstanceProfile             = Nothing+    , _eiaEmrManagedMasterSecurityGroup  = Nothing+    , _eiaEmrManagedSlaveSecurityGroup   = Nothing+    , _eiaAdditionalMasterSecurityGroups = mempty+    , _eiaAdditionalSlaveSecurityGroups  = mempty     } +-- | A list of additional Amazon EC2 security group IDs for the master node.+eiaAdditionalMasterSecurityGroups :: Lens' Ec2InstanceAttributes [Text]+eiaAdditionalMasterSecurityGroups =+    lens _eiaAdditionalMasterSecurityGroups+        (\s a -> s { _eiaAdditionalMasterSecurityGroups = a })+            . _List++-- | A list of additional Amazon EC2 security group IDs for the slave nodes.+eiaAdditionalSlaveSecurityGroups :: Lens' Ec2InstanceAttributes [Text]+eiaAdditionalSlaveSecurityGroups =+    lens _eiaAdditionalSlaveSecurityGroups+        (\s a -> s { _eiaAdditionalSlaveSecurityGroups = a })+            . _List+ -- | The Availability Zone in which the cluster will run. eiaEc2AvailabilityZone :: Lens' Ec2InstanceAttributes (Maybe Text) eiaEc2AvailabilityZone =@@ -1537,6 +1575,20 @@ eiaEc2SubnetId :: Lens' Ec2InstanceAttributes (Maybe Text) eiaEc2SubnetId = lens _eiaEc2SubnetId (\s a -> s { _eiaEc2SubnetId = a }) +-- | The identifier of the Amazon EC2 security group (managed by Amazon Elastic+-- MapReduce) for the master node.+eiaEmrManagedMasterSecurityGroup :: Lens' Ec2InstanceAttributes (Maybe Text)+eiaEmrManagedMasterSecurityGroup =+    lens _eiaEmrManagedMasterSecurityGroup+        (\s a -> s { _eiaEmrManagedMasterSecurityGroup = a })++-- | The identifier of the Amazon EC2 security group (managed by Amazon Elastic+-- MapReduce) for the slave nodes.+eiaEmrManagedSlaveSecurityGroup :: Lens' Ec2InstanceAttributes (Maybe Text)+eiaEmrManagedSlaveSecurityGroup =+    lens _eiaEmrManagedSlaveSecurityGroup+        (\s a -> s { _eiaEmrManagedSlaveSecurityGroup = a })+ -- | The IAM role that was specified when the job flow was launched. The EC2 -- instances of the job flow assume this role. eiaIamInstanceProfile :: Lens' Ec2InstanceAttributes (Maybe Text)@@ -1545,22 +1597,30 @@  instance FromJSON Ec2InstanceAttributes where     parseJSON = withObject "Ec2InstanceAttributes" $ \o -> Ec2InstanceAttributes-        <$> o .:? "Ec2AvailabilityZone"+        <$> o .:? "AdditionalMasterSecurityGroups" .!= mempty+        <*> o .:? "AdditionalSlaveSecurityGroups" .!= mempty+        <*> o .:? "Ec2AvailabilityZone"         <*> o .:? "Ec2KeyName"         <*> o .:? "Ec2SubnetId"+        <*> o .:? "EmrManagedMasterSecurityGroup"+        <*> o .:? "EmrManagedSlaveSecurityGroup"         <*> o .:? "IamInstanceProfile"  instance ToJSON Ec2InstanceAttributes where     toJSON Ec2InstanceAttributes{..} = object-        [ "Ec2KeyName"          .= _eiaEc2KeyName-        , "Ec2SubnetId"         .= _eiaEc2SubnetId-        , "Ec2AvailabilityZone" .= _eiaEc2AvailabilityZone-        , "IamInstanceProfile"  .= _eiaIamInstanceProfile+        [ "Ec2KeyName"                     .= _eiaEc2KeyName+        , "Ec2SubnetId"                    .= _eiaEc2SubnetId+        , "Ec2AvailabilityZone"            .= _eiaEc2AvailabilityZone+        , "IamInstanceProfile"             .= _eiaIamInstanceProfile+        , "EmrManagedMasterSecurityGroup"  .= _eiaEmrManagedMasterSecurityGroup+        , "EmrManagedSlaveSecurityGroup"   .= _eiaEmrManagedSlaveSecurityGroup+        , "AdditionalMasterSecurityGroups" .= _eiaAdditionalMasterSecurityGroups+        , "AdditionalSlaveSecurityGroups"  .= _eiaAdditionalSlaveSecurityGroups         ]  data StepStateChangeReasonCode     = None -- ^ NONE-      deriving (Eq, Ord, Show, Generic, Enum)+      deriving (Eq, Ord, Read, Show, Generic, Enum)  instance Hashable StepStateChangeReasonCode @@ -1591,7 +1651,7 @@     | CSTerminatedWithErrors -- ^ TERMINATED_WITH_ERRORS     | CSTerminating          -- ^ TERMINATING     | CSWaiting              -- ^ WAITING-      deriving (Eq, Ord, Show, Generic, Enum)+      deriving (Eq, Ord, Read, Show, Generic, Enum)  instance Hashable ClusterState @@ -1632,7 +1692,7 @@     , _hscJar        :: Maybe Text     , _hscMainClass  :: Maybe Text     , _hscProperties :: Map Text Text-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'HadoopStepConfig' constructor. --@@ -1697,7 +1757,7 @@     | JFESStarting      -- ^ STARTING     | JFESTerminated    -- ^ TERMINATED     | JFESWaiting       -- ^ WAITING-      deriving (Eq, Ord, Show, Generic, Enum)+      deriving (Eq, Ord, Read, Show, Generic, Enum)  instance Hashable JobFlowExecutionState @@ -1738,7 +1798,7 @@ data StepDetail = StepDetail     { _sdExecutionStatusDetail :: StepExecutionStatusDetail     , _sdStepConfig            :: StepConfig-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'StepDetail' constructor. --@@ -1779,7 +1839,7 @@ data InstanceGroupStateChangeReason = InstanceGroupStateChangeReason     { _igscrCode    :: Maybe InstanceGroupStateChangeReasonCode     , _igscrMessage :: Maybe Text-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'InstanceGroupStateChangeReason' constructor. --@@ -1818,7 +1878,7 @@     = Core   -- ^ CORE     | Master -- ^ MASTER     | Task   -- ^ TASK-      deriving (Eq, Ord, Show, Generic, Enum)+      deriving (Eq, Ord, Read, Show, Generic, Enum)  instance Hashable InstanceGroupType @@ -1851,7 +1911,7 @@     | InstanceFailure   -- ^ INSTANCE_FAILURE     | InternalError     -- ^ INTERNAL_ERROR     | ValidationError   -- ^ VALIDATION_ERROR-      deriving (Eq, Ord, Show, Generic, Enum)+      deriving (Eq, Ord, Read, Show, Generic, Enum)  instance Hashable InstanceGroupStateChangeReasonCode @@ -1885,7 +1945,7 @@     { _ssState             :: Maybe StepState     , _ssStateChangeReason :: Maybe StepStateChangeReason     , _ssTimeline          :: Maybe StepTimeline-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'StepStatus' constructor. --@@ -1936,7 +1996,7 @@     , _ssId              :: Maybe Text     , _ssName            :: Maybe Text     , _ssStatus          :: Maybe StepStatus-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'StepSummary' constructor. --@@ -2011,7 +2071,7 @@     | IGSSuspended     -- ^ SUSPENDED     | IGSTerminated    -- ^ TERMINATED     | IGSTerminating   -- ^ TERMINATING-      deriving (Eq, Ord, Show, Generic, Enum)+      deriving (Eq, Ord, Read, Show, Generic, Enum)  instance Hashable InstanceGroupState @@ -2057,7 +2117,7 @@     { _stCreationDateTime :: Maybe POSIX     , _stEndDateTime      :: Maybe POSIX     , _stStartDateTime    :: Maybe POSIX-    } deriving (Eq, Ord, Show)+    } deriving (Eq, Ord, Read, Show)  -- | 'StepTimeline' constructor. --@@ -2105,7 +2165,7 @@  newtype PlacementType = PlacementType     { _ptAvailabilityZone :: Text-    } deriving (Eq, Ord, Show, Monoid, IsString)+    } deriving (Eq, Ord, Read, Show, Monoid, IsString)  -- | 'PlacementType' constructor. --@@ -2138,7 +2198,7 @@     , _hjscJar        :: Text     , _hjscMainClass  :: Maybe Text     , _hjscProperties :: List "Properties" KeyValue-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'HadoopJarStepConfig' constructor. --@@ -2199,7 +2259,7 @@     { _igmcEC2InstanceIdsToTerminate :: List "EC2InstanceIdsToTerminate" Text     , _igmcInstanceCount             :: Maybe Int     , _igmcInstanceGroupId           :: Text-    } deriving (Eq, Ord, Show)+    } deriving (Eq, Ord, Read, Show)  -- | 'InstanceGroupModifyConfig' constructor. --@@ -2266,7 +2326,7 @@     , _igdReadyDateTime         :: Maybe POSIX     , _igdStartDateTime         :: Maybe POSIX     , _igdState                 :: InstanceGroupState-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'InstanceGroupDetail' constructor. --@@ -2428,7 +2488,7 @@ data StepStateChangeReason = StepStateChangeReason     { _sscrCode    :: Maybe StepStateChangeReasonCode     , _sscrMessage :: Maybe Text-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'StepStateChangeReason' constructor. --@@ -2471,7 +2531,7 @@     | CSCRCStepFailure       -- ^ STEP_FAILURE     | CSCRCUserRequest       -- ^ USER_REQUEST     | CSCRCValidationError   -- ^ VALIDATION_ERROR-      deriving (Eq, Ord, Show, Generic, Enum)+      deriving (Eq, Ord, Read, Show, Generic, Enum)  instance Hashable ClusterStateChangeReasonCode @@ -2513,7 +2573,7 @@     , _sId              :: Maybe Text     , _sName            :: Maybe Text     , _sStatus          :: Maybe StepStatus-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'Step' constructor. --@@ -2583,7 +2643,7 @@     | SSInterrupted -- ^ INTERRUPTED     | SSPending     -- ^ PENDING     | SSRunning     -- ^ RUNNING-      deriving (Eq, Ord, Show, Generic, Enum)+      deriving (Eq, Ord, Read, Show, Generic, Enum)  instance Hashable StepState @@ -2621,7 +2681,7 @@     { _igtCreationDateTime :: Maybe POSIX     , _igtEndDateTime      :: Maybe POSIX     , _igtReadyDateTime    :: Maybe POSIX-    } deriving (Eq, Ord, Show)+    } deriving (Eq, Ord, Read, Show)  -- | 'InstanceGroupTimeline' constructor. --@@ -2669,7 +2729,7 @@  newtype BootstrapActionDetail = BootstrapActionDetail     { _badBootstrapActionConfig :: Maybe BootstrapActionConfig-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'BootstrapActionDetail' constructor. --@@ -2703,7 +2763,7 @@     , _sesdLastStateChangeReason :: Maybe Text     , _sesdStartDateTime         :: Maybe POSIX     , _sesdState                 :: StepExecutionState-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'StepExecutionStatusDetail' constructor. --@@ -2777,7 +2837,7 @@     { _isState             :: Maybe InstanceState     , _isStateChangeReason :: Maybe InstanceStateChangeReason     , _isTimeline          :: Maybe InstanceTimeline-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'InstanceStatus' constructor. --@@ -2826,7 +2886,7 @@     = IRTCore   -- ^ CORE     | IRTMaster -- ^ MASTER     | IRTTask   -- ^ TASK-      deriving (Eq, Ord, Show, Generic, Enum)+      deriving (Eq, Ord, Read, Show, Generic, Enum)  instance Hashable InstanceRoleType @@ -2855,26 +2915,38 @@     toJSON = toJSONText  data JobFlowInstancesConfig = JobFlowInstancesConfig-    { _jficEc2KeyName                  :: Maybe Text-    , _jficEc2SubnetId                 :: Maybe Text-    , _jficHadoopVersion               :: Maybe Text-    , _jficInstanceCount               :: Maybe Int-    , _jficInstanceGroups              :: List "InstanceGroups" InstanceGroupConfig-    , _jficKeepJobFlowAliveWhenNoSteps :: Maybe Bool-    , _jficMasterInstanceType          :: Maybe Text-    , _jficPlacement                   :: Maybe PlacementType-    , _jficSlaveInstanceType           :: Maybe Text-    , _jficTerminationProtected        :: Maybe Bool-    } deriving (Eq, Show)+    { _jficAdditionalMasterSecurityGroups :: List "AdditionalMasterSecurityGroups" Text+    , _jficAdditionalSlaveSecurityGroups  :: List "AdditionalSlaveSecurityGroups" Text+    , _jficEc2KeyName                     :: Maybe Text+    , _jficEc2SubnetId                    :: Maybe Text+    , _jficEmrManagedMasterSecurityGroup  :: Maybe Text+    , _jficEmrManagedSlaveSecurityGroup   :: Maybe Text+    , _jficHadoopVersion                  :: Maybe Text+    , _jficInstanceCount                  :: Maybe Int+    , _jficInstanceGroups                 :: List "InstanceGroups" InstanceGroupConfig+    , _jficKeepJobFlowAliveWhenNoSteps    :: Maybe Bool+    , _jficMasterInstanceType             :: Maybe Text+    , _jficPlacement                      :: Maybe PlacementType+    , _jficSlaveInstanceType              :: Maybe Text+    , _jficTerminationProtected           :: Maybe Bool+    } deriving (Eq, Read, Show)  -- | 'JobFlowInstancesConfig' constructor. -- -- The fields accessible through corresponding lenses are: --+-- * 'jficAdditionalMasterSecurityGroups' @::@ ['Text']+--+-- * 'jficAdditionalSlaveSecurityGroups' @::@ ['Text']+-- -- * 'jficEc2KeyName' @::@ 'Maybe' 'Text' -- -- * 'jficEc2SubnetId' @::@ 'Maybe' 'Text' --+-- * 'jficEmrManagedMasterSecurityGroup' @::@ 'Maybe' 'Text'+--+-- * 'jficEmrManagedSlaveSecurityGroup' @::@ 'Maybe' 'Text'+-- -- * 'jficHadoopVersion' @::@ 'Maybe' 'Text' -- -- * 'jficInstanceCount' @::@ 'Maybe' 'Int'@@ -2893,18 +2965,36 @@ -- jobFlowInstancesConfig :: JobFlowInstancesConfig jobFlowInstancesConfig = JobFlowInstancesConfig-    { _jficMasterInstanceType          = Nothing-    , _jficSlaveInstanceType           = Nothing-    , _jficInstanceCount               = Nothing-    , _jficInstanceGroups              = mempty-    , _jficEc2KeyName                  = Nothing-    , _jficPlacement                   = Nothing-    , _jficKeepJobFlowAliveWhenNoSteps = Nothing-    , _jficTerminationProtected        = Nothing-    , _jficHadoopVersion               = Nothing-    , _jficEc2SubnetId                 = Nothing+    { _jficMasterInstanceType             = Nothing+    , _jficSlaveInstanceType              = Nothing+    , _jficInstanceCount                  = Nothing+    , _jficInstanceGroups                 = mempty+    , _jficEc2KeyName                     = Nothing+    , _jficPlacement                      = Nothing+    , _jficKeepJobFlowAliveWhenNoSteps    = Nothing+    , _jficTerminationProtected           = Nothing+    , _jficHadoopVersion                  = Nothing+    , _jficEc2SubnetId                    = Nothing+    , _jficEmrManagedMasterSecurityGroup  = Nothing+    , _jficEmrManagedSlaveSecurityGroup   = Nothing+    , _jficAdditionalMasterSecurityGroups = mempty+    , _jficAdditionalSlaveSecurityGroups  = mempty     } +-- | A list of additional Amazon EC2 security group IDs for the master node.+jficAdditionalMasterSecurityGroups :: Lens' JobFlowInstancesConfig [Text]+jficAdditionalMasterSecurityGroups =+    lens _jficAdditionalMasterSecurityGroups+        (\s a -> s { _jficAdditionalMasterSecurityGroups = a })+            . _List++-- | A list of additional Amazon EC2 security group IDs for the slave nodes.+jficAdditionalSlaveSecurityGroups :: Lens' JobFlowInstancesConfig [Text]+jficAdditionalSlaveSecurityGroups =+    lens _jficAdditionalSlaveSecurityGroups+        (\s a -> s { _jficAdditionalSlaveSecurityGroups = a })+            . _List+ -- | The name of the Amazon EC2 key pair that can be used to ssh to the master -- node as the user called "hadoop." jficEc2KeyName :: Lens' JobFlowInstancesConfig (Maybe Text)@@ -2921,6 +3011,20 @@ jficEc2SubnetId :: Lens' JobFlowInstancesConfig (Maybe Text) jficEc2SubnetId = lens _jficEc2SubnetId (\s a -> s { _jficEc2SubnetId = a }) +-- | The identifier of the Amazon EC2 security group (managed by Amazon+-- ElasticMapReduce) for the master node.+jficEmrManagedMasterSecurityGroup :: Lens' JobFlowInstancesConfig (Maybe Text)+jficEmrManagedMasterSecurityGroup =+    lens _jficEmrManagedMasterSecurityGroup+        (\s a -> s { _jficEmrManagedMasterSecurityGroup = a })++-- | The identifier of the Amazon EC2 security group (managed by Amazon+-- ElasticMapReduce) for the slave nodes.+jficEmrManagedSlaveSecurityGroup :: Lens' JobFlowInstancesConfig (Maybe Text)+jficEmrManagedSlaveSecurityGroup =+    lens _jficEmrManagedSlaveSecurityGroup+        (\s a -> s { _jficEmrManagedSlaveSecurityGroup = a })+ -- | The Hadoop version for the job flow. Valid inputs are "0.18", "0.20", -- "0.20.205", "1.0.3", "2.2.0", or "2.4.0". If you do not set this value, the -- default of 0.18 is used, unless the AmiVersion parameter is set in the@@ -2971,8 +3075,12 @@  instance FromJSON JobFlowInstancesConfig where     parseJSON = withObject "JobFlowInstancesConfig" $ \o -> JobFlowInstancesConfig-        <$> o .:? "Ec2KeyName"+        <$> o .:? "AdditionalMasterSecurityGroups" .!= mempty+        <*> o .:? "AdditionalSlaveSecurityGroups" .!= mempty+        <*> o .:? "Ec2KeyName"         <*> o .:? "Ec2SubnetId"+        <*> o .:? "EmrManagedMasterSecurityGroup"+        <*> o .:? "EmrManagedSlaveSecurityGroup"         <*> o .:? "HadoopVersion"         <*> o .:? "InstanceCount"         <*> o .:? "InstanceGroups" .!= mempty@@ -2984,23 +3092,27 @@  instance ToJSON JobFlowInstancesConfig where     toJSON JobFlowInstancesConfig{..} = object-        [ "MasterInstanceType"          .= _jficMasterInstanceType-        , "SlaveInstanceType"           .= _jficSlaveInstanceType-        , "InstanceCount"               .= _jficInstanceCount-        , "InstanceGroups"              .= _jficInstanceGroups-        , "Ec2KeyName"                  .= _jficEc2KeyName-        , "Placement"                   .= _jficPlacement-        , "KeepJobFlowAliveWhenNoSteps" .= _jficKeepJobFlowAliveWhenNoSteps-        , "TerminationProtected"        .= _jficTerminationProtected-        , "HadoopVersion"               .= _jficHadoopVersion-        , "Ec2SubnetId"                 .= _jficEc2SubnetId+        [ "MasterInstanceType"             .= _jficMasterInstanceType+        , "SlaveInstanceType"              .= _jficSlaveInstanceType+        , "InstanceCount"                  .= _jficInstanceCount+        , "InstanceGroups"                 .= _jficInstanceGroups+        , "Ec2KeyName"                     .= _jficEc2KeyName+        , "Placement"                      .= _jficPlacement+        , "KeepJobFlowAliveWhenNoSteps"    .= _jficKeepJobFlowAliveWhenNoSteps+        , "TerminationProtected"           .= _jficTerminationProtected+        , "HadoopVersion"                  .= _jficHadoopVersion+        , "Ec2SubnetId"                    .= _jficEc2SubnetId+        , "EmrManagedMasterSecurityGroup"  .= _jficEmrManagedMasterSecurityGroup+        , "EmrManagedSlaveSecurityGroup"   .= _jficEmrManagedSlaveSecurityGroup+        , "AdditionalMasterSecurityGroups" .= _jficAdditionalMasterSecurityGroups+        , "AdditionalSlaveSecurityGroups"  .= _jficAdditionalSlaveSecurityGroups         ]  data StepConfig = StepConfig     { _scActionOnFailure :: Maybe ActionOnFailure     , _scHadoopJarStep   :: HadoopJarStepConfig     , _scName            :: Text-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'StepConfig' constructor. --@@ -3057,7 +3169,7 @@     , _igRequestedInstanceCount :: Maybe Int     , _igRunningInstanceCount   :: Maybe Int     , _igStatus                 :: Maybe InstanceGroupStatus-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'InstanceGroup' constructor. --@@ -3164,7 +3276,7 @@ data BootstrapActionConfig = BootstrapActionConfig     { _bacName                  :: Text     , _bacScriptBootstrapAction :: ScriptBootstrapActionConfig-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'BootstrapActionConfig' constructor. --@@ -3208,7 +3320,7 @@     , _csName                    :: Maybe Text     , _csNormalizedInstanceHours :: Maybe Int     , _csStatus                  :: Maybe ClusterStatus-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'ClusterSummary' constructor. --@@ -3282,7 +3394,7 @@     , _jfidPlacement                   :: Maybe PlacementType     , _jfidSlaveInstanceType           :: Text     , _jfidTerminationProtected        :: Maybe Bool-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'JobFlowInstancesDetail' constructor. --@@ -3449,7 +3561,7 @@     { _csState             :: Maybe ClusterState     , _csStateChangeReason :: Maybe ClusterStateChangeReason     , _csTimeline          :: Maybe ClusterTimeline-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'ClusterStatus' constructor. --@@ -3501,7 +3613,7 @@     | ISProvisioning        -- ^ PROVISIONING     | ISRunning             -- ^ RUNNING     | ISTerminated          -- ^ TERMINATED-      deriving (Eq, Ord, Show, Generic, Enum)+      deriving (Eq, Ord, Read, Show, Generic, Enum)  instance Hashable InstanceState @@ -3537,7 +3649,7 @@     { _ctCreationDateTime :: Maybe POSIX     , _ctEndDateTime      :: Maybe POSIX     , _ctReadyDateTime    :: Maybe POSIX-    } deriving (Eq, Ord, Show)+    } deriving (Eq, Ord, Read, Show)  -- | 'ClusterTimeline' constructor. --@@ -3589,7 +3701,7 @@     | ISCRCInstanceFailure   -- ^ INSTANCE_FAILURE     | ISCRCInternalError     -- ^ INTERNAL_ERROR     | ISCRCValidationError   -- ^ VALIDATION_ERROR-      deriving (Eq, Ord, Show, Generic, Enum)+      deriving (Eq, Ord, Read, Show, Generic, Enum)  instance Hashable InstanceStateChangeReasonCode @@ -3629,7 +3741,7 @@     , _iPublicDnsName    :: Maybe Text     , _iPublicIpAddress  :: Maybe Text     , _iStatus           :: Maybe InstanceStatus-    } deriving (Eq, Show)+    } deriving (Eq, Read, Show)  -- | 'Instance' constructor. --@@ -3713,7 +3825,7 @@ data ScriptBootstrapActionConfig = ScriptBootstrapActionConfig     { _sbacArgs :: List "Args" Text     , _sbacPath :: Text-    } deriving (Eq, Ord, Show)+    } deriving (Eq, Ord, Read, Show)  -- | 'ScriptBootstrapActionConfig' constructor. --