packages feed

amazonka-emr 1.3.7 → 1.4.0

raw patch · 27 files changed

+588/−148 lines, 27 filesdep ~amazonka-coredep ~amazonka-emrdep ~amazonka-testPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: amazonka-core, amazonka-emr, amazonka-test

API changes (from Hackage documentation)

- Network.AWS.EMR: eMR :: Service
- Network.AWS.EMR.Types: eMR :: Service
+ Network.AWS.EMR: data EBSBlockDevice
+ Network.AWS.EMR: data EBSBlockDeviceConfig
+ Network.AWS.EMR: data EBSConfiguration
+ Network.AWS.EMR: data EBSVolume
+ Network.AWS.EMR: data VolumeSpecification
+ Network.AWS.EMR: ebdDevice :: Lens' EBSBlockDevice (Maybe Text)
+ Network.AWS.EMR: ebdVolumeSpecification :: Lens' EBSBlockDevice (Maybe VolumeSpecification)
+ Network.AWS.EMR: ebdcVolumeSpecification :: Lens' EBSBlockDeviceConfig VolumeSpecification
+ Network.AWS.EMR: ebdcVolumesPerInstance :: Lens' EBSBlockDeviceConfig (Maybe Int)
+ Network.AWS.EMR: ebsBlockDevice :: EBSBlockDevice
+ Network.AWS.EMR: ebsBlockDeviceConfig :: VolumeSpecification -> EBSBlockDeviceConfig
+ Network.AWS.EMR: ebsConfiguration :: EBSConfiguration
+ Network.AWS.EMR: ebsVolume :: EBSVolume
+ Network.AWS.EMR: ecEBSBlockDeviceConfigs :: Lens' EBSConfiguration [EBSBlockDeviceConfig]
+ Network.AWS.EMR: ecEBSOptimized :: Lens' EBSConfiguration (Maybe Bool)
+ Network.AWS.EMR: eiaServiceAccessSecurityGroup :: Lens' EC2InstanceAttributes (Maybe Text)
+ Network.AWS.EMR: emr :: Service
+ Network.AWS.EMR: evDevice :: Lens' EBSVolume (Maybe Text)
+ Network.AWS.EMR: evVolumeId :: Lens' EBSVolume (Maybe Text)
+ Network.AWS.EMR: iEBSVolumes :: Lens' Instance [EBSVolume]
+ Network.AWS.EMR: iInstanceGroupId :: Lens' Instance (Maybe Text)
+ Network.AWS.EMR: igEBSBlockDevices :: Lens' InstanceGroup [EBSBlockDevice]
+ Network.AWS.EMR: igEBSOptimized :: Lens' InstanceGroup (Maybe Bool)
+ Network.AWS.EMR: igcEBSConfiguration :: Lens' InstanceGroupConfig (Maybe EBSConfiguration)
+ Network.AWS.EMR: jficServiceAccessSecurityGroup :: Lens' JobFlowInstancesConfig (Maybe Text)
+ Network.AWS.EMR: volumeSpecification :: Text -> Int -> VolumeSpecification
+ Network.AWS.EMR: vsIOPS :: Lens' VolumeSpecification (Maybe Int)
+ Network.AWS.EMR: vsSizeInGB :: Lens' VolumeSpecification Int
+ Network.AWS.EMR: vsVolumeType :: Lens' VolumeSpecification Text
+ Network.AWS.EMR.AddInstanceGroups: instance Data.Hashable.Class.Hashable Network.AWS.EMR.AddInstanceGroups.AddInstanceGroups
+ Network.AWS.EMR.AddJobFlowSteps: instance Data.Hashable.Class.Hashable Network.AWS.EMR.AddJobFlowSteps.AddJobFlowSteps
+ Network.AWS.EMR.AddTags: instance Data.Hashable.Class.Hashable Network.AWS.EMR.AddTags.AddTags
+ Network.AWS.EMR.DescribeCluster: instance Data.Hashable.Class.Hashable Network.AWS.EMR.DescribeCluster.DescribeCluster
+ Network.AWS.EMR.DescribeStep: instance Data.Hashable.Class.Hashable Network.AWS.EMR.DescribeStep.DescribeStep
+ Network.AWS.EMR.ListBootstrapActions: instance Data.Hashable.Class.Hashable Network.AWS.EMR.ListBootstrapActions.ListBootstrapActions
+ Network.AWS.EMR.ListClusters: instance Data.Hashable.Class.Hashable Network.AWS.EMR.ListClusters.ListClusters
+ Network.AWS.EMR.ListInstanceGroups: instance Data.Hashable.Class.Hashable Network.AWS.EMR.ListInstanceGroups.ListInstanceGroups
+ Network.AWS.EMR.ListInstances: instance Data.Hashable.Class.Hashable Network.AWS.EMR.ListInstances.ListInstances
+ Network.AWS.EMR.ListSteps: instance Data.Hashable.Class.Hashable Network.AWS.EMR.ListSteps.ListSteps
+ Network.AWS.EMR.ModifyInstanceGroups: instance Data.Hashable.Class.Hashable Network.AWS.EMR.ModifyInstanceGroups.ModifyInstanceGroups
+ Network.AWS.EMR.RemoveTags: instance Data.Hashable.Class.Hashable Network.AWS.EMR.RemoveTags.RemoveTags
+ Network.AWS.EMR.RunJobFlow: instance Data.Hashable.Class.Hashable Network.AWS.EMR.RunJobFlow.RunJobFlow
+ Network.AWS.EMR.SetTerminationProtection: instance Data.Hashable.Class.Hashable Network.AWS.EMR.SetTerminationProtection.SetTerminationProtection
+ Network.AWS.EMR.SetVisibleToAllUsers: instance Data.Hashable.Class.Hashable Network.AWS.EMR.SetVisibleToAllUsers.SetVisibleToAllUsers
+ Network.AWS.EMR.TerminateJobFlows: instance Data.Hashable.Class.Hashable Network.AWS.EMR.TerminateJobFlows.TerminateJobFlows
+ Network.AWS.EMR.Types: data EBSBlockDevice
+ Network.AWS.EMR.Types: data EBSBlockDeviceConfig
+ Network.AWS.EMR.Types: data EBSConfiguration
+ Network.AWS.EMR.Types: data EBSVolume
+ Network.AWS.EMR.Types: data VolumeSpecification
+ Network.AWS.EMR.Types: ebdDevice :: Lens' EBSBlockDevice (Maybe Text)
+ Network.AWS.EMR.Types: ebdVolumeSpecification :: Lens' EBSBlockDevice (Maybe VolumeSpecification)
+ Network.AWS.EMR.Types: ebdcVolumeSpecification :: Lens' EBSBlockDeviceConfig VolumeSpecification
+ Network.AWS.EMR.Types: ebdcVolumesPerInstance :: Lens' EBSBlockDeviceConfig (Maybe Int)
+ Network.AWS.EMR.Types: ebsBlockDevice :: EBSBlockDevice
+ Network.AWS.EMR.Types: ebsBlockDeviceConfig :: VolumeSpecification -> EBSBlockDeviceConfig
+ Network.AWS.EMR.Types: ebsConfiguration :: EBSConfiguration
+ Network.AWS.EMR.Types: ebsVolume :: EBSVolume
+ Network.AWS.EMR.Types: ecEBSBlockDeviceConfigs :: Lens' EBSConfiguration [EBSBlockDeviceConfig]
+ Network.AWS.EMR.Types: ecEBSOptimized :: Lens' EBSConfiguration (Maybe Bool)
+ Network.AWS.EMR.Types: eiaServiceAccessSecurityGroup :: Lens' EC2InstanceAttributes (Maybe Text)
+ Network.AWS.EMR.Types: emr :: Service
+ Network.AWS.EMR.Types: evDevice :: Lens' EBSVolume (Maybe Text)
+ Network.AWS.EMR.Types: evVolumeId :: Lens' EBSVolume (Maybe Text)
+ Network.AWS.EMR.Types: iEBSVolumes :: Lens' Instance [EBSVolume]
+ Network.AWS.EMR.Types: iInstanceGroupId :: Lens' Instance (Maybe Text)
+ Network.AWS.EMR.Types: igEBSBlockDevices :: Lens' InstanceGroup [EBSBlockDevice]
+ Network.AWS.EMR.Types: igEBSOptimized :: Lens' InstanceGroup (Maybe Bool)
+ Network.AWS.EMR.Types: igcEBSConfiguration :: Lens' InstanceGroupConfig (Maybe EBSConfiguration)
+ Network.AWS.EMR.Types: jficServiceAccessSecurityGroup :: Lens' JobFlowInstancesConfig (Maybe Text)
+ Network.AWS.EMR.Types: volumeSpecification :: Text -> Int -> VolumeSpecification
+ Network.AWS.EMR.Types: vsIOPS :: Lens' VolumeSpecification (Maybe Int)
+ Network.AWS.EMR.Types: vsSizeInGB :: Lens' VolumeSpecification Int
+ Network.AWS.EMR.Types: vsVolumeType :: Lens' VolumeSpecification Text

Files

