git-off

Log

Files

Refs

README

emr.d.ts (96100B)

     1 import {Request} from '../lib/request';
     2 import {Response} from '../lib/response';
     3 import {AWSError} from '../lib/error';
     4 import {Service} from '../lib/service';
     5 import {ServiceConfigurationOptions} from '../lib/service';
     6 import {ConfigBase as Config} from '../lib/config';
     7 interface Blob {}
     8 declare class EMR extends Service {
     9   /**
    10    * Constructs a service object. This object has one method for each API operation.
    11    */
    12   constructor(options?: EMR.Types.ClientConfiguration)
    13   config: Config & EMR.Types.ClientConfiguration;
    14   /**
    15    * Adds one or more instance groups to a running cluster.
    16    */
    17   addInstanceGroups(params: EMR.Types.AddInstanceGroupsInput, callback?: (err: AWSError, data: EMR.Types.AddInstanceGroupsOutput) => void): Request<EMR.Types.AddInstanceGroupsOutput, AWSError>;
    18   /**
    19    * Adds one or more instance groups to a running cluster.
    20    */
    21   addInstanceGroups(callback?: (err: AWSError, data: EMR.Types.AddInstanceGroupsOutput) => void): Request<EMR.Types.AddInstanceGroupsOutput, AWSError>;
    22   /**
    23    * 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, see Add More than 256 Steps to a Job Flow in the Amazon EMR 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. Amazon EMR 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.
    24    */
    25   addJobFlowSteps(params: EMR.Types.AddJobFlowStepsInput, callback?: (err: AWSError, data: EMR.Types.AddJobFlowStepsOutput) => void): Request<EMR.Types.AddJobFlowStepsOutput, AWSError>;
    26   /**
    27    * 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, see Add More than 256 Steps to a Job Flow in the Amazon EMR 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. Amazon EMR 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.
    28    */
    29   addJobFlowSteps(callback?: (err: AWSError, data: EMR.Types.AddJobFlowStepsOutput) => void): Request<EMR.Types.AddJobFlowStepsOutput, AWSError>;
    30   /**
    31    * 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 Tagging Amazon EMR Resources. 
    32    */
    33   addTags(params: EMR.Types.AddTagsInput, callback?: (err: AWSError, data: EMR.Types.AddTagsOutput) => void): Request<EMR.Types.AddTagsOutput, AWSError>;
    34   /**
    35    * 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 Tagging Amazon EMR Resources. 
    36    */
    37   addTags(callback?: (err: AWSError, data: EMR.Types.AddTagsOutput) => void): Request<EMR.Types.AddTagsOutput, AWSError>;
    38   /**
    39    * Cancels a pending step or steps in a running cluster. Available only in Amazon EMR versions 4.8.0 and later, excluding version 5.0.0. A maximum of 256 steps are allowed in each CancelSteps request. CancelSteps is idempotent but asynchronous; it does not guarantee a step will be canceled, even if the request is successfully submitted. You can only cancel steps that are in a PENDING state.
    40    */
    41   cancelSteps(params: EMR.Types.CancelStepsInput, callback?: (err: AWSError, data: EMR.Types.CancelStepsOutput) => void): Request<EMR.Types.CancelStepsOutput, AWSError>;
    42   /**
    43    * Cancels a pending step or steps in a running cluster. Available only in Amazon EMR versions 4.8.0 and later, excluding version 5.0.0. A maximum of 256 steps are allowed in each CancelSteps request. CancelSteps is idempotent but asynchronous; it does not guarantee a step will be canceled, even if the request is successfully submitted. You can only cancel steps that are in a PENDING state.
    44    */
    45   cancelSteps(callback?: (err: AWSError, data: EMR.Types.CancelStepsOutput) => void): Request<EMR.Types.CancelStepsOutput, AWSError>;
    46   /**
    47    * Creates a security configuration, which is stored in the service and can be specified when a cluster is created.
    48    */
    49   createSecurityConfiguration(params: EMR.Types.CreateSecurityConfigurationInput, callback?: (err: AWSError, data: EMR.Types.CreateSecurityConfigurationOutput) => void): Request<EMR.Types.CreateSecurityConfigurationOutput, AWSError>;
    50   /**
    51    * Creates a security configuration, which is stored in the service and can be specified when a cluster is created.
    52    */
    53   createSecurityConfiguration(callback?: (err: AWSError, data: EMR.Types.CreateSecurityConfigurationOutput) => void): Request<EMR.Types.CreateSecurityConfigurationOutput, AWSError>;
    54   /**
    55    * Deletes a security configuration.
    56    */
    57   deleteSecurityConfiguration(params: EMR.Types.DeleteSecurityConfigurationInput, callback?: (err: AWSError, data: EMR.Types.DeleteSecurityConfigurationOutput) => void): Request<EMR.Types.DeleteSecurityConfigurationOutput, AWSError>;
    58   /**
    59    * Deletes a security configuration.
    60    */
    61   deleteSecurityConfiguration(callback?: (err: AWSError, data: EMR.Types.DeleteSecurityConfigurationOutput) => void): Request<EMR.Types.DeleteSecurityConfigurationOutput, AWSError>;
    62   /**
    63    * Provides cluster-level details including status, hardware and software configuration, VPC settings, and so on. For information about the cluster steps, see ListSteps.
    64    */
    65   describeCluster(params: EMR.Types.DescribeClusterInput, callback?: (err: AWSError, data: EMR.Types.DescribeClusterOutput) => void): Request<EMR.Types.DescribeClusterOutput, AWSError>;
    66   /**
    67    * Provides cluster-level details including status, hardware and software configuration, VPC settings, and so on. For information about the cluster steps, see ListSteps.
    68    */
    69   describeCluster(callback?: (err: AWSError, data: EMR.Types.DescribeClusterOutput) => void): Request<EMR.Types.DescribeClusterOutput, AWSError>;
    70   /**
    71    * 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 EMR can return a maximum of 512 job flow descriptions.
    72    */
    73   describeJobFlows(params: EMR.Types.DescribeJobFlowsInput, callback?: (err: AWSError, data: EMR.Types.DescribeJobFlowsOutput) => void): Request<EMR.Types.DescribeJobFlowsOutput, AWSError>;
    74   /**
    75    * 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 EMR can return a maximum of 512 job flow descriptions.
    76    */
    77   describeJobFlows(callback?: (err: AWSError, data: EMR.Types.DescribeJobFlowsOutput) => void): Request<EMR.Types.DescribeJobFlowsOutput, AWSError>;
    78   /**
    79    * Provides the details of a security configuration by returning the configuration JSON.
    80    */
    81   describeSecurityConfiguration(params: EMR.Types.DescribeSecurityConfigurationInput, callback?: (err: AWSError, data: EMR.Types.DescribeSecurityConfigurationOutput) => void): Request<EMR.Types.DescribeSecurityConfigurationOutput, AWSError>;
    82   /**
    83    * Provides the details of a security configuration by returning the configuration JSON.
    84    */
    85   describeSecurityConfiguration(callback?: (err: AWSError, data: EMR.Types.DescribeSecurityConfigurationOutput) => void): Request<EMR.Types.DescribeSecurityConfigurationOutput, AWSError>;
    86   /**
    87    * Provides more detail about the cluster step.
    88    */
    89   describeStep(params: EMR.Types.DescribeStepInput, callback?: (err: AWSError, data: EMR.Types.DescribeStepOutput) => void): Request<EMR.Types.DescribeStepOutput, AWSError>;
    90   /**
    91    * Provides more detail about the cluster step.
    92    */
    93   describeStep(callback?: (err: AWSError, data: EMR.Types.DescribeStepOutput) => void): Request<EMR.Types.DescribeStepOutput, AWSError>;
    94   /**
    95    * Provides information about the bootstrap actions associated with a cluster.
    96    */
    97   listBootstrapActions(params: EMR.Types.ListBootstrapActionsInput, callback?: (err: AWSError, data: EMR.Types.ListBootstrapActionsOutput) => void): Request<EMR.Types.ListBootstrapActionsOutput, AWSError>;
    98   /**
    99    * Provides information about the bootstrap actions associated with a cluster.
   100    */
   101   listBootstrapActions(callback?: (err: AWSError, data: EMR.Types.ListBootstrapActionsOutput) => void): Request<EMR.Types.ListBootstrapActionsOutput, AWSError>;
   102   /**
   103    * 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.
   104    */
   105   listClusters(params: EMR.Types.ListClustersInput, callback?: (err: AWSError, data: EMR.Types.ListClustersOutput) => void): Request<EMR.Types.ListClustersOutput, AWSError>;
   106   /**
   107    * 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.
   108    */
   109   listClusters(callback?: (err: AWSError, data: EMR.Types.ListClustersOutput) => void): Request<EMR.Types.ListClustersOutput, AWSError>;
   110   /**
   111    * Provides all available details about the instance groups in a cluster.
   112    */
   113   listInstanceGroups(params: EMR.Types.ListInstanceGroupsInput, callback?: (err: AWSError, data: EMR.Types.ListInstanceGroupsOutput) => void): Request<EMR.Types.ListInstanceGroupsOutput, AWSError>;
   114   /**
   115    * Provides all available details about the instance groups in a cluster.
   116    */
   117   listInstanceGroups(callback?: (err: AWSError, data: EMR.Types.ListInstanceGroupsOutput) => void): Request<EMR.Types.ListInstanceGroupsOutput, AWSError>;
   118   /**
   119    * 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.
   120    */
   121   listInstances(params: EMR.Types.ListInstancesInput, callback?: (err: AWSError, data: EMR.Types.ListInstancesOutput) => void): Request<EMR.Types.ListInstancesOutput, AWSError>;
   122   /**
   123    * 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.
   124    */
   125   listInstances(callback?: (err: AWSError, data: EMR.Types.ListInstancesOutput) => void): Request<EMR.Types.ListInstancesOutput, AWSError>;
   126   /**
   127    * Lists all the security configurations visible to this account, providing their creation dates and times, and their names. This call returns a maximum of 50 clusters per call, but returns a marker to track the paging of the cluster list across multiple ListSecurityConfigurations calls.
   128    */
   129   listSecurityConfigurations(params: EMR.Types.ListSecurityConfigurationsInput, callback?: (err: AWSError, data: EMR.Types.ListSecurityConfigurationsOutput) => void): Request<EMR.Types.ListSecurityConfigurationsOutput, AWSError>;
   130   /**
   131    * Lists all the security configurations visible to this account, providing their creation dates and times, and their names. This call returns a maximum of 50 clusters per call, but returns a marker to track the paging of the cluster list across multiple ListSecurityConfigurations calls.
   132    */
   133   listSecurityConfigurations(callback?: (err: AWSError, data: EMR.Types.ListSecurityConfigurationsOutput) => void): Request<EMR.Types.ListSecurityConfigurationsOutput, AWSError>;
   134   /**
   135    * Provides a list of steps for the cluster in reverse order unless you specify stepIds with the request.
   136    */
   137   listSteps(params: EMR.Types.ListStepsInput, callback?: (err: AWSError, data: EMR.Types.ListStepsOutput) => void): Request<EMR.Types.ListStepsOutput, AWSError>;
   138   /**
   139    * Provides a list of steps for the cluster in reverse order unless you specify stepIds with the request.
   140    */
   141   listSteps(callback?: (err: AWSError, data: EMR.Types.ListStepsOutput) => void): Request<EMR.Types.ListStepsOutput, AWSError>;
   142   /**
   143    * 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.
   144    */
   145   modifyInstanceGroups(params: EMR.Types.ModifyInstanceGroupsInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   146   /**
   147    * 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.
   148    */
   149   modifyInstanceGroups(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   150   /**
   151    * Creates or updates an automatic scaling policy for a core instance group or task instance group in an Amazon EMR cluster. The automatic scaling policy defines how an instance group dynamically adds and terminates EC2 instances in response to the value of a CloudWatch metric.
   152    */
   153   putAutoScalingPolicy(params: EMR.Types.PutAutoScalingPolicyInput, callback?: (err: AWSError, data: EMR.Types.PutAutoScalingPolicyOutput) => void): Request<EMR.Types.PutAutoScalingPolicyOutput, AWSError>;
   154   /**
   155    * Creates or updates an automatic scaling policy for a core instance group or task instance group in an Amazon EMR cluster. The automatic scaling policy defines how an instance group dynamically adds and terminates EC2 instances in response to the value of a CloudWatch metric.
   156    */
   157   putAutoScalingPolicy(callback?: (err: AWSError, data: EMR.Types.PutAutoScalingPolicyOutput) => void): Request<EMR.Types.PutAutoScalingPolicyOutput, AWSError>;
   158   /**
   159    * Removes an automatic scaling policy from a specified instance group within an EMR cluster.
   160    */
   161   removeAutoScalingPolicy(params: EMR.Types.RemoveAutoScalingPolicyInput, callback?: (err: AWSError, data: EMR.Types.RemoveAutoScalingPolicyOutput) => void): Request<EMR.Types.RemoveAutoScalingPolicyOutput, AWSError>;
   162   /**
   163    * Removes an automatic scaling policy from a specified instance group within an EMR cluster.
   164    */
   165   removeAutoScalingPolicy(callback?: (err: AWSError, data: EMR.Types.RemoveAutoScalingPolicyOutput) => void): Request<EMR.Types.RemoveAutoScalingPolicyOutput, AWSError>;
   166   /**
   167    * 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 Tagging Amazon EMR Resources.  The following example removes the stack tag with value Prod from a cluster:
   168    */
   169   removeTags(params: EMR.Types.RemoveTagsInput, callback?: (err: AWSError, data: EMR.Types.RemoveTagsOutput) => void): Request<EMR.Types.RemoveTagsOutput, AWSError>;
   170   /**
   171    * 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 Tagging Amazon EMR Resources.  The following example removes the stack tag with value Prod from a cluster:
   172    */
   173   removeTags(callback?: (err: AWSError, data: EMR.Types.RemoveTagsOutput) => void): Request<EMR.Types.RemoveTagsOutput, AWSError>;
   174   /**
   175    * RunJobFlow creates and starts running a new job flow. The job flow will run the steps specified. After 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 after 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. 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, see Add More than 256 Steps to a Job Flow in the Amazon EMR Management Guide. For long running job flows, we recommend that you periodically store your results.
   176    */
   177   runJobFlow(params: EMR.Types.RunJobFlowInput, callback?: (err: AWSError, data: EMR.Types.RunJobFlowOutput) => void): Request<EMR.Types.RunJobFlowOutput, AWSError>;
   178   /**
   179    * RunJobFlow creates and starts running a new job flow. The job flow will run the steps specified. After 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 after 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. 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, see Add More than 256 Steps to a Job Flow in the Amazon EMR Management Guide. For long running job flows, we recommend that you periodically store your results.
   180    */
   181   runJobFlow(callback?: (err: AWSError, data: EMR.Types.RunJobFlowOutput) => void): Request<EMR.Types.RunJobFlowOutput, AWSError>;
   182   /**
   183    * SetTerminationProtection locks a job flow so the 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.  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.   For more information, seeProtecting a Job Flow from Termination in the Amazon EMR Guide. 
   184    */
   185   setTerminationProtection(params: EMR.Types.SetTerminationProtectionInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   186   /**
   187    * SetTerminationProtection locks a job flow so the 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.  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.   For more information, seeProtecting a Job Flow from Termination in the Amazon EMR Guide. 
   188    */
   189   setTerminationProtection(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   190   /**
   191    * 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.
   192    */
   193   setVisibleToAllUsers(params: EMR.Types.SetVisibleToAllUsersInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   194   /**
   195    * 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.
   196    */
   197   setVisibleToAllUsers(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   198   /**
   199    * 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 1-5 minutes for the job flow to completely terminate and release allocated resources, such as Amazon EC2 instances.
   200    */
   201   terminateJobFlows(params: EMR.Types.TerminateJobFlowsInput, callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   202   /**
   203    * 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 1-5 minutes for the job flow to completely terminate and release allocated resources, such as Amazon EC2 instances.
   204    */
   205   terminateJobFlows(callback?: (err: AWSError, data: {}) => void): Request<{}, AWSError>;
   206   /**
   207    * Waits for the clusterRunning state by periodically calling the underlying EMR.describeClusteroperation every 30 seconds (at most 60 times).
   208    */
   209   waitFor(state: "clusterRunning", params: EMR.Types.DescribeClusterInput, callback?: (err: AWSError, data: EMR.Types.DescribeClusterOutput) => void): Request<EMR.Types.DescribeClusterOutput, AWSError>;
   210   /**
   211    * Waits for the clusterRunning state by periodically calling the underlying EMR.describeClusteroperation every 30 seconds (at most 60 times).
   212    */
   213   waitFor(state: "clusterRunning", callback?: (err: AWSError, data: EMR.Types.DescribeClusterOutput) => void): Request<EMR.Types.DescribeClusterOutput, AWSError>;
   214   /**
   215    * Waits for the stepComplete state by periodically calling the underlying EMR.describeStepoperation every 30 seconds (at most 60 times).
   216    */
   217   waitFor(state: "stepComplete", params: EMR.Types.DescribeStepInput, callback?: (err: AWSError, data: EMR.Types.DescribeStepOutput) => void): Request<EMR.Types.DescribeStepOutput, AWSError>;
   218   /**
   219    * Waits for the stepComplete state by periodically calling the underlying EMR.describeStepoperation every 30 seconds (at most 60 times).
   220    */
   221   waitFor(state: "stepComplete", callback?: (err: AWSError, data: EMR.Types.DescribeStepOutput) => void): Request<EMR.Types.DescribeStepOutput, AWSError>;
   222 }
   223 declare namespace EMR.Types {
   224   export type ActionOnFailure = "TERMINATE_JOB_FLOW"|"TERMINATE_CLUSTER"|"CANCEL_AND_WAIT"|"CONTINUE"|string;
   225   export interface AddInstanceGroupsInput {
   226     /**
   227      * Instance groups to add.
   228      */
   229     InstanceGroups: InstanceGroupConfigList;
   230     /**
   231      * Job flow in which to add the instance groups.
   232      */
   233     JobFlowId: XmlStringMaxLen256;
   234   }
   235   export interface AddInstanceGroupsOutput {
   236     /**
   237      * The job flow ID in which the instance groups are added.
   238      */
   239     JobFlowId?: XmlStringMaxLen256;
   240     /**
   241      * Instance group IDs of the newly created instance groups.
   242      */
   243     InstanceGroupIds?: InstanceGroupIdsList;
   244   }
   245   export interface AddJobFlowStepsInput {
   246     /**
   247      * A string that uniquely identifies the job flow. This identifier is returned by RunJobFlow and can also be obtained from ListClusters. 
   248      */
   249     JobFlowId: XmlStringMaxLen256;
   250     /**
   251      *  A list of StepConfig to be executed by the job flow. 
   252      */
   253     Steps: StepConfigList;
   254   }
   255   export interface AddJobFlowStepsOutput {
   256     /**
   257      * The identifiers of the list of steps added to the job flow.
   258      */
   259     StepIds?: StepIdsList;
   260   }
   261   export interface AddTagsInput {
   262     /**
   263      * The Amazon EMR resource identifier to which tags will be added. This value must be a cluster identifier.
   264      */
   265     ResourceId: ResourceId;
   266     /**
   267      * A list of tags to associate with a cluster and propagate to 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.
   268      */
   269     Tags: TagList;
   270   }
   271   export interface AddTagsOutput {
   272   }
   273   export type AdjustmentType = "CHANGE_IN_CAPACITY"|"PERCENT_CHANGE_IN_CAPACITY"|"EXACT_CAPACITY"|string;
   274   export interface Application {
   275     /**
   276      * The name of the application.
   277      */
   278     Name?: String;
   279     /**
   280      * The version of the application.
   281      */
   282     Version?: String;
   283     /**
   284      * Arguments for Amazon EMR to pass to the application.
   285      */
   286     Args?: StringList;
   287     /**
   288      * This option is for advanced users only. This is meta information about third-party applications that third-party vendors use for testing purposes.
   289      */
   290     AdditionalInfo?: StringMap;
   291   }
   292   export type ApplicationList = Application[];
   293   export interface AutoScalingPolicy {
   294     /**
   295      * The upper and lower EC2 instance limits for an automatic scaling policy. Automatic scaling activity will not cause an instance group to grow above or below these limits.
   296      */
   297     Constraints: ScalingConstraints;
   298     /**
   299      * The scale-in and scale-out rules that comprise the automatic scaling policy.
   300      */
   301     Rules: ScalingRuleList;
   302   }
   303   export interface AutoScalingPolicyDescription {
   304     /**
   305      * The status of an automatic scaling policy. 
   306      */
   307     Status?: AutoScalingPolicyStatus;
   308     /**
   309      * The upper and lower EC2 instance limits for an automatic scaling policy. Automatic scaling activity will not cause an instance group to grow above or below these limits.
   310      */
   311     Constraints?: ScalingConstraints;
   312     /**
   313      * The scale-in and scale-out rules that comprise the automatic scaling policy.
   314      */
   315     Rules?: ScalingRuleList;
   316   }
   317   export type AutoScalingPolicyState = "PENDING"|"ATTACHING"|"ATTACHED"|"DETACHING"|"DETACHED"|"FAILED"|string;
   318   export interface AutoScalingPolicyStateChangeReason {
   319     /**
   320      * The code indicating the reason for the change in status.USER_REQUEST indicates that the scaling policy status was changed by a user. PROVISION_FAILURE indicates that the status change was because the policy failed to provision. CLEANUP_FAILURE indicates something unclean happened.--&gt;
   321      */
   322     Code?: AutoScalingPolicyStateChangeReasonCode;
   323     /**
   324      * A friendly, more verbose message that accompanies an automatic scaling policy state change.
   325      */
   326     Message?: String;
   327   }
   328   export type AutoScalingPolicyStateChangeReasonCode = "USER_REQUEST"|"PROVISION_FAILURE"|"CLEANUP_FAILURE"|string;
   329   export interface AutoScalingPolicyStatus {
   330     /**
   331      * 
   332      */
   333     State?: AutoScalingPolicyState;
   334     /**
   335      * The reason for a change in status.
   336      */
   337     StateChangeReason?: AutoScalingPolicyStateChangeReason;
   338   }
   339   export type Boolean = boolean;
   340   export type BooleanObject = boolean;
   341   export interface BootstrapActionConfig {
   342     /**
   343      * The name of the bootstrap action.
   344      */
   345     Name: XmlStringMaxLen256;
   346     /**
   347      * The script run by the bootstrap action.
   348      */
   349     ScriptBootstrapAction: ScriptBootstrapActionConfig;
   350   }
   351   export type BootstrapActionConfigList = BootstrapActionConfig[];
   352   export interface BootstrapActionDetail {
   353     /**
   354      * A description of the bootstrap action.
   355      */
   356     BootstrapActionConfig?: BootstrapActionConfig;
   357   }
   358   export type BootstrapActionDetailList = BootstrapActionDetail[];
   359   export interface CancelStepsInfo {
   360     StepId?: StepId;
   361     Status?: CancelStepsRequestStatus;
   362     Reason?: String;
   363   }
   364   export type CancelStepsInfoList = CancelStepsInfo[];
   365   export interface CancelStepsInput {
   366     /**
   367      * The ClusterID for which specified steps will be canceled. Use RunJobFlow and ListClusters to get ClusterIDs. 
   368      */
   369     ClusterId?: XmlStringMaxLen256;
   370     /**
   371      * The list of StepIDs to cancel. Use ListSteps to get steps and their states for the specified cluster.
   372      */
   373     StepIds?: StepIdsList;
   374   }
   375   export interface CancelStepsOutput {
   376     /**
   377      * A list of CancelStepsInfo, which shows the status of specified cancel requests for each StepID specified.
   378      */
   379     CancelStepsInfoList?: CancelStepsInfoList;
   380   }
   381   export type CancelStepsRequestStatus = "SUBMITTED"|"FAILED"|string;
   382   export interface CloudWatchAlarmDefinition {
   383     /**
   384      * Determines how the metric specified by MetricName is compared to the value specified by Threshold.
   385      */
   386     ComparisonOperator: ComparisonOperator;
   387     /**
   388      * The number of periods, expressed in seconds using Period, during which the alarm condition must exist before the alarm triggers automatic scaling activity. The default value is 1.
   389      */
   390     EvaluationPeriods?: Integer;
   391     /**
   392      * The name of the CloudWatch metric that is watched to determine an alarm condition.
   393      */
   394     MetricName: String;
   395     /**
   396      * The namespace for the CloudWatch metric. The default is AWS/ElasticMapReduce.
   397      */
   398     Namespace?: String;
   399     /**
   400      * The period, in seconds, over which the statistic is applied. EMR CloudWatch metrics are emitted every five minutes (300 seconds), so if an EMR CloudWatch metric is specified, specify 300.
   401      */
   402     Period: Integer;
   403     /**
   404      * The statistic to apply to the metric associated with the alarm. The default is AVERAGE.
   405      */
   406     Statistic?: Statistic;
   407     /**
   408      * The value against which the specified statistic is compared.
   409      */
   410     Threshold: NonNegativeDouble;
   411     /**
   412      * The unit of measure associated with the CloudWatch metric being watched. The value specified for Unit must correspond to the units specified in the CloudWatch metric.
   413      */
   414     Unit?: Unit;
   415     /**
   416      * A CloudWatch metric dimension.
   417      */
   418     Dimensions?: MetricDimensionList;
   419   }
   420   export interface Cluster {
   421     /**
   422      * The unique identifier for the cluster.
   423      */
   424     Id?: ClusterId;
   425     /**
   426      * The name of the cluster.
   427      */
   428     Name?: String;
   429     /**
   430      * The current status details about the cluster.
   431      */
   432     Status?: ClusterStatus;
   433     /**
   434      * Provides information about the EC2 instances in a cluster grouped by category. For example, key name, subnet ID, IAM instance profile, and so on.
   435      */
   436     Ec2InstanceAttributes?: Ec2InstanceAttributes;
   437     /**
   438      * The path to the Amazon S3 location where logs for this cluster are stored.
   439      */
   440     LogUri?: String;
   441     /**
   442      * The AMI version requested for this cluster.
   443      */
   444     RequestedAmiVersion?: String;
   445     /**
   446      * The AMI version running on this cluster.
   447      */
   448     RunningAmiVersion?: String;
   449     /**
   450      * The release label for the Amazon EMR release. For Amazon EMR 3.x and 2.x AMIs, use amiVersion instead instead of ReleaseLabel.
   451      */
   452     ReleaseLabel?: String;
   453     /**
   454      * Specifies whether the cluster should terminate after completing all steps.
   455      */
   456     AutoTerminate?: Boolean;
   457     /**
   458      * 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.
   459      */
   460     TerminationProtected?: Boolean;
   461     /**
   462      * 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.
   463      */
   464     VisibleToAllUsers?: Boolean;
   465     /**
   466      * The applications installed on this cluster.
   467      */
   468     Applications?: ApplicationList;
   469     /**
   470      * A list of tags associated with a cluster.
   471      */
   472     Tags?: TagList;
   473     /**
   474      * The IAM role that will be assumed by the Amazon EMR service to access AWS resources on your behalf.
   475      */
   476     ServiceRole?: String;
   477     /**
   478      * 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.
   479      */
   480     NormalizedInstanceHours?: Integer;
   481     /**
   482      * The public DNS name of the master EC2 instance.
   483      */
   484     MasterPublicDnsName?: String;
   485     /**
   486      *  Amazon EMR releases 4.x or later.  The list of Configurations supplied to the EMR cluster.
   487      */
   488     Configurations?: ConfigurationList;
   489     /**
   490      * The name of the security configuration applied to the cluster.
   491      */
   492     SecurityConfiguration?: XmlString;
   493     /**
   494      * An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group.
   495      */
   496     AutoScalingRole?: XmlString;
   497     /**
   498      * The way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized. TERMINATE_AT_INSTANCE_HOUR indicates that Amazon EMR terminates nodes at the instance-hour boundary, regardless of when the request to terminate the instance was submitted. This option is only available with Amazon EMR 5.1.0 and later and is the default for clusters created using that version. TERMINATE_AT_TASK_COMPLETION indicates that Amazon EMR blacklists and drains tasks from nodes before terminating the Amazon EC2 instances, regardless of the instance-hour boundary. With either behavior, Amazon EMR removes the least active nodes first and blocks instance termination if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION is available only in Amazon EMR version 4.1.0 and later, and is the default for versions of Amazon EMR earlier than 5.1.0.
   499      */
   500     ScaleDownBehavior?: ScaleDownBehavior;
   501   }
   502   export type ClusterId = string;
   503   export type ClusterState = "STARTING"|"BOOTSTRAPPING"|"RUNNING"|"WAITING"|"TERMINATING"|"TERMINATED"|"TERMINATED_WITH_ERRORS"|string;
   504   export interface ClusterStateChangeReason {
   505     /**
   506      * The programmatic code for the state change reason.
   507      */
   508     Code?: ClusterStateChangeReasonCode;
   509     /**
   510      * The descriptive message for the state change reason.
   511      */
   512     Message?: String;
   513   }
   514   export type ClusterStateChangeReasonCode = "INTERNAL_ERROR"|"VALIDATION_ERROR"|"INSTANCE_FAILURE"|"BOOTSTRAP_FAILURE"|"USER_REQUEST"|"STEP_FAILURE"|"ALL_STEPS_COMPLETED"|string;
   515   export type ClusterStateList = ClusterState[];
   516   export interface ClusterStatus {
   517     /**
   518      * The current state of the cluster.
   519      */
   520     State?: ClusterState;
   521     /**
   522      * The reason for the cluster status change.
   523      */
   524     StateChangeReason?: ClusterStateChangeReason;
   525     /**
   526      * A timeline that represents the status of a cluster over the lifetime of the cluster.
   527      */
   528     Timeline?: ClusterTimeline;
   529   }
   530   export interface ClusterSummary {
   531     /**
   532      * The unique identifier for the cluster.
   533      */
   534     Id?: ClusterId;
   535     /**
   536      * The name of the cluster.
   537      */
   538     Name?: String;
   539     /**
   540      * The details about the current status of the cluster.
   541      */
   542     Status?: ClusterStatus;
   543     /**
   544      * 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.
   545      */
   546     NormalizedInstanceHours?: Integer;
   547   }
   548   export type ClusterSummaryList = ClusterSummary[];
   549   export interface ClusterTimeline {
   550     /**
   551      * The creation date and time of the cluster.
   552      */
   553     CreationDateTime?: _Date;
   554     /**
   555      * The date and time when the cluster was ready to execute steps.
   556      */
   557     ReadyDateTime?: _Date;
   558     /**
   559      * The date and time when the cluster was terminated.
   560      */
   561     EndDateTime?: _Date;
   562   }
   563   export interface Command {
   564     /**
   565      * The name of the command.
   566      */
   567     Name?: String;
   568     /**
   569      * The Amazon S3 location of the command script.
   570      */
   571     ScriptPath?: String;
   572     /**
   573      * Arguments for Amazon EMR to pass to the command for execution.
   574      */
   575     Args?: StringList;
   576   }
   577   export type CommandList = Command[];
   578   export type ComparisonOperator = "GREATER_THAN_OR_EQUAL"|"GREATER_THAN"|"LESS_THAN"|"LESS_THAN_OR_EQUAL"|string;
   579   export interface Configuration {
   580     /**
   581      * The classification of a configuration. For more information see, Amazon EMR Configurations. 
   582      */
   583     Classification?: String;
   584     /**
   585      * A list of configurations you apply to this configuration object.
   586      */
   587     Configurations?: ConfigurationList;
   588     /**
   589      * A set of properties supplied to the Configuration object.
   590      */
   591     Properties?: StringMap;
   592   }
   593   export type ConfigurationList = Configuration[];
   594   export interface CreateSecurityConfigurationInput {
   595     /**
   596      * The name of the security configuration.
   597      */
   598     Name: XmlString;
   599     /**
   600      * The security configuration details in JSON format.
   601      */
   602     SecurityConfiguration: String;
   603   }
   604   export interface CreateSecurityConfigurationOutput {
   605     /**
   606      * The name of the security configuration.
   607      */
   608     Name: XmlString;
   609     /**
   610      * The date and time the security configuration was created.
   611      */
   612     CreationDateTime: _Date;
   613   }
   614   export type _Date = Date;
   615   export interface DeleteSecurityConfigurationInput {
   616     /**
   617      * The name of the security configuration.
   618      */
   619     Name: XmlString;
   620   }
   621   export interface DeleteSecurityConfigurationOutput {
   622   }
   623   export interface DescribeClusterInput {
   624     /**
   625      * The identifier of the cluster to describe.
   626      */
   627     ClusterId: ClusterId;
   628   }
   629   export interface DescribeClusterOutput {
   630     /**
   631      * This output contains the details for the requested cluster.
   632      */
   633     Cluster?: Cluster;
   634   }
   635   export interface DescribeJobFlowsInput {
   636     /**
   637      * Return only job flows created after this date and time.
   638      */
   639     CreatedAfter?: _Date;
   640     /**
   641      * Return only job flows created before this date and time.
   642      */
   643     CreatedBefore?: _Date;
   644     /**
   645      * Return only job flows whose job flow ID is contained in this list.
   646      */
   647     JobFlowIds?: XmlStringList;
   648     /**
   649      * Return only job flows whose state is contained in this list.
   650      */
   651     JobFlowStates?: JobFlowExecutionStateList;
   652   }
   653   export interface DescribeJobFlowsOutput {
   654     /**
   655      * A list of job flows matching the parameters supplied.
   656      */
   657     JobFlows?: JobFlowDetailList;
   658   }
   659   export interface DescribeSecurityConfigurationInput {
   660     /**
   661      * The name of the security configuration.
   662      */
   663     Name: XmlString;
   664   }
   665   export interface DescribeSecurityConfigurationOutput {
   666     /**
   667      * The name of the security configuration.
   668      */
   669     Name?: XmlString;
   670     /**
   671      * The security configuration details in JSON format.
   672      */
   673     SecurityConfiguration?: String;
   674     /**
   675      * The date and time the security configuration was created
   676      */
   677     CreationDateTime?: _Date;
   678   }
   679   export interface DescribeStepInput {
   680     /**
   681      * The identifier of the cluster with steps to describe.
   682      */
   683     ClusterId: ClusterId;
   684     /**
   685      * The identifier of the step to describe.
   686      */
   687     StepId: StepId;
   688   }
   689   export interface DescribeStepOutput {
   690     /**
   691      * The step details for the requested step identifier.
   692      */
   693     Step?: Step;
   694   }
   695   export type EC2InstanceIdsList = InstanceId[];
   696   export type EC2InstanceIdsToTerminateList = InstanceId[];
   697   export interface EbsBlockDevice {
   698     /**
   699      * EBS volume specifications such as volume type, IOPS, and size (GiB) that will be requested for the EBS volume attached to an EC2 instance in the cluster.
   700      */
   701     VolumeSpecification?: VolumeSpecification;
   702     /**
   703      * The device name that is exposed to the instance, such as /dev/sdh.
   704      */
   705     Device?: String;
   706   }
   707   export interface EbsBlockDeviceConfig {
   708     /**
   709      * EBS volume specifications such as volume type, IOPS, and size (GiB) that will be requested for the EBS volume attached to an EC2 instance in the cluster.
   710      */
   711     VolumeSpecification: VolumeSpecification;
   712     /**
   713      * Number of EBS volumes with a specific volume configuration that will be associated with every instance in the instance group
   714      */
   715     VolumesPerInstance?: Integer;
   716   }
   717   export type EbsBlockDeviceConfigList = EbsBlockDeviceConfig[];
   718   export type EbsBlockDeviceList = EbsBlockDevice[];
   719   export interface EbsConfiguration {
   720     /**
   721      * An array of Amazon EBS volume specifications attached to a cluster instance.
   722      */
   723     EbsBlockDeviceConfigs?: EbsBlockDeviceConfigList;
   724     /**
   725      * Indicates whether an Amazon EBS volume is EBS-optimized.
   726      */
   727     EbsOptimized?: BooleanObject;
   728   }
   729   export interface EbsVolume {
   730     /**
   731      * The device name that is exposed to the instance, such as /dev/sdh.
   732      */
   733     Device?: String;
   734     /**
   735      * The volume identifier of the EBS volume.
   736      */
   737     VolumeId?: String;
   738   }
   739   export type EbsVolumeList = EbsVolume[];
   740   export interface Ec2InstanceAttributes {
   741     /**
   742      * The name of the Amazon EC2 key pair to use when connecting with SSH into the master node as a user named "hadoop".
   743      */
   744     Ec2KeyName?: String;
   745     /**
   746      * 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.
   747      */
   748     Ec2SubnetId?: String;
   749     /**
   750      * The Availability Zone in which the cluster will run.
   751      */
   752     Ec2AvailabilityZone?: String;
   753     /**
   754      * The IAM role that was specified when the job flow was launched. The EC2 instances of the job flow assume this role.
   755      */
   756     IamInstanceProfile?: String;
   757     /**
   758      * The identifier of the Amazon EC2 security group for the master node.
   759      */
   760     EmrManagedMasterSecurityGroup?: String;
   761     /**
   762      * The identifier of the Amazon EC2 security group for the slave nodes.
   763      */
   764     EmrManagedSlaveSecurityGroup?: String;
   765     /**
   766      * The identifier of the Amazon EC2 security group for the Amazon EMR service to access clusters in VPC private subnets.
   767      */
   768     ServiceAccessSecurityGroup?: String;
   769     /**
   770      * A list of additional Amazon EC2 security group IDs for the master node.
   771      */
   772     AdditionalMasterSecurityGroups?: StringList;
   773     /**
   774      * A list of additional Amazon EC2 security group IDs for the slave nodes.
   775      */
   776     AdditionalSlaveSecurityGroups?: StringList;
   777   }
   778   export type ErrorCode = string;
   779   export type ErrorMessage = string;
   780   export interface FailureDetails {
   781     /**
   782      * The reason for the step failure. In the case where the service cannot successfully determine the root cause of the failure, it returns "Unknown Error" as a reason.
   783      */
   784     Reason?: String;
   785     /**
   786      * The descriptive message including the error the EMR service has identified as the cause of step failure. This is text from an error log that describes the root cause of the failure.
   787      */
   788     Message?: String;
   789     /**
   790      * The path to the log file where the step failure root cause was originally recorded.
   791      */
   792     LogFile?: String;
   793   }
   794   export interface HadoopJarStepConfig {
   795     /**
   796      * 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.
   797      */
   798     Properties?: KeyValueList;
   799     /**
   800      * A path to a JAR file run during the step.
   801      */
   802     Jar: XmlString;
   803     /**
   804      * 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.
   805      */
   806     MainClass?: XmlString;
   807     /**
   808      * A list of command line arguments passed to the JAR file's main function when executed.
   809      */
   810     Args?: XmlStringList;
   811   }
   812   export interface HadoopStepConfig {
   813     /**
   814      * The path to the JAR file that runs during the step.
   815      */
   816     Jar?: String;
   817     /**
   818      * 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.
   819      */
   820     Properties?: StringMap;
   821     /**
   822      * 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.
   823      */
   824     MainClass?: String;
   825     /**
   826      * The list of command line arguments to pass to the JAR file's main function for execution.
   827      */
   828     Args?: StringList;
   829   }
   830   export interface Instance {
   831     /**
   832      * The unique identifier for the instance in Amazon EMR.
   833      */
   834     Id?: InstanceId;
   835     /**
   836      * The unique identifier of the instance in Amazon EC2.
   837      */
   838     Ec2InstanceId?: InstanceId;
   839     /**
   840      * The public DNS name of the instance.
   841      */
   842     PublicDnsName?: String;
   843     /**
   844      * The public IP address of the instance.
   845      */
   846     PublicIpAddress?: String;
   847     /**
   848      * The private DNS name of the instance.
   849      */
   850     PrivateDnsName?: String;
   851     /**
   852      * The private IP address of the instance.
   853      */
   854     PrivateIpAddress?: String;
   855     /**
   856      * The current status of the instance.
   857      */
   858     Status?: InstanceStatus;
   859     /**
   860      * The identifier of the instance group to which this instance belongs.
   861      */
   862     InstanceGroupId?: String;
   863     /**
   864      * The list of EBS volumes that are attached to this instance.
   865      */
   866     EbsVolumes?: EbsVolumeList;
   867   }
   868   export interface InstanceGroup {
   869     /**
   870      * The identifier of the instance group.
   871      */
   872     Id?: InstanceGroupId;
   873     /**
   874      * The name of the instance group.
   875      */
   876     Name?: String;
   877     /**
   878      * The marketplace to provision instances for this group. Valid values are ON_DEMAND or SPOT.
   879      */
   880     Market?: MarketType;
   881     /**
   882      * The type of the instance group. Valid values are MASTER, CORE or TASK.
   883      */
   884     InstanceGroupType?: InstanceGroupType;
   885     /**
   886      * The bid price for each EC2 instance in the instance group when launching nodes as Spot Instances, expressed in USD.
   887      */
   888     BidPrice?: String;
   889     /**
   890      * The EC2 instance type for all instances in the instance group.
   891      */
   892     InstanceType?: InstanceType;
   893     /**
   894      * The target number of instances for the instance group.
   895      */
   896     RequestedInstanceCount?: Integer;
   897     /**
   898      * The number of instances currently running in this instance group.
   899      */
   900     RunningInstanceCount?: Integer;
   901     /**
   902      * The current status of the instance group.
   903      */
   904     Status?: InstanceGroupStatus;
   905     /**
   906      *  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).
   907      */
   908     Configurations?: ConfigurationList;
   909     /**
   910      * The EBS block devices that are mapped to this instance group.
   911      */
   912     EbsBlockDevices?: EbsBlockDeviceList;
   913     /**
   914      * If the instance group is EBS-optimized. An Amazon EBS-optimized instance uses an optimized configuration stack and provides additional, dedicated capacity for Amazon EBS I/O.
   915      */
   916     EbsOptimized?: BooleanObject;
   917     /**
   918      * Policy for customizing shrink operations.
   919      */
   920     ShrinkPolicy?: ShrinkPolicy;
   921     /**
   922      * An automatic scaling policy for a core instance group or task instance group in an Amazon EMR cluster. The automatic scaling policy defines how an instance group dynamically adds and terminates EC2 instances in response to the value of a CloudWatch metric. See PutAutoScalingPolicy.
   923      */
   924     AutoScalingPolicy?: AutoScalingPolicyDescription;
   925   }
   926   export interface InstanceGroupConfig {
   927     /**
   928      * Friendly name given to the instance group.
   929      */
   930     Name?: XmlStringMaxLen256;
   931     /**
   932      * Market type of the EC2 instances used to create a cluster node.
   933      */
   934     Market?: MarketType;
   935     /**
   936      * The role of the instance group in the cluster.
   937      */
   938     InstanceRole: InstanceRoleType;
   939     /**
   940      * Bid price for each EC2 instance in the instance group when launching nodes as Spot Instances, expressed in USD.
   941      */
   942     BidPrice?: XmlStringMaxLen256;
   943     /**
   944      * The EC2 instance type for all instances in the instance group.
   945      */
   946     InstanceType: InstanceType;
   947     /**
   948      * Target number of instances for the instance group.
   949      */
   950     InstanceCount: Integer;
   951     /**
   952      *  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).
   953      */
   954     Configurations?: ConfigurationList;
   955     /**
   956      * EBS configurations that will be attached to each EC2 instance in the instance group.
   957      */
   958     EbsConfiguration?: EbsConfiguration;
   959     /**
   960      * An automatic scaling policy for a core instance group or task instance group in an Amazon EMR cluster. The automatic scaling policy defines how an instance group dynamically adds and terminates EC2 instances in response to the value of a CloudWatch metric. See PutAutoScalingPolicy.
   961      */
   962     AutoScalingPolicy?: AutoScalingPolicy;
   963   }
   964   export type InstanceGroupConfigList = InstanceGroupConfig[];
   965   export interface InstanceGroupDetail {
   966     /**
   967      * Unique identifier for the instance group.
   968      */
   969     InstanceGroupId?: XmlStringMaxLen256;
   970     /**
   971      * Friendly name for the instance group.
   972      */
   973     Name?: XmlStringMaxLen256;
   974     /**
   975      * Market type of the EC2 instances used to create a cluster node.
   976      */
   977     Market: MarketType;
   978     /**
   979      * Instance group role in the cluster
   980      */
   981     InstanceRole: InstanceRoleType;
   982     /**
   983      * Bid price for EC2 Instances when launching nodes as Spot Instances, expressed in USD.
   984      */
   985     BidPrice?: XmlStringMaxLen256;
   986     /**
   987      * EC2 instance type.
   988      */
   989     InstanceType: InstanceType;
   990     /**
   991      * Target number of instances to run in the instance group.
   992      */
   993     InstanceRequestCount: Integer;
   994     /**
   995      * Actual count of running instances.
   996      */
   997     InstanceRunningCount: Integer;
   998     /**
   999      * State of instance group. The following values are deprecated: STARTING, TERMINATED, and FAILED.
  1000      */
  1001     State: InstanceGroupState;
  1002     /**
  1003      * Details regarding the state of the instance group.
  1004      */
  1005     LastStateChangeReason?: XmlString;
  1006     /**
  1007      * The date/time the instance group was created.
  1008      */
  1009     CreationDateTime: _Date;
  1010     /**
  1011      * The date/time the instance group was started.
  1012      */
  1013     StartDateTime?: _Date;
  1014     /**
  1015      * The date/time the instance group was available to the cluster.
  1016      */
  1017     ReadyDateTime?: _Date;
  1018     /**
  1019      * The date/time the instance group was terminated.
  1020      */
  1021     EndDateTime?: _Date;
  1022   }
  1023   export type InstanceGroupDetailList = InstanceGroupDetail[];
  1024   export type InstanceGroupId = string;
  1025   export type InstanceGroupIdsList = XmlStringMaxLen256[];
  1026   export type InstanceGroupList = InstanceGroup[];
  1027   export interface InstanceGroupModifyConfig {
  1028     /**
  1029      * Unique ID of the instance group to expand or shrink.
  1030      */
  1031     InstanceGroupId: XmlStringMaxLen256;
  1032     /**
  1033      * Target size for the instance group.
  1034      */
  1035     InstanceCount?: Integer;
  1036     /**
  1037      * The EC2 InstanceIds to terminate. After you terminate the instances, the instance group will not return to its original requested size.
  1038      */
  1039     EC2InstanceIdsToTerminate?: EC2InstanceIdsToTerminateList;
  1040     /**
  1041      * Policy for customizing shrink operations.
  1042      */
  1043     ShrinkPolicy?: ShrinkPolicy;
  1044   }
  1045   export type InstanceGroupModifyConfigList = InstanceGroupModifyConfig[];
  1046   export type InstanceGroupState = "PROVISIONING"|"BOOTSTRAPPING"|"RUNNING"|"RESIZING"|"SUSPENDED"|"TERMINATING"|"TERMINATED"|"ARRESTED"|"SHUTTING_DOWN"|"ENDED"|string;
  1047   export interface InstanceGroupStateChangeReason {
  1048     /**
  1049      * The programmable code for the state change reason.
  1050      */
  1051     Code?: InstanceGroupStateChangeReasonCode;
  1052     /**
  1053      * The status change reason description.
  1054      */
  1055     Message?: String;
  1056   }
  1057   export type InstanceGroupStateChangeReasonCode = "INTERNAL_ERROR"|"VALIDATION_ERROR"|"INSTANCE_FAILURE"|"CLUSTER_TERMINATED"|string;
  1058   export interface InstanceGroupStatus {
  1059     /**
  1060      * The current state of the instance group.
  1061      */
  1062     State?: InstanceGroupState;
  1063     /**
  1064      * The status change reason details for the instance group.
  1065      */
  1066     StateChangeReason?: InstanceGroupStateChangeReason;
  1067     /**
  1068      * The timeline of the instance group status over time.
  1069      */
  1070     Timeline?: InstanceGroupTimeline;
  1071   }
  1072   export interface InstanceGroupTimeline {
  1073     /**
  1074      * The creation date and time of the instance group.
  1075      */
  1076     CreationDateTime?: _Date;
  1077     /**
  1078      * The date and time when the instance group became ready to perform tasks.
  1079      */
  1080     ReadyDateTime?: _Date;
  1081     /**
  1082      * The date and time when the instance group terminated.
  1083      */
  1084     EndDateTime?: _Date;
  1085   }
  1086   export type InstanceGroupType = "MASTER"|"CORE"|"TASK"|string;
  1087   export type InstanceGroupTypeList = InstanceGroupType[];
  1088   export type InstanceId = string;
  1089   export type InstanceList = Instance[];
  1090   export interface InstanceResizePolicy {
  1091     /**
  1092      * Specific list of instances to be terminated when shrinking an instance group.
  1093      */
  1094     InstancesToTerminate?: EC2InstanceIdsList;
  1095     /**
  1096      * Specific list of instances to be protected when shrinking an instance group.
  1097      */
  1098     InstancesToProtect?: EC2InstanceIdsList;
  1099     /**
  1100      * Decommissioning timeout override for the specific list of instances to be terminated.
  1101      */
  1102     InstanceTerminationTimeout?: Integer;
  1103   }
  1104   export type InstanceRoleType = "MASTER"|"CORE"|"TASK"|string;
  1105   export type InstanceState = "AWAITING_FULFILLMENT"|"PROVISIONING"|"BOOTSTRAPPING"|"RUNNING"|"TERMINATED"|string;
  1106   export interface InstanceStateChangeReason {
  1107     /**
  1108      * The programmable code for the state change reason.
  1109      */
  1110     Code?: InstanceStateChangeReasonCode;
  1111     /**
  1112      * The status change reason description.
  1113      */
  1114     Message?: String;
  1115   }
  1116   export type InstanceStateChangeReasonCode = "INTERNAL_ERROR"|"VALIDATION_ERROR"|"INSTANCE_FAILURE"|"BOOTSTRAP_FAILURE"|"CLUSTER_TERMINATED"|string;
  1117   export type InstanceStateList = InstanceState[];
  1118   export interface InstanceStatus {
  1119     /**
  1120      * The current state of the instance.
  1121      */
  1122     State?: InstanceState;
  1123     /**
  1124      * The details of the status change reason for the instance.
  1125      */
  1126     StateChangeReason?: InstanceStateChangeReason;
  1127     /**
  1128      * The timeline of the instance status over time.
  1129      */
  1130     Timeline?: InstanceTimeline;
  1131   }
  1132   export interface InstanceTimeline {
  1133     /**
  1134      * The creation date and time of the instance.
  1135      */
  1136     CreationDateTime?: _Date;
  1137     /**
  1138      * The date and time when the instance was ready to perform tasks.
  1139      */
  1140     ReadyDateTime?: _Date;
  1141     /**
  1142      * The date and time when the instance was terminated.
  1143      */
  1144     EndDateTime?: _Date;
  1145   }
  1146   export type InstanceType = string;
  1147   export type Integer = number;
  1148   export interface JobFlowDetail {
  1149     /**
  1150      * The job flow identifier.
  1151      */
  1152     JobFlowId: XmlStringMaxLen256;
  1153     /**
  1154      * The name of the job flow.
  1155      */
  1156     Name: XmlStringMaxLen256;
  1157     /**
  1158      * The location in Amazon S3 where log files for the job are stored.
  1159      */
  1160     LogUri?: XmlString;
  1161     /**
  1162      * 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 EMR, see AMI Versions Supported in EMR in the Amazon EMR Developer Guide. 
  1163      */
  1164     AmiVersion?: XmlStringMaxLen256;
  1165     /**
  1166      * Describes the execution status of the job flow.
  1167      */
  1168     ExecutionStatusDetail: JobFlowExecutionStatusDetail;
  1169     /**
  1170      * Describes the Amazon EC2 instances of the job flow.
  1171      */
  1172     Instances: JobFlowInstancesDetail;
  1173     /**
  1174      * A list of steps run by the job flow.
  1175      */
  1176     Steps?: StepDetailList;
  1177     /**
  1178      * A list of the bootstrap actions run by the job flow.
  1179      */
  1180     BootstrapActions?: BootstrapActionDetailList;
  1181     /**
  1182      * 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.
  1183      */
  1184     SupportedProducts?: SupportedProductsList;
  1185     /**
  1186      * 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.
  1187      */
  1188     VisibleToAllUsers?: Boolean;
  1189     /**
  1190      * The IAM role that was specified when the job flow was launched. The EC2 instances of the job flow assume this role.
  1191      */
  1192     JobFlowRole?: XmlString;
  1193     /**
  1194      * The IAM role that will be assumed by the Amazon EMR service to access AWS resources on your behalf.
  1195      */
  1196     ServiceRole?: XmlString;
  1197     /**
  1198      * An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole. The IAM role provides a way for the automatic scaling feature to get the required permissions it needs to launch and terminate EC2 instances in an instance group.
  1199      */
  1200     AutoScalingRole?: XmlString;
  1201     /**
  1202      * The way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized. TERMINATE_AT_INSTANCE_HOUR indicates that Amazon EMR terminates nodes at the instance-hour boundary, regardless of when the request to terminate the instance was submitted. This option is only available with Amazon EMR 5.1.0 and later and is the default for clusters created using that version. TERMINATE_AT_TASK_COMPLETION indicates that Amazon EMR blacklists and drains tasks from nodes before terminating the Amazon EC2 instances, regardless of the instance-hour boundary. With either behavior, Amazon EMR removes the least active nodes first and blocks instance termination if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION available only in Amazon EMR version 4.1.0 and later, and is the default for versions of Amazon EMR earlier than 5.1.0.
  1203      */
  1204     ScaleDownBehavior?: ScaleDownBehavior;
  1205   }
  1206   export type JobFlowDetailList = JobFlowDetail[];
  1207   export type JobFlowExecutionState = "STARTING"|"BOOTSTRAPPING"|"RUNNING"|"WAITING"|"SHUTTING_DOWN"|"TERMINATED"|"COMPLETED"|"FAILED"|string;
  1208   export type JobFlowExecutionStateList = JobFlowExecutionState[];
  1209   export interface JobFlowExecutionStatusDetail {
  1210     /**
  1211      * The state of the job flow.
  1212      */
  1213     State: JobFlowExecutionState;
  1214     /**
  1215      * The creation date and time of the job flow.
  1216      */
  1217     CreationDateTime: _Date;
  1218     /**
  1219      * The start date and time of the job flow.
  1220      */
  1221     StartDateTime?: _Date;
  1222     /**
  1223      * The date and time when the job flow was ready to start running bootstrap actions.
  1224      */
  1225     ReadyDateTime?: _Date;
  1226     /**
  1227      * The completion date and time of the job flow.
  1228      */
  1229     EndDateTime?: _Date;
  1230     /**
  1231      * Description of the job flow last changed state.
  1232      */
  1233     LastStateChangeReason?: XmlString;
  1234   }
  1235   export interface JobFlowInstancesConfig {
  1236     /**
  1237      * The EC2 instance type of the master node.
  1238      */
  1239     MasterInstanceType?: InstanceType;
  1240     /**
  1241      * The EC2 instance type of the slave nodes.
  1242      */
  1243     SlaveInstanceType?: InstanceType;
  1244     /**
  1245      * The number of EC2 instances used to execute the job flow.
  1246      */
  1247     InstanceCount?: Integer;
  1248     /**
  1249      * Configuration for the job flow's instance groups.
  1250      */
  1251     InstanceGroups?: InstanceGroupConfigList;
  1252     /**
  1253      * The name of the EC2 key pair that can be used to ssh to the master node as the user called "hadoop."
  1254      */
  1255     Ec2KeyName?: XmlStringMaxLen256;
  1256     /**
  1257      * The Availability Zone the job flow will run in.
  1258      */
  1259     Placement?: PlacementType;
  1260     /**
  1261      * Specifies whether the job flow should be kept alive after completing all steps.
  1262      */
  1263     KeepJobFlowAliveWhenNoSteps?: Boolean;
  1264     /**
  1265      * 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.
  1266      */
  1267     TerminationProtected?: Boolean;
  1268     /**
  1269      * 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.
  1270      */
  1271     HadoopVersion?: XmlStringMaxLen256;
  1272     /**
  1273      * 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.
  1274      */
  1275     Ec2SubnetId?: XmlStringMaxLen256;
  1276     /**
  1277      * The identifier of the Amazon EC2 security group for the master node.
  1278      */
  1279     EmrManagedMasterSecurityGroup?: XmlStringMaxLen256;
  1280     /**
  1281      * The identifier of the Amazon EC2 security group for the slave nodes.
  1282      */
  1283     EmrManagedSlaveSecurityGroup?: XmlStringMaxLen256;
  1284     /**
  1285      * The identifier of the Amazon EC2 security group for the Amazon EMR service to access clusters in VPC private subnets.
  1286      */
  1287     ServiceAccessSecurityGroup?: XmlStringMaxLen256;
  1288     /**
  1289      * A list of additional Amazon EC2 security group IDs for the master node.
  1290      */
  1291     AdditionalMasterSecurityGroups?: SecurityGroupsList;
  1292     /**
  1293      * A list of additional Amazon EC2 security group IDs for the slave nodes.
  1294      */
  1295     AdditionalSlaveSecurityGroups?: SecurityGroupsList;
  1296   }
  1297   export interface JobFlowInstancesDetail {
  1298     /**
  1299      * The Amazon EC2 master node instance type.
  1300      */
  1301     MasterInstanceType: InstanceType;
  1302     /**
  1303      * The DNS name of the master node.
  1304      */
  1305     MasterPublicDnsName?: XmlString;
  1306     /**
  1307      * The Amazon EC2 instance identifier of the master node.
  1308      */
  1309     MasterInstanceId?: XmlString;
  1310     /**
  1311      * The Amazon EC2 slave node instance type.
  1312      */
  1313     SlaveInstanceType: InstanceType;
  1314     /**
  1315      * 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.
  1316      */
  1317     InstanceCount: Integer;
  1318     /**
  1319      * Details about the job flow's instance groups.
  1320      */
  1321     InstanceGroups?: InstanceGroupDetailList;
  1322     /**
  1323      * An approximation of the cost of the job flow, represented in m1.small/hours. This value is incremented one time for every hour that 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.
  1324      */
  1325     NormalizedInstanceHours?: Integer;
  1326     /**
  1327      * The name of an Amazon EC2 key pair that can be used to ssh to the master node of job flow.
  1328      */
  1329     Ec2KeyName?: XmlStringMaxLen256;
  1330     /**
  1331      * For job flows launched within Amazon Virtual Private Cloud, this value specifies the identifier of the subnet where the job flow was launched.
  1332      */
  1333     Ec2SubnetId?: XmlStringMaxLen256;
  1334     /**
  1335      * The Amazon EC2 Availability Zone for the job flow.
  1336      */
  1337     Placement?: PlacementType;
  1338     /**
  1339      * Specifies whether the job flow should terminate after completing all steps.
  1340      */
  1341     KeepJobFlowAliveWhenNoSteps?: Boolean;
  1342     /**
  1343      * 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.
  1344      */
  1345     TerminationProtected?: Boolean;
  1346     /**
  1347      * The Hadoop version for the job flow.
  1348      */
  1349     HadoopVersion?: XmlStringMaxLen256;
  1350   }
  1351   export interface KeyValue {
  1352     /**
  1353      * The unique identifier of a key value pair.
  1354      */
  1355     Key?: XmlString;
  1356     /**
  1357      * The value part of the identified key.
  1358      */
  1359     Value?: XmlString;
  1360   }
  1361   export type KeyValueList = KeyValue[];
  1362   export interface ListBootstrapActionsInput {
  1363     /**
  1364      * The cluster identifier for the bootstrap actions to list.
  1365      */
  1366     ClusterId: ClusterId;
  1367     /**
  1368      * The pagination token that indicates the next set of results to retrieve.
  1369      */
  1370     Marker?: Marker;
  1371   }
  1372   export interface ListBootstrapActionsOutput {
  1373     /**
  1374      * The bootstrap actions associated with the cluster.
  1375      */
  1376     BootstrapActions?: CommandList;
  1377     /**
  1378      * The pagination token that indicates the next set of results to retrieve.
  1379      */
  1380     Marker?: Marker;
  1381   }
  1382   export interface ListClustersInput {
  1383     /**
  1384      * The creation date and time beginning value filter for listing clusters.
  1385      */
  1386     CreatedAfter?: _Date;
  1387     /**
  1388      * The creation date and time end value filter for listing clusters.
  1389      */
  1390     CreatedBefore?: _Date;
  1391     /**
  1392      * The cluster state filters to apply when listing clusters.
  1393      */
  1394     ClusterStates?: ClusterStateList;
  1395     /**
  1396      * The pagination token that indicates the next set of results to retrieve.
  1397      */
  1398     Marker?: Marker;
  1399   }
  1400   export interface ListClustersOutput {
  1401     /**
  1402      * The list of clusters for the account based on the given filters.
  1403      */
  1404     Clusters?: ClusterSummaryList;
  1405     /**
  1406      * The pagination token that indicates the next set of results to retrieve.
  1407      */
  1408     Marker?: Marker;
  1409   }
  1410   export interface ListInstanceGroupsInput {
  1411     /**
  1412      * The identifier of the cluster for which to list the instance groups.
  1413      */
  1414     ClusterId: ClusterId;
  1415     /**
  1416      * The pagination token that indicates the next set of results to retrieve.
  1417      */
  1418     Marker?: Marker;
  1419   }
  1420   export interface ListInstanceGroupsOutput {
  1421     /**
  1422      * The list of instance groups for the cluster and given filters.
  1423      */
  1424     InstanceGroups?: InstanceGroupList;
  1425     /**
  1426      * The pagination token that indicates the next set of results to retrieve.
  1427      */
  1428     Marker?: Marker;
  1429   }
  1430   export interface ListInstancesInput {
  1431     /**
  1432      * The identifier of the cluster for which to list the instances.
  1433      */
  1434     ClusterId: ClusterId;
  1435     /**
  1436      * The identifier of the instance group for which to list the instances.
  1437      */
  1438     InstanceGroupId?: InstanceGroupId;
  1439     /**
  1440      * The type of instance group for which to list the instances.
  1441      */
  1442     InstanceGroupTypes?: InstanceGroupTypeList;
  1443     /**
  1444      * A list of instance states that will filter the instances returned with this request.
  1445      */
  1446     InstanceStates?: InstanceStateList;
  1447     /**
  1448      * The pagination token that indicates the next set of results to retrieve.
  1449      */
  1450     Marker?: Marker;
  1451   }
  1452   export interface ListInstancesOutput {
  1453     /**
  1454      * The list of instances for the cluster and given filters.
  1455      */
  1456     Instances?: InstanceList;
  1457     /**
  1458      * The pagination token that indicates the next set of results to retrieve.
  1459      */
  1460     Marker?: Marker;
  1461   }
  1462   export interface ListSecurityConfigurationsInput {
  1463     /**
  1464      * The pagination token that indicates the set of results to retrieve.
  1465      */
  1466     Marker?: Marker;
  1467   }
  1468   export interface ListSecurityConfigurationsOutput {
  1469     /**
  1470      * The creation date and time, and name, of each security configuration.
  1471      */
  1472     SecurityConfigurations?: SecurityConfigurationList;
  1473     /**
  1474      * A pagination token that indicates the next set of results to retrieve. Include the marker in the next ListSecurityConfiguration call to retrieve the next page of results, if required.
  1475      */
  1476     Marker?: Marker;
  1477   }
  1478   export interface ListStepsInput {
  1479     /**
  1480      * The identifier of the cluster for which to list the steps.
  1481      */
  1482     ClusterId: ClusterId;
  1483     /**
  1484      * The filter to limit the step list based on certain states.
  1485      */
  1486     StepStates?: StepStateList;
  1487     /**
  1488      * The filter to limit the step list based on the identifier of the steps.
  1489      */
  1490     StepIds?: XmlStringList;
  1491     /**
  1492      * The pagination token that indicates the next set of results to retrieve.
  1493      */
  1494     Marker?: Marker;
  1495   }
  1496   export interface ListStepsOutput {
  1497     /**
  1498      * The filtered list of steps for the cluster.
  1499      */
  1500     Steps?: StepSummaryList;
  1501     /**
  1502      * The pagination token that indicates the next set of results to retrieve.
  1503      */
  1504     Marker?: Marker;
  1505   }
  1506   export type Marker = string;
  1507   export type MarketType = "ON_DEMAND"|"SPOT"|string;
  1508   export interface MetricDimension {
  1509     /**
  1510      * The dimension name.
  1511      */
  1512     Key?: String;
  1513     /**
  1514      * The dimension value.
  1515      */
  1516     Value?: String;
  1517   }
  1518   export type MetricDimensionList = MetricDimension[];
  1519   export interface ModifyInstanceGroupsInput {
  1520     /**
  1521      * The ID of the cluster to which the instance group belongs.
  1522      */
  1523     ClusterId?: ClusterId;
  1524     /**
  1525      * Instance groups to change.
  1526      */
  1527     InstanceGroups?: InstanceGroupModifyConfigList;
  1528   }
  1529   export type NewSupportedProductsList = SupportedProductConfig[];
  1530   export type NonNegativeDouble = number;
  1531   export interface PlacementType {
  1532     /**
  1533      * The Amazon EC2 Availability Zone for the job flow.
  1534      */
  1535     AvailabilityZone: XmlString;
  1536   }
  1537   export interface PutAutoScalingPolicyInput {
  1538     /**
  1539      * Specifies the ID of a cluster. The instance group to which the automatic scaling policy is applied is within this cluster.
  1540      */
  1541     ClusterId: ClusterId;
  1542     /**
  1543      * Specifies the ID of the instance group to which the automatic scaling policy is applied.
  1544      */
  1545     InstanceGroupId: InstanceGroupId;
  1546     /**
  1547      * Specifies the definition of the automatic scaling policy.
  1548      */
  1549     AutoScalingPolicy: AutoScalingPolicy;
  1550   }
  1551   export interface PutAutoScalingPolicyOutput {
  1552     /**
  1553      * Specifies the ID of a cluster. The instance group to which the automatic scaling policy is applied is within this cluster.
  1554      */
  1555     ClusterId?: ClusterId;
  1556     /**
  1557      * Specifies the ID of the instance group to which the scaling policy is applied.
  1558      */
  1559     InstanceGroupId?: InstanceGroupId;
  1560     /**
  1561      * The automatic scaling policy definition.
  1562      */
  1563     AutoScalingPolicy?: AutoScalingPolicyDescription;
  1564   }
  1565   export interface RemoveAutoScalingPolicyInput {
  1566     /**
  1567      * Specifies the ID of a cluster. The instance group to which the automatic scaling policy is applied is within this cluster.
  1568      */
  1569     ClusterId: ClusterId;
  1570     /**
  1571      * Specifies the ID of the instance group to which the scaling policy is applied.
  1572      */
  1573     InstanceGroupId: InstanceGroupId;
  1574   }
  1575   export interface RemoveAutoScalingPolicyOutput {
  1576   }
  1577   export interface RemoveTagsInput {
  1578     /**
  1579      * The Amazon EMR resource identifier from which tags will be removed. This value must be a cluster identifier.
  1580      */
  1581     ResourceId: ResourceId;
  1582     /**
  1583      * A list of tag keys to remove from a resource.
  1584      */
  1585     TagKeys: StringList;
  1586   }
  1587   export interface RemoveTagsOutput {
  1588   }
  1589   export type ResourceId = string;
  1590   export interface RunJobFlowInput {
  1591     /**
  1592      * The name of the job flow.
  1593      */
  1594     Name: XmlStringMaxLen256;
  1595     /**
  1596      * The location in Amazon S3 to write the log files of the job flow. If a value is not provided, logs are not created.
  1597      */
  1598     LogUri?: XmlString;
  1599     /**
  1600      * A JSON string for selecting additional features.
  1601      */
  1602     AdditionalInfo?: XmlString;
  1603     /**
  1604      *  For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and greater, use ReleaseLabel.  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, see AMI Versions Supported in Elastic MapReduce in the Amazon Elastic MapReduce Developer Guide.   Previously, the EMR AMI version API parameter options allowed you to use latest for the latest AMI version rather than specify a numerical value. Some regions no longer support this deprecated option as they only have a newer release label version of EMR, which requires you to specify an EMR release label release (EMR 4.x or later). 
  1605      */
  1606     AmiVersion?: XmlStringMaxLen256;
  1607     /**
  1608      *  Amazon EMR releases 4.x or later.  The release label for the Amazon EMR release. For Amazon EMR 3.x and 2.x AMIs, use amiVersion instead instead of ReleaseLabel.
  1609      */
  1610     ReleaseLabel?: XmlStringMaxLen256;
  1611     /**
  1612      * A specification of the number and type of Amazon EC2 instances on which to run the job flow.
  1613      */
  1614     Instances: JobFlowInstancesConfig;
  1615     /**
  1616      * A list of steps to be executed by the job flow.
  1617      */
  1618     Steps?: StepConfigList;
  1619     /**
  1620      * A list of bootstrap actions that will be run before Hadoop is started on the cluster nodes.
  1621      */
  1622     BootstrapActions?: BootstrapActionConfigList;
  1623     /**
  1624      *  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. For more information, see 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.  
  1625      */
  1626     SupportedProducts?: SupportedProductsList;
  1627     /**
  1628      *  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 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.  
  1629      */
  1630     NewSupportedProducts?: NewSupportedProductsList;
  1631     /**
  1632      *  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.
  1633      */
  1634     Applications?: ApplicationList;
  1635     /**
  1636      *  Amazon EMR releases 4.x or later.  The list of configurations supplied for the EMR cluster you are creating.
  1637      */
  1638     Configurations?: ConfigurationList;
  1639     /**
  1640      * 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.
  1641      */
  1642     VisibleToAllUsers?: Boolean;
  1643     /**
  1644      * Also called instance profile and EC2 role. An IAM role for an EMR cluster. The EC2 instances of the cluster assume this role. The default role is EMR_EC2_DefaultRole. In order to use the default role, you must have already created it using the CLI or console.
  1645      */
  1646     JobFlowRole?: XmlString;
  1647     /**
  1648      * The IAM role that will be assumed by the Amazon EMR service to access AWS resources on your behalf.
  1649      */
  1650     ServiceRole?: XmlString;
  1651     /**
  1652      * A list of tags to associate with a cluster and propagate to Amazon EC2 instances.
  1653      */
  1654     Tags?: TagList;
  1655     /**
  1656      * The name of a security configuration to apply to the cluster.
  1657      */
  1658     SecurityConfiguration?: XmlString;
  1659     /**
  1660      * An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole. The IAM role provides permissions that the automatic scaling feature requires to launch and terminate EC2 instances in an instance group.
  1661      */
  1662     AutoScalingRole?: XmlString;
  1663     /**
  1664      * Specifies the way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized. TERMINATE_AT_INSTANCE_HOUR indicates that Amazon EMR terminates nodes at the instance-hour boundary, regardless of when the request to terminate the instance was submitted. This option is only available with Amazon EMR 5.1.0 and later and is the default for clusters created using that version. TERMINATE_AT_TASK_COMPLETION indicates that Amazon EMR blacklists and drains tasks from nodes before terminating the Amazon EC2 instances, regardless of the instance-hour boundary. With either behavior, Amazon EMR removes the least active nodes first and blocks instance termination if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION available only in Amazon EMR version 4.1.0 and later, and is the default for versions of Amazon EMR earlier than 5.1.0.
  1665      */
  1666     ScaleDownBehavior?: ScaleDownBehavior;
  1667   }
  1668   export interface RunJobFlowOutput {
  1669     /**
  1670      * An unique identifier for the job flow.
  1671      */
  1672     JobFlowId?: XmlStringMaxLen256;
  1673   }
  1674   export type ScaleDownBehavior = "TERMINATE_AT_INSTANCE_HOUR"|"TERMINATE_AT_TASK_COMPLETION"|string;
  1675   export interface ScalingAction {
  1676     /**
  1677      * Not available for instance groups. Instance groups use the market type specified for the group.
  1678      */
  1679     Market?: MarketType;
  1680     /**
  1681      * The type of adjustment the automatic scaling activity makes when triggered, and the periodicity of the adjustment.
  1682      */
  1683     SimpleScalingPolicyConfiguration: SimpleScalingPolicyConfiguration;
  1684   }
  1685   export interface ScalingConstraints {
  1686     /**
  1687      * The lower boundary of EC2 instances in an instance group below which scaling activities are not allowed to shrink. Scale-in activities will not terminate instances below this boundary.
  1688      */
  1689     MinCapacity: Integer;
  1690     /**
  1691      * The upper boundary of EC2 instances in an instance group beyond which scaling activities are not allowed to grow. Scale-out activities will not add instances beyond this boundary.
  1692      */
  1693     MaxCapacity: Integer;
  1694   }
  1695   export interface ScalingRule {
  1696     /**
  1697      * The name used to identify an automatic scaling rule. Rule names must be unique within a scaling policy.
  1698      */
  1699     Name: String;
  1700     /**
  1701      * A friendly, more verbose description of the automatic scaling rule.
  1702      */
  1703     Description?: String;
  1704     /**
  1705      * The conditions that trigger an automatic scaling activity.
  1706      */
  1707     Action: ScalingAction;
  1708     /**
  1709      * The CloudWatch alarm definition that determines when automatic scaling activity is triggered.
  1710      */
  1711     Trigger: ScalingTrigger;
  1712   }
  1713   export type ScalingRuleList = ScalingRule[];
  1714   export interface ScalingTrigger {
  1715     /**
  1716      * The definition of a CloudWatch metric alarm. When the defined alarm conditions are met along with other trigger parameters, scaling activity begins.
  1717      */
  1718     CloudWatchAlarmDefinition: CloudWatchAlarmDefinition;
  1719   }
  1720   export interface ScriptBootstrapActionConfig {
  1721     /**
  1722      * Location of the script to run during a bootstrap action. Can be either a location in Amazon S3 or on a local file system.
  1723      */
  1724     Path: XmlString;
  1725     /**
  1726      * A list of command line arguments to pass to the bootstrap action script.
  1727      */
  1728     Args?: XmlStringList;
  1729   }
  1730   export type SecurityConfigurationList = SecurityConfigurationSummary[];
  1731   export interface SecurityConfigurationSummary {
  1732     /**
  1733      * The name of the security configuration.
  1734      */
  1735     Name?: XmlString;
  1736     /**
  1737      * The date and time the security configuration was created.
  1738      */
  1739     CreationDateTime?: _Date;
  1740   }
  1741   export type SecurityGroupsList = XmlStringMaxLen256[];
  1742   export interface SetTerminationProtectionInput {
  1743     /**
  1744      *  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 . 
  1745      */
  1746     JobFlowIds: XmlStringList;
  1747     /**
  1748      * 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.
  1749      */
  1750     TerminationProtected: Boolean;
  1751   }
  1752   export interface SetVisibleToAllUsersInput {
  1753     /**
  1754      * Identifiers of the job flows to receive the new visibility setting.
  1755      */
  1756     JobFlowIds: XmlStringList;
  1757     /**
  1758      * 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.
  1759      */
  1760     VisibleToAllUsers: Boolean;
  1761   }
  1762   export interface ShrinkPolicy {
  1763     /**
  1764      * The desired timeout for decommissioning an instance. Overrides the default YARN decommissioning timeout.
  1765      */
  1766     DecommissionTimeout?: Integer;
  1767     /**
  1768      * Custom policy for requesting termination protection or termination of specific instances when shrinking an instance group.
  1769      */
  1770     InstanceResizePolicy?: InstanceResizePolicy;
  1771   }
  1772   export interface SimpleScalingPolicyConfiguration {
  1773     /**
  1774      * The way in which EC2 instances are added (if ScalingAdjustment is a positive number) or terminated (if ScalingAdjustment is a negative number) each time the scaling activity is triggered. CHANGE_IN_CAPACITY is the default. CHANGE_IN_CAPACITY indicates that the EC2 instance count increments or decrements by ScalingAdjustment, which should be expressed as an integer. PERCENT_CHANGE_IN_CAPACITY indicates the instance count increments or decrements by the percentage specified by ScalingAdjustment, which should be expressed as a decimal, for example, 0.20 indicates an increase in 20% increments of cluster capacity. EXACT_CAPACITY indicates the scaling activity results in an instance group with the number of EC2 instances specified by ScalingAdjustment, which should be expressed as a positive integer.
  1775      */
  1776     AdjustmentType?: AdjustmentType;
  1777     /**
  1778      * The amount by which to scale in or scale out, based on the specified AdjustmentType. A positive value adds to the instance group's EC2 instance count while a negative number removes instances. If AdjustmentType is set to EXACT_CAPACITY, the number should only be a positive integer. If AdjustmentType is set to PERCENT_CHANGE_IN_CAPACITY, the value should express the percentage as a decimal. For example, -0.20 indicates a decrease in 20% increments of cluster capacity.
  1779      */
  1780     ScalingAdjustment: Integer;
  1781     /**
  1782      * The amount of time, in seconds, after a scaling activity completes before any further trigger-related scaling activities can start. The default value is 0.
  1783      */
  1784     CoolDown?: Integer;
  1785   }
  1786   export type Statistic = "SAMPLE_COUNT"|"AVERAGE"|"SUM"|"MINIMUM"|"MAXIMUM"|string;
  1787   export interface Step {
  1788     /**
  1789      * The identifier of the cluster step.
  1790      */
  1791     Id?: StepId;
  1792     /**
  1793      * The name of the cluster step.
  1794      */
  1795     Name?: String;
  1796     /**
  1797      * The Hadoop job configuration of the cluster step.
  1798      */
  1799     Config?: HadoopStepConfig;
  1800     /**
  1801      * This specifies what action to take when the cluster step fails. Possible values are TERMINATE_CLUSTER, CANCEL_AND_WAIT, and CONTINUE.
  1802      */
  1803     ActionOnFailure?: ActionOnFailure;
  1804     /**
  1805      * The current execution status details of the cluster step.
  1806      */
  1807     Status?: StepStatus;
  1808   }
  1809   export interface StepConfig {
  1810     /**
  1811      * The name of the job flow step.
  1812      */
  1813     Name: XmlStringMaxLen256;
  1814     /**
  1815      * The action to take if the job flow step fails.
  1816      */
  1817     ActionOnFailure?: ActionOnFailure;
  1818     /**
  1819      * The JAR file used for the job flow step.
  1820      */
  1821     HadoopJarStep: HadoopJarStepConfig;
  1822   }
  1823   export type StepConfigList = StepConfig[];
  1824   export interface StepDetail {
  1825     /**
  1826      * The step configuration.
  1827      */
  1828     StepConfig: StepConfig;
  1829     /**
  1830      * The description of the step status.
  1831      */
  1832     ExecutionStatusDetail: StepExecutionStatusDetail;
  1833   }
  1834   export type StepDetailList = StepDetail[];
  1835   export type StepExecutionState = "PENDING"|"RUNNING"|"CONTINUE"|"COMPLETED"|"CANCELLED"|"FAILED"|"INTERRUPTED"|string;
  1836   export interface StepExecutionStatusDetail {
  1837     /**
  1838      * The state of the job flow step.
  1839      */
  1840     State: StepExecutionState;
  1841     /**
  1842      * The creation date and time of the step.
  1843      */
  1844     CreationDateTime: _Date;
  1845     /**
  1846      * The start date and time of the step.
  1847      */
  1848     StartDateTime?: _Date;
  1849     /**
  1850      * The completion date and time of the step.
  1851      */
  1852     EndDateTime?: _Date;
  1853     /**
  1854      * A description of the step's current state.
  1855      */
  1856     LastStateChangeReason?: XmlString;
  1857   }
  1858   export type StepId = string;
  1859   export type StepIdsList = XmlStringMaxLen256[];
  1860   export type StepState = "PENDING"|"CANCEL_PENDING"|"RUNNING"|"COMPLETED"|"CANCELLED"|"FAILED"|"INTERRUPTED"|string;
  1861   export interface StepStateChangeReason {
  1862     /**
  1863      * The programmable code for the state change reason. Note: Currently, the service provides no code for the state change.
  1864      */
  1865     Code?: StepStateChangeReasonCode;
  1866     /**
  1867      * The descriptive message for the state change reason.
  1868      */
  1869     Message?: String;
  1870   }
  1871   export type StepStateChangeReasonCode = "NONE"|string;
  1872   export type StepStateList = StepState[];
  1873   export interface StepStatus {
  1874     /**
  1875      * The execution state of the cluster step.
  1876      */
  1877     State?: StepState;
  1878     /**
  1879      * The reason for the step execution status change.
  1880      */
  1881     StateChangeReason?: StepStateChangeReason;
  1882     /**
  1883      * The details for the step failure including reason, message, and log file path where the root cause was identified.
  1884      */
  1885     FailureDetails?: FailureDetails;
  1886     /**
  1887      * The timeline of the cluster step status over time.
  1888      */
  1889     Timeline?: StepTimeline;
  1890   }
  1891   export interface StepSummary {
  1892     /**
  1893      * The identifier of the cluster step.
  1894      */
  1895     Id?: StepId;
  1896     /**
  1897      * The name of the cluster step.
  1898      */
  1899     Name?: String;
  1900     /**
  1901      * The Hadoop job configuration of the cluster step.
  1902      */
  1903     Config?: HadoopStepConfig;
  1904     /**
  1905      * This specifies what action to take when the cluster step fails. Possible values are TERMINATE_CLUSTER, CANCEL_AND_WAIT, and CONTINUE.
  1906      */
  1907     ActionOnFailure?: ActionOnFailure;
  1908     /**
  1909      * The current execution status details of the cluster step.
  1910      */
  1911     Status?: StepStatus;
  1912   }
  1913   export type StepSummaryList = StepSummary[];
  1914   export interface StepTimeline {
  1915     /**
  1916      * The date and time when the cluster step was created.
  1917      */
  1918     CreationDateTime?: _Date;
  1919     /**
  1920      * The date and time when the cluster step execution started.
  1921      */
  1922     StartDateTime?: _Date;
  1923     /**
  1924      * The date and time when the cluster step execution completed or failed.
  1925      */
  1926     EndDateTime?: _Date;
  1927   }
  1928   export type String = string;
  1929   export type StringList = String[];
  1930   export type StringMap = {[key: string]: String};
  1931   export interface SupportedProductConfig {
  1932     /**
  1933      * The name of the product configuration.
  1934      */
  1935     Name?: XmlStringMaxLen256;
  1936     /**
  1937      * The list of user-supplied arguments.
  1938      */
  1939     Args?: XmlStringList;
  1940   }
  1941   export type SupportedProductsList = XmlStringMaxLen256[];
  1942   export interface Tag {
  1943     /**
  1944      * A user-defined key, which is the minimum required information for a valid tag. For more information, see Tagging Amazon EMR Resources. 
  1945      */
  1946     Key?: String;
  1947     /**
  1948      * A user-defined value, which is optional in a tag. For more information, see Tagging Amazon EMR Resources. 
  1949      */
  1950     Value?: String;
  1951   }
  1952   export type TagList = Tag[];
  1953   export interface TerminateJobFlowsInput {
  1954     /**
  1955      * A list of job flows to be shutdown.
  1956      */
  1957     JobFlowIds: XmlStringList;
  1958   }
  1959   export type Unit = "NONE"|"SECONDS"|"MICRO_SECONDS"|"MILLI_SECONDS"|"BYTES"|"KILO_BYTES"|"MEGA_BYTES"|"GIGA_BYTES"|"TERA_BYTES"|"BITS"|"KILO_BITS"|"MEGA_BITS"|"GIGA_BITS"|"TERA_BITS"|"PERCENT"|"COUNT"|"BYTES_PER_SECOND"|"KILO_BYTES_PER_SECOND"|"MEGA_BYTES_PER_SECOND"|"GIGA_BYTES_PER_SECOND"|"TERA_BYTES_PER_SECOND"|"BITS_PER_SECOND"|"KILO_BITS_PER_SECOND"|"MEGA_BITS_PER_SECOND"|"GIGA_BITS_PER_SECOND"|"TERA_BITS_PER_SECOND"|"COUNT_PER_SECOND"|string;
  1960   export interface VolumeSpecification {
  1961     /**
  1962      * The volume type. Volume types supported are gp2, io1, standard.
  1963      */
  1964     VolumeType: String;
  1965     /**
  1966      * The number of I/O operations per second (IOPS) that the volume supports.
  1967      */
  1968     Iops?: Integer;
  1969     /**
  1970      * The volume size, in gibibytes (GiB). This can be a number from 1 - 1024. If the volume type is EBS-optimized, the minimum value is 10.
  1971      */
  1972     SizeInGB: Integer;
  1973   }
  1974   export type XmlString = string;
  1975   export type XmlStringList = XmlString[];
  1976   export type XmlStringMaxLen256 = string;
  1977   /**
  1978    * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version.
  1979    */
  1980   export type apiVersion = "2009-03-31"|"latest"|string;
  1981   export interface ClientApiVersions {
  1982     /**
  1983      * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version.
  1984      */
  1985     apiVersion?: apiVersion;
  1986   }
  1987   export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions;
  1988 }
  1989 export = EMR;