amazonka-emr 0.3.6 → 1.0.0
raw patch · 28 files changed
+5846/−5717 lines, 28 filesdep +amazonka-emrdep +amazonka-testdep +bytestringdep ~amazonka-coredep ~basePVP ok
version bump matches the API change (PVP)
Dependencies added: amazonka-emr, amazonka-test, bytestring, lens, tasty, tasty-hunit, text, time, unordered-containers
Dependency ranges changed: amazonka-core, base
API changes (from Hackage documentation)
- Network.AWS.EMR.AddInstanceGroups: aigrInstanceGroupIds :: Lens' AddInstanceGroupsResponse [Text]
- Network.AWS.EMR.AddInstanceGroups: aigrJobFlowId :: Lens' AddInstanceGroupsResponse (Maybe Text)
- Network.AWS.EMR.AddInstanceGroups: instance FromJSON AddInstanceGroupsResponse
- Network.AWS.EMR.AddInstanceGroups: instance Ord AddInstanceGroupsResponse
- Network.AWS.EMR.AddJobFlowSteps: ajfsrStepIds :: Lens' AddJobFlowStepsResponse [Text]
- Network.AWS.EMR.AddJobFlowSteps: instance FromJSON AddJobFlowStepsResponse
- Network.AWS.EMR.AddJobFlowSteps: instance IsList AddJobFlowStepsResponse
- Network.AWS.EMR.AddJobFlowSteps: instance Monoid AddJobFlowStepsResponse
- Network.AWS.EMR.AddJobFlowSteps: instance Ord AddJobFlowStepsResponse
- Network.AWS.EMR.AddJobFlowSteps: instance Semigroup AddJobFlowStepsResponse
- Network.AWS.EMR.AddTags: instance Ord AddTagsResponse
- Network.AWS.EMR.DescribeCluster: dcrCluster :: Lens' DescribeClusterResponse Cluster
- Network.AWS.EMR.DescribeCluster: instance FromJSON DescribeClusterResponse
- Network.AWS.EMR.DescribeCluster: instance IsString DescribeCluster
- Network.AWS.EMR.DescribeCluster: instance Monoid DescribeCluster
- Network.AWS.EMR.DescribeCluster: instance Ord DescribeCluster
- Network.AWS.EMR.DescribeJobFlows: data DescribeJobFlows
- Network.AWS.EMR.DescribeJobFlows: data DescribeJobFlowsResponse
- Network.AWS.EMR.DescribeJobFlows: describeJobFlows :: DescribeJobFlows
- Network.AWS.EMR.DescribeJobFlows: describeJobFlowsResponse :: DescribeJobFlowsResponse
- Network.AWS.EMR.DescribeJobFlows: djfCreatedAfter :: Lens' DescribeJobFlows (Maybe UTCTime)
- Network.AWS.EMR.DescribeJobFlows: djfCreatedBefore :: Lens' DescribeJobFlows (Maybe UTCTime)
- Network.AWS.EMR.DescribeJobFlows: djfJobFlowIds :: Lens' DescribeJobFlows [Text]
- Network.AWS.EMR.DescribeJobFlows: djfJobFlowStates :: Lens' DescribeJobFlows [JobFlowExecutionState]
- Network.AWS.EMR.DescribeJobFlows: djfrJobFlows :: Lens' DescribeJobFlowsResponse [JobFlowDetail]
- Network.AWS.EMR.DescribeJobFlows: instance AWSRequest DescribeJobFlows
- Network.AWS.EMR.DescribeJobFlows: instance Eq DescribeJobFlows
- Network.AWS.EMR.DescribeJobFlows: instance Eq DescribeJobFlowsResponse
- Network.AWS.EMR.DescribeJobFlows: instance FromJSON DescribeJobFlowsResponse
- Network.AWS.EMR.DescribeJobFlows: instance IsList DescribeJobFlowsResponse
- Network.AWS.EMR.DescribeJobFlows: instance Monoid DescribeJobFlowsResponse
- Network.AWS.EMR.DescribeJobFlows: instance Read DescribeJobFlows
- Network.AWS.EMR.DescribeJobFlows: instance Read DescribeJobFlowsResponse
- Network.AWS.EMR.DescribeJobFlows: instance Semigroup DescribeJobFlowsResponse
- Network.AWS.EMR.DescribeJobFlows: instance Show DescribeJobFlows
- Network.AWS.EMR.DescribeJobFlows: instance Show DescribeJobFlowsResponse
- Network.AWS.EMR.DescribeJobFlows: instance ToHeaders DescribeJobFlows
- Network.AWS.EMR.DescribeJobFlows: instance ToJSON DescribeJobFlows
- Network.AWS.EMR.DescribeJobFlows: instance ToPath DescribeJobFlows
- Network.AWS.EMR.DescribeJobFlows: instance ToQuery DescribeJobFlows
- Network.AWS.EMR.DescribeStep: dsrStep :: Lens' DescribeStepResponse (Maybe Step)
- Network.AWS.EMR.DescribeStep: instance FromJSON DescribeStepResponse
- Network.AWS.EMR.DescribeStep: instance Ord DescribeStep
- Network.AWS.EMR.ListBootstrapActions: instance FromJSON ListBootstrapActionsResponse
- Network.AWS.EMR.ListBootstrapActions: instance Ord ListBootstrapActions
- Network.AWS.EMR.ListBootstrapActions: lbarBootstrapActions :: Lens' ListBootstrapActionsResponse [Command]
- Network.AWS.EMR.ListBootstrapActions: lbarMarker :: Lens' ListBootstrapActionsResponse (Maybe Text)
- Network.AWS.EMR.ListClusters: instance FromJSON ListClustersResponse
- Network.AWS.EMR.ListClusters: lcrClusters :: Lens' ListClustersResponse [ClusterSummary]
- Network.AWS.EMR.ListClusters: lcrMarker :: Lens' ListClustersResponse (Maybe Text)
- Network.AWS.EMR.ListInstanceGroups: instance FromJSON ListInstanceGroupsResponse
- Network.AWS.EMR.ListInstanceGroups: instance Ord ListInstanceGroups
- Network.AWS.EMR.ListInstanceGroups: ligrInstanceGroups :: Lens' ListInstanceGroupsResponse [InstanceGroup]
- Network.AWS.EMR.ListInstanceGroups: ligrMarker :: Lens' ListInstanceGroupsResponse (Maybe Text)
- Network.AWS.EMR.ListInstances: instance FromJSON ListInstancesResponse
- Network.AWS.EMR.ListInstances: lirInstances :: Lens' ListInstancesResponse [Instance]
- Network.AWS.EMR.ListInstances: lirMarker :: Lens' ListInstancesResponse (Maybe Text)
- Network.AWS.EMR.ListSteps: instance FromJSON ListStepsResponse
- Network.AWS.EMR.ListSteps: lsrMarker :: Lens' ListStepsResponse (Maybe Text)
- Network.AWS.EMR.ListSteps: lsrSteps :: Lens' ListStepsResponse [StepSummary]
- Network.AWS.EMR.ModifyInstanceGroups: instance IsList ModifyInstanceGroups
- Network.AWS.EMR.ModifyInstanceGroups: instance Monoid ModifyInstanceGroups
- Network.AWS.EMR.ModifyInstanceGroups: instance Ord ModifyInstanceGroupsResponse
- Network.AWS.EMR.ModifyInstanceGroups: instance Semigroup ModifyInstanceGroups
- Network.AWS.EMR.RemoveTags: instance Ord RemoveTags
- Network.AWS.EMR.RemoveTags: instance Ord RemoveTagsResponse
- Network.AWS.EMR.RunJobFlow: instance FromJSON RunJobFlowResponse
- Network.AWS.EMR.RunJobFlow: instance Monoid RunJobFlowResponse
- Network.AWS.EMR.RunJobFlow: instance Ord RunJobFlowResponse
- Network.AWS.EMR.RunJobFlow: rjfAmiVersion :: Lens' RunJobFlow (Maybe Text)
- Network.AWS.EMR.RunJobFlow: rjfLogUri :: Lens' RunJobFlow (Maybe Text)
- Network.AWS.EMR.RunJobFlow: rjfrJobFlowId :: Lens' RunJobFlowResponse (Maybe Text)
- Network.AWS.EMR.SetTerminationProtection: instance Ord SetTerminationProtection
- Network.AWS.EMR.SetTerminationProtection: instance Ord SetTerminationProtectionResponse
- Network.AWS.EMR.SetVisibleToAllUsers: instance Ord SetVisibleToAllUsers
- Network.AWS.EMR.SetVisibleToAllUsers: instance Ord SetVisibleToAllUsersResponse
- Network.AWS.EMR.TerminateJobFlows: instance IsList TerminateJobFlows
- Network.AWS.EMR.TerminateJobFlows: instance Monoid TerminateJobFlows
- Network.AWS.EMR.TerminateJobFlows: instance Ord TerminateJobFlows
- Network.AWS.EMR.TerminateJobFlows: instance Ord TerminateJobFlowsResponse
- Network.AWS.EMR.TerminateJobFlows: instance Semigroup TerminateJobFlows
- Network.AWS.EMR.Types: AOFCancelAndWait :: ActionOnFailure
- Network.AWS.EMR.Types: AOFContinue :: ActionOnFailure
- Network.AWS.EMR.Types: AOFTerminateCluster :: ActionOnFailure
- Network.AWS.EMR.Types: AOFTerminateJobFlow :: ActionOnFailure
- Network.AWS.EMR.Types: CSBootstrapping :: ClusterState
- Network.AWS.EMR.Types: CSCRCAllStepsCompleted :: ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: CSCRCBootstrapFailure :: ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: CSCRCInstanceFailure :: ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: CSCRCInternalError :: ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: CSCRCStepFailure :: ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: CSCRCUserRequest :: ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: CSCRCValidationError :: ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: CSRunning :: ClusterState
- Network.AWS.EMR.Types: CSStarting :: ClusterState
- Network.AWS.EMR.Types: CSTerminated :: ClusterState
- Network.AWS.EMR.Types: CSTerminatedWithErrors :: ClusterState
- Network.AWS.EMR.Types: CSTerminating :: ClusterState
- Network.AWS.EMR.Types: CSWaiting :: ClusterState
- Network.AWS.EMR.Types: Cancelled :: StepExecutionState
- Network.AWS.EMR.Types: ClusterTerminated :: InstanceGroupStateChangeReasonCode
- Network.AWS.EMR.Types: Completed :: StepExecutionState
- Network.AWS.EMR.Types: Failed :: StepExecutionState
- Network.AWS.EMR.Types: IRTCore :: InstanceRoleType
- Network.AWS.EMR.Types: IRTMaster :: InstanceRoleType
- Network.AWS.EMR.Types: IRTTask :: InstanceRoleType
- Network.AWS.EMR.Types: Interrupted :: StepExecutionState
- Network.AWS.EMR.Types: JFESBootstrapping :: JobFlowExecutionState
- Network.AWS.EMR.Types: JFESCompleted :: JobFlowExecutionState
- Network.AWS.EMR.Types: JFESFailed :: JobFlowExecutionState
- Network.AWS.EMR.Types: JFESRunning :: JobFlowExecutionState
- Network.AWS.EMR.Types: JFESShuttingDown :: JobFlowExecutionState
- Network.AWS.EMR.Types: JFESStarting :: JobFlowExecutionState
- Network.AWS.EMR.Types: JFESTerminated :: JobFlowExecutionState
- Network.AWS.EMR.Types: JFESWaiting :: JobFlowExecutionState
- Network.AWS.EMR.Types: Pending :: StepExecutionState
- Network.AWS.EMR.Types: badBootstrapActionConfig :: Lens' BootstrapActionDetail (Maybe BootstrapActionConfig)
- Network.AWS.EMR.Types: bootstrapActionDetail :: BootstrapActionDetail
- Network.AWS.EMR.Types: c1Applications :: Lens' Cluster [Application]
- Network.AWS.EMR.Types: c1AutoTerminate :: Lens' Cluster (Maybe Bool)
- Network.AWS.EMR.Types: c1Ec2InstanceAttributes :: Lens' Cluster (Maybe Ec2InstanceAttributes)
- Network.AWS.EMR.Types: c1Id :: Lens' Cluster Text
- Network.AWS.EMR.Types: c1LogUri :: Lens' Cluster (Maybe Text)
- Network.AWS.EMR.Types: c1MasterPublicDnsName :: Lens' Cluster (Maybe Text)
- Network.AWS.EMR.Types: c1Name :: Lens' Cluster Text
- Network.AWS.EMR.Types: c1NormalizedInstanceHours :: Lens' Cluster (Maybe Int)
- Network.AWS.EMR.Types: c1RequestedAmiVersion :: Lens' Cluster (Maybe Text)
- Network.AWS.EMR.Types: c1RunningAmiVersion :: Lens' Cluster (Maybe Text)
- Network.AWS.EMR.Types: c1ServiceRole :: Lens' Cluster (Maybe Text)
- Network.AWS.EMR.Types: c1Status :: Lens' Cluster ClusterStatus
- Network.AWS.EMR.Types: c1Tags :: Lens' Cluster [Tag]
- Network.AWS.EMR.Types: c1TerminationProtected :: Lens' Cluster (Maybe Bool)
- Network.AWS.EMR.Types: c1VisibleToAllUsers :: Lens' Cluster (Maybe Bool)
- Network.AWS.EMR.Types: data BootstrapActionDetail
- Network.AWS.EMR.Types: data Ec2InstanceAttributes
- Network.AWS.EMR.Types: data HadoopJarStepConfig
- Network.AWS.EMR.Types: data InstanceGroupDetail
- Network.AWS.EMR.Types: data JSONError :: *
- Network.AWS.EMR.Types: data JobFlowDetail
- Network.AWS.EMR.Types: data JobFlowExecutionState
- Network.AWS.EMR.Types: data JobFlowExecutionStatusDetail
- Network.AWS.EMR.Types: data JobFlowInstancesDetail
- Network.AWS.EMR.Types: data StepDetail
- Network.AWS.EMR.Types: data StepExecutionState
- Network.AWS.EMR.Types: data StepExecutionStatusDetail
- Network.AWS.EMR.Types: eiaEc2AvailabilityZone :: Lens' Ec2InstanceAttributes (Maybe Text)
- Network.AWS.EMR.Types: eiaEc2KeyName :: Lens' Ec2InstanceAttributes (Maybe Text)
- Network.AWS.EMR.Types: eiaEc2SubnetId :: Lens' Ec2InstanceAttributes (Maybe Text)
- Network.AWS.EMR.Types: eiaIamInstanceProfile :: Lens' Ec2InstanceAttributes (Maybe Text)
- Network.AWS.EMR.Types: hadoopJarStepConfig :: Text -> HadoopJarStepConfig
- Network.AWS.EMR.Types: hjscJar :: Lens' HadoopJarStepConfig Text
- Network.AWS.EMR.Types: hscJar :: Lens' HadoopStepConfig (Maybe Text)
- Network.AWS.EMR.Types: iEc2InstanceId :: Lens' Instance (Maybe Text)
- Network.AWS.EMR.Types: iPrivateDnsName :: Lens' Instance (Maybe Text)
- Network.AWS.EMR.Types: iPrivateIpAddress :: Lens' Instance (Maybe Text)
- Network.AWS.EMR.Types: iPublicDnsName :: Lens' Instance (Maybe Text)
- Network.AWS.EMR.Types: iPublicIpAddress :: Lens' Instance (Maybe Text)
- Network.AWS.EMR.Types: igdBidPrice :: Lens' InstanceGroupDetail (Maybe Text)
- Network.AWS.EMR.Types: igdCreationDateTime :: Lens' InstanceGroupDetail UTCTime
- Network.AWS.EMR.Types: igdEndDateTime :: Lens' InstanceGroupDetail (Maybe UTCTime)
- Network.AWS.EMR.Types: igdInstanceGroupId :: Lens' InstanceGroupDetail (Maybe Text)
- Network.AWS.EMR.Types: igdInstanceRequestCount :: Lens' InstanceGroupDetail Int
- Network.AWS.EMR.Types: igdInstanceRole :: Lens' InstanceGroupDetail InstanceRoleType
- Network.AWS.EMR.Types: igdInstanceRunningCount :: Lens' InstanceGroupDetail Int
- Network.AWS.EMR.Types: igdInstanceType :: Lens' InstanceGroupDetail Text
- Network.AWS.EMR.Types: igdLastStateChangeReason :: Lens' InstanceGroupDetail (Maybe Text)
- Network.AWS.EMR.Types: igdMarket :: Lens' InstanceGroupDetail MarketType
- Network.AWS.EMR.Types: igdName :: Lens' InstanceGroupDetail (Maybe Text)
- Network.AWS.EMR.Types: igdReadyDateTime :: Lens' InstanceGroupDetail (Maybe UTCTime)
- Network.AWS.EMR.Types: igdStartDateTime :: Lens' InstanceGroupDetail (Maybe UTCTime)
- Network.AWS.EMR.Types: igdState :: Lens' InstanceGroupDetail InstanceGroupState
- Network.AWS.EMR.Types: instance Constructor C1_0ActionOnFailure
- Network.AWS.EMR.Types: instance Constructor C1_0ClusterState
- Network.AWS.EMR.Types: instance Constructor C1_0ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: instance Constructor C1_0InstanceGroupState
- Network.AWS.EMR.Types: instance Constructor C1_0InstanceGroupStateChangeReasonCode
- Network.AWS.EMR.Types: instance Constructor C1_0InstanceGroupType
- Network.AWS.EMR.Types: instance Constructor C1_0InstanceRoleType
- Network.AWS.EMR.Types: instance Constructor C1_0InstanceState
- Network.AWS.EMR.Types: instance Constructor C1_0InstanceStateChangeReasonCode
- Network.AWS.EMR.Types: instance Constructor C1_0JobFlowExecutionState
- Network.AWS.EMR.Types: instance Constructor C1_0MarketType
- Network.AWS.EMR.Types: instance Constructor C1_0StepExecutionState
- Network.AWS.EMR.Types: instance Constructor C1_0StepState
- Network.AWS.EMR.Types: instance Constructor C1_0StepStateChangeReasonCode
- Network.AWS.EMR.Types: instance Constructor C1_1ActionOnFailure
- Network.AWS.EMR.Types: instance Constructor C1_1ClusterState
- Network.AWS.EMR.Types: instance Constructor C1_1ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: instance Constructor C1_1InstanceGroupState
- Network.AWS.EMR.Types: instance Constructor C1_1InstanceGroupStateChangeReasonCode
- Network.AWS.EMR.Types: instance Constructor C1_1InstanceGroupType
- Network.AWS.EMR.Types: instance Constructor C1_1InstanceRoleType
- Network.AWS.EMR.Types: instance Constructor C1_1InstanceState
- Network.AWS.EMR.Types: instance Constructor C1_1InstanceStateChangeReasonCode
- Network.AWS.EMR.Types: instance Constructor C1_1JobFlowExecutionState
- Network.AWS.EMR.Types: instance Constructor C1_1MarketType
- Network.AWS.EMR.Types: instance Constructor C1_1StepExecutionState
- Network.AWS.EMR.Types: instance Constructor C1_1StepState
- Network.AWS.EMR.Types: instance Constructor C1_2ActionOnFailure
- Network.AWS.EMR.Types: instance Constructor C1_2ClusterState
- Network.AWS.EMR.Types: instance Constructor C1_2ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: instance Constructor C1_2InstanceGroupState
- Network.AWS.EMR.Types: instance Constructor C1_2InstanceGroupStateChangeReasonCode
- Network.AWS.EMR.Types: instance Constructor C1_2InstanceGroupType
- Network.AWS.EMR.Types: instance Constructor C1_2InstanceRoleType
- Network.AWS.EMR.Types: instance Constructor C1_2InstanceState
- Network.AWS.EMR.Types: instance Constructor C1_2InstanceStateChangeReasonCode
- Network.AWS.EMR.Types: instance Constructor C1_2JobFlowExecutionState
- Network.AWS.EMR.Types: instance Constructor C1_2StepExecutionState
- Network.AWS.EMR.Types: instance Constructor C1_2StepState
- Network.AWS.EMR.Types: instance Constructor C1_3ActionOnFailure
- Network.AWS.EMR.Types: instance Constructor C1_3ClusterState
- Network.AWS.EMR.Types: instance Constructor C1_3ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: instance Constructor C1_3InstanceGroupState
- Network.AWS.EMR.Types: instance Constructor C1_3InstanceGroupStateChangeReasonCode
- Network.AWS.EMR.Types: instance Constructor C1_3InstanceState
- Network.AWS.EMR.Types: instance Constructor C1_3InstanceStateChangeReasonCode
- Network.AWS.EMR.Types: instance Constructor C1_3JobFlowExecutionState
- Network.AWS.EMR.Types: instance Constructor C1_3StepExecutionState
- Network.AWS.EMR.Types: instance Constructor C1_3StepState
- Network.AWS.EMR.Types: instance Constructor C1_4ClusterState
- Network.AWS.EMR.Types: instance Constructor C1_4ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: instance Constructor C1_4InstanceGroupState
- Network.AWS.EMR.Types: instance Constructor C1_4InstanceState
- Network.AWS.EMR.Types: instance Constructor C1_4InstanceStateChangeReasonCode
- Network.AWS.EMR.Types: instance Constructor C1_4JobFlowExecutionState
- Network.AWS.EMR.Types: instance Constructor C1_4StepExecutionState
- Network.AWS.EMR.Types: instance Constructor C1_4StepState
- Network.AWS.EMR.Types: instance Constructor C1_5ClusterState
- Network.AWS.EMR.Types: instance Constructor C1_5ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: instance Constructor C1_5InstanceGroupState
- Network.AWS.EMR.Types: instance Constructor C1_5JobFlowExecutionState
- Network.AWS.EMR.Types: instance Constructor C1_5StepExecutionState
- Network.AWS.EMR.Types: instance Constructor C1_5StepState
- Network.AWS.EMR.Types: instance Constructor C1_6ClusterState
- Network.AWS.EMR.Types: instance Constructor C1_6ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: instance Constructor C1_6InstanceGroupState
- Network.AWS.EMR.Types: instance Constructor C1_6JobFlowExecutionState
- Network.AWS.EMR.Types: instance Constructor C1_6StepExecutionState
- Network.AWS.EMR.Types: instance Constructor C1_7InstanceGroupState
- Network.AWS.EMR.Types: instance Constructor C1_7JobFlowExecutionState
- Network.AWS.EMR.Types: instance Constructor C1_8InstanceGroupState
- Network.AWS.EMR.Types: instance Constructor C1_9InstanceGroupState
- Network.AWS.EMR.Types: instance Datatype D1ActionOnFailure
- Network.AWS.EMR.Types: instance Datatype D1ClusterState
- Network.AWS.EMR.Types: instance Datatype D1ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: instance Datatype D1InstanceGroupState
- Network.AWS.EMR.Types: instance Datatype D1InstanceGroupStateChangeReasonCode
- Network.AWS.EMR.Types: instance Datatype D1InstanceGroupType
- Network.AWS.EMR.Types: instance Datatype D1InstanceRoleType
- Network.AWS.EMR.Types: instance Datatype D1InstanceState
- Network.AWS.EMR.Types: instance Datatype D1InstanceStateChangeReasonCode
- Network.AWS.EMR.Types: instance Datatype D1JobFlowExecutionState
- Network.AWS.EMR.Types: instance Datatype D1MarketType
- Network.AWS.EMR.Types: instance Datatype D1StepExecutionState
- Network.AWS.EMR.Types: instance Datatype D1StepState
- Network.AWS.EMR.Types: instance Datatype D1StepStateChangeReasonCode
- Network.AWS.EMR.Types: instance Enum ActionOnFailure
- Network.AWS.EMR.Types: instance Enum ClusterState
- Network.AWS.EMR.Types: instance Enum ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: instance Enum InstanceGroupState
- Network.AWS.EMR.Types: instance Enum InstanceGroupStateChangeReasonCode
- Network.AWS.EMR.Types: instance Enum InstanceGroupType
- Network.AWS.EMR.Types: instance Enum InstanceRoleType
- Network.AWS.EMR.Types: instance Enum InstanceState
- Network.AWS.EMR.Types: instance Enum InstanceStateChangeReasonCode
- Network.AWS.EMR.Types: instance Enum JobFlowExecutionState
- Network.AWS.EMR.Types: instance Enum MarketType
- Network.AWS.EMR.Types: instance Enum StepExecutionState
- Network.AWS.EMR.Types: instance Enum StepState
- Network.AWS.EMR.Types: instance Enum StepStateChangeReasonCode
- Network.AWS.EMR.Types: instance Eq ActionOnFailure
- Network.AWS.EMR.Types: instance Eq Application
- Network.AWS.EMR.Types: instance Eq BootstrapActionConfig
- Network.AWS.EMR.Types: instance Eq BootstrapActionDetail
- Network.AWS.EMR.Types: instance Eq Cluster
- Network.AWS.EMR.Types: instance Eq ClusterState
- Network.AWS.EMR.Types: instance Eq ClusterStateChangeReason
- Network.AWS.EMR.Types: instance Eq ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: instance Eq ClusterStatus
- Network.AWS.EMR.Types: instance Eq ClusterSummary
- Network.AWS.EMR.Types: instance Eq ClusterTimeline
- Network.AWS.EMR.Types: instance Eq Command
- Network.AWS.EMR.Types: instance Eq Ec2InstanceAttributes
- Network.AWS.EMR.Types: instance Eq HadoopJarStepConfig
- Network.AWS.EMR.Types: instance Eq HadoopStepConfig
- Network.AWS.EMR.Types: instance Eq Instance
- Network.AWS.EMR.Types: instance Eq InstanceGroup
- Network.AWS.EMR.Types: instance Eq InstanceGroupConfig
- Network.AWS.EMR.Types: instance Eq InstanceGroupDetail
- Network.AWS.EMR.Types: instance Eq InstanceGroupModifyConfig
- Network.AWS.EMR.Types: instance Eq InstanceGroupState
- Network.AWS.EMR.Types: instance Eq InstanceGroupStateChangeReason
- Network.AWS.EMR.Types: instance Eq InstanceGroupStateChangeReasonCode
- Network.AWS.EMR.Types: instance Eq InstanceGroupStatus
- Network.AWS.EMR.Types: instance Eq InstanceGroupTimeline
- Network.AWS.EMR.Types: instance Eq InstanceGroupType
- Network.AWS.EMR.Types: instance Eq InstanceRoleType
- Network.AWS.EMR.Types: instance Eq InstanceState
- Network.AWS.EMR.Types: instance Eq InstanceStateChangeReason
- Network.AWS.EMR.Types: instance Eq InstanceStateChangeReasonCode
- Network.AWS.EMR.Types: instance Eq InstanceStatus
- Network.AWS.EMR.Types: instance Eq InstanceTimeline
- Network.AWS.EMR.Types: instance Eq JobFlowDetail
- Network.AWS.EMR.Types: instance Eq JobFlowExecutionState
- Network.AWS.EMR.Types: instance Eq JobFlowExecutionStatusDetail
- Network.AWS.EMR.Types: instance Eq JobFlowInstancesConfig
- Network.AWS.EMR.Types: instance Eq JobFlowInstancesDetail
- Network.AWS.EMR.Types: instance Eq KeyValue
- Network.AWS.EMR.Types: instance Eq MarketType
- Network.AWS.EMR.Types: instance Eq PlacementType
- Network.AWS.EMR.Types: instance Eq ScriptBootstrapActionConfig
- Network.AWS.EMR.Types: instance Eq Step
- Network.AWS.EMR.Types: instance Eq StepConfig
- Network.AWS.EMR.Types: instance Eq StepDetail
- Network.AWS.EMR.Types: instance Eq StepExecutionState
- Network.AWS.EMR.Types: instance Eq StepExecutionStatusDetail
- Network.AWS.EMR.Types: instance Eq StepState
- Network.AWS.EMR.Types: instance Eq StepStateChangeReason
- Network.AWS.EMR.Types: instance Eq StepStateChangeReasonCode
- Network.AWS.EMR.Types: instance Eq StepStatus
- Network.AWS.EMR.Types: instance Eq StepSummary
- Network.AWS.EMR.Types: instance Eq StepTimeline
- Network.AWS.EMR.Types: instance Eq SupportedProductConfig
- Network.AWS.EMR.Types: instance Eq Tag
- Network.AWS.EMR.Types: instance FromJSON ActionOnFailure
- Network.AWS.EMR.Types: instance FromJSON Application
- Network.AWS.EMR.Types: instance FromJSON BootstrapActionConfig
- Network.AWS.EMR.Types: instance FromJSON BootstrapActionDetail
- Network.AWS.EMR.Types: instance FromJSON Cluster
- Network.AWS.EMR.Types: instance FromJSON ClusterState
- Network.AWS.EMR.Types: instance FromJSON ClusterStateChangeReason
- Network.AWS.EMR.Types: instance FromJSON ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: instance FromJSON ClusterStatus
- Network.AWS.EMR.Types: instance FromJSON ClusterSummary
- Network.AWS.EMR.Types: instance FromJSON ClusterTimeline
- Network.AWS.EMR.Types: instance FromJSON Command
- Network.AWS.EMR.Types: instance FromJSON Ec2InstanceAttributes
- Network.AWS.EMR.Types: instance FromJSON HadoopJarStepConfig
- Network.AWS.EMR.Types: instance FromJSON HadoopStepConfig
- Network.AWS.EMR.Types: instance FromJSON Instance
- Network.AWS.EMR.Types: instance FromJSON InstanceGroup
- Network.AWS.EMR.Types: instance FromJSON InstanceGroupConfig
- Network.AWS.EMR.Types: instance FromJSON InstanceGroupDetail
- Network.AWS.EMR.Types: instance FromJSON InstanceGroupModifyConfig
- Network.AWS.EMR.Types: instance FromJSON InstanceGroupState
- Network.AWS.EMR.Types: instance FromJSON InstanceGroupStateChangeReason
- Network.AWS.EMR.Types: instance FromJSON InstanceGroupStateChangeReasonCode
- Network.AWS.EMR.Types: instance FromJSON InstanceGroupStatus
- Network.AWS.EMR.Types: instance FromJSON InstanceGroupTimeline
- Network.AWS.EMR.Types: instance FromJSON InstanceGroupType
- Network.AWS.EMR.Types: instance FromJSON InstanceRoleType
- Network.AWS.EMR.Types: instance FromJSON InstanceState
- Network.AWS.EMR.Types: instance FromJSON InstanceStateChangeReason
- Network.AWS.EMR.Types: instance FromJSON InstanceStateChangeReasonCode
- Network.AWS.EMR.Types: instance FromJSON InstanceStatus
- Network.AWS.EMR.Types: instance FromJSON InstanceTimeline
- Network.AWS.EMR.Types: instance FromJSON JobFlowDetail
- Network.AWS.EMR.Types: instance FromJSON JobFlowExecutionState
- Network.AWS.EMR.Types: instance FromJSON JobFlowExecutionStatusDetail
- Network.AWS.EMR.Types: instance FromJSON JobFlowInstancesConfig
- Network.AWS.EMR.Types: instance FromJSON JobFlowInstancesDetail
- Network.AWS.EMR.Types: instance FromJSON KeyValue
- Network.AWS.EMR.Types: instance FromJSON MarketType
- Network.AWS.EMR.Types: instance FromJSON PlacementType
- Network.AWS.EMR.Types: instance FromJSON ScriptBootstrapActionConfig
- Network.AWS.EMR.Types: instance FromJSON Step
- Network.AWS.EMR.Types: instance FromJSON StepConfig
- Network.AWS.EMR.Types: instance FromJSON StepDetail
- Network.AWS.EMR.Types: instance FromJSON StepExecutionState
- Network.AWS.EMR.Types: instance FromJSON StepExecutionStatusDetail
- Network.AWS.EMR.Types: instance FromJSON StepState
- Network.AWS.EMR.Types: instance FromJSON StepStateChangeReason
- Network.AWS.EMR.Types: instance FromJSON StepStateChangeReasonCode
- Network.AWS.EMR.Types: instance FromJSON StepStatus
- Network.AWS.EMR.Types: instance FromJSON StepSummary
- Network.AWS.EMR.Types: instance FromJSON StepTimeline
- Network.AWS.EMR.Types: instance FromJSON SupportedProductConfig
- Network.AWS.EMR.Types: instance FromJSON Tag
- Network.AWS.EMR.Types: instance FromText ActionOnFailure
- Network.AWS.EMR.Types: instance FromText ClusterState
- Network.AWS.EMR.Types: instance FromText ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: instance FromText InstanceGroupState
- Network.AWS.EMR.Types: instance FromText InstanceGroupStateChangeReasonCode
- Network.AWS.EMR.Types: instance FromText InstanceGroupType
- Network.AWS.EMR.Types: instance FromText InstanceRoleType
- Network.AWS.EMR.Types: instance FromText InstanceState
- Network.AWS.EMR.Types: instance FromText InstanceStateChangeReasonCode
- Network.AWS.EMR.Types: instance FromText JobFlowExecutionState
- Network.AWS.EMR.Types: instance FromText MarketType
- Network.AWS.EMR.Types: instance FromText StepExecutionState
- Network.AWS.EMR.Types: instance FromText StepState
- Network.AWS.EMR.Types: instance FromText StepStateChangeReasonCode
- Network.AWS.EMR.Types: instance Generic ActionOnFailure
- Network.AWS.EMR.Types: instance Generic ClusterState
- Network.AWS.EMR.Types: instance Generic ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: instance Generic InstanceGroupState
- Network.AWS.EMR.Types: instance Generic InstanceGroupStateChangeReasonCode
- Network.AWS.EMR.Types: instance Generic InstanceGroupType
- Network.AWS.EMR.Types: instance Generic InstanceRoleType
- Network.AWS.EMR.Types: instance Generic InstanceState
- Network.AWS.EMR.Types: instance Generic InstanceStateChangeReasonCode
- Network.AWS.EMR.Types: instance Generic JobFlowExecutionState
- Network.AWS.EMR.Types: instance Generic MarketType
- Network.AWS.EMR.Types: instance Generic StepExecutionState
- Network.AWS.EMR.Types: instance Generic StepState
- Network.AWS.EMR.Types: instance Generic StepStateChangeReasonCode
- Network.AWS.EMR.Types: instance Hashable ActionOnFailure
- Network.AWS.EMR.Types: instance Hashable ClusterState
- Network.AWS.EMR.Types: instance Hashable ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: instance Hashable InstanceGroupState
- Network.AWS.EMR.Types: instance Hashable InstanceGroupStateChangeReasonCode
- Network.AWS.EMR.Types: instance Hashable InstanceGroupType
- Network.AWS.EMR.Types: instance Hashable InstanceRoleType
- Network.AWS.EMR.Types: instance Hashable InstanceState
- Network.AWS.EMR.Types: instance Hashable InstanceStateChangeReasonCode
- Network.AWS.EMR.Types: instance Hashable JobFlowExecutionState
- Network.AWS.EMR.Types: instance Hashable MarketType
- Network.AWS.EMR.Types: instance Hashable StepExecutionState
- Network.AWS.EMR.Types: instance Hashable StepState
- Network.AWS.EMR.Types: instance Hashable StepStateChangeReasonCode
- Network.AWS.EMR.Types: instance IsString PlacementType
- Network.AWS.EMR.Types: instance Monoid PlacementType
- Network.AWS.EMR.Types: instance Ord ActionOnFailure
- Network.AWS.EMR.Types: instance Ord ClusterState
- Network.AWS.EMR.Types: instance Ord ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: instance Ord ClusterTimeline
- Network.AWS.EMR.Types: instance Ord Command
- Network.AWS.EMR.Types: instance Ord Ec2InstanceAttributes
- Network.AWS.EMR.Types: instance Ord InstanceGroupModifyConfig
- Network.AWS.EMR.Types: instance Ord InstanceGroupState
- Network.AWS.EMR.Types: instance Ord InstanceGroupStateChangeReasonCode
- Network.AWS.EMR.Types: instance Ord InstanceGroupTimeline
- Network.AWS.EMR.Types: instance Ord InstanceGroupType
- Network.AWS.EMR.Types: instance Ord InstanceRoleType
- Network.AWS.EMR.Types: instance Ord InstanceState
- Network.AWS.EMR.Types: instance Ord InstanceStateChangeReasonCode
- Network.AWS.EMR.Types: instance Ord InstanceTimeline
- Network.AWS.EMR.Types: instance Ord JobFlowExecutionState
- Network.AWS.EMR.Types: instance Ord KeyValue
- Network.AWS.EMR.Types: instance Ord MarketType
- Network.AWS.EMR.Types: instance Ord PlacementType
- Network.AWS.EMR.Types: instance Ord ScriptBootstrapActionConfig
- Network.AWS.EMR.Types: instance Ord StepExecutionState
- Network.AWS.EMR.Types: instance Ord StepState
- Network.AWS.EMR.Types: instance Ord StepStateChangeReasonCode
- Network.AWS.EMR.Types: instance Ord StepTimeline
- Network.AWS.EMR.Types: instance Ord SupportedProductConfig
- Network.AWS.EMR.Types: instance Ord Tag
- Network.AWS.EMR.Types: instance Read ActionOnFailure
- Network.AWS.EMR.Types: instance Read Application
- Network.AWS.EMR.Types: instance Read BootstrapActionConfig
- Network.AWS.EMR.Types: instance Read BootstrapActionDetail
- Network.AWS.EMR.Types: instance Read Cluster
- Network.AWS.EMR.Types: instance Read ClusterState
- Network.AWS.EMR.Types: instance Read ClusterStateChangeReason
- Network.AWS.EMR.Types: instance Read ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: instance Read ClusterStatus
- Network.AWS.EMR.Types: instance Read ClusterSummary
- Network.AWS.EMR.Types: instance Read ClusterTimeline
- Network.AWS.EMR.Types: instance Read Command
- Network.AWS.EMR.Types: instance Read Ec2InstanceAttributes
- Network.AWS.EMR.Types: instance Read HadoopJarStepConfig
- Network.AWS.EMR.Types: instance Read HadoopStepConfig
- Network.AWS.EMR.Types: instance Read Instance
- Network.AWS.EMR.Types: instance Read InstanceGroup
- Network.AWS.EMR.Types: instance Read InstanceGroupConfig
- Network.AWS.EMR.Types: instance Read InstanceGroupDetail
- Network.AWS.EMR.Types: instance Read InstanceGroupModifyConfig
- Network.AWS.EMR.Types: instance Read InstanceGroupState
- Network.AWS.EMR.Types: instance Read InstanceGroupStateChangeReason
- Network.AWS.EMR.Types: instance Read InstanceGroupStateChangeReasonCode
- Network.AWS.EMR.Types: instance Read InstanceGroupStatus
- Network.AWS.EMR.Types: instance Read InstanceGroupTimeline
- Network.AWS.EMR.Types: instance Read InstanceGroupType
- Network.AWS.EMR.Types: instance Read InstanceRoleType
- Network.AWS.EMR.Types: instance Read InstanceState
- Network.AWS.EMR.Types: instance Read InstanceStateChangeReason
- Network.AWS.EMR.Types: instance Read InstanceStateChangeReasonCode
- Network.AWS.EMR.Types: instance Read InstanceStatus
- Network.AWS.EMR.Types: instance Read InstanceTimeline
- Network.AWS.EMR.Types: instance Read JobFlowDetail
- Network.AWS.EMR.Types: instance Read JobFlowExecutionState
- Network.AWS.EMR.Types: instance Read JobFlowExecutionStatusDetail
- Network.AWS.EMR.Types: instance Read JobFlowInstancesConfig
- Network.AWS.EMR.Types: instance Read JobFlowInstancesDetail
- Network.AWS.EMR.Types: instance Read KeyValue
- Network.AWS.EMR.Types: instance Read MarketType
- Network.AWS.EMR.Types: instance Read PlacementType
- Network.AWS.EMR.Types: instance Read ScriptBootstrapActionConfig
- Network.AWS.EMR.Types: instance Read Step
- Network.AWS.EMR.Types: instance Read StepConfig
- Network.AWS.EMR.Types: instance Read StepDetail
- Network.AWS.EMR.Types: instance Read StepExecutionState
- Network.AWS.EMR.Types: instance Read StepExecutionStatusDetail
- Network.AWS.EMR.Types: instance Read StepState
- Network.AWS.EMR.Types: instance Read StepStateChangeReason
- Network.AWS.EMR.Types: instance Read StepStateChangeReasonCode
- Network.AWS.EMR.Types: instance Read StepStatus
- Network.AWS.EMR.Types: instance Read StepSummary
- Network.AWS.EMR.Types: instance Read StepTimeline
- Network.AWS.EMR.Types: instance Read SupportedProductConfig
- Network.AWS.EMR.Types: instance Read Tag
- Network.AWS.EMR.Types: instance Show ActionOnFailure
- Network.AWS.EMR.Types: instance Show Application
- Network.AWS.EMR.Types: instance Show BootstrapActionConfig
- Network.AWS.EMR.Types: instance Show BootstrapActionDetail
- Network.AWS.EMR.Types: instance Show Cluster
- Network.AWS.EMR.Types: instance Show ClusterState
- Network.AWS.EMR.Types: instance Show ClusterStateChangeReason
- Network.AWS.EMR.Types: instance Show ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: instance Show ClusterStatus
- Network.AWS.EMR.Types: instance Show ClusterSummary
- Network.AWS.EMR.Types: instance Show ClusterTimeline
- Network.AWS.EMR.Types: instance Show Command
- Network.AWS.EMR.Types: instance Show Ec2InstanceAttributes
- Network.AWS.EMR.Types: instance Show HadoopJarStepConfig
- Network.AWS.EMR.Types: instance Show HadoopStepConfig
- Network.AWS.EMR.Types: instance Show Instance
- Network.AWS.EMR.Types: instance Show InstanceGroup
- Network.AWS.EMR.Types: instance Show InstanceGroupConfig
- Network.AWS.EMR.Types: instance Show InstanceGroupDetail
- Network.AWS.EMR.Types: instance Show InstanceGroupModifyConfig
- Network.AWS.EMR.Types: instance Show InstanceGroupState
- Network.AWS.EMR.Types: instance Show InstanceGroupStateChangeReason
- Network.AWS.EMR.Types: instance Show InstanceGroupStateChangeReasonCode
- Network.AWS.EMR.Types: instance Show InstanceGroupStatus
- Network.AWS.EMR.Types: instance Show InstanceGroupTimeline
- Network.AWS.EMR.Types: instance Show InstanceGroupType
- Network.AWS.EMR.Types: instance Show InstanceRoleType
- Network.AWS.EMR.Types: instance Show InstanceState
- Network.AWS.EMR.Types: instance Show InstanceStateChangeReason
- Network.AWS.EMR.Types: instance Show InstanceStateChangeReasonCode
- Network.AWS.EMR.Types: instance Show InstanceStatus
- Network.AWS.EMR.Types: instance Show InstanceTimeline
- Network.AWS.EMR.Types: instance Show JobFlowDetail
- Network.AWS.EMR.Types: instance Show JobFlowExecutionState
- Network.AWS.EMR.Types: instance Show JobFlowExecutionStatusDetail
- Network.AWS.EMR.Types: instance Show JobFlowInstancesConfig
- Network.AWS.EMR.Types: instance Show JobFlowInstancesDetail
- Network.AWS.EMR.Types: instance Show KeyValue
- Network.AWS.EMR.Types: instance Show MarketType
- Network.AWS.EMR.Types: instance Show PlacementType
- Network.AWS.EMR.Types: instance Show ScriptBootstrapActionConfig
- Network.AWS.EMR.Types: instance Show Step
- Network.AWS.EMR.Types: instance Show StepConfig
- Network.AWS.EMR.Types: instance Show StepDetail
- Network.AWS.EMR.Types: instance Show StepExecutionState
- Network.AWS.EMR.Types: instance Show StepExecutionStatusDetail
- Network.AWS.EMR.Types: instance Show StepState
- Network.AWS.EMR.Types: instance Show StepStateChangeReason
- Network.AWS.EMR.Types: instance Show StepStateChangeReasonCode
- Network.AWS.EMR.Types: instance Show StepStatus
- Network.AWS.EMR.Types: instance Show StepSummary
- Network.AWS.EMR.Types: instance Show StepTimeline
- Network.AWS.EMR.Types: instance Show SupportedProductConfig
- Network.AWS.EMR.Types: instance Show Tag
- Network.AWS.EMR.Types: instance ToByteString ActionOnFailure
- Network.AWS.EMR.Types: instance ToByteString ClusterState
- Network.AWS.EMR.Types: instance ToByteString ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: instance ToByteString InstanceGroupState
- Network.AWS.EMR.Types: instance ToByteString InstanceGroupStateChangeReasonCode
- Network.AWS.EMR.Types: instance ToByteString InstanceGroupType
- Network.AWS.EMR.Types: instance ToByteString InstanceRoleType
- Network.AWS.EMR.Types: instance ToByteString InstanceState
- Network.AWS.EMR.Types: instance ToByteString InstanceStateChangeReasonCode
- Network.AWS.EMR.Types: instance ToByteString JobFlowExecutionState
- Network.AWS.EMR.Types: instance ToByteString MarketType
- Network.AWS.EMR.Types: instance ToByteString StepExecutionState
- Network.AWS.EMR.Types: instance ToByteString StepState
- Network.AWS.EMR.Types: instance ToByteString StepStateChangeReasonCode
- Network.AWS.EMR.Types: instance ToHeader ActionOnFailure
- Network.AWS.EMR.Types: instance ToHeader ClusterState
- Network.AWS.EMR.Types: instance ToHeader ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: instance ToHeader InstanceGroupState
- Network.AWS.EMR.Types: instance ToHeader InstanceGroupStateChangeReasonCode
- Network.AWS.EMR.Types: instance ToHeader InstanceGroupType
- Network.AWS.EMR.Types: instance ToHeader InstanceRoleType
- Network.AWS.EMR.Types: instance ToHeader InstanceState
- Network.AWS.EMR.Types: instance ToHeader InstanceStateChangeReasonCode
- Network.AWS.EMR.Types: instance ToHeader JobFlowExecutionState
- Network.AWS.EMR.Types: instance ToHeader MarketType
- Network.AWS.EMR.Types: instance ToHeader StepExecutionState
- Network.AWS.EMR.Types: instance ToHeader StepState
- Network.AWS.EMR.Types: instance ToHeader StepStateChangeReasonCode
- Network.AWS.EMR.Types: instance ToJSON ActionOnFailure
- Network.AWS.EMR.Types: instance ToJSON Application
- Network.AWS.EMR.Types: instance ToJSON BootstrapActionConfig
- Network.AWS.EMR.Types: instance ToJSON BootstrapActionDetail
- Network.AWS.EMR.Types: instance ToJSON Cluster
- Network.AWS.EMR.Types: instance ToJSON ClusterState
- Network.AWS.EMR.Types: instance ToJSON ClusterStateChangeReason
- Network.AWS.EMR.Types: instance ToJSON ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: instance ToJSON ClusterStatus
- Network.AWS.EMR.Types: instance ToJSON ClusterSummary
- Network.AWS.EMR.Types: instance ToJSON ClusterTimeline
- Network.AWS.EMR.Types: instance ToJSON Command
- Network.AWS.EMR.Types: instance ToJSON Ec2InstanceAttributes
- Network.AWS.EMR.Types: instance ToJSON HadoopJarStepConfig
- Network.AWS.EMR.Types: instance ToJSON HadoopStepConfig
- Network.AWS.EMR.Types: instance ToJSON Instance
- Network.AWS.EMR.Types: instance ToJSON InstanceGroup
- Network.AWS.EMR.Types: instance ToJSON InstanceGroupConfig
- Network.AWS.EMR.Types: instance ToJSON InstanceGroupDetail
- Network.AWS.EMR.Types: instance ToJSON InstanceGroupModifyConfig
- Network.AWS.EMR.Types: instance ToJSON InstanceGroupState
- Network.AWS.EMR.Types: instance ToJSON InstanceGroupStateChangeReason
- Network.AWS.EMR.Types: instance ToJSON InstanceGroupStateChangeReasonCode
- Network.AWS.EMR.Types: instance ToJSON InstanceGroupStatus
- Network.AWS.EMR.Types: instance ToJSON InstanceGroupTimeline
- Network.AWS.EMR.Types: instance ToJSON InstanceGroupType
- Network.AWS.EMR.Types: instance ToJSON InstanceRoleType
- Network.AWS.EMR.Types: instance ToJSON InstanceState
- Network.AWS.EMR.Types: instance ToJSON InstanceStateChangeReason
- Network.AWS.EMR.Types: instance ToJSON InstanceStateChangeReasonCode
- Network.AWS.EMR.Types: instance ToJSON InstanceStatus
- Network.AWS.EMR.Types: instance ToJSON InstanceTimeline
- Network.AWS.EMR.Types: instance ToJSON JobFlowDetail
- Network.AWS.EMR.Types: instance ToJSON JobFlowExecutionState
- Network.AWS.EMR.Types: instance ToJSON JobFlowExecutionStatusDetail
- Network.AWS.EMR.Types: instance ToJSON JobFlowInstancesConfig
- Network.AWS.EMR.Types: instance ToJSON JobFlowInstancesDetail
- Network.AWS.EMR.Types: instance ToJSON KeyValue
- Network.AWS.EMR.Types: instance ToJSON MarketType
- Network.AWS.EMR.Types: instance ToJSON PlacementType
- Network.AWS.EMR.Types: instance ToJSON ScriptBootstrapActionConfig
- Network.AWS.EMR.Types: instance ToJSON Step
- Network.AWS.EMR.Types: instance ToJSON StepConfig
- Network.AWS.EMR.Types: instance ToJSON StepDetail
- Network.AWS.EMR.Types: instance ToJSON StepExecutionState
- Network.AWS.EMR.Types: instance ToJSON StepExecutionStatusDetail
- Network.AWS.EMR.Types: instance ToJSON StepState
- Network.AWS.EMR.Types: instance ToJSON StepStateChangeReason
- Network.AWS.EMR.Types: instance ToJSON StepStateChangeReasonCode
- Network.AWS.EMR.Types: instance ToJSON StepStatus
- Network.AWS.EMR.Types: instance ToJSON StepSummary
- Network.AWS.EMR.Types: instance ToJSON StepTimeline
- Network.AWS.EMR.Types: instance ToJSON SupportedProductConfig
- Network.AWS.EMR.Types: instance ToJSON Tag
- Network.AWS.EMR.Types: instance ToQuery ActionOnFailure
- Network.AWS.EMR.Types: instance ToQuery ClusterState
- Network.AWS.EMR.Types: instance ToQuery ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: instance ToQuery InstanceGroupState
- Network.AWS.EMR.Types: instance ToQuery InstanceGroupStateChangeReasonCode
- Network.AWS.EMR.Types: instance ToQuery InstanceGroupType
- Network.AWS.EMR.Types: instance ToQuery InstanceRoleType
- Network.AWS.EMR.Types: instance ToQuery InstanceState
- Network.AWS.EMR.Types: instance ToQuery InstanceStateChangeReasonCode
- Network.AWS.EMR.Types: instance ToQuery JobFlowExecutionState
- Network.AWS.EMR.Types: instance ToQuery MarketType
- Network.AWS.EMR.Types: instance ToQuery StepExecutionState
- Network.AWS.EMR.Types: instance ToQuery StepState
- Network.AWS.EMR.Types: instance ToQuery StepStateChangeReasonCode
- Network.AWS.EMR.Types: instance ToText ActionOnFailure
- Network.AWS.EMR.Types: instance ToText ClusterState
- Network.AWS.EMR.Types: instance ToText ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: instance ToText InstanceGroupState
- Network.AWS.EMR.Types: instance ToText InstanceGroupStateChangeReasonCode
- Network.AWS.EMR.Types: instance ToText InstanceGroupType
- Network.AWS.EMR.Types: instance ToText InstanceRoleType
- Network.AWS.EMR.Types: instance ToText InstanceState
- Network.AWS.EMR.Types: instance ToText InstanceStateChangeReasonCode
- Network.AWS.EMR.Types: instance ToText JobFlowExecutionState
- Network.AWS.EMR.Types: instance ToText MarketType
- Network.AWS.EMR.Types: instance ToText StepExecutionState
- Network.AWS.EMR.Types: instance ToText StepState
- Network.AWS.EMR.Types: instance ToText StepStateChangeReasonCode
- Network.AWS.EMR.Types: instanceGroupDetail :: MarketType -> InstanceRoleType -> Text -> Int -> Int -> InstanceGroupState -> UTCTime -> InstanceGroupDetail
- Network.AWS.EMR.Types: jfdAmiVersion :: Lens' JobFlowDetail (Maybe Text)
- Network.AWS.EMR.Types: jfdBootstrapActions :: Lens' JobFlowDetail [BootstrapActionDetail]
- Network.AWS.EMR.Types: jfdExecutionStatusDetail :: Lens' JobFlowDetail JobFlowExecutionStatusDetail
- Network.AWS.EMR.Types: jfdInstances :: Lens' JobFlowDetail JobFlowInstancesDetail
- Network.AWS.EMR.Types: jfdJobFlowId :: Lens' JobFlowDetail Text
- Network.AWS.EMR.Types: jfdJobFlowRole :: Lens' JobFlowDetail (Maybe Text)
- Network.AWS.EMR.Types: jfdLogUri :: Lens' JobFlowDetail (Maybe Text)
- Network.AWS.EMR.Types: jfdName :: Lens' JobFlowDetail Text
- Network.AWS.EMR.Types: jfdServiceRole :: Lens' JobFlowDetail (Maybe Text)
- Network.AWS.EMR.Types: jfdSteps :: Lens' JobFlowDetail [StepDetail]
- Network.AWS.EMR.Types: jfdSupportedProducts :: Lens' JobFlowDetail [Text]
- Network.AWS.EMR.Types: jfdVisibleToAllUsers :: Lens' JobFlowDetail (Maybe Bool)
- Network.AWS.EMR.Types: jfesdCreationDateTime :: Lens' JobFlowExecutionStatusDetail UTCTime
- Network.AWS.EMR.Types: jfesdEndDateTime :: Lens' JobFlowExecutionStatusDetail (Maybe UTCTime)
- Network.AWS.EMR.Types: jfesdLastStateChangeReason :: Lens' JobFlowExecutionStatusDetail (Maybe Text)
- Network.AWS.EMR.Types: jfesdReadyDateTime :: Lens' JobFlowExecutionStatusDetail (Maybe UTCTime)
- Network.AWS.EMR.Types: jfesdStartDateTime :: Lens' JobFlowExecutionStatusDetail (Maybe UTCTime)
- Network.AWS.EMR.Types: jfesdState :: Lens' JobFlowExecutionStatusDetail JobFlowExecutionState
- Network.AWS.EMR.Types: jficEc2KeyName :: Lens' JobFlowInstancesConfig (Maybe Text)
- Network.AWS.EMR.Types: jficEc2SubnetId :: Lens' JobFlowInstancesConfig (Maybe Text)
- Network.AWS.EMR.Types: jfidEc2KeyName :: Lens' JobFlowInstancesDetail (Maybe Text)
- Network.AWS.EMR.Types: jfidEc2SubnetId :: Lens' JobFlowInstancesDetail (Maybe Text)
- Network.AWS.EMR.Types: jfidHadoopVersion :: Lens' JobFlowInstancesDetail (Maybe Text)
- Network.AWS.EMR.Types: jfidInstanceCount :: Lens' JobFlowInstancesDetail Int
- Network.AWS.EMR.Types: jfidInstanceGroups :: Lens' JobFlowInstancesDetail [InstanceGroupDetail]
- Network.AWS.EMR.Types: jfidKeepJobFlowAliveWhenNoSteps :: Lens' JobFlowInstancesDetail (Maybe Bool)
- Network.AWS.EMR.Types: jfidMasterInstanceId :: Lens' JobFlowInstancesDetail (Maybe Text)
- Network.AWS.EMR.Types: jfidMasterInstanceType :: Lens' JobFlowInstancesDetail Text
- Network.AWS.EMR.Types: jfidMasterPublicDnsName :: Lens' JobFlowInstancesDetail (Maybe Text)
- Network.AWS.EMR.Types: jfidNormalizedInstanceHours :: Lens' JobFlowInstancesDetail (Maybe Int)
- Network.AWS.EMR.Types: jfidPlacement :: Lens' JobFlowInstancesDetail (Maybe PlacementType)
- Network.AWS.EMR.Types: jfidSlaveInstanceType :: Lens' JobFlowInstancesDetail Text
- Network.AWS.EMR.Types: jfidTerminationProtected :: Lens' JobFlowInstancesDetail (Maybe Bool)
- Network.AWS.EMR.Types: jobFlowDetail :: Text -> Text -> JobFlowExecutionStatusDetail -> JobFlowInstancesDetail -> JobFlowDetail
- Network.AWS.EMR.Types: jobFlowExecutionStatusDetail :: JobFlowExecutionState -> UTCTime -> JobFlowExecutionStatusDetail
- Network.AWS.EMR.Types: jobFlowInstancesDetail :: Text -> Text -> Int -> JobFlowInstancesDetail
- Network.AWS.EMR.Types: scHadoopJarStep :: Lens' StepConfig HadoopJarStepConfig
- Network.AWS.EMR.Types: sdExecutionStatusDetail :: Lens' StepDetail StepExecutionStatusDetail
- Network.AWS.EMR.Types: sdStepConfig :: Lens' StepDetail StepConfig
- Network.AWS.EMR.Types: sesdCreationDateTime :: Lens' StepExecutionStatusDetail UTCTime
- Network.AWS.EMR.Types: sesdEndDateTime :: Lens' StepExecutionStatusDetail (Maybe UTCTime)
- Network.AWS.EMR.Types: sesdLastStateChangeReason :: Lens' StepExecutionStatusDetail (Maybe Text)
- Network.AWS.EMR.Types: sesdStartDateTime :: Lens' StepExecutionStatusDetail (Maybe UTCTime)
- Network.AWS.EMR.Types: sesdState :: Lens' StepExecutionStatusDetail StepExecutionState
- Network.AWS.EMR.Types: stepDetail :: StepConfig -> StepExecutionStatusDetail -> StepDetail
- Network.AWS.EMR.Types: stepExecutionStatusDetail :: StepExecutionState -> UTCTime -> StepExecutionStatusDetail
+ Network.AWS.EMR: AllStepsCompleted :: ClusterStateChangeReasonCode
+ Network.AWS.EMR: BootstrapFailure :: ClusterStateChangeReasonCode
+ Network.AWS.EMR: Bootstrapping :: ClusterState
+ Network.AWS.EMR: CancelAndWait :: ActionOnFailure
+ Network.AWS.EMR: Continue :: ActionOnFailure
+ Network.AWS.EMR: Core :: InstanceRoleType
+ Network.AWS.EMR: IGSArrested :: InstanceGroupState
+ Network.AWS.EMR: IGSBootstrapping :: InstanceGroupState
+ Network.AWS.EMR: IGSCRCClusterTerminated :: InstanceGroupStateChangeReasonCode
+ Network.AWS.EMR: IGSCRCInstanceFailure :: InstanceGroupStateChangeReasonCode
+ Network.AWS.EMR: IGSCRCInternalError :: InstanceGroupStateChangeReasonCode
+ Network.AWS.EMR: IGSCRCValidationError :: InstanceGroupStateChangeReasonCode
+ Network.AWS.EMR: IGSEnded :: InstanceGroupState
+ Network.AWS.EMR: IGSProvisioning :: InstanceGroupState
+ Network.AWS.EMR: IGSResizing :: InstanceGroupState
+ Network.AWS.EMR: IGSRunning :: InstanceGroupState
+ Network.AWS.EMR: IGSShuttingDown :: InstanceGroupState
+ Network.AWS.EMR: IGSSuspended :: InstanceGroupState
+ Network.AWS.EMR: IGSTerminated :: InstanceGroupState
+ Network.AWS.EMR: IGSTerminating :: InstanceGroupState
+ Network.AWS.EMR: IGTCore :: InstanceGroupType
+ Network.AWS.EMR: IGTMaster :: InstanceGroupType
+ Network.AWS.EMR: IGTTask :: InstanceGroupType
+ Network.AWS.EMR: ISAwaitingFulfillment :: InstanceState
+ Network.AWS.EMR: ISBootstrapping :: InstanceState
+ Network.AWS.EMR: ISCRCBootstrapFailure :: InstanceStateChangeReasonCode
+ Network.AWS.EMR: ISCRCClusterTerminated :: InstanceStateChangeReasonCode
+ Network.AWS.EMR: ISCRCInstanceFailure :: InstanceStateChangeReasonCode
+ Network.AWS.EMR: ISCRCInternalError :: InstanceStateChangeReasonCode
+ Network.AWS.EMR: ISCRCValidationError :: InstanceStateChangeReasonCode
+ Network.AWS.EMR: ISProvisioning :: InstanceState
+ Network.AWS.EMR: ISRunning :: InstanceState
+ Network.AWS.EMR: ISTerminated :: InstanceState
+ Network.AWS.EMR: InstanceFailure :: ClusterStateChangeReasonCode
+ Network.AWS.EMR: InternalError :: ClusterStateChangeReasonCode
+ Network.AWS.EMR: Master :: InstanceRoleType
+ Network.AWS.EMR: None :: StepStateChangeReasonCode
+ Network.AWS.EMR: OnDemand :: MarketType
+ Network.AWS.EMR: Running :: ClusterState
+ Network.AWS.EMR: SSCancelled :: StepState
+ Network.AWS.EMR: SSCompleted :: StepState
+ Network.AWS.EMR: SSFailed :: StepState
+ Network.AWS.EMR: SSInterrupted :: StepState
+ Network.AWS.EMR: SSPending :: StepState
+ Network.AWS.EMR: SSRunning :: StepState
+ Network.AWS.EMR: Spot :: MarketType
+ Network.AWS.EMR: Starting :: ClusterState
+ Network.AWS.EMR: StepFailure :: ClusterStateChangeReasonCode
+ Network.AWS.EMR: Task :: InstanceRoleType
+ Network.AWS.EMR: TerminateCluster :: ActionOnFailure
+ Network.AWS.EMR: TerminateJobFlow :: ActionOnFailure
+ Network.AWS.EMR: Terminated :: ClusterState
+ Network.AWS.EMR: TerminatedWithErrors :: ClusterState
+ Network.AWS.EMR: Terminating :: ClusterState
+ Network.AWS.EMR: UserRequest :: ClusterStateChangeReasonCode
+ Network.AWS.EMR: ValidationError :: ClusterStateChangeReasonCode
+ Network.AWS.EMR: Waiting :: ClusterState
+ Network.AWS.EMR: _InternalServerError :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.EMR: _InternalServerException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.EMR: _InvalidRequestException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.EMR: aAdditionalInfo :: Lens' Application (HashMap Text Text)
+ Network.AWS.EMR: aArgs :: Lens' Application [Text]
+ Network.AWS.EMR: aName :: Lens' Application (Maybe Text)
+ Network.AWS.EMR: aVersion :: Lens' Application (Maybe Text)
+ Network.AWS.EMR: application :: Application
+ Network.AWS.EMR: bacName :: Lens' BootstrapActionConfig Text
+ Network.AWS.EMR: bacScriptBootstrapAction :: Lens' BootstrapActionConfig ScriptBootstrapActionConfig
+ Network.AWS.EMR: bootstrapActionConfig :: Text -> ScriptBootstrapActionConfig -> BootstrapActionConfig
+ Network.AWS.EMR: cArgs :: Lens' Command [Text]
+ Network.AWS.EMR: cClassification :: Lens' Configuration (Maybe Text)
+ Network.AWS.EMR: cConfigurations :: Lens' Configuration [Configuration]
+ Network.AWS.EMR: cName :: Lens' Command (Maybe Text)
+ Network.AWS.EMR: cProperties :: Lens' Configuration (HashMap Text Text)
+ Network.AWS.EMR: cScriptPath :: Lens' Command (Maybe Text)
+ Network.AWS.EMR: cluApplications :: Lens' Cluster [Application]
+ Network.AWS.EMR: cluAutoTerminate :: Lens' Cluster (Maybe Bool)
+ Network.AWS.EMR: cluConfigurations :: Lens' Cluster [Configuration]
+ Network.AWS.EMR: cluEC2InstanceAttributes :: Lens' Cluster (Maybe EC2InstanceAttributes)
+ Network.AWS.EMR: cluId :: Lens' Cluster Text
+ Network.AWS.EMR: cluLogURI :: Lens' Cluster (Maybe Text)
+ Network.AWS.EMR: cluMasterPublicDNSName :: Lens' Cluster (Maybe Text)
+ Network.AWS.EMR: cluName :: Lens' Cluster Text
+ Network.AWS.EMR: cluNormalizedInstanceHours :: Lens' Cluster (Maybe Int)
+ Network.AWS.EMR: cluReleaseLabel :: Lens' Cluster (Maybe Text)
+ Network.AWS.EMR: cluRequestedAMIVersion :: Lens' Cluster (Maybe Text)
+ Network.AWS.EMR: cluRunningAMIVersion :: Lens' Cluster (Maybe Text)
+ Network.AWS.EMR: cluServiceRole :: Lens' Cluster (Maybe Text)
+ Network.AWS.EMR: cluStatus :: Lens' Cluster ClusterStatus
+ Network.AWS.EMR: cluTags :: Lens' Cluster [Tag]
+ Network.AWS.EMR: cluTerminationProtected :: Lens' Cluster (Maybe Bool)
+ Network.AWS.EMR: cluVisibleToAllUsers :: Lens' Cluster (Maybe Bool)
+ Network.AWS.EMR: cluster :: Text -> Text -> ClusterStatus -> Cluster
+ Network.AWS.EMR: clusterRunning :: Wait DescribeCluster
+ Network.AWS.EMR: clusterStateChangeReason :: ClusterStateChangeReason
+ Network.AWS.EMR: clusterStatus :: ClusterStatus
+ Network.AWS.EMR: clusterSummary :: ClusterSummary
+ Network.AWS.EMR: clusterTimeline :: ClusterTimeline
+ Network.AWS.EMR: command :: Command
+ Network.AWS.EMR: configuration :: Configuration
+ Network.AWS.EMR: csId :: Lens' ClusterSummary (Maybe Text)
+ Network.AWS.EMR: csName :: Lens' ClusterSummary (Maybe Text)
+ Network.AWS.EMR: csNormalizedInstanceHours :: Lens' ClusterSummary (Maybe Int)
+ Network.AWS.EMR: csState :: Lens' ClusterStatus (Maybe ClusterState)
+ Network.AWS.EMR: csStateChangeReason :: Lens' ClusterStatus (Maybe ClusterStateChangeReason)
+ Network.AWS.EMR: csStatus :: Lens' ClusterSummary (Maybe ClusterStatus)
+ Network.AWS.EMR: csTimeline :: Lens' ClusterStatus (Maybe ClusterTimeline)
+ Network.AWS.EMR: cscrCode :: Lens' ClusterStateChangeReason (Maybe ClusterStateChangeReasonCode)
+ Network.AWS.EMR: cscrMessage :: Lens' ClusterStateChangeReason (Maybe Text)
+ Network.AWS.EMR: ctCreationDateTime :: Lens' ClusterTimeline (Maybe UTCTime)
+ Network.AWS.EMR: ctEndDateTime :: Lens' ClusterTimeline (Maybe UTCTime)
+ Network.AWS.EMR: ctReadyDateTime :: Lens' ClusterTimeline (Maybe UTCTime)
+ Network.AWS.EMR: data ActionOnFailure
+ Network.AWS.EMR: data Application
+ Network.AWS.EMR: data BootstrapActionConfig
+ Network.AWS.EMR: data Cluster
+ Network.AWS.EMR: data ClusterState
+ Network.AWS.EMR: data ClusterStateChangeReason
+ Network.AWS.EMR: data ClusterStateChangeReasonCode
+ Network.AWS.EMR: data ClusterStatus
+ Network.AWS.EMR: data ClusterSummary
+ Network.AWS.EMR: data ClusterTimeline
+ Network.AWS.EMR: data Command
+ Network.AWS.EMR: data Configuration
+ Network.AWS.EMR: data EC2InstanceAttributes
+ Network.AWS.EMR: data EMR
+ Network.AWS.EMR: data HadoopJARStepConfig
+ Network.AWS.EMR: data HadoopStepConfig
+ Network.AWS.EMR: data Instance
+ Network.AWS.EMR: data InstanceGroup
+ Network.AWS.EMR: data InstanceGroupConfig
+ Network.AWS.EMR: data InstanceGroupModifyConfig
+ Network.AWS.EMR: data InstanceGroupState
+ Network.AWS.EMR: data InstanceGroupStateChangeReason
+ Network.AWS.EMR: data InstanceGroupStateChangeReasonCode
+ Network.AWS.EMR: data InstanceGroupStatus
+ Network.AWS.EMR: data InstanceGroupTimeline
+ Network.AWS.EMR: data InstanceGroupType
+ Network.AWS.EMR: data InstanceRoleType
+ Network.AWS.EMR: data InstanceState
+ Network.AWS.EMR: data InstanceStateChangeReason
+ Network.AWS.EMR: data InstanceStateChangeReasonCode
+ Network.AWS.EMR: data InstanceStatus
+ Network.AWS.EMR: data InstanceTimeline
+ Network.AWS.EMR: data JobFlowInstancesConfig
+ Network.AWS.EMR: data KeyValue
+ Network.AWS.EMR: data MarketType
+ Network.AWS.EMR: data PlacementType
+ Network.AWS.EMR: data ScriptBootstrapActionConfig
+ Network.AWS.EMR: data Step
+ Network.AWS.EMR: data StepConfig
+ Network.AWS.EMR: data StepState
+ Network.AWS.EMR: data StepStateChangeReason
+ Network.AWS.EMR: data StepStateChangeReasonCode
+ Network.AWS.EMR: data StepStatus
+ Network.AWS.EMR: data StepSummary
+ Network.AWS.EMR: data StepTimeline
+ Network.AWS.EMR: data SupportedProductConfig
+ Network.AWS.EMR: data Tag
+ Network.AWS.EMR: ec2InstanceAttributes :: EC2InstanceAttributes
+ Network.AWS.EMR: eiaAdditionalMasterSecurityGroups :: Lens' EC2InstanceAttributes [Text]
+ Network.AWS.EMR: eiaAdditionalSlaveSecurityGroups :: Lens' EC2InstanceAttributes [Text]
+ Network.AWS.EMR: eiaEC2AvailabilityZone :: Lens' EC2InstanceAttributes (Maybe Text)
+ Network.AWS.EMR: eiaEC2KeyName :: Lens' EC2InstanceAttributes (Maybe Text)
+ Network.AWS.EMR: eiaEC2SubnetId :: Lens' EC2InstanceAttributes (Maybe Text)
+ Network.AWS.EMR: eiaEmrManagedMasterSecurityGroup :: Lens' EC2InstanceAttributes (Maybe Text)
+ Network.AWS.EMR: eiaEmrManagedSlaveSecurityGroup :: Lens' EC2InstanceAttributes (Maybe Text)
+ Network.AWS.EMR: eiaIAMInstanceProfile :: Lens' EC2InstanceAttributes (Maybe Text)
+ Network.AWS.EMR: hadoopJARStepConfig :: Text -> HadoopJARStepConfig
+ Network.AWS.EMR: hadoopStepConfig :: HadoopStepConfig
+ Network.AWS.EMR: hjscArgs :: Lens' HadoopJARStepConfig [Text]
+ Network.AWS.EMR: hjscJAR :: Lens' HadoopJARStepConfig Text
+ Network.AWS.EMR: hjscMainClass :: Lens' HadoopJARStepConfig (Maybe Text)
+ Network.AWS.EMR: hjscProperties :: Lens' HadoopJARStepConfig [KeyValue]
+ Network.AWS.EMR: hscArgs :: Lens' HadoopStepConfig [Text]
+ Network.AWS.EMR: hscJAR :: Lens' HadoopStepConfig (Maybe Text)
+ Network.AWS.EMR: hscMainClass :: Lens' HadoopStepConfig (Maybe Text)
+ Network.AWS.EMR: hscProperties :: Lens' HadoopStepConfig (HashMap Text Text)
+ Network.AWS.EMR: iEC2InstanceId :: Lens' Instance (Maybe Text)
+ Network.AWS.EMR: iId :: Lens' Instance (Maybe Text)
+ Network.AWS.EMR: iPrivateDNSName :: Lens' Instance (Maybe Text)
+ Network.AWS.EMR: iPrivateIPAddress :: Lens' Instance (Maybe Text)
+ Network.AWS.EMR: iPublicDNSName :: Lens' Instance (Maybe Text)
+ Network.AWS.EMR: iPublicIPAddress :: Lens' Instance (Maybe Text)
+ Network.AWS.EMR: iStatus :: Lens' Instance (Maybe InstanceStatus)
+ Network.AWS.EMR: igBidPrice :: Lens' InstanceGroup (Maybe Text)
+ Network.AWS.EMR: igConfigurations :: Lens' InstanceGroup [Configuration]
+ Network.AWS.EMR: igId :: Lens' InstanceGroup (Maybe Text)
+ Network.AWS.EMR: igInstanceGroupType :: Lens' InstanceGroup (Maybe InstanceGroupType)
+ Network.AWS.EMR: igInstanceType :: Lens' InstanceGroup (Maybe Text)
+ Network.AWS.EMR: igMarket :: Lens' InstanceGroup (Maybe MarketType)
+ Network.AWS.EMR: igName :: Lens' InstanceGroup (Maybe Text)
+ Network.AWS.EMR: igRequestedInstanceCount :: Lens' InstanceGroup (Maybe Int)
+ Network.AWS.EMR: igRunningInstanceCount :: Lens' InstanceGroup (Maybe Int)
+ Network.AWS.EMR: igStatus :: Lens' InstanceGroup (Maybe InstanceGroupStatus)
+ Network.AWS.EMR: igcBidPrice :: Lens' InstanceGroupConfig (Maybe Text)
+ Network.AWS.EMR: igcConfigurations :: Lens' InstanceGroupConfig [Configuration]
+ Network.AWS.EMR: igcInstanceCount :: Lens' InstanceGroupConfig Int
+ Network.AWS.EMR: igcInstanceRole :: Lens' InstanceGroupConfig InstanceRoleType
+ Network.AWS.EMR: igcInstanceType :: Lens' InstanceGroupConfig Text
+ Network.AWS.EMR: igcMarket :: Lens' InstanceGroupConfig (Maybe MarketType)
+ Network.AWS.EMR: igcName :: Lens' InstanceGroupConfig (Maybe Text)
+ Network.AWS.EMR: igmcEC2InstanceIdsToTerminate :: Lens' InstanceGroupModifyConfig [Text]
+ Network.AWS.EMR: igmcInstanceCount :: Lens' InstanceGroupModifyConfig (Maybe Int)
+ Network.AWS.EMR: igmcInstanceGroupId :: Lens' InstanceGroupModifyConfig Text
+ Network.AWS.EMR: igsState :: Lens' InstanceGroupStatus (Maybe InstanceGroupState)
+ Network.AWS.EMR: igsStateChangeReason :: Lens' InstanceGroupStatus (Maybe InstanceGroupStateChangeReason)
+ Network.AWS.EMR: igsTimeline :: Lens' InstanceGroupStatus (Maybe InstanceGroupTimeline)
+ Network.AWS.EMR: igscrCode :: Lens' InstanceGroupStateChangeReason (Maybe InstanceGroupStateChangeReasonCode)
+ Network.AWS.EMR: igscrMessage :: Lens' InstanceGroupStateChangeReason (Maybe Text)
+ Network.AWS.EMR: igtCreationDateTime :: Lens' InstanceGroupTimeline (Maybe UTCTime)
+ Network.AWS.EMR: igtEndDateTime :: Lens' InstanceGroupTimeline (Maybe UTCTime)
+ Network.AWS.EMR: igtReadyDateTime :: Lens' InstanceGroupTimeline (Maybe UTCTime)
+ Network.AWS.EMR: instance' :: Instance
+ Network.AWS.EMR: instanceGroup :: InstanceGroup
+ Network.AWS.EMR: instanceGroupConfig :: InstanceRoleType -> Text -> Int -> InstanceGroupConfig
+ Network.AWS.EMR: instanceGroupModifyConfig :: Text -> InstanceGroupModifyConfig
+ Network.AWS.EMR: instanceGroupStateChangeReason :: InstanceGroupStateChangeReason
+ Network.AWS.EMR: instanceGroupStatus :: InstanceGroupStatus
+ Network.AWS.EMR: instanceGroupTimeline :: InstanceGroupTimeline
+ Network.AWS.EMR: instanceStateChangeReason :: InstanceStateChangeReason
+ Network.AWS.EMR: instanceStatus :: InstanceStatus
+ Network.AWS.EMR: instanceTimeline :: InstanceTimeline
+ Network.AWS.EMR: isState :: Lens' InstanceStatus (Maybe InstanceState)
+ Network.AWS.EMR: isStateChangeReason :: Lens' InstanceStatus (Maybe InstanceStateChangeReason)
+ Network.AWS.EMR: isTimeline :: Lens' InstanceStatus (Maybe InstanceTimeline)
+ Network.AWS.EMR: iscrCode :: Lens' InstanceStateChangeReason (Maybe InstanceStateChangeReasonCode)
+ Network.AWS.EMR: iscrMessage :: Lens' InstanceStateChangeReason (Maybe Text)
+ Network.AWS.EMR: itCreationDateTime :: Lens' InstanceTimeline (Maybe UTCTime)
+ Network.AWS.EMR: itEndDateTime :: Lens' InstanceTimeline (Maybe UTCTime)
+ Network.AWS.EMR: itReadyDateTime :: Lens' InstanceTimeline (Maybe UTCTime)
+ Network.AWS.EMR: jficAdditionalMasterSecurityGroups :: Lens' JobFlowInstancesConfig [Text]
+ Network.AWS.EMR: jficAdditionalSlaveSecurityGroups :: Lens' JobFlowInstancesConfig [Text]
+ Network.AWS.EMR: jficEC2KeyName :: Lens' JobFlowInstancesConfig (Maybe Text)
+ Network.AWS.EMR: jficEC2SubnetId :: Lens' JobFlowInstancesConfig (Maybe Text)
+ Network.AWS.EMR: jficEmrManagedMasterSecurityGroup :: Lens' JobFlowInstancesConfig (Maybe Text)
+ Network.AWS.EMR: jficEmrManagedSlaveSecurityGroup :: Lens' JobFlowInstancesConfig (Maybe Text)
+ Network.AWS.EMR: jficHadoopVersion :: Lens' JobFlowInstancesConfig (Maybe Text)
+ Network.AWS.EMR: jficInstanceCount :: Lens' JobFlowInstancesConfig (Maybe Int)
+ Network.AWS.EMR: jficInstanceGroups :: Lens' JobFlowInstancesConfig [InstanceGroupConfig]
+ Network.AWS.EMR: jficKeepJobFlowAliveWhenNoSteps :: Lens' JobFlowInstancesConfig (Maybe Bool)
+ Network.AWS.EMR: jficMasterInstanceType :: Lens' JobFlowInstancesConfig (Maybe Text)
+ Network.AWS.EMR: jficPlacement :: Lens' JobFlowInstancesConfig (Maybe PlacementType)
+ Network.AWS.EMR: jficSlaveInstanceType :: Lens' JobFlowInstancesConfig (Maybe Text)
+ Network.AWS.EMR: jficTerminationProtected :: Lens' JobFlowInstancesConfig (Maybe Bool)
+ Network.AWS.EMR: jobFlowInstancesConfig :: JobFlowInstancesConfig
+ Network.AWS.EMR: keyValue :: KeyValue
+ Network.AWS.EMR: kvKey :: Lens' KeyValue (Maybe Text)
+ Network.AWS.EMR: kvValue :: Lens' KeyValue (Maybe Text)
+ Network.AWS.EMR: placementType :: Text -> PlacementType
+ Network.AWS.EMR: ptAvailabilityZone :: Lens' PlacementType Text
+ Network.AWS.EMR: sActionOnFailure :: Lens' Step (Maybe ActionOnFailure)
+ Network.AWS.EMR: sConfig :: Lens' Step (Maybe HadoopStepConfig)
+ Network.AWS.EMR: sId :: Lens' Step (Maybe Text)
+ Network.AWS.EMR: sName :: Lens' Step (Maybe Text)
+ Network.AWS.EMR: sStatus :: Lens' Step (Maybe StepStatus)
+ Network.AWS.EMR: sbacArgs :: Lens' ScriptBootstrapActionConfig [Text]
+ Network.AWS.EMR: sbacPath :: Lens' ScriptBootstrapActionConfig Text
+ Network.AWS.EMR: scActionOnFailure :: Lens' StepConfig (Maybe ActionOnFailure)
+ Network.AWS.EMR: scHadoopJARStep :: Lens' StepConfig HadoopJARStepConfig
+ Network.AWS.EMR: scName :: Lens' StepConfig Text
+ Network.AWS.EMR: scriptBootstrapActionConfig :: Text -> ScriptBootstrapActionConfig
+ Network.AWS.EMR: spcArgs :: Lens' SupportedProductConfig [Text]
+ Network.AWS.EMR: spcName :: Lens' SupportedProductConfig (Maybe Text)
+ Network.AWS.EMR: ssActionOnFailure :: Lens' StepSummary (Maybe ActionOnFailure)
+ Network.AWS.EMR: ssConfig :: Lens' StepSummary (Maybe HadoopStepConfig)
+ Network.AWS.EMR: ssId :: Lens' StepSummary (Maybe Text)
+ Network.AWS.EMR: ssName :: Lens' StepSummary (Maybe Text)
+ Network.AWS.EMR: ssState :: Lens' StepStatus (Maybe StepState)
+ Network.AWS.EMR: ssStateChangeReason :: Lens' StepStatus (Maybe StepStateChangeReason)
+ Network.AWS.EMR: ssStatus :: Lens' StepSummary (Maybe StepStatus)
+ Network.AWS.EMR: ssTimeline :: Lens' StepStatus (Maybe StepTimeline)
+ Network.AWS.EMR: sscrCode :: Lens' StepStateChangeReason (Maybe StepStateChangeReasonCode)
+ Network.AWS.EMR: sscrMessage :: Lens' StepStateChangeReason (Maybe Text)
+ Network.AWS.EMR: stCreationDateTime :: Lens' StepTimeline (Maybe UTCTime)
+ Network.AWS.EMR: stEndDateTime :: Lens' StepTimeline (Maybe UTCTime)
+ Network.AWS.EMR: stStartDateTime :: Lens' StepTimeline (Maybe UTCTime)
+ Network.AWS.EMR: step :: Step
+ Network.AWS.EMR: stepConfig :: Text -> HadoopJARStepConfig -> StepConfig
+ Network.AWS.EMR: stepStateChangeReason :: StepStateChangeReason
+ Network.AWS.EMR: stepStatus :: StepStatus
+ Network.AWS.EMR: stepSummary :: StepSummary
+ Network.AWS.EMR: stepTimeline :: StepTimeline
+ Network.AWS.EMR: supportedProductConfig :: SupportedProductConfig
+ Network.AWS.EMR: tag :: Tag
+ Network.AWS.EMR: tagKey :: Lens' Tag (Maybe Text)
+ Network.AWS.EMR: tagValue :: Lens' Tag (Maybe Text)
+ Network.AWS.EMR.AddInstanceGroups: aigrsInstanceGroupIds :: Lens' AddInstanceGroupsResponse [Text]
+ Network.AWS.EMR.AddInstanceGroups: aigrsJobFlowId :: Lens' AddInstanceGroupsResponse (Maybe Text)
+ Network.AWS.EMR.AddInstanceGroups: aigrsStatus :: Lens' AddInstanceGroupsResponse Int
+ Network.AWS.EMR.AddInstanceGroups: instance Constructor C1_0AddInstanceGroups
+ Network.AWS.EMR.AddInstanceGroups: instance Constructor C1_0AddInstanceGroupsResponse
+ Network.AWS.EMR.AddInstanceGroups: instance Data AddInstanceGroups
+ Network.AWS.EMR.AddInstanceGroups: instance Data AddInstanceGroupsResponse
+ Network.AWS.EMR.AddInstanceGroups: instance Datatype D1AddInstanceGroups
+ Network.AWS.EMR.AddInstanceGroups: instance Datatype D1AddInstanceGroupsResponse
+ Network.AWS.EMR.AddInstanceGroups: instance Generic AddInstanceGroups
+ Network.AWS.EMR.AddInstanceGroups: instance Generic AddInstanceGroupsResponse
+ Network.AWS.EMR.AddInstanceGroups: instance Selector S1_0_0AddInstanceGroups
+ Network.AWS.EMR.AddInstanceGroups: instance Selector S1_0_0AddInstanceGroupsResponse
+ Network.AWS.EMR.AddInstanceGroups: instance Selector S1_0_1AddInstanceGroups
+ Network.AWS.EMR.AddInstanceGroups: instance Selector S1_0_1AddInstanceGroupsResponse
+ Network.AWS.EMR.AddInstanceGroups: instance Selector S1_0_2AddInstanceGroupsResponse
+ Network.AWS.EMR.AddInstanceGroups: instance Typeable AddInstanceGroups
+ Network.AWS.EMR.AddInstanceGroups: instance Typeable AddInstanceGroupsResponse
+ Network.AWS.EMR.AddJobFlowSteps: ajfsrsStatus :: Lens' AddJobFlowStepsResponse Int
+ Network.AWS.EMR.AddJobFlowSteps: ajfsrsStepIds :: Lens' AddJobFlowStepsResponse [Text]
+ Network.AWS.EMR.AddJobFlowSteps: instance Constructor C1_0AddJobFlowSteps
+ Network.AWS.EMR.AddJobFlowSteps: instance Constructor C1_0AddJobFlowStepsResponse
+ Network.AWS.EMR.AddJobFlowSteps: instance Data AddJobFlowSteps
+ Network.AWS.EMR.AddJobFlowSteps: instance Data AddJobFlowStepsResponse
+ Network.AWS.EMR.AddJobFlowSteps: instance Datatype D1AddJobFlowSteps
+ Network.AWS.EMR.AddJobFlowSteps: instance Datatype D1AddJobFlowStepsResponse
+ Network.AWS.EMR.AddJobFlowSteps: instance Generic AddJobFlowSteps
+ Network.AWS.EMR.AddJobFlowSteps: instance Generic AddJobFlowStepsResponse
+ Network.AWS.EMR.AddJobFlowSteps: instance Selector S1_0_0AddJobFlowSteps
+ Network.AWS.EMR.AddJobFlowSteps: instance Selector S1_0_0AddJobFlowStepsResponse
+ Network.AWS.EMR.AddJobFlowSteps: instance Selector S1_0_1AddJobFlowSteps
+ Network.AWS.EMR.AddJobFlowSteps: instance Selector S1_0_1AddJobFlowStepsResponse
+ Network.AWS.EMR.AddJobFlowSteps: instance Typeable AddJobFlowSteps
+ Network.AWS.EMR.AddJobFlowSteps: instance Typeable AddJobFlowStepsResponse
+ Network.AWS.EMR.AddTags: atrsStatus :: Lens' AddTagsResponse Int
+ Network.AWS.EMR.AddTags: instance Constructor C1_0AddTags
+ Network.AWS.EMR.AddTags: instance Data AddTags
+ Network.AWS.EMR.AddTags: instance Data AddTagsResponse
+ Network.AWS.EMR.AddTags: instance Datatype D1AddTags
+ Network.AWS.EMR.AddTags: instance Generic AddTags
+ Network.AWS.EMR.AddTags: instance Selector S1_0_0AddTags
+ Network.AWS.EMR.AddTags: instance Selector S1_0_0AddTagsResponse
+ Network.AWS.EMR.AddTags: instance Selector S1_0_1AddTags
+ Network.AWS.EMR.AddTags: instance Typeable AddTags
+ Network.AWS.EMR.AddTags: instance Typeable AddTagsResponse
+ Network.AWS.EMR.DescribeCluster: dcrsCluster :: Lens' DescribeClusterResponse Cluster
+ Network.AWS.EMR.DescribeCluster: dcrsStatus :: Lens' DescribeClusterResponse Int
+ Network.AWS.EMR.DescribeCluster: instance Constructor C1_0DescribeCluster
+ Network.AWS.EMR.DescribeCluster: instance Constructor C1_0DescribeClusterResponse
+ Network.AWS.EMR.DescribeCluster: instance Data DescribeCluster
+ Network.AWS.EMR.DescribeCluster: instance Data DescribeClusterResponse
+ Network.AWS.EMR.DescribeCluster: instance Datatype D1DescribeCluster
+ Network.AWS.EMR.DescribeCluster: instance Datatype D1DescribeClusterResponse
+ Network.AWS.EMR.DescribeCluster: instance Generic DescribeCluster
+ Network.AWS.EMR.DescribeCluster: instance Generic DescribeClusterResponse
+ Network.AWS.EMR.DescribeCluster: instance Selector S1_0_0DescribeCluster
+ Network.AWS.EMR.DescribeCluster: instance Selector S1_0_0DescribeClusterResponse
+ Network.AWS.EMR.DescribeCluster: instance Selector S1_0_1DescribeClusterResponse
+ Network.AWS.EMR.DescribeCluster: instance Typeable DescribeCluster
+ Network.AWS.EMR.DescribeCluster: instance Typeable DescribeClusterResponse
+ Network.AWS.EMR.DescribeStep: dsrsStatus :: Lens' DescribeStepResponse Int
+ Network.AWS.EMR.DescribeStep: dsrsStep :: Lens' DescribeStepResponse (Maybe Step)
+ Network.AWS.EMR.DescribeStep: instance Constructor C1_0DescribeStep
+ Network.AWS.EMR.DescribeStep: instance Constructor C1_0DescribeStepResponse
+ Network.AWS.EMR.DescribeStep: instance Data DescribeStep
+ Network.AWS.EMR.DescribeStep: instance Data DescribeStepResponse
+ Network.AWS.EMR.DescribeStep: instance Datatype D1DescribeStep
+ Network.AWS.EMR.DescribeStep: instance Datatype D1DescribeStepResponse
+ Network.AWS.EMR.DescribeStep: instance Generic DescribeStep
+ Network.AWS.EMR.DescribeStep: instance Generic DescribeStepResponse
+ Network.AWS.EMR.DescribeStep: instance Selector S1_0_0DescribeStep
+ Network.AWS.EMR.DescribeStep: instance Selector S1_0_0DescribeStepResponse
+ Network.AWS.EMR.DescribeStep: instance Selector S1_0_1DescribeStep
+ Network.AWS.EMR.DescribeStep: instance Selector S1_0_1DescribeStepResponse
+ Network.AWS.EMR.DescribeStep: instance Typeable DescribeStep
+ Network.AWS.EMR.DescribeStep: instance Typeable DescribeStepResponse
+ Network.AWS.EMR.ListBootstrapActions: instance Constructor C1_0ListBootstrapActions
+ Network.AWS.EMR.ListBootstrapActions: instance Constructor C1_0ListBootstrapActionsResponse
+ Network.AWS.EMR.ListBootstrapActions: instance Data ListBootstrapActions
+ Network.AWS.EMR.ListBootstrapActions: instance Data ListBootstrapActionsResponse
+ Network.AWS.EMR.ListBootstrapActions: instance Datatype D1ListBootstrapActions
+ Network.AWS.EMR.ListBootstrapActions: instance Datatype D1ListBootstrapActionsResponse
+ Network.AWS.EMR.ListBootstrapActions: instance Generic ListBootstrapActions
+ Network.AWS.EMR.ListBootstrapActions: instance Generic ListBootstrapActionsResponse
+ Network.AWS.EMR.ListBootstrapActions: instance Selector S1_0_0ListBootstrapActions
+ Network.AWS.EMR.ListBootstrapActions: instance Selector S1_0_0ListBootstrapActionsResponse
+ Network.AWS.EMR.ListBootstrapActions: instance Selector S1_0_1ListBootstrapActions
+ Network.AWS.EMR.ListBootstrapActions: instance Selector S1_0_1ListBootstrapActionsResponse
+ Network.AWS.EMR.ListBootstrapActions: instance Selector S1_0_2ListBootstrapActionsResponse
+ Network.AWS.EMR.ListBootstrapActions: instance Typeable ListBootstrapActions
+ Network.AWS.EMR.ListBootstrapActions: instance Typeable ListBootstrapActionsResponse
+ Network.AWS.EMR.ListBootstrapActions: lbarsBootstrapActions :: Lens' ListBootstrapActionsResponse [Command]
+ Network.AWS.EMR.ListBootstrapActions: lbarsMarker :: Lens' ListBootstrapActionsResponse (Maybe Text)
+ Network.AWS.EMR.ListBootstrapActions: lbarsStatus :: Lens' ListBootstrapActionsResponse Int
+ Network.AWS.EMR.ListClusters: instance Constructor C1_0ListClusters
+ Network.AWS.EMR.ListClusters: instance Constructor C1_0ListClustersResponse
+ Network.AWS.EMR.ListClusters: instance Data ListClusters
+ Network.AWS.EMR.ListClusters: instance Data ListClustersResponse
+ Network.AWS.EMR.ListClusters: instance Datatype D1ListClusters
+ Network.AWS.EMR.ListClusters: instance Datatype D1ListClustersResponse
+ Network.AWS.EMR.ListClusters: instance Generic ListClusters
+ Network.AWS.EMR.ListClusters: instance Generic ListClustersResponse
+ Network.AWS.EMR.ListClusters: instance Selector S1_0_0ListClusters
+ Network.AWS.EMR.ListClusters: instance Selector S1_0_0ListClustersResponse
+ Network.AWS.EMR.ListClusters: instance Selector S1_0_1ListClusters
+ Network.AWS.EMR.ListClusters: instance Selector S1_0_1ListClustersResponse
+ Network.AWS.EMR.ListClusters: instance Selector S1_0_2ListClusters
+ Network.AWS.EMR.ListClusters: instance Selector S1_0_2ListClustersResponse
+ Network.AWS.EMR.ListClusters: instance Selector S1_0_3ListClusters
+ Network.AWS.EMR.ListClusters: instance Typeable ListClusters
+ Network.AWS.EMR.ListClusters: instance Typeable ListClustersResponse
+ Network.AWS.EMR.ListClusters: lcrsClusters :: Lens' ListClustersResponse [ClusterSummary]
+ Network.AWS.EMR.ListClusters: lcrsMarker :: Lens' ListClustersResponse (Maybe Text)
+ Network.AWS.EMR.ListClusters: lcrsStatus :: Lens' ListClustersResponse Int
+ Network.AWS.EMR.ListInstanceGroups: instance Constructor C1_0ListInstanceGroups
+ Network.AWS.EMR.ListInstanceGroups: instance Constructor C1_0ListInstanceGroupsResponse
+ Network.AWS.EMR.ListInstanceGroups: instance Data ListInstanceGroups
+ Network.AWS.EMR.ListInstanceGroups: instance Data ListInstanceGroupsResponse
+ Network.AWS.EMR.ListInstanceGroups: instance Datatype D1ListInstanceGroups
+ Network.AWS.EMR.ListInstanceGroups: instance Datatype D1ListInstanceGroupsResponse
+ Network.AWS.EMR.ListInstanceGroups: instance Generic ListInstanceGroups
+ Network.AWS.EMR.ListInstanceGroups: instance Generic ListInstanceGroupsResponse
+ Network.AWS.EMR.ListInstanceGroups: instance Selector S1_0_0ListInstanceGroups
+ Network.AWS.EMR.ListInstanceGroups: instance Selector S1_0_0ListInstanceGroupsResponse
+ Network.AWS.EMR.ListInstanceGroups: instance Selector S1_0_1ListInstanceGroups
+ Network.AWS.EMR.ListInstanceGroups: instance Selector S1_0_1ListInstanceGroupsResponse
+ Network.AWS.EMR.ListInstanceGroups: instance Selector S1_0_2ListInstanceGroupsResponse
+ Network.AWS.EMR.ListInstanceGroups: instance Typeable ListInstanceGroups
+ Network.AWS.EMR.ListInstanceGroups: instance Typeable ListInstanceGroupsResponse
+ Network.AWS.EMR.ListInstanceGroups: ligrsInstanceGroups :: Lens' ListInstanceGroupsResponse [InstanceGroup]
+ Network.AWS.EMR.ListInstanceGroups: ligrsMarker :: Lens' ListInstanceGroupsResponse (Maybe Text)
+ Network.AWS.EMR.ListInstanceGroups: ligrsStatus :: Lens' ListInstanceGroupsResponse Int
+ Network.AWS.EMR.ListInstances: instance Constructor C1_0ListInstances
+ Network.AWS.EMR.ListInstances: instance Constructor C1_0ListInstancesResponse
+ Network.AWS.EMR.ListInstances: instance Data ListInstances
+ Network.AWS.EMR.ListInstances: instance Data ListInstancesResponse
+ Network.AWS.EMR.ListInstances: instance Datatype D1ListInstances
+ Network.AWS.EMR.ListInstances: instance Datatype D1ListInstancesResponse
+ Network.AWS.EMR.ListInstances: instance Generic ListInstances
+ Network.AWS.EMR.ListInstances: instance Generic ListInstancesResponse
+ Network.AWS.EMR.ListInstances: instance Selector S1_0_0ListInstances
+ Network.AWS.EMR.ListInstances: instance Selector S1_0_0ListInstancesResponse
+ Network.AWS.EMR.ListInstances: instance Selector S1_0_1ListInstances
+ Network.AWS.EMR.ListInstances: instance Selector S1_0_1ListInstancesResponse
+ Network.AWS.EMR.ListInstances: instance Selector S1_0_2ListInstances
+ Network.AWS.EMR.ListInstances: instance Selector S1_0_2ListInstancesResponse
+ Network.AWS.EMR.ListInstances: instance Selector S1_0_3ListInstances
+ Network.AWS.EMR.ListInstances: instance Typeable ListInstances
+ Network.AWS.EMR.ListInstances: instance Typeable ListInstancesResponse
+ Network.AWS.EMR.ListInstances: lirsInstances :: Lens' ListInstancesResponse [Instance]
+ Network.AWS.EMR.ListInstances: lirsMarker :: Lens' ListInstancesResponse (Maybe Text)
+ Network.AWS.EMR.ListInstances: lirsStatus :: Lens' ListInstancesResponse Int
+ Network.AWS.EMR.ListSteps: instance Constructor C1_0ListSteps
+ Network.AWS.EMR.ListSteps: instance Constructor C1_0ListStepsResponse
+ Network.AWS.EMR.ListSteps: instance Data ListSteps
+ Network.AWS.EMR.ListSteps: instance Data ListStepsResponse
+ Network.AWS.EMR.ListSteps: instance Datatype D1ListSteps
+ Network.AWS.EMR.ListSteps: instance Datatype D1ListStepsResponse
+ Network.AWS.EMR.ListSteps: instance Generic ListSteps
+ Network.AWS.EMR.ListSteps: instance Generic ListStepsResponse
+ Network.AWS.EMR.ListSteps: instance Selector S1_0_0ListSteps
+ Network.AWS.EMR.ListSteps: instance Selector S1_0_0ListStepsResponse
+ Network.AWS.EMR.ListSteps: instance Selector S1_0_1ListSteps
+ Network.AWS.EMR.ListSteps: instance Selector S1_0_1ListStepsResponse
+ Network.AWS.EMR.ListSteps: instance Selector S1_0_2ListSteps
+ Network.AWS.EMR.ListSteps: instance Selector S1_0_2ListStepsResponse
+ Network.AWS.EMR.ListSteps: instance Selector S1_0_3ListSteps
+ Network.AWS.EMR.ListSteps: instance Typeable ListSteps
+ Network.AWS.EMR.ListSteps: instance Typeable ListStepsResponse
+ Network.AWS.EMR.ListSteps: lsrsMarker :: Lens' ListStepsResponse (Maybe Text)
+ Network.AWS.EMR.ListSteps: lsrsStatus :: Lens' ListStepsResponse Int
+ Network.AWS.EMR.ListSteps: lsrsSteps :: Lens' ListStepsResponse [StepSummary]
+ Network.AWS.EMR.ModifyInstanceGroups: instance Constructor C1_0ModifyInstanceGroups
+ Network.AWS.EMR.ModifyInstanceGroups: instance Data ModifyInstanceGroups
+ Network.AWS.EMR.ModifyInstanceGroups: instance Data ModifyInstanceGroupsResponse
+ Network.AWS.EMR.ModifyInstanceGroups: instance Datatype D1ModifyInstanceGroups
+ Network.AWS.EMR.ModifyInstanceGroups: instance Generic ModifyInstanceGroups
+ Network.AWS.EMR.ModifyInstanceGroups: instance Selector S1_0_0ModifyInstanceGroups
+ Network.AWS.EMR.ModifyInstanceGroups: instance Typeable ModifyInstanceGroups
+ Network.AWS.EMR.ModifyInstanceGroups: instance Typeable ModifyInstanceGroupsResponse
+ Network.AWS.EMR.RemoveTags: instance Constructor C1_0RemoveTags
+ Network.AWS.EMR.RemoveTags: instance Data RemoveTags
+ Network.AWS.EMR.RemoveTags: instance Data RemoveTagsResponse
+ Network.AWS.EMR.RemoveTags: instance Datatype D1RemoveTags
+ Network.AWS.EMR.RemoveTags: instance Generic RemoveTags
+ Network.AWS.EMR.RemoveTags: instance Selector S1_0_0RemoveTags
+ Network.AWS.EMR.RemoveTags: instance Selector S1_0_0RemoveTagsResponse
+ Network.AWS.EMR.RemoveTags: instance Selector S1_0_1RemoveTags
+ Network.AWS.EMR.RemoveTags: instance Typeable RemoveTags
+ Network.AWS.EMR.RemoveTags: instance Typeable RemoveTagsResponse
+ Network.AWS.EMR.RemoveTags: rtrsStatus :: Lens' RemoveTagsResponse Int
+ Network.AWS.EMR.RunJobFlow: instance Constructor C1_0RunJobFlow
+ Network.AWS.EMR.RunJobFlow: instance Constructor C1_0RunJobFlowResponse
+ Network.AWS.EMR.RunJobFlow: instance Data RunJobFlow
+ Network.AWS.EMR.RunJobFlow: instance Data RunJobFlowResponse
+ Network.AWS.EMR.RunJobFlow: instance Datatype D1RunJobFlow
+ Network.AWS.EMR.RunJobFlow: instance Datatype D1RunJobFlowResponse
+ Network.AWS.EMR.RunJobFlow: instance Generic RunJobFlow
+ Network.AWS.EMR.RunJobFlow: instance Generic RunJobFlowResponse
+ Network.AWS.EMR.RunJobFlow: instance Selector S1_0_0RunJobFlow
+ Network.AWS.EMR.RunJobFlow: instance Selector S1_0_0RunJobFlowResponse
+ Network.AWS.EMR.RunJobFlow: instance Selector S1_0_10RunJobFlow
+ Network.AWS.EMR.RunJobFlow: instance Selector S1_0_11RunJobFlow
+ Network.AWS.EMR.RunJobFlow: instance Selector S1_0_12RunJobFlow
+ Network.AWS.EMR.RunJobFlow: instance Selector S1_0_13RunJobFlow
+ Network.AWS.EMR.RunJobFlow: instance Selector S1_0_14RunJobFlow
+ Network.AWS.EMR.RunJobFlow: instance Selector S1_0_15RunJobFlow
+ Network.AWS.EMR.RunJobFlow: instance Selector S1_0_1RunJobFlow
+ Network.AWS.EMR.RunJobFlow: instance Selector S1_0_1RunJobFlowResponse
+ Network.AWS.EMR.RunJobFlow: instance Selector S1_0_2RunJobFlow
+ Network.AWS.EMR.RunJobFlow: instance Selector S1_0_3RunJobFlow
+ Network.AWS.EMR.RunJobFlow: instance Selector S1_0_4RunJobFlow
+ Network.AWS.EMR.RunJobFlow: instance Selector S1_0_5RunJobFlow
+ Network.AWS.EMR.RunJobFlow: instance Selector S1_0_6RunJobFlow
+ Network.AWS.EMR.RunJobFlow: instance Selector S1_0_7RunJobFlow
+ Network.AWS.EMR.RunJobFlow: instance Selector S1_0_8RunJobFlow
+ Network.AWS.EMR.RunJobFlow: instance Selector S1_0_9RunJobFlow
+ Network.AWS.EMR.RunJobFlow: instance Typeable RunJobFlow
+ Network.AWS.EMR.RunJobFlow: instance Typeable RunJobFlowResponse
+ Network.AWS.EMR.RunJobFlow: rjfAMIVersion :: Lens' RunJobFlow (Maybe Text)
+ Network.AWS.EMR.RunJobFlow: rjfApplications :: Lens' RunJobFlow [Application]
+ Network.AWS.EMR.RunJobFlow: rjfConfigurations :: Lens' RunJobFlow [Configuration]
+ Network.AWS.EMR.RunJobFlow: rjfLogURI :: Lens' RunJobFlow (Maybe Text)
+ Network.AWS.EMR.RunJobFlow: rjfReleaseLabel :: Lens' RunJobFlow (Maybe Text)
+ Network.AWS.EMR.RunJobFlow: rjfrsJobFlowId :: Lens' RunJobFlowResponse (Maybe Text)
+ Network.AWS.EMR.RunJobFlow: rjfrsStatus :: Lens' RunJobFlowResponse Int
+ Network.AWS.EMR.SetTerminationProtection: instance Constructor C1_0SetTerminationProtection
+ Network.AWS.EMR.SetTerminationProtection: instance Data SetTerminationProtection
+ Network.AWS.EMR.SetTerminationProtection: instance Data SetTerminationProtectionResponse
+ Network.AWS.EMR.SetTerminationProtection: instance Datatype D1SetTerminationProtection
+ Network.AWS.EMR.SetTerminationProtection: instance Generic SetTerminationProtection
+ Network.AWS.EMR.SetTerminationProtection: instance Selector S1_0_0SetTerminationProtection
+ Network.AWS.EMR.SetTerminationProtection: instance Selector S1_0_1SetTerminationProtection
+ Network.AWS.EMR.SetTerminationProtection: instance Typeable SetTerminationProtection
+ Network.AWS.EMR.SetTerminationProtection: instance Typeable SetTerminationProtectionResponse
+ Network.AWS.EMR.SetVisibleToAllUsers: instance Constructor C1_0SetVisibleToAllUsers
+ Network.AWS.EMR.SetVisibleToAllUsers: instance Data SetVisibleToAllUsers
+ Network.AWS.EMR.SetVisibleToAllUsers: instance Data SetVisibleToAllUsersResponse
+ Network.AWS.EMR.SetVisibleToAllUsers: instance Datatype D1SetVisibleToAllUsers
+ Network.AWS.EMR.SetVisibleToAllUsers: instance Generic SetVisibleToAllUsers
+ Network.AWS.EMR.SetVisibleToAllUsers: instance Selector S1_0_0SetVisibleToAllUsers
+ Network.AWS.EMR.SetVisibleToAllUsers: instance Selector S1_0_1SetVisibleToAllUsers
+ Network.AWS.EMR.SetVisibleToAllUsers: instance Typeable SetVisibleToAllUsers
+ Network.AWS.EMR.SetVisibleToAllUsers: instance Typeable SetVisibleToAllUsersResponse
+ Network.AWS.EMR.TerminateJobFlows: instance Constructor C1_0TerminateJobFlows
+ Network.AWS.EMR.TerminateJobFlows: instance Data TerminateJobFlows
+ Network.AWS.EMR.TerminateJobFlows: instance Data TerminateJobFlowsResponse
+ Network.AWS.EMR.TerminateJobFlows: instance Datatype D1TerminateJobFlows
+ Network.AWS.EMR.TerminateJobFlows: instance Generic TerminateJobFlows
+ Network.AWS.EMR.TerminateJobFlows: instance Selector S1_0_0TerminateJobFlows
+ Network.AWS.EMR.TerminateJobFlows: instance Typeable TerminateJobFlows
+ Network.AWS.EMR.TerminateJobFlows: instance Typeable TerminateJobFlowsResponse
+ Network.AWS.EMR.Types: AllStepsCompleted :: ClusterStateChangeReasonCode
+ Network.AWS.EMR.Types: BootstrapFailure :: ClusterStateChangeReasonCode
+ Network.AWS.EMR.Types: Bootstrapping :: ClusterState
+ Network.AWS.EMR.Types: CancelAndWait :: ActionOnFailure
+ Network.AWS.EMR.Types: IGSCRCClusterTerminated :: InstanceGroupStateChangeReasonCode
+ Network.AWS.EMR.Types: IGSCRCInstanceFailure :: InstanceGroupStateChangeReasonCode
+ Network.AWS.EMR.Types: IGSCRCInternalError :: InstanceGroupStateChangeReasonCode
+ Network.AWS.EMR.Types: IGSCRCValidationError :: InstanceGroupStateChangeReasonCode
+ Network.AWS.EMR.Types: IGTCore :: InstanceGroupType
+ Network.AWS.EMR.Types: IGTMaster :: InstanceGroupType
+ Network.AWS.EMR.Types: IGTTask :: InstanceGroupType
+ Network.AWS.EMR.Types: Starting :: ClusterState
+ Network.AWS.EMR.Types: StepFailure :: ClusterStateChangeReasonCode
+ Network.AWS.EMR.Types: TerminateCluster :: ActionOnFailure
+ Network.AWS.EMR.Types: TerminateJobFlow :: ActionOnFailure
+ Network.AWS.EMR.Types: Terminated :: ClusterState
+ Network.AWS.EMR.Types: TerminatedWithErrors :: ClusterState
+ Network.AWS.EMR.Types: Terminating :: ClusterState
+ Network.AWS.EMR.Types: UserRequest :: ClusterStateChangeReasonCode
+ Network.AWS.EMR.Types: Waiting :: ClusterState
+ Network.AWS.EMR.Types: _InternalServerError :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.EMR.Types: _InternalServerException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.EMR.Types: _InvalidRequestException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.EMR.Types: cClassification :: Lens' Configuration (Maybe Text)
+ Network.AWS.EMR.Types: cConfigurations :: Lens' Configuration [Configuration]
+ Network.AWS.EMR.Types: cProperties :: Lens' Configuration (HashMap Text Text)
+ Network.AWS.EMR.Types: cluApplications :: Lens' Cluster [Application]
+ Network.AWS.EMR.Types: cluAutoTerminate :: Lens' Cluster (Maybe Bool)
+ Network.AWS.EMR.Types: cluConfigurations :: Lens' Cluster [Configuration]
+ Network.AWS.EMR.Types: cluEC2InstanceAttributes :: Lens' Cluster (Maybe EC2InstanceAttributes)
+ Network.AWS.EMR.Types: cluId :: Lens' Cluster Text
+ Network.AWS.EMR.Types: cluLogURI :: Lens' Cluster (Maybe Text)
+ Network.AWS.EMR.Types: cluMasterPublicDNSName :: Lens' Cluster (Maybe Text)
+ Network.AWS.EMR.Types: cluName :: Lens' Cluster Text
+ Network.AWS.EMR.Types: cluNormalizedInstanceHours :: Lens' Cluster (Maybe Int)
+ Network.AWS.EMR.Types: cluReleaseLabel :: Lens' Cluster (Maybe Text)
+ Network.AWS.EMR.Types: cluRequestedAMIVersion :: Lens' Cluster (Maybe Text)
+ Network.AWS.EMR.Types: cluRunningAMIVersion :: Lens' Cluster (Maybe Text)
+ Network.AWS.EMR.Types: cluServiceRole :: Lens' Cluster (Maybe Text)
+ Network.AWS.EMR.Types: cluStatus :: Lens' Cluster ClusterStatus
+ Network.AWS.EMR.Types: cluTags :: Lens' Cluster [Tag]
+ Network.AWS.EMR.Types: cluTerminationProtected :: Lens' Cluster (Maybe Bool)
+ Network.AWS.EMR.Types: cluVisibleToAllUsers :: Lens' Cluster (Maybe Bool)
+ Network.AWS.EMR.Types: configuration :: Configuration
+ Network.AWS.EMR.Types: data Configuration
+ Network.AWS.EMR.Types: data EC2InstanceAttributes
+ Network.AWS.EMR.Types: data HadoopJARStepConfig
+ Network.AWS.EMR.Types: eiaEC2AvailabilityZone :: Lens' EC2InstanceAttributes (Maybe Text)
+ Network.AWS.EMR.Types: eiaEC2KeyName :: Lens' EC2InstanceAttributes (Maybe Text)
+ Network.AWS.EMR.Types: eiaEC2SubnetId :: Lens' EC2InstanceAttributes (Maybe Text)
+ Network.AWS.EMR.Types: eiaIAMInstanceProfile :: Lens' EC2InstanceAttributes (Maybe Text)
+ Network.AWS.EMR.Types: hadoopJARStepConfig :: Text -> HadoopJARStepConfig
+ Network.AWS.EMR.Types: hjscJAR :: Lens' HadoopJARStepConfig Text
+ Network.AWS.EMR.Types: hscJAR :: Lens' HadoopStepConfig (Maybe Text)
+ Network.AWS.EMR.Types: iEC2InstanceId :: Lens' Instance (Maybe Text)
+ Network.AWS.EMR.Types: iPrivateDNSName :: Lens' Instance (Maybe Text)
+ Network.AWS.EMR.Types: iPrivateIPAddress :: Lens' Instance (Maybe Text)
+ Network.AWS.EMR.Types: iPublicDNSName :: Lens' Instance (Maybe Text)
+ Network.AWS.EMR.Types: iPublicIPAddress :: Lens' Instance (Maybe Text)
+ Network.AWS.EMR.Types: igConfigurations :: Lens' InstanceGroup [Configuration]
+ Network.AWS.EMR.Types: igcConfigurations :: Lens' InstanceGroupConfig [Configuration]
+ Network.AWS.EMR.Types: jficEC2KeyName :: Lens' JobFlowInstancesConfig (Maybe Text)
+ Network.AWS.EMR.Types: jficEC2SubnetId :: Lens' JobFlowInstancesConfig (Maybe Text)
+ Network.AWS.EMR.Types: scHadoopJARStep :: Lens' StepConfig HadoopJARStepConfig
- Network.AWS.EMR.AddInstanceGroups: addInstanceGroupsResponse :: AddInstanceGroupsResponse
+ Network.AWS.EMR.AddInstanceGroups: addInstanceGroupsResponse :: Int -> AddInstanceGroupsResponse
- Network.AWS.EMR.AddJobFlowSteps: addJobFlowStepsResponse :: AddJobFlowStepsResponse
+ Network.AWS.EMR.AddJobFlowSteps: addJobFlowStepsResponse :: Int -> AddJobFlowStepsResponse
- Network.AWS.EMR.AddTags: addTagsResponse :: AddTagsResponse
+ Network.AWS.EMR.AddTags: addTagsResponse :: Int -> AddTagsResponse
- Network.AWS.EMR.DescribeCluster: describeClusterResponse :: Cluster -> DescribeClusterResponse
+ Network.AWS.EMR.DescribeCluster: describeClusterResponse :: Int -> Cluster -> DescribeClusterResponse
- Network.AWS.EMR.DescribeStep: describeStepResponse :: DescribeStepResponse
+ Network.AWS.EMR.DescribeStep: describeStepResponse :: Int -> DescribeStepResponse
- Network.AWS.EMR.ListBootstrapActions: listBootstrapActionsResponse :: ListBootstrapActionsResponse
+ Network.AWS.EMR.ListBootstrapActions: listBootstrapActionsResponse :: Int -> ListBootstrapActionsResponse
- Network.AWS.EMR.ListClusters: listClustersResponse :: ListClustersResponse
+ Network.AWS.EMR.ListClusters: listClustersResponse :: Int -> ListClustersResponse
- Network.AWS.EMR.ListInstanceGroups: listInstanceGroupsResponse :: ListInstanceGroupsResponse
+ Network.AWS.EMR.ListInstanceGroups: listInstanceGroupsResponse :: Int -> ListInstanceGroupsResponse
- Network.AWS.EMR.ListInstances: listInstancesResponse :: ListInstancesResponse
+ Network.AWS.EMR.ListInstances: listInstancesResponse :: Int -> ListInstancesResponse
- Network.AWS.EMR.ListSteps: listStepsResponse :: ListStepsResponse
+ Network.AWS.EMR.ListSteps: listStepsResponse :: Int -> ListStepsResponse
- Network.AWS.EMR.RemoveTags: removeTagsResponse :: RemoveTagsResponse
+ Network.AWS.EMR.RemoveTags: removeTagsResponse :: Int -> RemoveTagsResponse
- Network.AWS.EMR.RunJobFlow: runJobFlowResponse :: RunJobFlowResponse
+ Network.AWS.EMR.RunJobFlow: runJobFlowResponse :: Int -> RunJobFlowResponse
- Network.AWS.EMR.Types: Continue :: StepExecutionState
+ Network.AWS.EMR.Types: Continue :: ActionOnFailure
- Network.AWS.EMR.Types: Core :: InstanceGroupType
+ Network.AWS.EMR.Types: Core :: InstanceRoleType
- Network.AWS.EMR.Types: InstanceFailure :: InstanceGroupStateChangeReasonCode
+ Network.AWS.EMR.Types: InstanceFailure :: ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: InternalError :: InstanceGroupStateChangeReasonCode
+ Network.AWS.EMR.Types: InternalError :: ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: Master :: InstanceGroupType
+ Network.AWS.EMR.Types: Master :: InstanceRoleType
- Network.AWS.EMR.Types: Running :: StepExecutionState
+ Network.AWS.EMR.Types: Running :: ClusterState
- Network.AWS.EMR.Types: Task :: InstanceGroupType
+ Network.AWS.EMR.Types: Task :: InstanceRoleType
- Network.AWS.EMR.Types: ValidationError :: InstanceGroupStateChangeReasonCode
+ Network.AWS.EMR.Types: ValidationError :: ClusterStateChangeReasonCode
- Network.AWS.EMR.Types: ec2InstanceAttributes :: Ec2InstanceAttributes
+ Network.AWS.EMR.Types: ec2InstanceAttributes :: EC2InstanceAttributes
- Network.AWS.EMR.Types: eiaAdditionalMasterSecurityGroups :: Lens' Ec2InstanceAttributes [Text]
+ Network.AWS.EMR.Types: eiaAdditionalMasterSecurityGroups :: Lens' EC2InstanceAttributes [Text]
- Network.AWS.EMR.Types: eiaAdditionalSlaveSecurityGroups :: Lens' Ec2InstanceAttributes [Text]
+ Network.AWS.EMR.Types: eiaAdditionalSlaveSecurityGroups :: Lens' EC2InstanceAttributes [Text]
- Network.AWS.EMR.Types: eiaEmrManagedMasterSecurityGroup :: Lens' Ec2InstanceAttributes (Maybe Text)
+ Network.AWS.EMR.Types: eiaEmrManagedMasterSecurityGroup :: Lens' EC2InstanceAttributes (Maybe Text)
- Network.AWS.EMR.Types: eiaEmrManagedSlaveSecurityGroup :: Lens' Ec2InstanceAttributes (Maybe Text)
+ Network.AWS.EMR.Types: eiaEmrManagedSlaveSecurityGroup :: Lens' EC2InstanceAttributes (Maybe Text)
- Network.AWS.EMR.Types: hjscArgs :: Lens' HadoopJarStepConfig [Text]
+ Network.AWS.EMR.Types: hjscArgs :: Lens' HadoopJARStepConfig [Text]
- Network.AWS.EMR.Types: hjscMainClass :: Lens' HadoopJarStepConfig (Maybe Text)
+ Network.AWS.EMR.Types: hjscMainClass :: Lens' HadoopJARStepConfig (Maybe Text)
- Network.AWS.EMR.Types: hjscProperties :: Lens' HadoopJarStepConfig [KeyValue]
+ Network.AWS.EMR.Types: hjscProperties :: Lens' HadoopJARStepConfig [KeyValue]
- Network.AWS.EMR.Types: stepConfig :: Text -> HadoopJarStepConfig -> StepConfig
+ Network.AWS.EMR.Types: stepConfig :: Text -> HadoopJARStepConfig -> StepConfig
Files
- README.md +20/−7
- amazonka-emr.cabal +50/−13
- gen/Network/AWS/EMR.hs +451/−48
- gen/Network/AWS/EMR/AddInstanceGroups.hs +111/−96
- gen/Network/AWS/EMR/AddJobFlowSteps.hs +120/−106
- gen/Network/AWS/EMR/AddTags.hs +99/−74
- gen/Network/AWS/EMR/DescribeCluster.hs +97/−80
- gen/Network/AWS/EMR/DescribeJobFlows.hs +0/−162
- gen/Network/AWS/EMR/DescribeStep.hs +101/−84
- gen/Network/AWS/EMR/ListBootstrapActions.hs +129/−103
- gen/Network/AWS/EMR/ListClusters.hs +141/−117
- gen/Network/AWS/EMR/ListInstanceGroups.hs +126/−103
- gen/Network/AWS/EMR/ListInstances.hs +141/−122
- gen/Network/AWS/EMR/ListSteps.hs +136/−115
- gen/Network/AWS/EMR/ModifyInstanceGroups.hs +74/−73
- gen/Network/AWS/EMR/RemoveTags.hs +98/−70
- gen/Network/AWS/EMR/RunJobFlow.hs +295/−218
- gen/Network/AWS/EMR/SetTerminationProtection.hs +98/−83
- gen/Network/AWS/EMR/SetVisibleToAllUsers.hs +87/−78
- gen/Network/AWS/EMR/TerminateJobFlows.hs +76/−75
- gen/Network/AWS/EMR/Types.hs +393/−3863
- gen/Network/AWS/EMR/Types/Product.hs +2151/−0
- gen/Network/AWS/EMR/Types/Sum.hs +434/−0
- gen/Network/AWS/EMR/Waiters.hs +44/−27
- test/Main.hs +21/−0
- test/Test/AWS/EMR.hs +26/−0
- test/Test/AWS/EMR/Internal.hs +16/−0
- test/Test/AWS/Gen/EMR.hs +311/−0
README.md view
@@ -1,22 +1,35 @@ # Amazon Elastic MapReduce SDK -> _Warning:_ This is an experimental preview release which is still under heavy development and not intended for public consumption, _caveat emptor_!-+* [Version](#version) * [Description](#description) * [Contribute](#contribute) * [Licence](#licence) ++## Version++`1.0.0`++ ## Description -Amazon Elastic MapReduce (Amazon EMR) is a web service that makes it easy to-process large amounts of data efficiently. Amazon EMR uses Hadoop processing-combined with several AWS products to do such tasks as web indexing, data-mining, log file analysis, machine learning, scientific simulation, and data-warehousing.+Amazon Elastic MapReduce (Amazon EMR) is a web service that makes it+easy to process large amounts of data efficiently. Amazon EMR uses+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. 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). +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.++Use of lenses is required for constructing and manipulating types.+This is due to the amount of nesting of AWS types and transparency regarding+de/serialisation into more palatable Haskell values.+The provided lenses should be compatible with any of the major lens libraries+[lens](http://hackage.haskell.org/package/lens) or [lens-family-core](http://hackage.haskell.org/package/lens-family-core). ## Contribute
amazonka-emr.cabal view
@@ -1,29 +1,37 @@ name: amazonka-emr-version: 0.3.6+version: 1.0.0 synopsis: Amazon Elastic MapReduce SDK. homepage: https://github.com/brendanhay/amazonka license: OtherLicense license-file: LICENSE author: Brendan Hay maintainer: Brendan Hay <brendan.g.hay@gmail.com>-copyright: Copyright (c) 2013-2014 Brendan Hay+copyright: Copyright (c) 2013-2015 Brendan Hay category: Network, AWS, Cloud, Distributed Computing build-type: Simple extra-source-files: README.md cabal-version: >= 1.10 description:- Amazon Elastic MapReduce (Amazon EMR) is a web service that makes it easy to- process large amounts of data efficiently. Amazon EMR uses Hadoop processing- combined with several AWS products to do such tasks as web indexing, data- mining, log file analysis, machine learning, scientific simulation, and data- warehousing.-+ Amazon Elastic MapReduce (Amazon EMR) is a web service that makes it+ easy to process large amounts of data efficiently. Amazon EMR uses+ 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>+ The types from this library are intended to be used with+ <http://hackage.haskell.org/package/amazonka amazonka>, which provides+ mechanisms for specifying AuthN/AuthZ information and sending requests. .- /Warning:/ This is an experimental preview release which is still under- heavy development and not intended for public consumption, caveat emptor!+ Use of lenses is required for constructing and manipulating types.+ This is due to the amount of nesting of AWS types and transparency regarding+ de/serialisation into more palatable Haskell values.+ The provided lenses should be compatible with any of the major lens libraries+ 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>+ to get started. source-repository head type: git@@ -41,7 +49,6 @@ , Network.AWS.EMR.AddJobFlowSteps , Network.AWS.EMR.AddTags , Network.AWS.EMR.DescribeCluster- , Network.AWS.EMR.DescribeJobFlows , Network.AWS.EMR.DescribeStep , Network.AWS.EMR.ListBootstrapActions , Network.AWS.EMR.ListClusters@@ -58,7 +65,37 @@ , Network.AWS.EMR.Waiters other-modules:+ Network.AWS.EMR.Types.Product+ , Network.AWS.EMR.Types.Sum build-depends:- amazonka-core == 0.3.6.*+ amazonka-core == 1.0.0.* , base >= 4.7 && < 5++test-suite amazonka-emr-test+ type: exitcode-stdio-1.0+ default-language: Haskell2010+ hs-source-dirs: test+ main-is: Main.hs++ ghc-options: -Wall -threaded++ -- This is not comprehensive if modules have manually been added.+ -- It exists to ensure cabal 'somewhat' detects test module changes.+ other-modules:+ Test.AWS.EMR+ , Test.AWS.Gen.EMR+ , Test.AWS.EMR.Internal++ build-depends:+ amazonka-core == 1.0.0+ , amazonka-test == 1.0.0+ , amazonka-emr == 1.0.0+ , base+ , bytestring+ , lens+ , tasty+ , tasty-hunit+ , text+ , time+ , unordered-containers
gen/Network/AWS/EMR.hs view
@@ -1,58 +1,461 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module : Network.AWS.EMR--- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- 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--- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright : (c) 2013-2015 Brendan Hay+-- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : experimental+-- Stability : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Amazon Elastic MapReduce (Amazon EMR) is a web service that makes it easy to--- process large amounts of data efficiently. Amazon EMR uses Hadoop processing--- combined with several AWS products to do such tasks as web indexing, data--- mining, log file analysis, machine learning, scientific simulation, and data--- warehousing.+-- Amazon Elastic MapReduce (Amazon EMR) is a web service that makes it+-- easy to process large amounts of data efficiently. Amazon EMR uses+-- 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- ( module Network.AWS.EMR.AddInstanceGroups- , module Network.AWS.EMR.AddJobFlowSteps- , module Network.AWS.EMR.AddTags- , module Network.AWS.EMR.DescribeCluster- , module Network.AWS.EMR.DescribeJobFlows- , module Network.AWS.EMR.DescribeStep- , module Network.AWS.EMR.ListBootstrapActions- , module Network.AWS.EMR.ListClusters- , module Network.AWS.EMR.ListInstanceGroups- , module Network.AWS.EMR.ListInstances- , module Network.AWS.EMR.ListSteps- , module Network.AWS.EMR.ModifyInstanceGroups- , module Network.AWS.EMR.RemoveTags+ (+ -- * Service+ EMR++ -- * Errors+ -- $errors++ -- ** InvalidRequestException+ , _InvalidRequestException++ -- ** InternalServerError+ , _InternalServerError++ -- ** InternalServerException+ , _InternalServerException++ -- * Waiters+ -- $waiters++ -- ** ClusterRunning+ , clusterRunning++ -- * Operations+ -- $operations++ -- ** RunJobFlow , module Network.AWS.EMR.RunJobFlow- , module Network.AWS.EMR.SetTerminationProtection++ -- ** SetVisibleToAllUsers , module Network.AWS.EMR.SetVisibleToAllUsers++ -- ** TerminateJobFlows , module Network.AWS.EMR.TerminateJobFlows- , module Network.AWS.EMR.Types- , module Network.AWS.EMR.Waiters++ -- ** RemoveTags+ , module Network.AWS.EMR.RemoveTags++ -- ** DescribeStep+ , module Network.AWS.EMR.DescribeStep++ -- ** DescribeCluster+ , module Network.AWS.EMR.DescribeCluster++ -- ** ModifyInstanceGroups+ , module Network.AWS.EMR.ModifyInstanceGroups++ -- ** AddJobFlowSteps+ , module Network.AWS.EMR.AddJobFlowSteps++ -- ** SetTerminationProtection+ , module Network.AWS.EMR.SetTerminationProtection++ -- ** ListSteps (Paginated)+ , module Network.AWS.EMR.ListSteps++ -- ** AddInstanceGroups+ , module Network.AWS.EMR.AddInstanceGroups++ -- ** ListInstanceGroups (Paginated)+ , module Network.AWS.EMR.ListInstanceGroups++ -- ** ListBootstrapActions (Paginated)+ , module Network.AWS.EMR.ListBootstrapActions++ -- ** AddTags+ , module Network.AWS.EMR.AddTags++ -- ** ListInstances (Paginated)+ , module Network.AWS.EMR.ListInstances++ -- ** ListClusters (Paginated)+ , module Network.AWS.EMR.ListClusters++ -- * Types++ -- ** ActionOnFailure+ , ActionOnFailure (..)++ -- ** ClusterState+ , ClusterState (..)++ -- ** ClusterStateChangeReasonCode+ , ClusterStateChangeReasonCode (..)++ -- ** InstanceGroupState+ , InstanceGroupState (..)++ -- ** InstanceGroupStateChangeReasonCode+ , InstanceGroupStateChangeReasonCode (..)++ -- ** InstanceGroupType+ , InstanceGroupType (..)++ -- ** InstanceRoleType+ , InstanceRoleType (..)++ -- ** InstanceState+ , InstanceState (..)++ -- ** InstanceStateChangeReasonCode+ , InstanceStateChangeReasonCode (..)++ -- ** MarketType+ , MarketType (..)++ -- ** StepState+ , StepState (..)++ -- ** StepStateChangeReasonCode+ , StepStateChangeReasonCode (..)++ -- ** Application+ , Application+ , application+ , aAdditionalInfo+ , aArgs+ , aName+ , aVersion++ -- ** BootstrapActionConfig+ , BootstrapActionConfig+ , bootstrapActionConfig+ , bacName+ , bacScriptBootstrapAction++ -- ** Cluster+ , Cluster+ , cluster+ , cluRequestedAMIVersion+ , cluEC2InstanceAttributes+ , cluNormalizedInstanceHours+ , cluConfigurations+ , cluReleaseLabel+ , cluLogURI+ , cluRunningAMIVersion+ , cluMasterPublicDNSName+ , cluAutoTerminate+ , cluTerminationProtected+ , cluVisibleToAllUsers+ , cluApplications+ , cluTags+ , cluServiceRole+ , cluId+ , cluName+ , cluStatus++ -- ** ClusterStateChangeReason+ , ClusterStateChangeReason+ , clusterStateChangeReason+ , cscrCode+ , cscrMessage++ -- ** ClusterStatus+ , ClusterStatus+ , clusterStatus+ , csState+ , csStateChangeReason+ , csTimeline++ -- ** ClusterSummary+ , ClusterSummary+ , clusterSummary+ , csStatus+ , csNormalizedInstanceHours+ , csName+ , csId++ -- ** ClusterTimeline+ , ClusterTimeline+ , clusterTimeline+ , ctReadyDateTime+ , ctCreationDateTime+ , ctEndDateTime++ -- ** Command+ , Command+ , command+ , cArgs+ , cScriptPath+ , cName++ -- ** Configuration+ , Configuration+ , configuration+ , cConfigurations+ , cClassification+ , cProperties++ -- ** EC2InstanceAttributes+ , EC2InstanceAttributes+ , ec2InstanceAttributes+ , eiaEC2KeyName+ , eiaEmrManagedSlaveSecurityGroup+ , eiaAdditionalSlaveSecurityGroups+ , eiaIAMInstanceProfile+ , eiaAdditionalMasterSecurityGroups+ , eiaEmrManagedMasterSecurityGroup+ , eiaEC2SubnetId+ , eiaEC2AvailabilityZone++ -- ** HadoopJARStepConfig+ , HadoopJARStepConfig+ , hadoopJARStepConfig+ , hjscArgs+ , hjscMainClass+ , hjscProperties+ , hjscJAR++ -- ** HadoopStepConfig+ , HadoopStepConfig+ , hadoopStepConfig+ , hscArgs+ , hscJAR+ , hscMainClass+ , hscProperties++ -- ** Instance+ , Instance+ , instance'+ , iStatus+ , iPublicDNSName+ , iEC2InstanceId+ , iPrivateIPAddress+ , iId+ , iPrivateDNSName+ , iPublicIPAddress++ -- ** InstanceGroup+ , InstanceGroup+ , instanceGroup+ , igStatus+ , igBidPrice+ , igRequestedInstanceCount+ , igRunningInstanceCount+ , igConfigurations+ , igInstanceGroupType+ , igInstanceType+ , igMarket+ , igName+ , igId++ -- ** InstanceGroupConfig+ , InstanceGroupConfig+ , instanceGroupConfig+ , igcBidPrice+ , igcConfigurations+ , igcMarket+ , igcName+ , igcInstanceRole+ , igcInstanceType+ , igcInstanceCount++ -- ** InstanceGroupModifyConfig+ , InstanceGroupModifyConfig+ , instanceGroupModifyConfig+ , igmcInstanceCount+ , igmcEC2InstanceIdsToTerminate+ , igmcInstanceGroupId++ -- ** InstanceGroupStateChangeReason+ , InstanceGroupStateChangeReason+ , instanceGroupStateChangeReason+ , igscrCode+ , igscrMessage++ -- ** InstanceGroupStatus+ , InstanceGroupStatus+ , instanceGroupStatus+ , igsState+ , igsStateChangeReason+ , igsTimeline++ -- ** InstanceGroupTimeline+ , InstanceGroupTimeline+ , instanceGroupTimeline+ , igtReadyDateTime+ , igtCreationDateTime+ , igtEndDateTime++ -- ** InstanceStateChangeReason+ , InstanceStateChangeReason+ , instanceStateChangeReason+ , iscrCode+ , iscrMessage++ -- ** InstanceStatus+ , InstanceStatus+ , instanceStatus+ , isState+ , isStateChangeReason+ , isTimeline++ -- ** InstanceTimeline+ , InstanceTimeline+ , instanceTimeline+ , itReadyDateTime+ , itCreationDateTime+ , itEndDateTime++ -- ** JobFlowInstancesConfig+ , JobFlowInstancesConfig+ , jobFlowInstancesConfig+ , jficSlaveInstanceType+ , jficEC2KeyName+ , jficInstanceCount+ , jficEmrManagedSlaveSecurityGroup+ , jficAdditionalSlaveSecurityGroups+ , jficHadoopVersion+ , jficAdditionalMasterSecurityGroups+ , jficEmrManagedMasterSecurityGroup+ , jficEC2SubnetId+ , jficMasterInstanceType+ , jficInstanceGroups+ , jficKeepJobFlowAliveWhenNoSteps+ , jficTerminationProtected+ , jficPlacement++ -- ** KeyValue+ , KeyValue+ , keyValue+ , kvValue+ , kvKey++ -- ** PlacementType+ , PlacementType+ , placementType+ , ptAvailabilityZone++ -- ** ScriptBootstrapActionConfig+ , ScriptBootstrapActionConfig+ , scriptBootstrapActionConfig+ , sbacArgs+ , sbacPath++ -- ** Step+ , Step+ , step+ , sStatus+ , sActionOnFailure+ , sConfig+ , sName+ , sId++ -- ** StepConfig+ , StepConfig+ , stepConfig+ , scActionOnFailure+ , scName+ , scHadoopJARStep++ -- ** StepStateChangeReason+ , StepStateChangeReason+ , stepStateChangeReason+ , sscrCode+ , sscrMessage++ -- ** StepStatus+ , StepStatus+ , stepStatus+ , ssState+ , ssStateChangeReason+ , ssTimeline++ -- ** StepSummary+ , StepSummary+ , stepSummary+ , ssStatus+ , ssActionOnFailure+ , ssConfig+ , ssName+ , ssId++ -- ** StepTimeline+ , StepTimeline+ , stepTimeline+ , stCreationDateTime+ , stEndDateTime+ , stStartDateTime++ -- ** SupportedProductConfig+ , SupportedProductConfig+ , supportedProductConfig+ , spcArgs+ , spcName++ -- ** Tag+ , Tag+ , tag+ , tagValue+ , tagKey ) where -import Network.AWS.EMR.AddInstanceGroups-import Network.AWS.EMR.AddJobFlowSteps-import Network.AWS.EMR.AddTags-import Network.AWS.EMR.DescribeCluster-import Network.AWS.EMR.DescribeJobFlows-import Network.AWS.EMR.DescribeStep-import Network.AWS.EMR.ListBootstrapActions-import Network.AWS.EMR.ListClusters-import Network.AWS.EMR.ListInstanceGroups-import Network.AWS.EMR.ListInstances-import Network.AWS.EMR.ListSteps-import Network.AWS.EMR.ModifyInstanceGroups-import Network.AWS.EMR.RemoveTags-import Network.AWS.EMR.RunJobFlow-import Network.AWS.EMR.SetTerminationProtection-import Network.AWS.EMR.SetVisibleToAllUsers-import Network.AWS.EMR.TerminateJobFlows-import Network.AWS.EMR.Types-import Network.AWS.EMR.Waiters+import Network.AWS.EMR.AddInstanceGroups+import Network.AWS.EMR.AddJobFlowSteps+import Network.AWS.EMR.AddTags+import Network.AWS.EMR.DescribeCluster+import Network.AWS.EMR.DescribeStep+import Network.AWS.EMR.ListBootstrapActions+import Network.AWS.EMR.ListClusters+import Network.AWS.EMR.ListInstanceGroups+import Network.AWS.EMR.ListInstances+import Network.AWS.EMR.ListSteps+import Network.AWS.EMR.ModifyInstanceGroups+import Network.AWS.EMR.RemoveTags+import Network.AWS.EMR.RunJobFlow+import Network.AWS.EMR.SetTerminationProtection+import Network.AWS.EMR.SetVisibleToAllUsers+import Network.AWS.EMR.TerminateJobFlows+import Network.AWS.EMR.Types+import Network.AWS.EMR.Waiters++{- $errors+Error matchers are designed for use with the functions provided by+<http://hackage.haskell.org/package/lens/docs/Control-Exception-Lens.html Control.Exception.Lens>.+This allows catching (and rethrowing) service specific errors returned+by 'EMR'.+-}++{- $operations+Some AWS operations return results that are incomplete and require subsequent+requests in order to obtain the entire result set. The process of sending+subsequent requests to continue where a previous request left off is called+pagination. For example, the 'ListObjects' operation of Amazon S3 returns up to+1000 objects at a time, and you must send subsequent requests with the+appropriate Marker in order to retrieve the next page of results.++Operations that have an 'AWSPager' instance can transparently perform subsequent+requests, correctly setting Markers and other request facets to iterate through+the entire result set of a truncated API operation. Operations which support+this have an additional note in the documentation.++Many operations have the ability to filter results on the server side. See the+individual operation parameters for details.+-}++{- $waiters+Waiters poll by repeatedly sending a request until some remote success condition+configured by the 'Wait' specification is fulfilled. The 'Wait' specification+determines how many attempts should be made, in addition to delay and retry strategies.+-}
gen/Network/AWS/EMR/AddInstanceGroups.hs view
@@ -1,136 +1,151 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE LambdaCase #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module : Network.AWS.EMR.AddInstanceGroups--- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- 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--- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright : (c) 2013-2015 Brendan Hay+-- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : experimental+-- Stability : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | AddInstanceGroups adds an instance group to a running cluster.+-- AddInstanceGroups adds an instance group to a running cluster. ----- <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_AddInstanceGroups.html>+-- /See:/ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_AddInstanceGroups.html AWS API Reference> for AddInstanceGroups. module Network.AWS.EMR.AddInstanceGroups (- -- * Request- AddInstanceGroups- -- ** Request constructor- , addInstanceGroups- -- ** Request lenses+ -- * Creating a Request+ addInstanceGroups+ , AddInstanceGroups+ -- * Request Lenses , aigInstanceGroups , aigJobFlowId - -- * Response- , AddInstanceGroupsResponse- -- ** Response constructor+ -- * Destructuring the Response , addInstanceGroupsResponse- -- ** Response lenses- , aigrInstanceGroupIds- , aigrJobFlowId+ , AddInstanceGroupsResponse+ -- * Response Lenses+ , aigrsJobFlowId+ , aigrsInstanceGroupIds+ , aigrsStatus ) where -import Network.AWS.Data (Object)-import Network.AWS.Prelude-import Network.AWS.Request.JSON-import Network.AWS.EMR.Types-import qualified GHC.Exts--data AddInstanceGroups = AddInstanceGroups- { _aigInstanceGroups :: List "InstanceGroups" InstanceGroupConfig- , _aigJobFlowId :: Text- } deriving (Eq, Read, Show)+import Network.AWS.EMR.Types+import Network.AWS.EMR.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response --- | 'AddInstanceGroups' constructor.+-- | Input to an AddInstanceGroups call. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'addInstanceGroups' smart constructor.+data AddInstanceGroups = AddInstanceGroups'+ { _aigInstanceGroups :: ![InstanceGroupConfig]+ , _aigJobFlowId :: !Text+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddInstanceGroups' with the minimum fields required to make a request. ----- * 'aigInstanceGroups' @::@ ['InstanceGroupConfig']+-- Use one of the following lenses to modify other fields as desired: ----- * 'aigJobFlowId' @::@ 'Text'+-- * 'aigInstanceGroups' ---addInstanceGroups :: Text -- ^ 'aigJobFlowId'- -> AddInstanceGroups-addInstanceGroups p1 = AddInstanceGroups- { _aigJobFlowId = p1- , _aigInstanceGroups = mempty+-- * 'aigJobFlowId'+addInstanceGroups+ :: Text -- ^ 'aigJobFlowId'+ -> AddInstanceGroups+addInstanceGroups pJobFlowId_ =+ AddInstanceGroups'+ { _aigInstanceGroups = mempty+ , _aigJobFlowId = pJobFlowId_ } -- | Instance Groups to add. aigInstanceGroups :: Lens' AddInstanceGroups [InstanceGroupConfig]-aigInstanceGroups =- lens _aigInstanceGroups (\s a -> s { _aigInstanceGroups = a })- . _List+aigInstanceGroups = lens _aigInstanceGroups (\ s a -> s{_aigInstanceGroups = a}) . _Coerce; -- | Job flow in which to add the instance groups. aigJobFlowId :: Lens' AddInstanceGroups Text-aigJobFlowId = lens _aigJobFlowId (\s a -> s { _aigJobFlowId = a })--data AddInstanceGroupsResponse = AddInstanceGroupsResponse- { _aigrInstanceGroupIds :: List "InstanceGroupIds" Text- , _aigrJobFlowId :: Maybe Text- } deriving (Eq, Ord, Read, Show)+aigJobFlowId = lens _aigJobFlowId (\ s a -> s{_aigJobFlowId = a}); --- | 'AddInstanceGroupsResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'aigrInstanceGroupIds' @::@ ['Text']------ * 'aigrJobFlowId' @::@ 'Maybe' 'Text'----addInstanceGroupsResponse :: AddInstanceGroupsResponse-addInstanceGroupsResponse = AddInstanceGroupsResponse- { _aigrJobFlowId = Nothing- , _aigrInstanceGroupIds = mempty- }+instance AWSRequest AddInstanceGroups where+ type Sv AddInstanceGroups = EMR+ type Rs AddInstanceGroups = AddInstanceGroupsResponse+ request = postJSON+ response+ = receiveJSON+ (\ s h x ->+ AddInstanceGroupsResponse' <$>+ (x .?> "JobFlowId") <*>+ (x .?> "InstanceGroupIds" .!@ mempty)+ <*> (pure (fromEnum s))) --- | Instance group IDs of the newly created instance groups.-aigrInstanceGroupIds :: Lens' AddInstanceGroupsResponse [Text]-aigrInstanceGroupIds =- lens _aigrInstanceGroupIds (\s a -> s { _aigrInstanceGroupIds = a })- . _List+instance ToHeaders AddInstanceGroups where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("ElasticMapReduce.AddInstanceGroups" :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)]) --- | The job flow ID in which the instance groups are added.-aigrJobFlowId :: Lens' AddInstanceGroupsResponse (Maybe Text)-aigrJobFlowId = lens _aigrJobFlowId (\s a -> s { _aigrJobFlowId = a })+instance ToJSON AddInstanceGroups where+ toJSON AddInstanceGroups'{..}+ = object+ ["InstanceGroups" .= _aigInstanceGroups,+ "JobFlowId" .= _aigJobFlowId] instance ToPath AddInstanceGroups where- toPath = const "/"+ toPath = const "/" instance ToQuery AddInstanceGroups where- toQuery = const mempty+ toQuery = const mempty -instance ToHeaders AddInstanceGroups+-- | Output from an AddInstanceGroups call.+--+-- /See:/ 'addInstanceGroupsResponse' smart constructor.+data AddInstanceGroupsResponse = AddInstanceGroupsResponse'+ { _aigrsJobFlowId :: !(Maybe Text)+ , _aigrsInstanceGroupIds :: !(Maybe [Text])+ , _aigrsStatus :: !Int+ } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance ToJSON AddInstanceGroups where- toJSON AddInstanceGroups{..} = object- [ "InstanceGroups" .= _aigInstanceGroups- , "JobFlowId" .= _aigJobFlowId- ]+-- | Creates a value of 'AddInstanceGroupsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aigrsJobFlowId'+--+-- * 'aigrsInstanceGroupIds'+--+-- * 'aigrsStatus'+addInstanceGroupsResponse+ :: Int -- ^ 'aigrsStatus'+ -> AddInstanceGroupsResponse+addInstanceGroupsResponse pStatus_ =+ AddInstanceGroupsResponse'+ { _aigrsJobFlowId = Nothing+ , _aigrsInstanceGroupIds = Nothing+ , _aigrsStatus = pStatus_+ } -instance AWSRequest AddInstanceGroups where- type Sv AddInstanceGroups = EMR- type Rs AddInstanceGroups = AddInstanceGroupsResponse+-- | The job flow ID in which the instance groups are added.+aigrsJobFlowId :: Lens' AddInstanceGroupsResponse (Maybe Text)+aigrsJobFlowId = lens _aigrsJobFlowId (\ s a -> s{_aigrsJobFlowId = a}); - request = post "AddInstanceGroups"- response = jsonResponse+-- | Instance group IDs of the newly created instance groups.+aigrsInstanceGroupIds :: Lens' AddInstanceGroupsResponse [Text]+aigrsInstanceGroupIds = lens _aigrsInstanceGroupIds (\ s a -> s{_aigrsInstanceGroupIds = a}) . _Default . _Coerce; -instance FromJSON AddInstanceGroupsResponse where- parseJSON = withObject "AddInstanceGroupsResponse" $ \o -> AddInstanceGroupsResponse- <$> o .:? "InstanceGroupIds" .!= mempty- <*> o .:? "JobFlowId"+-- | The response status code.+aigrsStatus :: Lens' AddInstanceGroupsResponse Int+aigrsStatus = lens _aigrsStatus (\ s a -> s{_aigrsStatus = a});
gen/Network/AWS/EMR/AddJobFlowSteps.hs view
@@ -1,151 +1,165 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE LambdaCase #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module : Network.AWS.EMR.AddJobFlowSteps--- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- 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--- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright : (c) 2013-2015 Brendan Hay+-- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : experimental+-- Stability : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | AddJobFlowSteps adds new steps to a running job flow. A maximum of 256 steps--- are allowed in each job flow.+-- AddJobFlowSteps adds new steps to a running job flow. A maximum of 256+-- steps are allowed in each job flow. ----- If your job flow is long-running (such as a Hive data warehouse) or complex,--- you may require more than 256 steps to process your data. You can bypass the--- 256-step limitation in various ways, including using the SSH shell to connect--- to the master node and submitting queries directly to the software running on--- the master node, such as Hive and Hadoop. For more information on how to do--- this, go to <http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/AddMoreThan256Steps.html Add More than 256 Steps to a Job Flow> in the /Amazon ElasticMapReduce Developer's Guide/.+-- If your job flow is long-running (such as a Hive data warehouse) or+-- complex, you may require more than 256 steps to process your data. You+-- can bypass the 256-step limitation in various ways, including using the+-- SSH shell to connect to the master node and submitting queries directly+-- to the software running on the master node, such as Hive and Hadoop. For+-- more information on how to do this, go to+-- <http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/AddMoreThan256Steps.html Add More than 256 Steps to a Job Flow>+-- in the /Amazon Elastic MapReduce Developer\'s Guide/. -- -- A step specifies the location of a JAR file stored either on the master -- node of the job flow or in Amazon S3. Each step is performed by the main--- function of the main class of the JAR file. The main class can be specified--- either in the manifest of the JAR or by using the MainFunction parameter of--- the step.+-- function of the main class of the JAR file. The main class can be+-- specified either in the manifest of the JAR or by using the MainFunction+-- parameter of the step. ----- Elastic MapReduce executes each step in the order listed. For a step to be--- considered complete, the main function must exit with a zero exit code and--- all Hadoop jobs started while the step was running must have completed and--- run successfully.+-- Elastic MapReduce executes each step in the order listed. For a step to+-- be considered complete, the main function must exit with a zero exit+-- code and all Hadoop jobs started while the step was running must have+-- completed and run successfully. -- -- You can only add steps to a job flow that is in one of the following -- states: STARTING, BOOTSTRAPPING, RUNNING, or WAITING. ----- <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_AddJobFlowSteps.html>+-- /See:/ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_AddJobFlowSteps.html AWS API Reference> for AddJobFlowSteps. module Network.AWS.EMR.AddJobFlowSteps (- -- * Request- AddJobFlowSteps- -- ** Request constructor- , addJobFlowSteps- -- ** Request lenses+ -- * Creating a Request+ addJobFlowSteps+ , AddJobFlowSteps+ -- * Request Lenses , ajfsJobFlowId , ajfsSteps - -- * Response- , AddJobFlowStepsResponse- -- ** Response constructor+ -- * Destructuring the Response , addJobFlowStepsResponse- -- ** Response lenses- , ajfsrStepIds+ , AddJobFlowStepsResponse+ -- * Response Lenses+ , ajfsrsStepIds+ , ajfsrsStatus ) where -import Network.AWS.Data (Object)-import Network.AWS.Prelude-import Network.AWS.Request.JSON-import Network.AWS.EMR.Types-import qualified GHC.Exts--data AddJobFlowSteps = AddJobFlowSteps- { _ajfsJobFlowId :: Text- , _ajfsSteps :: List "Steps" StepConfig- } deriving (Eq, Read, Show)+import Network.AWS.EMR.Types+import Network.AWS.EMR.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response --- | 'AddJobFlowSteps' constructor.+-- | The input argument to the AddJobFlowSteps operation. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'addJobFlowSteps' smart constructor.+data AddJobFlowSteps = AddJobFlowSteps'+ { _ajfsJobFlowId :: !Text+ , _ajfsSteps :: ![StepConfig]+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddJobFlowSteps' with the minimum fields required to make a request. ----- * 'ajfsJobFlowId' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'ajfsSteps' @::@ ['StepConfig']+-- * 'ajfsJobFlowId' ---addJobFlowSteps :: Text -- ^ 'ajfsJobFlowId'- -> AddJobFlowSteps-addJobFlowSteps p1 = AddJobFlowSteps- { _ajfsJobFlowId = p1- , _ajfsSteps = mempty+-- * 'ajfsSteps'+addJobFlowSteps+ :: Text -- ^ 'ajfsJobFlowId'+ -> AddJobFlowSteps+addJobFlowSteps pJobFlowId_ =+ AddJobFlowSteps'+ { _ajfsJobFlowId = pJobFlowId_+ , _ajfsSteps = mempty } --- | A string that uniquely identifies the job flow. This identifier is returned--- by 'RunJobFlow' and can also be obtained from 'ListClusters'.+-- | A string that uniquely identifies the job flow. This identifier is+-- returned by RunJobFlow and can also be obtained from ListClusters. ajfsJobFlowId :: Lens' AddJobFlowSteps Text-ajfsJobFlowId = lens _ajfsJobFlowId (\s a -> s { _ajfsJobFlowId = a })+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 }) . _List--newtype AddJobFlowStepsResponse = AddJobFlowStepsResponse- { _ajfsrStepIds :: List "StepIds" Text- } deriving (Eq, Ord, Read, Show, Monoid, Semigroup)--instance GHC.Exts.IsList AddJobFlowStepsResponse where- type Item AddJobFlowStepsResponse = Text+ajfsSteps = lens _ajfsSteps (\ s a -> s{_ajfsSteps = a}) . _Coerce; - fromList = AddJobFlowStepsResponse . GHC.Exts.fromList- toList = GHC.Exts.toList . _ajfsrStepIds+instance AWSRequest AddJobFlowSteps where+ type Sv AddJobFlowSteps = EMR+ type Rs AddJobFlowSteps = AddJobFlowStepsResponse+ request = postJSON+ response+ = receiveJSON+ (\ s h x ->+ AddJobFlowStepsResponse' <$>+ (x .?> "StepIds" .!@ mempty) <*> (pure (fromEnum s))) --- | 'AddJobFlowStepsResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'ajfsrStepIds' @::@ ['Text']----addJobFlowStepsResponse :: AddJobFlowStepsResponse-addJobFlowStepsResponse = AddJobFlowStepsResponse- { _ajfsrStepIds = mempty- }+instance ToHeaders AddJobFlowSteps where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("ElasticMapReduce.AddJobFlowSteps" :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)]) --- | The identifiers of the list of steps added to the job flow.-ajfsrStepIds :: Lens' AddJobFlowStepsResponse [Text]-ajfsrStepIds = lens _ajfsrStepIds (\s a -> s { _ajfsrStepIds = a }) . _List+instance ToJSON AddJobFlowSteps where+ toJSON AddJobFlowSteps'{..}+ = object+ ["JobFlowId" .= _ajfsJobFlowId,+ "Steps" .= _ajfsSteps] instance ToPath AddJobFlowSteps where- toPath = const "/"+ toPath = const "/" instance ToQuery AddJobFlowSteps where- toQuery = const mempty--instance ToHeaders AddJobFlowSteps+ toQuery = const mempty -instance ToJSON AddJobFlowSteps where- toJSON AddJobFlowSteps{..} = object- [ "JobFlowId" .= _ajfsJobFlowId- , "Steps" .= _ajfsSteps- ]+-- | The output for the AddJobFlowSteps operation.+--+-- /See:/ 'addJobFlowStepsResponse' smart constructor.+data AddJobFlowStepsResponse = AddJobFlowStepsResponse'+ { _ajfsrsStepIds :: !(Maybe [Text])+ , _ajfsrsStatus :: !Int+ } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest AddJobFlowSteps where- type Sv AddJobFlowSteps = EMR- type Rs AddJobFlowSteps = AddJobFlowStepsResponse+-- | Creates a value of 'AddJobFlowStepsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ajfsrsStepIds'+--+-- * 'ajfsrsStatus'+addJobFlowStepsResponse+ :: Int -- ^ 'ajfsrsStatus'+ -> AddJobFlowStepsResponse+addJobFlowStepsResponse pStatus_ =+ AddJobFlowStepsResponse'+ { _ajfsrsStepIds = Nothing+ , _ajfsrsStatus = pStatus_+ } - request = post "AddJobFlowSteps"- response = jsonResponse+-- | The identifiers of the list of steps added to the job flow.+ajfsrsStepIds :: Lens' AddJobFlowStepsResponse [Text]+ajfsrsStepIds = lens _ajfsrsStepIds (\ s a -> s{_ajfsrsStepIds = a}) . _Default . _Coerce; -instance FromJSON AddJobFlowStepsResponse where- parseJSON = withObject "AddJobFlowStepsResponse" $ \o -> AddJobFlowStepsResponse- <$> o .:? "StepIds" .!= mempty+-- | The response status code.+ajfsrsStatus :: Lens' AddJobFlowStepsResponse Int+ajfsrsStatus = lens _ajfsrsStatus (\ s a -> s{_ajfsrsStatus = a});
gen/Network/AWS/EMR/AddTags.hs view
@@ -1,110 +1,135 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE LambdaCase #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module : Network.AWS.EMR.AddTags--- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- 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--- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright : (c) 2013-2015 Brendan Hay+-- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : experimental+-- Stability : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Adds tags to an Amazon EMR resource. Tags make it easier to associate--- 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 EMRResources>.+-- Adds tags to an Amazon EMR resource. Tags make it easier to associate+-- 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>. ----- <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_AddTags.html>+-- /See:/ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_AddTags.html AWS API Reference> for AddTags. module Network.AWS.EMR.AddTags (- -- * Request- AddTags- -- ** Request constructor- , addTags- -- ** Request lenses+ -- * Creating a Request+ addTags+ , AddTags+ -- * Request Lenses , atResourceId , atTags - -- * Response- , AddTagsResponse- -- ** Response constructor+ -- * Destructuring the Response , addTagsResponse+ , AddTagsResponse+ -- * Response Lenses+ , atrsStatus ) where -import Network.AWS.Data (Object)-import Network.AWS.Prelude-import Network.AWS.Request.JSON-import Network.AWS.EMR.Types-import qualified GHC.Exts--data AddTags = AddTags- { _atResourceId :: Text- , _atTags :: List "Tags" Tag- } deriving (Eq, Read, Show)+import Network.AWS.EMR.Types+import Network.AWS.EMR.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response --- | 'AddTags' constructor.+-- | This input identifies a cluster and a list of tags to attach. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'addTags' smart constructor.+data AddTags = AddTags'+ { _atResourceId :: !Text+ , _atTags :: ![Tag]+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddTags' with the minimum fields required to make a request. ----- * 'atResourceId' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'atTags' @::@ ['Tag']+-- * 'atResourceId' ---addTags :: Text -- ^ 'atResourceId'- -> AddTags-addTags p1 = AddTags- { _atResourceId = p1- , _atTags = mempty+-- * 'atTags'+addTags+ :: Text -- ^ 'atResourceId'+ -> AddTags+addTags pResourceId_ =+ AddTags'+ { _atResourceId = pResourceId_+ , _atTags = mempty } --- | The Amazon EMR resource identifier to which tags will be added. This value--- must be a cluster identifier.+-- | The Amazon EMR resource identifier to which tags will be added. This+-- value must be a cluster identifier. atResourceId :: Lens' AddTags Text-atResourceId = lens _atResourceId (\s a -> s { _atResourceId = a })+atResourceId = lens _atResourceId (\ s a -> s{_atResourceId = a}); -- | A list of tags to associate with a cluster and propagate to Amazon EC2--- instances. Tags are user-defined key/value pairs that consist of a required--- key string with a maximum of 128 characters, and an optional value string--- with a maximum of 256 characters.+-- instances. Tags are user-defined key\/value pairs that consist of a+-- required key string with a maximum of 128 characters, and an optional+-- value string with a maximum of 256 characters. atTags :: Lens' AddTags [Tag]-atTags = lens _atTags (\s a -> s { _atTags = a }) . _List+atTags = lens _atTags (\ s a -> s{_atTags = a}) . _Coerce; -data AddTagsResponse = AddTagsResponse- deriving (Eq, Ord, Read, Show, Generic)+instance AWSRequest AddTags where+ type Sv AddTags = EMR+ type Rs AddTags = AddTagsResponse+ request = postJSON+ response+ = receiveEmpty+ (\ s h x -> AddTagsResponse' <$> (pure (fromEnum s))) --- | 'AddTagsResponse' constructor.-addTagsResponse :: AddTagsResponse-addTagsResponse = AddTagsResponse+instance ToHeaders AddTags where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("ElasticMapReduce.AddTags" :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)]) +instance ToJSON AddTags where+ toJSON AddTags'{..}+ = object+ ["ResourceId" .= _atResourceId, "Tags" .= _atTags]+ instance ToPath AddTags where- toPath = const "/"+ toPath = const "/" instance ToQuery AddTags where- toQuery = const mempty--instance ToHeaders AddTags+ toQuery = const mempty -instance ToJSON AddTags where- toJSON AddTags{..} = object- [ "ResourceId" .= _atResourceId- , "Tags" .= _atTags- ]+-- | This output indicates the result of adding tags to a resource.+--+-- /See:/ 'addTagsResponse' smart constructor.+newtype AddTagsResponse = AddTagsResponse'+ { _atrsStatus :: Int+ } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest AddTags where- type Sv AddTags = EMR- type Rs AddTags = AddTagsResponse+-- | Creates a value of 'AddTagsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'atrsStatus'+addTagsResponse+ :: Int -- ^ 'atrsStatus'+ -> AddTagsResponse+addTagsResponse pStatus_ =+ AddTagsResponse'+ { _atrsStatus = pStatus_+ } - request = post "AddTags"- response = nullResponse AddTagsResponse+-- | The response status code.+atrsStatus :: Lens' AddTagsResponse Int+atrsStatus = lens _atrsStatus (\ s a -> s{_atrsStatus = a});
gen/Network/AWS/EMR/DescribeCluster.hs view
@@ -1,115 +1,132 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE LambdaCase #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module : Network.AWS.EMR.DescribeCluster--- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- 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--- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright : (c) 2013-2015 Brendan Hay+-- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : experimental+-- Stability : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Provides cluster-level details including status, hardware and software--- configuration, VPC settings, and so on. For information about the cluster--- steps, see 'ListSteps'.+-- Provides cluster-level details including status, hardware and software+-- configuration, VPC settings, and so on. For information about the+-- cluster steps, see ListSteps. ----- <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_DescribeCluster.html>+-- /See:/ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_DescribeCluster.html AWS API Reference> for DescribeCluster. module Network.AWS.EMR.DescribeCluster (- -- * Request- DescribeCluster- -- ** Request constructor- , describeCluster- -- ** Request lenses+ -- * Creating a Request+ describeCluster+ , DescribeCluster+ -- * Request Lenses , dcClusterId - -- * Response- , DescribeClusterResponse- -- ** Response constructor+ -- * Destructuring the Response , describeClusterResponse- -- ** Response lenses- , dcrCluster+ , DescribeClusterResponse+ -- * Response Lenses+ , dcrsStatus+ , dcrsCluster ) where -import Network.AWS.Data (Object)-import Network.AWS.Prelude-import Network.AWS.Request.JSON-import Network.AWS.EMR.Types-import qualified GHC.Exts+import Network.AWS.EMR.Types+import Network.AWS.EMR.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -newtype DescribeCluster = DescribeCluster+-- | This input determines which cluster to describe.+--+-- /See:/ 'describeCluster' smart constructor.+newtype DescribeCluster = DescribeCluster' { _dcClusterId :: Text- } deriving (Eq, Ord, Read, Show, Monoid, IsString)+ } deriving (Eq,Read,Show,Data,Typeable,Generic) --- | 'DescribeCluster' constructor.------ The fields accessible through corresponding lenses are:+-- | Creates a value of 'DescribeCluster' with the minimum fields required to make a request. ----- * 'dcClusterId' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ---describeCluster :: Text -- ^ 'dcClusterId'- -> DescribeCluster-describeCluster p1 = DescribeCluster- { _dcClusterId = p1+-- * 'dcClusterId'+describeCluster+ :: Text -- ^ 'dcClusterId'+ -> DescribeCluster+describeCluster pClusterId_ =+ DescribeCluster'+ { _dcClusterId = pClusterId_ } -- | The identifier of the cluster to describe. dcClusterId :: Lens' DescribeCluster Text-dcClusterId = lens _dcClusterId (\s a -> s { _dcClusterId = a })+dcClusterId = lens _dcClusterId (\ s a -> s{_dcClusterId = a}); -newtype DescribeClusterResponse = DescribeClusterResponse- { _dcrCluster :: Cluster- } deriving (Eq, Read, Show)+instance AWSRequest DescribeCluster where+ type Sv DescribeCluster = EMR+ type Rs DescribeCluster = DescribeClusterResponse+ request = postJSON+ response+ = receiveJSON+ (\ s h x ->+ DescribeClusterResponse' <$>+ (pure (fromEnum s)) <*> (x .:> "Cluster")) --- | 'DescribeClusterResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'dcrCluster' @::@ 'Cluster'----describeClusterResponse :: Cluster -- ^ 'dcrCluster'- -> DescribeClusterResponse-describeClusterResponse p1 = DescribeClusterResponse- { _dcrCluster = p1- }+instance ToHeaders DescribeCluster where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("ElasticMapReduce.DescribeCluster" :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)]) --- | This output contains the details for the requested cluster.-dcrCluster :: Lens' DescribeClusterResponse Cluster-dcrCluster = lens _dcrCluster (\s a -> s { _dcrCluster = a })+instance ToJSON DescribeCluster where+ toJSON DescribeCluster'{..}+ = object ["ClusterId" .= _dcClusterId] instance ToPath DescribeCluster where- toPath = const "/"+ toPath = const "/" instance ToQuery DescribeCluster where- toQuery = const mempty--instance ToHeaders DescribeCluster+ toQuery = const mempty -instance ToJSON DescribeCluster where- toJSON DescribeCluster{..} = object- [ "ClusterId" .= _dcClusterId- ]+-- | This output contains the description of the cluster.+--+-- /See:/ 'describeClusterResponse' smart constructor.+data DescribeClusterResponse = DescribeClusterResponse'+ { _dcrsStatus :: !Int+ , _dcrsCluster :: !Cluster+ } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest DescribeCluster where- type Sv DescribeCluster = EMR- type Rs DescribeCluster = DescribeClusterResponse+-- | Creates a value of 'DescribeClusterResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dcrsStatus'+--+-- * 'dcrsCluster'+describeClusterResponse+ :: Int -- ^ 'dcrsStatus'+ -> Cluster -- ^ 'dcrsCluster'+ -> DescribeClusterResponse+describeClusterResponse pStatus_ pCluster_ =+ DescribeClusterResponse'+ { _dcrsStatus = pStatus_+ , _dcrsCluster = pCluster_+ } - request = post "DescribeCluster"- response = jsonResponse+-- | The response status code.+dcrsStatus :: Lens' DescribeClusterResponse Int+dcrsStatus = lens _dcrsStatus (\ s a -> s{_dcrsStatus = a}); -instance FromJSON DescribeClusterResponse where- parseJSON = withObject "DescribeClusterResponse" $ \o -> DescribeClusterResponse- <$> o .: "Cluster"+-- | This output contains the details for the requested cluster.+dcrsCluster :: Lens' DescribeClusterResponse Cluster+dcrsCluster = lens _dcrsCluster (\ s a -> s{_dcrsCluster = a});
− gen/Network/AWS/EMR/DescribeJobFlows.hs
@@ -1,162 +0,0 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE LambdaCase #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeFamilies #-}--{-# OPTIONS_GHC -fno-warn-unused-imports #-}---- Module : Network.AWS.EMR.DescribeJobFlows--- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- 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--- you can obtain it at http://mozilla.org/MPL/2.0/.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : experimental--- Portability : non-portable (GHC extensions)------ Derived from AWS service descriptions, licensed under Apache 2.0.---- | This API is deprecated and will eventually be removed. We recommend you use 'ListClusters', 'DescribeCluster', 'ListSteps', 'ListInstanceGroups' and 'ListBootstrapActions'--- instead.------ DescribeJobFlows returns a list of job flows that match all of the supplied--- parameters. The parameters can include a list of job flow IDs, job flow--- states, and restrictions on job flow creation date and time.------ Regardless of supplied parameters, only job flows created within the last--- two months are returned.------ If no parameters are supplied, then job flows matching either of the--- following criteria are returned:------ Job flows created and completed in the last two weeks Job flows created--- within the last two months that are in one of the following states: 'RUNNING', 'WAITING', 'SHUTTING_DOWN', 'STARTING' Amazon Elastic MapReduce can return a maximum of--- 512 job flow descriptions.------ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_DescribeJobFlows.html>-module Network.AWS.EMR.DescribeJobFlows- (- -- * Request- DescribeJobFlows- -- ** Request constructor- , describeJobFlows- -- ** Request lenses- , djfCreatedAfter- , djfCreatedBefore- , djfJobFlowIds- , djfJobFlowStates-- -- * Response- , DescribeJobFlowsResponse- -- ** Response constructor- , describeJobFlowsResponse- -- ** Response lenses- , djfrJobFlows- ) where--import Network.AWS.Data (Object)-import Network.AWS.Prelude-import Network.AWS.Request.JSON-import Network.AWS.EMR.Types-import qualified GHC.Exts--data DescribeJobFlows = DescribeJobFlows- { _djfCreatedAfter :: Maybe POSIX- , _djfCreatedBefore :: Maybe POSIX- , _djfJobFlowIds :: List "JobFlowIds" Text- , _djfJobFlowStates :: List "JobFlowStates" JobFlowExecutionState- } deriving (Eq, Read, Show)---- | 'DescribeJobFlows' constructor.------ The fields accessible through corresponding lenses are:------ * 'djfCreatedAfter' @::@ 'Maybe' 'UTCTime'------ * 'djfCreatedBefore' @::@ 'Maybe' 'UTCTime'------ * 'djfJobFlowIds' @::@ ['Text']------ * 'djfJobFlowStates' @::@ ['JobFlowExecutionState']----describeJobFlows :: DescribeJobFlows-describeJobFlows = DescribeJobFlows- { _djfCreatedAfter = Nothing- , _djfCreatedBefore = Nothing- , _djfJobFlowIds = mempty- , _djfJobFlowStates = mempty- }---- | Return only job flows created after this date and time.-djfCreatedAfter :: Lens' DescribeJobFlows (Maybe UTCTime)-djfCreatedAfter = lens _djfCreatedAfter (\s a -> s { _djfCreatedAfter = a }) . mapping _Time---- | Return only job flows created before this date and time.-djfCreatedBefore :: Lens' DescribeJobFlows (Maybe UTCTime)-djfCreatedBefore = lens _djfCreatedBefore (\s a -> s { _djfCreatedBefore = a }) . mapping _Time---- | Return only job flows whose job flow ID is contained in this list.-djfJobFlowIds :: Lens' DescribeJobFlows [Text]-djfJobFlowIds = lens _djfJobFlowIds (\s a -> s { _djfJobFlowIds = a }) . _List---- | Return only job flows whose state is contained in this list.-djfJobFlowStates :: Lens' DescribeJobFlows [JobFlowExecutionState]-djfJobFlowStates = lens _djfJobFlowStates (\s a -> s { _djfJobFlowStates = a }) . _List--newtype DescribeJobFlowsResponse = DescribeJobFlowsResponse- { _djfrJobFlows :: List "JobFlows" JobFlowDetail- } deriving (Eq, Read, Show, Monoid, Semigroup)--instance GHC.Exts.IsList DescribeJobFlowsResponse where- type Item DescribeJobFlowsResponse = JobFlowDetail-- fromList = DescribeJobFlowsResponse . GHC.Exts.fromList- toList = GHC.Exts.toList . _djfrJobFlows---- | 'DescribeJobFlowsResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'djfrJobFlows' @::@ ['JobFlowDetail']----describeJobFlowsResponse :: DescribeJobFlowsResponse-describeJobFlowsResponse = DescribeJobFlowsResponse- { _djfrJobFlows = mempty- }---- | A list of job flows matching the parameters supplied.-djfrJobFlows :: Lens' DescribeJobFlowsResponse [JobFlowDetail]-djfrJobFlows = lens _djfrJobFlows (\s a -> s { _djfrJobFlows = a }) . _List--instance ToPath DescribeJobFlows where- toPath = const "/"--instance ToQuery DescribeJobFlows where- toQuery = const mempty--instance ToHeaders DescribeJobFlows--instance ToJSON DescribeJobFlows where- toJSON DescribeJobFlows{..} = object- [ "CreatedAfter" .= _djfCreatedAfter- , "CreatedBefore" .= _djfCreatedBefore- , "JobFlowIds" .= _djfJobFlowIds- , "JobFlowStates" .= _djfJobFlowStates- ]--instance AWSRequest DescribeJobFlows where- type Sv DescribeJobFlows = EMR- type Rs DescribeJobFlows = DescribeJobFlowsResponse-- request = post "DescribeJobFlows"- response = jsonResponse--instance FromJSON DescribeJobFlowsResponse where- parseJSON = withObject "DescribeJobFlowsResponse" $ \o -> DescribeJobFlowsResponse- <$> o .:? "JobFlows" .!= mempty
gen/Network/AWS/EMR/DescribeStep.hs view
@@ -1,123 +1,140 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE LambdaCase #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module : Network.AWS.EMR.DescribeStep--- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- 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--- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright : (c) 2013-2015 Brendan Hay+-- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : experimental+-- Stability : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Provides more detail about the cluster step.+-- Provides more detail about the cluster step. ----- <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_DescribeStep.html>+-- /See:/ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_DescribeStep.html AWS API Reference> for DescribeStep. module Network.AWS.EMR.DescribeStep (- -- * Request- DescribeStep- -- ** Request constructor- , describeStep- -- ** Request lenses+ -- * Creating a Request+ describeStep+ , DescribeStep+ -- * Request Lenses , dsClusterId , dsStepId - -- * Response- , DescribeStepResponse- -- ** Response constructor+ -- * Destructuring the Response , describeStepResponse- -- ** Response lenses- , dsrStep+ , DescribeStepResponse+ -- * Response Lenses+ , dsrsStep+ , dsrsStatus ) where -import Network.AWS.Data (Object)-import Network.AWS.Prelude-import Network.AWS.Request.JSON-import Network.AWS.EMR.Types-import qualified GHC.Exts--data DescribeStep = DescribeStep- { _dsClusterId :: Text- , _dsStepId :: Text- } deriving (Eq, Ord, Read, Show)+import Network.AWS.EMR.Types+import Network.AWS.EMR.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response --- | 'DescribeStep' constructor.+-- | This input determines which step to describe. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'describeStep' smart constructor.+data DescribeStep = DescribeStep'+ { _dsClusterId :: !Text+ , _dsStepId :: !Text+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeStep' with the minimum fields required to make a request. ----- * 'dsClusterId' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'dsStepId' @::@ 'Text'+-- * 'dsClusterId' ---describeStep :: Text -- ^ 'dsClusterId'- -> Text -- ^ 'dsStepId'- -> DescribeStep-describeStep p1 p2 = DescribeStep- { _dsClusterId = p1- , _dsStepId = p2+-- * 'dsStepId'+describeStep+ :: Text -- ^ 'dsClusterId'+ -> Text -- ^ 'dsStepId'+ -> DescribeStep+describeStep pClusterId_ pStepId_ =+ DescribeStep'+ { _dsClusterId = pClusterId_+ , _dsStepId = pStepId_ } -- | The identifier of the cluster with steps to describe. dsClusterId :: Lens' DescribeStep Text-dsClusterId = lens _dsClusterId (\s a -> s { _dsClusterId = a })+dsClusterId = lens _dsClusterId (\ s a -> s{_dsClusterId = a}); -- | The identifier of the step to describe. dsStepId :: Lens' DescribeStep Text-dsStepId = lens _dsStepId (\s a -> s { _dsStepId = a })+dsStepId = lens _dsStepId (\ s a -> s{_dsStepId = a}); -newtype DescribeStepResponse = DescribeStepResponse- { _dsrStep :: Maybe Step- } deriving (Eq, Read, Show)+instance AWSRequest DescribeStep where+ type Sv DescribeStep = EMR+ type Rs DescribeStep = DescribeStepResponse+ request = postJSON+ response+ = receiveJSON+ (\ s h x ->+ DescribeStepResponse' <$>+ (x .?> "Step") <*> (pure (fromEnum s))) --- | 'DescribeStepResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'dsrStep' @::@ 'Maybe' 'Step'----describeStepResponse :: DescribeStepResponse-describeStepResponse = DescribeStepResponse- { _dsrStep = Nothing- }+instance ToHeaders DescribeStep where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("ElasticMapReduce.DescribeStep" :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)]) --- | The step details for the requested step identifier.-dsrStep :: Lens' DescribeStepResponse (Maybe Step)-dsrStep = lens _dsrStep (\s a -> s { _dsrStep = a })+instance ToJSON DescribeStep where+ toJSON DescribeStep'{..}+ = object+ ["ClusterId" .= _dsClusterId, "StepId" .= _dsStepId] instance ToPath DescribeStep where- toPath = const "/"+ toPath = const "/" instance ToQuery DescribeStep where- toQuery = const mempty--instance ToHeaders DescribeStep+ toQuery = const mempty -instance ToJSON DescribeStep where- toJSON DescribeStep{..} = object- [ "ClusterId" .= _dsClusterId- , "StepId" .= _dsStepId- ]+-- | This output contains the description of the cluster step.+--+-- /See:/ 'describeStepResponse' smart constructor.+data DescribeStepResponse = DescribeStepResponse'+ { _dsrsStep :: !(Maybe Step)+ , _dsrsStatus :: !Int+ } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest DescribeStep where- type Sv DescribeStep = EMR- type Rs DescribeStep = DescribeStepResponse+-- | Creates a value of 'DescribeStepResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsrsStep'+--+-- * 'dsrsStatus'+describeStepResponse+ :: Int -- ^ 'dsrsStatus'+ -> DescribeStepResponse+describeStepResponse pStatus_ =+ DescribeStepResponse'+ { _dsrsStep = Nothing+ , _dsrsStatus = pStatus_+ } - request = post "DescribeStep"- response = jsonResponse+-- | The step details for the requested step identifier.+dsrsStep :: Lens' DescribeStepResponse (Maybe Step)+dsrsStep = lens _dsrsStep (\ s a -> s{_dsrsStep = a}); -instance FromJSON DescribeStepResponse where- parseJSON = withObject "DescribeStepResponse" $ \o -> DescribeStepResponse- <$> o .:? "Step"+-- | The response status code.+dsrsStatus :: Lens' DescribeStepResponse Int+dsrsStatus = lens _dsrsStatus (\ s a -> s{_dsrsStatus = a});
gen/Network/AWS/EMR/ListBootstrapActions.hs view
@@ -1,140 +1,166 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE LambdaCase #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module : Network.AWS.EMR.ListBootstrapActions--- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- 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--- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright : (c) 2013-2015 Brendan Hay+-- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : experimental+-- Stability : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Provides information about the bootstrap actions associated with a cluster.+-- Provides information about the bootstrap actions associated with a+-- cluster. ----- <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_ListBootstrapActions.html>+-- /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 (- -- * Request- ListBootstrapActions- -- ** Request constructor- , listBootstrapActions- -- ** Request lenses- , lbaClusterId+ -- * Creating a Request+ listBootstrapActions+ , ListBootstrapActions+ -- * Request Lenses , lbaMarker+ , lbaClusterId - -- * Response- , ListBootstrapActionsResponse- -- ** Response constructor+ -- * Destructuring the Response , listBootstrapActionsResponse- -- ** Response lenses- , lbarBootstrapActions- , lbarMarker+ , ListBootstrapActionsResponse+ -- * Response Lenses+ , lbarsBootstrapActions+ , lbarsMarker+ , lbarsStatus ) where -import Network.AWS.Data (Object)-import Network.AWS.Prelude-import Network.AWS.Request.JSON-import Network.AWS.EMR.Types-import qualified GHC.Exts--data ListBootstrapActions = ListBootstrapActions- { _lbaClusterId :: Text- , _lbaMarker :: Maybe Text- } deriving (Eq, Ord, Read, Show)+import Network.AWS.EMR.Types+import Network.AWS.EMR.Types.Product+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response --- | 'ListBootstrapActions' constructor.+-- | This input determines which bootstrap actions to retrieve. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'listBootstrapActions' smart constructor.+data ListBootstrapActions = ListBootstrapActions'+ { _lbaMarker :: !(Maybe Text)+ , _lbaClusterId :: !Text+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListBootstrapActions' with the minimum fields required to make a request. ----- * 'lbaClusterId' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'lbaMarker' @::@ 'Maybe' 'Text'+-- * 'lbaMarker' ---listBootstrapActions :: Text -- ^ 'lbaClusterId'- -> ListBootstrapActions-listBootstrapActions p1 = ListBootstrapActions- { _lbaClusterId = p1- , _lbaMarker = Nothing+-- * 'lbaClusterId'+listBootstrapActions+ :: Text -- ^ 'lbaClusterId'+ -> ListBootstrapActions+listBootstrapActions pClusterId_ =+ ListBootstrapActions'+ { _lbaMarker = Nothing+ , _lbaClusterId = pClusterId_ } +-- | The pagination token that indicates the next set of results to retrieve+-- .+lbaMarker :: Lens' ListBootstrapActions (Maybe Text)+lbaMarker = lens _lbaMarker (\ s a -> s{_lbaMarker = a});+ -- | The cluster identifier for the bootstrap actions to list . lbaClusterId :: Lens' ListBootstrapActions Text-lbaClusterId = lens _lbaClusterId (\s a -> s { _lbaClusterId = a })---- | The pagination token that indicates the next set of results to retrieve .-lbaMarker :: Lens' ListBootstrapActions (Maybe Text)-lbaMarker = lens _lbaMarker (\s a -> s { _lbaMarker = a })+lbaClusterId = lens _lbaClusterId (\ s a -> s{_lbaClusterId = a}); -data ListBootstrapActionsResponse = ListBootstrapActionsResponse- { _lbarBootstrapActions :: List "BootstrapActions" Command- , _lbarMarker :: Maybe Text- } deriving (Eq, Read, Show)+instance AWSPager ListBootstrapActions where+ page rq rs+ | stop (rs ^. lbarsMarker) = Nothing+ | stop (rs ^. lbarsBootstrapActions) = Nothing+ | otherwise =+ Just $ rq & lbaMarker .~ rs ^. lbarsMarker --- | 'ListBootstrapActionsResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'lbarBootstrapActions' @::@ ['Command']------ * 'lbarMarker' @::@ 'Maybe' 'Text'----listBootstrapActionsResponse :: ListBootstrapActionsResponse-listBootstrapActionsResponse = ListBootstrapActionsResponse- { _lbarBootstrapActions = mempty- , _lbarMarker = Nothing- }+instance AWSRequest ListBootstrapActions where+ type Sv ListBootstrapActions = EMR+ type Rs ListBootstrapActions =+ ListBootstrapActionsResponse+ request = postJSON+ response+ = receiveJSON+ (\ s h x ->+ ListBootstrapActionsResponse' <$>+ (x .?> "BootstrapActions" .!@ mempty) <*>+ (x .?> "Marker")+ <*> (pure (fromEnum s))) --- | The bootstrap actions associated with the cluster .-lbarBootstrapActions :: Lens' ListBootstrapActionsResponse [Command]-lbarBootstrapActions =- lens _lbarBootstrapActions (\s a -> s { _lbarBootstrapActions = a })- . _List+instance ToHeaders ListBootstrapActions where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("ElasticMapReduce.ListBootstrapActions" ::+ ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)]) --- | The pagination token that indicates the next set of results to retrieve .-lbarMarker :: Lens' ListBootstrapActionsResponse (Maybe Text)-lbarMarker = lens _lbarMarker (\s a -> s { _lbarMarker = a })+instance ToJSON ListBootstrapActions where+ toJSON ListBootstrapActions'{..}+ = object+ ["Marker" .= _lbaMarker,+ "ClusterId" .= _lbaClusterId] instance ToPath ListBootstrapActions where- toPath = const "/"+ toPath = const "/" instance ToQuery ListBootstrapActions where- toQuery = const mempty--instance ToHeaders ListBootstrapActions+ toQuery = const mempty -instance ToJSON ListBootstrapActions where- toJSON ListBootstrapActions{..} = object- [ "ClusterId" .= _lbaClusterId- , "Marker" .= _lbaMarker- ]+-- | This output contains the boostrap actions detail .+--+-- /See:/ 'listBootstrapActionsResponse' smart constructor.+data ListBootstrapActionsResponse = ListBootstrapActionsResponse'+ { _lbarsBootstrapActions :: !(Maybe [Command])+ , _lbarsMarker :: !(Maybe Text)+ , _lbarsStatus :: !Int+ } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest ListBootstrapActions where- type Sv ListBootstrapActions = EMR- type Rs ListBootstrapActions = ListBootstrapActionsResponse+-- | Creates a value of 'ListBootstrapActionsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lbarsBootstrapActions'+--+-- * 'lbarsMarker'+--+-- * 'lbarsStatus'+listBootstrapActionsResponse+ :: Int -- ^ 'lbarsStatus'+ -> ListBootstrapActionsResponse+listBootstrapActionsResponse pStatus_ =+ ListBootstrapActionsResponse'+ { _lbarsBootstrapActions = Nothing+ , _lbarsMarker = Nothing+ , _lbarsStatus = pStatus_+ } - request = post "ListBootstrapActions"- response = jsonResponse+-- | The bootstrap actions associated with the cluster .+lbarsBootstrapActions :: Lens' ListBootstrapActionsResponse [Command]+lbarsBootstrapActions = lens _lbarsBootstrapActions (\ s a -> s{_lbarsBootstrapActions = a}) . _Default . _Coerce; -instance FromJSON ListBootstrapActionsResponse where- parseJSON = withObject "ListBootstrapActionsResponse" $ \o -> ListBootstrapActionsResponse- <$> o .:? "BootstrapActions" .!= mempty- <*> o .:? "Marker"+-- | The pagination token that indicates the next set of results to retrieve+-- .+lbarsMarker :: Lens' ListBootstrapActionsResponse (Maybe Text)+lbarsMarker = lens _lbarsMarker (\ s a -> s{_lbarsMarker = a}); -instance AWSPager ListBootstrapActions where- page rq rs- | stop (rs ^. lbarMarker) = Nothing- | otherwise = (\x -> rq & lbaMarker ?~ x)- <$> (rs ^. lbarMarker)+-- | The response status code.+lbarsStatus :: Lens' ListBootstrapActionsResponse Int+lbarsStatus = lens _lbarsStatus (\ s a -> s{_lbarsStatus = a});
gen/Network/AWS/EMR/ListClusters.hs view
@@ -1,161 +1,185 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE LambdaCase #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module : Network.AWS.EMR.ListClusters--- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- 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--- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright : (c) 2013-2015 Brendan Hay+-- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : experimental+-- Stability : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Provides the status of all clusters visible to this AWS account. Allows you--- to filter the list of clusters based on certain criteria; for example,--- filtering by cluster creation date and time or by status. This 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.+-- Provides the status of all clusters visible to this AWS account. Allows+-- you to filter the list of clusters based on certain criteria; for+-- example, filtering by cluster creation date and time or by status. This+-- 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. ----- <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_ListClusters.html>+-- /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 (- -- * Request- ListClusters- -- ** Request constructor- , listClusters- -- ** Request lenses- , lcClusterStates+ -- * Creating a Request+ listClusters+ , ListClusters+ -- * Request Lenses , lcCreatedAfter- , lcCreatedBefore , lcMarker+ , lcClusterStates+ , lcCreatedBefore - -- * Response- , ListClustersResponse- -- ** Response constructor+ -- * Destructuring the Response , listClustersResponse- -- ** Response lenses- , lcrClusters- , lcrMarker+ , ListClustersResponse+ -- * Response Lenses+ , lcrsMarker+ , lcrsClusters+ , lcrsStatus ) where -import Network.AWS.Data (Object)-import Network.AWS.Prelude-import Network.AWS.Request.JSON-import Network.AWS.EMR.Types-import qualified GHC.Exts--data ListClusters = ListClusters- { _lcClusterStates :: List "ClusterStates" ClusterState- , _lcCreatedAfter :: Maybe POSIX- , _lcCreatedBefore :: Maybe POSIX- , _lcMarker :: Maybe Text- } deriving (Eq, Read, Show)+import Network.AWS.EMR.Types+import Network.AWS.EMR.Types.Product+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response --- | 'ListClusters' constructor.+-- | This input determines how the ListClusters action filters the list of+-- clusters that it returns. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'listClusters' smart constructor.+data ListClusters = ListClusters'+ { _lcCreatedAfter :: !(Maybe POSIX)+ , _lcMarker :: !(Maybe Text)+ , _lcClusterStates :: !(Maybe [ClusterState])+ , _lcCreatedBefore :: !(Maybe POSIX)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListClusters' with the minimum fields required to make a request. ----- * 'lcClusterStates' @::@ ['ClusterState']+-- Use one of the following lenses to modify other fields as desired: ----- * 'lcCreatedAfter' @::@ 'Maybe' 'UTCTime'+-- * 'lcCreatedAfter' ----- * 'lcCreatedBefore' @::@ 'Maybe' 'UTCTime'+-- * 'lcMarker' ----- * 'lcMarker' @::@ 'Maybe' 'Text'+-- * 'lcClusterStates' ---listClusters :: ListClusters-listClusters = ListClusters- { _lcCreatedAfter = Nothing+-- * 'lcCreatedBefore'+listClusters+ :: ListClusters+listClusters =+ ListClusters'+ { _lcCreatedAfter = Nothing+ , _lcMarker = Nothing+ , _lcClusterStates = Nothing , _lcCreatedBefore = Nothing- , _lcClusterStates = mempty- , _lcMarker = Nothing } --- | The cluster state filters to apply when listing clusters.-lcClusterStates :: Lens' ListClusters [ClusterState]-lcClusterStates = lens _lcClusterStates (\s a -> s { _lcClusterStates = a }) . _List- -- | The creation date and time beginning value filter for listing clusters . lcCreatedAfter :: Lens' ListClusters (Maybe UTCTime)-lcCreatedAfter = lens _lcCreatedAfter (\s a -> s { _lcCreatedAfter = a }) . mapping _Time---- | The creation date and time end value filter for listing clusters .-lcCreatedBefore :: Lens' ListClusters (Maybe UTCTime)-lcCreatedBefore = lens _lcCreatedBefore (\s a -> s { _lcCreatedBefore = a }) . mapping _Time+lcCreatedAfter = lens _lcCreatedAfter (\ s a -> s{_lcCreatedAfter = a}) . mapping _Time; -- | The pagination token that indicates the next set of results to retrieve. lcMarker :: Lens' ListClusters (Maybe Text)-lcMarker = lens _lcMarker (\s a -> s { _lcMarker = a })+lcMarker = lens _lcMarker (\ s a -> s{_lcMarker = a}); -data ListClustersResponse = ListClustersResponse- { _lcrClusters :: List "Clusters" ClusterSummary- , _lcrMarker :: Maybe Text- } deriving (Eq, Read, Show)+-- | The cluster state filters to apply when listing clusters.+lcClusterStates :: Lens' ListClusters [ClusterState]+lcClusterStates = lens _lcClusterStates (\ s a -> s{_lcClusterStates = a}) . _Default . _Coerce; --- | 'ListClustersResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'lcrClusters' @::@ ['ClusterSummary']------ * 'lcrMarker' @::@ 'Maybe' 'Text'----listClustersResponse :: ListClustersResponse-listClustersResponse = ListClustersResponse- { _lcrClusters = mempty- , _lcrMarker = Nothing- }+-- | The creation date and time end value filter for listing clusters .+lcCreatedBefore :: Lens' ListClusters (Maybe UTCTime)+lcCreatedBefore = lens _lcCreatedBefore (\ s a -> s{_lcCreatedBefore = a}) . mapping _Time; --- | The list of clusters for the account based on the given filters.-lcrClusters :: Lens' ListClustersResponse [ClusterSummary]-lcrClusters = lens _lcrClusters (\s a -> s { _lcrClusters = a }) . _List+instance AWSPager ListClusters where+ page rq rs+ | stop (rs ^. lcrsMarker) = Nothing+ | stop (rs ^. lcrsClusters) = Nothing+ | otherwise =+ Just $ rq & lcMarker .~ rs ^. lcrsMarker --- | The pagination token that indicates the next set of results to retrieve.-lcrMarker :: Lens' ListClustersResponse (Maybe Text)-lcrMarker = lens _lcrMarker (\s a -> s { _lcrMarker = a })+instance AWSRequest ListClusters where+ type Sv ListClusters = EMR+ type Rs ListClusters = ListClustersResponse+ request = postJSON+ response+ = receiveJSON+ (\ s h x ->+ ListClustersResponse' <$>+ (x .?> "Marker") <*> (x .?> "Clusters" .!@ mempty)+ <*> (pure (fromEnum s))) +instance ToHeaders ListClusters where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("ElasticMapReduce.ListClusters" :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListClusters where+ toJSON ListClusters'{..}+ = object+ ["CreatedAfter" .= _lcCreatedAfter,+ "Marker" .= _lcMarker,+ "ClusterStates" .= _lcClusterStates,+ "CreatedBefore" .= _lcCreatedBefore]+ instance ToPath ListClusters where- toPath = const "/"+ toPath = const "/" instance ToQuery ListClusters where- toQuery = const mempty--instance ToHeaders ListClusters+ toQuery = const mempty -instance ToJSON ListClusters where- toJSON ListClusters{..} = object- [ "CreatedAfter" .= _lcCreatedAfter- , "CreatedBefore" .= _lcCreatedBefore- , "ClusterStates" .= _lcClusterStates- , "Marker" .= _lcMarker- ]+-- | This contains a ClusterSummaryList with the cluster details; for+-- example, the cluster IDs, names, and status.+--+-- /See:/ 'listClustersResponse' smart constructor.+data ListClustersResponse = ListClustersResponse'+ { _lcrsMarker :: !(Maybe Text)+ , _lcrsClusters :: !(Maybe [ClusterSummary])+ , _lcrsStatus :: !Int+ } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest ListClusters where- type Sv ListClusters = EMR- type Rs ListClusters = ListClustersResponse+-- | Creates a value of 'ListClustersResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lcrsMarker'+--+-- * 'lcrsClusters'+--+-- * 'lcrsStatus'+listClustersResponse+ :: Int -- ^ 'lcrsStatus'+ -> ListClustersResponse+listClustersResponse pStatus_ =+ ListClustersResponse'+ { _lcrsMarker = Nothing+ , _lcrsClusters = Nothing+ , _lcrsStatus = pStatus_+ } - request = post "ListClusters"- response = jsonResponse+-- | The pagination token that indicates the next set of results to retrieve.+lcrsMarker :: Lens' ListClustersResponse (Maybe Text)+lcrsMarker = lens _lcrsMarker (\ s a -> s{_lcrsMarker = a}); -instance FromJSON ListClustersResponse where- parseJSON = withObject "ListClustersResponse" $ \o -> ListClustersResponse- <$> o .:? "Clusters" .!= mempty- <*> o .:? "Marker"+-- | The list of clusters for the account based on the given filters.+lcrsClusters :: Lens' ListClustersResponse [ClusterSummary]+lcrsClusters = lens _lcrsClusters (\ s a -> s{_lcrsClusters = a}) . _Default . _Coerce; -instance AWSPager ListClusters where- page rq rs- | stop (rs ^. lcrMarker) = Nothing- | otherwise = (\x -> rq & lcMarker ?~ x)- <$> (rs ^. lcrMarker)+-- | The response status code.+lcrsStatus :: Lens' ListClustersResponse Int+lcrsStatus = lens _lcrsStatus (\ s a -> s{_lcrsStatus = a});
gen/Network/AWS/EMR/ListInstanceGroups.hs view
@@ -1,140 +1,163 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE LambdaCase #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module : Network.AWS.EMR.ListInstanceGroups--- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- 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--- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright : (c) 2013-2015 Brendan Hay+-- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : experimental+-- Stability : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Provides all available details about the instance groups in a cluster.+-- Provides all available details about the instance groups in a cluster. ----- <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_ListInstanceGroups.html>+-- /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 (- -- * Request- ListInstanceGroups- -- ** Request constructor- , listInstanceGroups- -- ** Request lenses- , ligClusterId+ -- * Creating a Request+ listInstanceGroups+ , ListInstanceGroups+ -- * Request Lenses , ligMarker+ , ligClusterId - -- * Response- , ListInstanceGroupsResponse- -- ** Response constructor+ -- * Destructuring the Response , listInstanceGroupsResponse- -- ** Response lenses- , ligrInstanceGroups- , ligrMarker+ , ListInstanceGroupsResponse+ -- * Response Lenses+ , ligrsMarker+ , ligrsInstanceGroups+ , ligrsStatus ) where -import Network.AWS.Data (Object)-import Network.AWS.Prelude-import Network.AWS.Request.JSON-import Network.AWS.EMR.Types-import qualified GHC.Exts--data ListInstanceGroups = ListInstanceGroups- { _ligClusterId :: Text- , _ligMarker :: Maybe Text- } deriving (Eq, Ord, Read, Show)+import Network.AWS.EMR.Types+import Network.AWS.EMR.Types.Product+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response --- | 'ListInstanceGroups' constructor.+-- | This input determines which instance groups to retrieve. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'listInstanceGroups' smart constructor.+data ListInstanceGroups = ListInstanceGroups'+ { _ligMarker :: !(Maybe Text)+ , _ligClusterId :: !Text+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListInstanceGroups' with the minimum fields required to make a request. ----- * 'ligClusterId' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'ligMarker' @::@ 'Maybe' 'Text'+-- * 'ligMarker' ---listInstanceGroups :: Text -- ^ 'ligClusterId'- -> ListInstanceGroups-listInstanceGroups p1 = ListInstanceGroups- { _ligClusterId = p1- , _ligMarker = Nothing+-- * 'ligClusterId'+listInstanceGroups+ :: Text -- ^ 'ligClusterId'+ -> ListInstanceGroups+listInstanceGroups pClusterId_ =+ ListInstanceGroups'+ { _ligMarker = Nothing+ , _ligClusterId = pClusterId_ } --- | The identifier of the cluster for which to list the instance groups.-ligClusterId :: Lens' ListInstanceGroups Text-ligClusterId = lens _ligClusterId (\s a -> s { _ligClusterId = a })- -- | The pagination token that indicates the next set of results to retrieve. ligMarker :: Lens' ListInstanceGroups (Maybe Text)-ligMarker = lens _ligMarker (\s a -> s { _ligMarker = a })+ligMarker = lens _ligMarker (\ s a -> s{_ligMarker = a}); -data ListInstanceGroupsResponse = ListInstanceGroupsResponse- { _ligrInstanceGroups :: List "InstanceGroups" InstanceGroup- , _ligrMarker :: Maybe Text- } deriving (Eq, Read, Show)+-- | The identifier of the cluster for which to list the instance groups.+ligClusterId :: Lens' ListInstanceGroups Text+ligClusterId = lens _ligClusterId (\ s a -> s{_ligClusterId = a}); --- | 'ListInstanceGroupsResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'ligrInstanceGroups' @::@ ['InstanceGroup']------ * 'ligrMarker' @::@ 'Maybe' 'Text'----listInstanceGroupsResponse :: ListInstanceGroupsResponse-listInstanceGroupsResponse = ListInstanceGroupsResponse- { _ligrInstanceGroups = mempty- , _ligrMarker = Nothing- }+instance AWSPager ListInstanceGroups where+ page rq rs+ | stop (rs ^. ligrsMarker) = Nothing+ | stop (rs ^. ligrsInstanceGroups) = Nothing+ | otherwise =+ Just $ rq & ligMarker .~ rs ^. ligrsMarker --- | The list of instance groups for the cluster and given filters.-ligrInstanceGroups :: Lens' ListInstanceGroupsResponse [InstanceGroup]-ligrInstanceGroups =- lens _ligrInstanceGroups (\s a -> s { _ligrInstanceGroups = a })- . _List+instance AWSRequest ListInstanceGroups where+ type Sv ListInstanceGroups = EMR+ type Rs ListInstanceGroups =+ ListInstanceGroupsResponse+ request = postJSON+ response+ = receiveJSON+ (\ s h x ->+ ListInstanceGroupsResponse' <$>+ (x .?> "Marker") <*>+ (x .?> "InstanceGroups" .!@ mempty)+ <*> (pure (fromEnum s))) --- | The pagination token that indicates the next set of results to retrieve.-ligrMarker :: Lens' ListInstanceGroupsResponse (Maybe Text)-ligrMarker = lens _ligrMarker (\s a -> s { _ligrMarker = a })+instance ToHeaders ListInstanceGroups where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("ElasticMapReduce.ListInstanceGroups" ::+ ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)]) +instance ToJSON ListInstanceGroups where+ toJSON ListInstanceGroups'{..}+ = object+ ["Marker" .= _ligMarker,+ "ClusterId" .= _ligClusterId]+ instance ToPath ListInstanceGroups where- toPath = const "/"+ toPath = const "/" instance ToQuery ListInstanceGroups where- toQuery = const mempty--instance ToHeaders ListInstanceGroups+ toQuery = const mempty -instance ToJSON ListInstanceGroups where- toJSON ListInstanceGroups{..} = object- [ "ClusterId" .= _ligClusterId- , "Marker" .= _ligMarker- ]+-- | This input determines which instance groups to retrieve.+--+-- /See:/ 'listInstanceGroupsResponse' smart constructor.+data ListInstanceGroupsResponse = ListInstanceGroupsResponse'+ { _ligrsMarker :: !(Maybe Text)+ , _ligrsInstanceGroups :: !(Maybe [InstanceGroup])+ , _ligrsStatus :: !Int+ } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest ListInstanceGroups where- type Sv ListInstanceGroups = EMR- type Rs ListInstanceGroups = ListInstanceGroupsResponse+-- | Creates a value of 'ListInstanceGroupsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ligrsMarker'+--+-- * 'ligrsInstanceGroups'+--+-- * 'ligrsStatus'+listInstanceGroupsResponse+ :: Int -- ^ 'ligrsStatus'+ -> ListInstanceGroupsResponse+listInstanceGroupsResponse pStatus_ =+ ListInstanceGroupsResponse'+ { _ligrsMarker = Nothing+ , _ligrsInstanceGroups = Nothing+ , _ligrsStatus = pStatus_+ } - request = post "ListInstanceGroups"- response = jsonResponse+-- | The pagination token that indicates the next set of results to retrieve.+ligrsMarker :: Lens' ListInstanceGroupsResponse (Maybe Text)+ligrsMarker = lens _ligrsMarker (\ s a -> s{_ligrsMarker = a}); -instance FromJSON ListInstanceGroupsResponse where- parseJSON = withObject "ListInstanceGroupsResponse" $ \o -> ListInstanceGroupsResponse- <$> o .:? "InstanceGroups" .!= mempty- <*> o .:? "Marker"+-- | The list of instance groups for the cluster and given filters.+ligrsInstanceGroups :: Lens' ListInstanceGroupsResponse [InstanceGroup]+ligrsInstanceGroups = lens _ligrsInstanceGroups (\ s a -> s{_ligrsInstanceGroups = a}) . _Default . _Coerce; -instance AWSPager ListInstanceGroups where- page rq rs- | stop (rs ^. ligrMarker) = Nothing- | otherwise = (\x -> rq & ligMarker ?~ x)- <$> (rs ^. ligrMarker)+-- | The response status code.+ligrsStatus :: Lens' ListInstanceGroupsResponse Int+ligrsStatus = lens _ligrsStatus (\ s a -> s{_ligrsStatus = a});
gen/Network/AWS/EMR/ListInstances.hs view
@@ -1,165 +1,184 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE LambdaCase #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module : Network.AWS.EMR.ListInstances--- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- 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--- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright : (c) 2013-2015 Brendan Hay+-- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : experimental+-- Stability : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Provides information about the cluster instances that Amazon EMR provisions--- on behalf of a user when it creates the cluster. For example, this operation--- indicates when the EC2 instances reach the Ready state, when instances become--- available to Amazon EMR to use for jobs, and the IP addresses for cluster--- instances, etc.+-- Provides information about the cluster instances that Amazon EMR+-- provisions on behalf of a user when it creates the cluster. For example,+-- this operation indicates when the EC2 instances reach the Ready state,+-- when instances become available to Amazon EMR to use for jobs, and the+-- IP addresses for cluster instances, etc. ----- <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_ListInstances.html>+-- /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 (- -- * Request- ListInstances- -- ** Request constructor- , listInstances- -- ** Request lenses- , liClusterId- , liInstanceGroupId+ -- * Creating a Request+ listInstances+ , ListInstances+ -- * Request Lenses , liInstanceGroupTypes , liMarker+ , liInstanceGroupId+ , liClusterId - -- * Response- , ListInstancesResponse- -- ** Response constructor+ -- * Destructuring the Response , listInstancesResponse- -- ** Response lenses- , lirInstances- , lirMarker+ , ListInstancesResponse+ -- * Response Lenses+ , lirsInstances+ , lirsMarker+ , lirsStatus ) where -import Network.AWS.Data (Object)-import Network.AWS.Prelude-import Network.AWS.Request.JSON-import Network.AWS.EMR.Types-import qualified GHC.Exts--data ListInstances = ListInstances- { _liClusterId :: Text- , _liInstanceGroupId :: Maybe Text- , _liInstanceGroupTypes :: List "InstanceGroupTypes" InstanceGroupType- , _liMarker :: Maybe Text- } deriving (Eq, Read, Show)+import Network.AWS.EMR.Types+import Network.AWS.EMR.Types.Product+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response --- | 'ListInstances' constructor.+-- | This input determines which instances to list. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'listInstances' smart constructor.+data ListInstances = ListInstances'+ { _liInstanceGroupTypes :: !(Maybe [InstanceGroupType])+ , _liMarker :: !(Maybe Text)+ , _liInstanceGroupId :: !(Maybe Text)+ , _liClusterId :: !Text+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListInstances' with the minimum fields required to make a request. ----- * 'liClusterId' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'liInstanceGroupId' @::@ 'Maybe' 'Text'+-- * 'liInstanceGroupTypes' ----- * 'liInstanceGroupTypes' @::@ ['InstanceGroupType']+-- * 'liMarker' ----- * 'liMarker' @::@ 'Maybe' 'Text'+-- * 'liInstanceGroupId' ---listInstances :: Text -- ^ 'liClusterId'- -> ListInstances-listInstances p1 = ListInstances- { _liClusterId = p1- , _liInstanceGroupId = Nothing- , _liInstanceGroupTypes = mempty- , _liMarker = Nothing+-- * 'liClusterId'+listInstances+ :: Text -- ^ 'liClusterId'+ -> ListInstances+listInstances pClusterId_ =+ ListInstances'+ { _liInstanceGroupTypes = Nothing+ , _liMarker = Nothing+ , _liInstanceGroupId = Nothing+ , _liClusterId = pClusterId_ } --- | The identifier of the cluster for which to list the instances.-liClusterId :: Lens' ListInstances Text-liClusterId = lens _liClusterId (\s a -> s { _liClusterId = a })---- | The identifier of the instance group for which to list the instances.-liInstanceGroupId :: Lens' ListInstances (Maybe Text)-liInstanceGroupId =- lens _liInstanceGroupId (\s a -> s { _liInstanceGroupId = a })- -- | The type of instance group for which to list the instances. liInstanceGroupTypes :: Lens' ListInstances [InstanceGroupType]-liInstanceGroupTypes =- lens _liInstanceGroupTypes (\s a -> s { _liInstanceGroupTypes = a })- . _List+liInstanceGroupTypes = lens _liInstanceGroupTypes (\ s a -> s{_liInstanceGroupTypes = a}) . _Default . _Coerce; -- | The pagination token that indicates the next set of results to retrieve. liMarker :: Lens' ListInstances (Maybe Text)-liMarker = lens _liMarker (\s a -> s { _liMarker = a })+liMarker = lens _liMarker (\ s a -> s{_liMarker = a}); -data ListInstancesResponse = ListInstancesResponse- { _lirInstances :: List "Instances" Instance- , _lirMarker :: Maybe Text- } deriving (Eq, Read, Show)+-- | The identifier of the instance group for which to list the instances.+liInstanceGroupId :: Lens' ListInstances (Maybe Text)+liInstanceGroupId = lens _liInstanceGroupId (\ s a -> s{_liInstanceGroupId = a}); --- | 'ListInstancesResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'lirInstances' @::@ ['Instance']------ * 'lirMarker' @::@ 'Maybe' 'Text'----listInstancesResponse :: ListInstancesResponse-listInstancesResponse = ListInstancesResponse- { _lirInstances = mempty- , _lirMarker = Nothing- }+-- | The identifier of the cluster for which to list the instances.+liClusterId :: Lens' ListInstances Text+liClusterId = lens _liClusterId (\ s a -> s{_liClusterId = a}); --- | The list of instances for the cluster and given filters.-lirInstances :: Lens' ListInstancesResponse [Instance]-lirInstances = lens _lirInstances (\s a -> s { _lirInstances = a }) . _List+instance AWSPager ListInstances where+ page rq rs+ | stop (rs ^. lirsMarker) = Nothing+ | stop (rs ^. lirsInstances) = Nothing+ | otherwise =+ Just $ rq & liMarker .~ rs ^. lirsMarker --- | The pagination token that indicates the next set of results to retrieve.-lirMarker :: Lens' ListInstancesResponse (Maybe Text)-lirMarker = lens _lirMarker (\s a -> s { _lirMarker = a })+instance AWSRequest ListInstances where+ type Sv ListInstances = EMR+ type Rs ListInstances = ListInstancesResponse+ request = postJSON+ response+ = receiveJSON+ (\ s h x ->+ ListInstancesResponse' <$>+ (x .?> "Instances" .!@ mempty) <*> (x .?> "Marker")+ <*> (pure (fromEnum s))) +instance ToHeaders ListInstances where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("ElasticMapReduce.ListInstances" :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListInstances where+ toJSON ListInstances'{..}+ = object+ ["InstanceGroupTypes" .= _liInstanceGroupTypes,+ "Marker" .= _liMarker,+ "InstanceGroupId" .= _liInstanceGroupId,+ "ClusterId" .= _liClusterId]+ instance ToPath ListInstances where- toPath = const "/"+ toPath = const "/" instance ToQuery ListInstances where- toQuery = const mempty--instance ToHeaders ListInstances+ toQuery = const mempty -instance ToJSON ListInstances where- toJSON ListInstances{..} = object- [ "ClusterId" .= _liClusterId- , "InstanceGroupId" .= _liInstanceGroupId- , "InstanceGroupTypes" .= _liInstanceGroupTypes- , "Marker" .= _liMarker- ]+-- | This output contains the list of instances.+--+-- /See:/ 'listInstancesResponse' smart constructor.+data ListInstancesResponse = ListInstancesResponse'+ { _lirsInstances :: !(Maybe [Instance])+ , _lirsMarker :: !(Maybe Text)+ , _lirsStatus :: !Int+ } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest ListInstances where- type Sv ListInstances = EMR- type Rs ListInstances = ListInstancesResponse+-- | Creates a value of 'ListInstancesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lirsInstances'+--+-- * 'lirsMarker'+--+-- * 'lirsStatus'+listInstancesResponse+ :: Int -- ^ 'lirsStatus'+ -> ListInstancesResponse+listInstancesResponse pStatus_ =+ ListInstancesResponse'+ { _lirsInstances = Nothing+ , _lirsMarker = Nothing+ , _lirsStatus = pStatus_+ } - request = post "ListInstances"- response = jsonResponse+-- | The list of instances for the cluster and given filters.+lirsInstances :: Lens' ListInstancesResponse [Instance]+lirsInstances = lens _lirsInstances (\ s a -> s{_lirsInstances = a}) . _Default . _Coerce; -instance FromJSON ListInstancesResponse where- parseJSON = withObject "ListInstancesResponse" $ \o -> ListInstancesResponse- <$> o .:? "Instances" .!= mempty- <*> o .:? "Marker"+-- | The pagination token that indicates the next set of results to retrieve.+lirsMarker :: Lens' ListInstancesResponse (Maybe Text)+lirsMarker = lens _lirsMarker (\ s a -> s{_lirsMarker = a}); -instance AWSPager ListInstances where- page rq rs- | stop (rs ^. lirMarker) = Nothing- | otherwise = (\x -> rq & liMarker ?~ x)- <$> (rs ^. lirMarker)+-- | The response status code.+lirsStatus :: Lens' ListInstancesResponse Int+lirsStatus = lens _lirsStatus (\ s a -> s{_lirsStatus = a});
gen/Network/AWS/EMR/ListSteps.hs view
@@ -1,158 +1,179 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE LambdaCase #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module : Network.AWS.EMR.ListSteps--- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- 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--- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright : (c) 2013-2015 Brendan Hay+-- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : experimental+-- Stability : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Provides a list of steps for the cluster.+-- Provides a list of steps for the cluster. ----- <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_ListSteps.html>+-- /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 (- -- * Request- ListSteps- -- ** Request constructor- , listSteps- -- ** Request lenses- , lsClusterId- , lsMarker+ -- * Creating a Request+ listSteps+ , ListSteps+ -- * Request Lenses , lsStepIds , lsStepStates+ , lsMarker+ , lsClusterId - -- * Response- , ListStepsResponse- -- ** Response constructor+ -- * Destructuring the Response , listStepsResponse- -- ** Response lenses- , lsrMarker- , lsrSteps+ , ListStepsResponse+ -- * Response Lenses+ , lsrsSteps+ , lsrsMarker+ , lsrsStatus ) where -import Network.AWS.Data (Object)-import Network.AWS.Prelude-import Network.AWS.Request.JSON-import Network.AWS.EMR.Types-import qualified GHC.Exts--data ListSteps = ListSteps- { _lsClusterId :: Text- , _lsMarker :: Maybe Text- , _lsStepIds :: List "StepIds" Text- , _lsStepStates :: List "StepStates" StepState- } deriving (Eq, Read, Show)+import Network.AWS.EMR.Types+import Network.AWS.EMR.Types.Product+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response --- | 'ListSteps' constructor.+-- | This input determines which steps to list. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'listSteps' smart constructor.+data ListSteps = ListSteps'+ { _lsStepIds :: !(Maybe [Text])+ , _lsStepStates :: !(Maybe [StepState])+ , _lsMarker :: !(Maybe Text)+ , _lsClusterId :: !Text+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListSteps' with the minimum fields required to make a request. ----- * 'lsClusterId' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'lsMarker' @::@ 'Maybe' 'Text'+-- * 'lsStepIds' ----- * 'lsStepIds' @::@ ['Text']+-- * 'lsStepStates' ----- * 'lsStepStates' @::@ ['StepState']+-- * 'lsMarker' ---listSteps :: Text -- ^ 'lsClusterId'- -> ListSteps-listSteps p1 = ListSteps- { _lsClusterId = p1- , _lsStepStates = mempty- , _lsStepIds = mempty- , _lsMarker = Nothing+-- * 'lsClusterId'+listSteps+ :: Text -- ^ 'lsClusterId'+ -> ListSteps+listSteps pClusterId_ =+ ListSteps'+ { _lsStepIds = Nothing+ , _lsStepStates = Nothing+ , _lsMarker = Nothing+ , _lsClusterId = pClusterId_ } --- | The identifier of the cluster for which to list the steps.-lsClusterId :: Lens' ListSteps Text-lsClusterId = lens _lsClusterId (\s a -> s { _lsClusterId = a })---- | The pagination token that indicates the next set of results to retrieve.-lsMarker :: Lens' ListSteps (Maybe Text)-lsMarker = lens _lsMarker (\s a -> s { _lsMarker = a })- -- | The filter to limit the step list based on the identifier of the steps. lsStepIds :: Lens' ListSteps [Text]-lsStepIds = lens _lsStepIds (\s a -> s { _lsStepIds = a }) . _List+lsStepIds = lens _lsStepIds (\ s a -> s{_lsStepIds = a}) . _Default . _Coerce; -- | The filter to limit the step list based on certain states. lsStepStates :: Lens' ListSteps [StepState]-lsStepStates = lens _lsStepStates (\s a -> s { _lsStepStates = a }) . _List+lsStepStates = lens _lsStepStates (\ s a -> s{_lsStepStates = a}) . _Default . _Coerce; -data ListStepsResponse = ListStepsResponse- { _lsrMarker :: Maybe Text- , _lsrSteps :: List "Steps" StepSummary- } deriving (Eq, Read, Show)+-- | The pagination token that indicates the next set of results to retrieve.+lsMarker :: Lens' ListSteps (Maybe Text)+lsMarker = lens _lsMarker (\ s a -> s{_lsMarker = a}); --- | 'ListStepsResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'lsrMarker' @::@ 'Maybe' 'Text'------ * 'lsrSteps' @::@ ['StepSummary']----listStepsResponse :: ListStepsResponse-listStepsResponse = ListStepsResponse- { _lsrSteps = mempty- , _lsrMarker = Nothing- }+-- | The identifier of the cluster for which to list the steps.+lsClusterId :: Lens' ListSteps Text+lsClusterId = lens _lsClusterId (\ s a -> s{_lsClusterId = a}); --- | The pagination token that indicates the next set of results to retrieve.-lsrMarker :: Lens' ListStepsResponse (Maybe Text)-lsrMarker = lens _lsrMarker (\s a -> s { _lsrMarker = a })+instance AWSPager ListSteps where+ page rq rs+ | stop (rs ^. lsrsMarker) = Nothing+ | stop (rs ^. lsrsSteps) = Nothing+ | otherwise =+ Just $ rq & lsMarker .~ rs ^. lsrsMarker --- | The filtered list of steps for the cluster.-lsrSteps :: Lens' ListStepsResponse [StepSummary]-lsrSteps = lens _lsrSteps (\s a -> s { _lsrSteps = a }) . _List+instance AWSRequest ListSteps where+ type Sv ListSteps = EMR+ type Rs ListSteps = ListStepsResponse+ request = postJSON+ response+ = receiveJSON+ (\ s h x ->+ ListStepsResponse' <$>+ (x .?> "Steps" .!@ mempty) <*> (x .?> "Marker") <*>+ (pure (fromEnum s))) +instance ToHeaders ListSteps where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("ElasticMapReduce.ListSteps" :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListSteps where+ toJSON ListSteps'{..}+ = object+ ["StepIds" .= _lsStepIds,+ "StepStates" .= _lsStepStates, "Marker" .= _lsMarker,+ "ClusterId" .= _lsClusterId]+ instance ToPath ListSteps where- toPath = const "/"+ toPath = const "/" instance ToQuery ListSteps where- toQuery = const mempty--instance ToHeaders ListSteps+ toQuery = const mempty -instance ToJSON ListSteps where- toJSON ListSteps{..} = object- [ "ClusterId" .= _lsClusterId- , "StepStates" .= _lsStepStates- , "StepIds" .= _lsStepIds- , "Marker" .= _lsMarker- ]+-- | This output contains the list of steps.+--+-- /See:/ 'listStepsResponse' smart constructor.+data ListStepsResponse = ListStepsResponse'+ { _lsrsSteps :: !(Maybe [StepSummary])+ , _lsrsMarker :: !(Maybe Text)+ , _lsrsStatus :: !Int+ } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest ListSteps where- type Sv ListSteps = EMR- type Rs ListSteps = ListStepsResponse+-- | Creates a value of 'ListStepsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lsrsSteps'+--+-- * 'lsrsMarker'+--+-- * 'lsrsStatus'+listStepsResponse+ :: Int -- ^ 'lsrsStatus'+ -> ListStepsResponse+listStepsResponse pStatus_ =+ ListStepsResponse'+ { _lsrsSteps = Nothing+ , _lsrsMarker = Nothing+ , _lsrsStatus = pStatus_+ } - request = post "ListSteps"- response = jsonResponse+-- | The filtered list of steps for the cluster.+lsrsSteps :: Lens' ListStepsResponse [StepSummary]+lsrsSteps = lens _lsrsSteps (\ s a -> s{_lsrsSteps = a}) . _Default . _Coerce; -instance FromJSON ListStepsResponse where- parseJSON = withObject "ListStepsResponse" $ \o -> ListStepsResponse- <$> o .:? "Marker"- <*> o .:? "Steps" .!= mempty+-- | The pagination token that indicates the next set of results to retrieve.+lsrsMarker :: Lens' ListStepsResponse (Maybe Text)+lsrsMarker = lens _lsrsMarker (\ s a -> s{_lsrsMarker = a}); -instance AWSPager ListSteps where- page rq rs- | stop (rs ^. lsrMarker) = Nothing- | otherwise = (\x -> rq & lsMarker ?~ x)- <$> (rs ^. lsrMarker)+-- | The response status code.+lsrsStatus :: Lens' ListStepsResponse Int+lsrsStatus = lens _lsrsStatus (\ s a -> s{_lsrsStatus = a});
gen/Network/AWS/EMR/ModifyInstanceGroups.hs view
@@ -1,104 +1,105 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE LambdaCase #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module : Network.AWS.EMR.ModifyInstanceGroups--- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- 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--- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright : (c) 2013-2015 Brendan Hay+-- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : experimental+-- Stability : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | ModifyInstanceGroups modifies the number of nodes and configuration 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.+-- ModifyInstanceGroups modifies the number of nodes and configuration+-- 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. ----- <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_ModifyInstanceGroups.html>+-- /See:/ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_ModifyInstanceGroups.html AWS API Reference> for ModifyInstanceGroups. module Network.AWS.EMR.ModifyInstanceGroups (- -- * Request- ModifyInstanceGroups- -- ** Request constructor- , modifyInstanceGroups- -- ** Request lenses+ -- * Creating a Request+ modifyInstanceGroups+ , ModifyInstanceGroups+ -- * Request Lenses , migInstanceGroups - -- * Response- , ModifyInstanceGroupsResponse- -- ** Response constructor+ -- * Destructuring the Response , modifyInstanceGroupsResponse+ , ModifyInstanceGroupsResponse ) where -import Network.AWS.Data (Object)-import Network.AWS.Prelude-import Network.AWS.Request.JSON-import Network.AWS.EMR.Types-import qualified GHC.Exts--newtype ModifyInstanceGroups = ModifyInstanceGroups- { _migInstanceGroups :: List "InstanceGroups" InstanceGroupModifyConfig- } deriving (Eq, Read, Show, Monoid, Semigroup)--instance GHC.Exts.IsList ModifyInstanceGroups where- type Item ModifyInstanceGroups = InstanceGroupModifyConfig-- fromList = ModifyInstanceGroups . GHC.Exts.fromList- toList = GHC.Exts.toList . _migInstanceGroups+import Network.AWS.EMR.Types+import Network.AWS.EMR.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response --- | 'ModifyInstanceGroups' constructor.+-- | Change the size of some instance groups. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'modifyInstanceGroups' smart constructor.+newtype ModifyInstanceGroups = ModifyInstanceGroups'+ { _migInstanceGroups :: Maybe [InstanceGroupModifyConfig]+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ModifyInstanceGroups' with the minimum fields required to make a request. ----- * 'migInstanceGroups' @::@ ['InstanceGroupModifyConfig']+-- Use one of the following lenses to modify other fields as desired: ---modifyInstanceGroups :: ModifyInstanceGroups-modifyInstanceGroups = ModifyInstanceGroups- { _migInstanceGroups = mempty+-- * 'migInstanceGroups'+modifyInstanceGroups+ :: ModifyInstanceGroups+modifyInstanceGroups =+ ModifyInstanceGroups'+ { _migInstanceGroups = Nothing } -- | Instance groups to change. migInstanceGroups :: Lens' ModifyInstanceGroups [InstanceGroupModifyConfig]-migInstanceGroups =- lens _migInstanceGroups (\s a -> s { _migInstanceGroups = a })- . _List+migInstanceGroups = lens _migInstanceGroups (\ s a -> s{_migInstanceGroups = a}) . _Default . _Coerce; -data ModifyInstanceGroupsResponse = ModifyInstanceGroupsResponse- deriving (Eq, Ord, Read, Show, Generic)+instance AWSRequest ModifyInstanceGroups where+ type Sv ModifyInstanceGroups = EMR+ type Rs ModifyInstanceGroups =+ ModifyInstanceGroupsResponse+ request = postJSON+ response = receiveNull ModifyInstanceGroupsResponse' --- | 'ModifyInstanceGroupsResponse' constructor.-modifyInstanceGroupsResponse :: ModifyInstanceGroupsResponse-modifyInstanceGroupsResponse = ModifyInstanceGroupsResponse+instance ToHeaders ModifyInstanceGroups where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("ElasticMapReduce.ModifyInstanceGroups" ::+ ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)]) +instance ToJSON ModifyInstanceGroups where+ toJSON ModifyInstanceGroups'{..}+ = object ["InstanceGroups" .= _migInstanceGroups]+ instance ToPath ModifyInstanceGroups where- toPath = const "/"+ toPath = const "/" instance ToQuery ModifyInstanceGroups where- toQuery = const mempty--instance ToHeaders ModifyInstanceGroups--instance ToJSON ModifyInstanceGroups where- toJSON ModifyInstanceGroups{..} = object- [ "InstanceGroups" .= _migInstanceGroups- ]+ toQuery = const mempty -instance AWSRequest ModifyInstanceGroups where- type Sv ModifyInstanceGroups = EMR- type Rs ModifyInstanceGroups = ModifyInstanceGroupsResponse+-- | /See:/ 'modifyInstanceGroupsResponse' smart constructor.+data ModifyInstanceGroupsResponse =+ ModifyInstanceGroupsResponse'+ deriving (Eq,Read,Show,Data,Typeable,Generic) - request = post "ModifyInstanceGroups"- response = nullResponse ModifyInstanceGroupsResponse+-- | Creates a value of 'ModifyInstanceGroupsResponse' with the minimum fields required to make a request.+--+modifyInstanceGroupsResponse+ :: ModifyInstanceGroupsResponse+modifyInstanceGroupsResponse = ModifyInstanceGroupsResponse'
gen/Network/AWS/EMR/RemoveTags.hs view
@@ -1,109 +1,137 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE LambdaCase #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module : Network.AWS.EMR.RemoveTags--- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- 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--- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright : (c) 2013-2015 Brendan Hay+-- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : experimental+-- Stability : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Removes tags from an Amazon EMR resource. Tags make it easier to associate--- 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 EMRResources>.+-- Removes tags from an Amazon EMR resource. Tags make it easier to+-- associate 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>. ----- The following example removes the stack tag with value Prod from a cluster:+-- The following example removes the stack tag with value Prod from a+-- cluster: ----- <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_RemoveTags.html>+-- /See:/ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_RemoveTags.html AWS API Reference> for RemoveTags. module Network.AWS.EMR.RemoveTags (- -- * Request- RemoveTags- -- ** Request constructor- , removeTags- -- ** Request lenses+ -- * Creating a Request+ removeTags+ , RemoveTags+ -- * Request Lenses , rtResourceId , rtTagKeys - -- * Response- , RemoveTagsResponse- -- ** Response constructor+ -- * Destructuring the Response , removeTagsResponse+ , RemoveTagsResponse+ -- * Response Lenses+ , rtrsStatus ) where -import Network.AWS.Data (Object)-import Network.AWS.Prelude-import Network.AWS.Request.JSON-import Network.AWS.EMR.Types-import qualified GHC.Exts--data RemoveTags = RemoveTags- { _rtResourceId :: Text- , _rtTagKeys :: List "TagKeys" Text- } deriving (Eq, Ord, Read, Show)+import Network.AWS.EMR.Types+import Network.AWS.EMR.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response --- | 'RemoveTags' constructor.+-- | This input identifies a cluster and a list of tags to remove. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'removeTags' smart constructor.+data RemoveTags = RemoveTags'+ { _rtResourceId :: !Text+ , _rtTagKeys :: ![Text]+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'RemoveTags' with the minimum fields required to make a request. ----- * 'rtResourceId' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'rtTagKeys' @::@ ['Text']+-- * 'rtResourceId' ---removeTags :: Text -- ^ 'rtResourceId'- -> RemoveTags-removeTags p1 = RemoveTags- { _rtResourceId = p1- , _rtTagKeys = mempty+-- * 'rtTagKeys'+removeTags+ :: Text -- ^ 'rtResourceId'+ -> RemoveTags+removeTags pResourceId_ =+ RemoveTags'+ { _rtResourceId = pResourceId_+ , _rtTagKeys = mempty } -- | The Amazon EMR resource identifier from which tags will be removed. This -- value must be a cluster identifier. rtResourceId :: Lens' RemoveTags Text-rtResourceId = lens _rtResourceId (\s a -> s { _rtResourceId = a })+rtResourceId = lens _rtResourceId (\ s a -> s{_rtResourceId = a}); -- | A list of tag keys to remove from a resource. rtTagKeys :: Lens' RemoveTags [Text]-rtTagKeys = lens _rtTagKeys (\s a -> s { _rtTagKeys = a }) . _List+rtTagKeys = lens _rtTagKeys (\ s a -> s{_rtTagKeys = a}) . _Coerce; -data RemoveTagsResponse = RemoveTagsResponse- deriving (Eq, Ord, Read, Show, Generic)+instance AWSRequest RemoveTags where+ type Sv RemoveTags = EMR+ type Rs RemoveTags = RemoveTagsResponse+ request = postJSON+ response+ = receiveEmpty+ (\ s h x ->+ RemoveTagsResponse' <$> (pure (fromEnum s))) --- | 'RemoveTagsResponse' constructor.-removeTagsResponse :: RemoveTagsResponse-removeTagsResponse = RemoveTagsResponse+instance ToHeaders RemoveTags where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("ElasticMapReduce.RemoveTags" :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)]) +instance ToJSON RemoveTags where+ toJSON RemoveTags'{..}+ = object+ ["ResourceId" .= _rtResourceId,+ "TagKeys" .= _rtTagKeys]+ instance ToPath RemoveTags where- toPath = const "/"+ toPath = const "/" instance ToQuery RemoveTags where- toQuery = const mempty--instance ToHeaders RemoveTags+ toQuery = const mempty -instance ToJSON RemoveTags where- toJSON RemoveTags{..} = object- [ "ResourceId" .= _rtResourceId- , "TagKeys" .= _rtTagKeys- ]+-- | This output indicates the result of removing tags from a resource.+--+-- /See:/ 'removeTagsResponse' smart constructor.+newtype RemoveTagsResponse = RemoveTagsResponse'+ { _rtrsStatus :: Int+ } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest RemoveTags where- type Sv RemoveTags = EMR- type Rs RemoveTags = RemoveTagsResponse+-- | Creates a value of 'RemoveTagsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rtrsStatus'+removeTagsResponse+ :: Int -- ^ 'rtrsStatus'+ -> RemoveTagsResponse+removeTagsResponse pStatus_ =+ RemoveTagsResponse'+ { _rtrsStatus = pStatus_+ } - request = post "RemoveTags"- response = nullResponse RemoveTagsResponse+-- | The response status code.+rtrsStatus :: Lens' RemoveTagsResponse Int+rtrsStatus = lens _rtrsStatus (\ s a -> s{_rtrsStatus = a});
gen/Network/AWS/EMR/RunJobFlow.hs view
@@ -1,293 +1,370 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE LambdaCase #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module : Network.AWS.EMR.RunJobFlow--- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- 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--- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright : (c) 2013-2015 Brendan Hay+-- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : experimental+-- Stability : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | RunJobFlow creates and starts running a new job flow. The job flow will 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.+-- RunJobFlow creates and starts running a new job flow. The job flow will+-- 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. ----- 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.+-- 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. -- -- A maximum of 256 steps are allowed in each job flow. ----- If your job flow is long-running (such as a Hive data warehouse) or complex,--- you may require more than 256 steps to process your data. You can bypass the--- 256-step limitation in various ways, including using the SSH shell to connect--- to the master node and submitting queries directly to the software running on--- the master node, such as Hive and Hadoop. For more information on how to do--- this, go to <http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/AddMoreThan256Steps.html Add More than 256 Steps to a Job Flow> in the /Amazon ElasticMapReduce Developer's Guide/.+-- If your job flow is long-running (such as a Hive data warehouse) or+-- complex, you may require more than 256 steps to process your data. You+-- can bypass the 256-step limitation in various ways, including using the+-- SSH shell to connect to the master node and submitting queries directly+-- to the software running on the master node, such as Hive and Hadoop. For+-- more information on how to do this, go to+-- <http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/AddMoreThan256Steps.html Add More than 256 Steps to a Job Flow>+-- in the /Amazon Elastic MapReduce Developer\'s Guide/. ----- For long running job flows, we recommend that you periodically store your--- results.+-- For long running job flows, we recommend that you periodically store+-- your results. ----- <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_RunJobFlow.html>+-- /See:/ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_RunJobFlow.html AWS API Reference> for RunJobFlow. module Network.AWS.EMR.RunJobFlow (- -- * Request- RunJobFlow- -- ** Request constructor- , runJobFlow- -- ** Request lenses+ -- * Creating a Request+ runJobFlow+ , RunJobFlow+ -- * Request Lenses+ , rjfAMIVersion , rjfAdditionalInfo- , rjfAmiVersion- , rjfBootstrapActions- , rjfInstances+ , rjfConfigurations , rjfJobFlowRole- , rjfLogUri- , rjfName- , rjfNewSupportedProducts- , rjfServiceRole , rjfSteps+ , rjfBootstrapActions+ , rjfReleaseLabel+ , rjfNewSupportedProducts+ , rjfLogURI , rjfSupportedProducts- , rjfTags , rjfVisibleToAllUsers+ , rjfApplications+ , rjfTags+ , rjfServiceRole+ , rjfName+ , rjfInstances - -- * Response- , RunJobFlowResponse- -- ** Response constructor+ -- * Destructuring the Response , runJobFlowResponse- -- ** Response lenses- , rjfrJobFlowId+ , RunJobFlowResponse+ -- * Response Lenses+ , rjfrsJobFlowId+ , rjfrsStatus ) where -import Network.AWS.Data (Object)-import Network.AWS.Prelude-import Network.AWS.Request.JSON-import Network.AWS.EMR.Types-import qualified GHC.Exts+import Network.AWS.EMR.Types+import Network.AWS.EMR.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response -data RunJobFlow = RunJobFlow- { _rjfAdditionalInfo :: Maybe Text- , _rjfAmiVersion :: Maybe Text- , _rjfBootstrapActions :: List "BootstrapActions" BootstrapActionConfig- , _rjfInstances :: JobFlowInstancesConfig- , _rjfJobFlowRole :: Maybe Text- , _rjfLogUri :: Maybe Text- , _rjfName :: Text- , _rjfNewSupportedProducts :: List "NewSupportedProducts" SupportedProductConfig- , _rjfServiceRole :: Maybe Text- , _rjfSteps :: List "Steps" StepConfig- , _rjfSupportedProducts :: List "SupportedProducts" Text- , _rjfTags :: List "Tags" Tag- , _rjfVisibleToAllUsers :: Maybe Bool- } deriving (Eq, Read, Show)+-- | Input to the RunJobFlow operation.+--+-- /See:/ 'runJobFlow' smart constructor.+data RunJobFlow = RunJobFlow'+ { _rjfAMIVersion :: !(Maybe Text)+ , _rjfAdditionalInfo :: !(Maybe Text)+ , _rjfConfigurations :: !(Maybe [Configuration])+ , _rjfJobFlowRole :: !(Maybe Text)+ , _rjfSteps :: !(Maybe [StepConfig])+ , _rjfBootstrapActions :: !(Maybe [BootstrapActionConfig])+ , _rjfReleaseLabel :: !(Maybe Text)+ , _rjfNewSupportedProducts :: !(Maybe [SupportedProductConfig])+ , _rjfLogURI :: !(Maybe Text)+ , _rjfSupportedProducts :: !(Maybe [Text])+ , _rjfVisibleToAllUsers :: !(Maybe Bool)+ , _rjfApplications :: !(Maybe [Application])+ , _rjfTags :: !(Maybe [Tag])+ , _rjfServiceRole :: !(Maybe Text)+ , _rjfName :: !Text+ , _rjfInstances :: !JobFlowInstancesConfig+ } deriving (Eq,Read,Show,Data,Typeable,Generic) --- | 'RunJobFlow' constructor.+-- | Creates a value of 'RunJobFlow' with the minimum fields required to make a request. ----- The fields accessible through corresponding lenses are:+-- Use one of the following lenses to modify other fields as desired: ----- * 'rjfAdditionalInfo' @::@ 'Maybe' 'Text'+-- * 'rjfAMIVersion' ----- * 'rjfAmiVersion' @::@ 'Maybe' 'Text'+-- * 'rjfAdditionalInfo' ----- * 'rjfBootstrapActions' @::@ ['BootstrapActionConfig']+-- * 'rjfConfigurations' ----- * 'rjfInstances' @::@ 'JobFlowInstancesConfig'+-- * 'rjfJobFlowRole' ----- * 'rjfJobFlowRole' @::@ 'Maybe' 'Text'+-- * 'rjfSteps' ----- * 'rjfLogUri' @::@ 'Maybe' 'Text'+-- * 'rjfBootstrapActions' ----- * 'rjfName' @::@ 'Text'+-- * 'rjfReleaseLabel' ----- * 'rjfNewSupportedProducts' @::@ ['SupportedProductConfig']+-- * 'rjfNewSupportedProducts' ----- * 'rjfServiceRole' @::@ 'Maybe' 'Text'+-- * 'rjfLogURI' ----- * 'rjfSteps' @::@ ['StepConfig']+-- * 'rjfSupportedProducts' ----- * 'rjfSupportedProducts' @::@ ['Text']+-- * 'rjfVisibleToAllUsers' ----- * 'rjfTags' @::@ ['Tag']+-- * 'rjfApplications' ----- * 'rjfVisibleToAllUsers' @::@ 'Maybe' 'Bool'+-- * 'rjfTags' ---runJobFlow :: Text -- ^ 'rjfName'- -> JobFlowInstancesConfig -- ^ 'rjfInstances'- -> RunJobFlow-runJobFlow p1 p2 = RunJobFlow- { _rjfName = p1- , _rjfInstances = p2- , _rjfLogUri = Nothing- , _rjfAdditionalInfo = Nothing- , _rjfAmiVersion = Nothing- , _rjfSteps = mempty- , _rjfBootstrapActions = mempty- , _rjfSupportedProducts = mempty- , _rjfNewSupportedProducts = mempty- , _rjfVisibleToAllUsers = Nothing- , _rjfJobFlowRole = Nothing- , _rjfServiceRole = Nothing- , _rjfTags = mempty+-- * 'rjfServiceRole'+--+-- * 'rjfName'+--+-- * 'rjfInstances'+runJobFlow+ :: Text -- ^ 'rjfName'+ -> JobFlowInstancesConfig -- ^ 'rjfInstances'+ -> RunJobFlow+runJobFlow pName_ pInstances_ =+ RunJobFlow'+ { _rjfAMIVersion = Nothing+ , _rjfAdditionalInfo = Nothing+ , _rjfConfigurations = Nothing+ , _rjfJobFlowRole = Nothing+ , _rjfSteps = Nothing+ , _rjfBootstrapActions = Nothing+ , _rjfReleaseLabel = Nothing+ , _rjfNewSupportedProducts = Nothing+ , _rjfLogURI = Nothing+ , _rjfSupportedProducts = Nothing+ , _rjfVisibleToAllUsers = Nothing+ , _rjfApplications = Nothing+ , _rjfTags = Nothing+ , _rjfServiceRole = Nothing+ , _rjfName = pName_+ , _rjfInstances = pInstances_ } --- | A JSON string for selecting additional features.-rjfAdditionalInfo :: Lens' RunJobFlow (Maybe Text)-rjfAdditionalInfo =- lens _rjfAdditionalInfo (\s a -> s { _rjfAdditionalInfo = a })---- | The version of the Amazon Machine Image (AMI) to use when launching Amazon--- EC2 instances in the job flow. The following values are valid:+-- | For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and+-- greater, use ReleaseLabel. ----- "latest" (uses the latest AMI) The version number of the AMI to use, for--- example, "2.0" 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.+-- The version of the Amazon Machine Image (AMI) to use when launching+-- Amazon EC2 instances in the job flow. The following values are valid: --+-- - The version number of the AMI to use, for example, \"2.0.\"+--+-- 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.+-- -- For details about the AMI versions currently supported by Amazon Elastic--- MapReduce, go to <http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/EnvironmentConfig_AMIVersion.html#ami-versions-supported AMI Versions Supported in Elastic MapReduce> in the /AmazonElastic MapReduce Developer's Guide./-rjfAmiVersion :: Lens' RunJobFlow (Maybe Text)-rjfAmiVersion = lens _rjfAmiVersion (\s a -> s { _rjfAmiVersion = a })+-- MapReduce, go to+-- <http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/EnvironmentConfig_AMIVersion.html#ami-versions-supported AMI Versions Supported in Elastic MapReduce>+-- in the /Amazon Elastic MapReduce Developer\'s Guide./+rjfAMIVersion :: Lens' RunJobFlow (Maybe Text)+rjfAMIVersion = lens _rjfAMIVersion (\ s a -> s{_rjfAMIVersion = a}); --- | A list of bootstrap actions that will be run before Hadoop is started on the--- cluster nodes.-rjfBootstrapActions :: Lens' RunJobFlow [BootstrapActionConfig]-rjfBootstrapActions =- lens _rjfBootstrapActions (\s a -> s { _rjfBootstrapActions = a })- . _List+-- | A JSON string for selecting additional features.+rjfAdditionalInfo :: Lens' RunJobFlow (Maybe Text)+rjfAdditionalInfo = lens _rjfAdditionalInfo (\ s a -> s{_rjfAdditionalInfo = a}); --- | A specification of the number and type of Amazon EC2 instances on which to--- run the job flow.-rjfInstances :: Lens' RunJobFlow JobFlowInstancesConfig-rjfInstances = lens _rjfInstances (\s a -> s { _rjfInstances = a })+-- | Amazon EMR releases 4.x or later.+--+-- The list of configurations supplied for the EMR cluster you are+-- creating.+rjfConfigurations :: Lens' RunJobFlow [Configuration]+rjfConfigurations = lens _rjfConfigurations (\ s a -> s{_rjfConfigurations = 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.+-- | 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. rjfJobFlowRole :: Lens' RunJobFlow (Maybe Text)-rjfJobFlowRole = lens _rjfJobFlowRole (\s a -> s { _rjfJobFlowRole = a })+rjfJobFlowRole = lens _rjfJobFlowRole (\ s a -> s{_rjfJobFlowRole = a}); --- | The location in Amazon S3 to write the log files of the job flow. If a value--- is not provided, logs are not created.-rjfLogUri :: Lens' RunJobFlow (Maybe Text)-rjfLogUri = lens _rjfLogUri (\s a -> s { _rjfLogUri = a })+-- | A list of steps to be executed by the job flow.+rjfSteps :: Lens' RunJobFlow [StepConfig]+rjfSteps = lens _rjfSteps (\ s a -> s{_rjfSteps = a}) . _Default . _Coerce; --- | The name of the job flow.-rjfName :: Lens' RunJobFlow Text-rjfName = lens _rjfName (\s a -> s { _rjfName = a })+-- | A list of bootstrap actions that will be run before Hadoop is started on+-- the cluster nodes.+rjfBootstrapActions :: Lens' RunJobFlow [BootstrapActionConfig]+rjfBootstrapActions = lens _rjfBootstrapActions (\ s a -> s{_rjfBootstrapActions = a}) . _Default . _Coerce; --- | A list of strings that indicates third-party software to use with the job--- flow that accepts a user argument list. EMR accepts and forwards the argument--- list to the corresponding installation script as bootstrap action arguments.--- For more information, see <http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-mapr.html Launch a Job Flow on the MapR Distribution forHadoop>. Currently supported values are:+-- | Amazon EMR releases 4.x or later. ----- "mapr-m3" - launch the job flow using MapR M3 Edition. "mapr-m5" - launch--- the job flow using MapR M5 Edition. "mapr" with the user arguments specifying--- "--edition,m3" or "--edition,m5" - launch the job flow using MapR M3 or M5--- Edition respectively.-rjfNewSupportedProducts :: Lens' RunJobFlow [SupportedProductConfig]-rjfNewSupportedProducts =- lens _rjfNewSupportedProducts (\s a -> s { _rjfNewSupportedProducts = a })- . _List+-- The release label for the Amazon EMR release. For Amazon EMR 3.x and 2.x+-- AMIs, use amiVersion instead instead of ReleaseLabel.+rjfReleaseLabel :: Lens' RunJobFlow (Maybe Text)+rjfReleaseLabel = lens _rjfReleaseLabel (\ s a -> s{_rjfReleaseLabel = a}); --- | The IAM role that will be assumed by the Amazon EMR service to access AWS--- resources on your behalf.-rjfServiceRole :: Lens' RunJobFlow (Maybe Text)-rjfServiceRole = lens _rjfServiceRole (\s a -> s { _rjfServiceRole = a })+-- | For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and+-- greater, use Applications.+--+-- A list of strings that indicates third-party software to use with the+-- job flow that accepts a user argument list. EMR accepts and forwards the+-- argument list to the corresponding installation script as bootstrap+-- action arguments. For more information, see+-- <http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-mapr.html Launch a Job Flow on the MapR Distribution for Hadoop>.+-- Currently supported values are:+--+-- - \"mapr-m3\" - launch the cluster using MapR M3 Edition.+-- - \"mapr-m5\" - launch the cluster using MapR M5 Edition.+-- - \"mapr\" with the user arguments specifying \"--edition,m3\" or+-- \"--edition,m5\" - launch the job flow using MapR M3 or M5 Edition+-- respectively.+-- - \"mapr-m7\" - launch the cluster using MapR M7 Edition.+-- - \"hunk\" - launch the cluster with the Hunk Big Data Analtics+-- Platform.+-- - \"hue\"- launch the cluster with Hue installed.+-- - \"spark\" - launch the cluster with Apache Spark installed.+-- - \"ganglia\" - launch the cluster with the Ganglia Monitoring System+-- installed.+rjfNewSupportedProducts :: Lens' RunJobFlow [SupportedProductConfig]+rjfNewSupportedProducts = lens _rjfNewSupportedProducts (\ s a -> s{_rjfNewSupportedProducts = a}) . _Default . _Coerce; --- | A list of steps to be executed by the job flow.-rjfSteps :: Lens' RunJobFlow [StepConfig]-rjfSteps = lens _rjfSteps (\s a -> s { _rjfSteps = a }) . _List+-- | The location in Amazon S3 to write the log files of the job flow. If a+-- value is not provided, logs are not created.+rjfLogURI :: Lens' RunJobFlow (Maybe Text)+rjfLogURI = lens _rjfLogURI (\ s a -> s{_rjfLogURI = a}); --- | A list of strings that indicates third-party software to use with the job--- flow. For more information, go to <http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-supported-products.html Use Third Party Applications with Amazon EMR>--- . Currently supported values are:+-- | For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and+-- greater, use Applications. ----- "mapr-m3" - launch the job flow using MapR M3 Edition. "mapr-m5" - launch--- the job flow using MapR M5 Edition.+-- A list of strings that indicates third-party software to use with the+-- job flow. For more information, go to+-- <http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-supported-products.html Use Third Party Applications with Amazon EMR>.+-- Currently supported values are:+--+-- - \"mapr-m3\" - launch the job flow using MapR M3 Edition.+-- - \"mapr-m5\" - launch the job flow using MapR M5 Edition. rjfSupportedProducts :: Lens' RunJobFlow [Text]-rjfSupportedProducts =- lens _rjfSupportedProducts (\s a -> s { _rjfSupportedProducts = a })- . _List+rjfSupportedProducts = lens _rjfSupportedProducts (\ s a -> s{_rjfSupportedProducts = a}) . _Default . _Coerce; +-- | Whether the job flow is visible to all IAM users of the AWS account+-- associated with the job flow. If this value is set to 'true', all IAM+-- users of that AWS account can view and (if they have the proper policy+-- permissions set) manage the job flow. If it is set to 'false', only the+-- IAM user that created the job flow can view and manage it.+rjfVisibleToAllUsers :: Lens' RunJobFlow (Maybe Bool)+rjfVisibleToAllUsers = lens _rjfVisibleToAllUsers (\ s a -> s{_rjfVisibleToAllUsers = a});++-- | Amazon EMR releases 4.x or later.+--+-- A list of applications for the cluster. Valid values are: \"Hadoop\",+-- \"Hive\", \"Mahout\", \"Pig\", and \"Spark.\" They are case insensitive.+rjfApplications :: Lens' RunJobFlow [Application]+rjfApplications = lens _rjfApplications (\ s a -> s{_rjfApplications = a}) . _Default . _Coerce;+ -- | A list of tags to associate with a cluster and propagate to Amazon EC2 -- instances. rjfTags :: Lens' RunJobFlow [Tag]-rjfTags = lens _rjfTags (\s a -> s { _rjfTags = a }) . _List+rjfTags = lens _rjfTags (\ s a -> s{_rjfTags = a}) . _Default . _Coerce; --- | Whether the job flow is visible to all IAM users of the AWS account--- associated with the job flow. If this value is set to 'true', all IAM users of--- that AWS account can view and (if they have the proper policy permissions--- set) manage the job flow. If it is set to 'false', only the IAM user that--- created the job flow can view and manage it.-rjfVisibleToAllUsers :: Lens' RunJobFlow (Maybe Bool)-rjfVisibleToAllUsers =- lens _rjfVisibleToAllUsers (\s a -> s { _rjfVisibleToAllUsers = a })+-- | The IAM role that will be assumed by the Amazon EMR service to access+-- AWS resources on your behalf.+rjfServiceRole :: Lens' RunJobFlow (Maybe Text)+rjfServiceRole = lens _rjfServiceRole (\ s a -> s{_rjfServiceRole = a}); -newtype RunJobFlowResponse = RunJobFlowResponse- { _rjfrJobFlowId :: Maybe Text- } deriving (Eq, Ord, Read, Show, Monoid)+-- | The name of the job flow.+rjfName :: Lens' RunJobFlow Text+rjfName = lens _rjfName (\ s a -> s{_rjfName = a}); --- | 'RunJobFlowResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'rjfrJobFlowId' @::@ 'Maybe' 'Text'----runJobFlowResponse :: RunJobFlowResponse-runJobFlowResponse = RunJobFlowResponse- { _rjfrJobFlowId = Nothing- }+-- | A specification of the number and type of Amazon EC2 instances on which+-- to run the job flow.+rjfInstances :: Lens' RunJobFlow JobFlowInstancesConfig+rjfInstances = lens _rjfInstances (\ s a -> s{_rjfInstances = a}); --- | An unique identifier for the job flow.-rjfrJobFlowId :: Lens' RunJobFlowResponse (Maybe Text)-rjfrJobFlowId = lens _rjfrJobFlowId (\s a -> s { _rjfrJobFlowId = a })+instance AWSRequest RunJobFlow where+ type Sv RunJobFlow = EMR+ type Rs RunJobFlow = RunJobFlowResponse+ request = postJSON+ response+ = receiveJSON+ (\ s h x ->+ RunJobFlowResponse' <$>+ (x .?> "JobFlowId") <*> (pure (fromEnum s))) +instance ToHeaders RunJobFlow where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("ElasticMapReduce.RunJobFlow" :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON RunJobFlow where+ toJSON RunJobFlow'{..}+ = object+ ["AmiVersion" .= _rjfAMIVersion,+ "AdditionalInfo" .= _rjfAdditionalInfo,+ "Configurations" .= _rjfConfigurations,+ "JobFlowRole" .= _rjfJobFlowRole,+ "Steps" .= _rjfSteps,+ "BootstrapActions" .= _rjfBootstrapActions,+ "ReleaseLabel" .= _rjfReleaseLabel,+ "NewSupportedProducts" .= _rjfNewSupportedProducts,+ "LogUri" .= _rjfLogURI,+ "SupportedProducts" .= _rjfSupportedProducts,+ "VisibleToAllUsers" .= _rjfVisibleToAllUsers,+ "Applications" .= _rjfApplications,+ "Tags" .= _rjfTags, "ServiceRole" .= _rjfServiceRole,+ "Name" .= _rjfName, "Instances" .= _rjfInstances]+ instance ToPath RunJobFlow where- toPath = const "/"+ toPath = const "/" instance ToQuery RunJobFlow where- toQuery = const mempty--instance ToHeaders RunJobFlow+ toQuery = const mempty -instance ToJSON RunJobFlow where- toJSON RunJobFlow{..} = object- [ "Name" .= _rjfName- , "LogUri" .= _rjfLogUri- , "AdditionalInfo" .= _rjfAdditionalInfo- , "AmiVersion" .= _rjfAmiVersion- , "Instances" .= _rjfInstances- , "Steps" .= _rjfSteps- , "BootstrapActions" .= _rjfBootstrapActions- , "SupportedProducts" .= _rjfSupportedProducts- , "NewSupportedProducts" .= _rjfNewSupportedProducts- , "VisibleToAllUsers" .= _rjfVisibleToAllUsers- , "JobFlowRole" .= _rjfJobFlowRole- , "ServiceRole" .= _rjfServiceRole- , "Tags" .= _rjfTags- ]+-- | The result of the RunJobFlow operation.+--+-- /See:/ 'runJobFlowResponse' smart constructor.+data RunJobFlowResponse = RunJobFlowResponse'+ { _rjfrsJobFlowId :: !(Maybe Text)+ , _rjfrsStatus :: !Int+ } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest RunJobFlow where- type Sv RunJobFlow = EMR- type Rs RunJobFlow = RunJobFlowResponse+-- | Creates a value of 'RunJobFlowResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rjfrsJobFlowId'+--+-- * 'rjfrsStatus'+runJobFlowResponse+ :: Int -- ^ 'rjfrsStatus'+ -> RunJobFlowResponse+runJobFlowResponse pStatus_ =+ RunJobFlowResponse'+ { _rjfrsJobFlowId = Nothing+ , _rjfrsStatus = pStatus_+ } - request = post "RunJobFlow"- response = jsonResponse+-- | An unique identifier for the job flow.+rjfrsJobFlowId :: Lens' RunJobFlowResponse (Maybe Text)+rjfrsJobFlowId = lens _rjfrsJobFlowId (\ s a -> s{_rjfrsJobFlowId = a}); -instance FromJSON RunJobFlowResponse where- parseJSON = withObject "RunJobFlowResponse" $ \o -> RunJobFlowResponse- <$> o .:? "JobFlowId"+-- | The response status code.+rjfrsStatus :: Lens' RunJobFlowResponse Int+rjfrsStatus = lens _rjfrsStatus (\ s a -> s{_rjfrsStatus = a});
gen/Network/AWS/EMR/SetTerminationProtection.hs view
@@ -1,123 +1,138 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE LambdaCase #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module : Network.AWS.EMR.SetTerminationProtection--- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- 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--- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright : (c) 2013-2015 Brendan Hay+-- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : experimental+-- Stability : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | SetTerminationProtection locks a job flow so the Amazon EC2 instances in the--- cluster cannot be terminated by user intervention, an API call, or in the--- event of a job-flow error. The cluster still terminates upon successful--- completion of the job flow. Calling SetTerminationProtection on a job flow is--- analogous to calling the Amazon EC2 DisableAPITermination API on all of the--- EC2 instances in a cluster.+-- SetTerminationProtection locks a job flow so the Amazon EC2 instances in+-- the cluster cannot be terminated by user intervention, an API call, or+-- in the event of a job-flow error. The cluster still terminates upon+-- successful completion of the job flow. Calling SetTerminationProtection+-- on a job flow is analogous to calling the Amazon EC2+-- DisableAPITermination API on all of the EC2 instances in a cluster. ----- SetTerminationProtection is used to prevent accidental termination of a job--- flow and to ensure that in the event of an error, the instances will persist--- so you can recover any data stored in their ephemeral instance storage.+-- SetTerminationProtection is used to prevent accidental termination of a+-- job flow and to ensure that in the event of an error, the instances will+-- persist so you can recover any data stored in their ephemeral instance+-- storage. -- -- To terminate a job flow that has been locked by setting--- SetTerminationProtection to 'true', you must first unlock the job flow by a--- subsequent call to SetTerminationProtection in which you set the value to 'false'.+-- SetTerminationProtection to 'true', you must first unlock the job flow+-- by a subsequent call to SetTerminationProtection in which you set the+-- value to 'false'. ----- 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./+-- 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./ ----- <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_SetTerminationProtection.html>+-- /See:/ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_SetTerminationProtection.html AWS API Reference> for SetTerminationProtection. module Network.AWS.EMR.SetTerminationProtection (- -- * Request- SetTerminationProtection- -- ** Request constructor- , setTerminationProtection- -- ** Request lenses+ -- * Creating a Request+ setTerminationProtection+ , SetTerminationProtection+ -- * Request Lenses , stpJobFlowIds , stpTerminationProtected - -- * Response- , SetTerminationProtectionResponse- -- ** Response constructor+ -- * Destructuring the Response , setTerminationProtectionResponse+ , SetTerminationProtectionResponse ) where -import Network.AWS.Data (Object)-import Network.AWS.Prelude-import Network.AWS.Request.JSON-import Network.AWS.EMR.Types-import qualified GHC.Exts--data SetTerminationProtection = SetTerminationProtection- { _stpJobFlowIds :: List "JobFlowIds" Text- , _stpTerminationProtected :: Bool- } deriving (Eq, Ord, Read, Show)+import Network.AWS.EMR.Types+import Network.AWS.EMR.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response --- | 'SetTerminationProtection' constructor.+-- | The input argument to the TerminationProtection operation. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'setTerminationProtection' smart constructor.+data SetTerminationProtection = SetTerminationProtection'+ { _stpJobFlowIds :: ![Text]+ , _stpTerminationProtected :: !Bool+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SetTerminationProtection' with the minimum fields required to make a request. ----- * 'stpJobFlowIds' @::@ ['Text']+-- Use one of the following lenses to modify other fields as desired: ----- * 'stpTerminationProtected' @::@ 'Bool'+-- * 'stpJobFlowIds' ---setTerminationProtection :: Bool -- ^ 'stpTerminationProtected'- -> SetTerminationProtection-setTerminationProtection p1 = SetTerminationProtection- { _stpTerminationProtected = p1- , _stpJobFlowIds = mempty+-- * 'stpTerminationProtected'+setTerminationProtection+ :: Bool -- ^ 'stpTerminationProtected'+ -> SetTerminationProtection+setTerminationProtection pTerminationProtected_ =+ SetTerminationProtection'+ { _stpJobFlowIds = mempty+ , _stpTerminationProtected = pTerminationProtected_ } -- | 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 }) . _List+stpJobFlowIds = lens _stpJobFlowIds (\ s a -> s{_stpJobFlowIds = a}) . _Coerce; -- | A Boolean that indicates whether to protect the job flow and prevent the--- Amazon EC2 instances in the cluster from shutting down due to API calls, user--- intervention, or job-flow error.+-- Amazon EC2 instances in the cluster from shutting down due to API calls,+-- user intervention, or job-flow error. stpTerminationProtected :: Lens' SetTerminationProtection Bool-stpTerminationProtected =- lens _stpTerminationProtected (\s a -> s { _stpTerminationProtected = a })+stpTerminationProtected = lens _stpTerminationProtected (\ s a -> s{_stpTerminationProtected = a}); -data SetTerminationProtectionResponse = SetTerminationProtectionResponse- deriving (Eq, Ord, Read, Show, Generic)+instance AWSRequest SetTerminationProtection where+ type Sv SetTerminationProtection = EMR+ type Rs SetTerminationProtection =+ SetTerminationProtectionResponse+ request = postJSON+ response+ = receiveNull SetTerminationProtectionResponse' --- | 'SetTerminationProtectionResponse' constructor.-setTerminationProtectionResponse :: SetTerminationProtectionResponse-setTerminationProtectionResponse = SetTerminationProtectionResponse+instance ToHeaders SetTerminationProtection where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("ElasticMapReduce.SetTerminationProtection" ::+ ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)]) +instance ToJSON SetTerminationProtection where+ toJSON SetTerminationProtection'{..}+ = object+ ["JobFlowIds" .= _stpJobFlowIds,+ "TerminationProtected" .= _stpTerminationProtected]+ instance ToPath SetTerminationProtection where- toPath = const "/"+ toPath = const "/" instance ToQuery SetTerminationProtection where- toQuery = const mempty--instance ToHeaders SetTerminationProtection--instance ToJSON SetTerminationProtection where- toJSON SetTerminationProtection{..} = object- [ "JobFlowIds" .= _stpJobFlowIds- , "TerminationProtected" .= _stpTerminationProtected- ]+ toQuery = const mempty -instance AWSRequest SetTerminationProtection where- type Sv SetTerminationProtection = EMR- type Rs SetTerminationProtection = SetTerminationProtectionResponse+-- | /See:/ 'setTerminationProtectionResponse' smart constructor.+data SetTerminationProtectionResponse =+ SetTerminationProtectionResponse'+ deriving (Eq,Read,Show,Data,Typeable,Generic) - request = post "SetTerminationProtection"- response = nullResponse SetTerminationProtectionResponse+-- | Creates a value of 'SetTerminationProtectionResponse' with the minimum fields required to make a request.+--+setTerminationProtectionResponse+ :: SetTerminationProtectionResponse+setTerminationProtectionResponse = SetTerminationProtectionResponse'
gen/Network/AWS/EMR/SetVisibleToAllUsers.hs view
@@ -1,114 +1,123 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE LambdaCase #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module : Network.AWS.EMR.SetVisibleToAllUsers--- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- 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--- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright : (c) 2013-2015 Brendan Hay+-- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : experimental+-- Stability : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | 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 created the job flow or the AWS--- account that owns the job flow.+-- 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+-- created the job flow or the AWS account that owns the job flow. ----- <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_SetVisibleToAllUsers.html>+-- /See:/ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_SetVisibleToAllUsers.html AWS API Reference> for SetVisibleToAllUsers. module Network.AWS.EMR.SetVisibleToAllUsers (- -- * Request- SetVisibleToAllUsers- -- ** Request constructor- , setVisibleToAllUsers- -- ** Request lenses+ -- * Creating a Request+ setVisibleToAllUsers+ , SetVisibleToAllUsers+ -- * Request Lenses , svtauJobFlowIds , svtauVisibleToAllUsers - -- * Response- , SetVisibleToAllUsersResponse- -- ** Response constructor+ -- * Destructuring the Response , setVisibleToAllUsersResponse+ , SetVisibleToAllUsersResponse ) where -import Network.AWS.Data (Object)-import Network.AWS.Prelude-import Network.AWS.Request.JSON-import Network.AWS.EMR.Types-import qualified GHC.Exts--data SetVisibleToAllUsers = SetVisibleToAllUsers- { _svtauJobFlowIds :: List "JobFlowIds" Text- , _svtauVisibleToAllUsers :: Bool- } deriving (Eq, Ord, Read, Show)+import Network.AWS.EMR.Types+import Network.AWS.EMR.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response --- | 'SetVisibleToAllUsers' constructor.+-- | The input to the SetVisibleToAllUsers action. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'setVisibleToAllUsers' smart constructor.+data SetVisibleToAllUsers = SetVisibleToAllUsers'+ { _svtauJobFlowIds :: ![Text]+ , _svtauVisibleToAllUsers :: !Bool+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SetVisibleToAllUsers' with the minimum fields required to make a request. ----- * 'svtauJobFlowIds' @::@ ['Text']+-- Use one of the following lenses to modify other fields as desired: ----- * 'svtauVisibleToAllUsers' @::@ 'Bool'+-- * 'svtauJobFlowIds' ---setVisibleToAllUsers :: Bool -- ^ 'svtauVisibleToAllUsers'- -> SetVisibleToAllUsers-setVisibleToAllUsers p1 = SetVisibleToAllUsers- { _svtauVisibleToAllUsers = p1- , _svtauJobFlowIds = mempty+-- * 'svtauVisibleToAllUsers'+setVisibleToAllUsers+ :: Bool -- ^ 'svtauVisibleToAllUsers'+ -> SetVisibleToAllUsers+setVisibleToAllUsers pVisibleToAllUsers_ =+ SetVisibleToAllUsers'+ { _svtauJobFlowIds = mempty+ , _svtauVisibleToAllUsers = pVisibleToAllUsers_ } -- | Identifiers of the job flows to receive the new visibility setting. svtauJobFlowIds :: Lens' SetVisibleToAllUsers [Text]-svtauJobFlowIds = lens _svtauJobFlowIds (\s a -> s { _svtauJobFlowIds = a }) . _List+svtauJobFlowIds = lens _svtauJobFlowIds (\ s a -> s{_svtauJobFlowIds = a}) . _Coerce; -- | Whether the specified job flows are visible to all IAM users of the AWS--- account associated with the job flow. If this value is set to True, all IAM--- users of that AWS account can view and, if they have the proper IAM policy--- permissions set, manage the job flows. If it is set to False, only the IAM--- user that created a job flow can view and manage it.+-- account associated with the job flow. If this value is set to True, all+-- IAM users of that AWS account can view and, if they have the proper IAM+-- policy permissions set, manage the job flows. If it is set to False,+-- only the IAM user that created a job flow can view and manage it. svtauVisibleToAllUsers :: Lens' SetVisibleToAllUsers Bool-svtauVisibleToAllUsers =- lens _svtauVisibleToAllUsers (\s a -> s { _svtauVisibleToAllUsers = a })+svtauVisibleToAllUsers = lens _svtauVisibleToAllUsers (\ s a -> s{_svtauVisibleToAllUsers = a}); -data SetVisibleToAllUsersResponse = SetVisibleToAllUsersResponse- deriving (Eq, Ord, Read, Show, Generic)+instance AWSRequest SetVisibleToAllUsers where+ type Sv SetVisibleToAllUsers = EMR+ type Rs SetVisibleToAllUsers =+ SetVisibleToAllUsersResponse+ request = postJSON+ response = receiveNull SetVisibleToAllUsersResponse' --- | 'SetVisibleToAllUsersResponse' constructor.-setVisibleToAllUsersResponse :: SetVisibleToAllUsersResponse-setVisibleToAllUsersResponse = SetVisibleToAllUsersResponse+instance ToHeaders SetVisibleToAllUsers where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("ElasticMapReduce.SetVisibleToAllUsers" ::+ ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)]) +instance ToJSON SetVisibleToAllUsers where+ toJSON SetVisibleToAllUsers'{..}+ = object+ ["JobFlowIds" .= _svtauJobFlowIds,+ "VisibleToAllUsers" .= _svtauVisibleToAllUsers]+ instance ToPath SetVisibleToAllUsers where- toPath = const "/"+ toPath = const "/" instance ToQuery SetVisibleToAllUsers where- toQuery = const mempty--instance ToHeaders SetVisibleToAllUsers--instance ToJSON SetVisibleToAllUsers where- toJSON SetVisibleToAllUsers{..} = object- [ "JobFlowIds" .= _svtauJobFlowIds- , "VisibleToAllUsers" .= _svtauVisibleToAllUsers- ]+ toQuery = const mempty -instance AWSRequest SetVisibleToAllUsers where- type Sv SetVisibleToAllUsers = EMR- type Rs SetVisibleToAllUsers = SetVisibleToAllUsersResponse+-- | /See:/ 'setVisibleToAllUsersResponse' smart constructor.+data SetVisibleToAllUsersResponse =+ SetVisibleToAllUsersResponse'+ deriving (Eq,Read,Show,Data,Typeable,Generic) - request = post "SetVisibleToAllUsers"- response = nullResponse SetVisibleToAllUsersResponse+-- | Creates a value of 'SetVisibleToAllUsersResponse' with the minimum fields required to make a request.+--+setVisibleToAllUsersResponse+ :: SetVisibleToAllUsersResponse+setVisibleToAllUsersResponse = SetVisibleToAllUsersResponse'
gen/Network/AWS/EMR/TerminateJobFlows.hs view
@@ -1,108 +1,109 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE LambdaCase #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module : Network.AWS.EMR.TerminateJobFlows--- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- 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--- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright : (c) 2013-2015 Brendan Hay+-- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : experimental+-- Stability : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | TerminateJobFlows shuts a list of job flows down. When a job flow is shut--- down, any step not yet completed is canceled and the EC2 instances on which--- the job flow is running are stopped. Any log files not already saved are--- uploaded to Amazon S3 if a LogUri was specified when the job flow was--- created.+-- TerminateJobFlows shuts a list of job flows down. When a job flow is+-- shut down, any step not yet completed is canceled and the EC2 instances+-- on which the job flow is running are stopped. Any log files not already+-- saved are uploaded to Amazon S3 if a LogUri was specified when the job+-- flow was created. ----- The maximum number of JobFlows allowed is 10. The call to 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.+-- The maximum number of JobFlows allowed is 10. The call to+-- 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. ----- <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_TerminateJobFlows.html>+-- /See:/ <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/API_TerminateJobFlows.html AWS API Reference> for TerminateJobFlows. module Network.AWS.EMR.TerminateJobFlows (- -- * Request- TerminateJobFlows- -- ** Request constructor- , terminateJobFlows- -- ** Request lenses+ -- * Creating a Request+ terminateJobFlows+ , TerminateJobFlows+ -- * Request Lenses , tjfJobFlowIds - -- * Response- , TerminateJobFlowsResponse- -- ** Response constructor+ -- * Destructuring the Response , terminateJobFlowsResponse+ , TerminateJobFlowsResponse ) where -import Network.AWS.Data (Object)-import Network.AWS.Prelude-import Network.AWS.Request.JSON-import Network.AWS.EMR.Types-import qualified GHC.Exts--newtype TerminateJobFlows = TerminateJobFlows- { _tjfJobFlowIds :: List "JobFlowIds" Text- } deriving (Eq, Ord, Read, Show, Monoid, Semigroup)--instance GHC.Exts.IsList TerminateJobFlows where- type Item TerminateJobFlows = Text-- fromList = TerminateJobFlows . GHC.Exts.fromList- toList = GHC.Exts.toList . _tjfJobFlowIds+import Network.AWS.EMR.Types+import Network.AWS.EMR.Types.Product+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response --- | 'TerminateJobFlows' constructor.+-- | Input to the TerminateJobFlows operation. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'terminateJobFlows' smart constructor.+newtype TerminateJobFlows = TerminateJobFlows'+ { _tjfJobFlowIds :: [Text]+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'TerminateJobFlows' with the minimum fields required to make a request. ----- * 'tjfJobFlowIds' @::@ ['Text']+-- Use one of the following lenses to modify other fields as desired: ---terminateJobFlows :: TerminateJobFlows-terminateJobFlows = TerminateJobFlows+-- * 'tjfJobFlowIds'+terminateJobFlows+ :: TerminateJobFlows+terminateJobFlows =+ TerminateJobFlows' { _tjfJobFlowIds = mempty } -- | A list of job flows to be shutdown. tjfJobFlowIds :: Lens' TerminateJobFlows [Text]-tjfJobFlowIds = lens _tjfJobFlowIds (\s a -> s { _tjfJobFlowIds = a }) . _List+tjfJobFlowIds = lens _tjfJobFlowIds (\ s a -> s{_tjfJobFlowIds = a}) . _Coerce; -data TerminateJobFlowsResponse = TerminateJobFlowsResponse- deriving (Eq, Ord, Read, Show, Generic)+instance AWSRequest TerminateJobFlows where+ type Sv TerminateJobFlows = EMR+ type Rs TerminateJobFlows = TerminateJobFlowsResponse+ request = postJSON+ response = receiveNull TerminateJobFlowsResponse' --- | 'TerminateJobFlowsResponse' constructor.-terminateJobFlowsResponse :: TerminateJobFlowsResponse-terminateJobFlowsResponse = TerminateJobFlowsResponse+instance ToHeaders TerminateJobFlows where+ toHeaders+ = const+ (mconcat+ ["X-Amz-Target" =#+ ("ElasticMapReduce.TerminateJobFlows" :: ByteString),+ "Content-Type" =#+ ("application/x-amz-json-1.1" :: ByteString)]) +instance ToJSON TerminateJobFlows where+ toJSON TerminateJobFlows'{..}+ = object ["JobFlowIds" .= _tjfJobFlowIds]+ instance ToPath TerminateJobFlows where- toPath = const "/"+ toPath = const "/" instance ToQuery TerminateJobFlows where- toQuery = const mempty--instance ToHeaders TerminateJobFlows--instance ToJSON TerminateJobFlows where- toJSON TerminateJobFlows{..} = object- [ "JobFlowIds" .= _tjfJobFlowIds- ]+ toQuery = const mempty -instance AWSRequest TerminateJobFlows where- type Sv TerminateJobFlows = EMR- type Rs TerminateJobFlows = TerminateJobFlowsResponse+-- | /See:/ 'terminateJobFlowsResponse' smart constructor.+data TerminateJobFlowsResponse =+ TerminateJobFlowsResponse'+ deriving (Eq,Read,Show,Data,Typeable,Generic) - request = post "TerminateJobFlows"- response = nullResponse TerminateJobFlowsResponse+-- | Creates a value of 'TerminateJobFlowsResponse' with the minimum fields required to make a request.+--+terminateJobFlowsResponse+ :: TerminateJobFlowsResponse+terminateJobFlowsResponse = TerminateJobFlowsResponse'
gen/Network/AWS/EMR/Types.hs view
@@ -1,3863 +1,393 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE LambdaCase #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE ViewPatterns #-}--{-# OPTIONS_GHC -fno-warn-unused-imports #-}---- Module : Network.AWS.EMR.Types--- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- 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--- you can obtain it at http://mozilla.org/MPL/2.0/.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : experimental--- Portability : non-portable (GHC extensions)------ Derived from AWS service descriptions, licensed under Apache 2.0.--module Network.AWS.EMR.Types- (- -- * Service- EMR- -- ** Error- , JSONError-- -- * MarketType- , MarketType (..)-- -- * InstanceGroupConfig- , InstanceGroupConfig- , instanceGroupConfig- , igcBidPrice- , igcInstanceCount- , igcInstanceRole- , igcInstanceType- , igcMarket- , igcName-- -- * InstanceStateChangeReason- , InstanceStateChangeReason- , instanceStateChangeReason- , iscrCode- , iscrMessage-- -- * JobFlowDetail- , JobFlowDetail- , jobFlowDetail- , jfdAmiVersion- , jfdBootstrapActions- , jfdExecutionStatusDetail- , jfdInstances- , jfdJobFlowId- , jfdJobFlowRole- , jfdLogUri- , jfdName- , jfdServiceRole- , jfdSteps- , jfdSupportedProducts- , jfdVisibleToAllUsers-- -- * KeyValue- , KeyValue- , keyValue- , kvKey- , kvValue-- -- * SupportedProductConfig- , SupportedProductConfig- , supportedProductConfig- , spcArgs- , spcName-- -- * Command- , Command- , command- , cArgs- , cName- , cScriptPath-- -- * StepExecutionState- , StepExecutionState (..)-- -- * ActionOnFailure- , ActionOnFailure (..)-- -- * ClusterStateChangeReason- , ClusterStateChangeReason- , clusterStateChangeReason- , cscrCode- , cscrMessage-- -- * Tag- , Tag- , tag- , tagKey- , tagValue-- -- * Application- , Application- , application- , aAdditionalInfo- , aArgs- , aName- , aVersion-- -- * JobFlowExecutionStatusDetail- , JobFlowExecutionStatusDetail- , jobFlowExecutionStatusDetail- , jfesdCreationDateTime- , jfesdEndDateTime- , jfesdLastStateChangeReason- , jfesdReadyDateTime- , jfesdStartDateTime- , jfesdState-- -- * InstanceGroupStatus- , InstanceGroupStatus- , instanceGroupStatus- , igsState- , igsStateChangeReason- , igsTimeline-- -- * Cluster- , Cluster- , cluster- , c1Applications- , c1AutoTerminate- , c1Ec2InstanceAttributes- , c1Id- , c1LogUri- , c1MasterPublicDnsName- , c1Name- , c1NormalizedInstanceHours- , c1RequestedAmiVersion- , c1RunningAmiVersion- , c1ServiceRole- , c1Status- , c1Tags- , c1TerminationProtected- , c1VisibleToAllUsers-- -- * InstanceTimeline- , InstanceTimeline- , instanceTimeline- , itCreationDateTime- , itEndDateTime- , itReadyDateTime-- -- * Ec2InstanceAttributes- , Ec2InstanceAttributes- , ec2InstanceAttributes- , eiaAdditionalMasterSecurityGroups- , eiaAdditionalSlaveSecurityGroups- , eiaEc2AvailabilityZone- , eiaEc2KeyName- , eiaEc2SubnetId- , eiaEmrManagedMasterSecurityGroup- , eiaEmrManagedSlaveSecurityGroup- , eiaIamInstanceProfile-- -- * StepStateChangeReasonCode- , StepStateChangeReasonCode (..)-- -- * ClusterState- , ClusterState (..)-- -- * HadoopStepConfig- , HadoopStepConfig- , hadoopStepConfig- , hscArgs- , hscJar- , hscMainClass- , hscProperties-- -- * JobFlowExecutionState- , JobFlowExecutionState (..)-- -- * StepDetail- , StepDetail- , stepDetail- , sdExecutionStatusDetail- , sdStepConfig-- -- * InstanceGroupStateChangeReason- , InstanceGroupStateChangeReason- , instanceGroupStateChangeReason- , igscrCode- , igscrMessage-- -- * InstanceGroupType- , InstanceGroupType (..)-- -- * InstanceGroupStateChangeReasonCode- , InstanceGroupStateChangeReasonCode (..)-- -- * StepStatus- , StepStatus- , stepStatus- , ssState- , ssStateChangeReason- , ssTimeline-- -- * StepSummary- , StepSummary- , stepSummary- , ssActionOnFailure- , ssConfig- , ssId- , ssName- , ssStatus-- -- * InstanceGroupState- , InstanceGroupState (..)-- -- * StepTimeline- , StepTimeline- , stepTimeline- , stCreationDateTime- , stEndDateTime- , stStartDateTime-- -- * PlacementType- , PlacementType- , placementType- , ptAvailabilityZone-- -- * HadoopJarStepConfig- , HadoopJarStepConfig- , hadoopJarStepConfig- , hjscArgs- , hjscJar- , hjscMainClass- , hjscProperties-- -- * InstanceGroupModifyConfig- , InstanceGroupModifyConfig- , instanceGroupModifyConfig- , igmcEC2InstanceIdsToTerminate- , igmcInstanceCount- , igmcInstanceGroupId-- -- * InstanceGroupDetail- , InstanceGroupDetail- , instanceGroupDetail- , igdBidPrice- , igdCreationDateTime- , igdEndDateTime- , igdInstanceGroupId- , igdInstanceRequestCount- , igdInstanceRole- , igdInstanceRunningCount- , igdInstanceType- , igdLastStateChangeReason- , igdMarket- , igdName- , igdReadyDateTime- , igdStartDateTime- , igdState-- -- * StepStateChangeReason- , StepStateChangeReason- , stepStateChangeReason- , sscrCode- , sscrMessage-- -- * ClusterStateChangeReasonCode- , ClusterStateChangeReasonCode (..)-- -- * Step- , Step- , step- , sActionOnFailure- , sConfig- , sId- , sName- , sStatus-- -- * StepState- , StepState (..)-- -- * InstanceGroupTimeline- , InstanceGroupTimeline- , instanceGroupTimeline- , igtCreationDateTime- , igtEndDateTime- , igtReadyDateTime-- -- * BootstrapActionDetail- , BootstrapActionDetail- , bootstrapActionDetail- , badBootstrapActionConfig-- -- * StepExecutionStatusDetail- , StepExecutionStatusDetail- , stepExecutionStatusDetail- , sesdCreationDateTime- , sesdEndDateTime- , sesdLastStateChangeReason- , sesdStartDateTime- , sesdState-- -- * InstanceStatus- , InstanceStatus- , instanceStatus- , isState- , isStateChangeReason- , isTimeline-- -- * InstanceRoleType- , InstanceRoleType (..)-- -- * JobFlowInstancesConfig- , JobFlowInstancesConfig- , jobFlowInstancesConfig- , jficAdditionalMasterSecurityGroups- , jficAdditionalSlaveSecurityGroups- , jficEc2KeyName- , jficEc2SubnetId- , jficEmrManagedMasterSecurityGroup- , jficEmrManagedSlaveSecurityGroup- , jficHadoopVersion- , jficInstanceCount- , jficInstanceGroups- , jficKeepJobFlowAliveWhenNoSteps- , jficMasterInstanceType- , jficPlacement- , jficSlaveInstanceType- , jficTerminationProtected-- -- * StepConfig- , StepConfig- , stepConfig- , scActionOnFailure- , scHadoopJarStep- , scName-- -- * InstanceGroup- , InstanceGroup- , instanceGroup- , igBidPrice- , igId- , igInstanceGroupType- , igInstanceType- , igMarket- , igName- , igRequestedInstanceCount- , igRunningInstanceCount- , igStatus-- -- * BootstrapActionConfig- , BootstrapActionConfig- , bootstrapActionConfig- , bacName- , bacScriptBootstrapAction-- -- * ClusterSummary- , ClusterSummary- , clusterSummary- , csId- , csName- , csNormalizedInstanceHours- , csStatus-- -- * JobFlowInstancesDetail- , JobFlowInstancesDetail- , jobFlowInstancesDetail- , jfidEc2KeyName- , jfidEc2SubnetId- , jfidHadoopVersion- , jfidInstanceCount- , jfidInstanceGroups- , jfidKeepJobFlowAliveWhenNoSteps- , jfidMasterInstanceId- , jfidMasterInstanceType- , jfidMasterPublicDnsName- , jfidNormalizedInstanceHours- , jfidPlacement- , jfidSlaveInstanceType- , jfidTerminationProtected-- -- * ClusterStatus- , ClusterStatus- , clusterStatus- , csState- , csStateChangeReason- , csTimeline-- -- * InstanceState- , InstanceState (..)-- -- * ClusterTimeline- , ClusterTimeline- , clusterTimeline- , ctCreationDateTime- , ctEndDateTime- , ctReadyDateTime-- -- * InstanceStateChangeReasonCode- , InstanceStateChangeReasonCode (..)-- -- * Instance- , Instance- , instance'- , iEc2InstanceId- , iId- , iPrivateDnsName- , iPrivateIpAddress- , iPublicDnsName- , iPublicIpAddress- , iStatus-- -- * ScriptBootstrapActionConfig- , ScriptBootstrapActionConfig- , scriptBootstrapActionConfig- , sbacArgs- , sbacPath- ) where--import Network.AWS.Prelude-import Network.AWS.Signing-import qualified GHC.Exts---- | Version @2009-03-31@ of the Amazon Elastic MapReduce service.-data EMR--instance AWSService EMR where- type Sg EMR = V4- type Er EMR = JSONError-- service = service'- where- service' :: Service EMR- service' = Service- { _svcAbbrev = "EMR"- , _svcPrefix = "elasticmapreduce"- , _svcVersion = "2009-03-31"- , _svcTargetPrefix = Just "ElasticMapReduce"- , _svcJSONVersion = Just "1.1"- , _svcHandle = handle- , _svcRetry = retry- }-- handle :: Status- -> Maybe (LazyByteString -> ServiceError JSONError)- handle = jsonError statusSuccess service'-- retry :: Retry EMR- retry = Exponential- { _retryBase = 0.05- , _retryGrowth = 2- , _retryAttempts = 5- , _retryCheck = check- }-- check :: Status- -> JSONError- -> Bool- check (statusCode -> s) (awsErrorCode -> e)- | s == 400 && (Just "ThrottlingException") == e = True -- Throttling- | s == 500 = True -- General Server Error- | s == 509 = True -- Limit Exceeded- | s == 503 = True -- Service Unavailable- | otherwise = False--data MarketType- = OnDemand -- ^ ON_DEMAND- | Spot -- ^ SPOT- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable MarketType--instance FromText MarketType where- parser = takeLowerText >>= \case- "on_demand" -> pure OnDemand- "spot" -> pure Spot- e -> fail $- "Failure parsing MarketType from " ++ show e--instance ToText MarketType where- toText = \case- OnDemand -> "ON_DEMAND"- Spot -> "SPOT"--instance ToByteString MarketType-instance ToHeader MarketType-instance ToQuery MarketType--instance FromJSON MarketType where- parseJSON = parseJSONText "MarketType"--instance ToJSON MarketType where- toJSON = toJSONText--data InstanceGroupConfig = InstanceGroupConfig- { _igcBidPrice :: Maybe Text- , _igcInstanceCount :: Int- , _igcInstanceRole :: InstanceRoleType- , _igcInstanceType :: Text- , _igcMarket :: Maybe MarketType- , _igcName :: Maybe Text- } deriving (Eq, Read, Show)---- | 'InstanceGroupConfig' constructor.------ The fields accessible through corresponding lenses are:------ * 'igcBidPrice' @::@ 'Maybe' 'Text'------ * 'igcInstanceCount' @::@ 'Int'------ * 'igcInstanceRole' @::@ 'InstanceRoleType'------ * 'igcInstanceType' @::@ 'Text'------ * 'igcMarket' @::@ 'Maybe' 'MarketType'------ * 'igcName' @::@ 'Maybe' 'Text'----instanceGroupConfig :: InstanceRoleType -- ^ 'igcInstanceRole'- -> Text -- ^ 'igcInstanceType'- -> Int -- ^ 'igcInstanceCount'- -> InstanceGroupConfig-instanceGroupConfig p1 p2 p3 = InstanceGroupConfig- { _igcInstanceRole = p1- , _igcInstanceType = p2- , _igcInstanceCount = p3- , _igcName = Nothing- , _igcMarket = Nothing- , _igcBidPrice = Nothing- }---- | 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)-igcBidPrice = lens _igcBidPrice (\s a -> s { _igcBidPrice = a })---- | Target number of instances for the instance group.-igcInstanceCount :: Lens' InstanceGroupConfig Int-igcInstanceCount = lens _igcInstanceCount (\s a -> s { _igcInstanceCount = a })---- | The role of the instance group in the cluster.-igcInstanceRole :: Lens' InstanceGroupConfig InstanceRoleType-igcInstanceRole = lens _igcInstanceRole (\s a -> s { _igcInstanceRole = a })---- | The Amazon EC2 instance type for all instances in the instance group.-igcInstanceType :: Lens' InstanceGroupConfig Text-igcInstanceType = lens _igcInstanceType (\s a -> s { _igcInstanceType = a })---- | Market type of the Amazon EC2 instances used to create a cluster node.-igcMarket :: Lens' InstanceGroupConfig (Maybe MarketType)-igcMarket = lens _igcMarket (\s a -> s { _igcMarket = a })---- | Friendly name given to the instance group.-igcName :: Lens' InstanceGroupConfig (Maybe Text)-igcName = lens _igcName (\s a -> s { _igcName = a })--instance FromJSON InstanceGroupConfig where- parseJSON = withObject "InstanceGroupConfig" $ \o -> InstanceGroupConfig- <$> o .:? "BidPrice"- <*> o .: "InstanceCount"- <*> o .: "InstanceRole"- <*> o .: "InstanceType"- <*> o .:? "Market"- <*> o .:? "Name"--instance ToJSON InstanceGroupConfig where- toJSON InstanceGroupConfig{..} = object- [ "Name" .= _igcName- , "Market" .= _igcMarket- , "InstanceRole" .= _igcInstanceRole- , "BidPrice" .= _igcBidPrice- , "InstanceType" .= _igcInstanceType- , "InstanceCount" .= _igcInstanceCount- ]--data InstanceStateChangeReason = InstanceStateChangeReason- { _iscrCode :: Maybe InstanceStateChangeReasonCode- , _iscrMessage :: Maybe Text- } deriving (Eq, Read, Show)---- | 'InstanceStateChangeReason' constructor.------ The fields accessible through corresponding lenses are:------ * 'iscrCode' @::@ 'Maybe' 'InstanceStateChangeReasonCode'------ * 'iscrMessage' @::@ 'Maybe' 'Text'----instanceStateChangeReason :: InstanceStateChangeReason-instanceStateChangeReason = InstanceStateChangeReason- { _iscrCode = Nothing- , _iscrMessage = Nothing- }---- | The programmable code for the state change reason.-iscrCode :: Lens' InstanceStateChangeReason (Maybe InstanceStateChangeReasonCode)-iscrCode = lens _iscrCode (\s a -> s { _iscrCode = a })---- | The status change reason description.-iscrMessage :: Lens' InstanceStateChangeReason (Maybe Text)-iscrMessage = lens _iscrMessage (\s a -> s { _iscrMessage = a })--instance FromJSON InstanceStateChangeReason where- parseJSON = withObject "InstanceStateChangeReason" $ \o -> InstanceStateChangeReason- <$> o .:? "Code"- <*> o .:? "Message"--instance ToJSON InstanceStateChangeReason where- toJSON InstanceStateChangeReason{..} = object- [ "Code" .= _iscrCode- , "Message" .= _iscrMessage- ]--data JobFlowDetail = JobFlowDetail- { _jfdAmiVersion :: Maybe Text- , _jfdBootstrapActions :: List "BootstrapActions" BootstrapActionDetail- , _jfdExecutionStatusDetail :: JobFlowExecutionStatusDetail- , _jfdInstances :: JobFlowInstancesDetail- , _jfdJobFlowId :: Text- , _jfdJobFlowRole :: Maybe Text- , _jfdLogUri :: Maybe Text- , _jfdName :: Text- , _jfdServiceRole :: Maybe Text- , _jfdSteps :: List "Steps" StepDetail- , _jfdSupportedProducts :: List "SupportedProducts" Text- , _jfdVisibleToAllUsers :: Maybe Bool- } deriving (Eq, Read, Show)---- | 'JobFlowDetail' constructor.------ The fields accessible through corresponding lenses are:------ * 'jfdAmiVersion' @::@ 'Maybe' 'Text'------ * 'jfdBootstrapActions' @::@ ['BootstrapActionDetail']------ * 'jfdExecutionStatusDetail' @::@ 'JobFlowExecutionStatusDetail'------ * 'jfdInstances' @::@ 'JobFlowInstancesDetail'------ * 'jfdJobFlowId' @::@ 'Text'------ * 'jfdJobFlowRole' @::@ 'Maybe' 'Text'------ * 'jfdLogUri' @::@ 'Maybe' 'Text'------ * 'jfdName' @::@ 'Text'------ * 'jfdServiceRole' @::@ 'Maybe' 'Text'------ * 'jfdSteps' @::@ ['StepDetail']------ * 'jfdSupportedProducts' @::@ ['Text']------ * 'jfdVisibleToAllUsers' @::@ 'Maybe' 'Bool'----jobFlowDetail :: Text -- ^ 'jfdJobFlowId'- -> Text -- ^ 'jfdName'- -> JobFlowExecutionStatusDetail -- ^ 'jfdExecutionStatusDetail'- -> JobFlowInstancesDetail -- ^ 'jfdInstances'- -> JobFlowDetail-jobFlowDetail p1 p2 p3 p4 = JobFlowDetail- { _jfdJobFlowId = p1- , _jfdName = p2- , _jfdExecutionStatusDetail = p3- , _jfdInstances = p4- , _jfdLogUri = Nothing- , _jfdAmiVersion = Nothing- , _jfdSteps = mempty- , _jfdBootstrapActions = mempty- , _jfdSupportedProducts = mempty- , _jfdVisibleToAllUsers = Nothing- , _jfdJobFlowRole = Nothing- , _jfdServiceRole = Nothing- }---- | The version of the AMI used to initialize Amazon EC2 instances in the job--- flow. For a list of AMI versions currently supported by Amazon--- ElasticMapReduce, go to <http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/EnvironmentConfig_AMIVersion.html#ami-versions-supported AMI Versions Supported in Elastic MapReduce> in the /Amazon Elastic MapReduce Developer's Guide./-jfdAmiVersion :: Lens' JobFlowDetail (Maybe Text)-jfdAmiVersion = lens _jfdAmiVersion (\s a -> s { _jfdAmiVersion = a })---- | A list of the bootstrap actions run by the job flow.-jfdBootstrapActions :: Lens' JobFlowDetail [BootstrapActionDetail]-jfdBootstrapActions =- lens _jfdBootstrapActions (\s a -> s { _jfdBootstrapActions = a })- . _List---- | Describes the execution status of the job flow.-jfdExecutionStatusDetail :: Lens' JobFlowDetail JobFlowExecutionStatusDetail-jfdExecutionStatusDetail =- lens _jfdExecutionStatusDetail- (\s a -> s { _jfdExecutionStatusDetail = a })---- | Describes the Amazon EC2 instances of the job flow.-jfdInstances :: Lens' JobFlowDetail JobFlowInstancesDetail-jfdInstances = lens _jfdInstances (\s a -> s { _jfdInstances = a })---- | The job flow identifier.-jfdJobFlowId :: Lens' JobFlowDetail Text-jfdJobFlowId = lens _jfdJobFlowId (\s a -> s { _jfdJobFlowId = a })---- | The IAM role that was specified when the job flow was launched. The EC2--- instances of the job flow assume this role.-jfdJobFlowRole :: Lens' JobFlowDetail (Maybe Text)-jfdJobFlowRole = lens _jfdJobFlowRole (\s a -> s { _jfdJobFlowRole = a })---- | The location in Amazon S3 where log files for the job are stored.-jfdLogUri :: Lens' JobFlowDetail (Maybe Text)-jfdLogUri = lens _jfdLogUri (\s a -> s { _jfdLogUri = a })---- | The name of the job flow.-jfdName :: Lens' JobFlowDetail Text-jfdName = lens _jfdName (\s a -> s { _jfdName = a })---- | The IAM role that will be assumed by the Amazon EMR service to access AWS--- resources on your behalf.-jfdServiceRole :: Lens' JobFlowDetail (Maybe Text)-jfdServiceRole = lens _jfdServiceRole (\s a -> s { _jfdServiceRole = a })---- | A list of steps run by the job flow.-jfdSteps :: Lens' JobFlowDetail [StepDetail]-jfdSteps = lens _jfdSteps (\s a -> s { _jfdSteps = a }) . _List---- | A list of strings set by third party software when the job flow is launched.--- If you are not using third party software to manage the job flow this value--- is empty.-jfdSupportedProducts :: Lens' JobFlowDetail [Text]-jfdSupportedProducts =- lens _jfdSupportedProducts (\s a -> s { _jfdSupportedProducts = a })- . _List---- | Specifies whether the job flow is visible to all IAM users of the AWS account--- associated with the job flow. If this value is set to 'true', all IAM users of--- that AWS account can view and (if they have the proper policy permissions--- set) manage the job flow. If it is set to 'false', only the IAM user that--- created the job flow can view and manage it. This value can be changed using--- the 'SetVisibleToAllUsers' action.-jfdVisibleToAllUsers :: Lens' JobFlowDetail (Maybe Bool)-jfdVisibleToAllUsers =- lens _jfdVisibleToAllUsers (\s a -> s { _jfdVisibleToAllUsers = a })--instance FromJSON JobFlowDetail where- parseJSON = withObject "JobFlowDetail" $ \o -> JobFlowDetail- <$> o .:? "AmiVersion"- <*> o .:? "BootstrapActions" .!= mempty- <*> o .: "ExecutionStatusDetail"- <*> o .: "Instances"- <*> o .: "JobFlowId"- <*> o .:? "JobFlowRole"- <*> o .:? "LogUri"- <*> o .: "Name"- <*> o .:? "ServiceRole"- <*> o .:? "Steps" .!= mempty- <*> o .:? "SupportedProducts" .!= mempty- <*> o .:? "VisibleToAllUsers"--instance ToJSON JobFlowDetail where- toJSON JobFlowDetail{..} = object- [ "JobFlowId" .= _jfdJobFlowId- , "Name" .= _jfdName- , "LogUri" .= _jfdLogUri- , "AmiVersion" .= _jfdAmiVersion- , "ExecutionStatusDetail" .= _jfdExecutionStatusDetail- , "Instances" .= _jfdInstances- , "Steps" .= _jfdSteps- , "BootstrapActions" .= _jfdBootstrapActions- , "SupportedProducts" .= _jfdSupportedProducts- , "VisibleToAllUsers" .= _jfdVisibleToAllUsers- , "JobFlowRole" .= _jfdJobFlowRole- , "ServiceRole" .= _jfdServiceRole- ]--data KeyValue = KeyValue- { _kvKey :: Maybe Text- , _kvValue :: Maybe Text- } deriving (Eq, Ord, Read, Show)---- | 'KeyValue' constructor.------ The fields accessible through corresponding lenses are:------ * 'kvKey' @::@ 'Maybe' 'Text'------ * 'kvValue' @::@ 'Maybe' 'Text'----keyValue :: KeyValue-keyValue = KeyValue- { _kvKey = Nothing- , _kvValue = Nothing- }---- | The unique identifier of a key value pair.-kvKey :: Lens' KeyValue (Maybe Text)-kvKey = lens _kvKey (\s a -> s { _kvKey = a })---- | The value part of the identified key.-kvValue :: Lens' KeyValue (Maybe Text)-kvValue = lens _kvValue (\s a -> s { _kvValue = a })--instance FromJSON KeyValue where- parseJSON = withObject "KeyValue" $ \o -> KeyValue- <$> o .:? "Key"- <*> o .:? "Value"--instance ToJSON KeyValue where- toJSON KeyValue{..} = object- [ "Key" .= _kvKey- , "Value" .= _kvValue- ]--data SupportedProductConfig = SupportedProductConfig- { _spcArgs :: List "Args" Text- , _spcName :: Maybe Text- } deriving (Eq, Ord, Read, Show)---- | 'SupportedProductConfig' constructor.------ The fields accessible through corresponding lenses are:------ * 'spcArgs' @::@ ['Text']------ * 'spcName' @::@ 'Maybe' 'Text'----supportedProductConfig :: SupportedProductConfig-supportedProductConfig = SupportedProductConfig- { _spcName = Nothing- , _spcArgs = mempty- }---- | The list of user-supplied arguments.-spcArgs :: Lens' SupportedProductConfig [Text]-spcArgs = lens _spcArgs (\s a -> s { _spcArgs = a }) . _List---- | The name of the product configuration.-spcName :: Lens' SupportedProductConfig (Maybe Text)-spcName = lens _spcName (\s a -> s { _spcName = a })--instance FromJSON SupportedProductConfig where- parseJSON = withObject "SupportedProductConfig" $ \o -> SupportedProductConfig- <$> o .:? "Args" .!= mempty- <*> o .:? "Name"--instance ToJSON SupportedProductConfig where- toJSON SupportedProductConfig{..} = object- [ "Name" .= _spcName- , "Args" .= _spcArgs- ]--data Command = Command- { _cArgs :: List "Args" Text- , _cName :: Maybe Text- , _cScriptPath :: Maybe Text- } deriving (Eq, Ord, Read, Show)---- | 'Command' constructor.------ The fields accessible through corresponding lenses are:------ * 'cArgs' @::@ ['Text']------ * 'cName' @::@ 'Maybe' 'Text'------ * 'cScriptPath' @::@ 'Maybe' 'Text'----command :: Command-command = Command- { _cName = Nothing- , _cScriptPath = Nothing- , _cArgs = mempty- }---- | Arguments for Amazon EMR to pass to the command for execution.-cArgs :: Lens' Command [Text]-cArgs = lens _cArgs (\s a -> s { _cArgs = a }) . _List---- | The name of the command.-cName :: Lens' Command (Maybe Text)-cName = lens _cName (\s a -> s { _cName = a })---- | The Amazon S3 location of the command script.-cScriptPath :: Lens' Command (Maybe Text)-cScriptPath = lens _cScriptPath (\s a -> s { _cScriptPath = a })--instance FromJSON Command where- parseJSON = withObject "Command" $ \o -> Command- <$> o .:? "Args" .!= mempty- <*> o .:? "Name"- <*> o .:? "ScriptPath"--instance ToJSON Command where- toJSON Command{..} = object- [ "Name" .= _cName- , "ScriptPath" .= _cScriptPath- , "Args" .= _cArgs- ]--data StepExecutionState- = Cancelled -- ^ CANCELLED- | Completed -- ^ COMPLETED- | Continue -- ^ CONTINUE- | Failed -- ^ FAILED- | Interrupted -- ^ INTERRUPTED- | Pending -- ^ PENDING- | Running -- ^ RUNNING- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable StepExecutionState--instance FromText StepExecutionState where- parser = takeLowerText >>= \case- "cancelled" -> pure Cancelled- "completed" -> pure Completed- "continue" -> pure Continue- "failed" -> pure Failed- "interrupted" -> pure Interrupted- "pending" -> pure Pending- "running" -> pure Running- e -> fail $- "Failure parsing StepExecutionState from " ++ show e--instance ToText StepExecutionState where- toText = \case- Cancelled -> "CANCELLED"- Completed -> "COMPLETED"- Continue -> "CONTINUE"- Failed -> "FAILED"- Interrupted -> "INTERRUPTED"- Pending -> "PENDING"- Running -> "RUNNING"--instance ToByteString StepExecutionState-instance ToHeader StepExecutionState-instance ToQuery StepExecutionState--instance FromJSON StepExecutionState where- parseJSON = parseJSONText "StepExecutionState"--instance ToJSON StepExecutionState where- toJSON = toJSONText--data ActionOnFailure- = AOFCancelAndWait -- ^ CANCEL_AND_WAIT- | AOFContinue -- ^ CONTINUE- | AOFTerminateCluster -- ^ TERMINATE_CLUSTER- | AOFTerminateJobFlow -- ^ TERMINATE_JOB_FLOW- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable ActionOnFailure--instance FromText ActionOnFailure where- parser = takeLowerText >>= \case- "cancel_and_wait" -> pure AOFCancelAndWait- "continue" -> pure AOFContinue- "terminate_cluster" -> pure AOFTerminateCluster- "terminate_job_flow" -> pure AOFTerminateJobFlow- e -> fail $- "Failure parsing ActionOnFailure from " ++ show e--instance ToText ActionOnFailure where- toText = \case- AOFCancelAndWait -> "CANCEL_AND_WAIT"- AOFContinue -> "CONTINUE"- AOFTerminateCluster -> "TERMINATE_CLUSTER"- AOFTerminateJobFlow -> "TERMINATE_JOB_FLOW"--instance ToByteString ActionOnFailure-instance ToHeader ActionOnFailure-instance ToQuery ActionOnFailure--instance FromJSON ActionOnFailure where- parseJSON = parseJSONText "ActionOnFailure"--instance ToJSON ActionOnFailure where- toJSON = toJSONText--data ClusterStateChangeReason = ClusterStateChangeReason- { _cscrCode :: Maybe ClusterStateChangeReasonCode- , _cscrMessage :: Maybe Text- } deriving (Eq, Read, Show)---- | 'ClusterStateChangeReason' constructor.------ The fields accessible through corresponding lenses are:------ * 'cscrCode' @::@ 'Maybe' 'ClusterStateChangeReasonCode'------ * 'cscrMessage' @::@ 'Maybe' 'Text'----clusterStateChangeReason :: ClusterStateChangeReason-clusterStateChangeReason = ClusterStateChangeReason- { _cscrCode = Nothing- , _cscrMessage = Nothing- }---- | The programmatic code for the state change reason.-cscrCode :: Lens' ClusterStateChangeReason (Maybe ClusterStateChangeReasonCode)-cscrCode = lens _cscrCode (\s a -> s { _cscrCode = a })---- | The descriptive message for the state change reason.-cscrMessage :: Lens' ClusterStateChangeReason (Maybe Text)-cscrMessage = lens _cscrMessage (\s a -> s { _cscrMessage = a })--instance FromJSON ClusterStateChangeReason where- parseJSON = withObject "ClusterStateChangeReason" $ \o -> ClusterStateChangeReason- <$> o .:? "Code"- <*> o .:? "Message"--instance ToJSON ClusterStateChangeReason where- toJSON ClusterStateChangeReason{..} = object- [ "Code" .= _cscrCode- , "Message" .= _cscrMessage- ]--data Tag = Tag- { _tagKey :: Maybe Text- , _tagValue :: Maybe Text- } deriving (Eq, Ord, Read, Show)---- | 'Tag' constructor.------ The fields accessible through corresponding lenses are:------ * 'tagKey' @::@ 'Maybe' 'Text'------ * 'tagValue' @::@ 'Maybe' 'Text'----tag :: Tag-tag = Tag- { _tagKey = Nothing- , _tagValue = Nothing- }---- | A user-defined key, which is the minimum required information for a valid--- tag. For more information, see <http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-tags.html Tagging Amazon EMR Resources>.-tagKey :: Lens' Tag (Maybe Text)-tagKey = lens _tagKey (\s a -> s { _tagKey = a })---- | A user-defined value, which is optional in a tag. For more information, see <http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-tags.html Tagging Amazon EMR Resources>.-tagValue :: Lens' Tag (Maybe Text)-tagValue = lens _tagValue (\s a -> s { _tagValue = a })--instance FromJSON Tag where- parseJSON = withObject "Tag" $ \o -> Tag- <$> o .:? "Key"- <*> o .:? "Value"--instance ToJSON Tag where- toJSON Tag{..} = object- [ "Key" .= _tagKey- , "Value" .= _tagValue- ]--data Application = Application- { _aAdditionalInfo :: Map Text Text- , _aArgs :: List "Args" Text- , _aName :: Maybe Text- , _aVersion :: Maybe Text- } deriving (Eq, Read, Show)---- | 'Application' constructor.------ The fields accessible through corresponding lenses are:------ * 'aAdditionalInfo' @::@ 'HashMap' 'Text' 'Text'------ * 'aArgs' @::@ ['Text']------ * 'aName' @::@ 'Maybe' 'Text'------ * 'aVersion' @::@ 'Maybe' 'Text'----application :: Application-application = Application- { _aName = Nothing- , _aVersion = Nothing- , _aArgs = mempty- , _aAdditionalInfo = mempty- }---- | This option is for advanced users only. This is meta information about--- third-party applications that third-party vendors use for testing purposes.-aAdditionalInfo :: Lens' Application (HashMap Text Text)-aAdditionalInfo = lens _aAdditionalInfo (\s a -> s { _aAdditionalInfo = a }) . _Map---- | Arguments for Amazon EMR to pass to the application.-aArgs :: Lens' Application [Text]-aArgs = lens _aArgs (\s a -> s { _aArgs = a }) . _List---- | The name of the application.-aName :: Lens' Application (Maybe Text)-aName = lens _aName (\s a -> s { _aName = a })---- | The version of the application.-aVersion :: Lens' Application (Maybe Text)-aVersion = lens _aVersion (\s a -> s { _aVersion = a })--instance FromJSON Application where- parseJSON = withObject "Application" $ \o -> Application- <$> o .:? "AdditionalInfo" .!= mempty- <*> o .:? "Args" .!= mempty- <*> o .:? "Name"- <*> o .:? "Version"--instance ToJSON Application where- toJSON Application{..} = object- [ "Name" .= _aName- , "Version" .= _aVersion- , "Args" .= _aArgs- , "AdditionalInfo" .= _aAdditionalInfo- ]--data JobFlowExecutionStatusDetail = JobFlowExecutionStatusDetail- { _jfesdCreationDateTime :: POSIX- , _jfesdEndDateTime :: Maybe POSIX- , _jfesdLastStateChangeReason :: Maybe Text- , _jfesdReadyDateTime :: Maybe POSIX- , _jfesdStartDateTime :: Maybe POSIX- , _jfesdState :: JobFlowExecutionState- } deriving (Eq, Read, Show)---- | 'JobFlowExecutionStatusDetail' constructor.------ The fields accessible through corresponding lenses are:------ * 'jfesdCreationDateTime' @::@ 'UTCTime'------ * 'jfesdEndDateTime' @::@ 'Maybe' 'UTCTime'------ * 'jfesdLastStateChangeReason' @::@ 'Maybe' 'Text'------ * 'jfesdReadyDateTime' @::@ 'Maybe' 'UTCTime'------ * 'jfesdStartDateTime' @::@ 'Maybe' 'UTCTime'------ * 'jfesdState' @::@ 'JobFlowExecutionState'----jobFlowExecutionStatusDetail :: JobFlowExecutionState -- ^ 'jfesdState'- -> UTCTime -- ^ 'jfesdCreationDateTime'- -> JobFlowExecutionStatusDetail-jobFlowExecutionStatusDetail p1 p2 = JobFlowExecutionStatusDetail- { _jfesdState = p1- , _jfesdCreationDateTime = withIso _Time (const id) p2- , _jfesdStartDateTime = Nothing- , _jfesdReadyDateTime = Nothing- , _jfesdEndDateTime = Nothing- , _jfesdLastStateChangeReason = Nothing- }---- | The creation date and time of the job flow.-jfesdCreationDateTime :: Lens' JobFlowExecutionStatusDetail UTCTime-jfesdCreationDateTime =- lens _jfesdCreationDateTime (\s a -> s { _jfesdCreationDateTime = a })- . _Time---- | The completion date and time of the job flow.-jfesdEndDateTime :: Lens' JobFlowExecutionStatusDetail (Maybe UTCTime)-jfesdEndDateTime = lens _jfesdEndDateTime (\s a -> s { _jfesdEndDateTime = a }) . mapping _Time---- | Description of the job flow last changed state.-jfesdLastStateChangeReason :: Lens' JobFlowExecutionStatusDetail (Maybe Text)-jfesdLastStateChangeReason =- lens _jfesdLastStateChangeReason- (\s a -> s { _jfesdLastStateChangeReason = a })---- | The date and time when the job flow was ready to start running bootstrap--- actions.-jfesdReadyDateTime :: Lens' JobFlowExecutionStatusDetail (Maybe UTCTime)-jfesdReadyDateTime =- lens _jfesdReadyDateTime (\s a -> s { _jfesdReadyDateTime = a })- . mapping _Time---- | The start date and time of the job flow.-jfesdStartDateTime :: Lens' JobFlowExecutionStatusDetail (Maybe UTCTime)-jfesdStartDateTime =- lens _jfesdStartDateTime (\s a -> s { _jfesdStartDateTime = a })- . mapping _Time---- | The state of the job flow.-jfesdState :: Lens' JobFlowExecutionStatusDetail JobFlowExecutionState-jfesdState = lens _jfesdState (\s a -> s { _jfesdState = a })--instance FromJSON JobFlowExecutionStatusDetail where- parseJSON = withObject "JobFlowExecutionStatusDetail" $ \o -> JobFlowExecutionStatusDetail- <$> o .: "CreationDateTime"- <*> o .:? "EndDateTime"- <*> o .:? "LastStateChangeReason"- <*> o .:? "ReadyDateTime"- <*> o .:? "StartDateTime"- <*> o .: "State"--instance ToJSON JobFlowExecutionStatusDetail where- toJSON JobFlowExecutionStatusDetail{..} = object- [ "State" .= _jfesdState- , "CreationDateTime" .= _jfesdCreationDateTime- , "StartDateTime" .= _jfesdStartDateTime- , "ReadyDateTime" .= _jfesdReadyDateTime- , "EndDateTime" .= _jfesdEndDateTime- , "LastStateChangeReason" .= _jfesdLastStateChangeReason- ]--data InstanceGroupStatus = InstanceGroupStatus- { _igsState :: Maybe InstanceGroupState- , _igsStateChangeReason :: Maybe InstanceGroupStateChangeReason- , _igsTimeline :: Maybe InstanceGroupTimeline- } deriving (Eq, Read, Show)---- | 'InstanceGroupStatus' constructor.------ The fields accessible through corresponding lenses are:------ * 'igsState' @::@ 'Maybe' 'InstanceGroupState'------ * 'igsStateChangeReason' @::@ 'Maybe' 'InstanceGroupStateChangeReason'------ * 'igsTimeline' @::@ 'Maybe' 'InstanceGroupTimeline'----instanceGroupStatus :: InstanceGroupStatus-instanceGroupStatus = InstanceGroupStatus- { _igsState = Nothing- , _igsStateChangeReason = Nothing- , _igsTimeline = Nothing- }---- | The current state of the instance group.-igsState :: Lens' InstanceGroupStatus (Maybe InstanceGroupState)-igsState = lens _igsState (\s a -> s { _igsState = a })---- | The status change reason details for the instance group.-igsStateChangeReason :: Lens' InstanceGroupStatus (Maybe InstanceGroupStateChangeReason)-igsStateChangeReason =- lens _igsStateChangeReason (\s a -> s { _igsStateChangeReason = a })---- | The timeline of the instance group status over time.-igsTimeline :: Lens' InstanceGroupStatus (Maybe InstanceGroupTimeline)-igsTimeline = lens _igsTimeline (\s a -> s { _igsTimeline = a })--instance FromJSON InstanceGroupStatus where- parseJSON = withObject "InstanceGroupStatus" $ \o -> InstanceGroupStatus- <$> o .:? "State"- <*> o .:? "StateChangeReason"- <*> o .:? "Timeline"--instance ToJSON InstanceGroupStatus where- toJSON InstanceGroupStatus{..} = object- [ "State" .= _igsState- , "StateChangeReason" .= _igsStateChangeReason- , "Timeline" .= _igsTimeline- ]--data Cluster = Cluster- { _c1Applications :: List "Applications" Application- , _c1AutoTerminate :: Maybe Bool- , _c1Ec2InstanceAttributes :: Maybe Ec2InstanceAttributes- , _c1Id :: Text- , _c1LogUri :: Maybe Text- , _c1MasterPublicDnsName :: Maybe Text- , _c1Name :: Text- , _c1NormalizedInstanceHours :: Maybe Int- , _c1RequestedAmiVersion :: Maybe Text- , _c1RunningAmiVersion :: Maybe Text- , _c1ServiceRole :: Maybe Text- , _c1Status :: ClusterStatus- , _c1Tags :: List "Tags" Tag- , _c1TerminationProtected :: Maybe Bool- , _c1VisibleToAllUsers :: Maybe Bool- } deriving (Eq, Read, Show)---- | 'Cluster' constructor.------ The fields accessible through corresponding lenses are:------ * 'c1Applications' @::@ ['Application']------ * 'c1AutoTerminate' @::@ 'Maybe' 'Bool'------ * 'c1Ec2InstanceAttributes' @::@ 'Maybe' 'Ec2InstanceAttributes'------ * 'c1Id' @::@ 'Text'------ * 'c1LogUri' @::@ 'Maybe' 'Text'------ * 'c1MasterPublicDnsName' @::@ 'Maybe' 'Text'------ * 'c1Name' @::@ 'Text'------ * 'c1NormalizedInstanceHours' @::@ 'Maybe' 'Int'------ * 'c1RequestedAmiVersion' @::@ 'Maybe' 'Text'------ * 'c1RunningAmiVersion' @::@ 'Maybe' 'Text'------ * 'c1ServiceRole' @::@ 'Maybe' 'Text'------ * 'c1Status' @::@ 'ClusterStatus'------ * 'c1Tags' @::@ ['Tag']------ * 'c1TerminationProtected' @::@ 'Maybe' 'Bool'------ * 'c1VisibleToAllUsers' @::@ 'Maybe' 'Bool'----cluster :: Text -- ^ 'c1Id'- -> Text -- ^ 'c1Name'- -> ClusterStatus -- ^ 'c1Status'- -> Cluster-cluster p1 p2 p3 = Cluster- { _c1Id = p1- , _c1Name = p2- , _c1Status = p3- , _c1Ec2InstanceAttributes = Nothing- , _c1LogUri = Nothing- , _c1RequestedAmiVersion = Nothing- , _c1RunningAmiVersion = Nothing- , _c1AutoTerminate = Nothing- , _c1TerminationProtected = Nothing- , _c1VisibleToAllUsers = Nothing- , _c1Applications = mempty- , _c1Tags = mempty- , _c1ServiceRole = Nothing- , _c1NormalizedInstanceHours = Nothing- , _c1MasterPublicDnsName = Nothing- }---- | The applications installed on this cluster.-c1Applications :: Lens' Cluster [Application]-c1Applications = lens _c1Applications (\s a -> s { _c1Applications = a }) . _List---- | Specifies whether the cluster should terminate after completing all steps.-c1AutoTerminate :: Lens' Cluster (Maybe Bool)-c1AutoTerminate = lens _c1AutoTerminate (\s a -> s { _c1AutoTerminate = a })--c1Ec2InstanceAttributes :: Lens' Cluster (Maybe Ec2InstanceAttributes)-c1Ec2InstanceAttributes =- lens _c1Ec2InstanceAttributes (\s a -> s { _c1Ec2InstanceAttributes = a })---- | The unique identifier for the cluster.-c1Id :: Lens' Cluster Text-c1Id = lens _c1Id (\s a -> s { _c1Id = a })---- | The path to the Amazon S3 location where logs for this cluster are stored.-c1LogUri :: Lens' Cluster (Maybe Text)-c1LogUri = lens _c1LogUri (\s a -> s { _c1LogUri = a })---- | The public DNS name of the master Ec2 instance.-c1MasterPublicDnsName :: Lens' Cluster (Maybe Text)-c1MasterPublicDnsName =- lens _c1MasterPublicDnsName (\s a -> s { _c1MasterPublicDnsName = a })---- | The name of the cluster.-c1Name :: Lens' Cluster Text-c1Name = lens _c1Name (\s a -> s { _c1Name = a })---- | An approximation of the cost of the job flow, represented in m1.small/hours.--- This value is incremented one time for every hour an m1.small instance runs.--- Larger instances are weighted more, so an EC2 instance that is roughly four--- times more expensive would result in the normalized instance hours being--- incremented by four. This result is only an approximation and does not--- reflect the actual billing rate.-c1NormalizedInstanceHours :: Lens' Cluster (Maybe Int)-c1NormalizedInstanceHours =- lens _c1NormalizedInstanceHours- (\s a -> s { _c1NormalizedInstanceHours = a })---- | The AMI version requested for this cluster.-c1RequestedAmiVersion :: Lens' Cluster (Maybe Text)-c1RequestedAmiVersion =- lens _c1RequestedAmiVersion (\s a -> s { _c1RequestedAmiVersion = a })---- | The AMI version running on this cluster. This differs from the requested--- version only if the requested version is a meta version, such as "latest".-c1RunningAmiVersion :: Lens' Cluster (Maybe Text)-c1RunningAmiVersion =- lens _c1RunningAmiVersion (\s a -> s { _c1RunningAmiVersion = a })---- | The IAM role that will be assumed by the Amazon EMR service to access AWS--- resources on your behalf.-c1ServiceRole :: Lens' Cluster (Maybe Text)-c1ServiceRole = lens _c1ServiceRole (\s a -> s { _c1ServiceRole = a })---- | The current status details about the cluster.-c1Status :: Lens' Cluster ClusterStatus-c1Status = lens _c1Status (\s a -> s { _c1Status = a })---- | A list of tags associated with a cluster.-c1Tags :: Lens' Cluster [Tag]-c1Tags = lens _c1Tags (\s a -> s { _c1Tags = a }) . _List---- | Indicates whether Amazon EMR will lock the cluster to prevent the EC2--- instances from being terminated by an API call or user intervention, or in--- the event of a cluster error.-c1TerminationProtected :: Lens' Cluster (Maybe Bool)-c1TerminationProtected =- lens _c1TerminationProtected (\s a -> s { _c1TerminationProtected = a })---- | Indicates whether the job flow is visible to all IAM users of the AWS account--- associated with the job flow. If this value is set to 'true', 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.-c1VisibleToAllUsers :: Lens' Cluster (Maybe Bool)-c1VisibleToAllUsers =- lens _c1VisibleToAllUsers (\s a -> s { _c1VisibleToAllUsers = a })--instance FromJSON Cluster where- parseJSON = withObject "Cluster" $ \o -> Cluster- <$> o .:? "Applications" .!= mempty- <*> o .:? "AutoTerminate"- <*> o .:? "Ec2InstanceAttributes"- <*> o .: "Id"- <*> o .:? "LogUri"- <*> o .:? "MasterPublicDnsName"- <*> o .: "Name"- <*> o .:? "NormalizedInstanceHours"- <*> o .:? "RequestedAmiVersion"- <*> o .:? "RunningAmiVersion"- <*> o .:? "ServiceRole"- <*> o .: "Status"- <*> o .:? "Tags" .!= mempty- <*> o .:? "TerminationProtected"- <*> o .:? "VisibleToAllUsers"--instance ToJSON Cluster where- toJSON Cluster{..} = object- [ "Id" .= _c1Id- , "Name" .= _c1Name- , "Status" .= _c1Status- , "Ec2InstanceAttributes" .= _c1Ec2InstanceAttributes- , "LogUri" .= _c1LogUri- , "RequestedAmiVersion" .= _c1RequestedAmiVersion- , "RunningAmiVersion" .= _c1RunningAmiVersion- , "AutoTerminate" .= _c1AutoTerminate- , "TerminationProtected" .= _c1TerminationProtected- , "VisibleToAllUsers" .= _c1VisibleToAllUsers- , "Applications" .= _c1Applications- , "Tags" .= _c1Tags- , "ServiceRole" .= _c1ServiceRole- , "NormalizedInstanceHours" .= _c1NormalizedInstanceHours- , "MasterPublicDnsName" .= _c1MasterPublicDnsName- ]--data InstanceTimeline = InstanceTimeline- { _itCreationDateTime :: Maybe POSIX- , _itEndDateTime :: Maybe POSIX- , _itReadyDateTime :: Maybe POSIX- } deriving (Eq, Ord, Read, Show)---- | 'InstanceTimeline' constructor.------ The fields accessible through corresponding lenses are:------ * 'itCreationDateTime' @::@ 'Maybe' 'UTCTime'------ * 'itEndDateTime' @::@ 'Maybe' 'UTCTime'------ * 'itReadyDateTime' @::@ 'Maybe' 'UTCTime'----instanceTimeline :: InstanceTimeline-instanceTimeline = InstanceTimeline- { _itCreationDateTime = Nothing- , _itReadyDateTime = Nothing- , _itEndDateTime = Nothing- }---- | The creation date and time of the instance.-itCreationDateTime :: Lens' InstanceTimeline (Maybe UTCTime)-itCreationDateTime =- lens _itCreationDateTime (\s a -> s { _itCreationDateTime = a })- . mapping _Time---- | The date and time when the instance was terminated.-itEndDateTime :: Lens' InstanceTimeline (Maybe UTCTime)-itEndDateTime = lens _itEndDateTime (\s a -> s { _itEndDateTime = a }) . mapping _Time---- | The date and time when the instance was ready to perform tasks.-itReadyDateTime :: Lens' InstanceTimeline (Maybe UTCTime)-itReadyDateTime = lens _itReadyDateTime (\s a -> s { _itReadyDateTime = a }) . mapping _Time--instance FromJSON InstanceTimeline where- parseJSON = withObject "InstanceTimeline" $ \o -> InstanceTimeline- <$> o .:? "CreationDateTime"- <*> o .:? "EndDateTime"- <*> o .:? "ReadyDateTime"--instance ToJSON InstanceTimeline where- toJSON InstanceTimeline{..} = object- [ "CreationDateTime" .= _itCreationDateTime- , "ReadyDateTime" .= _itReadyDateTime- , "EndDateTime" .= _itEndDateTime- ]--data Ec2InstanceAttributes = Ec2InstanceAttributes- { _eiaAdditionalMasterSecurityGroups :: List "AdditionalMasterSecurityGroups" Text- , _eiaAdditionalSlaveSecurityGroups :: List "AdditionalSlaveSecurityGroups" Text- , _eiaEc2AvailabilityZone :: Maybe Text- , _eiaEc2KeyName :: Maybe Text- , _eiaEc2SubnetId :: Maybe Text- , _eiaEmrManagedMasterSecurityGroup :: Maybe Text- , _eiaEmrManagedSlaveSecurityGroup :: Maybe Text- , _eiaIamInstanceProfile :: Maybe Text- } deriving (Eq, Ord, Read, Show)---- | 'Ec2InstanceAttributes' constructor.------ The fields accessible through corresponding lenses are:------ * 'eiaAdditionalMasterSecurityGroups' @::@ ['Text']------ * 'eiaAdditionalSlaveSecurityGroups' @::@ ['Text']------ * 'eiaEc2AvailabilityZone' @::@ 'Maybe' 'Text'------ * 'eiaEc2KeyName' @::@ 'Maybe' 'Text'------ * 'eiaEc2SubnetId' @::@ 'Maybe' 'Text'------ * 'eiaEmrManagedMasterSecurityGroup' @::@ 'Maybe' 'Text'------ * 'eiaEmrManagedSlaveSecurityGroup' @::@ 'Maybe' 'Text'------ * 'eiaIamInstanceProfile' @::@ 'Maybe' 'Text'----ec2InstanceAttributes :: Ec2InstanceAttributes-ec2InstanceAttributes = Ec2InstanceAttributes- { _eiaEc2KeyName = Nothing- , _eiaEc2SubnetId = Nothing- , _eiaEc2AvailabilityZone = Nothing- , _eiaIamInstanceProfile = Nothing- , _eiaEmrManagedMasterSecurityGroup = Nothing- , _eiaEmrManagedSlaveSecurityGroup = Nothing- , _eiaAdditionalMasterSecurityGroups = mempty- , _eiaAdditionalSlaveSecurityGroups = mempty- }---- | A list of additional Amazon EC2 security group IDs for the master node.-eiaAdditionalMasterSecurityGroups :: Lens' Ec2InstanceAttributes [Text]-eiaAdditionalMasterSecurityGroups =- lens _eiaAdditionalMasterSecurityGroups- (\s a -> s { _eiaAdditionalMasterSecurityGroups = a })- . _List---- | A list of additional Amazon EC2 security group IDs for the slave nodes.-eiaAdditionalSlaveSecurityGroups :: Lens' Ec2InstanceAttributes [Text]-eiaAdditionalSlaveSecurityGroups =- lens _eiaAdditionalSlaveSecurityGroups- (\s a -> s { _eiaAdditionalSlaveSecurityGroups = a })- . _List---- | The Availability Zone in which the cluster will run.-eiaEc2AvailabilityZone :: Lens' Ec2InstanceAttributes (Maybe Text)-eiaEc2AvailabilityZone =- lens _eiaEc2AvailabilityZone (\s a -> s { _eiaEc2AvailabilityZone = a })---- | The name of the Amazon EC2 key pair to use when connecting with SSH into the--- master node as a user named "hadoop".-eiaEc2KeyName :: Lens' Ec2InstanceAttributes (Maybe Text)-eiaEc2KeyName = lens _eiaEc2KeyName (\s a -> s { _eiaEc2KeyName = a })---- | To launch the job flow in Amazon VPC, set this parameter to the identifier--- of the Amazon VPC subnet where you want the job flow to launch. If you do not--- specify this value, the job flow is launched in the normal AWS cloud, outside--- of a VPC.------ Amazon VPC currently does not support cluster compute quadruple extra large--- (cc1.4xlarge) instances. Thus, you cannot specify the cc1.4xlarge instance--- type for nodes of a job flow launched in a VPC.-eiaEc2SubnetId :: Lens' Ec2InstanceAttributes (Maybe Text)-eiaEc2SubnetId = lens _eiaEc2SubnetId (\s a -> s { _eiaEc2SubnetId = a })---- | The identifier of the Amazon EC2 security group (managed by Amazon Elastic--- MapReduce) for the master node.-eiaEmrManagedMasterSecurityGroup :: Lens' Ec2InstanceAttributes (Maybe Text)-eiaEmrManagedMasterSecurityGroup =- lens _eiaEmrManagedMasterSecurityGroup- (\s a -> s { _eiaEmrManagedMasterSecurityGroup = a })---- | The identifier of the Amazon EC2 security group (managed by Amazon Elastic--- MapReduce) for the slave nodes.-eiaEmrManagedSlaveSecurityGroup :: Lens' Ec2InstanceAttributes (Maybe Text)-eiaEmrManagedSlaveSecurityGroup =- lens _eiaEmrManagedSlaveSecurityGroup- (\s a -> s { _eiaEmrManagedSlaveSecurityGroup = a })---- | The IAM role that was specified when the job flow was launched. The EC2--- instances of the job flow assume this role.-eiaIamInstanceProfile :: Lens' Ec2InstanceAttributes (Maybe Text)-eiaIamInstanceProfile =- lens _eiaIamInstanceProfile (\s a -> s { _eiaIamInstanceProfile = a })--instance FromJSON Ec2InstanceAttributes where- parseJSON = withObject "Ec2InstanceAttributes" $ \o -> Ec2InstanceAttributes- <$> o .:? "AdditionalMasterSecurityGroups" .!= mempty- <*> o .:? "AdditionalSlaveSecurityGroups" .!= mempty- <*> o .:? "Ec2AvailabilityZone"- <*> o .:? "Ec2KeyName"- <*> o .:? "Ec2SubnetId"- <*> o .:? "EmrManagedMasterSecurityGroup"- <*> o .:? "EmrManagedSlaveSecurityGroup"- <*> o .:? "IamInstanceProfile"--instance ToJSON Ec2InstanceAttributes where- toJSON Ec2InstanceAttributes{..} = object- [ "Ec2KeyName" .= _eiaEc2KeyName- , "Ec2SubnetId" .= _eiaEc2SubnetId- , "Ec2AvailabilityZone" .= _eiaEc2AvailabilityZone- , "IamInstanceProfile" .= _eiaIamInstanceProfile- , "EmrManagedMasterSecurityGroup" .= _eiaEmrManagedMasterSecurityGroup- , "EmrManagedSlaveSecurityGroup" .= _eiaEmrManagedSlaveSecurityGroup- , "AdditionalMasterSecurityGroups" .= _eiaAdditionalMasterSecurityGroups- , "AdditionalSlaveSecurityGroups" .= _eiaAdditionalSlaveSecurityGroups- ]--data StepStateChangeReasonCode- = None -- ^ NONE- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable StepStateChangeReasonCode--instance FromText StepStateChangeReasonCode where- parser = takeLowerText >>= \case- "none" -> pure None- e -> fail $- "Failure parsing StepStateChangeReasonCode from " ++ show e--instance ToText StepStateChangeReasonCode where- toText None = "NONE"--instance ToByteString StepStateChangeReasonCode-instance ToHeader StepStateChangeReasonCode-instance ToQuery StepStateChangeReasonCode--instance FromJSON StepStateChangeReasonCode where- parseJSON = parseJSONText "StepStateChangeReasonCode"--instance ToJSON StepStateChangeReasonCode where- toJSON = toJSONText--data ClusterState- = CSBootstrapping -- ^ BOOTSTRAPPING- | CSRunning -- ^ RUNNING- | CSStarting -- ^ STARTING- | CSTerminated -- ^ TERMINATED- | CSTerminatedWithErrors -- ^ TERMINATED_WITH_ERRORS- | CSTerminating -- ^ TERMINATING- | CSWaiting -- ^ WAITING- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable ClusterState--instance FromText ClusterState where- parser = takeLowerText >>= \case- "bootstrapping" -> pure CSBootstrapping- "running" -> pure CSRunning- "starting" -> pure CSStarting- "terminated" -> pure CSTerminated- "terminated_with_errors" -> pure CSTerminatedWithErrors- "terminating" -> pure CSTerminating- "waiting" -> pure CSWaiting- e -> fail $- "Failure parsing ClusterState from " ++ show e--instance ToText ClusterState where- toText = \case- CSBootstrapping -> "BOOTSTRAPPING"- CSRunning -> "RUNNING"- CSStarting -> "STARTING"- CSTerminated -> "TERMINATED"- CSTerminatedWithErrors -> "TERMINATED_WITH_ERRORS"- CSTerminating -> "TERMINATING"- CSWaiting -> "WAITING"--instance ToByteString ClusterState-instance ToHeader ClusterState-instance ToQuery ClusterState--instance FromJSON ClusterState where- parseJSON = parseJSONText "ClusterState"--instance ToJSON ClusterState where- toJSON = toJSONText--data HadoopStepConfig = HadoopStepConfig- { _hscArgs :: List "Args" Text- , _hscJar :: Maybe Text- , _hscMainClass :: Maybe Text- , _hscProperties :: Map Text Text- } deriving (Eq, Read, Show)---- | 'HadoopStepConfig' constructor.------ The fields accessible through corresponding lenses are:------ * 'hscArgs' @::@ ['Text']------ * 'hscJar' @::@ 'Maybe' 'Text'------ * 'hscMainClass' @::@ 'Maybe' 'Text'------ * 'hscProperties' @::@ 'HashMap' 'Text' 'Text'----hadoopStepConfig :: HadoopStepConfig-hadoopStepConfig = HadoopStepConfig- { _hscJar = Nothing- , _hscProperties = mempty- , _hscMainClass = Nothing- , _hscArgs = mempty- }---- | The list of command line arguments to pass to the JAR file's main function--- for execution.-hscArgs :: Lens' HadoopStepConfig [Text]-hscArgs = lens _hscArgs (\s a -> s { _hscArgs = a }) . _List---- | The path to the JAR file that runs during the step.-hscJar :: Lens' HadoopStepConfig (Maybe Text)-hscJar = lens _hscJar (\s a -> s { _hscJar = a })---- | The name of the main class in the specified Java file. If not specified, the--- JAR file should specify a main class in its manifest file.-hscMainClass :: Lens' HadoopStepConfig (Maybe Text)-hscMainClass = lens _hscMainClass (\s a -> s { _hscMainClass = a })---- | The list of Java properties that are set when the step runs. You can use--- these properties to pass key value pairs to your main function.-hscProperties :: Lens' HadoopStepConfig (HashMap Text Text)-hscProperties = lens _hscProperties (\s a -> s { _hscProperties = a }) . _Map--instance FromJSON HadoopStepConfig where- parseJSON = withObject "HadoopStepConfig" $ \o -> HadoopStepConfig- <$> o .:? "Args" .!= mempty- <*> o .:? "Jar"- <*> o .:? "MainClass"- <*> o .:? "Properties" .!= mempty--instance ToJSON HadoopStepConfig where- toJSON HadoopStepConfig{..} = object- [ "Jar" .= _hscJar- , "Properties" .= _hscProperties- , "MainClass" .= _hscMainClass- , "Args" .= _hscArgs- ]--data JobFlowExecutionState- = JFESBootstrapping -- ^ BOOTSTRAPPING- | JFESCompleted -- ^ COMPLETED- | JFESFailed -- ^ FAILED- | JFESRunning -- ^ RUNNING- | JFESShuttingDown -- ^ SHUTTING_DOWN- | JFESStarting -- ^ STARTING- | JFESTerminated -- ^ TERMINATED- | JFESWaiting -- ^ WAITING- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable JobFlowExecutionState--instance FromText JobFlowExecutionState where- parser = takeLowerText >>= \case- "bootstrapping" -> pure JFESBootstrapping- "completed" -> pure JFESCompleted- "failed" -> pure JFESFailed- "running" -> pure JFESRunning- "shutting_down" -> pure JFESShuttingDown- "starting" -> pure JFESStarting- "terminated" -> pure JFESTerminated- "waiting" -> pure JFESWaiting- e -> fail $- "Failure parsing JobFlowExecutionState from " ++ show e--instance ToText JobFlowExecutionState where- toText = \case- JFESBootstrapping -> "BOOTSTRAPPING"- JFESCompleted -> "COMPLETED"- JFESFailed -> "FAILED"- JFESRunning -> "RUNNING"- JFESShuttingDown -> "SHUTTING_DOWN"- JFESStarting -> "STARTING"- JFESTerminated -> "TERMINATED"- JFESWaiting -> "WAITING"--instance ToByteString JobFlowExecutionState-instance ToHeader JobFlowExecutionState-instance ToQuery JobFlowExecutionState--instance FromJSON JobFlowExecutionState where- parseJSON = parseJSONText "JobFlowExecutionState"--instance ToJSON JobFlowExecutionState where- toJSON = toJSONText--data StepDetail = StepDetail- { _sdExecutionStatusDetail :: StepExecutionStatusDetail- , _sdStepConfig :: StepConfig- } deriving (Eq, Read, Show)---- | 'StepDetail' constructor.------ The fields accessible through corresponding lenses are:------ * 'sdExecutionStatusDetail' @::@ 'StepExecutionStatusDetail'------ * 'sdStepConfig' @::@ 'StepConfig'----stepDetail :: StepConfig -- ^ 'sdStepConfig'- -> StepExecutionStatusDetail -- ^ 'sdExecutionStatusDetail'- -> StepDetail-stepDetail p1 p2 = StepDetail- { _sdStepConfig = p1- , _sdExecutionStatusDetail = p2- }---- | The description of the step status.-sdExecutionStatusDetail :: Lens' StepDetail StepExecutionStatusDetail-sdExecutionStatusDetail =- lens _sdExecutionStatusDetail (\s a -> s { _sdExecutionStatusDetail = a })---- | The step configuration.-sdStepConfig :: Lens' StepDetail StepConfig-sdStepConfig = lens _sdStepConfig (\s a -> s { _sdStepConfig = a })--instance FromJSON StepDetail where- parseJSON = withObject "StepDetail" $ \o -> StepDetail- <$> o .: "ExecutionStatusDetail"- <*> o .: "StepConfig"--instance ToJSON StepDetail where- toJSON StepDetail{..} = object- [ "StepConfig" .= _sdStepConfig- , "ExecutionStatusDetail" .= _sdExecutionStatusDetail- ]--data InstanceGroupStateChangeReason = InstanceGroupStateChangeReason- { _igscrCode :: Maybe InstanceGroupStateChangeReasonCode- , _igscrMessage :: Maybe Text- } deriving (Eq, Read, Show)---- | 'InstanceGroupStateChangeReason' constructor.------ The fields accessible through corresponding lenses are:------ * 'igscrCode' @::@ 'Maybe' 'InstanceGroupStateChangeReasonCode'------ * 'igscrMessage' @::@ 'Maybe' 'Text'----instanceGroupStateChangeReason :: InstanceGroupStateChangeReason-instanceGroupStateChangeReason = InstanceGroupStateChangeReason- { _igscrCode = Nothing- , _igscrMessage = Nothing- }---- | The programmable code for the state change reason.-igscrCode :: Lens' InstanceGroupStateChangeReason (Maybe InstanceGroupStateChangeReasonCode)-igscrCode = lens _igscrCode (\s a -> s { _igscrCode = a })---- | The status change reason description.-igscrMessage :: Lens' InstanceGroupStateChangeReason (Maybe Text)-igscrMessage = lens _igscrMessage (\s a -> s { _igscrMessage = a })--instance FromJSON InstanceGroupStateChangeReason where- parseJSON = withObject "InstanceGroupStateChangeReason" $ \o -> InstanceGroupStateChangeReason- <$> o .:? "Code"- <*> o .:? "Message"--instance ToJSON InstanceGroupStateChangeReason where- toJSON InstanceGroupStateChangeReason{..} = object- [ "Code" .= _igscrCode- , "Message" .= _igscrMessage- ]--data InstanceGroupType- = Core -- ^ CORE- | Master -- ^ MASTER- | Task -- ^ TASK- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable InstanceGroupType--instance FromText InstanceGroupType where- parser = takeLowerText >>= \case- "core" -> pure Core- "master" -> pure Master- "task" -> pure Task- e -> fail $- "Failure parsing InstanceGroupType from " ++ show e--instance ToText InstanceGroupType where- toText = \case- Core -> "CORE"- Master -> "MASTER"- Task -> "TASK"--instance ToByteString InstanceGroupType-instance ToHeader InstanceGroupType-instance ToQuery InstanceGroupType--instance FromJSON InstanceGroupType where- parseJSON = parseJSONText "InstanceGroupType"--instance ToJSON InstanceGroupType where- toJSON = toJSONText--data InstanceGroupStateChangeReasonCode- = ClusterTerminated -- ^ CLUSTER_TERMINATED- | InstanceFailure -- ^ INSTANCE_FAILURE- | InternalError -- ^ INTERNAL_ERROR- | ValidationError -- ^ VALIDATION_ERROR- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable InstanceGroupStateChangeReasonCode--instance FromText InstanceGroupStateChangeReasonCode where- parser = takeLowerText >>= \case- "cluster_terminated" -> pure ClusterTerminated- "instance_failure" -> pure InstanceFailure- "internal_error" -> pure InternalError- "validation_error" -> pure ValidationError- e -> fail $- "Failure parsing InstanceGroupStateChangeReasonCode from " ++ show e--instance ToText InstanceGroupStateChangeReasonCode where- toText = \case- ClusterTerminated -> "CLUSTER_TERMINATED"- InstanceFailure -> "INSTANCE_FAILURE"- InternalError -> "INTERNAL_ERROR"- ValidationError -> "VALIDATION_ERROR"--instance ToByteString InstanceGroupStateChangeReasonCode-instance ToHeader InstanceGroupStateChangeReasonCode-instance ToQuery InstanceGroupStateChangeReasonCode--instance FromJSON InstanceGroupStateChangeReasonCode where- parseJSON = parseJSONText "InstanceGroupStateChangeReasonCode"--instance ToJSON InstanceGroupStateChangeReasonCode where- toJSON = toJSONText--data StepStatus = StepStatus- { _ssState :: Maybe StepState- , _ssStateChangeReason :: Maybe StepStateChangeReason- , _ssTimeline :: Maybe StepTimeline- } deriving (Eq, Read, Show)---- | 'StepStatus' constructor.------ The fields accessible through corresponding lenses are:------ * 'ssState' @::@ 'Maybe' 'StepState'------ * 'ssStateChangeReason' @::@ 'Maybe' 'StepStateChangeReason'------ * 'ssTimeline' @::@ 'Maybe' 'StepTimeline'----stepStatus :: StepStatus-stepStatus = StepStatus- { _ssState = Nothing- , _ssStateChangeReason = Nothing- , _ssTimeline = Nothing- }---- | The execution state of the cluster step.-ssState :: Lens' StepStatus (Maybe StepState)-ssState = lens _ssState (\s a -> s { _ssState = a })---- | The reason for the step execution status change.-ssStateChangeReason :: Lens' StepStatus (Maybe StepStateChangeReason)-ssStateChangeReason =- lens _ssStateChangeReason (\s a -> s { _ssStateChangeReason = a })---- | The timeline of the cluster step status over time.-ssTimeline :: Lens' StepStatus (Maybe StepTimeline)-ssTimeline = lens _ssTimeline (\s a -> s { _ssTimeline = a })--instance FromJSON StepStatus where- parseJSON = withObject "StepStatus" $ \o -> StepStatus- <$> o .:? "State"- <*> o .:? "StateChangeReason"- <*> o .:? "Timeline"--instance ToJSON StepStatus where- toJSON StepStatus{..} = object- [ "State" .= _ssState- , "StateChangeReason" .= _ssStateChangeReason- , "Timeline" .= _ssTimeline- ]--data StepSummary = StepSummary- { _ssActionOnFailure :: Maybe ActionOnFailure- , _ssConfig :: Maybe HadoopStepConfig- , _ssId :: Maybe Text- , _ssName :: Maybe Text- , _ssStatus :: Maybe StepStatus- } deriving (Eq, Read, Show)---- | 'StepSummary' constructor.------ The fields accessible through corresponding lenses are:------ * 'ssActionOnFailure' @::@ 'Maybe' 'ActionOnFailure'------ * 'ssConfig' @::@ 'Maybe' 'HadoopStepConfig'------ * 'ssId' @::@ 'Maybe' 'Text'------ * 'ssName' @::@ 'Maybe' 'Text'------ * 'ssStatus' @::@ 'Maybe' 'StepStatus'----stepSummary :: StepSummary-stepSummary = StepSummary- { _ssId = Nothing- , _ssName = Nothing- , _ssConfig = Nothing- , _ssActionOnFailure = Nothing- , _ssStatus = Nothing- }---- | This specifies what action to take when the cluster step fails. Possible--- values are TERMINATE_CLUSTER, CANCEL_AND_WAIT, and CONTINUE.-ssActionOnFailure :: Lens' StepSummary (Maybe ActionOnFailure)-ssActionOnFailure =- lens _ssActionOnFailure (\s a -> s { _ssActionOnFailure = a })---- | The Hadoop job configuration of the cluster step.-ssConfig :: Lens' StepSummary (Maybe HadoopStepConfig)-ssConfig = lens _ssConfig (\s a -> s { _ssConfig = a })---- | The identifier of the cluster step.-ssId :: Lens' StepSummary (Maybe Text)-ssId = lens _ssId (\s a -> s { _ssId = a })---- | The name of the cluster step.-ssName :: Lens' StepSummary (Maybe Text)-ssName = lens _ssName (\s a -> s { _ssName = a })---- | The current execution status details of the cluster step.-ssStatus :: Lens' StepSummary (Maybe StepStatus)-ssStatus = lens _ssStatus (\s a -> s { _ssStatus = a })--instance FromJSON StepSummary where- parseJSON = withObject "StepSummary" $ \o -> StepSummary- <$> o .:? "ActionOnFailure"- <*> o .:? "Config"- <*> o .:? "Id"- <*> o .:? "Name"- <*> o .:? "Status"--instance ToJSON StepSummary where- toJSON StepSummary{..} = object- [ "Id" .= _ssId- , "Name" .= _ssName- , "Config" .= _ssConfig- , "ActionOnFailure" .= _ssActionOnFailure- , "Status" .= _ssStatus- ]--data InstanceGroupState- = IGSArrested -- ^ ARRESTED- | IGSBootstrapping -- ^ BOOTSTRAPPING- | IGSEnded -- ^ ENDED- | IGSProvisioning -- ^ PROVISIONING- | IGSResizing -- ^ RESIZING- | IGSRunning -- ^ RUNNING- | IGSShuttingDown -- ^ SHUTTING_DOWN- | IGSSuspended -- ^ SUSPENDED- | IGSTerminated -- ^ TERMINATED- | IGSTerminating -- ^ TERMINATING- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable InstanceGroupState--instance FromText InstanceGroupState where- parser = takeLowerText >>= \case- "arrested" -> pure IGSArrested- "bootstrapping" -> pure IGSBootstrapping- "ended" -> pure IGSEnded- "provisioning" -> pure IGSProvisioning- "resizing" -> pure IGSResizing- "running" -> pure IGSRunning- "shutting_down" -> pure IGSShuttingDown- "suspended" -> pure IGSSuspended- "terminated" -> pure IGSTerminated- "terminating" -> pure IGSTerminating- e -> fail $- "Failure parsing InstanceGroupState from " ++ show e--instance ToText InstanceGroupState where- toText = \case- IGSArrested -> "ARRESTED"- IGSBootstrapping -> "BOOTSTRAPPING"- IGSEnded -> "ENDED"- IGSProvisioning -> "PROVISIONING"- IGSResizing -> "RESIZING"- IGSRunning -> "RUNNING"- IGSShuttingDown -> "SHUTTING_DOWN"- IGSSuspended -> "SUSPENDED"- IGSTerminated -> "TERMINATED"- IGSTerminating -> "TERMINATING"--instance ToByteString InstanceGroupState-instance ToHeader InstanceGroupState-instance ToQuery InstanceGroupState--instance FromJSON InstanceGroupState where- parseJSON = parseJSONText "InstanceGroupState"--instance ToJSON InstanceGroupState where- toJSON = toJSONText--data StepTimeline = StepTimeline- { _stCreationDateTime :: Maybe POSIX- , _stEndDateTime :: Maybe POSIX- , _stStartDateTime :: Maybe POSIX- } deriving (Eq, Ord, Read, Show)---- | 'StepTimeline' constructor.------ The fields accessible through corresponding lenses are:------ * 'stCreationDateTime' @::@ 'Maybe' 'UTCTime'------ * 'stEndDateTime' @::@ 'Maybe' 'UTCTime'------ * 'stStartDateTime' @::@ 'Maybe' 'UTCTime'----stepTimeline :: StepTimeline-stepTimeline = StepTimeline- { _stCreationDateTime = Nothing- , _stStartDateTime = Nothing- , _stEndDateTime = Nothing- }---- | The date and time when the cluster step was created.-stCreationDateTime :: Lens' StepTimeline (Maybe UTCTime)-stCreationDateTime =- lens _stCreationDateTime (\s a -> s { _stCreationDateTime = a })- . mapping _Time---- | The date and time when the cluster step execution completed or failed.-stEndDateTime :: Lens' StepTimeline (Maybe UTCTime)-stEndDateTime = lens _stEndDateTime (\s a -> s { _stEndDateTime = a }) . mapping _Time---- | The date and time when the cluster step execution started.-stStartDateTime :: Lens' StepTimeline (Maybe UTCTime)-stStartDateTime = lens _stStartDateTime (\s a -> s { _stStartDateTime = a }) . mapping _Time--instance FromJSON StepTimeline where- parseJSON = withObject "StepTimeline" $ \o -> StepTimeline- <$> o .:? "CreationDateTime"- <*> o .:? "EndDateTime"- <*> o .:? "StartDateTime"--instance ToJSON StepTimeline where- toJSON StepTimeline{..} = object- [ "CreationDateTime" .= _stCreationDateTime- , "StartDateTime" .= _stStartDateTime- , "EndDateTime" .= _stEndDateTime- ]--newtype PlacementType = PlacementType- { _ptAvailabilityZone :: Text- } deriving (Eq, Ord, Read, Show, Monoid, IsString)---- | 'PlacementType' constructor.------ The fields accessible through corresponding lenses are:------ * 'ptAvailabilityZone' @::@ 'Text'----placementType :: Text -- ^ 'ptAvailabilityZone'- -> PlacementType-placementType p1 = PlacementType- { _ptAvailabilityZone = p1- }---- | The Amazon EC2 Availability Zone for the job flow.-ptAvailabilityZone :: Lens' PlacementType Text-ptAvailabilityZone =- lens _ptAvailabilityZone (\s a -> s { _ptAvailabilityZone = a })--instance FromJSON PlacementType where- parseJSON = withObject "PlacementType" $ \o -> PlacementType- <$> o .: "AvailabilityZone"--instance ToJSON PlacementType where- toJSON PlacementType{..} = object- [ "AvailabilityZone" .= _ptAvailabilityZone- ]--data HadoopJarStepConfig = HadoopJarStepConfig- { _hjscArgs :: List "Args" Text- , _hjscJar :: Text- , _hjscMainClass :: Maybe Text- , _hjscProperties :: List "Properties" KeyValue- } deriving (Eq, Read, Show)---- | 'HadoopJarStepConfig' constructor.------ The fields accessible through corresponding lenses are:------ * 'hjscArgs' @::@ ['Text']------ * 'hjscJar' @::@ 'Text'------ * 'hjscMainClass' @::@ 'Maybe' 'Text'------ * 'hjscProperties' @::@ ['KeyValue']----hadoopJarStepConfig :: Text -- ^ 'hjscJar'- -> HadoopJarStepConfig-hadoopJarStepConfig p1 = HadoopJarStepConfig- { _hjscJar = p1- , _hjscProperties = mempty- , _hjscMainClass = Nothing- , _hjscArgs = mempty- }---- | A list of command line arguments passed to the JAR file's main function when--- executed.-hjscArgs :: Lens' HadoopJarStepConfig [Text]-hjscArgs = lens _hjscArgs (\s a -> s { _hjscArgs = a }) . _List---- | A path to a JAR file run during the step.-hjscJar :: Lens' HadoopJarStepConfig Text-hjscJar = lens _hjscJar (\s a -> s { _hjscJar = a })---- | The name of the main class in the specified Java file. If not specified, the--- JAR file should specify a Main-Class in its manifest file.-hjscMainClass :: Lens' HadoopJarStepConfig (Maybe Text)-hjscMainClass = lens _hjscMainClass (\s a -> s { _hjscMainClass = a })---- | A list of Java properties that are set when the step runs. You can use these--- properties to pass key value pairs to your main function.-hjscProperties :: Lens' HadoopJarStepConfig [KeyValue]-hjscProperties = lens _hjscProperties (\s a -> s { _hjscProperties = a }) . _List--instance FromJSON HadoopJarStepConfig where- parseJSON = withObject "HadoopJarStepConfig" $ \o -> HadoopJarStepConfig- <$> o .:? "Args" .!= mempty- <*> o .: "Jar"- <*> o .:? "MainClass"- <*> o .:? "Properties" .!= mempty--instance ToJSON HadoopJarStepConfig where- toJSON HadoopJarStepConfig{..} = object- [ "Properties" .= _hjscProperties- , "Jar" .= _hjscJar- , "MainClass" .= _hjscMainClass- , "Args" .= _hjscArgs- ]--data InstanceGroupModifyConfig = InstanceGroupModifyConfig- { _igmcEC2InstanceIdsToTerminate :: List "EC2InstanceIdsToTerminate" Text- , _igmcInstanceCount :: Maybe Int- , _igmcInstanceGroupId :: Text- } deriving (Eq, Ord, Read, Show)---- | 'InstanceGroupModifyConfig' constructor.------ The fields accessible through corresponding lenses are:------ * 'igmcEC2InstanceIdsToTerminate' @::@ ['Text']------ * 'igmcInstanceCount' @::@ 'Maybe' 'Int'------ * 'igmcInstanceGroupId' @::@ 'Text'----instanceGroupModifyConfig :: Text -- ^ 'igmcInstanceGroupId'- -> InstanceGroupModifyConfig-instanceGroupModifyConfig p1 = InstanceGroupModifyConfig- { _igmcInstanceGroupId = p1- , _igmcInstanceCount = Nothing- , _igmcEC2InstanceIdsToTerminate = mempty- }---- | The EC2 InstanceIds to terminate. For advanced users only. Once you terminate--- the instances, the instance group will not return to its original requested--- size.-igmcEC2InstanceIdsToTerminate :: Lens' InstanceGroupModifyConfig [Text]-igmcEC2InstanceIdsToTerminate =- lens _igmcEC2InstanceIdsToTerminate- (\s a -> s { _igmcEC2InstanceIdsToTerminate = a })- . _List---- | Target size for the instance group.-igmcInstanceCount :: Lens' InstanceGroupModifyConfig (Maybe Int)-igmcInstanceCount =- lens _igmcInstanceCount (\s a -> s { _igmcInstanceCount = a })---- | Unique ID of the instance group to expand or shrink.-igmcInstanceGroupId :: Lens' InstanceGroupModifyConfig Text-igmcInstanceGroupId =- lens _igmcInstanceGroupId (\s a -> s { _igmcInstanceGroupId = a })--instance FromJSON InstanceGroupModifyConfig where- parseJSON = withObject "InstanceGroupModifyConfig" $ \o -> InstanceGroupModifyConfig- <$> o .:? "EC2InstanceIdsToTerminate" .!= mempty- <*> o .:? "InstanceCount"- <*> o .: "InstanceGroupId"--instance ToJSON InstanceGroupModifyConfig where- toJSON InstanceGroupModifyConfig{..} = object- [ "InstanceGroupId" .= _igmcInstanceGroupId- , "InstanceCount" .= _igmcInstanceCount- , "EC2InstanceIdsToTerminate" .= _igmcEC2InstanceIdsToTerminate- ]--data InstanceGroupDetail = InstanceGroupDetail- { _igdBidPrice :: Maybe Text- , _igdCreationDateTime :: POSIX- , _igdEndDateTime :: Maybe POSIX- , _igdInstanceGroupId :: Maybe Text- , _igdInstanceRequestCount :: Int- , _igdInstanceRole :: InstanceRoleType- , _igdInstanceRunningCount :: Int- , _igdInstanceType :: Text- , _igdLastStateChangeReason :: Maybe Text- , _igdMarket :: MarketType- , _igdName :: Maybe Text- , _igdReadyDateTime :: Maybe POSIX- , _igdStartDateTime :: Maybe POSIX- , _igdState :: InstanceGroupState- } deriving (Eq, Read, Show)---- | 'InstanceGroupDetail' constructor.------ The fields accessible through corresponding lenses are:------ * 'igdBidPrice' @::@ 'Maybe' 'Text'------ * 'igdCreationDateTime' @::@ 'UTCTime'------ * 'igdEndDateTime' @::@ 'Maybe' 'UTCTime'------ * 'igdInstanceGroupId' @::@ 'Maybe' 'Text'------ * 'igdInstanceRequestCount' @::@ 'Int'------ * 'igdInstanceRole' @::@ 'InstanceRoleType'------ * 'igdInstanceRunningCount' @::@ 'Int'------ * 'igdInstanceType' @::@ 'Text'------ * 'igdLastStateChangeReason' @::@ 'Maybe' 'Text'------ * 'igdMarket' @::@ 'MarketType'------ * 'igdName' @::@ 'Maybe' 'Text'------ * 'igdReadyDateTime' @::@ 'Maybe' 'UTCTime'------ * 'igdStartDateTime' @::@ 'Maybe' 'UTCTime'------ * 'igdState' @::@ 'InstanceGroupState'----instanceGroupDetail :: MarketType -- ^ 'igdMarket'- -> InstanceRoleType -- ^ 'igdInstanceRole'- -> Text -- ^ 'igdInstanceType'- -> Int -- ^ 'igdInstanceRequestCount'- -> Int -- ^ 'igdInstanceRunningCount'- -> InstanceGroupState -- ^ 'igdState'- -> UTCTime -- ^ 'igdCreationDateTime'- -> InstanceGroupDetail-instanceGroupDetail p1 p2 p3 p4 p5 p6 p7 = InstanceGroupDetail- { _igdMarket = p1- , _igdInstanceRole = p2- , _igdInstanceType = p3- , _igdInstanceRequestCount = p4- , _igdInstanceRunningCount = p5- , _igdState = p6- , _igdCreationDateTime = withIso _Time (const id) p7- , _igdInstanceGroupId = Nothing- , _igdName = Nothing- , _igdBidPrice = Nothing- , _igdLastStateChangeReason = Nothing- , _igdStartDateTime = Nothing- , _igdReadyDateTime = Nothing- , _igdEndDateTime = Nothing- }---- | Bid price for EC2 Instances when launching nodes as Spot Instances, expressed--- in USD.-igdBidPrice :: Lens' InstanceGroupDetail (Maybe Text)-igdBidPrice = lens _igdBidPrice (\s a -> s { _igdBidPrice = a })---- | The date/time the instance group was created.-igdCreationDateTime :: Lens' InstanceGroupDetail UTCTime-igdCreationDateTime =- lens _igdCreationDateTime (\s a -> s { _igdCreationDateTime = a })- . _Time---- | The date/time the instance group was terminated.-igdEndDateTime :: Lens' InstanceGroupDetail (Maybe UTCTime)-igdEndDateTime = lens _igdEndDateTime (\s a -> s { _igdEndDateTime = a }) . mapping _Time---- | Unique identifier for the instance group.-igdInstanceGroupId :: Lens' InstanceGroupDetail (Maybe Text)-igdInstanceGroupId =- lens _igdInstanceGroupId (\s a -> s { _igdInstanceGroupId = a })---- | Target number of instances to run in the instance group.-igdInstanceRequestCount :: Lens' InstanceGroupDetail Int-igdInstanceRequestCount =- lens _igdInstanceRequestCount (\s a -> s { _igdInstanceRequestCount = a })---- | Instance group role in the cluster-igdInstanceRole :: Lens' InstanceGroupDetail InstanceRoleType-igdInstanceRole = lens _igdInstanceRole (\s a -> s { _igdInstanceRole = a })---- | Actual count of running instances.-igdInstanceRunningCount :: Lens' InstanceGroupDetail Int-igdInstanceRunningCount =- lens _igdInstanceRunningCount (\s a -> s { _igdInstanceRunningCount = a })---- | Amazon EC2 Instance type.-igdInstanceType :: Lens' InstanceGroupDetail Text-igdInstanceType = lens _igdInstanceType (\s a -> s { _igdInstanceType = a })---- | Details regarding the state of the instance group.-igdLastStateChangeReason :: Lens' InstanceGroupDetail (Maybe Text)-igdLastStateChangeReason =- lens _igdLastStateChangeReason- (\s a -> s { _igdLastStateChangeReason = a })---- | Market type of the Amazon EC2 instances used to create a cluster node.-igdMarket :: Lens' InstanceGroupDetail MarketType-igdMarket = lens _igdMarket (\s a -> s { _igdMarket = a })---- | Friendly name for the instance group.-igdName :: Lens' InstanceGroupDetail (Maybe Text)-igdName = lens _igdName (\s a -> s { _igdName = a })---- | The date/time the instance group was available to the cluster.-igdReadyDateTime :: Lens' InstanceGroupDetail (Maybe UTCTime)-igdReadyDateTime = lens _igdReadyDateTime (\s a -> s { _igdReadyDateTime = a }) . mapping _Time---- | The date/time the instance group was started.-igdStartDateTime :: Lens' InstanceGroupDetail (Maybe UTCTime)-igdStartDateTime = lens _igdStartDateTime (\s a -> s { _igdStartDateTime = a }) . mapping _Time---- | State of instance group. The following values are deprecated: STARTING,--- TERMINATED, and FAILED.-igdState :: Lens' InstanceGroupDetail InstanceGroupState-igdState = lens _igdState (\s a -> s { _igdState = a })--instance FromJSON InstanceGroupDetail where- parseJSON = withObject "InstanceGroupDetail" $ \o -> InstanceGroupDetail- <$> o .:? "BidPrice"- <*> o .: "CreationDateTime"- <*> o .:? "EndDateTime"- <*> o .:? "InstanceGroupId"- <*> o .: "InstanceRequestCount"- <*> o .: "InstanceRole"- <*> o .: "InstanceRunningCount"- <*> o .: "InstanceType"- <*> o .:? "LastStateChangeReason"- <*> o .: "Market"- <*> o .:? "Name"- <*> o .:? "ReadyDateTime"- <*> o .:? "StartDateTime"- <*> o .: "State"--instance ToJSON InstanceGroupDetail where- toJSON InstanceGroupDetail{..} = object- [ "InstanceGroupId" .= _igdInstanceGroupId- , "Name" .= _igdName- , "Market" .= _igdMarket- , "InstanceRole" .= _igdInstanceRole- , "BidPrice" .= _igdBidPrice- , "InstanceType" .= _igdInstanceType- , "InstanceRequestCount" .= _igdInstanceRequestCount- , "InstanceRunningCount" .= _igdInstanceRunningCount- , "State" .= _igdState- , "LastStateChangeReason" .= _igdLastStateChangeReason- , "CreationDateTime" .= _igdCreationDateTime- , "StartDateTime" .= _igdStartDateTime- , "ReadyDateTime" .= _igdReadyDateTime- , "EndDateTime" .= _igdEndDateTime- ]--data StepStateChangeReason = StepStateChangeReason- { _sscrCode :: Maybe StepStateChangeReasonCode- , _sscrMessage :: Maybe Text- } deriving (Eq, Read, Show)---- | 'StepStateChangeReason' constructor.------ The fields accessible through corresponding lenses are:------ * 'sscrCode' @::@ 'Maybe' 'StepStateChangeReasonCode'------ * 'sscrMessage' @::@ 'Maybe' 'Text'----stepStateChangeReason :: StepStateChangeReason-stepStateChangeReason = StepStateChangeReason- { _sscrCode = Nothing- , _sscrMessage = Nothing- }---- | The programmable code for the state change reason.-sscrCode :: Lens' StepStateChangeReason (Maybe StepStateChangeReasonCode)-sscrCode = lens _sscrCode (\s a -> s { _sscrCode = a })---- | The descriptive message for the state change reason.-sscrMessage :: Lens' StepStateChangeReason (Maybe Text)-sscrMessage = lens _sscrMessage (\s a -> s { _sscrMessage = a })--instance FromJSON StepStateChangeReason where- parseJSON = withObject "StepStateChangeReason" $ \o -> StepStateChangeReason- <$> o .:? "Code"- <*> o .:? "Message"--instance ToJSON StepStateChangeReason where- toJSON StepStateChangeReason{..} = object- [ "Code" .= _sscrCode- , "Message" .= _sscrMessage- ]--data ClusterStateChangeReasonCode- = CSCRCAllStepsCompleted -- ^ ALL_STEPS_COMPLETED- | CSCRCBootstrapFailure -- ^ BOOTSTRAP_FAILURE- | CSCRCInstanceFailure -- ^ INSTANCE_FAILURE- | CSCRCInternalError -- ^ INTERNAL_ERROR- | CSCRCStepFailure -- ^ STEP_FAILURE- | CSCRCUserRequest -- ^ USER_REQUEST- | CSCRCValidationError -- ^ VALIDATION_ERROR- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable ClusterStateChangeReasonCode--instance FromText ClusterStateChangeReasonCode where- parser = takeLowerText >>= \case- "all_steps_completed" -> pure CSCRCAllStepsCompleted- "bootstrap_failure" -> pure CSCRCBootstrapFailure- "instance_failure" -> pure CSCRCInstanceFailure- "internal_error" -> pure CSCRCInternalError- "step_failure" -> pure CSCRCStepFailure- "user_request" -> pure CSCRCUserRequest- "validation_error" -> pure CSCRCValidationError- e -> fail $- "Failure parsing ClusterStateChangeReasonCode from " ++ show e--instance ToText ClusterStateChangeReasonCode where- toText = \case- CSCRCAllStepsCompleted -> "ALL_STEPS_COMPLETED"- CSCRCBootstrapFailure -> "BOOTSTRAP_FAILURE"- CSCRCInstanceFailure -> "INSTANCE_FAILURE"- CSCRCInternalError -> "INTERNAL_ERROR"- CSCRCStepFailure -> "STEP_FAILURE"- CSCRCUserRequest -> "USER_REQUEST"- CSCRCValidationError -> "VALIDATION_ERROR"--instance ToByteString ClusterStateChangeReasonCode-instance ToHeader ClusterStateChangeReasonCode-instance ToQuery ClusterStateChangeReasonCode--instance FromJSON ClusterStateChangeReasonCode where- parseJSON = parseJSONText "ClusterStateChangeReasonCode"--instance ToJSON ClusterStateChangeReasonCode where- toJSON = toJSONText--data Step = Step- { _sActionOnFailure :: Maybe ActionOnFailure- , _sConfig :: Maybe HadoopStepConfig- , _sId :: Maybe Text- , _sName :: Maybe Text- , _sStatus :: Maybe StepStatus- } deriving (Eq, Read, Show)---- | 'Step' constructor.------ The fields accessible through corresponding lenses are:------ * 'sActionOnFailure' @::@ 'Maybe' 'ActionOnFailure'------ * 'sConfig' @::@ 'Maybe' 'HadoopStepConfig'------ * 'sId' @::@ 'Maybe' 'Text'------ * 'sName' @::@ 'Maybe' 'Text'------ * 'sStatus' @::@ 'Maybe' 'StepStatus'----step :: Step-step = Step- { _sId = Nothing- , _sName = Nothing- , _sConfig = Nothing- , _sActionOnFailure = Nothing- , _sStatus = Nothing- }---- | This specifies what action to take when the cluster step fails. Possible--- values are TERMINATE_CLUSTER, CANCEL_AND_WAIT, and CONTINUE.-sActionOnFailure :: Lens' Step (Maybe ActionOnFailure)-sActionOnFailure = lens _sActionOnFailure (\s a -> s { _sActionOnFailure = a })---- | The Hadoop job configuration of the cluster step.-sConfig :: Lens' Step (Maybe HadoopStepConfig)-sConfig = lens _sConfig (\s a -> s { _sConfig = a })---- | The identifier of the cluster step.-sId :: Lens' Step (Maybe Text)-sId = lens _sId (\s a -> s { _sId = a })---- | The name of the cluster step.-sName :: Lens' Step (Maybe Text)-sName = lens _sName (\s a -> s { _sName = a })---- | The current execution status details of the cluster step.-sStatus :: Lens' Step (Maybe StepStatus)-sStatus = lens _sStatus (\s a -> s { _sStatus = a })--instance FromJSON Step where- parseJSON = withObject "Step" $ \o -> Step- <$> o .:? "ActionOnFailure"- <*> o .:? "Config"- <*> o .:? "Id"- <*> o .:? "Name"- <*> o .:? "Status"--instance ToJSON Step where- toJSON Step{..} = object- [ "Id" .= _sId- , "Name" .= _sName- , "Config" .= _sConfig- , "ActionOnFailure" .= _sActionOnFailure- , "Status" .= _sStatus- ]--data StepState- = SSCancelled -- ^ CANCELLED- | SSCompleted -- ^ COMPLETED- | SSFailed -- ^ FAILED- | SSInterrupted -- ^ INTERRUPTED- | SSPending -- ^ PENDING- | SSRunning -- ^ RUNNING- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable StepState--instance FromText StepState where- parser = takeLowerText >>= \case- "cancelled" -> pure SSCancelled- "completed" -> pure SSCompleted- "failed" -> pure SSFailed- "interrupted" -> pure SSInterrupted- "pending" -> pure SSPending- "running" -> pure SSRunning- e -> fail $- "Failure parsing StepState from " ++ show e--instance ToText StepState where- toText = \case- SSCancelled -> "CANCELLED"- SSCompleted -> "COMPLETED"- SSFailed -> "FAILED"- SSInterrupted -> "INTERRUPTED"- SSPending -> "PENDING"- SSRunning -> "RUNNING"--instance ToByteString StepState-instance ToHeader StepState-instance ToQuery StepState--instance FromJSON StepState where- parseJSON = parseJSONText "StepState"--instance ToJSON StepState where- toJSON = toJSONText--data InstanceGroupTimeline = InstanceGroupTimeline- { _igtCreationDateTime :: Maybe POSIX- , _igtEndDateTime :: Maybe POSIX- , _igtReadyDateTime :: Maybe POSIX- } deriving (Eq, Ord, Read, Show)---- | 'InstanceGroupTimeline' constructor.------ The fields accessible through corresponding lenses are:------ * 'igtCreationDateTime' @::@ 'Maybe' 'UTCTime'------ * 'igtEndDateTime' @::@ 'Maybe' 'UTCTime'------ * 'igtReadyDateTime' @::@ 'Maybe' 'UTCTime'----instanceGroupTimeline :: InstanceGroupTimeline-instanceGroupTimeline = InstanceGroupTimeline- { _igtCreationDateTime = Nothing- , _igtReadyDateTime = Nothing- , _igtEndDateTime = Nothing- }---- | The creation date and time of the instance group.-igtCreationDateTime :: Lens' InstanceGroupTimeline (Maybe UTCTime)-igtCreationDateTime =- lens _igtCreationDateTime (\s a -> s { _igtCreationDateTime = a })- . mapping _Time---- | The date and time when the instance group terminated.-igtEndDateTime :: Lens' InstanceGroupTimeline (Maybe UTCTime)-igtEndDateTime = lens _igtEndDateTime (\s a -> s { _igtEndDateTime = a }) . mapping _Time---- | The date and time when the instance group became ready to perform tasks.-igtReadyDateTime :: Lens' InstanceGroupTimeline (Maybe UTCTime)-igtReadyDateTime = lens _igtReadyDateTime (\s a -> s { _igtReadyDateTime = a }) . mapping _Time--instance FromJSON InstanceGroupTimeline where- parseJSON = withObject "InstanceGroupTimeline" $ \o -> InstanceGroupTimeline- <$> o .:? "CreationDateTime"- <*> o .:? "EndDateTime"- <*> o .:? "ReadyDateTime"--instance ToJSON InstanceGroupTimeline where- toJSON InstanceGroupTimeline{..} = object- [ "CreationDateTime" .= _igtCreationDateTime- , "ReadyDateTime" .= _igtReadyDateTime- , "EndDateTime" .= _igtEndDateTime- ]--newtype BootstrapActionDetail = BootstrapActionDetail- { _badBootstrapActionConfig :: Maybe BootstrapActionConfig- } deriving (Eq, Read, Show)---- | 'BootstrapActionDetail' constructor.------ The fields accessible through corresponding lenses are:------ * 'badBootstrapActionConfig' @::@ 'Maybe' 'BootstrapActionConfig'----bootstrapActionDetail :: BootstrapActionDetail-bootstrapActionDetail = BootstrapActionDetail- { _badBootstrapActionConfig = Nothing- }---- | A description of the bootstrap action.-badBootstrapActionConfig :: Lens' BootstrapActionDetail (Maybe BootstrapActionConfig)-badBootstrapActionConfig =- lens _badBootstrapActionConfig- (\s a -> s { _badBootstrapActionConfig = a })--instance FromJSON BootstrapActionDetail where- parseJSON = withObject "BootstrapActionDetail" $ \o -> BootstrapActionDetail- <$> o .:? "BootstrapActionConfig"--instance ToJSON BootstrapActionDetail where- toJSON BootstrapActionDetail{..} = object- [ "BootstrapActionConfig" .= _badBootstrapActionConfig- ]--data StepExecutionStatusDetail = StepExecutionStatusDetail- { _sesdCreationDateTime :: POSIX- , _sesdEndDateTime :: Maybe POSIX- , _sesdLastStateChangeReason :: Maybe Text- , _sesdStartDateTime :: Maybe POSIX- , _sesdState :: StepExecutionState- } deriving (Eq, Read, Show)---- | 'StepExecutionStatusDetail' constructor.------ The fields accessible through corresponding lenses are:------ * 'sesdCreationDateTime' @::@ 'UTCTime'------ * 'sesdEndDateTime' @::@ 'Maybe' 'UTCTime'------ * 'sesdLastStateChangeReason' @::@ 'Maybe' 'Text'------ * 'sesdStartDateTime' @::@ 'Maybe' 'UTCTime'------ * 'sesdState' @::@ 'StepExecutionState'----stepExecutionStatusDetail :: StepExecutionState -- ^ 'sesdState'- -> UTCTime -- ^ 'sesdCreationDateTime'- -> StepExecutionStatusDetail-stepExecutionStatusDetail p1 p2 = StepExecutionStatusDetail- { _sesdState = p1- , _sesdCreationDateTime = withIso _Time (const id) p2- , _sesdStartDateTime = Nothing- , _sesdEndDateTime = Nothing- , _sesdLastStateChangeReason = Nothing- }---- | The creation date and time of the step.-sesdCreationDateTime :: Lens' StepExecutionStatusDetail UTCTime-sesdCreationDateTime =- lens _sesdCreationDateTime (\s a -> s { _sesdCreationDateTime = a })- . _Time---- | The completion date and time of the step.-sesdEndDateTime :: Lens' StepExecutionStatusDetail (Maybe UTCTime)-sesdEndDateTime = lens _sesdEndDateTime (\s a -> s { _sesdEndDateTime = a }) . mapping _Time---- | A description of the step's current state.-sesdLastStateChangeReason :: Lens' StepExecutionStatusDetail (Maybe Text)-sesdLastStateChangeReason =- lens _sesdLastStateChangeReason- (\s a -> s { _sesdLastStateChangeReason = a })---- | The start date and time of the step.-sesdStartDateTime :: Lens' StepExecutionStatusDetail (Maybe UTCTime)-sesdStartDateTime =- lens _sesdStartDateTime (\s a -> s { _sesdStartDateTime = a })- . mapping _Time---- | The state of the job flow step.-sesdState :: Lens' StepExecutionStatusDetail StepExecutionState-sesdState = lens _sesdState (\s a -> s { _sesdState = a })--instance FromJSON StepExecutionStatusDetail where- parseJSON = withObject "StepExecutionStatusDetail" $ \o -> StepExecutionStatusDetail- <$> o .: "CreationDateTime"- <*> o .:? "EndDateTime"- <*> o .:? "LastStateChangeReason"- <*> o .:? "StartDateTime"- <*> o .: "State"--instance ToJSON StepExecutionStatusDetail where- toJSON StepExecutionStatusDetail{..} = object- [ "State" .= _sesdState- , "CreationDateTime" .= _sesdCreationDateTime- , "StartDateTime" .= _sesdStartDateTime- , "EndDateTime" .= _sesdEndDateTime- , "LastStateChangeReason" .= _sesdLastStateChangeReason- ]--data InstanceStatus = InstanceStatus- { _isState :: Maybe InstanceState- , _isStateChangeReason :: Maybe InstanceStateChangeReason- , _isTimeline :: Maybe InstanceTimeline- } deriving (Eq, Read, Show)---- | 'InstanceStatus' constructor.------ The fields accessible through corresponding lenses are:------ * 'isState' @::@ 'Maybe' 'InstanceState'------ * 'isStateChangeReason' @::@ 'Maybe' 'InstanceStateChangeReason'------ * 'isTimeline' @::@ 'Maybe' 'InstanceTimeline'----instanceStatus :: InstanceStatus-instanceStatus = InstanceStatus- { _isState = Nothing- , _isStateChangeReason = Nothing- , _isTimeline = Nothing- }---- | The current state of the instance.-isState :: Lens' InstanceStatus (Maybe InstanceState)-isState = lens _isState (\s a -> s { _isState = a })---- | The details of the status change reason for the instance.-isStateChangeReason :: Lens' InstanceStatus (Maybe InstanceStateChangeReason)-isStateChangeReason =- lens _isStateChangeReason (\s a -> s { _isStateChangeReason = a })---- | The timeline of the instance status over time.-isTimeline :: Lens' InstanceStatus (Maybe InstanceTimeline)-isTimeline = lens _isTimeline (\s a -> s { _isTimeline = a })--instance FromJSON InstanceStatus where- parseJSON = withObject "InstanceStatus" $ \o -> InstanceStatus- <$> o .:? "State"- <*> o .:? "StateChangeReason"- <*> o .:? "Timeline"--instance ToJSON InstanceStatus where- toJSON InstanceStatus{..} = object- [ "State" .= _isState- , "StateChangeReason" .= _isStateChangeReason- , "Timeline" .= _isTimeline- ]--data InstanceRoleType- = IRTCore -- ^ CORE- | IRTMaster -- ^ MASTER- | IRTTask -- ^ TASK- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable InstanceRoleType--instance FromText InstanceRoleType where- parser = takeLowerText >>= \case- "core" -> pure IRTCore- "master" -> pure IRTMaster- "task" -> pure IRTTask- e -> fail $- "Failure parsing InstanceRoleType from " ++ show e--instance ToText InstanceRoleType where- toText = \case- IRTCore -> "CORE"- IRTMaster -> "MASTER"- IRTTask -> "TASK"--instance ToByteString InstanceRoleType-instance ToHeader InstanceRoleType-instance ToQuery InstanceRoleType--instance FromJSON InstanceRoleType where- parseJSON = parseJSONText "InstanceRoleType"--instance ToJSON InstanceRoleType where- toJSON = toJSONText--data JobFlowInstancesConfig = JobFlowInstancesConfig- { _jficAdditionalMasterSecurityGroups :: List "AdditionalMasterSecurityGroups" Text- , _jficAdditionalSlaveSecurityGroups :: List "AdditionalSlaveSecurityGroups" Text- , _jficEc2KeyName :: Maybe Text- , _jficEc2SubnetId :: Maybe Text- , _jficEmrManagedMasterSecurityGroup :: Maybe Text- , _jficEmrManagedSlaveSecurityGroup :: Maybe Text- , _jficHadoopVersion :: Maybe Text- , _jficInstanceCount :: Maybe Int- , _jficInstanceGroups :: List "InstanceGroups" InstanceGroupConfig- , _jficKeepJobFlowAliveWhenNoSteps :: Maybe Bool- , _jficMasterInstanceType :: Maybe Text- , _jficPlacement :: Maybe PlacementType- , _jficSlaveInstanceType :: Maybe Text- , _jficTerminationProtected :: Maybe Bool- } deriving (Eq, Read, Show)---- | 'JobFlowInstancesConfig' constructor.------ The fields accessible through corresponding lenses are:------ * 'jficAdditionalMasterSecurityGroups' @::@ ['Text']------ * 'jficAdditionalSlaveSecurityGroups' @::@ ['Text']------ * 'jficEc2KeyName' @::@ 'Maybe' 'Text'------ * 'jficEc2SubnetId' @::@ 'Maybe' 'Text'------ * 'jficEmrManagedMasterSecurityGroup' @::@ 'Maybe' 'Text'------ * 'jficEmrManagedSlaveSecurityGroup' @::@ 'Maybe' 'Text'------ * 'jficHadoopVersion' @::@ 'Maybe' 'Text'------ * 'jficInstanceCount' @::@ 'Maybe' 'Int'------ * 'jficInstanceGroups' @::@ ['InstanceGroupConfig']------ * 'jficKeepJobFlowAliveWhenNoSteps' @::@ 'Maybe' 'Bool'------ * 'jficMasterInstanceType' @::@ 'Maybe' 'Text'------ * 'jficPlacement' @::@ 'Maybe' 'PlacementType'------ * 'jficSlaveInstanceType' @::@ 'Maybe' 'Text'------ * 'jficTerminationProtected' @::@ 'Maybe' 'Bool'----jobFlowInstancesConfig :: JobFlowInstancesConfig-jobFlowInstancesConfig = JobFlowInstancesConfig- { _jficMasterInstanceType = Nothing- , _jficSlaveInstanceType = Nothing- , _jficInstanceCount = Nothing- , _jficInstanceGroups = mempty- , _jficEc2KeyName = Nothing- , _jficPlacement = Nothing- , _jficKeepJobFlowAliveWhenNoSteps = Nothing- , _jficTerminationProtected = Nothing- , _jficHadoopVersion = Nothing- , _jficEc2SubnetId = Nothing- , _jficEmrManagedMasterSecurityGroup = Nothing- , _jficEmrManagedSlaveSecurityGroup = Nothing- , _jficAdditionalMasterSecurityGroups = mempty- , _jficAdditionalSlaveSecurityGroups = mempty- }---- | A list of additional Amazon EC2 security group IDs for the master node.-jficAdditionalMasterSecurityGroups :: Lens' JobFlowInstancesConfig [Text]-jficAdditionalMasterSecurityGroups =- lens _jficAdditionalMasterSecurityGroups- (\s a -> s { _jficAdditionalMasterSecurityGroups = a })- . _List---- | A list of additional Amazon EC2 security group IDs for the slave nodes.-jficAdditionalSlaveSecurityGroups :: Lens' JobFlowInstancesConfig [Text]-jficAdditionalSlaveSecurityGroups =- lens _jficAdditionalSlaveSecurityGroups- (\s a -> s { _jficAdditionalSlaveSecurityGroups = a })- . _List---- | The name of the Amazon EC2 key pair that can be used to ssh to the master--- node as the user called "hadoop."-jficEc2KeyName :: Lens' JobFlowInstancesConfig (Maybe Text)-jficEc2KeyName = lens _jficEc2KeyName (\s a -> s { _jficEc2KeyName = a })---- | To launch the job flow in Amazon Virtual Private Cloud (Amazon VPC), set--- this parameter to the identifier of the Amazon VPC subnet where you want the--- job flow to launch. If you do not specify this value, the job flow is--- launched in the normal Amazon Web Services cloud, outside of an Amazon VPC.------ Amazon VPC currently does not support cluster compute quadruple extra large--- (cc1.4xlarge) instances. Thus you cannot specify the cc1.4xlarge instance--- type for nodes of a job flow launched in a Amazon VPC.-jficEc2SubnetId :: Lens' JobFlowInstancesConfig (Maybe Text)-jficEc2SubnetId = lens _jficEc2SubnetId (\s a -> s { _jficEc2SubnetId = a })---- | The identifier of the Amazon EC2 security group (managed by Amazon--- ElasticMapReduce) for the master node.-jficEmrManagedMasterSecurityGroup :: Lens' JobFlowInstancesConfig (Maybe Text)-jficEmrManagedMasterSecurityGroup =- lens _jficEmrManagedMasterSecurityGroup- (\s a -> s { _jficEmrManagedMasterSecurityGroup = a })---- | The identifier of the Amazon EC2 security group (managed by Amazon--- ElasticMapReduce) for the slave nodes.-jficEmrManagedSlaveSecurityGroup :: Lens' JobFlowInstancesConfig (Maybe Text)-jficEmrManagedSlaveSecurityGroup =- lens _jficEmrManagedSlaveSecurityGroup- (\s a -> s { _jficEmrManagedSlaveSecurityGroup = a })---- | The Hadoop version for the job flow. Valid inputs are "0.18", "0.20",--- "0.20.205", "1.0.3", "2.2.0", or "2.4.0". If you do not set this value, the--- default of 0.18 is used, unless the AmiVersion parameter is set in the--- RunJobFlow call, in which case the default version of Hadoop for that AMI--- version is used.-jficHadoopVersion :: Lens' JobFlowInstancesConfig (Maybe Text)-jficHadoopVersion =- lens _jficHadoopVersion (\s a -> s { _jficHadoopVersion = a })---- | The number of Amazon EC2 instances used to execute the job flow.-jficInstanceCount :: Lens' JobFlowInstancesConfig (Maybe Int)-jficInstanceCount =- lens _jficInstanceCount (\s a -> s { _jficInstanceCount = a })---- | Configuration for the job flow's instance groups.-jficInstanceGroups :: Lens' JobFlowInstancesConfig [InstanceGroupConfig]-jficInstanceGroups =- lens _jficInstanceGroups (\s a -> s { _jficInstanceGroups = a })- . _List---- | Specifies whether the job flow should terminate after completing all steps.-jficKeepJobFlowAliveWhenNoSteps :: Lens' JobFlowInstancesConfig (Maybe Bool)-jficKeepJobFlowAliveWhenNoSteps =- lens _jficKeepJobFlowAliveWhenNoSteps- (\s a -> s { _jficKeepJobFlowAliveWhenNoSteps = a })---- | The EC2 instance type of the master node.-jficMasterInstanceType :: Lens' JobFlowInstancesConfig (Maybe Text)-jficMasterInstanceType =- lens _jficMasterInstanceType (\s a -> s { _jficMasterInstanceType = a })---- | The Availability Zone the job flow will run in.-jficPlacement :: Lens' JobFlowInstancesConfig (Maybe PlacementType)-jficPlacement = lens _jficPlacement (\s a -> s { _jficPlacement = a })---- | The EC2 instance type of the slave nodes.-jficSlaveInstanceType :: Lens' JobFlowInstancesConfig (Maybe Text)-jficSlaveInstanceType =- lens _jficSlaveInstanceType (\s a -> s { _jficSlaveInstanceType = 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.-jficTerminationProtected :: Lens' JobFlowInstancesConfig (Maybe Bool)-jficTerminationProtected =- lens _jficTerminationProtected- (\s a -> s { _jficTerminationProtected = a })--instance FromJSON JobFlowInstancesConfig where- parseJSON = withObject "JobFlowInstancesConfig" $ \o -> JobFlowInstancesConfig- <$> o .:? "AdditionalMasterSecurityGroups" .!= mempty- <*> o .:? "AdditionalSlaveSecurityGroups" .!= mempty- <*> o .:? "Ec2KeyName"- <*> o .:? "Ec2SubnetId"- <*> o .:? "EmrManagedMasterSecurityGroup"- <*> o .:? "EmrManagedSlaveSecurityGroup"- <*> o .:? "HadoopVersion"- <*> o .:? "InstanceCount"- <*> o .:? "InstanceGroups" .!= mempty- <*> o .:? "KeepJobFlowAliveWhenNoSteps"- <*> o .:? "MasterInstanceType"- <*> o .:? "Placement"- <*> o .:? "SlaveInstanceType"- <*> o .:? "TerminationProtected"--instance ToJSON JobFlowInstancesConfig where- toJSON JobFlowInstancesConfig{..} = object- [ "MasterInstanceType" .= _jficMasterInstanceType- , "SlaveInstanceType" .= _jficSlaveInstanceType- , "InstanceCount" .= _jficInstanceCount- , "InstanceGroups" .= _jficInstanceGroups- , "Ec2KeyName" .= _jficEc2KeyName- , "Placement" .= _jficPlacement- , "KeepJobFlowAliveWhenNoSteps" .= _jficKeepJobFlowAliveWhenNoSteps- , "TerminationProtected" .= _jficTerminationProtected- , "HadoopVersion" .= _jficHadoopVersion- , "Ec2SubnetId" .= _jficEc2SubnetId- , "EmrManagedMasterSecurityGroup" .= _jficEmrManagedMasterSecurityGroup- , "EmrManagedSlaveSecurityGroup" .= _jficEmrManagedSlaveSecurityGroup- , "AdditionalMasterSecurityGroups" .= _jficAdditionalMasterSecurityGroups- , "AdditionalSlaveSecurityGroups" .= _jficAdditionalSlaveSecurityGroups- ]--data StepConfig = StepConfig- { _scActionOnFailure :: Maybe ActionOnFailure- , _scHadoopJarStep :: HadoopJarStepConfig- , _scName :: Text- } deriving (Eq, Read, Show)---- | 'StepConfig' constructor.------ The fields accessible through corresponding lenses are:------ * 'scActionOnFailure' @::@ 'Maybe' 'ActionOnFailure'------ * 'scHadoopJarStep' @::@ 'HadoopJarStepConfig'------ * 'scName' @::@ 'Text'----stepConfig :: Text -- ^ 'scName'- -> HadoopJarStepConfig -- ^ 'scHadoopJarStep'- -> StepConfig-stepConfig p1 p2 = StepConfig- { _scName = p1- , _scHadoopJarStep = p2- , _scActionOnFailure = Nothing- }---- | The action to take if the job flow step fails.-scActionOnFailure :: Lens' StepConfig (Maybe ActionOnFailure)-scActionOnFailure =- lens _scActionOnFailure (\s a -> s { _scActionOnFailure = a })---- | The JAR file used for the job flow step.-scHadoopJarStep :: Lens' StepConfig HadoopJarStepConfig-scHadoopJarStep = lens _scHadoopJarStep (\s a -> s { _scHadoopJarStep = a })---- | The name of the job flow step.-scName :: Lens' StepConfig Text-scName = lens _scName (\s a -> s { _scName = a })--instance FromJSON StepConfig where- parseJSON = withObject "StepConfig" $ \o -> StepConfig- <$> o .:? "ActionOnFailure"- <*> o .: "HadoopJarStep"- <*> o .: "Name"--instance ToJSON StepConfig where- toJSON StepConfig{..} = object- [ "Name" .= _scName- , "ActionOnFailure" .= _scActionOnFailure- , "HadoopJarStep" .= _scHadoopJarStep- ]--data InstanceGroup = InstanceGroup- { _igBidPrice :: Maybe Text- , _igId :: Maybe Text- , _igInstanceGroupType :: Maybe InstanceGroupType- , _igInstanceType :: Maybe Text- , _igMarket :: Maybe MarketType- , _igName :: Maybe Text- , _igRequestedInstanceCount :: Maybe Int- , _igRunningInstanceCount :: Maybe Int- , _igStatus :: Maybe InstanceGroupStatus- } deriving (Eq, Read, Show)---- | 'InstanceGroup' constructor.------ The fields accessible through corresponding lenses are:------ * 'igBidPrice' @::@ 'Maybe' 'Text'------ * 'igId' @::@ 'Maybe' 'Text'------ * 'igInstanceGroupType' @::@ 'Maybe' 'InstanceGroupType'------ * 'igInstanceType' @::@ 'Maybe' 'Text'------ * 'igMarket' @::@ 'Maybe' 'MarketType'------ * 'igName' @::@ 'Maybe' 'Text'------ * 'igRequestedInstanceCount' @::@ 'Maybe' 'Int'------ * 'igRunningInstanceCount' @::@ 'Maybe' 'Int'------ * 'igStatus' @::@ 'Maybe' 'InstanceGroupStatus'----instanceGroup :: InstanceGroup-instanceGroup = InstanceGroup- { _igId = Nothing- , _igName = Nothing- , _igMarket = Nothing- , _igInstanceGroupType = Nothing- , _igBidPrice = Nothing- , _igInstanceType = Nothing- , _igRequestedInstanceCount = Nothing- , _igRunningInstanceCount = Nothing- , _igStatus = Nothing- }---- | The bid price for each EC2 instance in the instance group when launching--- nodes as Spot Instances, expressed in USD.-igBidPrice :: Lens' InstanceGroup (Maybe Text)-igBidPrice = lens _igBidPrice (\s a -> s { _igBidPrice = a })---- | The identifier of the instance group.-igId :: Lens' InstanceGroup (Maybe Text)-igId = lens _igId (\s a -> s { _igId = a })---- | The type of the instance group. Valid values are MASTER, CORE or TASK.-igInstanceGroupType :: Lens' InstanceGroup (Maybe InstanceGroupType)-igInstanceGroupType =- lens _igInstanceGroupType (\s a -> s { _igInstanceGroupType = a })---- | The EC2 instance type for all instances in the instance group.-igInstanceType :: Lens' InstanceGroup (Maybe Text)-igInstanceType = lens _igInstanceType (\s a -> s { _igInstanceType = a })---- | The marketplace to provision instances for this group. Valid values are--- ON_DEMAND or SPOT.-igMarket :: Lens' InstanceGroup (Maybe MarketType)-igMarket = lens _igMarket (\s a -> s { _igMarket = a })---- | The name of the instance group.-igName :: Lens' InstanceGroup (Maybe Text)-igName = lens _igName (\s a -> s { _igName = a })---- | The target number of instances for the instance group.-igRequestedInstanceCount :: Lens' InstanceGroup (Maybe Int)-igRequestedInstanceCount =- lens _igRequestedInstanceCount- (\s a -> s { _igRequestedInstanceCount = a })---- | The number of instances currently running in this instance group.-igRunningInstanceCount :: Lens' InstanceGroup (Maybe Int)-igRunningInstanceCount =- lens _igRunningInstanceCount (\s a -> s { _igRunningInstanceCount = a })---- | The current status of the instance group.-igStatus :: Lens' InstanceGroup (Maybe InstanceGroupStatus)-igStatus = lens _igStatus (\s a -> s { _igStatus = a })--instance FromJSON InstanceGroup where- parseJSON = withObject "InstanceGroup" $ \o -> InstanceGroup- <$> o .:? "BidPrice"- <*> o .:? "Id"- <*> o .:? "InstanceGroupType"- <*> o .:? "InstanceType"- <*> o .:? "Market"- <*> o .:? "Name"- <*> o .:? "RequestedInstanceCount"- <*> o .:? "RunningInstanceCount"- <*> o .:? "Status"--instance ToJSON InstanceGroup where- toJSON InstanceGroup{..} = object- [ "Id" .= _igId- , "Name" .= _igName- , "Market" .= _igMarket- , "InstanceGroupType" .= _igInstanceGroupType- , "BidPrice" .= _igBidPrice- , "InstanceType" .= _igInstanceType- , "RequestedInstanceCount" .= _igRequestedInstanceCount- , "RunningInstanceCount" .= _igRunningInstanceCount- , "Status" .= _igStatus- ]--data BootstrapActionConfig = BootstrapActionConfig- { _bacName :: Text- , _bacScriptBootstrapAction :: ScriptBootstrapActionConfig- } deriving (Eq, Read, Show)---- | 'BootstrapActionConfig' constructor.------ The fields accessible through corresponding lenses are:------ * 'bacName' @::@ 'Text'------ * 'bacScriptBootstrapAction' @::@ 'ScriptBootstrapActionConfig'----bootstrapActionConfig :: Text -- ^ 'bacName'- -> ScriptBootstrapActionConfig -- ^ 'bacScriptBootstrapAction'- -> BootstrapActionConfig-bootstrapActionConfig p1 p2 = BootstrapActionConfig- { _bacName = p1- , _bacScriptBootstrapAction = p2- }---- | The name of the bootstrap action.-bacName :: Lens' BootstrapActionConfig Text-bacName = lens _bacName (\s a -> s { _bacName = a })---- | The script run by the bootstrap action.-bacScriptBootstrapAction :: Lens' BootstrapActionConfig ScriptBootstrapActionConfig-bacScriptBootstrapAction =- lens _bacScriptBootstrapAction- (\s a -> s { _bacScriptBootstrapAction = a })--instance FromJSON BootstrapActionConfig where- parseJSON = withObject "BootstrapActionConfig" $ \o -> BootstrapActionConfig- <$> o .: "Name"- <*> o .: "ScriptBootstrapAction"--instance ToJSON BootstrapActionConfig where- toJSON BootstrapActionConfig{..} = object- [ "Name" .= _bacName- , "ScriptBootstrapAction" .= _bacScriptBootstrapAction- ]--data ClusterSummary = ClusterSummary- { _csId :: Maybe Text- , _csName :: Maybe Text- , _csNormalizedInstanceHours :: Maybe Int- , _csStatus :: Maybe ClusterStatus- } deriving (Eq, Read, Show)---- | 'ClusterSummary' constructor.------ The fields accessible through corresponding lenses are:------ * 'csId' @::@ 'Maybe' 'Text'------ * 'csName' @::@ 'Maybe' 'Text'------ * 'csNormalizedInstanceHours' @::@ 'Maybe' 'Int'------ * 'csStatus' @::@ 'Maybe' 'ClusterStatus'----clusterSummary :: ClusterSummary-clusterSummary = ClusterSummary- { _csId = Nothing- , _csName = Nothing- , _csStatus = Nothing- , _csNormalizedInstanceHours = Nothing- }---- | The unique identifier for the cluster.-csId :: Lens' ClusterSummary (Maybe Text)-csId = lens _csId (\s a -> s { _csId = a })---- | The name of the cluster.-csName :: Lens' ClusterSummary (Maybe Text)-csName = lens _csName (\s a -> s { _csName = a })---- | An approximation of the cost of the job flow, represented in m1.small/hours.--- This value is incremented one time for every hour an m1.small instance runs.--- Larger instances are weighted more, so an EC2 instance that is roughly four--- times more expensive would result in the normalized instance hours being--- incremented by four. This result is only an approximation and does not--- reflect the actual billing rate.-csNormalizedInstanceHours :: Lens' ClusterSummary (Maybe Int)-csNormalizedInstanceHours =- lens _csNormalizedInstanceHours- (\s a -> s { _csNormalizedInstanceHours = a })---- | The details about the current status of the cluster.-csStatus :: Lens' ClusterSummary (Maybe ClusterStatus)-csStatus = lens _csStatus (\s a -> s { _csStatus = a })--instance FromJSON ClusterSummary where- parseJSON = withObject "ClusterSummary" $ \o -> ClusterSummary- <$> o .:? "Id"- <*> o .:? "Name"- <*> o .:? "NormalizedInstanceHours"- <*> o .:? "Status"--instance ToJSON ClusterSummary where- toJSON ClusterSummary{..} = object- [ "Id" .= _csId- , "Name" .= _csName- , "Status" .= _csStatus- , "NormalizedInstanceHours" .= _csNormalizedInstanceHours- ]--data JobFlowInstancesDetail = JobFlowInstancesDetail- { _jfidEc2KeyName :: Maybe Text- , _jfidEc2SubnetId :: Maybe Text- , _jfidHadoopVersion :: Maybe Text- , _jfidInstanceCount :: Int- , _jfidInstanceGroups :: List "InstanceGroups" InstanceGroupDetail- , _jfidKeepJobFlowAliveWhenNoSteps :: Maybe Bool- , _jfidMasterInstanceId :: Maybe Text- , _jfidMasterInstanceType :: Text- , _jfidMasterPublicDnsName :: Maybe Text- , _jfidNormalizedInstanceHours :: Maybe Int- , _jfidPlacement :: Maybe PlacementType- , _jfidSlaveInstanceType :: Text- , _jfidTerminationProtected :: Maybe Bool- } deriving (Eq, Read, Show)---- | 'JobFlowInstancesDetail' constructor.------ The fields accessible through corresponding lenses are:------ * 'jfidEc2KeyName' @::@ 'Maybe' 'Text'------ * 'jfidEc2SubnetId' @::@ 'Maybe' 'Text'------ * 'jfidHadoopVersion' @::@ 'Maybe' 'Text'------ * 'jfidInstanceCount' @::@ 'Int'------ * 'jfidInstanceGroups' @::@ ['InstanceGroupDetail']------ * 'jfidKeepJobFlowAliveWhenNoSteps' @::@ 'Maybe' 'Bool'------ * 'jfidMasterInstanceId' @::@ 'Maybe' 'Text'------ * 'jfidMasterInstanceType' @::@ 'Text'------ * 'jfidMasterPublicDnsName' @::@ 'Maybe' 'Text'------ * 'jfidNormalizedInstanceHours' @::@ 'Maybe' 'Int'------ * 'jfidPlacement' @::@ 'Maybe' 'PlacementType'------ * 'jfidSlaveInstanceType' @::@ 'Text'------ * 'jfidTerminationProtected' @::@ 'Maybe' 'Bool'----jobFlowInstancesDetail :: Text -- ^ 'jfidMasterInstanceType'- -> Text -- ^ 'jfidSlaveInstanceType'- -> Int -- ^ 'jfidInstanceCount'- -> JobFlowInstancesDetail-jobFlowInstancesDetail p1 p2 p3 = JobFlowInstancesDetail- { _jfidMasterInstanceType = p1- , _jfidSlaveInstanceType = p2- , _jfidInstanceCount = p3- , _jfidMasterPublicDnsName = Nothing- , _jfidMasterInstanceId = Nothing- , _jfidInstanceGroups = mempty- , _jfidNormalizedInstanceHours = Nothing- , _jfidEc2KeyName = Nothing- , _jfidEc2SubnetId = Nothing- , _jfidPlacement = Nothing- , _jfidKeepJobFlowAliveWhenNoSteps = Nothing- , _jfidTerminationProtected = Nothing- , _jfidHadoopVersion = Nothing- }---- | The name of an Amazon EC2 key pair that can be used to ssh to the master node--- of job flow.-jfidEc2KeyName :: Lens' JobFlowInstancesDetail (Maybe Text)-jfidEc2KeyName = lens _jfidEc2KeyName (\s a -> s { _jfidEc2KeyName = a })---- | For job flows launched within Amazon Virtual Private Cloud, this value--- specifies the identifier of the subnet where the job flow was launched.-jfidEc2SubnetId :: Lens' JobFlowInstancesDetail (Maybe Text)-jfidEc2SubnetId = lens _jfidEc2SubnetId (\s a -> s { _jfidEc2SubnetId = a })---- | The Hadoop version for the job flow.-jfidHadoopVersion :: Lens' JobFlowInstancesDetail (Maybe Text)-jfidHadoopVersion =- lens _jfidHadoopVersion (\s a -> s { _jfidHadoopVersion = a })---- | The number of Amazon EC2 instances in the cluster. If the value is 1, the--- same instance serves as both the master and slave node. If the value is--- greater than 1, one instance is the master node and all others are slave--- nodes.-jfidInstanceCount :: Lens' JobFlowInstancesDetail Int-jfidInstanceCount =- lens _jfidInstanceCount (\s a -> s { _jfidInstanceCount = a })---- | Details about the job flow's instance groups.-jfidInstanceGroups :: Lens' JobFlowInstancesDetail [InstanceGroupDetail]-jfidInstanceGroups =- lens _jfidInstanceGroups (\s a -> s { _jfidInstanceGroups = a })- . _List---- | Specifies whether the job flow should terminate after completing all steps.-jfidKeepJobFlowAliveWhenNoSteps :: Lens' JobFlowInstancesDetail (Maybe Bool)-jfidKeepJobFlowAliveWhenNoSteps =- lens _jfidKeepJobFlowAliveWhenNoSteps- (\s a -> s { _jfidKeepJobFlowAliveWhenNoSteps = a })---- | The Amazon EC2 instance identifier of the master node.-jfidMasterInstanceId :: Lens' JobFlowInstancesDetail (Maybe Text)-jfidMasterInstanceId =- lens _jfidMasterInstanceId (\s a -> s { _jfidMasterInstanceId = a })---- | The Amazon EC2 master node instance type.-jfidMasterInstanceType :: Lens' JobFlowInstancesDetail Text-jfidMasterInstanceType =- lens _jfidMasterInstanceType (\s a -> s { _jfidMasterInstanceType = a })---- | The DNS name of the master node.-jfidMasterPublicDnsName :: Lens' JobFlowInstancesDetail (Maybe Text)-jfidMasterPublicDnsName =- lens _jfidMasterPublicDnsName (\s a -> s { _jfidMasterPublicDnsName = a })---- | An approximation of the cost of the job flow, represented in m1.small/hours.--- This value is incremented once for every hour an m1.small runs. Larger--- instances are weighted more, so an Amazon EC2 instance that is roughly four--- times more expensive would result in the normalized instance hours being--- incremented by four. This result is only an approximation and does not--- reflect the actual billing rate.-jfidNormalizedInstanceHours :: Lens' JobFlowInstancesDetail (Maybe Int)-jfidNormalizedInstanceHours =- lens _jfidNormalizedInstanceHours- (\s a -> s { _jfidNormalizedInstanceHours = a })---- | The Amazon EC2 Availability Zone for the job flow.-jfidPlacement :: Lens' JobFlowInstancesDetail (Maybe PlacementType)-jfidPlacement = lens _jfidPlacement (\s a -> s { _jfidPlacement = a })---- | The Amazon EC2 slave node instance type.-jfidSlaveInstanceType :: Lens' JobFlowInstancesDetail Text-jfidSlaveInstanceType =- lens _jfidSlaveInstanceType (\s a -> s { _jfidSlaveInstanceType = a })---- | Specifies whether the Amazon EC2 instances in the cluster are protected from--- termination by API calls, user intervention, or in the event of a job flow--- error.-jfidTerminationProtected :: Lens' JobFlowInstancesDetail (Maybe Bool)-jfidTerminationProtected =- lens _jfidTerminationProtected- (\s a -> s { _jfidTerminationProtected = a })--instance FromJSON JobFlowInstancesDetail where- parseJSON = withObject "JobFlowInstancesDetail" $ \o -> JobFlowInstancesDetail- <$> o .:? "Ec2KeyName"- <*> o .:? "Ec2SubnetId"- <*> o .:? "HadoopVersion"- <*> o .: "InstanceCount"- <*> o .:? "InstanceGroups" .!= mempty- <*> o .:? "KeepJobFlowAliveWhenNoSteps"- <*> o .:? "MasterInstanceId"- <*> o .: "MasterInstanceType"- <*> o .:? "MasterPublicDnsName"- <*> o .:? "NormalizedInstanceHours"- <*> o .:? "Placement"- <*> o .: "SlaveInstanceType"- <*> o .:? "TerminationProtected"--instance ToJSON JobFlowInstancesDetail where- toJSON JobFlowInstancesDetail{..} = object- [ "MasterInstanceType" .= _jfidMasterInstanceType- , "MasterPublicDnsName" .= _jfidMasterPublicDnsName- , "MasterInstanceId" .= _jfidMasterInstanceId- , "SlaveInstanceType" .= _jfidSlaveInstanceType- , "InstanceCount" .= _jfidInstanceCount- , "InstanceGroups" .= _jfidInstanceGroups- , "NormalizedInstanceHours" .= _jfidNormalizedInstanceHours- , "Ec2KeyName" .= _jfidEc2KeyName- , "Ec2SubnetId" .= _jfidEc2SubnetId- , "Placement" .= _jfidPlacement- , "KeepJobFlowAliveWhenNoSteps" .= _jfidKeepJobFlowAliveWhenNoSteps- , "TerminationProtected" .= _jfidTerminationProtected- , "HadoopVersion" .= _jfidHadoopVersion- ]--data ClusterStatus = ClusterStatus- { _csState :: Maybe ClusterState- , _csStateChangeReason :: Maybe ClusterStateChangeReason- , _csTimeline :: Maybe ClusterTimeline- } deriving (Eq, Read, Show)---- | 'ClusterStatus' constructor.------ The fields accessible through corresponding lenses are:------ * 'csState' @::@ 'Maybe' 'ClusterState'------ * 'csStateChangeReason' @::@ 'Maybe' 'ClusterStateChangeReason'------ * 'csTimeline' @::@ 'Maybe' 'ClusterTimeline'----clusterStatus :: ClusterStatus-clusterStatus = ClusterStatus- { _csState = Nothing- , _csStateChangeReason = Nothing- , _csTimeline = Nothing- }---- | The current state of the cluster.-csState :: Lens' ClusterStatus (Maybe ClusterState)-csState = lens _csState (\s a -> s { _csState = a })---- | The reason for the cluster status change.-csStateChangeReason :: Lens' ClusterStatus (Maybe ClusterStateChangeReason)-csStateChangeReason =- lens _csStateChangeReason (\s a -> s { _csStateChangeReason = a })---- | A timeline that represents the status of a cluster over the lifetime of the--- cluster.-csTimeline :: Lens' ClusterStatus (Maybe ClusterTimeline)-csTimeline = lens _csTimeline (\s a -> s { _csTimeline = a })--instance FromJSON ClusterStatus where- parseJSON = withObject "ClusterStatus" $ \o -> ClusterStatus- <$> o .:? "State"- <*> o .:? "StateChangeReason"- <*> o .:? "Timeline"--instance ToJSON ClusterStatus where- toJSON ClusterStatus{..} = object- [ "State" .= _csState- , "StateChangeReason" .= _csStateChangeReason- , "Timeline" .= _csTimeline- ]--data InstanceState- = ISAwaitingFulfillment -- ^ AWAITING_FULFILLMENT- | ISBootstrapping -- ^ BOOTSTRAPPING- | ISProvisioning -- ^ PROVISIONING- | ISRunning -- ^ RUNNING- | ISTerminated -- ^ TERMINATED- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable InstanceState--instance FromText InstanceState where- parser = takeLowerText >>= \case- "awaiting_fulfillment" -> pure ISAwaitingFulfillment- "bootstrapping" -> pure ISBootstrapping- "provisioning" -> pure ISProvisioning- "running" -> pure ISRunning- "terminated" -> pure ISTerminated- e -> fail $- "Failure parsing InstanceState from " ++ show e--instance ToText InstanceState where- toText = \case- ISAwaitingFulfillment -> "AWAITING_FULFILLMENT"- ISBootstrapping -> "BOOTSTRAPPING"- ISProvisioning -> "PROVISIONING"- ISRunning -> "RUNNING"- ISTerminated -> "TERMINATED"--instance ToByteString InstanceState-instance ToHeader InstanceState-instance ToQuery InstanceState--instance FromJSON InstanceState where- parseJSON = parseJSONText "InstanceState"--instance ToJSON InstanceState where- toJSON = toJSONText--data ClusterTimeline = ClusterTimeline- { _ctCreationDateTime :: Maybe POSIX- , _ctEndDateTime :: Maybe POSIX- , _ctReadyDateTime :: Maybe POSIX- } deriving (Eq, Ord, Read, Show)---- | 'ClusterTimeline' constructor.------ The fields accessible through corresponding lenses are:------ * 'ctCreationDateTime' @::@ 'Maybe' 'UTCTime'------ * 'ctEndDateTime' @::@ 'Maybe' 'UTCTime'------ * 'ctReadyDateTime' @::@ 'Maybe' 'UTCTime'----clusterTimeline :: ClusterTimeline-clusterTimeline = ClusterTimeline- { _ctCreationDateTime = Nothing- , _ctReadyDateTime = Nothing- , _ctEndDateTime = Nothing- }---- | The creation date and time of the cluster.-ctCreationDateTime :: Lens' ClusterTimeline (Maybe UTCTime)-ctCreationDateTime =- lens _ctCreationDateTime (\s a -> s { _ctCreationDateTime = a })- . mapping _Time---- | The date and time when the cluster was terminated.-ctEndDateTime :: Lens' ClusterTimeline (Maybe UTCTime)-ctEndDateTime = lens _ctEndDateTime (\s a -> s { _ctEndDateTime = a }) . mapping _Time---- | The date and time when the cluster was ready to execute steps.-ctReadyDateTime :: Lens' ClusterTimeline (Maybe UTCTime)-ctReadyDateTime = lens _ctReadyDateTime (\s a -> s { _ctReadyDateTime = a }) . mapping _Time--instance FromJSON ClusterTimeline where- parseJSON = withObject "ClusterTimeline" $ \o -> ClusterTimeline- <$> o .:? "CreationDateTime"- <*> o .:? "EndDateTime"- <*> o .:? "ReadyDateTime"--instance ToJSON ClusterTimeline where- toJSON ClusterTimeline{..} = object- [ "CreationDateTime" .= _ctCreationDateTime- , "ReadyDateTime" .= _ctReadyDateTime- , "EndDateTime" .= _ctEndDateTime- ]--data InstanceStateChangeReasonCode- = ISCRCBootstrapFailure -- ^ BOOTSTRAP_FAILURE- | ISCRCClusterTerminated -- ^ CLUSTER_TERMINATED- | ISCRCInstanceFailure -- ^ INSTANCE_FAILURE- | ISCRCInternalError -- ^ INTERNAL_ERROR- | ISCRCValidationError -- ^ VALIDATION_ERROR- deriving (Eq, Ord, Read, Show, Generic, Enum)--instance Hashable InstanceStateChangeReasonCode--instance FromText InstanceStateChangeReasonCode where- parser = takeLowerText >>= \case- "bootstrap_failure" -> pure ISCRCBootstrapFailure- "cluster_terminated" -> pure ISCRCClusterTerminated- "instance_failure" -> pure ISCRCInstanceFailure- "internal_error" -> pure ISCRCInternalError- "validation_error" -> pure ISCRCValidationError- e -> fail $- "Failure parsing InstanceStateChangeReasonCode from " ++ show e--instance ToText InstanceStateChangeReasonCode where- toText = \case- ISCRCBootstrapFailure -> "BOOTSTRAP_FAILURE"- ISCRCClusterTerminated -> "CLUSTER_TERMINATED"- ISCRCInstanceFailure -> "INSTANCE_FAILURE"- ISCRCInternalError -> "INTERNAL_ERROR"- ISCRCValidationError -> "VALIDATION_ERROR"--instance ToByteString InstanceStateChangeReasonCode-instance ToHeader InstanceStateChangeReasonCode-instance ToQuery InstanceStateChangeReasonCode--instance FromJSON InstanceStateChangeReasonCode where- parseJSON = parseJSONText "InstanceStateChangeReasonCode"--instance ToJSON InstanceStateChangeReasonCode where- toJSON = toJSONText--data Instance = Instance- { _iEc2InstanceId :: Maybe Text- , _iId :: Maybe Text- , _iPrivateDnsName :: Maybe Text- , _iPrivateIpAddress :: Maybe Text- , _iPublicDnsName :: Maybe Text- , _iPublicIpAddress :: Maybe Text- , _iStatus :: Maybe InstanceStatus- } deriving (Eq, Read, Show)---- | 'Instance' constructor.------ The fields accessible through corresponding lenses are:------ * 'iEc2InstanceId' @::@ 'Maybe' 'Text'------ * 'iId' @::@ 'Maybe' 'Text'------ * 'iPrivateDnsName' @::@ 'Maybe' 'Text'------ * 'iPrivateIpAddress' @::@ 'Maybe' 'Text'------ * 'iPublicDnsName' @::@ 'Maybe' 'Text'------ * 'iPublicIpAddress' @::@ 'Maybe' 'Text'------ * 'iStatus' @::@ 'Maybe' 'InstanceStatus'----instance' :: Instance-instance' = Instance- { _iId = Nothing- , _iEc2InstanceId = Nothing- , _iPublicDnsName = Nothing- , _iPublicIpAddress = Nothing- , _iPrivateDnsName = Nothing- , _iPrivateIpAddress = Nothing- , _iStatus = Nothing- }---- | The unique identifier of the instance in Amazon EC2.-iEc2InstanceId :: Lens' Instance (Maybe Text)-iEc2InstanceId = lens _iEc2InstanceId (\s a -> s { _iEc2InstanceId = a })---- | The unique identifier for the instance in Amazon EMR.-iId :: Lens' Instance (Maybe Text)-iId = lens _iId (\s a -> s { _iId = a })---- | The private DNS name of the instance.-iPrivateDnsName :: Lens' Instance (Maybe Text)-iPrivateDnsName = lens _iPrivateDnsName (\s a -> s { _iPrivateDnsName = a })---- | The private IP address of the instance.-iPrivateIpAddress :: Lens' Instance (Maybe Text)-iPrivateIpAddress =- lens _iPrivateIpAddress (\s a -> s { _iPrivateIpAddress = a })---- | The public DNS name of the instance.-iPublicDnsName :: Lens' Instance (Maybe Text)-iPublicDnsName = lens _iPublicDnsName (\s a -> s { _iPublicDnsName = a })---- | The public IP address of the instance.-iPublicIpAddress :: Lens' Instance (Maybe Text)-iPublicIpAddress = lens _iPublicIpAddress (\s a -> s { _iPublicIpAddress = a })---- | The current status of the instance.-iStatus :: Lens' Instance (Maybe InstanceStatus)-iStatus = lens _iStatus (\s a -> s { _iStatus = a })--instance FromJSON Instance where- parseJSON = withObject "Instance" $ \o -> Instance- <$> o .:? "Ec2InstanceId"- <*> o .:? "Id"- <*> o .:? "PrivateDnsName"- <*> o .:? "PrivateIpAddress"- <*> o .:? "PublicDnsName"- <*> o .:? "PublicIpAddress"- <*> o .:? "Status"--instance ToJSON Instance where- toJSON Instance{..} = object- [ "Id" .= _iId- , "Ec2InstanceId" .= _iEc2InstanceId- , "PublicDnsName" .= _iPublicDnsName- , "PublicIpAddress" .= _iPublicIpAddress- , "PrivateDnsName" .= _iPrivateDnsName- , "PrivateIpAddress" .= _iPrivateIpAddress- , "Status" .= _iStatus- ]--data ScriptBootstrapActionConfig = ScriptBootstrapActionConfig- { _sbacArgs :: List "Args" Text- , _sbacPath :: Text- } deriving (Eq, Ord, Read, Show)---- | 'ScriptBootstrapActionConfig' constructor.------ The fields accessible through corresponding lenses are:------ * 'sbacArgs' @::@ ['Text']------ * 'sbacPath' @::@ 'Text'----scriptBootstrapActionConfig :: Text -- ^ 'sbacPath'- -> ScriptBootstrapActionConfig-scriptBootstrapActionConfig p1 = ScriptBootstrapActionConfig- { _sbacPath = p1- , _sbacArgs = mempty- }---- | A list of command line arguments to pass to the bootstrap action script.-sbacArgs :: Lens' ScriptBootstrapActionConfig [Text]-sbacArgs = lens _sbacArgs (\s a -> s { _sbacArgs = a }) . _List---- | Location of the script to run during a bootstrap action. Can be either a--- location in Amazon S3 or on a local file system.-sbacPath :: Lens' ScriptBootstrapActionConfig Text-sbacPath = lens _sbacPath (\s a -> s { _sbacPath = a })--instance FromJSON ScriptBootstrapActionConfig where- parseJSON = withObject "ScriptBootstrapActionConfig" $ \o -> ScriptBootstrapActionConfig- <$> o .:? "Args" .!= mempty- <*> o .: "Path"--instance ToJSON ScriptBootstrapActionConfig where- toJSON ScriptBootstrapActionConfig{..} = object- [ "Path" .= _sbacPath- , "Args" .= _sbacArgs- ]+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TypeFamilies #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.EMR.Types+-- Copyright : (c) 2013-2015 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)+--+module Network.AWS.EMR.Types+ (+ -- * Service+ EMR++ -- * Errors+ , _InvalidRequestException+ , _InternalServerError+ , _InternalServerException++ -- * ActionOnFailure+ , ActionOnFailure (..)++ -- * ClusterState+ , ClusterState (..)++ -- * ClusterStateChangeReasonCode+ , ClusterStateChangeReasonCode (..)++ -- * InstanceGroupState+ , InstanceGroupState (..)++ -- * InstanceGroupStateChangeReasonCode+ , InstanceGroupStateChangeReasonCode (..)++ -- * InstanceGroupType+ , InstanceGroupType (..)++ -- * InstanceRoleType+ , InstanceRoleType (..)++ -- * InstanceState+ , InstanceState (..)++ -- * InstanceStateChangeReasonCode+ , InstanceStateChangeReasonCode (..)++ -- * MarketType+ , MarketType (..)++ -- * StepState+ , StepState (..)++ -- * StepStateChangeReasonCode+ , StepStateChangeReasonCode (..)++ -- * Application+ , Application+ , application+ , aAdditionalInfo+ , aArgs+ , aName+ , aVersion++ -- * BootstrapActionConfig+ , BootstrapActionConfig+ , bootstrapActionConfig+ , bacName+ , bacScriptBootstrapAction++ -- * Cluster+ , Cluster+ , cluster+ , cluRequestedAMIVersion+ , cluEC2InstanceAttributes+ , cluNormalizedInstanceHours+ , cluConfigurations+ , cluReleaseLabel+ , cluLogURI+ , cluRunningAMIVersion+ , cluMasterPublicDNSName+ , cluAutoTerminate+ , cluTerminationProtected+ , cluVisibleToAllUsers+ , cluApplications+ , cluTags+ , cluServiceRole+ , cluId+ , cluName+ , cluStatus++ -- * ClusterStateChangeReason+ , ClusterStateChangeReason+ , clusterStateChangeReason+ , cscrCode+ , cscrMessage++ -- * ClusterStatus+ , ClusterStatus+ , clusterStatus+ , csState+ , csStateChangeReason+ , csTimeline++ -- * ClusterSummary+ , ClusterSummary+ , clusterSummary+ , csStatus+ , csNormalizedInstanceHours+ , csName+ , csId++ -- * ClusterTimeline+ , ClusterTimeline+ , clusterTimeline+ , ctReadyDateTime+ , ctCreationDateTime+ , ctEndDateTime++ -- * Command+ , Command+ , command+ , cArgs+ , cScriptPath+ , cName++ -- * Configuration+ , Configuration+ , configuration+ , cConfigurations+ , cClassification+ , cProperties++ -- * EC2InstanceAttributes+ , EC2InstanceAttributes+ , ec2InstanceAttributes+ , eiaEC2KeyName+ , eiaEmrManagedSlaveSecurityGroup+ , eiaAdditionalSlaveSecurityGroups+ , eiaIAMInstanceProfile+ , eiaAdditionalMasterSecurityGroups+ , eiaEmrManagedMasterSecurityGroup+ , eiaEC2SubnetId+ , eiaEC2AvailabilityZone++ -- * HadoopJARStepConfig+ , HadoopJARStepConfig+ , hadoopJARStepConfig+ , hjscArgs+ , hjscMainClass+ , hjscProperties+ , hjscJAR++ -- * HadoopStepConfig+ , HadoopStepConfig+ , hadoopStepConfig+ , hscArgs+ , hscJAR+ , hscMainClass+ , hscProperties++ -- * Instance+ , Instance+ , instance'+ , iStatus+ , iPublicDNSName+ , iEC2InstanceId+ , iPrivateIPAddress+ , iId+ , iPrivateDNSName+ , iPublicIPAddress++ -- * InstanceGroup+ , InstanceGroup+ , instanceGroup+ , igStatus+ , igBidPrice+ , igRequestedInstanceCount+ , igRunningInstanceCount+ , igConfigurations+ , igInstanceGroupType+ , igInstanceType+ , igMarket+ , igName+ , igId++ -- * InstanceGroupConfig+ , InstanceGroupConfig+ , instanceGroupConfig+ , igcBidPrice+ , igcConfigurations+ , igcMarket+ , igcName+ , igcInstanceRole+ , igcInstanceType+ , igcInstanceCount++ -- * InstanceGroupModifyConfig+ , InstanceGroupModifyConfig+ , instanceGroupModifyConfig+ , igmcInstanceCount+ , igmcEC2InstanceIdsToTerminate+ , igmcInstanceGroupId++ -- * InstanceGroupStateChangeReason+ , InstanceGroupStateChangeReason+ , instanceGroupStateChangeReason+ , igscrCode+ , igscrMessage++ -- * InstanceGroupStatus+ , InstanceGroupStatus+ , instanceGroupStatus+ , igsState+ , igsStateChangeReason+ , igsTimeline++ -- * InstanceGroupTimeline+ , InstanceGroupTimeline+ , instanceGroupTimeline+ , igtReadyDateTime+ , igtCreationDateTime+ , igtEndDateTime++ -- * InstanceStateChangeReason+ , InstanceStateChangeReason+ , instanceStateChangeReason+ , iscrCode+ , iscrMessage++ -- * InstanceStatus+ , InstanceStatus+ , instanceStatus+ , isState+ , isStateChangeReason+ , isTimeline++ -- * InstanceTimeline+ , InstanceTimeline+ , instanceTimeline+ , itReadyDateTime+ , itCreationDateTime+ , itEndDateTime++ -- * JobFlowInstancesConfig+ , JobFlowInstancesConfig+ , jobFlowInstancesConfig+ , jficSlaveInstanceType+ , jficEC2KeyName+ , jficInstanceCount+ , jficEmrManagedSlaveSecurityGroup+ , jficAdditionalSlaveSecurityGroups+ , jficHadoopVersion+ , jficAdditionalMasterSecurityGroups+ , jficEmrManagedMasterSecurityGroup+ , jficEC2SubnetId+ , jficMasterInstanceType+ , jficInstanceGroups+ , jficKeepJobFlowAliveWhenNoSteps+ , jficTerminationProtected+ , jficPlacement++ -- * KeyValue+ , KeyValue+ , keyValue+ , kvValue+ , kvKey++ -- * PlacementType+ , PlacementType+ , placementType+ , ptAvailabilityZone++ -- * ScriptBootstrapActionConfig+ , ScriptBootstrapActionConfig+ , scriptBootstrapActionConfig+ , sbacArgs+ , sbacPath++ -- * Step+ , Step+ , step+ , sStatus+ , sActionOnFailure+ , sConfig+ , sName+ , sId++ -- * StepConfig+ , StepConfig+ , stepConfig+ , scActionOnFailure+ , scName+ , scHadoopJARStep++ -- * StepStateChangeReason+ , StepStateChangeReason+ , stepStateChangeReason+ , sscrCode+ , sscrMessage++ -- * StepStatus+ , StepStatus+ , stepStatus+ , ssState+ , ssStateChangeReason+ , ssTimeline++ -- * StepSummary+ , StepSummary+ , stepSummary+ , ssStatus+ , ssActionOnFailure+ , ssConfig+ , ssName+ , ssId++ -- * StepTimeline+ , StepTimeline+ , stepTimeline+ , stCreationDateTime+ , stEndDateTime+ , stStartDateTime++ -- * SupportedProductConfig+ , SupportedProductConfig+ , supportedProductConfig+ , spcArgs+ , spcName++ -- * Tag+ , Tag+ , tag+ , tagValue+ , tagKey+ ) where++import Network.AWS.EMR.Types.Product+import Network.AWS.EMR.Types.Sum+import Network.AWS.Prelude+import Network.AWS.Sign.V4++-- | Version @2009-03-31@ of the Amazon Elastic MapReduce SDK.+data EMR++instance AWSService EMR where+ type Sg EMR = V4+ service = const svc+ where+ svc =+ Service+ { _svcAbbrev = "EMR"+ , _svcPrefix = "elasticmapreduce"+ , _svcVersion = "2009-03-31"+ , _svcEndpoint = defaultEndpoint svc+ , _svcTimeout = Just 70+ , _svcStatus = statusSuccess+ , _svcError = parseJSONError+ , _svcRetry = retry+ }+ retry =+ Exponential+ { _retryBase = 5.0e-2+ , _retryGrowth = 2+ , _retryAttempts = 5+ , _retryCheck = check+ }+ check e+ | has (hasCode "ThrottlingException" . hasStatus 400) e =+ Just "throttling_exception"+ | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"+ | has (hasStatus 503) e = Just "service_unavailable"+ | has (hasStatus 500) e = Just "general_server_error"+ | has (hasStatus 509) e = Just "limit_exceeded"+ | otherwise = Nothing++-- | This exception occurs when there is something wrong with user input.+_InvalidRequestException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidRequestException = _ServiceError . hasCode "InvalidRequestException"++-- | 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"++-- | This exception occurs when there is an internal failure in the EMR+-- service.+_InternalServerException :: AsError a => Getting (First ServiceError) a ServiceError+_InternalServerException = _ServiceError . hasCode "InternalServerException"
+ gen/Network/AWS/EMR/Types/Product.hs view
@@ -0,0 +1,2151 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.EMR.Types.Product+-- Copyright : (c) 2013-2015 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)+--+module Network.AWS.EMR.Types.Product where++import Network.AWS.EMR.Types.Sum+import Network.AWS.Prelude++-- | An application is any Amazon or third-party software that you can add to+-- the cluster. This structure contains a list of strings that indicates+-- the software to use with the cluster and accepts a user argument list.+-- Amazon EMR accepts and forwards the argument list to the corresponding+-- installation script as bootstrap action argument. For more information,+-- see+-- <http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-mapr.html Launch a Job Flow on the MapR Distribution for Hadoop>.+-- Currently supported values are:+--+-- - \"mapr-m3\" - launch the job flow using MapR M3 Edition.+-- - \"mapr-m5\" - launch the job flow using MapR M5 Edition.+-- - \"mapr\" with the user arguments specifying \"--edition,m3\" or+-- \"--edition,m5\" - launch the job flow using MapR M3 or M5 Edition,+-- respectively.+--+-- In Amazon EMR releases 4.0 and greater, the only accepted parameter is+-- the application name. To pass arguments to applications, you supply a+-- configuration for each application.+--+-- /See:/ 'application' smart constructor.+data Application = Application'+ { _aAdditionalInfo :: !(Maybe (Map Text Text))+ , _aArgs :: !(Maybe [Text])+ , _aName :: !(Maybe Text)+ , _aVersion :: !(Maybe Text)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Application' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aAdditionalInfo'+--+-- * 'aArgs'+--+-- * 'aName'+--+-- * 'aVersion'+application+ :: Application+application =+ Application'+ { _aAdditionalInfo = Nothing+ , _aArgs = Nothing+ , _aName = Nothing+ , _aVersion = Nothing+ }++-- | This option is for advanced users only. This is meta information about+-- third-party applications that third-party vendors use for testing+-- purposes.+aAdditionalInfo :: Lens' Application (HashMap Text Text)+aAdditionalInfo = lens _aAdditionalInfo (\ s a -> s{_aAdditionalInfo = a}) . _Default . _Map;++-- | Arguments for Amazon EMR to pass to the application.+aArgs :: Lens' Application [Text]+aArgs = lens _aArgs (\ s a -> s{_aArgs = a}) . _Default . _Coerce;++-- | The name of the application.+aName :: Lens' Application (Maybe Text)+aName = lens _aName (\ s a -> s{_aName = a});++-- | The version of the application.+aVersion :: Lens' Application (Maybe Text)+aVersion = lens _aVersion (\ s a -> s{_aVersion = a});++instance FromJSON Application where+ parseJSON+ = withObject "Application"+ (\ x ->+ Application' <$>+ (x .:? "AdditionalInfo" .!= mempty) <*>+ (x .:? "Args" .!= mempty)+ <*> (x .:? "Name")+ <*> (x .:? "Version"))++instance ToJSON Application where+ toJSON Application'{..}+ = object+ ["AdditionalInfo" .= _aAdditionalInfo,+ "Args" .= _aArgs, "Name" .= _aName,+ "Version" .= _aVersion]++-- | Configuration of a bootstrap action.+--+-- /See:/ 'bootstrapActionConfig' smart constructor.+data BootstrapActionConfig = BootstrapActionConfig'+ { _bacName :: !Text+ , _bacScriptBootstrapAction :: !ScriptBootstrapActionConfig+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'BootstrapActionConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bacName'+--+-- * 'bacScriptBootstrapAction'+bootstrapActionConfig+ :: Text -- ^ 'bacName'+ -> ScriptBootstrapActionConfig -- ^ 'bacScriptBootstrapAction'+ -> BootstrapActionConfig+bootstrapActionConfig pName_ pScriptBootstrapAction_ =+ BootstrapActionConfig'+ { _bacName = pName_+ , _bacScriptBootstrapAction = pScriptBootstrapAction_+ }++-- | The name of the bootstrap action.+bacName :: Lens' BootstrapActionConfig Text+bacName = lens _bacName (\ s a -> s{_bacName = a});++-- | The script run by the bootstrap action.+bacScriptBootstrapAction :: Lens' BootstrapActionConfig ScriptBootstrapActionConfig+bacScriptBootstrapAction = lens _bacScriptBootstrapAction (\ s a -> s{_bacScriptBootstrapAction = a});++instance ToJSON BootstrapActionConfig where+ toJSON BootstrapActionConfig'{..}+ = object+ ["Name" .= _bacName,+ "ScriptBootstrapAction" .= _bacScriptBootstrapAction]++-- | The detailed description of the cluster.+--+-- /See:/ 'cluster' smart constructor.+data Cluster = Cluster'+ { _cluRequestedAMIVersion :: !(Maybe Text)+ , _cluEC2InstanceAttributes :: !(Maybe EC2InstanceAttributes)+ , _cluNormalizedInstanceHours :: !(Maybe Int)+ , _cluConfigurations :: !(Maybe [Configuration])+ , _cluReleaseLabel :: !(Maybe Text)+ , _cluLogURI :: !(Maybe Text)+ , _cluRunningAMIVersion :: !(Maybe Text)+ , _cluMasterPublicDNSName :: !(Maybe Text)+ , _cluAutoTerminate :: !(Maybe Bool)+ , _cluTerminationProtected :: !(Maybe Bool)+ , _cluVisibleToAllUsers :: !(Maybe Bool)+ , _cluApplications :: !(Maybe [Application])+ , _cluTags :: !(Maybe [Tag])+ , _cluServiceRole :: !(Maybe Text)+ , _cluId :: !Text+ , _cluName :: !Text+ , _cluStatus :: !ClusterStatus+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Cluster' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cluRequestedAMIVersion'+--+-- * 'cluEC2InstanceAttributes'+--+-- * 'cluNormalizedInstanceHours'+--+-- * 'cluConfigurations'+--+-- * 'cluReleaseLabel'+--+-- * 'cluLogURI'+--+-- * 'cluRunningAMIVersion'+--+-- * 'cluMasterPublicDNSName'+--+-- * 'cluAutoTerminate'+--+-- * 'cluTerminationProtected'+--+-- * 'cluVisibleToAllUsers'+--+-- * 'cluApplications'+--+-- * 'cluTags'+--+-- * 'cluServiceRole'+--+-- * 'cluId'+--+-- * 'cluName'+--+-- * 'cluStatus'+cluster+ :: Text -- ^ 'cluId'+ -> Text -- ^ 'cluName'+ -> ClusterStatus -- ^ 'cluStatus'+ -> Cluster+cluster pId_ pName_ pStatus_ =+ Cluster'+ { _cluRequestedAMIVersion = Nothing+ , _cluEC2InstanceAttributes = Nothing+ , _cluNormalizedInstanceHours = Nothing+ , _cluConfigurations = Nothing+ , _cluReleaseLabel = Nothing+ , _cluLogURI = Nothing+ , _cluRunningAMIVersion = Nothing+ , _cluMasterPublicDNSName = Nothing+ , _cluAutoTerminate = Nothing+ , _cluTerminationProtected = Nothing+ , _cluVisibleToAllUsers = Nothing+ , _cluApplications = Nothing+ , _cluTags = Nothing+ , _cluServiceRole = Nothing+ , _cluId = pId_+ , _cluName = pName_+ , _cluStatus = pStatus_+ }++-- | The AMI version requested for this cluster.+cluRequestedAMIVersion :: Lens' Cluster (Maybe Text)+cluRequestedAMIVersion = lens _cluRequestedAMIVersion (\ s a -> s{_cluRequestedAMIVersion = a});++-- | Undocumented member.+cluEC2InstanceAttributes :: Lens' Cluster (Maybe EC2InstanceAttributes)+cluEC2InstanceAttributes = lens _cluEC2InstanceAttributes (\ s a -> s{_cluEC2InstanceAttributes = a});++-- | An approximation of the cost of the job flow, represented in+-- m1.small\/hours. This value is incremented one time for every hour an+-- m1.small instance runs. Larger instances are weighted more, so an EC2+-- instance that is roughly four times more expensive would result in the+-- normalized instance hours being incremented by four. This result is only+-- an approximation and does not reflect the actual billing rate.+cluNormalizedInstanceHours :: Lens' Cluster (Maybe Int)+cluNormalizedInstanceHours = lens _cluNormalizedInstanceHours (\ s a -> s{_cluNormalizedInstanceHours = a});++-- | Amazon EMR releases 4.x or later.+--+-- The list of Configurations supplied to the EMR cluster.+cluConfigurations :: Lens' Cluster [Configuration]+cluConfigurations = lens _cluConfigurations (\ s a -> s{_cluConfigurations = a}) . _Default . _Coerce;++-- | The release label for the Amazon EMR release. For Amazon EMR 3.x and 2.x+-- AMIs, use amiVersion instead instead of ReleaseLabel.+cluReleaseLabel :: Lens' Cluster (Maybe Text)+cluReleaseLabel = lens _cluReleaseLabel (\ s a -> s{_cluReleaseLabel = a});++-- | The path to the Amazon S3 location where logs for this cluster are+-- stored.+cluLogURI :: Lens' Cluster (Maybe Text)+cluLogURI = lens _cluLogURI (\ s a -> s{_cluLogURI = a});++-- | The AMI version running on this cluster.+cluRunningAMIVersion :: Lens' Cluster (Maybe Text)+cluRunningAMIVersion = lens _cluRunningAMIVersion (\ s a -> s{_cluRunningAMIVersion = a});++-- | The public DNS name of the master EC2 instance.+cluMasterPublicDNSName :: Lens' Cluster (Maybe Text)+cluMasterPublicDNSName = lens _cluMasterPublicDNSName (\ s a -> s{_cluMasterPublicDNSName = a});++-- | Specifies whether the cluster should terminate after completing all+-- steps.+cluAutoTerminate :: Lens' Cluster (Maybe Bool)+cluAutoTerminate = lens _cluAutoTerminate (\ s a -> s{_cluAutoTerminate = a});++-- | Indicates whether Amazon EMR will lock the cluster to prevent the EC2+-- instances from being terminated by an API call or user intervention, or+-- in the event of a cluster error.+cluTerminationProtected :: Lens' Cluster (Maybe Bool)+cluTerminationProtected = lens _cluTerminationProtected (\ s a -> s{_cluTerminationProtected = a});++-- | Indicates whether the job flow is visible to all IAM users of the AWS+-- account associated with the job flow. If this value is set to 'true',+-- 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.+cluVisibleToAllUsers :: Lens' Cluster (Maybe Bool)+cluVisibleToAllUsers = lens _cluVisibleToAllUsers (\ s a -> s{_cluVisibleToAllUsers = a});++-- | The applications installed on this cluster.+cluApplications :: Lens' Cluster [Application]+cluApplications = lens _cluApplications (\ s a -> s{_cluApplications = a}) . _Default . _Coerce;++-- | A list of tags associated with a cluster.+cluTags :: Lens' Cluster [Tag]+cluTags = lens _cluTags (\ s a -> s{_cluTags = a}) . _Default . _Coerce;++-- | The IAM role that will be assumed by the Amazon EMR service to access+-- AWS resources on your behalf.+cluServiceRole :: Lens' Cluster (Maybe Text)+cluServiceRole = lens _cluServiceRole (\ s a -> s{_cluServiceRole = a});++-- | The unique identifier for the cluster.+cluId :: Lens' Cluster Text+cluId = lens _cluId (\ s a -> s{_cluId = a});++-- | The name of the cluster.+cluName :: Lens' Cluster Text+cluName = lens _cluName (\ s a -> s{_cluName = a});++-- | The current status details about the cluster.+cluStatus :: Lens' Cluster ClusterStatus+cluStatus = lens _cluStatus (\ s a -> s{_cluStatus = a});++instance FromJSON Cluster where+ parseJSON+ = withObject "Cluster"+ (\ x ->+ Cluster' <$>+ (x .:? "RequestedAmiVersion") <*>+ (x .:? "Ec2InstanceAttributes")+ <*> (x .:? "NormalizedInstanceHours")+ <*> (x .:? "Configurations" .!= mempty)+ <*> (x .:? "ReleaseLabel")+ <*> (x .:? "LogUri")+ <*> (x .:? "RunningAmiVersion")+ <*> (x .:? "MasterPublicDnsName")+ <*> (x .:? "AutoTerminate")+ <*> (x .:? "TerminationProtected")+ <*> (x .:? "VisibleToAllUsers")+ <*> (x .:? "Applications" .!= mempty)+ <*> (x .:? "Tags" .!= mempty)+ <*> (x .:? "ServiceRole")+ <*> (x .: "Id")+ <*> (x .: "Name")+ <*> (x .: "Status"))++-- | The reason that the cluster changed to its current state.+--+-- /See:/ 'clusterStateChangeReason' smart constructor.+data ClusterStateChangeReason = ClusterStateChangeReason'+ { _cscrCode :: !(Maybe ClusterStateChangeReasonCode)+ , _cscrMessage :: !(Maybe Text)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ClusterStateChangeReason' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cscrCode'+--+-- * 'cscrMessage'+clusterStateChangeReason+ :: ClusterStateChangeReason+clusterStateChangeReason =+ ClusterStateChangeReason'+ { _cscrCode = Nothing+ , _cscrMessage = Nothing+ }++-- | The programmatic code for the state change reason.+cscrCode :: Lens' ClusterStateChangeReason (Maybe ClusterStateChangeReasonCode)+cscrCode = lens _cscrCode (\ s a -> s{_cscrCode = a});++-- | The descriptive message for the state change reason.+cscrMessage :: Lens' ClusterStateChangeReason (Maybe Text)+cscrMessage = lens _cscrMessage (\ s a -> s{_cscrMessage = a});++instance FromJSON ClusterStateChangeReason where+ parseJSON+ = withObject "ClusterStateChangeReason"+ (\ x ->+ ClusterStateChangeReason' <$>+ (x .:? "Code") <*> (x .:? "Message"))++-- | The detailed status of the cluster.+--+-- /See:/ 'clusterStatus' smart constructor.+data ClusterStatus = ClusterStatus'+ { _csState :: !(Maybe ClusterState)+ , _csStateChangeReason :: !(Maybe ClusterStateChangeReason)+ , _csTimeline :: !(Maybe ClusterTimeline)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ClusterStatus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csState'+--+-- * 'csStateChangeReason'+--+-- * 'csTimeline'+clusterStatus+ :: ClusterStatus+clusterStatus =+ ClusterStatus'+ { _csState = Nothing+ , _csStateChangeReason = Nothing+ , _csTimeline = Nothing+ }++-- | The current state of the cluster.+csState :: Lens' ClusterStatus (Maybe ClusterState)+csState = lens _csState (\ s a -> s{_csState = a});++-- | The reason for the cluster status change.+csStateChangeReason :: Lens' ClusterStatus (Maybe ClusterStateChangeReason)+csStateChangeReason = lens _csStateChangeReason (\ s a -> s{_csStateChangeReason = a});++-- | A timeline that represents the status of a cluster over the lifetime of+-- the cluster.+csTimeline :: Lens' ClusterStatus (Maybe ClusterTimeline)+csTimeline = lens _csTimeline (\ s a -> s{_csTimeline = a});++instance FromJSON ClusterStatus where+ parseJSON+ = withObject "ClusterStatus"+ (\ x ->+ ClusterStatus' <$>+ (x .:? "State") <*> (x .:? "StateChangeReason") <*>+ (x .:? "Timeline"))++-- | The summary description of the cluster.+--+-- /See:/ 'clusterSummary' smart constructor.+data ClusterSummary = ClusterSummary'+ { _csStatus :: !(Maybe ClusterStatus)+ , _csNormalizedInstanceHours :: !(Maybe Int)+ , _csName :: !(Maybe Text)+ , _csId :: !(Maybe Text)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ClusterSummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csStatus'+--+-- * 'csNormalizedInstanceHours'+--+-- * 'csName'+--+-- * 'csId'+clusterSummary+ :: ClusterSummary+clusterSummary =+ ClusterSummary'+ { _csStatus = Nothing+ , _csNormalizedInstanceHours = Nothing+ , _csName = Nothing+ , _csId = Nothing+ }++-- | The details about the current status of the cluster.+csStatus :: Lens' ClusterSummary (Maybe ClusterStatus)+csStatus = lens _csStatus (\ s a -> s{_csStatus = a});++-- | An approximation of the cost of the job flow, represented in+-- m1.small\/hours. This value is incremented one time for every hour an+-- m1.small instance runs. Larger instances are weighted more, so an EC2+-- instance that is roughly four times more expensive would result in the+-- normalized instance hours being incremented by four. This result is only+-- an approximation and does not reflect the actual billing rate.+csNormalizedInstanceHours :: Lens' ClusterSummary (Maybe Int)+csNormalizedInstanceHours = lens _csNormalizedInstanceHours (\ s a -> s{_csNormalizedInstanceHours = a});++-- | The name of the cluster.+csName :: Lens' ClusterSummary (Maybe Text)+csName = lens _csName (\ s a -> s{_csName = a});++-- | The unique identifier for the cluster.+csId :: Lens' ClusterSummary (Maybe Text)+csId = lens _csId (\ s a -> s{_csId = a});++instance FromJSON ClusterSummary where+ parseJSON+ = withObject "ClusterSummary"+ (\ x ->+ ClusterSummary' <$>+ (x .:? "Status") <*>+ (x .:? "NormalizedInstanceHours")+ <*> (x .:? "Name")+ <*> (x .:? "Id"))++-- | Represents the timeline of the cluster\'s lifecycle.+--+-- /See:/ 'clusterTimeline' smart constructor.+data ClusterTimeline = ClusterTimeline'+ { _ctReadyDateTime :: !(Maybe POSIX)+ , _ctCreationDateTime :: !(Maybe POSIX)+ , _ctEndDateTime :: !(Maybe POSIX)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ClusterTimeline' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ctReadyDateTime'+--+-- * 'ctCreationDateTime'+--+-- * 'ctEndDateTime'+clusterTimeline+ :: ClusterTimeline+clusterTimeline =+ ClusterTimeline'+ { _ctReadyDateTime = Nothing+ , _ctCreationDateTime = Nothing+ , _ctEndDateTime = Nothing+ }++-- | The date and time when the cluster was ready to execute steps.+ctReadyDateTime :: Lens' ClusterTimeline (Maybe UTCTime)+ctReadyDateTime = lens _ctReadyDateTime (\ s a -> s{_ctReadyDateTime = a}) . mapping _Time;++-- | The creation date and time of the cluster.+ctCreationDateTime :: Lens' ClusterTimeline (Maybe UTCTime)+ctCreationDateTime = lens _ctCreationDateTime (\ s a -> s{_ctCreationDateTime = a}) . mapping _Time;++-- | The date and time when the cluster was terminated.+ctEndDateTime :: Lens' ClusterTimeline (Maybe UTCTime)+ctEndDateTime = lens _ctEndDateTime (\ s a -> s{_ctEndDateTime = a}) . mapping _Time;++instance FromJSON ClusterTimeline where+ parseJSON+ = withObject "ClusterTimeline"+ (\ x ->+ ClusterTimeline' <$>+ (x .:? "ReadyDateTime") <*>+ (x .:? "CreationDateTime")+ <*> (x .:? "EndDateTime"))++-- | An entity describing an executable that runs on a cluster.+--+-- /See:/ 'command' smart constructor.+data Command = Command'+ { _cArgs :: !(Maybe [Text])+ , _cScriptPath :: !(Maybe Text)+ , _cName :: !(Maybe Text)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Command' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cArgs'+--+-- * 'cScriptPath'+--+-- * 'cName'+command+ :: Command+command =+ Command'+ { _cArgs = Nothing+ , _cScriptPath = Nothing+ , _cName = Nothing+ }++-- | Arguments for Amazon EMR to pass to the command for execution.+cArgs :: Lens' Command [Text]+cArgs = lens _cArgs (\ s a -> s{_cArgs = a}) . _Default . _Coerce;++-- | The Amazon S3 location of the command script.+cScriptPath :: Lens' Command (Maybe Text)+cScriptPath = lens _cScriptPath (\ s a -> s{_cScriptPath = a});++-- | The name of the command.+cName :: Lens' Command (Maybe Text)+cName = lens _cName (\ s a -> s{_cName = a});++instance FromJSON Command where+ parseJSON+ = withObject "Command"+ (\ x ->+ Command' <$>+ (x .:? "Args" .!= mempty) <*> (x .:? "ScriptPath")+ <*> (x .:? "Name"))++-- | Amazon EMR releases 4.x or later.+--+-- Specifies a hardware and software configuration of the EMR cluster. This+-- includes configurations for applications and software bundled with+-- Amazon EMR. The Configuration object is a JSON object which is defined+-- by a classification and a set of properties. Configurations can be+-- nested, so a configuration may have its own Configuration objects+-- listed.+--+-- /See:/ 'configuration' smart constructor.+data Configuration = Configuration'+ { _cConfigurations :: !(Maybe [Configuration])+ , _cClassification :: !(Maybe Text)+ , _cProperties :: !(Maybe (Map Text Text))+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Configuration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cConfigurations'+--+-- * 'cClassification'+--+-- * 'cProperties'+configuration+ :: Configuration+configuration =+ Configuration'+ { _cConfigurations = Nothing+ , _cClassification = Nothing+ , _cProperties = Nothing+ }++-- | A list of configurations you apply to this configuration object.+cConfigurations :: Lens' Configuration [Configuration]+cConfigurations = lens _cConfigurations (\ s a -> s{_cConfigurations = a}) . _Default . _Coerce;++-- | The classification of a configuration. For more information see,+-- <http://docs.aws.amazon.com/ElasticMapReduce/latest/API/EmrConfigurations.html Amazon EMR Configurations>.+cClassification :: Lens' Configuration (Maybe Text)+cClassification = lens _cClassification (\ s a -> s{_cClassification = a});++-- | A set of properties supplied to the Configuration object.+cProperties :: Lens' Configuration (HashMap Text Text)+cProperties = lens _cProperties (\ s a -> s{_cProperties = a}) . _Default . _Map;++instance FromJSON Configuration where+ parseJSON+ = withObject "Configuration"+ (\ x ->+ Configuration' <$>+ (x .:? "Configurations" .!= mempty) <*>+ (x .:? "Classification")+ <*> (x .:? "Properties" .!= mempty))++instance ToJSON Configuration where+ toJSON Configuration'{..}+ = object+ ["Configurations" .= _cConfigurations,+ "Classification" .= _cClassification,+ "Properties" .= _cProperties]++-- | Provides information about the EC2 instances in a cluster grouped by+-- category. For example, key name, subnet ID, IAM instance profile, and so+-- on.+--+-- /See:/ 'ec2InstanceAttributes' smart constructor.+data EC2InstanceAttributes = EC2InstanceAttributes'+ { _eiaEC2KeyName :: !(Maybe Text)+ , _eiaEmrManagedSlaveSecurityGroup :: !(Maybe Text)+ , _eiaAdditionalSlaveSecurityGroups :: !(Maybe [Text])+ , _eiaIAMInstanceProfile :: !(Maybe Text)+ , _eiaAdditionalMasterSecurityGroups :: !(Maybe [Text])+ , _eiaEmrManagedMasterSecurityGroup :: !(Maybe Text)+ , _eiaEC2SubnetId :: !(Maybe Text)+ , _eiaEC2AvailabilityZone :: !(Maybe Text)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'EC2InstanceAttributes' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eiaEC2KeyName'+--+-- * 'eiaEmrManagedSlaveSecurityGroup'+--+-- * 'eiaAdditionalSlaveSecurityGroups'+--+-- * 'eiaIAMInstanceProfile'+--+-- * 'eiaAdditionalMasterSecurityGroups'+--+-- * 'eiaEmrManagedMasterSecurityGroup'+--+-- * 'eiaEC2SubnetId'+--+-- * 'eiaEC2AvailabilityZone'+ec2InstanceAttributes+ :: EC2InstanceAttributes+ec2InstanceAttributes =+ EC2InstanceAttributes'+ { _eiaEC2KeyName = Nothing+ , _eiaEmrManagedSlaveSecurityGroup = Nothing+ , _eiaAdditionalSlaveSecurityGroups = Nothing+ , _eiaIAMInstanceProfile = Nothing+ , _eiaAdditionalMasterSecurityGroups = Nothing+ , _eiaEmrManagedMasterSecurityGroup = Nothing+ , _eiaEC2SubnetId = Nothing+ , _eiaEC2AvailabilityZone = Nothing+ }++-- | The name of the Amazon EC2 key pair to use when connecting with SSH into+-- the master node as a user named \"hadoop\".+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.+eiaEmrManagedSlaveSecurityGroup :: Lens' EC2InstanceAttributes (Maybe Text)+eiaEmrManagedSlaveSecurityGroup = lens _eiaEmrManagedSlaveSecurityGroup (\ s a -> s{_eiaEmrManagedSlaveSecurityGroup = a});++-- | A list of additional Amazon EC2 security group IDs for the slave nodes.+eiaAdditionalSlaveSecurityGroups :: Lens' EC2InstanceAttributes [Text]+eiaAdditionalSlaveSecurityGroups = lens _eiaAdditionalSlaveSecurityGroups (\ s a -> s{_eiaAdditionalSlaveSecurityGroups = a}) . _Default . _Coerce;++-- | The IAM role that was specified when the job flow was launched. The EC2+-- instances of the job flow assume this role.+eiaIAMInstanceProfile :: Lens' EC2InstanceAttributes (Maybe Text)+eiaIAMInstanceProfile = lens _eiaIAMInstanceProfile (\ s a -> s{_eiaIAMInstanceProfile = a});++-- | A list of additional Amazon EC2 security group IDs for the master node.+eiaAdditionalMasterSecurityGroups :: Lens' EC2InstanceAttributes [Text]+eiaAdditionalMasterSecurityGroups = lens _eiaAdditionalMasterSecurityGroups (\ s a -> s{_eiaAdditionalMasterSecurityGroups = a}) . _Default . _Coerce;++-- | The identifier of the Amazon EC2 security group (managed by Amazon+-- Elastic MapReduce) for the master node.+eiaEmrManagedMasterSecurityGroup :: Lens' EC2InstanceAttributes (Maybe Text)+eiaEmrManagedMasterSecurityGroup = lens _eiaEmrManagedMasterSecurityGroup (\ s a -> s{_eiaEmrManagedMasterSecurityGroup = a});++-- | To launch the job flow in Amazon VPC, set this parameter to the+-- identifier of the Amazon VPC subnet where you want the job flow to+-- launch. If you do not specify this value, the job flow is launched in+-- the normal AWS cloud, outside of a VPC.+--+-- Amazon VPC currently does not support cluster compute quadruple extra+-- large (cc1.4xlarge) instances. Thus, you cannot specify the cc1.4xlarge+-- instance type for nodes of a job flow launched in a VPC.+eiaEC2SubnetId :: Lens' EC2InstanceAttributes (Maybe Text)+eiaEC2SubnetId = lens _eiaEC2SubnetId (\ s a -> s{_eiaEC2SubnetId = a});++-- | The Availability Zone in which the cluster will run.+eiaEC2AvailabilityZone :: Lens' EC2InstanceAttributes (Maybe Text)+eiaEC2AvailabilityZone = lens _eiaEC2AvailabilityZone (\ s a -> s{_eiaEC2AvailabilityZone = a});++instance FromJSON EC2InstanceAttributes where+ parseJSON+ = withObject "EC2InstanceAttributes"+ (\ x ->+ EC2InstanceAttributes' <$>+ (x .:? "Ec2KeyName") <*>+ (x .:? "EmrManagedSlaveSecurityGroup")+ <*>+ (x .:? "AdditionalSlaveSecurityGroups" .!= mempty)+ <*> (x .:? "IamInstanceProfile")+ <*>+ (x .:? "AdditionalMasterSecurityGroups" .!= mempty)+ <*> (x .:? "EmrManagedMasterSecurityGroup")+ <*> (x .:? "Ec2SubnetId")+ <*> (x .:? "Ec2AvailabilityZone"))++-- | 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.+--+-- /See:/ 'hadoopJARStepConfig' smart constructor.+data HadoopJARStepConfig = HadoopJARStepConfig'+ { _hjscArgs :: !(Maybe [Text])+ , _hjscMainClass :: !(Maybe Text)+ , _hjscProperties :: !(Maybe [KeyValue])+ , _hjscJAR :: !Text+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'HadoopJARStepConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hjscArgs'+--+-- * 'hjscMainClass'+--+-- * 'hjscProperties'+--+-- * 'hjscJAR'+hadoopJARStepConfig+ :: Text -- ^ 'hjscJAR'+ -> HadoopJARStepConfig+hadoopJARStepConfig pJAR_ =+ HadoopJARStepConfig'+ { _hjscArgs = Nothing+ , _hjscMainClass = Nothing+ , _hjscProperties = Nothing+ , _hjscJAR = pJAR_+ }++-- | A list of command line arguments passed to the JAR file\'s main function+-- when executed.+hjscArgs :: Lens' HadoopJARStepConfig [Text]+hjscArgs = lens _hjscArgs (\ s a -> s{_hjscArgs = a}) . _Default . _Coerce;++-- | The name of the main class in the specified Java file. If not specified,+-- the JAR file should specify a Main-Class in its manifest file.+hjscMainClass :: Lens' HadoopJARStepConfig (Maybe Text)+hjscMainClass = lens _hjscMainClass (\ s a -> s{_hjscMainClass = a});++-- | A list of Java properties that are set when the step runs. You can use+-- these properties to pass key value pairs to your main function.+hjscProperties :: Lens' HadoopJARStepConfig [KeyValue]+hjscProperties = lens _hjscProperties (\ s a -> s{_hjscProperties = a}) . _Default . _Coerce;++-- | A path to a JAR file run during the step.+hjscJAR :: Lens' HadoopJARStepConfig Text+hjscJAR = lens _hjscJAR (\ s a -> s{_hjscJAR = a});++instance ToJSON HadoopJARStepConfig where+ toJSON HadoopJARStepConfig'{..}+ = object+ ["Args" .= _hjscArgs, "MainClass" .= _hjscMainClass,+ "Properties" .= _hjscProperties, "Jar" .= _hjscJAR]++-- | A cluster 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.+--+-- /See:/ 'hadoopStepConfig' smart constructor.+data HadoopStepConfig = HadoopStepConfig'+ { _hscArgs :: !(Maybe [Text])+ , _hscJAR :: !(Maybe Text)+ , _hscMainClass :: !(Maybe Text)+ , _hscProperties :: !(Maybe (Map Text Text))+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'HadoopStepConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hscArgs'+--+-- * 'hscJAR'+--+-- * 'hscMainClass'+--+-- * 'hscProperties'+hadoopStepConfig+ :: HadoopStepConfig+hadoopStepConfig =+ HadoopStepConfig'+ { _hscArgs = Nothing+ , _hscJAR = Nothing+ , _hscMainClass = Nothing+ , _hscProperties = Nothing+ }++-- | The list of command line arguments to pass to the JAR file\'s main+-- function for execution.+hscArgs :: Lens' HadoopStepConfig [Text]+hscArgs = lens _hscArgs (\ s a -> s{_hscArgs = a}) . _Default . _Coerce;++-- | The path to the JAR file that runs during the step.+hscJAR :: Lens' HadoopStepConfig (Maybe Text)+hscJAR = lens _hscJAR (\ s a -> s{_hscJAR = a});++-- | The name of the main class in the specified Java file. If not specified,+-- the JAR file should specify a main class in its manifest file.+hscMainClass :: Lens' HadoopStepConfig (Maybe Text)+hscMainClass = lens _hscMainClass (\ s a -> s{_hscMainClass = a});++-- | The list of Java properties that are set when the step runs. You can use+-- these properties to pass key value pairs to your main function.+hscProperties :: Lens' HadoopStepConfig (HashMap Text Text)+hscProperties = lens _hscProperties (\ s a -> s{_hscProperties = a}) . _Default . _Map;++instance FromJSON HadoopStepConfig where+ parseJSON+ = withObject "HadoopStepConfig"+ (\ x ->+ HadoopStepConfig' <$>+ (x .:? "Args" .!= mempty) <*> (x .:? "Jar") <*>+ (x .:? "MainClass")+ <*> (x .:? "Properties" .!= mempty))++-- | Represents an EC2 instance provisioned as part of cluster.+--+-- /See:/ 'instance'' smart constructor.+data Instance = Instance'+ { _iStatus :: !(Maybe InstanceStatus)+ , _iPublicDNSName :: !(Maybe Text)+ , _iEC2InstanceId :: !(Maybe Text)+ , _iPrivateIPAddress :: !(Maybe Text)+ , _iId :: !(Maybe Text)+ , _iPrivateDNSName :: !(Maybe Text)+ , _iPublicIPAddress :: !(Maybe Text)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Instance' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iStatus'+--+-- * 'iPublicDNSName'+--+-- * 'iEC2InstanceId'+--+-- * 'iPrivateIPAddress'+--+-- * 'iId'+--+-- * 'iPrivateDNSName'+--+-- * 'iPublicIPAddress'+instance'+ :: Instance+instance' =+ Instance'+ { _iStatus = Nothing+ , _iPublicDNSName = Nothing+ , _iEC2InstanceId = Nothing+ , _iPrivateIPAddress = Nothing+ , _iId = Nothing+ , _iPrivateDNSName = Nothing+ , _iPublicIPAddress = Nothing+ }++-- | The current status of the instance.+iStatus :: Lens' Instance (Maybe InstanceStatus)+iStatus = lens _iStatus (\ s a -> s{_iStatus = a});++-- | The public DNS name of the instance.+iPublicDNSName :: Lens' Instance (Maybe Text)+iPublicDNSName = lens _iPublicDNSName (\ s a -> s{_iPublicDNSName = a});++-- | The unique identifier of the instance in Amazon EC2.+iEC2InstanceId :: Lens' Instance (Maybe Text)+iEC2InstanceId = lens _iEC2InstanceId (\ s a -> s{_iEC2InstanceId = a});++-- | The private IP address of the instance.+iPrivateIPAddress :: Lens' Instance (Maybe Text)+iPrivateIPAddress = lens _iPrivateIPAddress (\ s a -> s{_iPrivateIPAddress = a});++-- | The unique identifier for the instance in Amazon EMR.+iId :: Lens' Instance (Maybe Text)+iId = lens _iId (\ s a -> s{_iId = a});++-- | The private DNS name of the instance.+iPrivateDNSName :: Lens' Instance (Maybe Text)+iPrivateDNSName = lens _iPrivateDNSName (\ s a -> s{_iPrivateDNSName = a});++-- | The public IP address of the instance.+iPublicIPAddress :: Lens' Instance (Maybe Text)+iPublicIPAddress = lens _iPublicIPAddress (\ s a -> s{_iPublicIPAddress = a});++instance FromJSON Instance where+ parseJSON+ = withObject "Instance"+ (\ x ->+ Instance' <$>+ (x .:? "Status") <*> (x .:? "PublicDnsName") <*>+ (x .:? "Ec2InstanceId")+ <*> (x .:? "PrivateIpAddress")+ <*> (x .:? "Id")+ <*> (x .:? "PrivateDnsName")+ <*> (x .:? "PublicIpAddress"))++-- | 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.+--+-- /See:/ 'instanceGroup' smart constructor.+data InstanceGroup = InstanceGroup'+ { _igStatus :: !(Maybe InstanceGroupStatus)+ , _igBidPrice :: !(Maybe Text)+ , _igRequestedInstanceCount :: !(Maybe Int)+ , _igRunningInstanceCount :: !(Maybe Int)+ , _igConfigurations :: !(Maybe [Configuration])+ , _igInstanceGroupType :: !(Maybe InstanceGroupType)+ , _igInstanceType :: !(Maybe Text)+ , _igMarket :: !(Maybe MarketType)+ , _igName :: !(Maybe Text)+ , _igId :: !(Maybe Text)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igStatus'+--+-- * 'igBidPrice'+--+-- * 'igRequestedInstanceCount'+--+-- * 'igRunningInstanceCount'+--+-- * 'igConfigurations'+--+-- * 'igInstanceGroupType'+--+-- * 'igInstanceType'+--+-- * 'igMarket'+--+-- * 'igName'+--+-- * 'igId'+instanceGroup+ :: InstanceGroup+instanceGroup =+ InstanceGroup'+ { _igStatus = Nothing+ , _igBidPrice = Nothing+ , _igRequestedInstanceCount = Nothing+ , _igRunningInstanceCount = Nothing+ , _igConfigurations = Nothing+ , _igInstanceGroupType = Nothing+ , _igInstanceType = Nothing+ , _igMarket = Nothing+ , _igName = Nothing+ , _igId = Nothing+ }++-- | The current status of the instance group.+igStatus :: Lens' InstanceGroup (Maybe InstanceGroupStatus)+igStatus = lens _igStatus (\ s a -> s{_igStatus = a});++-- | The bid price for each EC2 instance in the instance group when launching+-- nodes as Spot Instances, expressed in USD.+igBidPrice :: Lens' InstanceGroup (Maybe Text)+igBidPrice = lens _igBidPrice (\ s a -> s{_igBidPrice = a});++-- | The target number of instances for the instance group.+igRequestedInstanceCount :: Lens' InstanceGroup (Maybe Int)+igRequestedInstanceCount = lens _igRequestedInstanceCount (\ s a -> s{_igRequestedInstanceCount = a});++-- | The number of instances currently running in this instance group.+igRunningInstanceCount :: Lens' InstanceGroup (Maybe Int)+igRunningInstanceCount = lens _igRunningInstanceCount (\ s a -> s{_igRunningInstanceCount = a});++-- | Amazon EMR releases 4.x or later.+--+-- The list of configurations supplied for an EMR cluster instance group.+-- You can specify a separate configuration for each instance group+-- (master, core, and task).+igConfigurations :: Lens' InstanceGroup [Configuration]+igConfigurations = lens _igConfigurations (\ s a -> s{_igConfigurations = a}) . _Default . _Coerce;++-- | The type of the instance group. Valid values are MASTER, CORE or TASK.+igInstanceGroupType :: Lens' InstanceGroup (Maybe InstanceGroupType)+igInstanceGroupType = lens _igInstanceGroupType (\ s a -> s{_igInstanceGroupType = a});++-- | The EC2 instance type for all instances in the instance group.+igInstanceType :: Lens' InstanceGroup (Maybe Text)+igInstanceType = lens _igInstanceType (\ s a -> s{_igInstanceType = a});++-- | The marketplace to provision instances for this group. Valid values are+-- ON_DEMAND or SPOT.+igMarket :: Lens' InstanceGroup (Maybe MarketType)+igMarket = lens _igMarket (\ s a -> s{_igMarket = a});++-- | The name of the instance group.+igName :: Lens' InstanceGroup (Maybe Text)+igName = lens _igName (\ s a -> s{_igName = a});++-- | The identifier of the instance group.+igId :: Lens' InstanceGroup (Maybe Text)+igId = lens _igId (\ s a -> s{_igId = a});++instance FromJSON InstanceGroup where+ parseJSON+ = withObject "InstanceGroup"+ (\ x ->+ InstanceGroup' <$>+ (x .:? "Status") <*> (x .:? "BidPrice") <*>+ (x .:? "RequestedInstanceCount")+ <*> (x .:? "RunningInstanceCount")+ <*> (x .:? "Configurations" .!= mempty)+ <*> (x .:? "InstanceGroupType")+ <*> (x .:? "InstanceType")+ <*> (x .:? "Market")+ <*> (x .:? "Name")+ <*> (x .:? "Id"))++-- | 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+ } 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:+--+-- * 'igcBidPrice'+--+-- * 'igcConfigurations'+--+-- * 'igcMarket'+--+-- * 'igcName'+--+-- * 'igcInstanceRole'+--+-- * 'igcInstanceType'+--+-- * 'igcInstanceCount'+instanceGroupConfig+ :: InstanceRoleType -- ^ 'igcInstanceRole'+ -> Text -- ^ 'igcInstanceType'+ -> Int -- ^ 'igcInstanceCount'+ -> InstanceGroupConfig+instanceGroupConfig pInstanceRole_ pInstanceType_ pInstanceCount_ =+ InstanceGroupConfig'+ { _igcBidPrice = Nothing+ , _igcConfigurations = Nothing+ , _igcMarket = Nothing+ , _igcName = Nothing+ , _igcInstanceRole = pInstanceRole_+ , _igcInstanceType = pInstanceType_+ , _igcInstanceCount = pInstanceCount_+ }++-- | 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)+igcBidPrice = lens _igcBidPrice (\ s a -> s{_igcBidPrice = a});++-- | Amazon EMR releases 4.x or later.+--+-- The list of configurations supplied for an EMR cluster instance group.+-- You can specify a separate configuration for each instance group+-- (master, core, and task).+igcConfigurations :: Lens' InstanceGroupConfig [Configuration]+igcConfigurations = lens _igcConfigurations (\ s a -> s{_igcConfigurations = a}) . _Default . _Coerce;++-- | Market type of the Amazon EC2 instances used to create a cluster node.+igcMarket :: Lens' InstanceGroupConfig (Maybe MarketType)+igcMarket = lens _igcMarket (\ s a -> s{_igcMarket = a});++-- | Friendly name given to the instance group.+igcName :: Lens' InstanceGroupConfig (Maybe Text)+igcName = lens _igcName (\ s a -> s{_igcName = a});++-- | The role of the instance group in the cluster.+igcInstanceRole :: Lens' InstanceGroupConfig InstanceRoleType+igcInstanceRole = lens _igcInstanceRole (\ s a -> s{_igcInstanceRole = a});++-- | The Amazon EC2 instance type for all instances in the instance group.+igcInstanceType :: Lens' InstanceGroupConfig Text+igcInstanceType = lens _igcInstanceType (\ s a -> s{_igcInstanceType = a});++-- | Target number of instances for the instance group.+igcInstanceCount :: Lens' InstanceGroupConfig Int+igcInstanceCount = lens _igcInstanceCount (\ s a -> s{_igcInstanceCount = a});++instance ToJSON InstanceGroupConfig where+ toJSON InstanceGroupConfig'{..}+ = object+ ["BidPrice" .= _igcBidPrice,+ "Configurations" .= _igcConfigurations,+ "Market" .= _igcMarket, "Name" .= _igcName,+ "InstanceRole" .= _igcInstanceRole,+ "InstanceType" .= _igcInstanceType,+ "InstanceCount" .= _igcInstanceCount]++-- | Modify an instance group size.+--+-- /See:/ 'instanceGroupModifyConfig' smart constructor.+data InstanceGroupModifyConfig = InstanceGroupModifyConfig'+ { _igmcInstanceCount :: !(Maybe Int)+ , _igmcEC2InstanceIdsToTerminate :: !(Maybe [Text])+ , _igmcInstanceGroupId :: !Text+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupModifyConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igmcInstanceCount'+--+-- * 'igmcEC2InstanceIdsToTerminate'+--+-- * 'igmcInstanceGroupId'+instanceGroupModifyConfig+ :: Text -- ^ 'igmcInstanceGroupId'+ -> InstanceGroupModifyConfig+instanceGroupModifyConfig pInstanceGroupId_ =+ InstanceGroupModifyConfig'+ { _igmcInstanceCount = Nothing+ , _igmcEC2InstanceIdsToTerminate = Nothing+ , _igmcInstanceGroupId = pInstanceGroupId_+ }++-- | Target size for the instance group.+igmcInstanceCount :: Lens' InstanceGroupModifyConfig (Maybe Int)+igmcInstanceCount = lens _igmcInstanceCount (\ s a -> s{_igmcInstanceCount = a});++-- | The EC2 InstanceIds to terminate. For advanced users only. Once you+-- terminate the instances, the instance group will not return to its+-- original requested size.+igmcEC2InstanceIdsToTerminate :: Lens' InstanceGroupModifyConfig [Text]+igmcEC2InstanceIdsToTerminate = lens _igmcEC2InstanceIdsToTerminate (\ s a -> s{_igmcEC2InstanceIdsToTerminate = a}) . _Default . _Coerce;++-- | Unique ID of the instance group to expand or shrink.+igmcInstanceGroupId :: Lens' InstanceGroupModifyConfig Text+igmcInstanceGroupId = lens _igmcInstanceGroupId (\ s a -> s{_igmcInstanceGroupId = a});++instance ToJSON InstanceGroupModifyConfig where+ toJSON InstanceGroupModifyConfig'{..}+ = object+ ["InstanceCount" .= _igmcInstanceCount,+ "EC2InstanceIdsToTerminate" .=+ _igmcEC2InstanceIdsToTerminate,+ "InstanceGroupId" .= _igmcInstanceGroupId]++-- | The status change reason details for the instance group.+--+-- /See:/ 'instanceGroupStateChangeReason' smart constructor.+data InstanceGroupStateChangeReason = InstanceGroupStateChangeReason'+ { _igscrCode :: !(Maybe InstanceGroupStateChangeReasonCode)+ , _igscrMessage :: !(Maybe Text)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupStateChangeReason' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igscrCode'+--+-- * 'igscrMessage'+instanceGroupStateChangeReason+ :: InstanceGroupStateChangeReason+instanceGroupStateChangeReason =+ InstanceGroupStateChangeReason'+ { _igscrCode = Nothing+ , _igscrMessage = Nothing+ }++-- | The programmable code for the state change reason.+igscrCode :: Lens' InstanceGroupStateChangeReason (Maybe InstanceGroupStateChangeReasonCode)+igscrCode = lens _igscrCode (\ s a -> s{_igscrCode = a});++-- | The status change reason description.+igscrMessage :: Lens' InstanceGroupStateChangeReason (Maybe Text)+igscrMessage = lens _igscrMessage (\ s a -> s{_igscrMessage = a});++instance FromJSON InstanceGroupStateChangeReason+ where+ parseJSON+ = withObject "InstanceGroupStateChangeReason"+ (\ x ->+ InstanceGroupStateChangeReason' <$>+ (x .:? "Code") <*> (x .:? "Message"))++-- | The details of the instance group status.+--+-- /See:/ 'instanceGroupStatus' smart constructor.+data InstanceGroupStatus = InstanceGroupStatus'+ { _igsState :: !(Maybe InstanceGroupState)+ , _igsStateChangeReason :: !(Maybe InstanceGroupStateChangeReason)+ , _igsTimeline :: !(Maybe InstanceGroupTimeline)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupStatus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igsState'+--+-- * 'igsStateChangeReason'+--+-- * 'igsTimeline'+instanceGroupStatus+ :: InstanceGroupStatus+instanceGroupStatus =+ InstanceGroupStatus'+ { _igsState = Nothing+ , _igsStateChangeReason = Nothing+ , _igsTimeline = Nothing+ }++-- | The current state of the instance group.+igsState :: Lens' InstanceGroupStatus (Maybe InstanceGroupState)+igsState = lens _igsState (\ s a -> s{_igsState = a});++-- | The status change reason details for the instance group.+igsStateChangeReason :: Lens' InstanceGroupStatus (Maybe InstanceGroupStateChangeReason)+igsStateChangeReason = lens _igsStateChangeReason (\ s a -> s{_igsStateChangeReason = a});++-- | The timeline of the instance group status over time.+igsTimeline :: Lens' InstanceGroupStatus (Maybe InstanceGroupTimeline)+igsTimeline = lens _igsTimeline (\ s a -> s{_igsTimeline = a});++instance FromJSON InstanceGroupStatus where+ parseJSON+ = withObject "InstanceGroupStatus"+ (\ x ->+ InstanceGroupStatus' <$>+ (x .:? "State") <*> (x .:? "StateChangeReason") <*>+ (x .:? "Timeline"))++-- | The timeline of the instance group lifecycle.+--+-- /See:/ 'instanceGroupTimeline' smart constructor.+data InstanceGroupTimeline = InstanceGroupTimeline'+ { _igtReadyDateTime :: !(Maybe POSIX)+ , _igtCreationDateTime :: !(Maybe POSIX)+ , _igtEndDateTime :: !(Maybe POSIX)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceGroupTimeline' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'igtReadyDateTime'+--+-- * 'igtCreationDateTime'+--+-- * 'igtEndDateTime'+instanceGroupTimeline+ :: InstanceGroupTimeline+instanceGroupTimeline =+ InstanceGroupTimeline'+ { _igtReadyDateTime = Nothing+ , _igtCreationDateTime = Nothing+ , _igtEndDateTime = Nothing+ }++-- | The date and time when the instance group became ready to perform tasks.+igtReadyDateTime :: Lens' InstanceGroupTimeline (Maybe UTCTime)+igtReadyDateTime = lens _igtReadyDateTime (\ s a -> s{_igtReadyDateTime = a}) . mapping _Time;++-- | The creation date and time of the instance group.+igtCreationDateTime :: Lens' InstanceGroupTimeline (Maybe UTCTime)+igtCreationDateTime = lens _igtCreationDateTime (\ s a -> s{_igtCreationDateTime = a}) . mapping _Time;++-- | The date and time when the instance group terminated.+igtEndDateTime :: Lens' InstanceGroupTimeline (Maybe UTCTime)+igtEndDateTime = lens _igtEndDateTime (\ s a -> s{_igtEndDateTime = a}) . mapping _Time;++instance FromJSON InstanceGroupTimeline where+ parseJSON+ = withObject "InstanceGroupTimeline"+ (\ x ->+ InstanceGroupTimeline' <$>+ (x .:? "ReadyDateTime") <*>+ (x .:? "CreationDateTime")+ <*> (x .:? "EndDateTime"))++-- | The details of the status change reason for the instance.+--+-- /See:/ 'instanceStateChangeReason' smart constructor.+data InstanceStateChangeReason = InstanceStateChangeReason'+ { _iscrCode :: !(Maybe InstanceStateChangeReasonCode)+ , _iscrMessage :: !(Maybe Text)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceStateChangeReason' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iscrCode'+--+-- * 'iscrMessage'+instanceStateChangeReason+ :: InstanceStateChangeReason+instanceStateChangeReason =+ InstanceStateChangeReason'+ { _iscrCode = Nothing+ , _iscrMessage = Nothing+ }++-- | The programmable code for the state change reason.+iscrCode :: Lens' InstanceStateChangeReason (Maybe InstanceStateChangeReasonCode)+iscrCode = lens _iscrCode (\ s a -> s{_iscrCode = a});++-- | The status change reason description.+iscrMessage :: Lens' InstanceStateChangeReason (Maybe Text)+iscrMessage = lens _iscrMessage (\ s a -> s{_iscrMessage = a});++instance FromJSON InstanceStateChangeReason where+ parseJSON+ = withObject "InstanceStateChangeReason"+ (\ x ->+ InstanceStateChangeReason' <$>+ (x .:? "Code") <*> (x .:? "Message"))++-- | The instance status details.+--+-- /See:/ 'instanceStatus' smart constructor.+data InstanceStatus = InstanceStatus'+ { _isState :: !(Maybe InstanceState)+ , _isStateChangeReason :: !(Maybe InstanceStateChangeReason)+ , _isTimeline :: !(Maybe InstanceTimeline)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceStatus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'isState'+--+-- * 'isStateChangeReason'+--+-- * 'isTimeline'+instanceStatus+ :: InstanceStatus+instanceStatus =+ InstanceStatus'+ { _isState = Nothing+ , _isStateChangeReason = Nothing+ , _isTimeline = Nothing+ }++-- | The current state of the instance.+isState :: Lens' InstanceStatus (Maybe InstanceState)+isState = lens _isState (\ s a -> s{_isState = a});++-- | The details of the status change reason for the instance.+isStateChangeReason :: Lens' InstanceStatus (Maybe InstanceStateChangeReason)+isStateChangeReason = lens _isStateChangeReason (\ s a -> s{_isStateChangeReason = a});++-- | The timeline of the instance status over time.+isTimeline :: Lens' InstanceStatus (Maybe InstanceTimeline)+isTimeline = lens _isTimeline (\ s a -> s{_isTimeline = a});++instance FromJSON InstanceStatus where+ parseJSON+ = withObject "InstanceStatus"+ (\ x ->+ InstanceStatus' <$>+ (x .:? "State") <*> (x .:? "StateChangeReason") <*>+ (x .:? "Timeline"))++-- | The timeline of the instance lifecycle.+--+-- /See:/ 'instanceTimeline' smart constructor.+data InstanceTimeline = InstanceTimeline'+ { _itReadyDateTime :: !(Maybe POSIX)+ , _itCreationDateTime :: !(Maybe POSIX)+ , _itEndDateTime :: !(Maybe POSIX)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InstanceTimeline' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'itReadyDateTime'+--+-- * 'itCreationDateTime'+--+-- * 'itEndDateTime'+instanceTimeline+ :: InstanceTimeline+instanceTimeline =+ InstanceTimeline'+ { _itReadyDateTime = Nothing+ , _itCreationDateTime = Nothing+ , _itEndDateTime = Nothing+ }++-- | The date and time when the instance was ready to perform tasks.+itReadyDateTime :: Lens' InstanceTimeline (Maybe UTCTime)+itReadyDateTime = lens _itReadyDateTime (\ s a -> s{_itReadyDateTime = a}) . mapping _Time;++-- | The creation date and time of the instance.+itCreationDateTime :: Lens' InstanceTimeline (Maybe UTCTime)+itCreationDateTime = lens _itCreationDateTime (\ s a -> s{_itCreationDateTime = a}) . mapping _Time;++-- | The date and time when the instance was terminated.+itEndDateTime :: Lens' InstanceTimeline (Maybe UTCTime)+itEndDateTime = lens _itEndDateTime (\ s a -> s{_itEndDateTime = a}) . mapping _Time;++instance FromJSON InstanceTimeline where+ parseJSON+ = withObject "InstanceTimeline"+ (\ x ->+ InstanceTimeline' <$>+ (x .:? "ReadyDateTime") <*>+ (x .:? "CreationDateTime")+ <*> (x .:? "EndDateTime"))++-- | 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+-- MasterInstanceType, SlaveInstanceType, and InstanceCount (all three must+-- be present).+--+-- /See:/ 'jobFlowInstancesConfig' smart constructor.+data JobFlowInstancesConfig = JobFlowInstancesConfig'+ { _jficSlaveInstanceType :: !(Maybe Text)+ , _jficEC2KeyName :: !(Maybe Text)+ , _jficInstanceCount :: !(Maybe Int)+ , _jficEmrManagedSlaveSecurityGroup :: !(Maybe Text)+ , _jficAdditionalSlaveSecurityGroups :: !(Maybe [Text])+ , _jficHadoopVersion :: !(Maybe Text)+ , _jficAdditionalMasterSecurityGroups :: !(Maybe [Text])+ , _jficEmrManagedMasterSecurityGroup :: !(Maybe Text)+ , _jficEC2SubnetId :: !(Maybe Text)+ , _jficMasterInstanceType :: !(Maybe Text)+ , _jficInstanceGroups :: !(Maybe [InstanceGroupConfig])+ , _jficKeepJobFlowAliveWhenNoSteps :: !(Maybe Bool)+ , _jficTerminationProtected :: !(Maybe Bool)+ , _jficPlacement :: !(Maybe PlacementType)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'JobFlowInstancesConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jficSlaveInstanceType'+--+-- * 'jficEC2KeyName'+--+-- * 'jficInstanceCount'+--+-- * 'jficEmrManagedSlaveSecurityGroup'+--+-- * 'jficAdditionalSlaveSecurityGroups'+--+-- * 'jficHadoopVersion'+--+-- * 'jficAdditionalMasterSecurityGroups'+--+-- * 'jficEmrManagedMasterSecurityGroup'+--+-- * 'jficEC2SubnetId'+--+-- * 'jficMasterInstanceType'+--+-- * 'jficInstanceGroups'+--+-- * 'jficKeepJobFlowAliveWhenNoSteps'+--+-- * 'jficTerminationProtected'+--+-- * 'jficPlacement'+jobFlowInstancesConfig+ :: JobFlowInstancesConfig+jobFlowInstancesConfig =+ JobFlowInstancesConfig'+ { _jficSlaveInstanceType = Nothing+ , _jficEC2KeyName = Nothing+ , _jficInstanceCount = Nothing+ , _jficEmrManagedSlaveSecurityGroup = Nothing+ , _jficAdditionalSlaveSecurityGroups = Nothing+ , _jficHadoopVersion = Nothing+ , _jficAdditionalMasterSecurityGroups = Nothing+ , _jficEmrManagedMasterSecurityGroup = Nothing+ , _jficEC2SubnetId = Nothing+ , _jficMasterInstanceType = Nothing+ , _jficInstanceGroups = Nothing+ , _jficKeepJobFlowAliveWhenNoSteps = Nothing+ , _jficTerminationProtected = Nothing+ , _jficPlacement = Nothing+ }++-- | The EC2 instance type of the slave nodes.+jficSlaveInstanceType :: Lens' JobFlowInstancesConfig (Maybe Text)+jficSlaveInstanceType = lens _jficSlaveInstanceType (\ s a -> s{_jficSlaveInstanceType = a});++-- | The name of the Amazon EC2 key pair that can be used to ssh to the+-- master node as the user called \"hadoop.\"+jficEC2KeyName :: Lens' JobFlowInstancesConfig (Maybe Text)+jficEC2KeyName = lens _jficEC2KeyName (\ s a -> s{_jficEC2KeyName = a});++-- | The number of Amazon EC2 instances used to execute the job flow.+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.+jficEmrManagedSlaveSecurityGroup :: Lens' JobFlowInstancesConfig (Maybe Text)+jficEmrManagedSlaveSecurityGroup = lens _jficEmrManagedSlaveSecurityGroup (\ s a -> s{_jficEmrManagedSlaveSecurityGroup = a});++-- | A list of additional Amazon EC2 security group IDs for the slave nodes.+jficAdditionalSlaveSecurityGroups :: Lens' JobFlowInstancesConfig [Text]+jficAdditionalSlaveSecurityGroups = lens _jficAdditionalSlaveSecurityGroups (\ s a -> s{_jficAdditionalSlaveSecurityGroups = a}) . _Default . _Coerce;++-- | The Hadoop version for the job flow. Valid inputs are \"0.18\"+-- (deprecated), \"0.20\" (deprecated), \"0.20.205\" (deprecated),+-- \"1.0.3\", \"2.2.0\", or \"2.4.0\". If you do not set this value, the+-- default of 0.18 is used, unless the AmiVersion parameter is set in the+-- RunJobFlow call, in which case the default version of Hadoop for that+-- AMI version is used.+jficHadoopVersion :: Lens' JobFlowInstancesConfig (Maybe Text)+jficHadoopVersion = lens _jficHadoopVersion (\ s a -> s{_jficHadoopVersion = a});++-- | A list of additional Amazon EC2 security group IDs for the master node.+jficAdditionalMasterSecurityGroups :: Lens' JobFlowInstancesConfig [Text]+jficAdditionalMasterSecurityGroups = lens _jficAdditionalMasterSecurityGroups (\ s a -> s{_jficAdditionalMasterSecurityGroups = a}) . _Default . _Coerce;++-- | The identifier of the Amazon EC2 security group (managed by Amazon+-- ElasticMapReduce) for the master node.+jficEmrManagedMasterSecurityGroup :: Lens' JobFlowInstancesConfig (Maybe Text)+jficEmrManagedMasterSecurityGroup = lens _jficEmrManagedMasterSecurityGroup (\ s a -> s{_jficEmrManagedMasterSecurityGroup = a});++-- | To launch the job flow in Amazon Virtual Private Cloud (Amazon VPC), set+-- this parameter to the identifier of the Amazon VPC subnet where you want+-- the job flow to launch. If you do not specify this value, the job flow+-- is launched in the normal Amazon Web Services cloud, outside of an+-- Amazon VPC.+--+-- Amazon VPC currently does not support cluster compute quadruple extra+-- large (cc1.4xlarge) instances. Thus you cannot specify the cc1.4xlarge+-- instance type for nodes of a job flow launched in a Amazon VPC.+jficEC2SubnetId :: Lens' JobFlowInstancesConfig (Maybe Text)+jficEC2SubnetId = lens _jficEC2SubnetId (\ s a -> s{_jficEC2SubnetId = a});++-- | The EC2 instance type of the master node.+jficMasterInstanceType :: Lens' JobFlowInstancesConfig (Maybe Text)+jficMasterInstanceType = lens _jficMasterInstanceType (\ s a -> s{_jficMasterInstanceType = a});++-- | Configuration for the job flow\'s instance groups.+jficInstanceGroups :: Lens' JobFlowInstancesConfig [InstanceGroupConfig]+jficInstanceGroups = lens _jficInstanceGroups (\ s a -> s{_jficInstanceGroups = a}) . _Default . _Coerce;++-- | Specifies whether the job flow should be kept alive after completing all+-- steps.+jficKeepJobFlowAliveWhenNoSteps :: Lens' JobFlowInstancesConfig (Maybe Bool)+jficKeepJobFlowAliveWhenNoSteps = lens _jficKeepJobFlowAliveWhenNoSteps (\ s a -> s{_jficKeepJobFlowAliveWhenNoSteps = 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.+jficTerminationProtected :: Lens' JobFlowInstancesConfig (Maybe Bool)+jficTerminationProtected = lens _jficTerminationProtected (\ s a -> s{_jficTerminationProtected = a});++-- | The Availability Zone the job flow will run in.+jficPlacement :: Lens' JobFlowInstancesConfig (Maybe PlacementType)+jficPlacement = lens _jficPlacement (\ s a -> s{_jficPlacement = a});++instance ToJSON JobFlowInstancesConfig where+ toJSON JobFlowInstancesConfig'{..}+ = object+ ["SlaveInstanceType" .= _jficSlaveInstanceType,+ "Ec2KeyName" .= _jficEC2KeyName,+ "InstanceCount" .= _jficInstanceCount,+ "EmrManagedSlaveSecurityGroup" .=+ _jficEmrManagedSlaveSecurityGroup,+ "AdditionalSlaveSecurityGroups" .=+ _jficAdditionalSlaveSecurityGroups,+ "HadoopVersion" .= _jficHadoopVersion,+ "AdditionalMasterSecurityGroups" .=+ _jficAdditionalMasterSecurityGroups,+ "EmrManagedMasterSecurityGroup" .=+ _jficEmrManagedMasterSecurityGroup,+ "Ec2SubnetId" .= _jficEC2SubnetId,+ "MasterInstanceType" .= _jficMasterInstanceType,+ "InstanceGroups" .= _jficInstanceGroups,+ "KeepJobFlowAliveWhenNoSteps" .=+ _jficKeepJobFlowAliveWhenNoSteps,+ "TerminationProtected" .= _jficTerminationProtected,+ "Placement" .= _jficPlacement]++-- | A key value pair.+--+-- /See:/ 'keyValue' smart constructor.+data KeyValue = KeyValue'+ { _kvValue :: !(Maybe Text)+ , _kvKey :: !(Maybe Text)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'KeyValue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'kvValue'+--+-- * 'kvKey'+keyValue+ :: KeyValue+keyValue =+ KeyValue'+ { _kvValue = Nothing+ , _kvKey = Nothing+ }++-- | The value part of the identified key.+kvValue :: Lens' KeyValue (Maybe Text)+kvValue = lens _kvValue (\ s a -> s{_kvValue = a});++-- | The unique identifier of a key value pair.+kvKey :: Lens' KeyValue (Maybe Text)+kvKey = lens _kvKey (\ s a -> s{_kvKey = a});++instance ToJSON KeyValue where+ toJSON KeyValue'{..}+ = object ["Value" .= _kvValue, "Key" .= _kvKey]++-- | The Amazon EC2 location for the job flow.+--+-- /See:/ 'placementType' smart constructor.+newtype PlacementType = PlacementType'+ { _ptAvailabilityZone :: Text+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'PlacementType' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ptAvailabilityZone'+placementType+ :: Text -- ^ 'ptAvailabilityZone'+ -> PlacementType+placementType pAvailabilityZone_ =+ PlacementType'+ { _ptAvailabilityZone = pAvailabilityZone_+ }++-- | The Amazon EC2 Availability Zone for the job flow.+ptAvailabilityZone :: Lens' PlacementType Text+ptAvailabilityZone = lens _ptAvailabilityZone (\ s a -> s{_ptAvailabilityZone = a});++instance ToJSON PlacementType where+ toJSON PlacementType'{..}+ = object ["AvailabilityZone" .= _ptAvailabilityZone]++-- | Configuration of the script to run during a bootstrap action.+--+-- /See:/ 'scriptBootstrapActionConfig' smart constructor.+data ScriptBootstrapActionConfig = ScriptBootstrapActionConfig'+ { _sbacArgs :: !(Maybe [Text])+ , _sbacPath :: !Text+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ScriptBootstrapActionConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sbacArgs'+--+-- * 'sbacPath'+scriptBootstrapActionConfig+ :: Text -- ^ 'sbacPath'+ -> ScriptBootstrapActionConfig+scriptBootstrapActionConfig pPath_ =+ ScriptBootstrapActionConfig'+ { _sbacArgs = Nothing+ , _sbacPath = pPath_+ }++-- | A list of command line arguments to pass to the bootstrap action script.+sbacArgs :: Lens' ScriptBootstrapActionConfig [Text]+sbacArgs = lens _sbacArgs (\ s a -> s{_sbacArgs = a}) . _Default . _Coerce;++-- | Location of the script to run during a bootstrap action. Can be either a+-- location in Amazon S3 or on a local file system.+sbacPath :: Lens' ScriptBootstrapActionConfig Text+sbacPath = lens _sbacPath (\ s a -> s{_sbacPath = a});++instance ToJSON ScriptBootstrapActionConfig where+ toJSON ScriptBootstrapActionConfig'{..}+ = object ["Args" .= _sbacArgs, "Path" .= _sbacPath]++-- | This represents a step in a cluster.+--+-- /See:/ 'step' smart constructor.+data Step = Step'+ { _sStatus :: !(Maybe StepStatus)+ , _sActionOnFailure :: !(Maybe ActionOnFailure)+ , _sConfig :: !(Maybe HadoopStepConfig)+ , _sName :: !(Maybe Text)+ , _sId :: !(Maybe Text)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Step' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sStatus'+--+-- * 'sActionOnFailure'+--+-- * 'sConfig'+--+-- * 'sName'+--+-- * 'sId'+step+ :: Step+step =+ Step'+ { _sStatus = Nothing+ , _sActionOnFailure = Nothing+ , _sConfig = Nothing+ , _sName = Nothing+ , _sId = Nothing+ }++-- | The current execution status details of the cluster step.+sStatus :: Lens' Step (Maybe StepStatus)+sStatus = lens _sStatus (\ s a -> s{_sStatus = a});++-- | This specifies what action to take when the cluster step fails. Possible+-- values are TERMINATE_CLUSTER, CANCEL_AND_WAIT, and CONTINUE.+sActionOnFailure :: Lens' Step (Maybe ActionOnFailure)+sActionOnFailure = lens _sActionOnFailure (\ s a -> s{_sActionOnFailure = a});++-- | The Hadoop job configuration of the cluster step.+sConfig :: Lens' Step (Maybe HadoopStepConfig)+sConfig = lens _sConfig (\ s a -> s{_sConfig = a});++-- | The name of the cluster step.+sName :: Lens' Step (Maybe Text)+sName = lens _sName (\ s a -> s{_sName = a});++-- | The identifier of the cluster step.+sId :: Lens' Step (Maybe Text)+sId = lens _sId (\ s a -> s{_sId = a});++instance FromJSON Step where+ parseJSON+ = withObject "Step"+ (\ x ->+ Step' <$>+ (x .:? "Status") <*> (x .:? "ActionOnFailure") <*>+ (x .:? "Config")+ <*> (x .:? "Name")+ <*> (x .:? "Id"))++-- | Specification of a job flow step.+--+-- /See:/ 'stepConfig' smart constructor.+data StepConfig = StepConfig'+ { _scActionOnFailure :: !(Maybe ActionOnFailure)+ , _scName :: !Text+ , _scHadoopJARStep :: !HadoopJARStepConfig+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'StepConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'scActionOnFailure'+--+-- * 'scName'+--+-- * 'scHadoopJARStep'+stepConfig+ :: Text -- ^ 'scName'+ -> HadoopJARStepConfig -- ^ 'scHadoopJARStep'+ -> StepConfig+stepConfig pName_ pHadoopJARStep_ =+ StepConfig'+ { _scActionOnFailure = Nothing+ , _scName = pName_+ , _scHadoopJARStep = pHadoopJARStep_+ }++-- | The action to take if the job flow step fails.+scActionOnFailure :: Lens' StepConfig (Maybe ActionOnFailure)+scActionOnFailure = lens _scActionOnFailure (\ s a -> s{_scActionOnFailure = a});++-- | The name of the job flow step.+scName :: Lens' StepConfig Text+scName = lens _scName (\ s a -> s{_scName = a});++-- | The JAR file used for the job flow step.+scHadoopJARStep :: Lens' StepConfig HadoopJARStepConfig+scHadoopJARStep = lens _scHadoopJARStep (\ s a -> s{_scHadoopJARStep = a});++instance ToJSON StepConfig where+ toJSON StepConfig'{..}+ = object+ ["ActionOnFailure" .= _scActionOnFailure,+ "Name" .= _scName,+ "HadoopJarStep" .= _scHadoopJARStep]++-- | The details of the step state change reason.+--+-- /See:/ 'stepStateChangeReason' smart constructor.+data StepStateChangeReason = StepStateChangeReason'+ { _sscrCode :: !(Maybe StepStateChangeReasonCode)+ , _sscrMessage :: !(Maybe Text)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'StepStateChangeReason' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sscrCode'+--+-- * 'sscrMessage'+stepStateChangeReason+ :: StepStateChangeReason+stepStateChangeReason =+ StepStateChangeReason'+ { _sscrCode = Nothing+ , _sscrMessage = Nothing+ }++-- | The programmable code for the state change reason. Note: Currently, the+-- service provides no code for the state change.+sscrCode :: Lens' StepStateChangeReason (Maybe StepStateChangeReasonCode)+sscrCode = lens _sscrCode (\ s a -> s{_sscrCode = a});++-- | The descriptive message for the state change reason.+sscrMessage :: Lens' StepStateChangeReason (Maybe Text)+sscrMessage = lens _sscrMessage (\ s a -> s{_sscrMessage = a});++instance FromJSON StepStateChangeReason where+ parseJSON+ = withObject "StepStateChangeReason"+ (\ x ->+ StepStateChangeReason' <$>+ (x .:? "Code") <*> (x .:? "Message"))++-- | The execution status details of the cluster step.+--+-- /See:/ 'stepStatus' smart constructor.+data StepStatus = StepStatus'+ { _ssState :: !(Maybe StepState)+ , _ssStateChangeReason :: !(Maybe StepStateChangeReason)+ , _ssTimeline :: !(Maybe StepTimeline)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'StepStatus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ssState'+--+-- * 'ssStateChangeReason'+--+-- * 'ssTimeline'+stepStatus+ :: StepStatus+stepStatus =+ StepStatus'+ { _ssState = Nothing+ , _ssStateChangeReason = Nothing+ , _ssTimeline = Nothing+ }++-- | The execution state of the cluster step.+ssState :: Lens' StepStatus (Maybe StepState)+ssState = lens _ssState (\ s a -> s{_ssState = a});++-- | The reason for the step execution status change.+ssStateChangeReason :: Lens' StepStatus (Maybe StepStateChangeReason)+ssStateChangeReason = lens _ssStateChangeReason (\ s a -> s{_ssStateChangeReason = a});++-- | The timeline of the cluster step status over time.+ssTimeline :: Lens' StepStatus (Maybe StepTimeline)+ssTimeline = lens _ssTimeline (\ s a -> s{_ssTimeline = a});++instance FromJSON StepStatus where+ parseJSON+ = withObject "StepStatus"+ (\ x ->+ StepStatus' <$>+ (x .:? "State") <*> (x .:? "StateChangeReason") <*>+ (x .:? "Timeline"))++-- | The summary of the cluster step.+--+-- /See:/ 'stepSummary' smart constructor.+data StepSummary = StepSummary'+ { _ssStatus :: !(Maybe StepStatus)+ , _ssActionOnFailure :: !(Maybe ActionOnFailure)+ , _ssConfig :: !(Maybe HadoopStepConfig)+ , _ssName :: !(Maybe Text)+ , _ssId :: !(Maybe Text)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'StepSummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ssStatus'+--+-- * 'ssActionOnFailure'+--+-- * 'ssConfig'+--+-- * 'ssName'+--+-- * 'ssId'+stepSummary+ :: StepSummary+stepSummary =+ StepSummary'+ { _ssStatus = Nothing+ , _ssActionOnFailure = Nothing+ , _ssConfig = Nothing+ , _ssName = Nothing+ , _ssId = Nothing+ }++-- | The current execution status details of the cluster step.+ssStatus :: Lens' StepSummary (Maybe StepStatus)+ssStatus = lens _ssStatus (\ s a -> s{_ssStatus = a});++-- | This specifies what action to take when the cluster step fails. Possible+-- values are TERMINATE_CLUSTER, CANCEL_AND_WAIT, and CONTINUE.+ssActionOnFailure :: Lens' StepSummary (Maybe ActionOnFailure)+ssActionOnFailure = lens _ssActionOnFailure (\ s a -> s{_ssActionOnFailure = a});++-- | The Hadoop job configuration of the cluster step.+ssConfig :: Lens' StepSummary (Maybe HadoopStepConfig)+ssConfig = lens _ssConfig (\ s a -> s{_ssConfig = a});++-- | The name of the cluster step.+ssName :: Lens' StepSummary (Maybe Text)+ssName = lens _ssName (\ s a -> s{_ssName = a});++-- | The identifier of the cluster step.+ssId :: Lens' StepSummary (Maybe Text)+ssId = lens _ssId (\ s a -> s{_ssId = a});++instance FromJSON StepSummary where+ parseJSON+ = withObject "StepSummary"+ (\ x ->+ StepSummary' <$>+ (x .:? "Status") <*> (x .:? "ActionOnFailure") <*>+ (x .:? "Config")+ <*> (x .:? "Name")+ <*> (x .:? "Id"))++-- | The timeline of the cluster step lifecycle.+--+-- /See:/ 'stepTimeline' smart constructor.+data StepTimeline = StepTimeline'+ { _stCreationDateTime :: !(Maybe POSIX)+ , _stEndDateTime :: !(Maybe POSIX)+ , _stStartDateTime :: !(Maybe POSIX)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'StepTimeline' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'stCreationDateTime'+--+-- * 'stEndDateTime'+--+-- * 'stStartDateTime'+stepTimeline+ :: StepTimeline+stepTimeline =+ StepTimeline'+ { _stCreationDateTime = Nothing+ , _stEndDateTime = Nothing+ , _stStartDateTime = Nothing+ }++-- | The date and time when the cluster step was created.+stCreationDateTime :: Lens' StepTimeline (Maybe UTCTime)+stCreationDateTime = lens _stCreationDateTime (\ s a -> s{_stCreationDateTime = a}) . mapping _Time;++-- | The date and time when the cluster step execution completed or failed.+stEndDateTime :: Lens' StepTimeline (Maybe UTCTime)+stEndDateTime = lens _stEndDateTime (\ s a -> s{_stEndDateTime = a}) . mapping _Time;++-- | The date and time when the cluster step execution started.+stStartDateTime :: Lens' StepTimeline (Maybe UTCTime)+stStartDateTime = lens _stStartDateTime (\ s a -> s{_stStartDateTime = a}) . mapping _Time;++instance FromJSON StepTimeline where+ parseJSON+ = withObject "StepTimeline"+ (\ x ->+ StepTimeline' <$>+ (x .:? "CreationDateTime") <*> (x .:? "EndDateTime")+ <*> (x .:? "StartDateTime"))++-- | 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.+--+-- /See:/ 'supportedProductConfig' smart constructor.+data SupportedProductConfig = SupportedProductConfig'+ { _spcArgs :: !(Maybe [Text])+ , _spcName :: !(Maybe Text)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SupportedProductConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'spcArgs'+--+-- * 'spcName'+supportedProductConfig+ :: SupportedProductConfig+supportedProductConfig =+ SupportedProductConfig'+ { _spcArgs = Nothing+ , _spcName = Nothing+ }++-- | The list of user-supplied arguments.+spcArgs :: Lens' SupportedProductConfig [Text]+spcArgs = lens _spcArgs (\ s a -> s{_spcArgs = a}) . _Default . _Coerce;++-- | The name of the product configuration.+spcName :: Lens' SupportedProductConfig (Maybe Text)+spcName = lens _spcName (\ s a -> s{_spcName = a});++instance ToJSON SupportedProductConfig where+ toJSON SupportedProductConfig'{..}+ = object ["Args" .= _spcArgs, "Name" .= _spcName]++-- | A key\/value pair containing user-defined metadata that you can+-- associate with an Amazon EMR resource. Tags make it easier to associate+-- clusters in various ways, such as grouping clu\\ sters 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:/ 'tag' smart constructor.+data Tag = Tag'+ { _tagValue :: !(Maybe Text)+ , _tagKey :: !(Maybe Text)+ } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Tag' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tagValue'+--+-- * 'tagKey'+tag+ :: Tag+tag =+ Tag'+ { _tagValue = Nothing+ , _tagKey = Nothing+ }++-- | A user-defined value, which is optional in a tag. For more information,+-- see+-- <http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-tags.html Tagging Amazon EMR Resources>.+tagValue :: Lens' Tag (Maybe Text)+tagValue = lens _tagValue (\ s a -> s{_tagValue = a});++-- | A user-defined key, which is the minimum required information for a+-- valid tag. For more information, see+-- <http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-tags.html Tagging Amazon EMR Resources>.+tagKey :: Lens' Tag (Maybe Text)+tagKey = lens _tagKey (\ s a -> s{_tagKey = a});++instance FromJSON Tag where+ parseJSON+ = withObject "Tag"+ (\ x -> Tag' <$> (x .:? "Value") <*> (x .:? "Key"))++instance ToJSON Tag where+ toJSON Tag'{..}+ = object ["Value" .= _tagValue, "Key" .= _tagKey]
+ gen/Network/AWS/EMR/Types/Sum.hs view
@@ -0,0 +1,434 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Network.AWS.EMR.Types.Sum+-- Copyright : (c) 2013-2015 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)+--+module Network.AWS.EMR.Types.Sum where++import Network.AWS.Prelude++data ActionOnFailure+ = CancelAndWait+ | Continue+ | TerminateCluster+ | TerminateJobFlow+ deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText ActionOnFailure where+ parser = takeLowerText >>= \case+ "cancel_and_wait" -> pure CancelAndWait+ "continue" -> pure Continue+ "terminate_cluster" -> pure TerminateCluster+ "terminate_job_flow" -> pure TerminateJobFlow+ e -> fromTextError $ "Failure parsing ActionOnFailure from value: '" <> e+ <> "'. Accepted values: cancel_and_wait, continue, terminate_cluster, terminate_job_flow"++instance ToText ActionOnFailure where+ toText = \case+ CancelAndWait -> "cancel_and_wait"+ Continue -> "continue"+ TerminateCluster -> "terminate_cluster"+ TerminateJobFlow -> "terminate_job_flow"++instance Hashable ActionOnFailure+instance ToByteString ActionOnFailure+instance ToQuery ActionOnFailure+instance ToHeader ActionOnFailure++instance ToJSON ActionOnFailure where+ toJSON = toJSONText++instance FromJSON ActionOnFailure where+ parseJSON = parseJSONText "ActionOnFailure"++data ClusterState+ = Bootstrapping+ | Running+ | Starting+ | Terminated+ | TerminatedWithErrors+ | Terminating+ | Waiting+ deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText ClusterState where+ parser = takeLowerText >>= \case+ "bootstrapping" -> pure Bootstrapping+ "running" -> pure Running+ "starting" -> pure Starting+ "terminated" -> pure Terminated+ "terminated_with_errors" -> pure TerminatedWithErrors+ "terminating" -> pure Terminating+ "waiting" -> pure Waiting+ e -> fromTextError $ "Failure parsing ClusterState from value: '" <> e+ <> "'. Accepted values: bootstrapping, running, starting, terminated, terminated_with_errors, terminating, waiting"++instance ToText ClusterState where+ toText = \case+ Bootstrapping -> "bootstrapping"+ Running -> "running"+ Starting -> "starting"+ Terminated -> "terminated"+ TerminatedWithErrors -> "terminated_with_errors"+ Terminating -> "terminating"+ Waiting -> "waiting"++instance Hashable ClusterState+instance ToByteString ClusterState+instance ToQuery ClusterState+instance ToHeader ClusterState++instance ToJSON ClusterState where+ toJSON = toJSONText++instance FromJSON ClusterState where+ parseJSON = parseJSONText "ClusterState"++data ClusterStateChangeReasonCode+ = AllStepsCompleted+ | BootstrapFailure+ | InstanceFailure+ | InternalError+ | StepFailure+ | UserRequest+ | ValidationError+ deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText ClusterStateChangeReasonCode where+ parser = takeLowerText >>= \case+ "all_steps_completed" -> pure AllStepsCompleted+ "bootstrap_failure" -> pure BootstrapFailure+ "instance_failure" -> pure InstanceFailure+ "internal_error" -> pure InternalError+ "step_failure" -> pure StepFailure+ "user_request" -> pure UserRequest+ "validation_error" -> pure ValidationError+ e -> fromTextError $ "Failure parsing ClusterStateChangeReasonCode from value: '" <> e+ <> "'. Accepted values: all_steps_completed, bootstrap_failure, instance_failure, internal_error, step_failure, user_request, validation_error"++instance ToText ClusterStateChangeReasonCode where+ toText = \case+ AllStepsCompleted -> "all_steps_completed"+ BootstrapFailure -> "bootstrap_failure"+ InstanceFailure -> "instance_failure"+ InternalError -> "internal_error"+ StepFailure -> "step_failure"+ UserRequest -> "user_request"+ ValidationError -> "validation_error"++instance Hashable ClusterStateChangeReasonCode+instance ToByteString ClusterStateChangeReasonCode+instance ToQuery ClusterStateChangeReasonCode+instance ToHeader ClusterStateChangeReasonCode++instance FromJSON ClusterStateChangeReasonCode where+ parseJSON = parseJSONText "ClusterStateChangeReasonCode"++data InstanceGroupState+ = IGSArrested+ | IGSBootstrapping+ | IGSEnded+ | IGSProvisioning+ | IGSResizing+ | IGSRunning+ | IGSShuttingDown+ | IGSSuspended+ | IGSTerminated+ | IGSTerminating+ deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText InstanceGroupState where+ parser = takeLowerText >>= \case+ "arrested" -> pure IGSArrested+ "bootstrapping" -> pure IGSBootstrapping+ "ended" -> pure IGSEnded+ "provisioning" -> pure IGSProvisioning+ "resizing" -> pure IGSResizing+ "running" -> pure IGSRunning+ "shutting_down" -> pure IGSShuttingDown+ "suspended" -> pure IGSSuspended+ "terminated" -> pure IGSTerminated+ "terminating" -> pure IGSTerminating+ e -> fromTextError $ "Failure parsing InstanceGroupState from value: '" <> e+ <> "'. Accepted values: arrested, bootstrapping, ended, provisioning, resizing, running, shutting_down, suspended, terminated, terminating"++instance ToText InstanceGroupState where+ toText = \case+ IGSArrested -> "arrested"+ IGSBootstrapping -> "bootstrapping"+ IGSEnded -> "ended"+ IGSProvisioning -> "provisioning"+ IGSResizing -> "resizing"+ IGSRunning -> "running"+ IGSShuttingDown -> "shutting_down"+ IGSSuspended -> "suspended"+ IGSTerminated -> "terminated"+ IGSTerminating -> "terminating"++instance Hashable InstanceGroupState+instance ToByteString InstanceGroupState+instance ToQuery InstanceGroupState+instance ToHeader InstanceGroupState++instance FromJSON InstanceGroupState where+ parseJSON = parseJSONText "InstanceGroupState"++data InstanceGroupStateChangeReasonCode+ = IGSCRCClusterTerminated+ | IGSCRCInstanceFailure+ | IGSCRCInternalError+ | IGSCRCValidationError+ deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText InstanceGroupStateChangeReasonCode where+ parser = takeLowerText >>= \case+ "cluster_terminated" -> pure IGSCRCClusterTerminated+ "instance_failure" -> pure IGSCRCInstanceFailure+ "internal_error" -> pure IGSCRCInternalError+ "validation_error" -> pure IGSCRCValidationError+ e -> fromTextError $ "Failure parsing InstanceGroupStateChangeReasonCode from value: '" <> e+ <> "'. Accepted values: cluster_terminated, instance_failure, internal_error, validation_error"++instance ToText InstanceGroupStateChangeReasonCode where+ toText = \case+ IGSCRCClusterTerminated -> "cluster_terminated"+ IGSCRCInstanceFailure -> "instance_failure"+ IGSCRCInternalError -> "internal_error"+ IGSCRCValidationError -> "validation_error"++instance Hashable InstanceGroupStateChangeReasonCode+instance ToByteString InstanceGroupStateChangeReasonCode+instance ToQuery InstanceGroupStateChangeReasonCode+instance ToHeader InstanceGroupStateChangeReasonCode++instance FromJSON InstanceGroupStateChangeReasonCode where+ parseJSON = parseJSONText "InstanceGroupStateChangeReasonCode"++data InstanceGroupType+ = IGTCore+ | IGTMaster+ | IGTTask+ deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText InstanceGroupType where+ parser = takeLowerText >>= \case+ "core" -> pure IGTCore+ "master" -> pure IGTMaster+ "task" -> pure IGTTask+ e -> fromTextError $ "Failure parsing InstanceGroupType from value: '" <> e+ <> "'. Accepted values: core, master, task"++instance ToText InstanceGroupType where+ toText = \case+ IGTCore -> "core"+ IGTMaster -> "master"+ IGTTask -> "task"++instance Hashable InstanceGroupType+instance ToByteString InstanceGroupType+instance ToQuery InstanceGroupType+instance ToHeader InstanceGroupType++instance ToJSON InstanceGroupType where+ toJSON = toJSONText++instance FromJSON InstanceGroupType where+ parseJSON = parseJSONText "InstanceGroupType"++data InstanceRoleType+ = Core+ | Master+ | Task+ deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText InstanceRoleType where+ parser = takeLowerText >>= \case+ "core" -> pure Core+ "master" -> pure Master+ "task" -> pure Task+ e -> fromTextError $ "Failure parsing InstanceRoleType from value: '" <> e+ <> "'. Accepted values: core, master, task"++instance ToText InstanceRoleType where+ toText = \case+ Core -> "core"+ Master -> "master"+ Task -> "task"++instance Hashable InstanceRoleType+instance ToByteString InstanceRoleType+instance ToQuery InstanceRoleType+instance ToHeader InstanceRoleType++instance ToJSON InstanceRoleType where+ toJSON = toJSONText++data InstanceState+ = ISAwaitingFulfillment+ | ISBootstrapping+ | ISProvisioning+ | ISRunning+ | ISTerminated+ deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText InstanceState where+ parser = takeLowerText >>= \case+ "awaiting_fulfillment" -> pure ISAwaitingFulfillment+ "bootstrapping" -> pure ISBootstrapping+ "provisioning" -> pure ISProvisioning+ "running" -> pure ISRunning+ "terminated" -> pure ISTerminated+ e -> fromTextError $ "Failure parsing InstanceState from value: '" <> e+ <> "'. Accepted values: awaiting_fulfillment, bootstrapping, provisioning, running, terminated"++instance ToText InstanceState where+ toText = \case+ ISAwaitingFulfillment -> "awaiting_fulfillment"+ ISBootstrapping -> "bootstrapping"+ ISProvisioning -> "provisioning"+ ISRunning -> "running"+ ISTerminated -> "terminated"++instance Hashable InstanceState+instance ToByteString InstanceState+instance ToQuery InstanceState+instance ToHeader InstanceState++instance FromJSON InstanceState where+ parseJSON = parseJSONText "InstanceState"++data InstanceStateChangeReasonCode+ = ISCRCBootstrapFailure+ | ISCRCClusterTerminated+ | ISCRCInstanceFailure+ | ISCRCInternalError+ | ISCRCValidationError+ deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText InstanceStateChangeReasonCode where+ parser = takeLowerText >>= \case+ "bootstrap_failure" -> pure ISCRCBootstrapFailure+ "cluster_terminated" -> pure ISCRCClusterTerminated+ "instance_failure" -> pure ISCRCInstanceFailure+ "internal_error" -> pure ISCRCInternalError+ "validation_error" -> pure ISCRCValidationError+ e -> fromTextError $ "Failure parsing InstanceStateChangeReasonCode from value: '" <> e+ <> "'. Accepted values: bootstrap_failure, cluster_terminated, instance_failure, internal_error, validation_error"++instance ToText InstanceStateChangeReasonCode where+ toText = \case+ ISCRCBootstrapFailure -> "bootstrap_failure"+ ISCRCClusterTerminated -> "cluster_terminated"+ ISCRCInstanceFailure -> "instance_failure"+ ISCRCInternalError -> "internal_error"+ ISCRCValidationError -> "validation_error"++instance Hashable InstanceStateChangeReasonCode+instance ToByteString InstanceStateChangeReasonCode+instance ToQuery InstanceStateChangeReasonCode+instance ToHeader InstanceStateChangeReasonCode++instance FromJSON InstanceStateChangeReasonCode where+ parseJSON = parseJSONText "InstanceStateChangeReasonCode"++data MarketType+ = OnDemand+ | Spot+ deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText MarketType where+ parser = takeLowerText >>= \case+ "on_demand" -> pure OnDemand+ "spot" -> pure Spot+ e -> fromTextError $ "Failure parsing MarketType from value: '" <> e+ <> "'. Accepted values: on_demand, spot"++instance ToText MarketType where+ toText = \case+ OnDemand -> "on_demand"+ Spot -> "spot"++instance Hashable MarketType+instance ToByteString MarketType+instance ToQuery MarketType+instance ToHeader MarketType++instance ToJSON MarketType where+ toJSON = toJSONText++instance FromJSON MarketType where+ parseJSON = parseJSONText "MarketType"++data StepState+ = SSCancelled+ | SSCompleted+ | SSFailed+ | SSInterrupted+ | SSPending+ | SSRunning+ deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText StepState where+ parser = takeLowerText >>= \case+ "cancelled" -> pure SSCancelled+ "completed" -> pure SSCompleted+ "failed" -> pure SSFailed+ "interrupted" -> pure SSInterrupted+ "pending" -> pure SSPending+ "running" -> pure SSRunning+ e -> fromTextError $ "Failure parsing StepState from value: '" <> e+ <> "'. Accepted values: cancelled, completed, failed, interrupted, pending, running"++instance ToText StepState where+ toText = \case+ SSCancelled -> "cancelled"+ SSCompleted -> "completed"+ SSFailed -> "failed"+ SSInterrupted -> "interrupted"+ SSPending -> "pending"+ SSRunning -> "running"++instance Hashable StepState+instance ToByteString StepState+instance ToQuery StepState+instance ToHeader StepState++instance ToJSON StepState where+ toJSON = toJSONText++instance FromJSON StepState where+ parseJSON = parseJSONText "StepState"++data StepStateChangeReasonCode =+ None+ deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText StepStateChangeReasonCode where+ parser = takeLowerText >>= \case+ "none" -> pure None+ e -> fromTextError $ "Failure parsing StepStateChangeReasonCode from value: '" <> e+ <> "'. Accepted values: none"++instance ToText StepStateChangeReasonCode where+ toText = \case+ None -> "none"++instance Hashable StepStateChangeReasonCode+instance ToByteString StepStateChangeReasonCode+instance ToQuery StepStateChangeReasonCode+instance ToHeader StepStateChangeReasonCode++instance FromJSON StepStateChangeReasonCode where+ parseJSON = parseJSONText "StepStateChangeReasonCode"
gen/Network/AWS/EMR/Waiters.hs view
@@ -1,39 +1,56 @@ {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeFamilies #-} +{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module : Network.AWS.EMR.Waiters--- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- 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--- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright : (c) 2013-2015 Brendan Hay+-- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : experimental+-- Stability : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.- module Network.AWS.EMR.Waiters where -import Network.AWS.EMR.DescribeCluster-import Network.AWS.EMR.Types-import Network.AWS.Waiters+import Network.AWS.EMR.DescribeCluster+import Network.AWS.EMR.Types+import Network.AWS.Prelude+import Network.AWS.Waiter +-- | Polls 'Network.AWS.EMR.DescribeCluster' every 30 seconds until a+-- successful state is reached. An error is returned after 60 failed checks. clusterRunning :: Wait DescribeCluster-clusterRunning = Wait- { _waitName = "ClusterRunning"- , _waitAttempts = 60- , _waitDelay = 30- , _waitAcceptors =- [ matchAll CSRunning AcceptSuccess- (dcrCluster . c1Status . csState . _Just)- , matchAll CSWaiting AcceptSuccess- (dcrCluster . c1Status . csState . _Just)- , matchAll CSTerminating AcceptFailure- (dcrCluster . c1Status . csState . _Just)- , matchAll CSTerminated AcceptFailure- (dcrCluster . c1Status . csState . _Just)- , matchAll CSTerminatedWithErrors AcceptFailure- (dcrCluster . c1Status . csState . _Just)- ]+clusterRunning =+ Wait+ { _waitName = "ClusterRunning"+ , _waitAttempts = 60+ , _waitDelay = 30+ , _waitAcceptors = [ matchAll+ "RUNNING"+ AcceptSuccess+ (dcrsCluster .+ cluStatus . csState . _Just . to toTextCI)+ , matchAll+ "WAITING"+ AcceptSuccess+ (dcrsCluster .+ cluStatus . csState . _Just . to toTextCI)+ , matchAll+ "TERMINATING"+ AcceptFailure+ (dcrsCluster .+ cluStatus . csState . _Just . to toTextCI)+ , matchAll+ "TERMINATED"+ AcceptFailure+ (dcrsCluster .+ cluStatus . csState . _Just . to toTextCI)+ , matchAll+ "TERMINATED_WITH_ERRORS"+ AcceptFailure+ (dcrsCluster .+ cluStatus . csState . _Just . to toTextCI)] }
+ test/Main.hs view
@@ -0,0 +1,21 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Main+-- Copyright : (c) 2013-2015 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)+--+module Main (main) where++import Test.Tasty+import Test.AWS.EMR+import Test.AWS.EMR.Internal++main :: IO ()+main = defaultMain $ testGroup "EMR"+ [ testGroup "tests" tests+ , testGroup "fixtures" fixtures+ ]
+ test/Test/AWS/EMR.hs view
@@ -0,0 +1,26 @@+{-# LANGUAGE OverloadedStrings #-}++-- Module : Test.AWS.EMR+-- Copyright : (c) 2013-2015 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+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++module Test.AWS.EMR+ ( tests+ , fixtures+ ) where++import Network.AWS.EMR+import Test.AWS.Gen.EMR+import Test.Tasty++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/AWS/EMR/Internal.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE OverloadedStrings #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Test.AWS.EMR.Internal+-- Copyright : (c) 2013-2015 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+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++module Test.AWS.EMR.Internal where++import Test.AWS.Prelude
+ test/Test/AWS/Gen/EMR.hs view
@@ -0,0 +1,311 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module : Test.AWS.Gen.EMR+-- Copyright : (c) 2013-2015 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)+--+module Test.AWS.Gen.EMR where++import Data.Proxy+import Test.AWS.Fixture+import Test.AWS.Prelude+import Test.Tasty+import Network.AWS.EMR+import Test.AWS.EMR.Internal++-- Auto-generated: the actual test selection needs to be manually placed into+-- the top-level so that real test data can be incrementally added.+--+-- This commented snippet is what the entire set should look like:++-- fixtures :: TestTree+-- fixtures =+-- [ testGroup "request"+-- [ testRunJobFlow $+-- runJobFlow+--+-- , testSetVisibleToAllUsers $+-- setVisibleToAllUsers+--+-- , testTerminateJobFlows $+-- terminateJobFlows+--+-- , testRemoveTags $+-- removeTags+--+-- , testDescribeStep $+-- describeStep+--+-- , testDescribeCluster $+-- describeCluster+--+-- , testModifyInstanceGroups $+-- modifyInstanceGroups+--+-- , testAddJobFlowSteps $+-- addJobFlowSteps+--+-- , testSetTerminationProtection $+-- setTerminationProtection+--+-- , testListSteps $+-- listSteps+--+-- , testAddInstanceGroups $+-- addInstanceGroups+--+-- , testListInstanceGroups $+-- listInstanceGroups+--+-- , testListBootstrapActions $+-- listBootstrapActions+--+-- , testAddTags $+-- addTags+--+-- , testListInstances $+-- listInstances+--+-- , testListClusters $+-- listClusters+--+-- ]++-- , testGroup "response"+-- [ testRunJobFlowResponse $+-- runJobFlowResponse+--+-- , testSetVisibleToAllUsersResponse $+-- setVisibleToAllUsersResponse+--+-- , testTerminateJobFlowsResponse $+-- terminateJobFlowsResponse+--+-- , testRemoveTagsResponse $+-- removeTagsResponse+--+-- , testDescribeStepResponse $+-- describeStepResponse+--+-- , testDescribeClusterResponse $+-- describeClusterResponse+--+-- , testModifyInstanceGroupsResponse $+-- modifyInstanceGroupsResponse+--+-- , testAddJobFlowStepsResponse $+-- addJobFlowStepsResponse+--+-- , testSetTerminationProtectionResponse $+-- setTerminationProtectionResponse+--+-- , testListStepsResponse $+-- listStepsResponse+--+-- , testAddInstanceGroupsResponse $+-- addInstanceGroupsResponse+--+-- , testListInstanceGroupsResponse $+-- listInstanceGroupsResponse+--+-- , testListBootstrapActionsResponse $+-- listBootstrapActionsResponse+--+-- , testAddTagsResponse $+-- addTagsResponse+--+-- , testListInstancesResponse $+-- listInstancesResponse+--+-- , testListClustersResponse $+-- listClustersResponse+--+-- ]+-- ]++-- Requests++testRunJobFlow :: RunJobFlow -> TestTree+testRunJobFlow = req+ "RunJobFlow"+ "fixture/RunJobFlow"++testSetVisibleToAllUsers :: SetVisibleToAllUsers -> TestTree+testSetVisibleToAllUsers = req+ "SetVisibleToAllUsers"+ "fixture/SetVisibleToAllUsers"++testTerminateJobFlows :: TerminateJobFlows -> TestTree+testTerminateJobFlows = req+ "TerminateJobFlows"+ "fixture/TerminateJobFlows"++testRemoveTags :: RemoveTags -> TestTree+testRemoveTags = req+ "RemoveTags"+ "fixture/RemoveTags"++testDescribeStep :: DescribeStep -> TestTree+testDescribeStep = req+ "DescribeStep"+ "fixture/DescribeStep"++testDescribeCluster :: DescribeCluster -> TestTree+testDescribeCluster = req+ "DescribeCluster"+ "fixture/DescribeCluster"++testModifyInstanceGroups :: ModifyInstanceGroups -> TestTree+testModifyInstanceGroups = req+ "ModifyInstanceGroups"+ "fixture/ModifyInstanceGroups"++testAddJobFlowSteps :: AddJobFlowSteps -> TestTree+testAddJobFlowSteps = req+ "AddJobFlowSteps"+ "fixture/AddJobFlowSteps"++testSetTerminationProtection :: SetTerminationProtection -> TestTree+testSetTerminationProtection = req+ "SetTerminationProtection"+ "fixture/SetTerminationProtection"++testListSteps :: ListSteps -> TestTree+testListSteps = req+ "ListSteps"+ "fixture/ListSteps"++testAddInstanceGroups :: AddInstanceGroups -> TestTree+testAddInstanceGroups = req+ "AddInstanceGroups"+ "fixture/AddInstanceGroups"++testListInstanceGroups :: ListInstanceGroups -> TestTree+testListInstanceGroups = req+ "ListInstanceGroups"+ "fixture/ListInstanceGroups"++testListBootstrapActions :: ListBootstrapActions -> TestTree+testListBootstrapActions = req+ "ListBootstrapActions"+ "fixture/ListBootstrapActions"++testAddTags :: AddTags -> TestTree+testAddTags = req+ "AddTags"+ "fixture/AddTags"++testListInstances :: ListInstances -> TestTree+testListInstances = req+ "ListInstances"+ "fixture/ListInstances"++testListClusters :: ListClusters -> TestTree+testListClusters = req+ "ListClusters"+ "fixture/ListClusters"++-- Responses++testRunJobFlowResponse :: RunJobFlowResponse -> TestTree+testRunJobFlowResponse = res+ "RunJobFlowResponse"+ "fixture/RunJobFlowResponse"+ (Proxy :: Proxy RunJobFlow)++testSetVisibleToAllUsersResponse :: SetVisibleToAllUsersResponse -> TestTree+testSetVisibleToAllUsersResponse = res+ "SetVisibleToAllUsersResponse"+ "fixture/SetVisibleToAllUsersResponse"+ (Proxy :: Proxy SetVisibleToAllUsers)++testTerminateJobFlowsResponse :: TerminateJobFlowsResponse -> TestTree+testTerminateJobFlowsResponse = res+ "TerminateJobFlowsResponse"+ "fixture/TerminateJobFlowsResponse"+ (Proxy :: Proxy TerminateJobFlows)++testRemoveTagsResponse :: RemoveTagsResponse -> TestTree+testRemoveTagsResponse = res+ "RemoveTagsResponse"+ "fixture/RemoveTagsResponse"+ (Proxy :: Proxy RemoveTags)++testDescribeStepResponse :: DescribeStepResponse -> TestTree+testDescribeStepResponse = res+ "DescribeStepResponse"+ "fixture/DescribeStepResponse"+ (Proxy :: Proxy DescribeStep)++testDescribeClusterResponse :: DescribeClusterResponse -> TestTree+testDescribeClusterResponse = res+ "DescribeClusterResponse"+ "fixture/DescribeClusterResponse"+ (Proxy :: Proxy DescribeCluster)++testModifyInstanceGroupsResponse :: ModifyInstanceGroupsResponse -> TestTree+testModifyInstanceGroupsResponse = res+ "ModifyInstanceGroupsResponse"+ "fixture/ModifyInstanceGroupsResponse"+ (Proxy :: Proxy ModifyInstanceGroups)++testAddJobFlowStepsResponse :: AddJobFlowStepsResponse -> TestTree+testAddJobFlowStepsResponse = res+ "AddJobFlowStepsResponse"+ "fixture/AddJobFlowStepsResponse"+ (Proxy :: Proxy AddJobFlowSteps)++testSetTerminationProtectionResponse :: SetTerminationProtectionResponse -> TestTree+testSetTerminationProtectionResponse = res+ "SetTerminationProtectionResponse"+ "fixture/SetTerminationProtectionResponse"+ (Proxy :: Proxy SetTerminationProtection)++testListStepsResponse :: ListStepsResponse -> TestTree+testListStepsResponse = res+ "ListStepsResponse"+ "fixture/ListStepsResponse"+ (Proxy :: Proxy ListSteps)++testAddInstanceGroupsResponse :: AddInstanceGroupsResponse -> TestTree+testAddInstanceGroupsResponse = res+ "AddInstanceGroupsResponse"+ "fixture/AddInstanceGroupsResponse"+ (Proxy :: Proxy AddInstanceGroups)++testListInstanceGroupsResponse :: ListInstanceGroupsResponse -> TestTree+testListInstanceGroupsResponse = res+ "ListInstanceGroupsResponse"+ "fixture/ListInstanceGroupsResponse"+ (Proxy :: Proxy ListInstanceGroups)++testListBootstrapActionsResponse :: ListBootstrapActionsResponse -> TestTree+testListBootstrapActionsResponse = res+ "ListBootstrapActionsResponse"+ "fixture/ListBootstrapActionsResponse"+ (Proxy :: Proxy ListBootstrapActions)++testAddTagsResponse :: AddTagsResponse -> TestTree+testAddTagsResponse = res+ "AddTagsResponse"+ "fixture/AddTagsResponse"+ (Proxy :: Proxy AddTags)++testListInstancesResponse :: ListInstancesResponse -> TestTree+testListInstancesResponse = res+ "ListInstancesResponse"+ "fixture/ListInstancesResponse"+ (Proxy :: Proxy ListInstances)++testListClustersResponse :: ListClustersResponse -> TestTree+testListClustersResponse = res+ "ListClustersResponse"+ "fixture/ListClustersResponse"+ (Proxy :: Proxy ListClusters)