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 +2/−2
- amazonka-emr.cabal +7/−7
- gen/Network/AWS/EMR.hs +40/−4
- gen/Network/AWS/EMR/AddInstanceGroups.hs +4/−4
- gen/Network/AWS/EMR/AddJobFlowSteps.hs +8/−8
- gen/Network/AWS/EMR/AddTags.hs +4/−4
- gen/Network/AWS/EMR/DescribeCluster.hs +5/−5
- gen/Network/AWS/EMR/DescribeStep.hs +4/−4
- gen/Network/AWS/EMR/ListBootstrapActions.hs +4/−4
- gen/Network/AWS/EMR/ListClusters.hs +4/−4
- gen/Network/AWS/EMR/ListInstanceGroups.hs +4/−4
- gen/Network/AWS/EMR/ListInstances.hs +4/−4
- gen/Network/AWS/EMR/ListSteps.hs +4/−4
- gen/Network/AWS/EMR/ModifyInstanceGroups.hs +4/−4
- gen/Network/AWS/EMR/RemoveTags.hs +4/−4
- gen/Network/AWS/EMR/RunJobFlow.hs +16/−15
- gen/Network/AWS/EMR/SetTerminationProtection.hs +7/−7
- gen/Network/AWS/EMR/SetVisibleToAllUsers.hs +6/−6
- gen/Network/AWS/EMR/TerminateJobFlows.hs +5/−5
- gen/Network/AWS/EMR/Types.hs +45/−7
- gen/Network/AWS/EMR/Types/Product.hs +385/−20
- gen/Network/AWS/EMR/Types/Sum.hs +1/−1
- gen/Network/AWS/EMR/Waiters.hs +1/−1
- test/Main.hs +1/−1
- test/Test/AWS/EMR.hs +1/−1
- test/Test/AWS/EMR/Internal.hs +1/−1
- test/Test/AWS/Gen/EMR.hs +17/−17
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)