README.md view
@@ -8,7 +8,7 @@  ## Version -`1.3.7`+`1.4.0`   ## Description@@ -20,7 +20,7 @@ scientific simulation, and data warehousing.  Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-emr)-and the [AWS API Reference](http://docs.aws.amazon.com/ElasticMapReduce/latest/API/Welcome.html).+and the [AWS API Reference](https://aws.amazon.com/documentation/).  The types from this library are intended to be used with [amazonka](http://hackage.haskell.org/package/amazonka), which provides mechanisms for specifying AuthN/AuthZ information and sending requests.
amazonka-emr.cabal view
@@ -1,5 +1,5 @@ name:                  amazonka-emr-version:               1.3.7+version:               1.4.0 synopsis:              Amazon Elastic MapReduce SDK. homepage:              https://github.com/brendanhay/amazonka bug-reports:           https://github.com/brendanhay/amazonka/issues@@ -7,7 +7,7 @@ license-file:          LICENSE author:                Brendan Hay maintainer:            Brendan Hay <brendan.g.hay@gmail.com>-copyright:             Copyright (c) 2013-2015 Brendan Hay+copyright:             Copyright (c) 2013-2016 Brendan Hay category:              Network, AWS, Cloud, Distributed Computing build-type:            Simple cabal-version:         >= 1.10@@ -30,7 +30,7 @@     such as <http://hackage.haskell.org/package/lens lens> or     <http://hackage.haskell.org/package/lens-family-core lens-family-core>.     .-    See "Network.AWS.EMR" and the <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/Welcome.html AWS API Reference>+    See "Network.AWS.EMR" or <https://aws.amazon.com/documentation/ the AWS Documentation>     to get started.  source-repository head@@ -69,7 +69,7 @@         , Network.AWS.EMR.Types.Sum      build-depends:-          amazonka-core == 1.3.7.*+          amazonka-core == 1.4.0.*         , base          >= 4.7     && < 5  test-suite amazonka-emr-test@@ -89,9 +89,9 @@         , Test.AWS.EMR.Internal      build-depends:-          amazonka-core == 1.3.7.*-        , amazonka-test == 1.3.7.*-        , amazonka-emr == 1.3.7.*+          amazonka-core == 1.4.0.*+        , amazonka-test == 1.4.0.*+        , amazonka-emr == 1.4.0.*         , base         , bytestring         , tasty
gen/Network/AWS/EMR.hs view
@@ -5,7 +5,7 @@  -- | -- Module      : Network.AWS.EMR--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -16,12 +16,10 @@ -- Hadoop processing combined with several AWS products to do tasks such as -- web indexing, data mining, log file analysis, machine learning, -- scientific simulation, and data warehousing.------ /See:/ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/Welcome.html AWS API Reference> module Network.AWS.EMR     (     -- * Service Configuration-      eMR+      emr      -- * Errors     -- $errors@@ -207,6 +205,30 @@     , cClassification     , cProperties +    -- ** EBSBlockDevice+    , EBSBlockDevice+    , ebsBlockDevice+    , ebdDevice+    , ebdVolumeSpecification++    -- ** EBSBlockDeviceConfig+    , EBSBlockDeviceConfig+    , ebsBlockDeviceConfig+    , ebdcVolumesPerInstance+    , ebdcVolumeSpecification++    -- ** EBSConfiguration+    , EBSConfiguration+    , ebsConfiguration+    , ecEBSOptimized+    , ecEBSBlockDeviceConfigs++    -- ** EBSVolume+    , EBSVolume+    , ebsVolume+    , evDevice+    , evVolumeId+     -- ** EC2InstanceAttributes     , EC2InstanceAttributes     , ec2InstanceAttributes@@ -217,6 +239,7 @@     , eiaIAMInstanceProfile     , eiaEmrManagedMasterSecurityGroup     , eiaEC2SubnetId+    , eiaServiceAccessSecurityGroup     , eiaEC2AvailabilityZone      -- ** HadoopJARStepConfig@@ -240,9 +263,11 @@     , instance'     , iStatus     , iPublicDNSName+    , iEBSVolumes     , iEC2InstanceId     , iPrivateIPAddress     , iId+    , iInstanceGroupId     , iPrivateDNSName     , iPublicIPAddress @@ -255,7 +280,9 @@     , igRunningInstanceCount     , igConfigurations     , igInstanceGroupType+    , igEBSBlockDevices     , igInstanceType+    , igEBSOptimized     , igMarket     , igName     , igId@@ -263,6 +290,7 @@     -- ** InstanceGroupConfig     , InstanceGroupConfig     , instanceGroupConfig+    , igcEBSConfiguration     , igcBidPrice     , igcConfigurations     , igcMarket@@ -333,6 +361,7 @@     , jficMasterInstanceType     , jficInstanceGroups     , jficKeepJobFlowAliveWhenNoSteps+    , jficServiceAccessSecurityGroup     , jficTerminationProtected     , jficPlacement @@ -409,6 +438,13 @@     , tag     , tagValue     , tagKey++    -- ** VolumeSpecification+    , VolumeSpecification+    , volumeSpecification+    , vsIOPS+    , vsVolumeType+    , vsSizeInGB     ) where  import           Network.AWS.EMR.AddInstanceGroups
gen/Network/AWS/EMR/AddInstanceGroups.hs view
@@ -12,15 +12,13 @@  -- | -- Module      : Network.AWS.EMR.AddInstanceGroups--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- AddInstanceGroups adds an instance group to a running cluster.------ /See:/ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_AddInstanceGroups.html AWS API Reference> for AddInstanceGroups. module Network.AWS.EMR.AddInstanceGroups     (     -- * Creating a Request@@ -80,7 +78,7 @@  instance AWSRequest AddInstanceGroups where         type Rs AddInstanceGroups = AddInstanceGroupsResponse-        request = postJSON eMR+        request = postJSON emr         response           = receiveJSON               (\ s h x ->@@ -88,6 +86,8 @@                    (x .?> "JobFlowId") <*>                      (x .?> "InstanceGroupIds" .!@ mempty)                      <*> (pure (fromEnum s)))++instance Hashable AddInstanceGroups  instance ToHeaders AddInstanceGroups where         toHeaders
gen/Network/AWS/EMR/AddJobFlowSteps.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EMR.AddJobFlowSteps--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -43,8 +43,6 @@ -- -- You can only add steps to a job flow that is in one of the following -- states: STARTING, BOOTSTRAPPING, RUNNING, or WAITING.------ /See:/ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_AddJobFlowSteps.html AWS API Reference> for AddJobFlowSteps. module Network.AWS.EMR.AddJobFlowSteps     (     -- * Creating a Request@@ -69,7 +67,7 @@ import           Network.AWS.Request import           Network.AWS.Response --- | The input argument to the AddJobFlowSteps operation.+-- | The input argument to the < AddJobFlowSteps> operation. -- -- /See:/ 'addJobFlowSteps' smart constructor. data AddJobFlowSteps = AddJobFlowSteps'@@ -94,23 +92,25 @@     }  -- | A string that uniquely identifies the job flow. This identifier is--- returned by RunJobFlow and can also be obtained from ListClusters.+-- returned by < RunJobFlow> and can also be obtained from < ListClusters>. ajfsJobFlowId :: Lens' AddJobFlowSteps Text ajfsJobFlowId = lens _ajfsJobFlowId (\ s a -> s{_ajfsJobFlowId = a}); --- | A list of StepConfig to be executed by the job flow.+-- | A list of < StepConfig> to be executed by the job flow. ajfsSteps :: Lens' AddJobFlowSteps [StepConfig] ajfsSteps = lens _ajfsSteps (\ s a -> s{_ajfsSteps = a}) . _Coerce;  instance AWSRequest AddJobFlowSteps where         type Rs AddJobFlowSteps = AddJobFlowStepsResponse-        request = postJSON eMR+        request = postJSON emr         response           = receiveJSON               (\ s h x ->                  AddJobFlowStepsResponse' <$>                    (x .?> "StepIds" .!@ mempty) <*> (pure (fromEnum s))) +instance Hashable AddJobFlowSteps+ instance ToHeaders AddJobFlowSteps where         toHeaders           = const@@ -133,7 +133,7 @@ instance ToQuery AddJobFlowSteps where         toQuery = const mempty --- | The output for the AddJobFlowSteps operation.+-- | The output for the < AddJobFlowSteps> operation. -- -- /See:/ 'addJobFlowStepsResponse' smart constructor. data AddJobFlowStepsResponse = AddJobFlowStepsResponse'
gen/Network/AWS/EMR/AddTags.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EMR.AddTags--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -22,8 +22,6 @@ -- clusters in various ways, such as grouping clusters to track your Amazon -- EMR resource allocation costs. For more information, see -- <http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-tags.html Tagging Amazon EMR Resources>.------ /See:/ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_AddTags.html AWS API Reference> for AddTags. module Network.AWS.EMR.AddTags     (     -- * Creating a Request@@ -85,10 +83,12 @@  instance AWSRequest AddTags where         type Rs AddTags = AddTagsResponse-        request = postJSON eMR+        request = postJSON emr         response           = receiveEmpty               (\ s h x -> AddTagsResponse' <$> (pure (fromEnum s)))++instance Hashable AddTags  instance ToHeaders AddTags where         toHeaders
gen/Network/AWS/EMR/DescribeCluster.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EMR.DescribeCluster--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -20,9 +20,7 @@ -- -- Provides cluster-level details including status, hardware and software -- configuration, VPC settings, and so on. For information about the--- cluster steps, see ListSteps.------ /See:/ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_DescribeCluster.html AWS API Reference> for DescribeCluster.+-- cluster steps, see < ListSteps>. module Network.AWS.EMR.DescribeCluster     (     -- * Creating a Request@@ -72,12 +70,14 @@  instance AWSRequest DescribeCluster where         type Rs DescribeCluster = DescribeClusterResponse-        request = postJSON eMR+        request = postJSON emr         response           = receiveJSON               (\ s h x ->                  DescribeClusterResponse' <$>                    (pure (fromEnum s)) <*> (x .:> "Cluster"))++instance Hashable DescribeCluster  instance ToHeaders DescribeCluster where         toHeaders
gen/Network/AWS/EMR/DescribeStep.hs view
@@ -12,15 +12,13 @@  -- | -- Module      : Network.AWS.EMR.DescribeStep--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated -- Portability : non-portable (GHC extensions) -- -- Provides more detail about the cluster step.------ /See:/ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_DescribeStep.html AWS API Reference> for DescribeStep. module Network.AWS.EMR.DescribeStep     (     -- * Creating a Request@@ -80,12 +78,14 @@  instance AWSRequest DescribeStep where         type Rs DescribeStep = DescribeStepResponse-        request = postJSON eMR+        request = postJSON emr         response           = receiveJSON               (\ s h x ->                  DescribeStepResponse' <$>                    (x .?> "Step") <*> (pure (fromEnum s)))++instance Hashable DescribeStep  instance ToHeaders DescribeStep where         toHeaders
gen/Network/AWS/EMR/ListBootstrapActions.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EMR.ListBootstrapActions--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -21,8 +21,6 @@ -- Provides information about the bootstrap actions associated with a -- cluster. ----- /See:/ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_ListBootstrapActions.html AWS API Reference> for ListBootstrapActions.--- -- This operation returns paginated results. module Network.AWS.EMR.ListBootstrapActions     (@@ -93,7 +91,7 @@ instance AWSRequest ListBootstrapActions where         type Rs ListBootstrapActions =              ListBootstrapActionsResponse-        request = postJSON eMR+        request = postJSON emr         response           = receiveJSON               (\ s h x ->@@ -101,6 +99,8 @@                    (x .?> "BootstrapActions" .!@ mempty) <*>                      (x .?> "Marker")                      <*> (pure (fromEnum s)))++instance Hashable ListBootstrapActions  instance ToHeaders ListBootstrapActions where         toHeaders
gen/Network/AWS/EMR/ListClusters.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EMR.ListClusters--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -24,8 +24,6 @@ -- call returns a maximum of 50 clusters per call, but returns a marker to -- track the paging of the cluster list across multiple ListClusters calls. ----- /See:/ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_ListClusters.html AWS API Reference> for ListClusters.--- -- This operation returns paginated results. module Network.AWS.EMR.ListClusters     (@@ -112,13 +110,15 @@  instance AWSRequest ListClusters where         type Rs ListClusters = ListClustersResponse-        request = postJSON eMR+        request = postJSON emr         response           = receiveJSON               (\ s h x ->                  ListClustersResponse' <$>                    (x .?> "Marker") <*> (x .?> "Clusters" .!@ mempty)                      <*> (pure (fromEnum s)))++instance Hashable ListClusters  instance ToHeaders ListClusters where         toHeaders
gen/Network/AWS/EMR/ListInstanceGroups.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EMR.ListInstanceGroups--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -20,8 +20,6 @@ -- -- Provides all available details about the instance groups in a cluster. ----- /See:/ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_ListInstanceGroups.html AWS API Reference> for ListInstanceGroups.--- -- This operation returns paginated results. module Network.AWS.EMR.ListInstanceGroups     (@@ -91,7 +89,7 @@ instance AWSRequest ListInstanceGroups where         type Rs ListInstanceGroups =              ListInstanceGroupsResponse-        request = postJSON eMR+        request = postJSON emr         response           = receiveJSON               (\ s h x ->@@ -99,6 +97,8 @@                    (x .?> "Marker") <*>                      (x .?> "InstanceGroups" .!@ mempty)                      <*> (pure (fromEnum s)))++instance Hashable ListInstanceGroups  instance ToHeaders ListInstanceGroups where         toHeaders
gen/Network/AWS/EMR/ListInstances.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EMR.ListInstances--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -24,8 +24,6 @@ -- when instances become available to Amazon EMR to use for jobs, and the -- IP addresses for cluster instances, etc. ----- /See:/ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_ListInstances.html AWS API Reference> for ListInstances.--- -- This operation returns paginated results. module Network.AWS.EMR.ListInstances     (@@ -112,13 +110,15 @@  instance AWSRequest ListInstances where         type Rs ListInstances = ListInstancesResponse-        request = postJSON eMR+        request = postJSON emr         response           = receiveJSON               (\ s h x ->                  ListInstancesResponse' <$>                    (x .?> "Marker") <*> (x .?> "Instances" .!@ mempty)                      <*> (pure (fromEnum s)))++instance Hashable ListInstances  instance ToHeaders ListInstances where         toHeaders
gen/Network/AWS/EMR/ListSteps.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EMR.ListSteps--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -20,8 +20,6 @@ -- -- Provides a list of steps for the cluster. ----- /See:/ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_ListSteps.html AWS API Reference> for ListSteps.--- -- This operation returns paginated results. module Network.AWS.EMR.ListSteps     (@@ -108,13 +106,15 @@  instance AWSRequest ListSteps where         type Rs ListSteps = ListStepsResponse-        request = postJSON eMR+        request = postJSON emr         response           = receiveJSON               (\ s h x ->                  ListStepsResponse' <$>                    (x .?> "Steps" .!@ mempty) <*> (x .?> "Marker") <*>                      (pure (fromEnum s)))++instance Hashable ListSteps  instance ToHeaders ListSteps where         toHeaders
gen/Network/AWS/EMR/ModifyInstanceGroups.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EMR.ModifyInstanceGroups--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -22,8 +22,6 @@ -- settings of an instance group. The input parameters include the new -- target instance count for the group and the instance group ID. The call -- will either succeed or fail atomically.------ /See:/ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_ModifyInstanceGroups.html AWS API Reference> for ModifyInstanceGroups. module Network.AWS.EMR.ModifyInstanceGroups     (     -- * Creating a Request@@ -70,8 +68,10 @@ instance AWSRequest ModifyInstanceGroups where         type Rs ModifyInstanceGroups =              ModifyInstanceGroupsResponse-        request = postJSON eMR+        request = postJSON emr         response = receiveNull ModifyInstanceGroupsResponse'++instance Hashable ModifyInstanceGroups  instance ToHeaders ModifyInstanceGroups where         toHeaders
gen/Network/AWS/EMR/RemoveTags.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EMR.RemoveTags--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -25,8 +25,6 @@ -- -- The following example removes the stack tag with value Prod from a -- cluster:------ /See:/ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_RemoveTags.html AWS API Reference> for RemoveTags. module Network.AWS.EMR.RemoveTags     (     -- * Creating a Request@@ -85,11 +83,13 @@  instance AWSRequest RemoveTags where         type Rs RemoveTags = RemoveTagsResponse-        request = postJSON eMR+        request = postJSON emr         response           = receiveEmpty               (\ s h x ->                  RemoveTagsResponse' <$> (pure (fromEnum s)))++instance Hashable RemoveTags  instance ToHeaders RemoveTags where         toHeaders
gen/Network/AWS/EMR/RunJobFlow.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EMR.RunJobFlow--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -22,11 +22,11 @@ -- run the steps specified. Once the job flow completes, the cluster is -- stopped and the HDFS partition is lost. To prevent loss of data, -- configure the last step of the job flow to store results in Amazon S3.--- If the JobFlowInstancesConfig 'KeepJobFlowAliveWhenNoSteps' parameter is--- set to 'TRUE', the job flow will transition to the WAITING state rather--- than shutting down once the steps have completed.+-- If the < JobFlowInstancesConfig> 'KeepJobFlowAliveWhenNoSteps' parameter+-- is set to 'TRUE', the job flow will transition to the WAITING state+-- rather than shutting down once the steps have completed. ----- For additional protection, you can set the JobFlowInstancesConfig+-- For additional protection, you can set the < JobFlowInstancesConfig> -- 'TerminationProtected' parameter to 'TRUE' to lock the job flow and -- prevent it from being terminated by API call, user intervention, or in -- the event of a job flow error.@@ -44,8 +44,6 @@ -- -- For long running job flows, we recommend that you periodically store -- your results.------ /See:/ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_RunJobFlow.html AWS API Reference> for RunJobFlow. module Network.AWS.EMR.RunJobFlow     (     -- * Creating a Request@@ -84,7 +82,7 @@ import           Network.AWS.Request import           Network.AWS.Response --- | Input to the RunJobFlow operation.+-- | Input to the < RunJobFlow> operation. -- -- /See:/ 'runJobFlow' smart constructor. data RunJobFlow = RunJobFlow'@@ -175,8 +173,8 @@ -- -- If the AMI supports multiple versions of Hadoop (for example, AMI 1.0 -- supports both Hadoop 0.18 and 0.20) you can use the--- JobFlowInstancesConfig 'HadoopVersion' parameter to modify the version--- of Hadoop from the defaults shown above.+-- < JobFlowInstancesConfig> 'HadoopVersion' parameter to modify the+-- version of Hadoop from the defaults shown above. -- -- For details about the AMI versions currently supported by Amazon Elastic -- MapReduce, go to@@ -200,9 +198,10 @@ rjfSteps :: Lens' RunJobFlow [StepConfig] rjfSteps = lens _rjfSteps (\ s a -> s{_rjfSteps = a}) . _Default . _Coerce; --- | An IAM role for the job flow. The EC2 instances of the job flow assume--- this role. The default role is 'EMRJobflowDefault'. In order to use the--- default role, you must have already created it using the CLI.+-- | Also called instance profile and EC2 role. An IAM role for an EMR+-- cluster. The EC2 instances of the cluster assume this role. The default+-- role is 'EMR_EC2_DefaultRole'. In order to use the default role, you+-- must have already created it using the CLI or console. rjfJobFlowRole :: Lens' RunJobFlow (Maybe Text) rjfJobFlowRole = lens _rjfJobFlowRole (\ s a -> s{_rjfJobFlowRole = a}); @@ -297,13 +296,15 @@  instance AWSRequest RunJobFlow where         type Rs RunJobFlow = RunJobFlowResponse-        request = postJSON eMR+        request = postJSON emr         response           = receiveJSON               (\ s h x ->                  RunJobFlowResponse' <$>                    (x .?> "JobFlowId") <*> (pure (fromEnum s))) +instance Hashable RunJobFlow+ instance ToHeaders RunJobFlow where         toHeaders           = const@@ -341,7 +342,7 @@ instance ToQuery RunJobFlow where         toQuery = const mempty --- | The result of the RunJobFlow operation.+-- | The result of the < RunJobFlow> operation. -- -- /See:/ 'runJobFlowResponse' smart constructor. data RunJobFlowResponse = RunJobFlowResponse'
gen/Network/AWS/EMR/SetTerminationProtection.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EMR.SetTerminationProtection--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -38,8 +38,6 @@ -- For more information, go to -- <http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/UsingEMR_TerminationProtection.html Protecting a Job Flow from Termination> -- in the /Amazon Elastic MapReduce Developer\'s Guide./------ /See:/ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_SetTerminationProtection.html AWS API Reference> for SetTerminationProtection. module Network.AWS.EMR.SetTerminationProtection     (     -- * Creating a Request@@ -61,7 +59,7 @@ import           Network.AWS.Request import           Network.AWS.Response --- | The input argument to the TerminationProtection operation.+-- | The input argument to the < TerminationProtection> operation. -- -- /See:/ 'setTerminationProtection' smart constructor. data SetTerminationProtection = SetTerminationProtection'@@ -86,8 +84,8 @@     }  -- | A list of strings that uniquely identify the job flows to protect. This--- identifier is returned by RunJobFlow and can also be obtained from--- DescribeJobFlows .+-- identifier is returned by < RunJobFlow> and can also be obtained from+-- < DescribeJobFlows> . stpJobFlowIds :: Lens' SetTerminationProtection [Text] stpJobFlowIds = lens _stpJobFlowIds (\ s a -> s{_stpJobFlowIds = a}) . _Coerce; @@ -100,9 +98,11 @@ instance AWSRequest SetTerminationProtection where         type Rs SetTerminationProtection =              SetTerminationProtectionResponse-        request = postJSON eMR+        request = postJSON emr         response           = receiveNull SetTerminationProtectionResponse'++instance Hashable SetTerminationProtection  instance ToHeaders SetTerminationProtection where         toHeaders
gen/Network/AWS/EMR/SetVisibleToAllUsers.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EMR.SetVisibleToAllUsers--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -21,11 +21,9 @@ -- Sets whether all AWS Identity and Access Management (IAM) users under -- your account can access the specified job flows. This action works on -- running job flows. You can also set the visibility of a job flow when--- you launch it using the 'VisibleToAllUsers' parameter of RunJobFlow. The--- SetVisibleToAllUsers action can be called only by an IAM user who+-- you launch it using the 'VisibleToAllUsers' parameter of < RunJobFlow>.+-- The SetVisibleToAllUsers action can be called only by an IAM user who -- created the job flow or the AWS account that owns the job flow.------ /See:/ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_SetVisibleToAllUsers.html AWS API Reference> for SetVisibleToAllUsers. module Network.AWS.EMR.SetVisibleToAllUsers     (     -- * Creating a Request@@ -86,8 +84,10 @@ instance AWSRequest SetVisibleToAllUsers where         type Rs SetVisibleToAllUsers =              SetVisibleToAllUsersResponse-        request = postJSON eMR+        request = postJSON emr         response = receiveNull SetVisibleToAllUsersResponse'++instance Hashable SetVisibleToAllUsers  instance ToHeaders SetVisibleToAllUsers where         toHeaders
gen/Network/AWS/EMR/TerminateJobFlows.hs view
@@ -12,7 +12,7 @@  -- | -- Module      : Network.AWS.EMR.TerminateJobFlows--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -28,8 +28,6 @@ -- TerminateJobFlows is asynchronous. Depending on the configuration of the -- job flow, it may take up to 5-20 minutes for the job flow to completely -- terminate and release allocated resources, such as Amazon EC2 instances.------ /See:/ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_TerminateJobFlows.html AWS API Reference> for TerminateJobFlows. module Network.AWS.EMR.TerminateJobFlows     (     -- * Creating a Request@@ -50,7 +48,7 @@ import           Network.AWS.Request import           Network.AWS.Response --- | Input to the TerminateJobFlows operation.+-- | Input to the < TerminateJobFlows> operation. -- -- /See:/ 'terminateJobFlows' smart constructor. newtype TerminateJobFlows = TerminateJobFlows'@@ -75,8 +73,10 @@  instance AWSRequest TerminateJobFlows where         type Rs TerminateJobFlows = TerminateJobFlowsResponse-        request = postJSON eMR+        request = postJSON emr         response = receiveNull TerminateJobFlowsResponse'++instance Hashable TerminateJobFlows  instance ToHeaders TerminateJobFlows where         toHeaders
gen/Network/AWS/EMR/Types.hs view
@@ -4,7 +4,7 @@  -- | -- Module      : Network.AWS.EMR.Types--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -13,7 +13,7 @@ module Network.AWS.EMR.Types     (     -- * Service Configuration-      eMR+      emr      -- * Errors     , _InvalidRequestException@@ -133,6 +133,30 @@     , cClassification     , cProperties +    -- * EBSBlockDevice+    , EBSBlockDevice+    , ebsBlockDevice+    , ebdDevice+    , ebdVolumeSpecification++    -- * EBSBlockDeviceConfig+    , EBSBlockDeviceConfig+    , ebsBlockDeviceConfig+    , ebdcVolumesPerInstance+    , ebdcVolumeSpecification++    -- * EBSConfiguration+    , EBSConfiguration+    , ebsConfiguration+    , ecEBSOptimized+    , ecEBSBlockDeviceConfigs++    -- * EBSVolume+    , EBSVolume+    , ebsVolume+    , evDevice+    , evVolumeId+     -- * EC2InstanceAttributes     , EC2InstanceAttributes     , ec2InstanceAttributes@@ -143,6 +167,7 @@     , eiaIAMInstanceProfile     , eiaEmrManagedMasterSecurityGroup     , eiaEC2SubnetId+    , eiaServiceAccessSecurityGroup     , eiaEC2AvailabilityZone      -- * HadoopJARStepConfig@@ -166,9 +191,11 @@     , instance'     , iStatus     , iPublicDNSName+    , iEBSVolumes     , iEC2InstanceId     , iPrivateIPAddress     , iId+    , iInstanceGroupId     , iPrivateDNSName     , iPublicIPAddress @@ -181,7 +208,9 @@     , igRunningInstanceCount     , igConfigurations     , igInstanceGroupType+    , igEBSBlockDevices     , igInstanceType+    , igEBSOptimized     , igMarket     , igName     , igId@@ -189,6 +218,7 @@     -- * InstanceGroupConfig     , InstanceGroupConfig     , instanceGroupConfig+    , igcEBSConfiguration     , igcBidPrice     , igcConfigurations     , igcMarket@@ -259,6 +289,7 @@     , jficMasterInstanceType     , jficInstanceGroups     , jficKeepJobFlowAliveWhenNoSteps+    , jficServiceAccessSecurityGroup     , jficTerminationProtected     , jficPlacement @@ -335,6 +366,13 @@     , tag     , tagValue     , tagKey++    -- * VolumeSpecification+    , VolumeSpecification+    , volumeSpecification+    , vsIOPS+    , vsVolumeType+    , vsSizeInGB     ) where  import           Network.AWS.EMR.Types.Product@@ -344,14 +382,14 @@ import           Network.AWS.Sign.V4  -- | API version '2009-03-31' of the Amazon Elastic MapReduce SDK configuration.-eMR :: Service-eMR =+emr :: Service+emr =     Service     { _svcAbbrev = "EMR"     , _svcSigner = v4     , _svcPrefix = "elasticmapreduce"     , _svcVersion = "2009-03-31"-    , _svcEndpoint = defaultEndpoint eMR+    , _svcEndpoint = defaultEndpoint emr     , _svcTimeout = Just 70     , _svcCheck = statusSuccess     , _svcError = parseJSONError@@ -366,6 +404,7 @@         , _retryCheck = check         }     check e+      | has (hasStatus 429) e = Just "too_many_requests"       | has (hasCode "ThrottlingException" . hasStatus 400) e =           Just "throttling_exception"       | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"@@ -381,8 +420,7 @@ -- | Indicates that an error occurred while processing the request and that -- the request was not completed. _InternalServerError :: AsError a => Getting (First ServiceError) a ServiceError-_InternalServerError =-    _ServiceError . hasStatus 500 . hasCode "InternalFailure"+_InternalServerError = _ServiceError . hasCode "InternalServerError"  -- | This exception occurs when there is an internal failure in the EMR -- service.
gen/Network/AWS/EMR/Types/Product.hs view
@@ -9,7 +9,7 @@  -- | -- Module      : Network.AWS.EMR.Types.Product--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -97,6 +97,8 @@                      <*> (x .:? "Name")                      <*> (x .:? "Version")) +instance Hashable Application+ instance ToJSON Application where         toJSON Application'{..}           = object@@ -139,6 +141,8 @@ bacScriptBootstrapAction :: Lens' BootstrapActionConfig ScriptBootstrapActionConfig bacScriptBootstrapAction = lens _bacScriptBootstrapAction (\ s a -> s{_bacScriptBootstrapAction = a}); +instance Hashable BootstrapActionConfig+ instance ToJSON BootstrapActionConfig where         toJSON BootstrapActionConfig'{..}           = object@@ -286,7 +290,7 @@ -- all IAM users of that AWS account can view and manage the job flow if -- they have the proper policy permissions set. If this value is 'false', -- only the IAM user that created the cluster can view and manage it. This--- value can be changed using the SetVisibleToAllUsers action.+-- value can be changed using the < SetVisibleToAllUsers> action. cluVisibleToAllUsers :: Lens' Cluster (Maybe Bool) cluVisibleToAllUsers = lens _cluVisibleToAllUsers (\ s a -> s{_cluVisibleToAllUsers = a}); @@ -343,6 +347,8 @@                      <*> (x .: "Name")                      <*> (x .: "Status")) +instance Hashable Cluster+ -- | The reason that the cluster changed to its current state. -- -- /See:/ 'clusterStateChangeReason' smart constructor.@@ -381,6 +387,8 @@                  ClusterStateChangeReason' <$>                    (x .:? "Code") <*> (x .:? "Message")) +instance Hashable ClusterStateChangeReason+ -- | The detailed status of the cluster. -- -- /See:/ 'clusterStatus' smart constructor.@@ -429,6 +437,8 @@                    (x .:? "State") <*> (x .:? "StateChangeReason") <*>                      (x .:? "Timeline")) +instance Hashable ClusterStatus+ -- | The summary description of the cluster. -- -- /See:/ 'clusterSummary' smart constructor.@@ -491,6 +501,8 @@                      <*> (x .:? "Name")                      <*> (x .:? "Id")) +instance Hashable ClusterSummary+ -- | Represents the timeline of the cluster\'s lifecycle. -- -- /See:/ 'clusterTimeline' smart constructor.@@ -539,6 +551,8 @@                      (x .:? "CreationDateTime")                      <*> (x .:? "EndDateTime")) +instance Hashable ClusterTimeline+ -- | An entity describing an executable that runs on a cluster. -- -- /See:/ 'command' smart constructor.@@ -586,6 +600,8 @@                    (x .:? "Args" .!= mempty) <*> (x .:? "ScriptPath")                      <*> (x .:? "Name")) +instance Hashable Command+ -- | Amazon EMR releases 4.x or later. -- -- Specifies a hardware and software configuration of the EMR cluster. This@@ -642,6 +658,8 @@                      (x .:? "Classification")                      <*> (x .:? "Properties" .!= mempty)) +instance Hashable Configuration+ instance ToJSON Configuration where         toJSON Configuration'{..}           = object@@ -650,6 +668,175 @@                   ("Classification" .=) <$> _cClassification,                   ("Properties" .=) <$> _cProperties]) +-- | Configuration of requested EBS block device associated with the instance+-- group.+--+-- /See:/ 'ebsBlockDevice' smart constructor.+data EBSBlockDevice = EBSBlockDevice'+    { _ebdDevice              :: !(Maybe Text)+    , _ebdVolumeSpecification :: !(Maybe VolumeSpecification)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'EBSBlockDevice' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ebdDevice'+--+-- * 'ebdVolumeSpecification'+ebsBlockDevice+    :: EBSBlockDevice+ebsBlockDevice =+    EBSBlockDevice'+    { _ebdDevice = Nothing+    , _ebdVolumeSpecification = Nothing+    }++-- | The device name that is exposed to the instance, such as \/dev\/sdh.+ebdDevice :: Lens' EBSBlockDevice (Maybe Text)+ebdDevice = lens _ebdDevice (\ s a -> s{_ebdDevice = a});++-- | EBS volume specifications such as volume type, IOPS, and size(GiB) that+-- will be requested for the EBS volume attached to an EC2 instance in the+-- cluster.+ebdVolumeSpecification :: Lens' EBSBlockDevice (Maybe VolumeSpecification)+ebdVolumeSpecification = lens _ebdVolumeSpecification (\ s a -> s{_ebdVolumeSpecification = a});++instance FromJSON EBSBlockDevice where+        parseJSON+          = withObject "EBSBlockDevice"+              (\ x ->+                 EBSBlockDevice' <$>+                   (x .:? "Device") <*> (x .:? "VolumeSpecification"))++instance Hashable EBSBlockDevice++-- | Configuration of requested EBS block device associated with the instance+-- group with count of volumes that will be associated to every instance.+--+-- /See:/ 'ebsBlockDeviceConfig' smart constructor.+data EBSBlockDeviceConfig = EBSBlockDeviceConfig'+    { _ebdcVolumesPerInstance  :: !(Maybe Int)+    , _ebdcVolumeSpecification :: !VolumeSpecification+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'EBSBlockDeviceConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ebdcVolumesPerInstance'+--+-- * 'ebdcVolumeSpecification'+ebsBlockDeviceConfig+    :: VolumeSpecification -- ^ 'ebdcVolumeSpecification'+    -> EBSBlockDeviceConfig+ebsBlockDeviceConfig pVolumeSpecification_ =+    EBSBlockDeviceConfig'+    { _ebdcVolumesPerInstance = Nothing+    , _ebdcVolumeSpecification = pVolumeSpecification_+    }++-- | Number of EBS volumes with specific volume configuration, that will be+-- associated with every instance in the instance group+ebdcVolumesPerInstance :: Lens' EBSBlockDeviceConfig (Maybe Int)+ebdcVolumesPerInstance = lens _ebdcVolumesPerInstance (\ s a -> s{_ebdcVolumesPerInstance = a});++-- | EBS volume specifications such as volume type, IOPS, and size(GiB) that+-- will be requested for the EBS volume attached to an EC2 instance in the+-- cluster.+ebdcVolumeSpecification :: Lens' EBSBlockDeviceConfig VolumeSpecification+ebdcVolumeSpecification = lens _ebdcVolumeSpecification (\ s a -> s{_ebdcVolumeSpecification = a});++instance Hashable EBSBlockDeviceConfig++instance ToJSON EBSBlockDeviceConfig where+        toJSON EBSBlockDeviceConfig'{..}+          = object+              (catMaybes+                 [("VolumesPerInstance" .=) <$>+                    _ebdcVolumesPerInstance,+                  Just+                    ("VolumeSpecification" .= _ebdcVolumeSpecification)])++-- | /See:/ 'ebsConfiguration' smart constructor.+data EBSConfiguration = EBSConfiguration'+    { _ecEBSOptimized          :: !(Maybe Bool)+    , _ecEBSBlockDeviceConfigs :: !(Maybe [EBSBlockDeviceConfig])+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'EBSConfiguration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ecEBSOptimized'+--+-- * 'ecEBSBlockDeviceConfigs'+ebsConfiguration+    :: EBSConfiguration+ebsConfiguration =+    EBSConfiguration'+    { _ecEBSOptimized = Nothing+    , _ecEBSBlockDeviceConfigs = Nothing+    }++-- | Undocumented member.+ecEBSOptimized :: Lens' EBSConfiguration (Maybe Bool)+ecEBSOptimized = lens _ecEBSOptimized (\ s a -> s{_ecEBSOptimized = a});++-- | Undocumented member.+ecEBSBlockDeviceConfigs :: Lens' EBSConfiguration [EBSBlockDeviceConfig]+ecEBSBlockDeviceConfigs = lens _ecEBSBlockDeviceConfigs (\ s a -> s{_ecEBSBlockDeviceConfigs = a}) . _Default . _Coerce;++instance Hashable EBSConfiguration++instance ToJSON EBSConfiguration where+        toJSON EBSConfiguration'{..}+          = object+              (catMaybes+                 [("EbsOptimized" .=) <$> _ecEBSOptimized,+                  ("EbsBlockDeviceConfigs" .=) <$>+                    _ecEBSBlockDeviceConfigs])++-- | EBS block device that\'s attached to an EC2 instance.+--+-- /See:/ 'ebsVolume' smart constructor.+data EBSVolume = EBSVolume'+    { _evDevice   :: !(Maybe Text)+    , _evVolumeId :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'EBSVolume' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'evDevice'+--+-- * 'evVolumeId'+ebsVolume+    :: EBSVolume+ebsVolume =+    EBSVolume'+    { _evDevice = Nothing+    , _evVolumeId = Nothing+    }++-- | The device name that is exposed to the instance, such as \/dev\/sdh.+evDevice :: Lens' EBSVolume (Maybe Text)+evDevice = lens _evDevice (\ s a -> s{_evDevice = a});++-- | The volume identifier of the EBS volume.+evVolumeId :: Lens' EBSVolume (Maybe Text)+evVolumeId = lens _evVolumeId (\ s a -> s{_evVolumeId = a});++instance FromJSON EBSVolume where+        parseJSON+          = withObject "EBSVolume"+              (\ x ->+                 EBSVolume' <$>+                   (x .:? "Device") <*> (x .:? "VolumeId"))++instance Hashable EBSVolume+ -- | Provides information about the EC2 instances in a cluster grouped by -- category. For example, key name, subnet ID, IAM instance profile, and so -- on.@@ -663,6 +850,7 @@     , _eiaIAMInstanceProfile             :: !(Maybe Text)     , _eiaEmrManagedMasterSecurityGroup  :: !(Maybe Text)     , _eiaEC2SubnetId                    :: !(Maybe Text)+    , _eiaServiceAccessSecurityGroup     :: !(Maybe Text)     , _eiaEC2AvailabilityZone            :: !(Maybe Text)     } deriving (Eq,Read,Show,Data,Typeable,Generic) @@ -684,6 +872,8 @@ -- -- * 'eiaEC2SubnetId' --+-- * 'eiaServiceAccessSecurityGroup'+-- -- * 'eiaEC2AvailabilityZone' ec2InstanceAttributes     :: EC2InstanceAttributes@@ -696,6 +886,7 @@     , _eiaIAMInstanceProfile = Nothing     , _eiaEmrManagedMasterSecurityGroup = Nothing     , _eiaEC2SubnetId = Nothing+    , _eiaServiceAccessSecurityGroup = Nothing     , _eiaEC2AvailabilityZone = Nothing     } @@ -704,8 +895,7 @@ eiaEC2KeyName :: Lens' EC2InstanceAttributes (Maybe Text) eiaEC2KeyName = lens _eiaEC2KeyName (\ s a -> s{_eiaEC2KeyName = a}); --- | The identifier of the Amazon EC2 security group (managed by Amazon--- Elastic MapReduce) for the slave nodes.+-- | The identifier of the Amazon EC2 security group for the slave nodes. eiaEmrManagedSlaveSecurityGroup :: Lens' EC2InstanceAttributes (Maybe Text) eiaEmrManagedSlaveSecurityGroup = lens _eiaEmrManagedSlaveSecurityGroup (\ s a -> s{_eiaEmrManagedSlaveSecurityGroup = a}); @@ -722,8 +912,7 @@ eiaIAMInstanceProfile :: Lens' EC2InstanceAttributes (Maybe Text) eiaIAMInstanceProfile = lens _eiaIAMInstanceProfile (\ s a -> s{_eiaIAMInstanceProfile = a}); --- | The identifier of the Amazon EC2 security group (managed by Amazon--- Elastic MapReduce) for the master node.+-- | The identifier of the Amazon EC2 security group for the master node. eiaEmrManagedMasterSecurityGroup :: Lens' EC2InstanceAttributes (Maybe Text) eiaEmrManagedMasterSecurityGroup = lens _eiaEmrManagedMasterSecurityGroup (\ s a -> s{_eiaEmrManagedMasterSecurityGroup = a}); @@ -738,6 +927,11 @@ eiaEC2SubnetId :: Lens' EC2InstanceAttributes (Maybe Text) eiaEC2SubnetId = lens _eiaEC2SubnetId (\ s a -> s{_eiaEC2SubnetId = a}); +-- | The identifier of the Amazon EC2 security group for the Amazon EMR+-- service to access clusters in VPC private subnets.+eiaServiceAccessSecurityGroup :: Lens' EC2InstanceAttributes (Maybe Text)+eiaServiceAccessSecurityGroup = lens _eiaServiceAccessSecurityGroup (\ s a -> s{_eiaServiceAccessSecurityGroup = a});+ -- | The Availability Zone in which the cluster will run. eiaEC2AvailabilityZone :: Lens' EC2InstanceAttributes (Maybe Text) eiaEC2AvailabilityZone = lens _eiaEC2AvailabilityZone (\ s a -> s{_eiaEC2AvailabilityZone = a});@@ -756,8 +950,11 @@                      <*> (x .:? "IamInstanceProfile")                      <*> (x .:? "EmrManagedMasterSecurityGroup")                      <*> (x .:? "Ec2SubnetId")+                     <*> (x .:? "ServiceAccessSecurityGroup")                      <*> (x .:? "Ec2AvailabilityZone")) +instance Hashable EC2InstanceAttributes+ -- | A job flow step consisting of a JAR file whose main function will be -- executed. The main function submits a job for Hadoop to execute and -- waits for the job to finish or fail.@@ -811,6 +1008,8 @@ hjscJAR :: Lens' HadoopJARStepConfig Text hjscJAR = lens _hjscJAR (\ s a -> s{_hjscJAR = a}); +instance Hashable HadoopJARStepConfig+ instance ToJSON HadoopJARStepConfig where         toJSON HadoopJARStepConfig'{..}           = object@@ -881,15 +1080,19 @@                      (x .:? "MainClass")                      <*> (x .:? "Properties" .!= mempty)) +instance Hashable HadoopStepConfig+ -- | Represents an EC2 instance provisioned as part of cluster. -- -- /See:/ 'instance'' smart constructor. data Instance = Instance'     { _iStatus           :: !(Maybe InstanceStatus)     , _iPublicDNSName    :: !(Maybe Text)+    , _iEBSVolumes       :: !(Maybe [EBSVolume])     , _iEC2InstanceId    :: !(Maybe Text)     , _iPrivateIPAddress :: !(Maybe Text)     , _iId               :: !(Maybe Text)+    , _iInstanceGroupId  :: !(Maybe Text)     , _iPrivateDNSName   :: !(Maybe Text)     , _iPublicIPAddress  :: !(Maybe Text)     } deriving (Eq,Read,Show,Data,Typeable,Generic)@@ -902,12 +1105,16 @@ -- -- * 'iPublicDNSName' --+-- * 'iEBSVolumes'+-- -- * 'iEC2InstanceId' -- -- * 'iPrivateIPAddress' -- -- * 'iId' --+-- * 'iInstanceGroupId'+-- -- * 'iPrivateDNSName' -- -- * 'iPublicIPAddress'@@ -917,9 +1124,11 @@     Instance'     { _iStatus = Nothing     , _iPublicDNSName = Nothing+    , _iEBSVolumes = Nothing     , _iEC2InstanceId = Nothing     , _iPrivateIPAddress = Nothing     , _iId = Nothing+    , _iInstanceGroupId = Nothing     , _iPrivateDNSName = Nothing     , _iPublicIPAddress = Nothing     }@@ -932,6 +1141,10 @@ iPublicDNSName :: Lens' Instance (Maybe Text) iPublicDNSName = lens _iPublicDNSName (\ s a -> s{_iPublicDNSName = a}); +-- | The list of EBS volumes that are attached to this instance.+iEBSVolumes :: Lens' Instance [EBSVolume]+iEBSVolumes = lens _iEBSVolumes (\ s a -> s{_iEBSVolumes = a}) . _Default . _Coerce;+ -- | The unique identifier of the instance in Amazon EC2. iEC2InstanceId :: Lens' Instance (Maybe Text) iEC2InstanceId = lens _iEC2InstanceId (\ s a -> s{_iEC2InstanceId = a});@@ -944,6 +1157,10 @@ iId :: Lens' Instance (Maybe Text) iId = lens _iId (\ s a -> s{_iId = a}); +-- | The identifier of the instance group to which this instance belongs.+iInstanceGroupId :: Lens' Instance (Maybe Text)+iInstanceGroupId = lens _iInstanceGroupId (\ s a -> s{_iInstanceGroupId = a});+ -- | The private DNS name of the instance. iPrivateDNSName :: Lens' Instance (Maybe Text) iPrivateDNSName = lens _iPrivateDNSName (\ s a -> s{_iPrivateDNSName = a});@@ -958,12 +1175,16 @@               (\ x ->                  Instance' <$>                    (x .:? "Status") <*> (x .:? "PublicDnsName") <*>-                     (x .:? "Ec2InstanceId")+                     (x .:? "EbsVolumes" .!= mempty)+                     <*> (x .:? "Ec2InstanceId")                      <*> (x .:? "PrivateIpAddress")                      <*> (x .:? "Id")+                     <*> (x .:? "InstanceGroupId")                      <*> (x .:? "PrivateDnsName")                      <*> (x .:? "PublicIpAddress")) +instance Hashable Instance+ -- | This entity represents an instance group, which is a group of instances -- that have common purpose. For example, CORE instance group is used for -- HDFS.@@ -976,7 +1197,9 @@     , _igRunningInstanceCount   :: !(Maybe Int)     , _igConfigurations         :: !(Maybe [Configuration])     , _igInstanceGroupType      :: !(Maybe InstanceGroupType)+    , _igEBSBlockDevices        :: !(Maybe [EBSBlockDevice])     , _igInstanceType           :: !(Maybe Text)+    , _igEBSOptimized           :: !(Maybe Bool)     , _igMarket                 :: !(Maybe MarketType)     , _igName                   :: !(Maybe Text)     , _igId                     :: !(Maybe Text)@@ -998,8 +1221,12 @@ -- -- * 'igInstanceGroupType' --+-- * 'igEBSBlockDevices'+-- -- * 'igInstanceType' --+-- * 'igEBSOptimized'+-- -- * 'igMarket' -- -- * 'igName'@@ -1015,7 +1242,9 @@     , _igRunningInstanceCount = Nothing     , _igConfigurations = Nothing     , _igInstanceGroupType = Nothing+    , _igEBSBlockDevices = Nothing     , _igInstanceType = Nothing+    , _igEBSOptimized = Nothing     , _igMarket = Nothing     , _igName = Nothing     , _igId = Nothing@@ -1050,10 +1279,20 @@ igInstanceGroupType :: Lens' InstanceGroup (Maybe InstanceGroupType) igInstanceGroupType = lens _igInstanceGroupType (\ s a -> s{_igInstanceGroupType = a}); +-- | The EBS block devices that are mapped to this instance group.+igEBSBlockDevices :: Lens' InstanceGroup [EBSBlockDevice]+igEBSBlockDevices = lens _igEBSBlockDevices (\ s a -> s{_igEBSBlockDevices = a}) . _Default . _Coerce;+ -- | The EC2 instance type for all instances in the instance group. igInstanceType :: Lens' InstanceGroup (Maybe Text) igInstanceType = lens _igInstanceType (\ s a -> s{_igInstanceType = a}); +-- | If the instance group is EBS-optimized. An Amazon EBS–optimized instance+-- uses an optimized configuration stack and provides additional, dedicated+-- capacity for Amazon EBS I\/O.+igEBSOptimized :: Lens' InstanceGroup (Maybe Bool)+igEBSOptimized = lens _igEBSOptimized (\ s a -> s{_igEBSOptimized = a});+ -- | The marketplace to provision instances for this group. Valid values are -- ON_DEMAND or SPOT. igMarket :: Lens' InstanceGroup (Maybe MarketType)@@ -1077,28 +1316,35 @@                      <*> (x .:? "RunningInstanceCount")                      <*> (x .:? "Configurations" .!= mempty)                      <*> (x .:? "InstanceGroupType")+                     <*> (x .:? "EbsBlockDevices" .!= mempty)                      <*> (x .:? "InstanceType")+                     <*> (x .:? "EbsOptimized")                      <*> (x .:? "Market")                      <*> (x .:? "Name")                      <*> (x .:? "Id")) +instance Hashable InstanceGroup+ -- | Configuration defining a new instance group. -- -- /See:/ 'instanceGroupConfig' smart constructor. data InstanceGroupConfig = InstanceGroupConfig'-    { _igcBidPrice       :: !(Maybe Text)-    , _igcConfigurations :: !(Maybe [Configuration])-    , _igcMarket         :: !(Maybe MarketType)-    , _igcName           :: !(Maybe Text)-    , _igcInstanceRole   :: !InstanceRoleType-    , _igcInstanceType   :: !Text-    , _igcInstanceCount  :: !Int+    { _igcEBSConfiguration :: !(Maybe EBSConfiguration)+    , _igcBidPrice         :: !(Maybe Text)+    , _igcConfigurations   :: !(Maybe [Configuration])+    , _igcMarket           :: !(Maybe MarketType)+    , _igcName             :: !(Maybe Text)+    , _igcInstanceRole     :: !InstanceRoleType+    , _igcInstanceType     :: !Text+    , _igcInstanceCount    :: !Int     } deriving (Eq,Read,Show,Data,Typeable,Generic)  -- | Creates a value of 'InstanceGroupConfig' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: --+-- * 'igcEBSConfiguration'+-- -- * 'igcBidPrice' -- -- * 'igcConfigurations'@@ -1119,7 +1365,8 @@     -> InstanceGroupConfig instanceGroupConfig pInstanceRole_ pInstanceType_ pInstanceCount_ =     InstanceGroupConfig'-    { _igcBidPrice = Nothing+    { _igcEBSConfiguration = Nothing+    , _igcBidPrice = Nothing     , _igcConfigurations = Nothing     , _igcMarket = Nothing     , _igcName = Nothing@@ -1128,6 +1375,11 @@     , _igcInstanceCount = pInstanceCount_     } +-- | EBS configurations that will be attached to each Amazon EC2 instance in+-- the instance group.+igcEBSConfiguration :: Lens' InstanceGroupConfig (Maybe EBSConfiguration)+igcEBSConfiguration = lens _igcEBSConfiguration (\ s a -> s{_igcEBSConfiguration = a});+ -- | Bid price for each Amazon EC2 instance in the instance group when -- launching nodes as Spot Instances, expressed in USD. igcBidPrice :: Lens' InstanceGroupConfig (Maybe Text)@@ -1161,11 +1413,14 @@ igcInstanceCount :: Lens' InstanceGroupConfig Int igcInstanceCount = lens _igcInstanceCount (\ s a -> s{_igcInstanceCount = a}); +instance Hashable InstanceGroupConfig+ instance ToJSON InstanceGroupConfig where         toJSON InstanceGroupConfig'{..}           = object               (catMaybes-                 [("BidPrice" .=) <$> _igcBidPrice,+                 [("EbsConfiguration" .=) <$> _igcEBSConfiguration,+                  ("BidPrice" .=) <$> _igcBidPrice,                   ("Configurations" .=) <$> _igcConfigurations,                   ("Market" .=) <$> _igcMarket,                   ("Name" .=) <$> _igcName,@@ -1215,6 +1470,8 @@ igmcInstanceGroupId :: Lens' InstanceGroupModifyConfig Text igmcInstanceGroupId = lens _igmcInstanceGroupId (\ s a -> s{_igmcInstanceGroupId = a}); +instance Hashable InstanceGroupModifyConfig+ instance ToJSON InstanceGroupModifyConfig where         toJSON InstanceGroupModifyConfig'{..}           = object@@ -1263,6 +1520,8 @@                  InstanceGroupStateChangeReason' <$>                    (x .:? "Code") <*> (x .:? "Message")) +instance Hashable InstanceGroupStateChangeReason+ -- | The details of the instance group status. -- -- /See:/ 'instanceGroupStatus' smart constructor.@@ -1310,6 +1569,8 @@                    (x .:? "State") <*> (x .:? "StateChangeReason") <*>                      (x .:? "Timeline")) +instance Hashable InstanceGroupStatus+ -- | The timeline of the instance group lifecycle. -- -- /See:/ 'instanceGroupTimeline' smart constructor.@@ -1358,6 +1619,8 @@                      (x .:? "CreationDateTime")                      <*> (x .:? "EndDateTime")) +instance Hashable InstanceGroupTimeline+ -- | The details of the status change reason for the instance. -- -- /See:/ 'instanceStateChangeReason' smart constructor.@@ -1396,6 +1659,8 @@                  InstanceStateChangeReason' <$>                    (x .:? "Code") <*> (x .:? "Message")) +instance Hashable InstanceStateChangeReason+ -- | The instance status details. -- -- /See:/ 'instanceStatus' smart constructor.@@ -1443,6 +1708,8 @@                    (x .:? "State") <*> (x .:? "StateChangeReason") <*>                      (x .:? "Timeline")) +instance Hashable InstanceStatus+ -- | The timeline of the instance lifecycle. -- -- /See:/ 'instanceTimeline' smart constructor.@@ -1491,6 +1758,8 @@                      (x .:? "CreationDateTime")                      <*> (x .:? "EndDateTime")) +instance Hashable InstanceTimeline+ -- | A description of the Amazon EC2 instance running the job flow. A valid -- JobFlowInstancesConfig must contain at least InstanceGroups, which is -- the recommended configuration. However, a valid alternative is to have@@ -1511,6 +1780,7 @@     , _jficMasterInstanceType             :: !(Maybe Text)     , _jficInstanceGroups                 :: !(Maybe [InstanceGroupConfig])     , _jficKeepJobFlowAliveWhenNoSteps    :: !(Maybe Bool)+    , _jficServiceAccessSecurityGroup     :: !(Maybe Text)     , _jficTerminationProtected           :: !(Maybe Bool)     , _jficPlacement                      :: !(Maybe PlacementType)     } deriving (Eq,Read,Show,Data,Typeable,Generic)@@ -1543,6 +1813,8 @@ -- -- * 'jficKeepJobFlowAliveWhenNoSteps' --+-- * 'jficServiceAccessSecurityGroup'+-- -- * 'jficTerminationProtected' -- -- * 'jficPlacement'@@ -1562,6 +1834,7 @@     , _jficMasterInstanceType = Nothing     , _jficInstanceGroups = Nothing     , _jficKeepJobFlowAliveWhenNoSteps = Nothing+    , _jficServiceAccessSecurityGroup = Nothing     , _jficTerminationProtected = Nothing     , _jficPlacement = Nothing     }@@ -1579,8 +1852,7 @@ jficInstanceCount :: Lens' JobFlowInstancesConfig (Maybe Int) jficInstanceCount = lens _jficInstanceCount (\ s a -> s{_jficInstanceCount = a}); --- | The identifier of the Amazon EC2 security group (managed by Amazon--- ElasticMapReduce) for the slave nodes.+-- | The identifier of the Amazon EC2 security group for the slave nodes. jficEmrManagedSlaveSecurityGroup :: Lens' JobFlowInstancesConfig (Maybe Text) jficEmrManagedSlaveSecurityGroup = lens _jficEmrManagedSlaveSecurityGroup (\ s a -> s{_jficEmrManagedSlaveSecurityGroup = a}); @@ -1601,8 +1873,7 @@ jficAdditionalMasterSecurityGroups :: Lens' JobFlowInstancesConfig [Text] jficAdditionalMasterSecurityGroups = lens _jficAdditionalMasterSecurityGroups (\ s a -> s{_jficAdditionalMasterSecurityGroups = a}) . _Default . _Coerce; --- | The identifier of the Amazon EC2 security group (managed by Amazon--- ElasticMapReduce) for the master node.+-- | The identifier of the Amazon EC2 security group for the master node. jficEmrManagedMasterSecurityGroup :: Lens' JobFlowInstancesConfig (Maybe Text) jficEmrManagedMasterSecurityGroup = lens _jficEmrManagedMasterSecurityGroup (\ s a -> s{_jficEmrManagedMasterSecurityGroup = a}); @@ -1631,6 +1902,11 @@ jficKeepJobFlowAliveWhenNoSteps :: Lens' JobFlowInstancesConfig (Maybe Bool) jficKeepJobFlowAliveWhenNoSteps = lens _jficKeepJobFlowAliveWhenNoSteps (\ s a -> s{_jficKeepJobFlowAliveWhenNoSteps = a}); +-- | The identifier of the Amazon EC2 security group for the Amazon EMR+-- service to access clusters in VPC private subnets.+jficServiceAccessSecurityGroup :: Lens' JobFlowInstancesConfig (Maybe Text)+jficServiceAccessSecurityGroup = lens _jficServiceAccessSecurityGroup (\ s a -> s{_jficServiceAccessSecurityGroup = a});+ -- | Specifies whether to lock the job flow to prevent the Amazon EC2 -- instances from being terminated by API call, user intervention, or in -- the event of a job flow error.@@ -1641,6 +1917,8 @@ jficPlacement :: Lens' JobFlowInstancesConfig (Maybe PlacementType) jficPlacement = lens _jficPlacement (\ s a -> s{_jficPlacement = a}); +instance Hashable JobFlowInstancesConfig+ instance ToJSON JobFlowInstancesConfig where         toJSON JobFlowInstancesConfig'{..}           = object@@ -1663,6 +1941,8 @@                   ("InstanceGroups" .=) <$> _jficInstanceGroups,                   ("KeepJobFlowAliveWhenNoSteps" .=) <$>                     _jficKeepJobFlowAliveWhenNoSteps,+                  ("ServiceAccessSecurityGroup" .=) <$>+                    _jficServiceAccessSecurityGroup,                   ("TerminationProtected" .=) <$>                     _jficTerminationProtected,                   ("Placement" .=) <$> _jficPlacement])@@ -1698,6 +1978,8 @@ kvKey :: Lens' KeyValue (Maybe Text) kvKey = lens _kvKey (\ s a -> s{_kvKey = a}); +instance Hashable KeyValue+ instance ToJSON KeyValue where         toJSON KeyValue'{..}           = object@@ -1728,6 +2010,8 @@ ptAvailabilityZone :: Lens' PlacementType Text ptAvailabilityZone = lens _ptAvailabilityZone (\ s a -> s{_ptAvailabilityZone = a}); +instance Hashable PlacementType+ instance ToJSON PlacementType where         toJSON PlacementType'{..}           = object@@ -1767,6 +2051,8 @@ sbacPath :: Lens' ScriptBootstrapActionConfig Text sbacPath = lens _sbacPath (\ s a -> s{_sbacPath = a}); +instance Hashable ScriptBootstrapActionConfig+ instance ToJSON ScriptBootstrapActionConfig where         toJSON ScriptBootstrapActionConfig'{..}           = object@@ -1840,6 +2126,8 @@                      <*> (x .:? "Name")                      <*> (x .:? "Id")) +instance Hashable Step+ -- | Specification of a job flow step. -- -- /See:/ 'stepConfig' smart constructor.@@ -1881,6 +2169,8 @@ scHadoopJARStep :: Lens' StepConfig HadoopJARStepConfig scHadoopJARStep = lens _scHadoopJARStep (\ s a -> s{_scHadoopJARStep = a}); +instance Hashable StepConfig+ instance ToJSON StepConfig where         toJSON StepConfig'{..}           = object@@ -1928,6 +2218,8 @@                  StepStateChangeReason' <$>                    (x .:? "Code") <*> (x .:? "Message")) +instance Hashable StepStateChangeReason+ -- | The execution status details of the cluster step. -- -- /See:/ 'stepStatus' smart constructor.@@ -1975,6 +2267,8 @@                    (x .:? "State") <*> (x .:? "StateChangeReason") <*>                      (x .:? "Timeline")) +instance Hashable StepStatus+ -- | The summary of the cluster step. -- -- /See:/ 'stepSummary' smart constructor.@@ -2041,6 +2335,8 @@                      <*> (x .:? "Name")                      <*> (x .:? "Id")) +instance Hashable StepSummary+ -- | The timeline of the cluster step lifecycle. -- -- /See:/ 'stepTimeline' smart constructor.@@ -2088,6 +2384,8 @@                    (x .:? "CreationDateTime") <*> (x .:? "EndDateTime")                      <*> (x .:? "StartDateTime")) +instance Hashable StepTimeline+ -- | The list of supported product configurations which allow user-supplied -- arguments. EMR accepts these arguments and forwards them to the -- corresponding installation script as bootstrap action arguments.@@ -2121,6 +2419,8 @@ spcName :: Lens' SupportedProductConfig (Maybe Text) spcName = lens _spcName (\ s a -> s{_spcName = a}); +instance Hashable SupportedProductConfig+ instance ToJSON SupportedProductConfig where         toJSON SupportedProductConfig'{..}           = object@@ -2171,8 +2471,73 @@           = withObject "Tag"               (\ x -> Tag' <$> (x .:? "Value") <*> (x .:? "Key")) +instance Hashable Tag+ instance ToJSON Tag where         toJSON Tag'{..}           = object               (catMaybes                  [("Value" .=) <$> _tagValue, ("Key" .=) <$> _tagKey])++-- | EBS volume specifications such as volume type, IOPS, and size(GiB) that+-- will be requested for the EBS volume attached to an EC2 instance in the+-- cluster.+--+-- /See:/ 'volumeSpecification' smart constructor.+data VolumeSpecification = VolumeSpecification'+    { _vsIOPS       :: !(Maybe Int)+    , _vsVolumeType :: !Text+    , _vsSizeInGB   :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'VolumeSpecification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'vsIOPS'+--+-- * 'vsVolumeType'+--+-- * 'vsSizeInGB'+volumeSpecification+    :: Text -- ^ 'vsVolumeType'+    -> Int -- ^ 'vsSizeInGB'+    -> VolumeSpecification+volumeSpecification pVolumeType_ pSizeInGB_ =+    VolumeSpecification'+    { _vsIOPS = Nothing+    , _vsVolumeType = pVolumeType_+    , _vsSizeInGB = pSizeInGB_+    }++-- | The number of I\/O operations per second (IOPS) that the volume+-- supports.+vsIOPS :: Lens' VolumeSpecification (Maybe Int)+vsIOPS = lens _vsIOPS (\ s a -> s{_vsIOPS = a});++-- | The volume type. Volume types supported are gp2, io1, standard.+vsVolumeType :: Lens' VolumeSpecification Text+vsVolumeType = lens _vsVolumeType (\ s a -> s{_vsVolumeType = a});++-- | The volume size, in gibibytes (GiB). This can be a number from 1 – 1024.+-- If the volume type is EBS-optimized, the minimum value is 10.+vsSizeInGB :: Lens' VolumeSpecification Int+vsSizeInGB = lens _vsSizeInGB (\ s a -> s{_vsSizeInGB = a});++instance FromJSON VolumeSpecification where+        parseJSON+          = withObject "VolumeSpecification"+              (\ x ->+                 VolumeSpecification' <$>+                   (x .:? "Iops") <*> (x .: "VolumeType") <*>+                     (x .: "SizeInGB"))++instance Hashable VolumeSpecification++instance ToJSON VolumeSpecification where+        toJSON VolumeSpecification'{..}+          = object+              (catMaybes+                 [("Iops" .=) <$> _vsIOPS,+                  Just ("VolumeType" .= _vsVolumeType),+                  Just ("SizeInGB" .= _vsSizeInGB)])
gen/Network/AWS/EMR/Types/Sum.hs view
@@ -9,7 +9,7 @@  -- | -- Module      : Network.AWS.EMR.Types.Sum--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated
gen/Network/AWS/EMR/Waiters.hs view
@@ -7,7 +7,7 @@  -- | -- Module      : Network.AWS.EMR.Waiters--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated
test/Main.hs view
@@ -2,7 +2,7 @@  -- | -- Module      : Main--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated
test/Test/AWS/EMR.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE OverloadedStrings #-}  -- Module      : Test.AWS.EMR--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : This Source Code Form is subject to the terms of --               the Mozilla Public License, v. 2.0. --               A copy of the MPL can be found in the LICENSE file or
test/Test/AWS/EMR/Internal.hs view
@@ -2,7 +2,7 @@ {-# OPTIONS_GHC -fno-warn-unused-imports #-}  -- Module      : Test.AWS.EMR.Internal--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : This Source Code Form is subject to the terms of --               the Mozilla Public License, v. 2.0. --               A copy of the MPL can be found in the LICENSE file or
test/Test/AWS/Gen/EMR.hs view
@@ -5,7 +5,7 @@  -- | -- Module      : Test.AWS.Gen.EMR--- Copyright   : (c) 2013-2015 Brendan Hay+-- Copyright   : (c) 2013-2016 Brendan Hay -- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com> -- Stability   : auto-generated@@ -218,110 +218,110 @@ testRunJobFlowResponse = res     "RunJobFlowResponse"     "fixture/RunJobFlowResponse.proto"-    eMR+    emr     (Proxy :: Proxy RunJobFlow)  testSetVisibleToAllUsersResponse :: SetVisibleToAllUsersResponse -> TestTree testSetVisibleToAllUsersResponse = res     "SetVisibleToAllUsersResponse"     "fixture/SetVisibleToAllUsersResponse.proto"-    eMR+    emr     (Proxy :: Proxy SetVisibleToAllUsers)  testTerminateJobFlowsResponse :: TerminateJobFlowsResponse -> TestTree testTerminateJobFlowsResponse = res     "TerminateJobFlowsResponse"     "fixture/TerminateJobFlowsResponse.proto"-    eMR+    emr     (Proxy :: Proxy TerminateJobFlows)  testDescribeStepResponse :: DescribeStepResponse -> TestTree testDescribeStepResponse = res     "DescribeStepResponse"     "fixture/DescribeStepResponse.proto"-    eMR+    emr     (Proxy :: Proxy DescribeStep)  testRemoveTagsResponse :: RemoveTagsResponse -> TestTree testRemoveTagsResponse = res     "RemoveTagsResponse"     "fixture/RemoveTagsResponse.proto"-    eMR+    emr     (Proxy :: Proxy RemoveTags)  testDescribeClusterResponse :: DescribeClusterResponse -> TestTree testDescribeClusterResponse = res     "DescribeClusterResponse"     "fixture/DescribeClusterResponse.proto"-    eMR+    emr     (Proxy :: Proxy DescribeCluster)  testSetTerminationProtectionResponse :: SetTerminationProtectionResponse -> TestTree testSetTerminationProtectionResponse = res     "SetTerminationProtectionResponse"     "fixture/SetTerminationProtectionResponse.proto"-    eMR+    emr     (Proxy :: Proxy SetTerminationProtection)  testAddJobFlowStepsResponse :: AddJobFlowStepsResponse -> TestTree testAddJobFlowStepsResponse = res     "AddJobFlowStepsResponse"     "fixture/AddJobFlowStepsResponse.proto"-    eMR+    emr     (Proxy :: Proxy AddJobFlowSteps)  testModifyInstanceGroupsResponse :: ModifyInstanceGroupsResponse -> TestTree testModifyInstanceGroupsResponse = res     "ModifyInstanceGroupsResponse"     "fixture/ModifyInstanceGroupsResponse.proto"-    eMR+    emr     (Proxy :: Proxy ModifyInstanceGroups)  testListStepsResponse :: ListStepsResponse -> TestTree testListStepsResponse = res     "ListStepsResponse"     "fixture/ListStepsResponse.proto"-    eMR+    emr     (Proxy :: Proxy ListSteps)  testAddInstanceGroupsResponse :: AddInstanceGroupsResponse -> TestTree testAddInstanceGroupsResponse = res     "AddInstanceGroupsResponse"     "fixture/AddInstanceGroupsResponse.proto"-    eMR+    emr     (Proxy :: Proxy AddInstanceGroups)  testListInstanceGroupsResponse :: ListInstanceGroupsResponse -> TestTree testListInstanceGroupsResponse = res     "ListInstanceGroupsResponse"     "fixture/ListInstanceGroupsResponse.proto"-    eMR+    emr     (Proxy :: Proxy ListInstanceGroups)  testListBootstrapActionsResponse :: ListBootstrapActionsResponse -> TestTree testListBootstrapActionsResponse = res     "ListBootstrapActionsResponse"     "fixture/ListBootstrapActionsResponse.proto"-    eMR+    emr     (Proxy :: Proxy ListBootstrapActions)  testAddTagsResponse :: AddTagsResponse -> TestTree testAddTagsResponse = res     "AddTagsResponse"     "fixture/AddTagsResponse.proto"-    eMR+    emr     (Proxy :: Proxy AddTags)  testListInstancesResponse :: ListInstancesResponse -> TestTree testListInstancesResponse = res     "ListInstancesResponse"     "fixture/ListInstancesResponse.proto"-    eMR+    emr     (Proxy :: Proxy ListInstances)  testListClustersResponse :: ListClustersResponse -> TestTree testListClustersResponse = res     "ListClustersResponse"     "fixture/ListClustersResponse.proto"-    eMR+    emr     (Proxy :: Proxy ListClusters)