# frozen_string_literal: true # WARNING ABOUT GENERATED CODE # # This file is generated. See the contributing guide for more information: # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md # # WARNING ABOUT GENERATED CODE module Aws::EMR module Types # @note When making an API call, you may pass AddInstanceFleetInput # data as a hash: # # { # cluster_id: "XmlStringMaxLen256", # required # instance_fleet: { # required # name: "XmlStringMaxLen256", # instance_fleet_type: "MASTER", # required, accepts MASTER, CORE, TASK # target_on_demand_capacity: 1, # target_spot_capacity: 1, # instance_type_configs: [ # { # instance_type: "InstanceType", # required # weighted_capacity: 1, # bid_price: "XmlStringMaxLen256", # bid_price_as_percentage_of_on_demand_price: 1.0, # ebs_configuration: { # ebs_block_device_configs: [ # { # volume_specification: { # required # volume_type: "String", # required # iops: 1, # size_in_gb: 1, # required # }, # volumes_per_instance: 1, # }, # ], # ebs_optimized: false, # }, # configurations: [ # { # classification: "String", # configurations: { # # recursive ConfigurationList # }, # properties: { # "String" => "String", # }, # }, # ], # }, # ], # launch_specifications: { # spot_specification: { # timeout_duration_minutes: 1, # required # timeout_action: "SWITCH_TO_ON_DEMAND", # required, accepts SWITCH_TO_ON_DEMAND, TERMINATE_CLUSTER # block_duration_minutes: 1, # allocation_strategy: "capacity-optimized", # accepts capacity-optimized # }, # on_demand_specification: { # allocation_strategy: "lowest-price", # required, accepts lowest-price # capacity_reservation_options: { # usage_strategy: "use-capacity-reservations-first", # accepts use-capacity-reservations-first # capacity_reservation_preference: "open", # accepts open, none # capacity_reservation_resource_group_arn: "XmlStringMaxLen256", # }, # }, # }, # }, # } # # @!attribute [rw] cluster_id # The unique identifier of the cluster. # @return [String] # # @!attribute [rw] instance_fleet # Specifies the configuration of the instance fleet. # @return [Types::InstanceFleetConfig] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddInstanceFleetInput AWS API Documentation # class AddInstanceFleetInput < Struct.new( :cluster_id, :instance_fleet) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] cluster_id # The unique identifier of the cluster. # @return [String] # # @!attribute [rw] instance_fleet_id # The unique identifier of the instance fleet. # @return [String] # # @!attribute [rw] cluster_arn # The Amazon Resource Name of the cluster. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddInstanceFleetOutput AWS API Documentation # class AddInstanceFleetOutput < Struct.new( :cluster_id, :instance_fleet_id, :cluster_arn) SENSITIVE = [] include Aws::Structure end # Input to an AddInstanceGroups call. # # @note When making an API call, you may pass AddInstanceGroupsInput # data as a hash: # # { # instance_groups: [ # required # { # name: "XmlStringMaxLen256", # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT # instance_role: "MASTER", # required, accepts MASTER, CORE, TASK # bid_price: "XmlStringMaxLen256", # instance_type: "InstanceType", # required # instance_count: 1, # required # configurations: [ # { # classification: "String", # configurations: { # # recursive ConfigurationList # }, # properties: { # "String" => "String", # }, # }, # ], # ebs_configuration: { # ebs_block_device_configs: [ # { # volume_specification: { # required # volume_type: "String", # required # iops: 1, # size_in_gb: 1, # required # }, # volumes_per_instance: 1, # }, # ], # ebs_optimized: false, # }, # auto_scaling_policy: { # constraints: { # required # min_capacity: 1, # required # max_capacity: 1, # required # }, # rules: [ # required # { # name: "String", # required # description: "String", # action: { # required # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT # simple_scaling_policy_configuration: { # required # adjustment_type: "CHANGE_IN_CAPACITY", # accepts CHANGE_IN_CAPACITY, PERCENT_CHANGE_IN_CAPACITY, EXACT_CAPACITY # scaling_adjustment: 1, # required # cool_down: 1, # }, # }, # trigger: { # required # cloud_watch_alarm_definition: { # required # comparison_operator: "GREATER_THAN_OR_EQUAL", # required, accepts GREATER_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, LESS_THAN_OR_EQUAL # evaluation_periods: 1, # metric_name: "String", # required # namespace: "String", # period: 1, # required # statistic: "SAMPLE_COUNT", # accepts SAMPLE_COUNT, AVERAGE, SUM, MINIMUM, MAXIMUM # threshold: 1.0, # required # unit: "NONE", # accepts 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 # dimensions: [ # { # key: "String", # value: "String", # }, # ], # }, # }, # }, # ], # }, # }, # ], # job_flow_id: "XmlStringMaxLen256", # required # } # # @!attribute [rw] instance_groups # Instance groups to add. # @return [Array] # # @!attribute [rw] job_flow_id # Job flow in which to add the instance groups. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddInstanceGroupsInput AWS API Documentation # class AddInstanceGroupsInput < Struct.new( :instance_groups, :job_flow_id) SENSITIVE = [] include Aws::Structure end # Output from an AddInstanceGroups call. # # @!attribute [rw] job_flow_id # The job flow ID in which the instance groups are added. # @return [String] # # @!attribute [rw] instance_group_ids # Instance group IDs of the newly created instance groups. # @return [Array] # # @!attribute [rw] cluster_arn # The Amazon Resource Name of the cluster. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddInstanceGroupsOutput AWS API Documentation # class AddInstanceGroupsOutput < Struct.new( :job_flow_id, :instance_group_ids, :cluster_arn) SENSITIVE = [] include Aws::Structure end # The input argument to the AddJobFlowSteps operation. # # @note When making an API call, you may pass AddJobFlowStepsInput # data as a hash: # # { # job_flow_id: "XmlStringMaxLen256", # required # steps: [ # required # { # name: "XmlStringMaxLen256", # required # action_on_failure: "TERMINATE_JOB_FLOW", # accepts TERMINATE_JOB_FLOW, TERMINATE_CLUSTER, CANCEL_AND_WAIT, CONTINUE # hadoop_jar_step: { # required # properties: [ # { # key: "XmlString", # value: "XmlString", # }, # ], # jar: "XmlString", # required # main_class: "XmlString", # args: ["XmlString"], # }, # }, # ], # } # # @!attribute [rw] job_flow_id # A string that uniquely identifies the job flow. This identifier is # returned by RunJobFlow and can also be obtained from ListClusters. # @return [String] # # @!attribute [rw] steps # A list of StepConfig to be executed by the job flow. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddJobFlowStepsInput AWS API Documentation # class AddJobFlowStepsInput < Struct.new( :job_flow_id, :steps) SENSITIVE = [] include Aws::Structure end # The output for the AddJobFlowSteps operation. # # @!attribute [rw] step_ids # The identifiers of the list of steps added to the job flow. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddJobFlowStepsOutput AWS API Documentation # class AddJobFlowStepsOutput < Struct.new( :step_ids) SENSITIVE = [] include Aws::Structure end # This input identifies a cluster and a list of tags to attach. # # @note When making an API call, you may pass AddTagsInput # data as a hash: # # { # resource_id: "ResourceId", # required # tags: [ # required # { # key: "String", # value: "String", # }, # ], # } # # @!attribute [rw] resource_id # The Amazon EMR resource identifier to which tags will be added. This # value must be a cluster identifier. # @return [String] # # @!attribute [rw] tags # 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. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddTagsInput AWS API Documentation # class AddTagsInput < Struct.new( :resource_id, :tags) SENSITIVE = [] include Aws::Structure end # This output indicates the result of adding tags to a resource. # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddTagsOutput AWS API Documentation # class AddTagsOutput < Aws::EmptyStructure; end # With Amazon EMR release version 4.0 and later, the only accepted # parameter is the application name. To pass arguments to applications, # you use configuration classifications specified using configuration # JSON objects. For more information, see [Configuring Applications][1]. # # With earlier Amazon EMR releases, the application is any Amazon or # third-party software that you can add to the cluster. This structure # contains a list of strings that indicates the software to use with the # cluster and accepts a user argument list. Amazon EMR accepts and # forwards the argument list to the corresponding installation script as # bootstrap action argument. # # # # [1]: https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html # # @note When making an API call, you may pass Application # data as a hash: # # { # name: "String", # version: "String", # args: ["String"], # additional_info: { # "String" => "String", # }, # } # # @!attribute [rw] name # The name of the application. # @return [String] # # @!attribute [rw] version # The version of the application. # @return [String] # # @!attribute [rw] args # Arguments for Amazon EMR to pass to the application. # @return [Array] # # @!attribute [rw] additional_info # This option is for advanced users only. This is meta information # about third-party applications that third-party vendors use for # testing purposes. # @return [Hash] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/Application AWS API Documentation # class Application < Struct.new( :name, :version, :args, :additional_info) SENSITIVE = [] include Aws::Structure end # An automatic scaling policy for a core instance group or task instance # group in an Amazon EMR cluster. An 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. # # @note When making an API call, you may pass AutoScalingPolicy # data as a hash: # # { # constraints: { # required # min_capacity: 1, # required # max_capacity: 1, # required # }, # rules: [ # required # { # name: "String", # required # description: "String", # action: { # required # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT # simple_scaling_policy_configuration: { # required # adjustment_type: "CHANGE_IN_CAPACITY", # accepts CHANGE_IN_CAPACITY, PERCENT_CHANGE_IN_CAPACITY, EXACT_CAPACITY # scaling_adjustment: 1, # required # cool_down: 1, # }, # }, # trigger: { # required # cloud_watch_alarm_definition: { # required # comparison_operator: "GREATER_THAN_OR_EQUAL", # required, accepts GREATER_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, LESS_THAN_OR_EQUAL # evaluation_periods: 1, # metric_name: "String", # required # namespace: "String", # period: 1, # required # statistic: "SAMPLE_COUNT", # accepts SAMPLE_COUNT, AVERAGE, SUM, MINIMUM, MAXIMUM # threshold: 1.0, # required # unit: "NONE", # accepts 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 # dimensions: [ # { # key: "String", # value: "String", # }, # ], # }, # }, # }, # ], # } # # @!attribute [rw] constraints # 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. # @return [Types::ScalingConstraints] # # @!attribute [rw] rules # The scale-in and scale-out rules that comprise the automatic scaling # policy. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AutoScalingPolicy AWS API Documentation # class AutoScalingPolicy < Struct.new( :constraints, :rules) SENSITIVE = [] include Aws::Structure end # 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. # # @!attribute [rw] status # The status of an automatic scaling policy. # @return [Types::AutoScalingPolicyStatus] # # @!attribute [rw] constraints # 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. # @return [Types::ScalingConstraints] # # @!attribute [rw] rules # The scale-in and scale-out rules that comprise the automatic scaling # policy. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AutoScalingPolicyDescription AWS API Documentation # class AutoScalingPolicyDescription < Struct.new( :status, :constraints, :rules) SENSITIVE = [] include Aws::Structure end # The reason for an AutoScalingPolicyStatus change. # # @!attribute [rw] code # 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 an error. # @return [String] # # @!attribute [rw] message # A friendly, more verbose message that accompanies an automatic # scaling policy state change. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AutoScalingPolicyStateChangeReason AWS API Documentation # class AutoScalingPolicyStateChangeReason < Struct.new( :code, :message) SENSITIVE = [] include Aws::Structure end # The status of an automatic scaling policy. # # @!attribute [rw] state # Indicates the status of the automatic scaling policy. # @return [String] # # @!attribute [rw] state_change_reason # The reason for a change in status. # @return [Types::AutoScalingPolicyStateChangeReason] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AutoScalingPolicyStatus AWS API Documentation # class AutoScalingPolicyStatus < Struct.new( :state, :state_change_reason) SENSITIVE = [] include Aws::Structure end # A configuration for Amazon EMR block public access. When # `BlockPublicSecurityGroupRules` is set to `true`, Amazon EMR prevents # cluster creation if one of the cluster's security groups has a rule # that allows inbound traffic from 0.0.0.0/0 or ::/0 on a port, unless # the port is specified as an exception using # `PermittedPublicSecurityGroupRuleRanges`. # # @note When making an API call, you may pass BlockPublicAccessConfiguration # data as a hash: # # { # block_public_security_group_rules: false, # required # permitted_public_security_group_rule_ranges: [ # { # min_range: 1, # required # max_range: 1, # }, # ], # } # # @!attribute [rw] block_public_security_group_rules # Indicates whether Amazon EMR block public access is enabled (`true`) # or disabled (`false`). By default, the value is `false` for accounts # that have created EMR clusters before July 2019. For accounts # created after this, the default is `true`. # @return [Boolean] # # @!attribute [rw] permitted_public_security_group_rule_ranges # Specifies ports and port ranges that are permitted to have security # group rules that allow inbound traffic from all public sources. For # example, if Port 23 (Telnet) is specified for # `PermittedPublicSecurityGroupRuleRanges`, Amazon EMR allows cluster # creation if a security group associated with the cluster has a rule # that allows inbound traffic on Port 23 from IPv4 0.0.0.0/0 or IPv6 # port ::/0 as the source. # # By default, Port 22, which is used for SSH access to the cluster EC2 # instances, is in the list of # `PermittedPublicSecurityGroupRuleRanges`. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/BlockPublicAccessConfiguration AWS API Documentation # class BlockPublicAccessConfiguration < Struct.new( :block_public_security_group_rules, :permitted_public_security_group_rule_ranges) SENSITIVE = [] include Aws::Structure end # Properties that describe the AWS principal that created the # `BlockPublicAccessConfiguration` using the # `PutBlockPublicAccessConfiguration` action as well as the date and # time that the configuration was created. Each time a configuration for # block public access is updated, Amazon EMR updates this metadata. # # @!attribute [rw] creation_date_time # The date and time that the configuration was created. # @return [Time] # # @!attribute [rw] created_by_arn # The Amazon Resource Name that created or last modified the # configuration. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/BlockPublicAccessConfigurationMetadata AWS API Documentation # class BlockPublicAccessConfigurationMetadata < Struct.new( :creation_date_time, :created_by_arn) SENSITIVE = [] include Aws::Structure end # Configuration of a bootstrap action. # # @note When making an API call, you may pass BootstrapActionConfig # data as a hash: # # { # name: "XmlStringMaxLen256", # required # script_bootstrap_action: { # required # path: "XmlString", # required # args: ["XmlString"], # }, # } # # @!attribute [rw] name # The name of the bootstrap action. # @return [String] # # @!attribute [rw] script_bootstrap_action # The script run by the bootstrap action. # @return [Types::ScriptBootstrapActionConfig] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/BootstrapActionConfig AWS API Documentation # class BootstrapActionConfig < Struct.new( :name, :script_bootstrap_action) SENSITIVE = [] include Aws::Structure end # Reports the configuration of a bootstrap action in a cluster (job # flow). # # @!attribute [rw] bootstrap_action_config # A description of the bootstrap action. # @return [Types::BootstrapActionConfig] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/BootstrapActionDetail AWS API Documentation # class BootstrapActionDetail < Struct.new( :bootstrap_action_config) SENSITIVE = [] include Aws::Structure end # Specification of the status of a CancelSteps request. Available only # in Amazon EMR version 4.8.0 and later, excluding version 5.0.0. # # @!attribute [rw] step_id # The encrypted StepId of a step. # @return [String] # # @!attribute [rw] status # The status of a CancelSteps Request. The value may be SUBMITTED or # FAILED. # @return [String] # # @!attribute [rw] reason # The reason for the failure if the CancelSteps request fails. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CancelStepsInfo AWS API Documentation # class CancelStepsInfo < Struct.new( :step_id, :status, :reason) SENSITIVE = [] include Aws::Structure end # The input argument to the CancelSteps operation. # # @note When making an API call, you may pass CancelStepsInput # data as a hash: # # { # cluster_id: "XmlStringMaxLen256", # required # step_ids: ["XmlStringMaxLen256"], # required # step_cancellation_option: "SEND_INTERRUPT", # accepts SEND_INTERRUPT, TERMINATE_PROCESS # } # # @!attribute [rw] cluster_id # The `ClusterID` for the specified steps that will be canceled. Use # RunJobFlow and ListClusters to get ClusterIDs. # @return [String] # # @!attribute [rw] step_ids # The list of `StepIDs` to cancel. Use ListSteps to get steps and # their states for the specified cluster. # @return [Array] # # @!attribute [rw] step_cancellation_option # The option to choose to cancel `RUNNING` steps. By default, the # value is `SEND_INTERRUPT`. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CancelStepsInput AWS API Documentation # class CancelStepsInput < Struct.new( :cluster_id, :step_ids, :step_cancellation_option) SENSITIVE = [] include Aws::Structure end # The output for the CancelSteps operation. # # @!attribute [rw] cancel_steps_info_list # A list of CancelStepsInfo, which shows the status of specified # cancel requests for each `StepID` specified. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CancelStepsOutput AWS API Documentation # class CancelStepsOutput < Struct.new( :cancel_steps_info_list) SENSITIVE = [] include Aws::Structure end # The definition of a CloudWatch metric alarm, which determines when an # automatic scaling activity is triggered. When the defined alarm # conditions are satisfied, scaling activity begins. # # @note When making an API call, you may pass CloudWatchAlarmDefinition # data as a hash: # # { # comparison_operator: "GREATER_THAN_OR_EQUAL", # required, accepts GREATER_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, LESS_THAN_OR_EQUAL # evaluation_periods: 1, # metric_name: "String", # required # namespace: "String", # period: 1, # required # statistic: "SAMPLE_COUNT", # accepts SAMPLE_COUNT, AVERAGE, SUM, MINIMUM, MAXIMUM # threshold: 1.0, # required # unit: "NONE", # accepts 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 # dimensions: [ # { # key: "String", # value: "String", # }, # ], # } # # @!attribute [rw] comparison_operator # Determines how the metric specified by `MetricName` is compared to # the value specified by `Threshold`. # @return [String] # # @!attribute [rw] evaluation_periods # The number of periods, in five-minute increments, during which the # alarm condition must exist before the alarm triggers automatic # scaling activity. The default value is `1`. # @return [Integer] # # @!attribute [rw] metric_name # The name of the CloudWatch metric that is watched to determine an # alarm condition. # @return [String] # # @!attribute [rw] namespace # The namespace for the CloudWatch metric. The default is # `AWS/ElasticMapReduce`. # @return [String] # # @!attribute [rw] period # 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`. # @return [Integer] # # @!attribute [rw] statistic # The statistic to apply to the metric associated with the alarm. The # default is `AVERAGE`. # @return [String] # # @!attribute [rw] threshold # The value against which the specified statistic is compared. # @return [Float] # # @!attribute [rw] unit # 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. # @return [String] # # @!attribute [rw] dimensions # A CloudWatch metric dimension. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CloudWatchAlarmDefinition AWS API Documentation # class CloudWatchAlarmDefinition < Struct.new( :comparison_operator, :evaluation_periods, :metric_name, :namespace, :period, :statistic, :threshold, :unit, :dimensions) SENSITIVE = [] include Aws::Structure end # The detailed description of the cluster. # # @!attribute [rw] id # The unique identifier for the cluster. # @return [String] # # @!attribute [rw] name # The name of the cluster. # @return [String] # # @!attribute [rw] status # The current status details about the cluster. # @return [Types::ClusterStatus] # # @!attribute [rw] ec2_instance_attributes # Provides information about the EC2 instances in a cluster grouped by # category. For example, key name, subnet ID, IAM instance profile, # and so on. # @return [Types::Ec2InstanceAttributes] # # @!attribute [rw] instance_collection_type # The instance fleet configuration is available only in Amazon EMR # versions 4.8.0 and later, excluding 5.0.x versions. # # # # The instance group configuration of the cluster. A value of # `INSTANCE_GROUP` indicates a uniform instance group configuration. A # value of `INSTANCE_FLEET` indicates an instance fleets # configuration. # @return [String] # # @!attribute [rw] log_uri # The path to the Amazon S3 location where logs for this cluster are # stored. # @return [String] # # @!attribute [rw] log_encryption_kms_key_id # The AWS KMS customer master key (CMK) used for encrypting log files. # This attribute is only available with EMR version 5.30.0 and later, # excluding EMR 6.0.0. # @return [String] # # @!attribute [rw] requested_ami_version # The AMI version requested for this cluster. # @return [String] # # @!attribute [rw] running_ami_version # The AMI version running on this cluster. # @return [String] # # @!attribute [rw] release_label # The Amazon EMR release label, which determines the version of # open-source application packages installed on the cluster. Release # labels are in the form `emr-x.x.x`, where x.x.x is an Amazon EMR # release version such as `emr-5.14.0`. For more information about # Amazon EMR release versions and included application versions and # features, see # [https://docs.aws.amazon.com/emr/latest/ReleaseGuide/][1]. The # release label applies only to Amazon EMR releases version 4.0 and # later. Earlier versions use `AmiVersion`. # # # # [1]: https://docs.aws.amazon.com/emr/latest/ReleaseGuide/ # @return [String] # # @!attribute [rw] auto_terminate # Specifies whether the cluster should terminate after completing all # steps. # @return [Boolean] # # @!attribute [rw] termination_protected # 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. # @return [Boolean] # # @!attribute [rw] visible_to_all_users # Indicates whether the cluster is visible to all IAM users of the AWS # account associated with the cluster. The default value, `true`, # indicates that all IAM users in the AWS account can perform cluster # actions if they have the proper IAM policy permissions. If this # value is `false`, only the IAM user that created the cluster can # perform actions. This value can be changed on a running cluster by # using the SetVisibleToAllUsers action. You can override the default # value of `true` when you create a cluster by using the # `VisibleToAllUsers` parameter of the `RunJobFlow` action. # @return [Boolean] # # @!attribute [rw] applications # The applications installed on this cluster. # @return [Array] # # @!attribute [rw] tags # A list of tags associated with a cluster. # @return [Array] # # @!attribute [rw] service_role # The IAM role that will be assumed by the Amazon EMR service to # access AWS resources on your behalf. # @return [String] # # @!attribute [rw] normalized_instance_hours # An approximation of the cost of the cluster, 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. # @return [Integer] # # @!attribute [rw] master_public_dns_name # The DNS name of the master node. If the cluster is on a private # subnet, this is the private DNS name. On a public subnet, this is # the public DNS name. # @return [String] # # @!attribute [rw] configurations # Applies only to Amazon EMR releases 4.x and later. The list of # Configurations supplied to the EMR cluster. # @return [Array] # # @!attribute [rw] security_configuration # The name of the security configuration applied to the cluster. # @return [String] # # @!attribute [rw] auto_scaling_role # 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. # @return [String] # # @!attribute [rw] scale_down_behavior # 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 adds nodes to a deny list 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. # @return [String] # # @!attribute [rw] custom_ami_id # Available only in Amazon EMR version 5.7.0 and later. The ID of a # custom Amazon EBS-backed Linux AMI if the cluster uses a custom AMI. # @return [String] # # @!attribute [rw] ebs_root_volume_size # The size, in GiB, of the Amazon EBS root device volume of the Linux # AMI that is used for each EC2 instance. Available in Amazon EMR # version 4.x and later. # @return [Integer] # # @!attribute [rw] repo_upgrade_on_boot # Applies only when `CustomAmiID` is used. Specifies the type of # updates that are applied from the Amazon Linux AMI package # repositories when an instance boots using the AMI. # @return [String] # # @!attribute [rw] kerberos_attributes # Attributes for Kerberos configuration when Kerberos authentication # is enabled using a security configuration. For more information see # [Use Kerberos Authentication][1] in the *Amazon EMR Management # Guide*. # # # # [1]: https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html # @return [Types::KerberosAttributes] # # @!attribute [rw] cluster_arn # The Amazon Resource Name of the cluster. # @return [String] # # @!attribute [rw] outpost_arn # The Amazon Resource Name (ARN) of the Outpost where the cluster is # launched. # @return [String] # # @!attribute [rw] step_concurrency_level # Specifies the number of steps that can be executed concurrently. # @return [Integer] # # @!attribute [rw] placement_groups # Placement group configured for an Amazon EMR cluster. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/Cluster AWS API Documentation # class Cluster < Struct.new( :id, :name, :status, :ec2_instance_attributes, :instance_collection_type, :log_uri, :log_encryption_kms_key_id, :requested_ami_version, :running_ami_version, :release_label, :auto_terminate, :termination_protected, :visible_to_all_users, :applications, :tags, :service_role, :normalized_instance_hours, :master_public_dns_name, :configurations, :security_configuration, :auto_scaling_role, :scale_down_behavior, :custom_ami_id, :ebs_root_volume_size, :repo_upgrade_on_boot, :kerberos_attributes, :cluster_arn, :outpost_arn, :step_concurrency_level, :placement_groups) SENSITIVE = [] include Aws::Structure end # The reason that the cluster changed to its current state. # # @!attribute [rw] code # The programmatic code for the state change reason. # @return [String] # # @!attribute [rw] message # The descriptive message for the state change reason. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ClusterStateChangeReason AWS API Documentation # class ClusterStateChangeReason < Struct.new( :code, :message) SENSITIVE = [] include Aws::Structure end # The detailed status of the cluster. # # @!attribute [rw] state # The current state of the cluster. # @return [String] # # @!attribute [rw] state_change_reason # The reason for the cluster status change. # @return [Types::ClusterStateChangeReason] # # @!attribute [rw] timeline # A timeline that represents the status of a cluster over the lifetime # of the cluster. # @return [Types::ClusterTimeline] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ClusterStatus AWS API Documentation # class ClusterStatus < Struct.new( :state, :state_change_reason, :timeline) SENSITIVE = [] include Aws::Structure end # The summary description of the cluster. # # @!attribute [rw] id # The unique identifier for the cluster. # @return [String] # # @!attribute [rw] name # The name of the cluster. # @return [String] # # @!attribute [rw] status # The details about the current status of the cluster. # @return [Types::ClusterStatus] # # @!attribute [rw] normalized_instance_hours # An approximation of the cost of the cluster, 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. # @return [Integer] # # @!attribute [rw] cluster_arn # The Amazon Resource Name of the cluster. # @return [String] # # @!attribute [rw] outpost_arn # The Amazon Resource Name (ARN) of the Outpost where the cluster is # launched. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ClusterSummary AWS API Documentation # class ClusterSummary < Struct.new( :id, :name, :status, :normalized_instance_hours, :cluster_arn, :outpost_arn) SENSITIVE = [] include Aws::Structure end # Represents the timeline of the cluster's lifecycle. # # @!attribute [rw] creation_date_time # The creation date and time of the cluster. # @return [Time] # # @!attribute [rw] ready_date_time # The date and time when the cluster was ready to run steps. # @return [Time] # # @!attribute [rw] end_date_time # The date and time when the cluster was terminated. # @return [Time] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ClusterTimeline AWS API Documentation # class ClusterTimeline < Struct.new( :creation_date_time, :ready_date_time, :end_date_time) SENSITIVE = [] include Aws::Structure end # An entity describing an executable that runs on a cluster. # # @!attribute [rw] name # The name of the command. # @return [String] # # @!attribute [rw] script_path # The Amazon S3 location of the command script. # @return [String] # # @!attribute [rw] args # Arguments for Amazon EMR to pass to the command for execution. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/Command AWS API Documentation # class Command < Struct.new( :name, :script_path, :args) SENSITIVE = [] include Aws::Structure end # The EC2 unit limits for a managed scaling policy. The managed scaling # activity of a cluster can not be above or below these limits. The # limit only applies to the core and task nodes. The master node cannot # be scaled after initial configuration. # # @note When making an API call, you may pass ComputeLimits # data as a hash: # # { # unit_type: "InstanceFleetUnits", # required, accepts InstanceFleetUnits, Instances, VCPU # minimum_capacity_units: 1, # required # maximum_capacity_units: 1, # required # maximum_on_demand_capacity_units: 1, # maximum_core_capacity_units: 1, # } # # @!attribute [rw] unit_type # The unit type used for specifying a managed scaling policy. # @return [String] # # @!attribute [rw] minimum_capacity_units # The lower boundary of EC2 units. It is measured through vCPU cores # or instances for instance groups and measured through units for # instance fleets. Managed scaling activities are not allowed beyond # this boundary. The limit only applies to the core and task nodes. # The master node cannot be scaled after initial configuration. # @return [Integer] # # @!attribute [rw] maximum_capacity_units # The upper boundary of EC2 units. It is measured through vCPU cores # or instances for instance groups and measured through units for # instance fleets. Managed scaling activities are not allowed beyond # this boundary. The limit only applies to the core and task nodes. # The master node cannot be scaled after initial configuration. # @return [Integer] # # @!attribute [rw] maximum_on_demand_capacity_units # The upper boundary of On-Demand EC2 units. It is measured through # vCPU cores or instances for instance groups and measured through # units for instance fleets. The On-Demand units are not allowed to # scale beyond this boundary. The parameter is used to split capacity # allocation between On-Demand and Spot Instances. # @return [Integer] # # @!attribute [rw] maximum_core_capacity_units # The upper boundary of EC2 units for core node type in a cluster. It # is measured through vCPU cores or instances for instance groups and # measured through units for instance fleets. The core units are not # allowed to scale beyond this boundary. The parameter is used to # split capacity allocation between core and task nodes. # @return [Integer] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ComputeLimits AWS API Documentation # class ComputeLimits < Struct.new( :unit_type, :minimum_capacity_units, :maximum_capacity_units, :maximum_on_demand_capacity_units, :maximum_core_capacity_units) SENSITIVE = [] include Aws::Structure end # Amazon EMR releases 4.x or later. # # # # An optional configuration specification to be used when provisioning # cluster instances, which can include configurations for applications # and software bundled with Amazon EMR. A configuration consists of a # classification, properties, and optional nested configurations. A # classification refers to an application-specific configuration file. # Properties are the settings you want to change in that file. For more # information, see [Configuring Applications][1]. # # # # [1]: https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html # # @note When making an API call, you may pass Configuration # data as a hash: # # { # classification: "String", # configurations: [ # { # classification: "String", # configurations: { # # recursive ConfigurationList # }, # properties: { # "String" => "String", # }, # }, # ], # properties: { # "String" => "String", # }, # } # # @!attribute [rw] classification # The classification within a configuration. # @return [String] # # @!attribute [rw] configurations # A list of additional configurations to apply within a configuration # object. # @return [Array] # # @!attribute [rw] properties # A set of properties specified within a configuration classification. # @return [Hash] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/Configuration AWS API Documentation # class Configuration < Struct.new( :classification, :configurations, :properties) SENSITIVE = [] include Aws::Structure end # @note When making an API call, you may pass CreateSecurityConfigurationInput # data as a hash: # # { # name: "XmlString", # required # security_configuration: "String", # required # } # # @!attribute [rw] name # The name of the security configuration. # @return [String] # # @!attribute [rw] security_configuration # The security configuration details in JSON format. For JSON # parameters and examples, see [Use Security Configurations to Set Up # Cluster Security][1] in the *Amazon EMR Management Guide*. # # # # [1]: https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-security-configurations.html # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateSecurityConfigurationInput AWS API Documentation # class CreateSecurityConfigurationInput < Struct.new( :name, :security_configuration) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] name # The name of the security configuration. # @return [String] # # @!attribute [rw] creation_date_time # The date and time the security configuration was created. # @return [Time] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateSecurityConfigurationOutput AWS API Documentation # class CreateSecurityConfigurationOutput < Struct.new( :name, :creation_date_time) SENSITIVE = [] include Aws::Structure end # @note When making an API call, you may pass CreateStudioInput # data as a hash: # # { # name: "XmlStringMaxLen256", # required # description: "XmlStringMaxLen256", # auth_mode: "SSO", # required, accepts SSO, IAM # vpc_id: "XmlStringMaxLen256", # required # subnet_ids: ["String"], # required # service_role: "XmlString", # required # user_role: "XmlString", # required # workspace_security_group_id: "XmlStringMaxLen256", # required # engine_security_group_id: "XmlStringMaxLen256", # required # default_s3_location: "XmlString", # required # tags: [ # { # key: "String", # value: "String", # }, # ], # } # # @!attribute [rw] name # A descriptive name for the Amazon EMR Studio. # @return [String] # # @!attribute [rw] description # A detailed description of the Amazon EMR Studio. # @return [String] # # @!attribute [rw] auth_mode # Specifies whether the Studio authenticates users using single # sign-on (SSO) or IAM. Amazon EMR Studio currently only supports SSO # authentication. # @return [String] # # @!attribute [rw] vpc_id # The ID of the Amazon Virtual Private Cloud (Amazon VPC) to associate # with the Studio. # @return [String] # # @!attribute [rw] subnet_ids # A list of subnet IDs to associate with the Amazon EMR Studio. A # Studio can have a maximum of 5 subnets. The subnets must belong to # the VPC specified by `VpcId`. Studio users can create a Workspace in # any of the specified subnets. # @return [Array] # # @!attribute [rw] service_role # The IAM role that will be assumed by the Amazon EMR Studio. The # service role provides a way for Amazon EMR Studio to interoperate # with other AWS services. # @return [String] # # @!attribute [rw] user_role # The IAM user role that will be assumed by users and groups logged in # to an Amazon EMR Studio. The permissions attached to this IAM role # can be scoped down for each user or group using session policies. # @return [String] # # @!attribute [rw] workspace_security_group_id # The ID of the Amazon EMR Studio Workspace security group. The # Workspace security group allows outbound network traffic to # resources in the Engine security group, and it must be in the same # VPC specified by `VpcId`. # @return [String] # # @!attribute [rw] engine_security_group_id # The ID of the Amazon EMR Studio Engine security group. The Engine # security group allows inbound network traffic from the Workspace # security group, and it must be in the same VPC specified by `VpcId`. # @return [String] # # @!attribute [rw] default_s3_location # The Amazon S3 location to back up Amazon EMR Studio Workspaces and # notebook files. # @return [String] # # @!attribute [rw] tags # A list of tags to associate with the Amazon EMR Studio. 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. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateStudioInput AWS API Documentation # class CreateStudioInput < Struct.new( :name, :description, :auth_mode, :vpc_id, :subnet_ids, :service_role, :user_role, :workspace_security_group_id, :engine_security_group_id, :default_s3_location, :tags) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] studio_id # The ID of the Amazon EMR Studio. # @return [String] # # @!attribute [rw] url # The unique Studio access URL. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateStudioOutput AWS API Documentation # class CreateStudioOutput < Struct.new( :studio_id, :url) SENSITIVE = [] include Aws::Structure end # @note When making an API call, you may pass CreateStudioSessionMappingInput # data as a hash: # # { # studio_id: "XmlStringMaxLen256", # required # identity_id: "XmlStringMaxLen256", # identity_name: "XmlStringMaxLen256", # identity_type: "USER", # required, accepts USER, GROUP # session_policy_arn: "XmlStringMaxLen256", # required # } # # @!attribute [rw] studio_id # The ID of the Amazon EMR Studio to which the user or group will be # mapped. # @return [String] # # @!attribute [rw] identity_id # The globally unique identifier (GUID) of the user or group from the # AWS SSO Identity Store. For more information, see [UserId][1] and # [GroupId][2] in the *AWS SSO Identity Store API Reference*. Either # `IdentityName` or `IdentityId` must be specified. # # # # [1]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId # [2]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId # @return [String] # # @!attribute [rw] identity_name # The name of the user or group. For more information, see # [UserName][1] and [DisplayName][2] in the *AWS SSO Identity Store # API Reference*. Either `IdentityName` or `IdentityId` must be # specified. # # # # [1]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName # [2]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName # @return [String] # # @!attribute [rw] identity_type # Specifies whether the identity to map to the Amazon EMR Studio is a # user or a group. # @return [String] # # @!attribute [rw] session_policy_arn # The Amazon Resource Name (ARN) for the session policy that will be # applied to the user or group. Session policies refine Studio user # permissions without the need to use multiple IAM user roles. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateStudioSessionMappingInput AWS API Documentation # class CreateStudioSessionMappingInput < Struct.new( :studio_id, :identity_id, :identity_name, :identity_type, :session_policy_arn) SENSITIVE = [] include Aws::Structure end # @note When making an API call, you may pass DeleteSecurityConfigurationInput # data as a hash: # # { # name: "XmlString", # required # } # # @!attribute [rw] name # The name of the security configuration. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteSecurityConfigurationInput AWS API Documentation # class DeleteSecurityConfigurationInput < Struct.new( :name) SENSITIVE = [] include Aws::Structure end # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteSecurityConfigurationOutput AWS API Documentation # class DeleteSecurityConfigurationOutput < Aws::EmptyStructure; end # @note When making an API call, you may pass DeleteStudioInput # data as a hash: # # { # studio_id: "XmlStringMaxLen256", # required # } # # @!attribute [rw] studio_id # The ID of the Amazon EMR Studio. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteStudioInput AWS API Documentation # class DeleteStudioInput < Struct.new( :studio_id) SENSITIVE = [] include Aws::Structure end # @note When making an API call, you may pass DeleteStudioSessionMappingInput # data as a hash: # # { # studio_id: "XmlStringMaxLen256", # required # identity_id: "XmlStringMaxLen256", # identity_name: "XmlStringMaxLen256", # identity_type: "USER", # required, accepts USER, GROUP # } # # @!attribute [rw] studio_id # The ID of the Amazon EMR Studio. # @return [String] # # @!attribute [rw] identity_id # The globally unique identifier (GUID) of the user or group to remove # from the Amazon EMR Studio. For more information, see [UserId][1] # and [GroupId][2] in the *AWS SSO Identity Store API Reference*. # Either `IdentityName` or `IdentityId` must be specified. # # # # [1]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId # [2]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId # @return [String] # # @!attribute [rw] identity_name # The name of the user name or group to remove from the Amazon EMR # Studio. For more information, see [UserName][1] and [DisplayName][2] # in the *AWS SSO Identity Store API Reference*. Either `IdentityName` # or `IdentityId` must be specified. # # # # [1]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName # [2]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName # @return [String] # # @!attribute [rw] identity_type # Specifies whether the identity to delete from the Amazon EMR Studio # is a user or a group. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteStudioSessionMappingInput AWS API Documentation # class DeleteStudioSessionMappingInput < Struct.new( :studio_id, :identity_id, :identity_name, :identity_type) SENSITIVE = [] include Aws::Structure end # This input determines which cluster to describe. # # @note When making an API call, you may pass DescribeClusterInput # data as a hash: # # { # cluster_id: "ClusterId", # required # } # # @!attribute [rw] cluster_id # The identifier of the cluster to describe. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeClusterInput AWS API Documentation # class DescribeClusterInput < Struct.new( :cluster_id) SENSITIVE = [] include Aws::Structure end # This output contains the description of the cluster. # # @!attribute [rw] cluster # This output contains the details for the requested cluster. # @return [Types::Cluster] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeClusterOutput AWS API Documentation # class DescribeClusterOutput < Struct.new( :cluster) SENSITIVE = [] include Aws::Structure end # The input for the DescribeJobFlows operation. # # @note When making an API call, you may pass DescribeJobFlowsInput # data as a hash: # # { # created_after: Time.now, # created_before: Time.now, # job_flow_ids: ["XmlString"], # job_flow_states: ["STARTING"], # accepts STARTING, BOOTSTRAPPING, RUNNING, WAITING, SHUTTING_DOWN, TERMINATED, COMPLETED, FAILED # } # # @!attribute [rw] created_after # Return only job flows created after this date and time. # @return [Time] # # @!attribute [rw] created_before # Return only job flows created before this date and time. # @return [Time] # # @!attribute [rw] job_flow_ids # Return only job flows whose job flow ID is contained in this list. # @return [Array] # # @!attribute [rw] job_flow_states # Return only job flows whose state is contained in this list. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeJobFlowsInput AWS API Documentation # class DescribeJobFlowsInput < Struct.new( :created_after, :created_before, :job_flow_ids, :job_flow_states) SENSITIVE = [] include Aws::Structure end # The output for the DescribeJobFlows operation. # # @!attribute [rw] job_flows # A list of job flows matching the parameters supplied. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeJobFlowsOutput AWS API Documentation # class DescribeJobFlowsOutput < Struct.new( :job_flows) SENSITIVE = [] include Aws::Structure end # @note When making an API call, you may pass DescribeNotebookExecutionInput # data as a hash: # # { # notebook_execution_id: "XmlStringMaxLen256", # required # } # # @!attribute [rw] notebook_execution_id # The unique identifier of the notebook execution. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeNotebookExecutionInput AWS API Documentation # class DescribeNotebookExecutionInput < Struct.new( :notebook_execution_id) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] notebook_execution # Properties of the notebook execution. # @return [Types::NotebookExecution] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeNotebookExecutionOutput AWS API Documentation # class DescribeNotebookExecutionOutput < Struct.new( :notebook_execution) SENSITIVE = [] include Aws::Structure end # @note When making an API call, you may pass DescribeSecurityConfigurationInput # data as a hash: # # { # name: "XmlString", # required # } # # @!attribute [rw] name # The name of the security configuration. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeSecurityConfigurationInput AWS API Documentation # class DescribeSecurityConfigurationInput < Struct.new( :name) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] name # The name of the security configuration. # @return [String] # # @!attribute [rw] security_configuration # The security configuration details in JSON format. # @return [String] # # @!attribute [rw] creation_date_time # The date and time the security configuration was created # @return [Time] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeSecurityConfigurationOutput AWS API Documentation # class DescribeSecurityConfigurationOutput < Struct.new( :name, :security_configuration, :creation_date_time) SENSITIVE = [] include Aws::Structure end # This input determines which step to describe. # # @note When making an API call, you may pass DescribeStepInput # data as a hash: # # { # cluster_id: "ClusterId", # required # step_id: "StepId", # required # } # # @!attribute [rw] cluster_id # The identifier of the cluster with steps to describe. # @return [String] # # @!attribute [rw] step_id # The identifier of the step to describe. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStepInput AWS API Documentation # class DescribeStepInput < Struct.new( :cluster_id, :step_id) SENSITIVE = [] include Aws::Structure end # This output contains the description of the cluster step. # # @!attribute [rw] step # The step details for the requested step identifier. # @return [Types::Step] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStepOutput AWS API Documentation # class DescribeStepOutput < Struct.new( :step) SENSITIVE = [] include Aws::Structure end # @note When making an API call, you may pass DescribeStudioInput # data as a hash: # # { # studio_id: "XmlStringMaxLen256", # required # } # # @!attribute [rw] studio_id # The Amazon EMR Studio ID. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStudioInput AWS API Documentation # class DescribeStudioInput < Struct.new( :studio_id) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] studio # The Amazon EMR Studio details. # @return [Types::Studio] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStudioOutput AWS API Documentation # class DescribeStudioOutput < Struct.new( :studio) SENSITIVE = [] include Aws::Structure end # Configuration of requested EBS block device associated with the # instance group. # # @!attribute [rw] volume_specification # 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. # @return [Types::VolumeSpecification] # # @!attribute [rw] device # The device name that is exposed to the instance, such as /dev/sdh. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/EbsBlockDevice AWS API Documentation # class EbsBlockDevice < Struct.new( :volume_specification, :device) SENSITIVE = [] include Aws::Structure end # Configuration of requested EBS block device associated with the # instance group with count of volumes that will be associated to every # instance. # # @note When making an API call, you may pass EbsBlockDeviceConfig # data as a hash: # # { # volume_specification: { # required # volume_type: "String", # required # iops: 1, # size_in_gb: 1, # required # }, # volumes_per_instance: 1, # } # # @!attribute [rw] volume_specification # 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. # @return [Types::VolumeSpecification] # # @!attribute [rw] volumes_per_instance # Number of EBS volumes with a specific volume configuration that will # be associated with every instance in the instance group # @return [Integer] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/EbsBlockDeviceConfig AWS API Documentation # class EbsBlockDeviceConfig < Struct.new( :volume_specification, :volumes_per_instance) SENSITIVE = [] include Aws::Structure end # The Amazon EBS configuration of a cluster instance. # # @note When making an API call, you may pass EbsConfiguration # data as a hash: # # { # ebs_block_device_configs: [ # { # volume_specification: { # required # volume_type: "String", # required # iops: 1, # size_in_gb: 1, # required # }, # volumes_per_instance: 1, # }, # ], # ebs_optimized: false, # } # # @!attribute [rw] ebs_block_device_configs # An array of Amazon EBS volume specifications attached to a cluster # instance. # @return [Array] # # @!attribute [rw] ebs_optimized # Indicates whether an Amazon EBS volume is EBS-optimized. # @return [Boolean] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/EbsConfiguration AWS API Documentation # class EbsConfiguration < Struct.new( :ebs_block_device_configs, :ebs_optimized) SENSITIVE = [] include Aws::Structure end # EBS block device that's attached to an EC2 instance. # # @!attribute [rw] device # The device name that is exposed to the instance, such as /dev/sdh. # @return [String] # # @!attribute [rw] volume_id # The volume identifier of the EBS volume. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/EbsVolume AWS API Documentation # class EbsVolume < Struct.new( :device, :volume_id) SENSITIVE = [] include Aws::Structure end # Provides information about the EC2 instances in a cluster grouped by # category. For example, key name, subnet ID, IAM instance profile, and # so on. # # @!attribute [rw] ec2_key_name # The name of the Amazon EC2 key pair to use when connecting with SSH # into the master node as a user named "hadoop". # @return [String] # # @!attribute [rw] ec2_subnet_id # Set this parameter to the identifier of the Amazon VPC subnet where # you want the cluster to launch. If you do not specify this value, # and your account supports EC2-Classic, the cluster launches in # EC2-Classic. # @return [String] # # @!attribute [rw] requested_ec2_subnet_ids # Applies to clusters configured with the instance fleets option. # Specifies the unique identifier of one or more Amazon EC2 subnets in # which to launch EC2 cluster instances. Subnets must exist within the # same VPC. Amazon EMR chooses the EC2 subnet with the best fit from # among the list of `RequestedEc2SubnetIds`, and then launches all # cluster instances within that Subnet. If this value is not # specified, and the account and Region support EC2-Classic networks, # the cluster launches instances in the EC2-Classic network and uses # `RequestedEc2AvailabilityZones` instead of this setting. If # EC2-Classic is not supported, and no Subnet is specified, Amazon EMR # chooses the subnet for you. `RequestedEc2SubnetIDs` and # `RequestedEc2AvailabilityZones` cannot be specified together. # @return [Array] # # @!attribute [rw] ec2_availability_zone # The Availability Zone in which the cluster will run. # @return [String] # # @!attribute [rw] requested_ec2_availability_zones # Applies to clusters configured with the instance fleets option. # Specifies one or more Availability Zones in which to launch EC2 # cluster instances when the EC2-Classic network configuration is # supported. Amazon EMR chooses the Availability Zone with the best # fit from among the list of `RequestedEc2AvailabilityZones`, and then # launches all cluster instances within that Availability Zone. If you # do not specify this value, Amazon EMR chooses the Availability Zone # for you. `RequestedEc2SubnetIDs` and `RequestedEc2AvailabilityZones` # cannot be specified together. # @return [Array] # # @!attribute [rw] iam_instance_profile # The IAM role that was specified when the cluster was launched. The # EC2 instances of the cluster assume this role. # @return [String] # # @!attribute [rw] emr_managed_master_security_group # The identifier of the Amazon EC2 security group for the master node. # @return [String] # # @!attribute [rw] emr_managed_slave_security_group # The identifier of the Amazon EC2 security group for the core and # task nodes. # @return [String] # # @!attribute [rw] service_access_security_group # The identifier of the Amazon EC2 security group for the Amazon EMR # service to access clusters in VPC private subnets. # @return [String] # # @!attribute [rw] additional_master_security_groups # A list of additional Amazon EC2 security group IDs for the master # node. # @return [Array] # # @!attribute [rw] additional_slave_security_groups # A list of additional Amazon EC2 security group IDs for the core and # task nodes. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/Ec2InstanceAttributes AWS API Documentation # class Ec2InstanceAttributes < Struct.new( :ec2_key_name, :ec2_subnet_id, :requested_ec2_subnet_ids, :ec2_availability_zone, :requested_ec2_availability_zones, :iam_instance_profile, :emr_managed_master_security_group, :emr_managed_slave_security_group, :service_access_security_group, :additional_master_security_groups, :additional_slave_security_groups) SENSITIVE = [] include Aws::Structure end # Specifies the execution engine (cluster) to run the notebook and # perform the notebook execution, for example, an EMR cluster. # # @note When making an API call, you may pass ExecutionEngineConfig # data as a hash: # # { # id: "XmlStringMaxLen256", # required # type: "EMR", # accepts EMR # master_instance_security_group_id: "XmlStringMaxLen256", # } # # @!attribute [rw] id # The unique identifier of the execution engine. For an EMR cluster, # this is the cluster ID. # @return [String] # # @!attribute [rw] type # The type of execution engine. A value of `EMR` specifies an EMR # cluster. # @return [String] # # @!attribute [rw] master_instance_security_group_id # An optional unique ID of an EC2 security group to associate with the # master instance of the EMR cluster for this notebook execution. For # more information see [Specifying EC2 Security Groups for EMR # Notebooks][1] in the *EMR Management Guide*. # # # # [1]: https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-security-groups.html # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ExecutionEngineConfig AWS API Documentation # class ExecutionEngineConfig < Struct.new( :id, :type, :master_instance_security_group_id) SENSITIVE = [] include Aws::Structure end # The details of the step failure. The service attempts to detect the # root cause for many common failures. # # @!attribute [rw] reason # 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. # @return [String] # # @!attribute [rw] message # The descriptive message including the error the Amazon 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. # @return [String] # # @!attribute [rw] log_file # The path to the log file where the step failure root cause was # originally recorded. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/FailureDetails AWS API Documentation # class FailureDetails < Struct.new( :reason, :message, :log_file) SENSITIVE = [] include Aws::Structure end # @api private # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetBlockPublicAccessConfigurationInput AWS API Documentation # class GetBlockPublicAccessConfigurationInput < Aws::EmptyStructure; end # @!attribute [rw] block_public_access_configuration # A configuration for Amazon EMR block public access. The # configuration applies to all clusters created in your account for # the current Region. The configuration specifies whether block public # access is enabled. If block public access is enabled, security # groups associated with the cluster cannot have rules that allow # inbound traffic from 0.0.0.0/0 or ::/0 on a port, unless the port is # specified as an exception using # `PermittedPublicSecurityGroupRuleRanges` in the # `BlockPublicAccessConfiguration`. By default, Port 22 (SSH) is an # exception, and public access is allowed on this port. You can change # this by updating the block public access configuration to remove the # exception. # # For accounts that created clusters in a Region before November 25, # 2019, block public access is disabled by default in that Region. To # use this feature, you must manually enable and configure it. For # accounts that did not create an EMR cluster in a Region before this # date, block public access is enabled by default in that Region. # # # @return [Types::BlockPublicAccessConfiguration] # # @!attribute [rw] block_public_access_configuration_metadata # Properties that describe the AWS principal that created the # `BlockPublicAccessConfiguration` using the # `PutBlockPublicAccessConfiguration` action as well as the date and # time that the configuration was created. Each time a configuration # for block public access is updated, Amazon EMR updates this # metadata. # @return [Types::BlockPublicAccessConfigurationMetadata] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetBlockPublicAccessConfigurationOutput AWS API Documentation # class GetBlockPublicAccessConfigurationOutput < Struct.new( :block_public_access_configuration, :block_public_access_configuration_metadata) SENSITIVE = [] include Aws::Structure end # @note When making an API call, you may pass GetManagedScalingPolicyInput # data as a hash: # # { # cluster_id: "ClusterId", # required # } # # @!attribute [rw] cluster_id # Specifies the ID of the cluster for which the managed scaling policy # will be fetched. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetManagedScalingPolicyInput AWS API Documentation # class GetManagedScalingPolicyInput < Struct.new( :cluster_id) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] managed_scaling_policy # Specifies the managed scaling policy that is attached to an Amazon # EMR cluster. # @return [Types::ManagedScalingPolicy] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetManagedScalingPolicyOutput AWS API Documentation # class GetManagedScalingPolicyOutput < Struct.new( :managed_scaling_policy) SENSITIVE = [] include Aws::Structure end # @note When making an API call, you may pass GetStudioSessionMappingInput # data as a hash: # # { # studio_id: "XmlStringMaxLen256", # required # identity_id: "XmlStringMaxLen256", # identity_name: "XmlStringMaxLen256", # identity_type: "USER", # required, accepts USER, GROUP # } # # @!attribute [rw] studio_id # The ID of the Amazon EMR Studio. # @return [String] # # @!attribute [rw] identity_id # The globally unique identifier (GUID) of the user or group. For more # information, see [UserId][1] and [GroupId][2] in the *AWS SSO # Identity Store API Reference*. Either `IdentityName` or `IdentityId` # must be specified. # # # # [1]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId # [2]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId # @return [String] # # @!attribute [rw] identity_name # The name of the user or group to fetch. For more information, see # [UserName][1] and [DisplayName][2] in the *AWS SSO Identity Store # API Reference*. Either `IdentityName` or `IdentityId` must be # specified. # # # # [1]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName # [2]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName # @return [String] # # @!attribute [rw] identity_type # Specifies whether the identity to fetch is a user or a group. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetStudioSessionMappingInput AWS API Documentation # class GetStudioSessionMappingInput < Struct.new( :studio_id, :identity_id, :identity_name, :identity_type) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] session_mapping # The session mapping details for the specified Amazon EMR Studio and # identity, including session policy ARN and creation time. # @return [Types::SessionMappingDetail] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetStudioSessionMappingOutput AWS API Documentation # class GetStudioSessionMappingOutput < Struct.new( :session_mapping) SENSITIVE = [] include Aws::Structure end # A job flow step consisting of a JAR file whose main function will be # executed. The main function submits a job for Hadoop to execute and # waits for the job to finish or fail. # # @note When making an API call, you may pass HadoopJarStepConfig # data as a hash: # # { # properties: [ # { # key: "XmlString", # value: "XmlString", # }, # ], # jar: "XmlString", # required # main_class: "XmlString", # args: ["XmlString"], # } # # @!attribute [rw] properties # 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. # @return [Array] # # @!attribute [rw] jar # A path to a JAR file run during the step. # @return [String] # # @!attribute [rw] main_class # 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. # @return [String] # # @!attribute [rw] args # A list of command line arguments passed to the JAR file's main # function when executed. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/HadoopJarStepConfig AWS API Documentation # class HadoopJarStepConfig < Struct.new( :properties, :jar, :main_class, :args) SENSITIVE = [] include Aws::Structure end # A cluster step consisting of a JAR file whose main function will be # executed. The main function submits a job for Hadoop to execute and # waits for the job to finish or fail. # # @!attribute [rw] jar # The path to the JAR file that runs during the step. # @return [String] # # @!attribute [rw] properties # 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. # @return [Hash] # # @!attribute [rw] main_class # 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. # @return [String] # # @!attribute [rw] args # The list of command line arguments to pass to the JAR file's main # function for execution. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/HadoopStepConfig AWS API Documentation # class HadoopStepConfig < Struct.new( :jar, :properties, :main_class, :args) SENSITIVE = [] include Aws::Structure end # Represents an EC2 instance provisioned as part of cluster. # # @!attribute [rw] id # The unique identifier for the instance in Amazon EMR. # @return [String] # # @!attribute [rw] ec2_instance_id # The unique identifier of the instance in Amazon EC2. # @return [String] # # @!attribute [rw] public_dns_name # The public DNS name of the instance. # @return [String] # # @!attribute [rw] public_ip_address # The public IP address of the instance. # @return [String] # # @!attribute [rw] private_dns_name # The private DNS name of the instance. # @return [String] # # @!attribute [rw] private_ip_address # The private IP address of the instance. # @return [String] # # @!attribute [rw] status # The current status of the instance. # @return [Types::InstanceStatus] # # @!attribute [rw] instance_group_id # The identifier of the instance group to which this instance belongs. # @return [String] # # @!attribute [rw] instance_fleet_id # The unique identifier of the instance fleet to which an EC2 instance # belongs. # @return [String] # # @!attribute [rw] market # The instance purchasing option. Valid values are `ON_DEMAND` or # `SPOT`. # @return [String] # # @!attribute [rw] instance_type # The EC2 instance type, for example `m3.xlarge`. # @return [String] # # @!attribute [rw] ebs_volumes # The list of EBS volumes that are attached to this instance. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/Instance AWS API Documentation # class Instance < Struct.new( :id, :ec2_instance_id, :public_dns_name, :public_ip_address, :private_dns_name, :private_ip_address, :status, :instance_group_id, :instance_fleet_id, :market, :instance_type, :ebs_volumes) SENSITIVE = [] include Aws::Structure end # Describes an instance fleet, which is a group of EC2 instances that # host a particular node type (master, core, or task) in an Amazon EMR # cluster. Instance fleets can consist of a mix of instance types and # On-Demand and Spot Instances, which are provisioned to meet a defined # target capacity. # # The instance fleet configuration is available only in Amazon EMR # versions 4.8.0 and later, excluding 5.0.x versions. # # # # @!attribute [rw] id # The unique identifier of the instance fleet. # @return [String] # # @!attribute [rw] name # A friendly name for the instance fleet. # @return [String] # # @!attribute [rw] status # The current status of the instance fleet. # @return [Types::InstanceFleetStatus] # # @!attribute [rw] instance_fleet_type # The node type that the instance fleet hosts. Valid values are # MASTER, CORE, or TASK. # @return [String] # # @!attribute [rw] target_on_demand_capacity # The target capacity of On-Demand units for the instance fleet, which # determines how many On-Demand Instances to provision. When the # instance fleet launches, Amazon EMR tries to provision On-Demand # Instances as specified by InstanceTypeConfig. Each instance # configuration has a specified `WeightedCapacity`. When an On-Demand # Instance is provisioned, the `WeightedCapacity` units count toward # the target capacity. Amazon EMR provisions instances until the # target capacity is totally fulfilled, even if this results in an # overage. For example, if there are 2 units remaining to fulfill # capacity, and Amazon EMR can only provision an instance with a # `WeightedCapacity` of 5 units, the instance is provisioned, and the # target capacity is exceeded by 3 units. You can use # InstanceFleet$ProvisionedOnDemandCapacity to determine the Spot # capacity units that have been provisioned for the instance fleet. # # If not specified or set to 0, only Spot Instances are provisioned # for the instance fleet using `TargetSpotCapacity`. At least one of # `TargetSpotCapacity` and `TargetOnDemandCapacity` should be greater # than 0. For a master instance fleet, only one of # `TargetSpotCapacity` and `TargetOnDemandCapacity` can be specified, # and its value must be 1. # # # @return [Integer] # # @!attribute [rw] target_spot_capacity # The target capacity of Spot units for the instance fleet, which # determines how many Spot Instances to provision. When the instance # fleet launches, Amazon EMR tries to provision Spot Instances as # specified by InstanceTypeConfig. Each instance configuration has a # specified `WeightedCapacity`. When a Spot instance is provisioned, # the `WeightedCapacity` units count toward the target capacity. # Amazon EMR provisions instances until the target capacity is totally # fulfilled, even if this results in an overage. For example, if there # are 2 units remaining to fulfill capacity, and Amazon EMR can only # provision an instance with a `WeightedCapacity` of 5 units, the # instance is provisioned, and the target capacity is exceeded by 3 # units. You can use InstanceFleet$ProvisionedSpotCapacity to # determine the Spot capacity units that have been provisioned for the # instance fleet. # # If not specified or set to 0, only On-Demand Instances are # provisioned for the instance fleet. At least one of # `TargetSpotCapacity` and `TargetOnDemandCapacity` should be greater # than 0. For a master instance fleet, only one of # `TargetSpotCapacity` and `TargetOnDemandCapacity` can be specified, # and its value must be 1. # # # @return [Integer] # # @!attribute [rw] provisioned_on_demand_capacity # The number of On-Demand units that have been provisioned for the # instance fleet to fulfill `TargetOnDemandCapacity`. This provisioned # capacity might be less than or greater than # `TargetOnDemandCapacity`. # @return [Integer] # # @!attribute [rw] provisioned_spot_capacity # The number of Spot units that have been provisioned for this # instance fleet to fulfill `TargetSpotCapacity`. This provisioned # capacity might be less than or greater than `TargetSpotCapacity`. # @return [Integer] # # @!attribute [rw] instance_type_specifications # The specification for the instance types that comprise an instance # fleet. Up to five unique instance specifications may be defined for # each instance fleet. # @return [Array] # # @!attribute [rw] launch_specifications # Describes the launch specification for an instance fleet. # @return [Types::InstanceFleetProvisioningSpecifications] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceFleet AWS API Documentation # class InstanceFleet < Struct.new( :id, :name, :status, :instance_fleet_type, :target_on_demand_capacity, :target_spot_capacity, :provisioned_on_demand_capacity, :provisioned_spot_capacity, :instance_type_specifications, :launch_specifications) SENSITIVE = [] include Aws::Structure end # The configuration that defines an instance fleet. # # The instance fleet configuration is available only in Amazon EMR # versions 4.8.0 and later, excluding 5.0.x versions. # # # # @note When making an API call, you may pass InstanceFleetConfig # data as a hash: # # { # name: "XmlStringMaxLen256", # instance_fleet_type: "MASTER", # required, accepts MASTER, CORE, TASK # target_on_demand_capacity: 1, # target_spot_capacity: 1, # instance_type_configs: [ # { # instance_type: "InstanceType", # required # weighted_capacity: 1, # bid_price: "XmlStringMaxLen256", # bid_price_as_percentage_of_on_demand_price: 1.0, # ebs_configuration: { # ebs_block_device_configs: [ # { # volume_specification: { # required # volume_type: "String", # required # iops: 1, # size_in_gb: 1, # required # }, # volumes_per_instance: 1, # }, # ], # ebs_optimized: false, # }, # configurations: [ # { # classification: "String", # configurations: { # # recursive ConfigurationList # }, # properties: { # "String" => "String", # }, # }, # ], # }, # ], # launch_specifications: { # spot_specification: { # timeout_duration_minutes: 1, # required # timeout_action: "SWITCH_TO_ON_DEMAND", # required, accepts SWITCH_TO_ON_DEMAND, TERMINATE_CLUSTER # block_duration_minutes: 1, # allocation_strategy: "capacity-optimized", # accepts capacity-optimized # }, # on_demand_specification: { # allocation_strategy: "lowest-price", # required, accepts lowest-price # capacity_reservation_options: { # usage_strategy: "use-capacity-reservations-first", # accepts use-capacity-reservations-first # capacity_reservation_preference: "open", # accepts open, none # capacity_reservation_resource_group_arn: "XmlStringMaxLen256", # }, # }, # }, # } # # @!attribute [rw] name # The friendly name of the instance fleet. # @return [String] # # @!attribute [rw] instance_fleet_type # The node type that the instance fleet hosts. Valid values are # MASTER, CORE, and TASK. # @return [String] # # @!attribute [rw] target_on_demand_capacity # The target capacity of On-Demand units for the instance fleet, which # determines how many On-Demand Instances to provision. When the # instance fleet launches, Amazon EMR tries to provision On-Demand # Instances as specified by InstanceTypeConfig. Each instance # configuration has a specified `WeightedCapacity`. When an On-Demand # Instance is provisioned, the `WeightedCapacity` units count toward # the target capacity. Amazon EMR provisions instances until the # target capacity is totally fulfilled, even if this results in an # overage. For example, if there are 2 units remaining to fulfill # capacity, and Amazon EMR can only provision an instance with a # `WeightedCapacity` of 5 units, the instance is provisioned, and the # target capacity is exceeded by 3 units. # # If not specified or set to 0, only Spot Instances are provisioned # for the instance fleet using `TargetSpotCapacity`. At least one of # `TargetSpotCapacity` and `TargetOnDemandCapacity` should be greater # than 0. For a master instance fleet, only one of # `TargetSpotCapacity` and `TargetOnDemandCapacity` can be specified, # and its value must be 1. # # # @return [Integer] # # @!attribute [rw] target_spot_capacity # The target capacity of Spot units for the instance fleet, which # determines how many Spot Instances to provision. When the instance # fleet launches, Amazon EMR tries to provision Spot Instances as # specified by InstanceTypeConfig. Each instance configuration has a # specified `WeightedCapacity`. When a Spot Instance is provisioned, # the `WeightedCapacity` units count toward the target capacity. # Amazon EMR provisions instances until the target capacity is totally # fulfilled, even if this results in an overage. For example, if there # are 2 units remaining to fulfill capacity, and Amazon EMR can only # provision an instance with a `WeightedCapacity` of 5 units, the # instance is provisioned, and the target capacity is exceeded by 3 # units. # # If not specified or set to 0, only On-Demand Instances are # provisioned for the instance fleet. At least one of # `TargetSpotCapacity` and `TargetOnDemandCapacity` should be greater # than 0. For a master instance fleet, only one of # `TargetSpotCapacity` and `TargetOnDemandCapacity` can be specified, # and its value must be 1. # # # @return [Integer] # # @!attribute [rw] instance_type_configs # The instance type configurations that define the EC2 instances in # the instance fleet. # @return [Array] # # @!attribute [rw] launch_specifications # The launch specification for the instance fleet. # @return [Types::InstanceFleetProvisioningSpecifications] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceFleetConfig AWS API Documentation # class InstanceFleetConfig < Struct.new( :name, :instance_fleet_type, :target_on_demand_capacity, :target_spot_capacity, :instance_type_configs, :launch_specifications) SENSITIVE = [] include Aws::Structure end # Configuration parameters for an instance fleet modification request. # # The instance fleet configuration is available only in Amazon EMR # versions 4.8.0 and later, excluding 5.0.x versions. # # # # @note When making an API call, you may pass InstanceFleetModifyConfig # data as a hash: # # { # instance_fleet_id: "InstanceFleetId", # required # target_on_demand_capacity: 1, # target_spot_capacity: 1, # } # # @!attribute [rw] instance_fleet_id # A unique identifier for the instance fleet. # @return [String] # # @!attribute [rw] target_on_demand_capacity # The target capacity of On-Demand units for the instance fleet. For # more information see InstanceFleetConfig$TargetOnDemandCapacity. # @return [Integer] # # @!attribute [rw] target_spot_capacity # The target capacity of Spot units for the instance fleet. For more # information, see InstanceFleetConfig$TargetSpotCapacity. # @return [Integer] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceFleetModifyConfig AWS API Documentation # class InstanceFleetModifyConfig < Struct.new( :instance_fleet_id, :target_on_demand_capacity, :target_spot_capacity) SENSITIVE = [] include Aws::Structure end # The launch specification for Spot Instances in the fleet, which # determines the defined duration, provisioning timeout behavior, and # allocation strategy. # # The instance fleet configuration is available only in Amazon EMR # versions 4.8.0 and later, excluding 5.0.x versions. On-Demand and Spot # Instance allocation strategies are available in Amazon EMR version # 5.12.1 and later. # # # # @note When making an API call, you may pass InstanceFleetProvisioningSpecifications # data as a hash: # # { # spot_specification: { # timeout_duration_minutes: 1, # required # timeout_action: "SWITCH_TO_ON_DEMAND", # required, accepts SWITCH_TO_ON_DEMAND, TERMINATE_CLUSTER # block_duration_minutes: 1, # allocation_strategy: "capacity-optimized", # accepts capacity-optimized # }, # on_demand_specification: { # allocation_strategy: "lowest-price", # required, accepts lowest-price # capacity_reservation_options: { # usage_strategy: "use-capacity-reservations-first", # accepts use-capacity-reservations-first # capacity_reservation_preference: "open", # accepts open, none # capacity_reservation_resource_group_arn: "XmlStringMaxLen256", # }, # }, # } # # @!attribute [rw] spot_specification # The launch specification for Spot Instances in the fleet, which # determines the defined duration, provisioning timeout behavior, and # allocation strategy. # @return [Types::SpotProvisioningSpecification] # # @!attribute [rw] on_demand_specification # The launch specification for On-Demand Instances in the instance # fleet, which determines the allocation strategy. # # The instance fleet configuration is available only in Amazon EMR # versions 4.8.0 and later, excluding 5.0.x versions. On-Demand # Instances allocation strategy is available in Amazon EMR version # 5.12.1 and later. # # # @return [Types::OnDemandProvisioningSpecification] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceFleetProvisioningSpecifications AWS API Documentation # class InstanceFleetProvisioningSpecifications < Struct.new( :spot_specification, :on_demand_specification) SENSITIVE = [] include Aws::Structure end # Provides status change reason details for the instance fleet. # # The instance fleet configuration is available only in Amazon EMR # versions 4.8.0 and later, excluding 5.0.x versions. # # # # @!attribute [rw] code # A code corresponding to the reason the state change occurred. # @return [String] # # @!attribute [rw] message # An explanatory message. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceFleetStateChangeReason AWS API Documentation # class InstanceFleetStateChangeReason < Struct.new( :code, :message) SENSITIVE = [] include Aws::Structure end # The status of the instance fleet. # # The instance fleet configuration is available only in Amazon EMR # versions 4.8.0 and later, excluding 5.0.x versions. # # # # @!attribute [rw] state # A code representing the instance fleet status. # # * `PROVISIONING`—The instance fleet is provisioning EC2 resources # and is not yet ready to run jobs. # # * `BOOTSTRAPPING`—EC2 instances and other resources have been # provisioned and the bootstrap actions specified for the instances # are underway. # # * `RUNNING`—EC2 instances and other resources are running. They are # either executing jobs or waiting to execute jobs. # # * `RESIZING`—A resize operation is underway. EC2 instances are # either being added or removed. # # * `SUSPENDED`—A resize operation could not complete. Existing EC2 # instances are running, but instances can't be added or removed. # # * `TERMINATING`—The instance fleet is terminating EC2 instances. # # * `TERMINATED`—The instance fleet is no longer active, and all EC2 # instances have been terminated. # @return [String] # # @!attribute [rw] state_change_reason # Provides status change reason details for the instance fleet. # @return [Types::InstanceFleetStateChangeReason] # # @!attribute [rw] timeline # Provides historical timestamps for the instance fleet, including the # time of creation, the time it became ready to run jobs, and the time # of termination. # @return [Types::InstanceFleetTimeline] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceFleetStatus AWS API Documentation # class InstanceFleetStatus < Struct.new( :state, :state_change_reason, :timeline) SENSITIVE = [] include Aws::Structure end # Provides historical timestamps for the instance fleet, including the # time of creation, the time it became ready to run jobs, and the time # of termination. # # The instance fleet configuration is available only in Amazon EMR # versions 4.8.0 and later, excluding 5.0.x versions. # # # # @!attribute [rw] creation_date_time # The time and date the instance fleet was created. # @return [Time] # # @!attribute [rw] ready_date_time # The time and date the instance fleet was ready to run jobs. # @return [Time] # # @!attribute [rw] end_date_time # The time and date the instance fleet terminated. # @return [Time] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceFleetTimeline AWS API Documentation # class InstanceFleetTimeline < Struct.new( :creation_date_time, :ready_date_time, :end_date_time) SENSITIVE = [] include Aws::Structure end # This entity represents an instance group, which is a group of # instances that have common purpose. For example, CORE instance group # is used for HDFS. # # @!attribute [rw] id # The identifier of the instance group. # @return [String] # # @!attribute [rw] name # The name of the instance group. # @return [String] # # @!attribute [rw] market # The marketplace to provision instances for this group. Valid values # are ON\_DEMAND or SPOT. # @return [String] # # @!attribute [rw] instance_group_type # The type of the instance group. Valid values are MASTER, CORE or # TASK. # @return [String] # # @!attribute [rw] bid_price # If specified, indicates that the instance group uses Spot Instances. # This is the maximum price you are willing to pay for Spot Instances. # Specify `OnDemandPrice` to set the amount equal to the On-Demand # price, or specify an amount in USD. # @return [String] # # @!attribute [rw] instance_type # The EC2 instance type for all instances in the instance group. # @return [String] # # @!attribute [rw] requested_instance_count # The target number of instances for the instance group. # @return [Integer] # # @!attribute [rw] running_instance_count # The number of instances currently running in this instance group. # @return [Integer] # # @!attribute [rw] status # The current status of the instance group. # @return [Types::InstanceGroupStatus] # # @!attribute [rw] configurations # 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). # @return [Array] # # @!attribute [rw] configurations_version # The version number of the requested configuration specification for # this instance group. # @return [Integer] # # @!attribute [rw] last_successfully_applied_configurations # A list of configurations that were successfully applied for an # instance group last time. # @return [Array] # # @!attribute [rw] last_successfully_applied_configurations_version # The version number of a configuration specification that was # successfully applied for an instance group last time. # @return [Integer] # # @!attribute [rw] ebs_block_devices # The EBS block devices that are mapped to this instance group. # @return [Array] # # @!attribute [rw] ebs_optimized # 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. # @return [Boolean] # # @!attribute [rw] shrink_policy # Policy for customizing shrink operations. # @return [Types::ShrinkPolicy] # # @!attribute [rw] auto_scaling_policy # 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. # @return [Types::AutoScalingPolicyDescription] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceGroup AWS API Documentation # class InstanceGroup < Struct.new( :id, :name, :market, :instance_group_type, :bid_price, :instance_type, :requested_instance_count, :running_instance_count, :status, :configurations, :configurations_version, :last_successfully_applied_configurations, :last_successfully_applied_configurations_version, :ebs_block_devices, :ebs_optimized, :shrink_policy, :auto_scaling_policy) SENSITIVE = [] include Aws::Structure end # Configuration defining a new instance group. # # @note When making an API call, you may pass InstanceGroupConfig # data as a hash: # # { # name: "XmlStringMaxLen256", # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT # instance_role: "MASTER", # required, accepts MASTER, CORE, TASK # bid_price: "XmlStringMaxLen256", # instance_type: "InstanceType", # required # instance_count: 1, # required # configurations: [ # { # classification: "String", # configurations: { # # recursive ConfigurationList # }, # properties: { # "String" => "String", # }, # }, # ], # ebs_configuration: { # ebs_block_device_configs: [ # { # volume_specification: { # required # volume_type: "String", # required # iops: 1, # size_in_gb: 1, # required # }, # volumes_per_instance: 1, # }, # ], # ebs_optimized: false, # }, # auto_scaling_policy: { # constraints: { # required # min_capacity: 1, # required # max_capacity: 1, # required # }, # rules: [ # required # { # name: "String", # required # description: "String", # action: { # required # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT # simple_scaling_policy_configuration: { # required # adjustment_type: "CHANGE_IN_CAPACITY", # accepts CHANGE_IN_CAPACITY, PERCENT_CHANGE_IN_CAPACITY, EXACT_CAPACITY # scaling_adjustment: 1, # required # cool_down: 1, # }, # }, # trigger: { # required # cloud_watch_alarm_definition: { # required # comparison_operator: "GREATER_THAN_OR_EQUAL", # required, accepts GREATER_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, LESS_THAN_OR_EQUAL # evaluation_periods: 1, # metric_name: "String", # required # namespace: "String", # period: 1, # required # statistic: "SAMPLE_COUNT", # accepts SAMPLE_COUNT, AVERAGE, SUM, MINIMUM, MAXIMUM # threshold: 1.0, # required # unit: "NONE", # accepts 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 # dimensions: [ # { # key: "String", # value: "String", # }, # ], # }, # }, # }, # ], # }, # } # # @!attribute [rw] name # Friendly name given to the instance group. # @return [String] # # @!attribute [rw] market # Market type of the EC2 instances used to create a cluster node. # @return [String] # # @!attribute [rw] instance_role # The role of the instance group in the cluster. # @return [String] # # @!attribute [rw] bid_price # If specified, indicates that the instance group uses Spot Instances. # This is the maximum price you are willing to pay for Spot Instances. # Specify `OnDemandPrice` to set the amount equal to the On-Demand # price, or specify an amount in USD. # @return [String] # # @!attribute [rw] instance_type # The EC2 instance type for all instances in the instance group. # @return [String] # # @!attribute [rw] instance_count # Target number of instances for the instance group. # @return [Integer] # # @!attribute [rw] configurations # 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). # @return [Array] # # @!attribute [rw] ebs_configuration # EBS configurations that will be attached to each EC2 instance in the # instance group. # @return [Types::EbsConfiguration] # # @!attribute [rw] auto_scaling_policy # 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. # @return [Types::AutoScalingPolicy] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceGroupConfig AWS API Documentation # class InstanceGroupConfig < Struct.new( :name, :market, :instance_role, :bid_price, :instance_type, :instance_count, :configurations, :ebs_configuration, :auto_scaling_policy) SENSITIVE = [] include Aws::Structure end # Detailed information about an instance group. # # @!attribute [rw] instance_group_id # Unique identifier for the instance group. # @return [String] # # @!attribute [rw] name # Friendly name for the instance group. # @return [String] # # @!attribute [rw] market # Market type of the EC2 instances used to create a cluster node. # @return [String] # # @!attribute [rw] instance_role # Instance group role in the cluster # @return [String] # # @!attribute [rw] bid_price # If specified, indicates that the instance group uses Spot Instances. # This is the maximum price you are willing to pay for Spot Instances. # Specify `OnDemandPrice` to set the amount equal to the On-Demand # price, or specify an amount in USD. # @return [String] # # @!attribute [rw] instance_type # EC2 instance type. # @return [String] # # @!attribute [rw] instance_request_count # Target number of instances to run in the instance group. # @return [Integer] # # @!attribute [rw] instance_running_count # Actual count of running instances. # @return [Integer] # # @!attribute [rw] state # State of instance group. The following values are deprecated: # STARTING, TERMINATED, and FAILED. # @return [String] # # @!attribute [rw] last_state_change_reason # Details regarding the state of the instance group. # @return [String] # # @!attribute [rw] creation_date_time # The date/time the instance group was created. # @return [Time] # # @!attribute [rw] start_date_time # The date/time the instance group was started. # @return [Time] # # @!attribute [rw] ready_date_time # The date/time the instance group was available to the cluster. # @return [Time] # # @!attribute [rw] end_date_time # The date/time the instance group was terminated. # @return [Time] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceGroupDetail AWS API Documentation # class InstanceGroupDetail < Struct.new( :instance_group_id, :name, :market, :instance_role, :bid_price, :instance_type, :instance_request_count, :instance_running_count, :state, :last_state_change_reason, :creation_date_time, :start_date_time, :ready_date_time, :end_date_time) SENSITIVE = [] include Aws::Structure end # Modify the size or configurations of an instance group. # # @note When making an API call, you may pass InstanceGroupModifyConfig # data as a hash: # # { # instance_group_id: "XmlStringMaxLen256", # required # instance_count: 1, # ec2_instance_ids_to_terminate: ["InstanceId"], # shrink_policy: { # decommission_timeout: 1, # instance_resize_policy: { # instances_to_terminate: ["InstanceId"], # instances_to_protect: ["InstanceId"], # instance_termination_timeout: 1, # }, # }, # configurations: [ # { # classification: "String", # configurations: { # # recursive ConfigurationList # }, # properties: { # "String" => "String", # }, # }, # ], # } # # @!attribute [rw] instance_group_id # Unique ID of the instance group to modify. # @return [String] # # @!attribute [rw] instance_count # Target size for the instance group. # @return [Integer] # # @!attribute [rw] ec2_instance_ids_to_terminate # The EC2 InstanceIds to terminate. After you terminate the instances, # the instance group will not return to its original requested size. # @return [Array] # # @!attribute [rw] shrink_policy # Policy for customizing shrink operations. # @return [Types::ShrinkPolicy] # # @!attribute [rw] configurations # A list of new or modified configurations to apply for an instance # group. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceGroupModifyConfig AWS API Documentation # class InstanceGroupModifyConfig < Struct.new( :instance_group_id, :instance_count, :ec2_instance_ids_to_terminate, :shrink_policy, :configurations) SENSITIVE = [] include Aws::Structure end # The status change reason details for the instance group. # # @!attribute [rw] code # The programmable code for the state change reason. # @return [String] # # @!attribute [rw] message # The status change reason description. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceGroupStateChangeReason AWS API Documentation # class InstanceGroupStateChangeReason < Struct.new( :code, :message) SENSITIVE = [] include Aws::Structure end # The details of the instance group status. # # @!attribute [rw] state # The current state of the instance group. # @return [String] # # @!attribute [rw] state_change_reason # The status change reason details for the instance group. # @return [Types::InstanceGroupStateChangeReason] # # @!attribute [rw] timeline # The timeline of the instance group status over time. # @return [Types::InstanceGroupTimeline] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceGroupStatus AWS API Documentation # class InstanceGroupStatus < Struct.new( :state, :state_change_reason, :timeline) SENSITIVE = [] include Aws::Structure end # The timeline of the instance group lifecycle. # # @!attribute [rw] creation_date_time # The creation date and time of the instance group. # @return [Time] # # @!attribute [rw] ready_date_time # The date and time when the instance group became ready to perform # tasks. # @return [Time] # # @!attribute [rw] end_date_time # The date and time when the instance group terminated. # @return [Time] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceGroupTimeline AWS API Documentation # class InstanceGroupTimeline < Struct.new( :creation_date_time, :ready_date_time, :end_date_time) SENSITIVE = [] include Aws::Structure end # Custom policy for requesting termination protection or termination of # specific instances when shrinking an instance group. # # @note When making an API call, you may pass InstanceResizePolicy # data as a hash: # # { # instances_to_terminate: ["InstanceId"], # instances_to_protect: ["InstanceId"], # instance_termination_timeout: 1, # } # # @!attribute [rw] instances_to_terminate # Specific list of instances to be terminated when shrinking an # instance group. # @return [Array] # # @!attribute [rw] instances_to_protect # Specific list of instances to be protected when shrinking an # instance group. # @return [Array] # # @!attribute [rw] instance_termination_timeout # Decommissioning timeout override for the specific list of instances # to be terminated. # @return [Integer] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceResizePolicy AWS API Documentation # class InstanceResizePolicy < Struct.new( :instances_to_terminate, :instances_to_protect, :instance_termination_timeout) SENSITIVE = [] include Aws::Structure end # The details of the status change reason for the instance. # # @!attribute [rw] code # The programmable code for the state change reason. # @return [String] # # @!attribute [rw] message # The status change reason description. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceStateChangeReason AWS API Documentation # class InstanceStateChangeReason < Struct.new( :code, :message) SENSITIVE = [] include Aws::Structure end # The instance status details. # # @!attribute [rw] state # The current state of the instance. # @return [String] # # @!attribute [rw] state_change_reason # The details of the status change reason for the instance. # @return [Types::InstanceStateChangeReason] # # @!attribute [rw] timeline # The timeline of the instance status over time. # @return [Types::InstanceTimeline] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceStatus AWS API Documentation # class InstanceStatus < Struct.new( :state, :state_change_reason, :timeline) SENSITIVE = [] include Aws::Structure end # The timeline of the instance lifecycle. # # @!attribute [rw] creation_date_time # The creation date and time of the instance. # @return [Time] # # @!attribute [rw] ready_date_time # The date and time when the instance was ready to perform tasks. # @return [Time] # # @!attribute [rw] end_date_time # The date and time when the instance was terminated. # @return [Time] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceTimeline AWS API Documentation # class InstanceTimeline < Struct.new( :creation_date_time, :ready_date_time, :end_date_time) SENSITIVE = [] include Aws::Structure end # An instance type configuration for each instance type in an instance # fleet, which determines the EC2 instances Amazon EMR attempts to # provision to fulfill On-Demand and Spot target capacities. There can # be a maximum of five instance type configurations in a fleet. # # The instance fleet configuration is available only in Amazon EMR # versions 4.8.0 and later, excluding 5.0.x versions. # # # # @note When making an API call, you may pass InstanceTypeConfig # data as a hash: # # { # instance_type: "InstanceType", # required # weighted_capacity: 1, # bid_price: "XmlStringMaxLen256", # bid_price_as_percentage_of_on_demand_price: 1.0, # ebs_configuration: { # ebs_block_device_configs: [ # { # volume_specification: { # required # volume_type: "String", # required # iops: 1, # size_in_gb: 1, # required # }, # volumes_per_instance: 1, # }, # ], # ebs_optimized: false, # }, # configurations: [ # { # classification: "String", # configurations: { # # recursive ConfigurationList # }, # properties: { # "String" => "String", # }, # }, # ], # } # # @!attribute [rw] instance_type # An EC2 instance type, such as `m3.xlarge`. # @return [String] # # @!attribute [rw] weighted_capacity # The number of units that a provisioned instance of this type # provides toward fulfilling the target capacities defined in # InstanceFleetConfig. This value is 1 for a master instance fleet, # and must be 1 or greater for core and task instance fleets. Defaults # to 1 if not specified. # @return [Integer] # # @!attribute [rw] bid_price # The bid price for each EC2 Spot Instance type as defined by # `InstanceType`. Expressed in USD. If neither `BidPrice` nor # `BidPriceAsPercentageOfOnDemandPrice` is provided, # `BidPriceAsPercentageOfOnDemandPrice` defaults to 100%. # @return [String] # # @!attribute [rw] bid_price_as_percentage_of_on_demand_price # The bid price, as a percentage of On-Demand price, for each EC2 Spot # Instance as defined by `InstanceType`. Expressed as a number (for # example, 20 specifies 20%). If neither `BidPrice` nor # `BidPriceAsPercentageOfOnDemandPrice` is provided, # `BidPriceAsPercentageOfOnDemandPrice` defaults to 100%. # @return [Float] # # @!attribute [rw] ebs_configuration # The configuration of Amazon Elastic Block Storage (Amazon EBS) # attached to each instance as defined by `InstanceType`. # @return [Types::EbsConfiguration] # # @!attribute [rw] configurations # A configuration classification that applies when provisioning # cluster instances, which can include configurations for applications # and software that run on the cluster. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceTypeConfig AWS API Documentation # class InstanceTypeConfig < Struct.new( :instance_type, :weighted_capacity, :bid_price, :bid_price_as_percentage_of_on_demand_price, :ebs_configuration, :configurations) SENSITIVE = [] include Aws::Structure end # The configuration specification for each instance type in an instance # fleet. # # The instance fleet configuration is available only in Amazon EMR # versions 4.8.0 and later, excluding 5.0.x versions. # # # # @!attribute [rw] instance_type # The EC2 instance type, for example `m3.xlarge`. # @return [String] # # @!attribute [rw] weighted_capacity # The number of units that a provisioned instance of this type # provides toward fulfilling the target capacities defined in # InstanceFleetConfig. Capacity values represent performance # characteristics such as vCPUs, memory, or I/O. If not specified, the # default value is 1. # @return [Integer] # # @!attribute [rw] bid_price # The bid price for each EC2 Spot Instance type as defined by # `InstanceType`. Expressed in USD. # @return [String] # # @!attribute [rw] bid_price_as_percentage_of_on_demand_price # The bid price, as a percentage of On-Demand price, for each EC2 Spot # Instance as defined by `InstanceType`. Expressed as a number (for # example, 20 specifies 20%). # @return [Float] # # @!attribute [rw] configurations # A configuration classification that applies when provisioning # cluster instances, which can include configurations for applications # and software bundled with Amazon EMR. # @return [Array] # # @!attribute [rw] ebs_block_devices # The configuration of Amazon Elastic Block Storage (Amazon EBS) # attached to each instance as defined by `InstanceType`. # @return [Array] # # @!attribute [rw] ebs_optimized # Evaluates to `TRUE` when the specified `InstanceType` is # EBS-optimized. # @return [Boolean] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceTypeSpecification AWS API Documentation # class InstanceTypeSpecification < Struct.new( :instance_type, :weighted_capacity, :bid_price, :bid_price_as_percentage_of_on_demand_price, :configurations, :ebs_block_devices, :ebs_optimized) SENSITIVE = [] include Aws::Structure end # Indicates that an error occurred while processing the request and that # the request was not completed. # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InternalServerError AWS API Documentation # class InternalServerError < Aws::EmptyStructure; end # This exception occurs when there is an internal failure in the Amazon # EMR service. # # @!attribute [rw] message # The message associated with the exception. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InternalServerException AWS API Documentation # class InternalServerException < Struct.new( :message) SENSITIVE = [] include Aws::Structure end # This exception occurs when there is something wrong with user input. # # @!attribute [rw] error_code # The error code associated with the exception. # @return [String] # # @!attribute [rw] message # The message associated with the exception. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InvalidRequestException AWS API Documentation # class InvalidRequestException < Struct.new( :error_code, :message) SENSITIVE = [] include Aws::Structure end # A description of a cluster (job flow). # # @!attribute [rw] job_flow_id # The job flow identifier. # @return [String] # # @!attribute [rw] name # The name of the job flow. # @return [String] # # @!attribute [rw] log_uri # The location in Amazon S3 where log files for the job are stored. # @return [String] # # @!attribute [rw] log_encryption_kms_key_id # The AWS KMS customer master key (CMK) used for encrypting log files. # This attribute is only available with EMR version 5.30.0 and later, # excluding EMR 6.0.0. # @return [String] # # @!attribute [rw] ami_version # Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR # releases 4.0 and later, `ReleaseLabel` is used. To specify a custom # AMI, use `CustomAmiID`. # @return [String] # # @!attribute [rw] execution_status_detail # Describes the execution status of the job flow. # @return [Types::JobFlowExecutionStatusDetail] # # @!attribute [rw] instances # Describes the Amazon EC2 instances of the job flow. # @return [Types::JobFlowInstancesDetail] # # @!attribute [rw] steps # A list of steps run by the job flow. # @return [Array] # # @!attribute [rw] bootstrap_actions # A list of the bootstrap actions run by the job flow. # @return [Array] # # @!attribute [rw] supported_products # 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. # @return [Array] # # @!attribute [rw] visible_to_all_users # Indicates whether the cluster is visible to all IAM users of the AWS # account associated with the cluster. The default value, `true`, # indicates that all IAM users in the AWS account can perform cluster # actions if they have the proper IAM policy permissions. If this # value is `false`, only the IAM user that created the cluster can # perform actions. This value can be changed on a running cluster by # using the SetVisibleToAllUsers action. You can override the default # value of `true` when you create a cluster by using the # `VisibleToAllUsers` parameter of the `RunJobFlow` action. # @return [Boolean] # # @!attribute [rw] job_flow_role # The IAM role that was specified when the job flow was launched. The # EC2 instances of the job flow assume this role. # @return [String] # # @!attribute [rw] service_role # The IAM role that is assumed by the Amazon EMR service to access AWS # resources on your behalf. # @return [String] # # @!attribute [rw] auto_scaling_role # 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. # @return [String] # # @!attribute [rw] scale_down_behavior # 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 adds nodes to a deny list 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. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/JobFlowDetail AWS API Documentation # class JobFlowDetail < Struct.new( :job_flow_id, :name, :log_uri, :log_encryption_kms_key_id, :ami_version, :execution_status_detail, :instances, :steps, :bootstrap_actions, :supported_products, :visible_to_all_users, :job_flow_role, :service_role, :auto_scaling_role, :scale_down_behavior) SENSITIVE = [] include Aws::Structure end # Describes the status of the cluster (job flow). # # @!attribute [rw] state # The state of the job flow. # @return [String] # # @!attribute [rw] creation_date_time # The creation date and time of the job flow. # @return [Time] # # @!attribute [rw] start_date_time # The start date and time of the job flow. # @return [Time] # # @!attribute [rw] ready_date_time # The date and time when the job flow was ready to start running # bootstrap actions. # @return [Time] # # @!attribute [rw] end_date_time # The completion date and time of the job flow. # @return [Time] # # @!attribute [rw] last_state_change_reason # Description of the job flow last changed state. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/JobFlowExecutionStatusDetail AWS API Documentation # class JobFlowExecutionStatusDetail < Struct.new( :state, :creation_date_time, :start_date_time, :ready_date_time, :end_date_time, :last_state_change_reason) SENSITIVE = [] include Aws::Structure end # A description of the Amazon EC2 instance on which the cluster (job # flow) runs. A valid JobFlowInstancesConfig must contain either # InstanceGroups or InstanceFleets. They cannot be used together. You # may also have MasterInstanceType, SlaveInstanceType, and InstanceCount # (all three must be present), but we don't recommend this # configuration. # # @note When making an API call, you may pass JobFlowInstancesConfig # data as a hash: # # { # master_instance_type: "InstanceType", # slave_instance_type: "InstanceType", # instance_count: 1, # instance_groups: [ # { # name: "XmlStringMaxLen256", # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT # instance_role: "MASTER", # required, accepts MASTER, CORE, TASK # bid_price: "XmlStringMaxLen256", # instance_type: "InstanceType", # required # instance_count: 1, # required # configurations: [ # { # classification: "String", # configurations: { # # recursive ConfigurationList # }, # properties: { # "String" => "String", # }, # }, # ], # ebs_configuration: { # ebs_block_device_configs: [ # { # volume_specification: { # required # volume_type: "String", # required # iops: 1, # size_in_gb: 1, # required # }, # volumes_per_instance: 1, # }, # ], # ebs_optimized: false, # }, # auto_scaling_policy: { # constraints: { # required # min_capacity: 1, # required # max_capacity: 1, # required # }, # rules: [ # required # { # name: "String", # required # description: "String", # action: { # required # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT # simple_scaling_policy_configuration: { # required # adjustment_type: "CHANGE_IN_CAPACITY", # accepts CHANGE_IN_CAPACITY, PERCENT_CHANGE_IN_CAPACITY, EXACT_CAPACITY # scaling_adjustment: 1, # required # cool_down: 1, # }, # }, # trigger: { # required # cloud_watch_alarm_definition: { # required # comparison_operator: "GREATER_THAN_OR_EQUAL", # required, accepts GREATER_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, LESS_THAN_OR_EQUAL # evaluation_periods: 1, # metric_name: "String", # required # namespace: "String", # period: 1, # required # statistic: "SAMPLE_COUNT", # accepts SAMPLE_COUNT, AVERAGE, SUM, MINIMUM, MAXIMUM # threshold: 1.0, # required # unit: "NONE", # accepts 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 # dimensions: [ # { # key: "String", # value: "String", # }, # ], # }, # }, # }, # ], # }, # }, # ], # instance_fleets: [ # { # name: "XmlStringMaxLen256", # instance_fleet_type: "MASTER", # required, accepts MASTER, CORE, TASK # target_on_demand_capacity: 1, # target_spot_capacity: 1, # instance_type_configs: [ # { # instance_type: "InstanceType", # required # weighted_capacity: 1, # bid_price: "XmlStringMaxLen256", # bid_price_as_percentage_of_on_demand_price: 1.0, # ebs_configuration: { # ebs_block_device_configs: [ # { # volume_specification: { # required # volume_type: "String", # required # iops: 1, # size_in_gb: 1, # required # }, # volumes_per_instance: 1, # }, # ], # ebs_optimized: false, # }, # configurations: [ # { # classification: "String", # configurations: { # # recursive ConfigurationList # }, # properties: { # "String" => "String", # }, # }, # ], # }, # ], # launch_specifications: { # spot_specification: { # timeout_duration_minutes: 1, # required # timeout_action: "SWITCH_TO_ON_DEMAND", # required, accepts SWITCH_TO_ON_DEMAND, TERMINATE_CLUSTER # block_duration_minutes: 1, # allocation_strategy: "capacity-optimized", # accepts capacity-optimized # }, # on_demand_specification: { # allocation_strategy: "lowest-price", # required, accepts lowest-price # capacity_reservation_options: { # usage_strategy: "use-capacity-reservations-first", # accepts use-capacity-reservations-first # capacity_reservation_preference: "open", # accepts open, none # capacity_reservation_resource_group_arn: "XmlStringMaxLen256", # }, # }, # }, # }, # ], # ec2_key_name: "XmlStringMaxLen256", # placement: { # availability_zone: "XmlString", # availability_zones: ["XmlStringMaxLen256"], # }, # keep_job_flow_alive_when_no_steps: false, # termination_protected: false, # hadoop_version: "XmlStringMaxLen256", # ec2_subnet_id: "XmlStringMaxLen256", # ec2_subnet_ids: ["XmlStringMaxLen256"], # emr_managed_master_security_group: "XmlStringMaxLen256", # emr_managed_slave_security_group: "XmlStringMaxLen256", # service_access_security_group: "XmlStringMaxLen256", # additional_master_security_groups: ["XmlStringMaxLen256"], # additional_slave_security_groups: ["XmlStringMaxLen256"], # } # # @!attribute [rw] master_instance_type # The EC2 instance type of the master node. # @return [String] # # @!attribute [rw] slave_instance_type # The EC2 instance type of the core and task nodes. # @return [String] # # @!attribute [rw] instance_count # The number of EC2 instances in the cluster. # @return [Integer] # # @!attribute [rw] instance_groups # Configuration for the instance groups in a cluster. # @return [Array] # # @!attribute [rw] instance_fleets # The instance fleet configuration is available only in Amazon EMR # versions 4.8.0 and later, excluding 5.0.x versions. # # # # Describes the EC2 instances and instance configurations for clusters # that use the instance fleet configuration. # @return [Array] # # @!attribute [rw] ec2_key_name # The name of the EC2 key pair that can be used to connect to the # master node using SSH as the user called "hadoop." # @return [String] # # @!attribute [rw] placement # The Availability Zone in which the cluster runs. # @return [Types::PlacementType] # # @!attribute [rw] keep_job_flow_alive_when_no_steps # Specifies whether the cluster should remain available after # completing all steps. # @return [Boolean] # # @!attribute [rw] termination_protected # Specifies whether to lock the cluster to prevent the Amazon EC2 # instances from being terminated by API call, user intervention, or # in the event of a job-flow error. # @return [Boolean] # # @!attribute [rw] hadoop_version # Applies only to Amazon EMR release versions earlier than 4.0. The # Hadoop version for the cluster. Valid inputs are "0.18" (no longer # maintained), "0.20" (no longer maintained), "0.20.205" (no # longer maintained), "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. # @return [String] # # @!attribute [rw] ec2_subnet_id # Applies to clusters that use the uniform instance group # configuration. To launch the cluster in Amazon Virtual Private Cloud # (Amazon VPC), set this parameter to the identifier of the Amazon VPC # subnet where you want the cluster to launch. If you do not specify # this value and your account supports EC2-Classic, the cluster # launches in EC2-Classic. # @return [String] # # @!attribute [rw] ec2_subnet_ids # Applies to clusters that use the instance fleet configuration. When # multiple EC2 subnet IDs are specified, Amazon EMR evaluates them and # launches instances in the optimal subnet. # # The instance fleet configuration is available only in Amazon EMR # versions 4.8.0 and later, excluding 5.0.x versions. # # # @return [Array] # # @!attribute [rw] emr_managed_master_security_group # The identifier of the Amazon EC2 security group for the master node. # @return [String] # # @!attribute [rw] emr_managed_slave_security_group # The identifier of the Amazon EC2 security group for the core and # task nodes. # @return [String] # # @!attribute [rw] service_access_security_group # The identifier of the Amazon EC2 security group for the Amazon EMR # service to access clusters in VPC private subnets. # @return [String] # # @!attribute [rw] additional_master_security_groups # A list of additional Amazon EC2 security group IDs for the master # node. # @return [Array] # # @!attribute [rw] additional_slave_security_groups # A list of additional Amazon EC2 security group IDs for the core and # task nodes. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/JobFlowInstancesConfig AWS API Documentation # class JobFlowInstancesConfig < Struct.new( :master_instance_type, :slave_instance_type, :instance_count, :instance_groups, :instance_fleets, :ec2_key_name, :placement, :keep_job_flow_alive_when_no_steps, :termination_protected, :hadoop_version, :ec2_subnet_id, :ec2_subnet_ids, :emr_managed_master_security_group, :emr_managed_slave_security_group, :service_access_security_group, :additional_master_security_groups, :additional_slave_security_groups) SENSITIVE = [] include Aws::Structure end # Specify the type of Amazon EC2 instances that the cluster (job flow) # runs on. # # @!attribute [rw] master_instance_type # The Amazon EC2 master node instance type. # @return [String] # # @!attribute [rw] master_public_dns_name # The DNS name of the master node. If the cluster is on a private # subnet, this is the private DNS name. On a public subnet, this is # the public DNS name. # @return [String] # # @!attribute [rw] master_instance_id # The Amazon EC2 instance identifier of the master node. # @return [String] # # @!attribute [rw] slave_instance_type # The Amazon EC2 core and task node instance type. # @return [String] # # @!attribute [rw] instance_count # The number of Amazon EC2 instances in the cluster. If the value is # 1, the same instance serves as both the master and core and task # node. If the value is greater than 1, one instance is the master # node and all others are core and task nodes. # @return [Integer] # # @!attribute [rw] instance_groups # Details about the instance groups in a cluster. # @return [Array] # # @!attribute [rw] normalized_instance_hours # An approximation of the cost of the cluster, represented in # m1.small/hours. This value is increased one time for every hour that # an m1.small instance runs. Larger instances are weighted more # heavily, so an Amazon EC2 instance that is roughly four times more # expensive would result in the normalized instance hours being # increased incrementally four times. This result is only an # approximation and does not reflect the actual billing rate. # @return [Integer] # # @!attribute [rw] ec2_key_name # The name of an Amazon EC2 key pair that can be used to connect to # the master node using SSH. # @return [String] # # @!attribute [rw] ec2_subnet_id # For clusters launched within Amazon Virtual Private Cloud, this is # the identifier of the subnet where the cluster was launched. # @return [String] # # @!attribute [rw] placement # The Amazon EC2 Availability Zone for the cluster. # @return [Types::PlacementType] # # @!attribute [rw] keep_job_flow_alive_when_no_steps # Specifies whether the cluster should remain available after # completing all steps. # @return [Boolean] # # @!attribute [rw] termination_protected # 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. # @return [Boolean] # # @!attribute [rw] hadoop_version # The Hadoop version for the cluster. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/JobFlowInstancesDetail AWS API Documentation # class JobFlowInstancesDetail < Struct.new( :master_instance_type, :master_public_dns_name, :master_instance_id, :slave_instance_type, :instance_count, :instance_groups, :normalized_instance_hours, :ec2_key_name, :ec2_subnet_id, :placement, :keep_job_flow_alive_when_no_steps, :termination_protected, :hadoop_version) SENSITIVE = [] include Aws::Structure end # Attributes for Kerberos configuration when Kerberos authentication is # enabled using a security configuration. For more information see [Use # Kerberos Authentication][1] in the *Amazon EMR Management Guide*. # # # # [1]: https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html # # @note When making an API call, you may pass KerberosAttributes # data as a hash: # # { # realm: "XmlStringMaxLen256", # required # kdc_admin_password: "XmlStringMaxLen256", # required # cross_realm_trust_principal_password: "XmlStringMaxLen256", # ad_domain_join_user: "XmlStringMaxLen256", # ad_domain_join_password: "XmlStringMaxLen256", # } # # @!attribute [rw] realm # The name of the Kerberos realm to which all nodes in a cluster # belong. For example, `EC2.INTERNAL`. # @return [String] # # @!attribute [rw] kdc_admin_password # The password used within the cluster for the kadmin service on the # cluster-dedicated KDC, which maintains Kerberos principals, password # policies, and keytabs for the cluster. # @return [String] # # @!attribute [rw] cross_realm_trust_principal_password # Required only when establishing a cross-realm trust with a KDC in a # different realm. The cross-realm principal password, which must be # identical across realms. # @return [String] # # @!attribute [rw] ad_domain_join_user # Required only when establishing a cross-realm trust with an Active # Directory domain. A user with sufficient privileges to join # resources to the domain. # @return [String] # # @!attribute [rw] ad_domain_join_password # The Active Directory password for `ADDomainJoinUser`. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/KerberosAttributes AWS API Documentation # class KerberosAttributes < Struct.new( :realm, :kdc_admin_password, :cross_realm_trust_principal_password, :ad_domain_join_user, :ad_domain_join_password) SENSITIVE = [] include Aws::Structure end # A key-value pair. # # @note When making an API call, you may pass KeyValue # data as a hash: # # { # key: "XmlString", # value: "XmlString", # } # # @!attribute [rw] key # The unique identifier of a key-value pair. # @return [String] # # @!attribute [rw] value # The value part of the identified key. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/KeyValue AWS API Documentation # class KeyValue < Struct.new( :key, :value) SENSITIVE = [] include Aws::Structure end # This input determines which bootstrap actions to retrieve. # # @note When making an API call, you may pass ListBootstrapActionsInput # data as a hash: # # { # cluster_id: "ClusterId", # required # marker: "Marker", # } # # @!attribute [rw] cluster_id # The cluster identifier for the bootstrap actions to list. # @return [String] # # @!attribute [rw] marker # The pagination token that indicates the next set of results to # retrieve. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListBootstrapActionsInput AWS API Documentation # class ListBootstrapActionsInput < Struct.new( :cluster_id, :marker) SENSITIVE = [] include Aws::Structure end # This output contains the bootstrap actions detail. # # @!attribute [rw] bootstrap_actions # The bootstrap actions associated with the cluster. # @return [Array] # # @!attribute [rw] marker # The pagination token that indicates the next set of results to # retrieve. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListBootstrapActionsOutput AWS API Documentation # class ListBootstrapActionsOutput < Struct.new( :bootstrap_actions, :marker) SENSITIVE = [] include Aws::Structure end # This input determines how the ListClusters action filters the list of # clusters that it returns. # # @note When making an API call, you may pass ListClustersInput # data as a hash: # # { # created_after: Time.now, # created_before: Time.now, # cluster_states: ["STARTING"], # accepts STARTING, BOOTSTRAPPING, RUNNING, WAITING, TERMINATING, TERMINATED, TERMINATED_WITH_ERRORS # marker: "Marker", # } # # @!attribute [rw] created_after # The creation date and time beginning value filter for listing # clusters. # @return [Time] # # @!attribute [rw] created_before # The creation date and time end value filter for listing clusters. # @return [Time] # # @!attribute [rw] cluster_states # The cluster state filters to apply when listing clusters. # @return [Array] # # @!attribute [rw] marker # The pagination token that indicates the next set of results to # retrieve. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListClustersInput AWS API Documentation # class ListClustersInput < Struct.new( :created_after, :created_before, :cluster_states, :marker) SENSITIVE = [] include Aws::Structure end # This contains a ClusterSummaryList with the cluster details; for # example, the cluster IDs, names, and status. # # @!attribute [rw] clusters # The list of clusters for the account based on the given filters. # @return [Array] # # @!attribute [rw] marker # The pagination token that indicates the next set of results to # retrieve. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListClustersOutput AWS API Documentation # class ListClustersOutput < Struct.new( :clusters, :marker) SENSITIVE = [] include Aws::Structure end # @note When making an API call, you may pass ListInstanceFleetsInput # data as a hash: # # { # cluster_id: "ClusterId", # required # marker: "Marker", # } # # @!attribute [rw] cluster_id # The unique identifier of the cluster. # @return [String] # # @!attribute [rw] marker # The pagination token that indicates the next set of results to # retrieve. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceFleetsInput AWS API Documentation # class ListInstanceFleetsInput < Struct.new( :cluster_id, :marker) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] instance_fleets # The list of instance fleets for the cluster and given filters. # @return [Array] # # @!attribute [rw] marker # The pagination token that indicates the next set of results to # retrieve. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceFleetsOutput AWS API Documentation # class ListInstanceFleetsOutput < Struct.new( :instance_fleets, :marker) SENSITIVE = [] include Aws::Structure end # This input determines which instance groups to retrieve. # # @note When making an API call, you may pass ListInstanceGroupsInput # data as a hash: # # { # cluster_id: "ClusterId", # required # marker: "Marker", # } # # @!attribute [rw] cluster_id # The identifier of the cluster for which to list the instance groups. # @return [String] # # @!attribute [rw] marker # The pagination token that indicates the next set of results to # retrieve. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceGroupsInput AWS API Documentation # class ListInstanceGroupsInput < Struct.new( :cluster_id, :marker) SENSITIVE = [] include Aws::Structure end # This input determines which instance groups to retrieve. # # @!attribute [rw] instance_groups # The list of instance groups for the cluster and given filters. # @return [Array] # # @!attribute [rw] marker # The pagination token that indicates the next set of results to # retrieve. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceGroupsOutput AWS API Documentation # class ListInstanceGroupsOutput < Struct.new( :instance_groups, :marker) SENSITIVE = [] include Aws::Structure end # This input determines which instances to list. # # @note When making an API call, you may pass ListInstancesInput # data as a hash: # # { # cluster_id: "ClusterId", # required # instance_group_id: "InstanceGroupId", # instance_group_types: ["MASTER"], # accepts MASTER, CORE, TASK # instance_fleet_id: "InstanceFleetId", # instance_fleet_type: "MASTER", # accepts MASTER, CORE, TASK # instance_states: ["AWAITING_FULFILLMENT"], # accepts AWAITING_FULFILLMENT, PROVISIONING, BOOTSTRAPPING, RUNNING, TERMINATED # marker: "Marker", # } # # @!attribute [rw] cluster_id # The identifier of the cluster for which to list the instances. # @return [String] # # @!attribute [rw] instance_group_id # The identifier of the instance group for which to list the # instances. # @return [String] # # @!attribute [rw] instance_group_types # The type of instance group for which to list the instances. # @return [Array] # # @!attribute [rw] instance_fleet_id # The unique identifier of the instance fleet. # @return [String] # # @!attribute [rw] instance_fleet_type # The node type of the instance fleet. For example MASTER, CORE, or # TASK. # @return [String] # # @!attribute [rw] instance_states # A list of instance states that will filter the instances returned # with this request. # @return [Array] # # @!attribute [rw] marker # The pagination token that indicates the next set of results to # retrieve. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstancesInput AWS API Documentation # class ListInstancesInput < Struct.new( :cluster_id, :instance_group_id, :instance_group_types, :instance_fleet_id, :instance_fleet_type, :instance_states, :marker) SENSITIVE = [] include Aws::Structure end # This output contains the list of instances. # # @!attribute [rw] instances # The list of instances for the cluster and given filters. # @return [Array] # # @!attribute [rw] marker # The pagination token that indicates the next set of results to # retrieve. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstancesOutput AWS API Documentation # class ListInstancesOutput < Struct.new( :instances, :marker) SENSITIVE = [] include Aws::Structure end # @note When making an API call, you may pass ListNotebookExecutionsInput # data as a hash: # # { # editor_id: "XmlStringMaxLen256", # status: "START_PENDING", # accepts START_PENDING, STARTING, RUNNING, FINISHING, FINISHED, FAILING, FAILED, STOP_PENDING, STOPPING, STOPPED # from: Time.now, # to: Time.now, # marker: "Marker", # } # # @!attribute [rw] editor_id # The unique ID of the editor associated with the notebook execution. # @return [String] # # @!attribute [rw] status # The status filter for listing notebook executions. # # * `START_PENDING` indicates that the cluster has received the # execution request but execution has not begun. # # * `STARTING` indicates that the execution is starting on the # cluster. # # * `RUNNING` indicates that the execution is being processed by the # cluster. # # * `FINISHING` indicates that execution processing is in the final # stages. # # * `FINISHED` indicates that the execution has completed without # error. # # * `FAILING` indicates that the execution is failing and will not # finish successfully. # # * `FAILED` indicates that the execution failed. # # * `STOP_PENDING` indicates that the cluster has received a # `StopNotebookExecution` request and the stop is pending. # # * `STOPPING` indicates that the cluster is in the process of # stopping the execution as a result of a `StopNotebookExecution` # request. # # * `STOPPED` indicates that the execution stopped because of a # `StopNotebookExecution` request. # @return [String] # # @!attribute [rw] from # The beginning of time range filter for listing notebook executions. # The default is the timestamp of 30 days ago. # @return [Time] # # @!attribute [rw] to # The end of time range filter for listing notebook executions. The # default is the current timestamp. # @return [Time] # # @!attribute [rw] marker # The pagination token, returned by a previous # `ListNotebookExecutions` call, that indicates the start of the list # for this `ListNotebookExecutions` call. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListNotebookExecutionsInput AWS API Documentation # class ListNotebookExecutionsInput < Struct.new( :editor_id, :status, :from, :to, :marker) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] notebook_executions # A list of notebook executions. # @return [Array] # # @!attribute [rw] marker # A pagination token that a subsequent `ListNotebookExecutions` can # use to determine the next set of results to retrieve. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListNotebookExecutionsOutput AWS API Documentation # class ListNotebookExecutionsOutput < Struct.new( :notebook_executions, :marker) SENSITIVE = [] include Aws::Structure end # @note When making an API call, you may pass ListSecurityConfigurationsInput # data as a hash: # # { # marker: "Marker", # } # # @!attribute [rw] marker # The pagination token that indicates the set of results to retrieve. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSecurityConfigurationsInput AWS API Documentation # class ListSecurityConfigurationsInput < Struct.new( :marker) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] security_configurations # The creation date and time, and name, of each security # configuration. # @return [Array] # # @!attribute [rw] marker # 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. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSecurityConfigurationsOutput AWS API Documentation # class ListSecurityConfigurationsOutput < Struct.new( :security_configurations, :marker) SENSITIVE = [] include Aws::Structure end # This input determines which steps to list. # # @note When making an API call, you may pass ListStepsInput # data as a hash: # # { # cluster_id: "ClusterId", # required # step_states: ["PENDING"], # accepts PENDING, CANCEL_PENDING, RUNNING, COMPLETED, CANCELLED, FAILED, INTERRUPTED # step_ids: ["XmlString"], # marker: "Marker", # } # # @!attribute [rw] cluster_id # The identifier of the cluster for which to list the steps. # @return [String] # # @!attribute [rw] step_states # The filter to limit the step list based on certain states. # @return [Array] # # @!attribute [rw] step_ids # The filter to limit the step list based on the identifier of the # steps. You can specify a maximum of ten Step IDs. The character # constraint applies to the overall length of the array. # @return [Array] # # @!attribute [rw] marker # The pagination token that indicates the next set of results to # retrieve. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStepsInput AWS API Documentation # class ListStepsInput < Struct.new( :cluster_id, :step_states, :step_ids, :marker) SENSITIVE = [] include Aws::Structure end # This output contains the list of steps returned in reverse order. This # means that the last step is the first element in the list. # # @!attribute [rw] steps # The filtered list of steps for the cluster. # @return [Array] # # @!attribute [rw] marker # The pagination token that indicates the next set of results to # retrieve. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStepsOutput AWS API Documentation # class ListStepsOutput < Struct.new( :steps, :marker) SENSITIVE = [] include Aws::Structure end # @note When making an API call, you may pass ListStudioSessionMappingsInput # data as a hash: # # { # studio_id: "XmlStringMaxLen256", # identity_type: "USER", # accepts USER, GROUP # marker: "Marker", # } # # @!attribute [rw] studio_id # The ID of the Amazon EMR Studio. # @return [String] # # @!attribute [rw] identity_type # Specifies whether to return session mappings for users or groups. If # not specified, the results include session mapping details for both # users and groups. # @return [String] # # @!attribute [rw] marker # The pagination token that indicates the set of results to retrieve. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStudioSessionMappingsInput AWS API Documentation # class ListStudioSessionMappingsInput < Struct.new( :studio_id, :identity_type, :marker) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] session_mappings # A list of session mapping summary objects. Each object includes # session mapping details such as creation time, identity type (user # or group), and Amazon EMR Studio ID. # @return [Array] # # @!attribute [rw] marker # The pagination token that indicates the next set of results to # retrieve. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStudioSessionMappingsOutput AWS API Documentation # class ListStudioSessionMappingsOutput < Struct.new( :session_mappings, :marker) SENSITIVE = [] include Aws::Structure end # @note When making an API call, you may pass ListStudiosInput # data as a hash: # # { # marker: "Marker", # } # # @!attribute [rw] marker # The pagination token that indicates the set of results to retrieve. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStudiosInput AWS API Documentation # class ListStudiosInput < Struct.new( :marker) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] studios # The list of Studio summary objects. # @return [Array] # # @!attribute [rw] marker # The pagination token that indicates the next set of results to # retrieve. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStudiosOutput AWS API Documentation # class ListStudiosOutput < Struct.new( :studios, :marker) SENSITIVE = [] include Aws::Structure end # Managed scaling policy for an Amazon EMR cluster. The policy specifies # the limits for resources that can be added or terminated from a # cluster. The policy only applies to the core and task nodes. The # master node cannot be scaled after initial configuration. # # @note When making an API call, you may pass ManagedScalingPolicy # data as a hash: # # { # compute_limits: { # unit_type: "InstanceFleetUnits", # required, accepts InstanceFleetUnits, Instances, VCPU # minimum_capacity_units: 1, # required # maximum_capacity_units: 1, # required # maximum_on_demand_capacity_units: 1, # maximum_core_capacity_units: 1, # }, # } # # @!attribute [rw] compute_limits # The EC2 unit limits for a managed scaling policy. The managed # scaling activity of a cluster is not allowed to go above or below # these limits. The limit only applies to the core and task nodes. The # master node cannot be scaled after initial configuration. # @return [Types::ComputeLimits] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ManagedScalingPolicy AWS API Documentation # class ManagedScalingPolicy < Struct.new( :compute_limits) SENSITIVE = [] include Aws::Structure end # A CloudWatch dimension, which is specified using a `Key` (known as a # `Name` in CloudWatch), `Value` pair. By default, Amazon EMR uses one # dimension whose `Key` is `JobFlowID` and `Value` is a variable # representing the cluster ID, which is `$\{emr.clusterId\}`. This # enables the rule to bootstrap when the cluster ID becomes available. # # @note When making an API call, you may pass MetricDimension # data as a hash: # # { # key: "String", # value: "String", # } # # @!attribute [rw] key # The dimension name. # @return [String] # # @!attribute [rw] value # The dimension value. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/MetricDimension AWS API Documentation # class MetricDimension < Struct.new( :key, :value) SENSITIVE = [] include Aws::Structure end # @note When making an API call, you may pass ModifyClusterInput # data as a hash: # # { # cluster_id: "String", # required # step_concurrency_level: 1, # } # # @!attribute [rw] cluster_id # The unique identifier of the cluster. # @return [String] # # @!attribute [rw] step_concurrency_level # The number of steps that can be executed concurrently. You can # specify a minimum of 1 step and a maximum of 256 steps. # @return [Integer] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyClusterInput AWS API Documentation # class ModifyClusterInput < Struct.new( :cluster_id, :step_concurrency_level) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] step_concurrency_level # The number of steps that can be executed concurrently. # @return [Integer] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyClusterOutput AWS API Documentation # class ModifyClusterOutput < Struct.new( :step_concurrency_level) SENSITIVE = [] include Aws::Structure end # @note When making an API call, you may pass ModifyInstanceFleetInput # data as a hash: # # { # cluster_id: "ClusterId", # required # instance_fleet: { # required # instance_fleet_id: "InstanceFleetId", # required # target_on_demand_capacity: 1, # target_spot_capacity: 1, # }, # } # # @!attribute [rw] cluster_id # The unique identifier of the cluster. # @return [String] # # @!attribute [rw] instance_fleet # The unique identifier of the instance fleet. # @return [Types::InstanceFleetModifyConfig] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceFleetInput AWS API Documentation # class ModifyInstanceFleetInput < Struct.new( :cluster_id, :instance_fleet) SENSITIVE = [] include Aws::Structure end # Change the size of some instance groups. # # @note When making an API call, you may pass ModifyInstanceGroupsInput # data as a hash: # # { # cluster_id: "ClusterId", # instance_groups: [ # { # instance_group_id: "XmlStringMaxLen256", # required # instance_count: 1, # ec2_instance_ids_to_terminate: ["InstanceId"], # shrink_policy: { # decommission_timeout: 1, # instance_resize_policy: { # instances_to_terminate: ["InstanceId"], # instances_to_protect: ["InstanceId"], # instance_termination_timeout: 1, # }, # }, # configurations: [ # { # classification: "String", # configurations: { # # recursive ConfigurationList # }, # properties: { # "String" => "String", # }, # }, # ], # }, # ], # } # # @!attribute [rw] cluster_id # The ID of the cluster to which the instance group belongs. # @return [String] # # @!attribute [rw] instance_groups # Instance groups to change. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceGroupsInput AWS API Documentation # class ModifyInstanceGroupsInput < Struct.new( :cluster_id, :instance_groups) SENSITIVE = [] include Aws::Structure end # A notebook execution. An execution is a specific instance that an EMR # Notebook is run using the `StartNotebookExecution` action. # # @!attribute [rw] notebook_execution_id # The unique identifier of a notebook execution. # @return [String] # # @!attribute [rw] editor_id # The unique identifier of the EMR Notebook that is used for the # notebook execution. # @return [String] # # @!attribute [rw] execution_engine # The execution engine, such as an EMR cluster, used to run the EMR # notebook and perform the notebook execution. # @return [Types::ExecutionEngineConfig] # # @!attribute [rw] notebook_execution_name # A name for the notebook execution. # @return [String] # # @!attribute [rw] notebook_params # Input parameters in JSON format passed to the EMR Notebook at # runtime for execution. # @return [String] # # @!attribute [rw] status # The status of the notebook execution. # # * `START_PENDING` indicates that the cluster has received the # execution request but execution has not begun. # # * `STARTING` indicates that the execution is starting on the # cluster. # # * `RUNNING` indicates that the execution is being processed by the # cluster. # # * `FINISHING` indicates that execution processing is in the final # stages. # # * `FINISHED` indicates that the execution has completed without # error. # # * `FAILING` indicates that the execution is failing and will not # finish successfully. # # * `FAILED` indicates that the execution failed. # # * `STOP_PENDING` indicates that the cluster has received a # `StopNotebookExecution` request and the stop is pending. # # * `STOPPING` indicates that the cluster is in the process of # stopping the execution as a result of a `StopNotebookExecution` # request. # # * `STOPPED` indicates that the execution stopped because of a # `StopNotebookExecution` request. # @return [String] # # @!attribute [rw] start_time # The timestamp when notebook execution started. # @return [Time] # # @!attribute [rw] end_time # The timestamp when notebook execution ended. # @return [Time] # # @!attribute [rw] arn # The Amazon Resource Name (ARN) of the notebook execution. # @return [String] # # @!attribute [rw] output_notebook_uri # The location of the notebook execution's output file in Amazon S3. # @return [String] # # @!attribute [rw] last_state_change_reason # The reason for the latest status change of the notebook execution. # @return [String] # # @!attribute [rw] notebook_instance_security_group_id # The unique identifier of the EC2 security group associated with the # EMR Notebook instance. For more information see [Specifying EC2 # Security Groups for EMR Notebooks][1] in the *EMR Management Guide*. # # # # [1]: https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-security-groups.html # @return [String] # # @!attribute [rw] tags # A list of tags associated with a notebook execution. 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. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/NotebookExecution AWS API Documentation # class NotebookExecution < Struct.new( :notebook_execution_id, :editor_id, :execution_engine, :notebook_execution_name, :notebook_params, :status, :start_time, :end_time, :arn, :output_notebook_uri, :last_state_change_reason, :notebook_instance_security_group_id, :tags) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] notebook_execution_id # The unique identifier of the notebook execution. # @return [String] # # @!attribute [rw] editor_id # The unique identifier of the editor associated with the notebook # execution. # @return [String] # # @!attribute [rw] notebook_execution_name # The name of the notebook execution. # @return [String] # # @!attribute [rw] status # The status of the notebook execution. # # * `START_PENDING` indicates that the cluster has received the # execution request but execution has not begun. # # * `STARTING` indicates that the execution is starting on the # cluster. # # * `RUNNING` indicates that the execution is being processed by the # cluster. # # * `FINISHING` indicates that execution processing is in the final # stages. # # * `FINISHED` indicates that the execution has completed without # error. # # * `FAILING` indicates that the execution is failing and will not # finish successfully. # # * `FAILED` indicates that the execution failed. # # * `STOP_PENDING` indicates that the cluster has received a # `StopNotebookExecution` request and the stop is pending. # # * `STOPPING` indicates that the cluster is in the process of # stopping the execution as a result of a `StopNotebookExecution` # request. # # * `STOPPED` indicates that the execution stopped because of a # `StopNotebookExecution` request. # @return [String] # # @!attribute [rw] start_time # The timestamp when notebook execution started. # @return [Time] # # @!attribute [rw] end_time # The timestamp when notebook execution started. # @return [Time] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/NotebookExecutionSummary AWS API Documentation # class NotebookExecutionSummary < Struct.new( :notebook_execution_id, :editor_id, :notebook_execution_name, :status, :start_time, :end_time) SENSITIVE = [] include Aws::Structure end # Describes the strategy for using unused Capacity Reservations for # fulfilling On-Demand capacity. # # @note When making an API call, you may pass OnDemandCapacityReservationOptions # data as a hash: # # { # usage_strategy: "use-capacity-reservations-first", # accepts use-capacity-reservations-first # capacity_reservation_preference: "open", # accepts open, none # capacity_reservation_resource_group_arn: "XmlStringMaxLen256", # } # # @!attribute [rw] usage_strategy # Indicates whether to use unused Capacity Reservations for fulfilling # On-Demand capacity. # # If you specify `use-capacity-reservations-first`, the fleet uses # unused Capacity Reservations to fulfill On-Demand capacity up to the # target On-Demand capacity. If multiple instance pools have unused # Capacity Reservations, the On-Demand allocation strategy # (`lowest-price`) is applied. If the number of unused Capacity # Reservations is less than the On-Demand target capacity, the # remaining On-Demand target capacity is launched according to the # On-Demand allocation strategy (`lowest-price`). # # If you do not specify a value, the fleet fulfils the On-Demand # capacity according to the chosen On-Demand allocation strategy. # @return [String] # # @!attribute [rw] capacity_reservation_preference # Indicates the instance's Capacity Reservation preferences. Possible # preferences include: # # * `open` - The instance can run in any open Capacity Reservation # that has matching attributes (instance type, platform, # Availability Zone). # # * `none` - The instance avoids running in a Capacity Reservation # even if one is available. The instance runs as an On-Demand # Instance. # @return [String] # # @!attribute [rw] capacity_reservation_resource_group_arn # The ARN of the Capacity Reservation resource group in which to run # the instance. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/OnDemandCapacityReservationOptions AWS API Documentation # class OnDemandCapacityReservationOptions < Struct.new( :usage_strategy, :capacity_reservation_preference, :capacity_reservation_resource_group_arn) SENSITIVE = [] include Aws::Structure end # The launch specification for On-Demand Instances in the instance # fleet, which determines the allocation strategy. # # The instance fleet configuration is available only in Amazon EMR # versions 4.8.0 and later, excluding 5.0.x versions. On-Demand # Instances allocation strategy is available in Amazon EMR version # 5.12.1 and later. # # # # @note When making an API call, you may pass OnDemandProvisioningSpecification # data as a hash: # # { # allocation_strategy: "lowest-price", # required, accepts lowest-price # capacity_reservation_options: { # usage_strategy: "use-capacity-reservations-first", # accepts use-capacity-reservations-first # capacity_reservation_preference: "open", # accepts open, none # capacity_reservation_resource_group_arn: "XmlStringMaxLen256", # }, # } # # @!attribute [rw] allocation_strategy # Specifies the strategy to use in launching On-Demand instance # fleets. Currently, the only option is `lowest-price` (the default), # which launches the lowest price first. # @return [String] # # @!attribute [rw] capacity_reservation_options # The launch specification for On-Demand instances in the instance # fleet, which determines the allocation strategy. # @return [Types::OnDemandCapacityReservationOptions] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/OnDemandProvisioningSpecification AWS API Documentation # class OnDemandProvisioningSpecification < Struct.new( :allocation_strategy, :capacity_reservation_options) SENSITIVE = [] include Aws::Structure end # Placement group configuration for an Amazon EMR cluster. The # configuration specifies the placement strategy that can be applied to # instance roles during cluster creation. # # To use this configuration, consider attaching managed policy # AmazonElasticMapReducePlacementGroupPolicy to the EMR role. # # @note When making an API call, you may pass PlacementGroupConfig # data as a hash: # # { # instance_role: "MASTER", # required, accepts MASTER, CORE, TASK # placement_strategy: "SPREAD", # accepts SPREAD, PARTITION, CLUSTER, NONE # } # # @!attribute [rw] instance_role # Role of the instance in the cluster. # # Starting with Amazon EMR version 5.23.0, the only supported instance # role is `MASTER`. # @return [String] # # @!attribute [rw] placement_strategy # EC2 Placement Group strategy associated with instance role. # # Starting with Amazon EMR version 5.23.0, the only supported # placement strategy is `SPREAD` for the `MASTER` instance role. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PlacementGroupConfig AWS API Documentation # class PlacementGroupConfig < Struct.new( :instance_role, :placement_strategy) SENSITIVE = [] include Aws::Structure end # The Amazon EC2 Availability Zone configuration of the cluster (job # flow). # # @note When making an API call, you may pass PlacementType # data as a hash: # # { # availability_zone: "XmlString", # availability_zones: ["XmlStringMaxLen256"], # } # # @!attribute [rw] availability_zone # The Amazon EC2 Availability Zone for the cluster. `AvailabilityZone` # is used for uniform instance groups, while `AvailabilityZones` # (plural) is used for instance fleets. # @return [String] # # @!attribute [rw] availability_zones # When multiple Availability Zones are specified, Amazon EMR evaluates # them and launches instances in the optimal Availability Zone. # `AvailabilityZones` is used for instance fleets, while # `AvailabilityZone` (singular) is used for uniform instance groups. # # The instance fleet configuration is available only in Amazon EMR # versions 4.8.0 and later, excluding 5.0.x versions. # # # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PlacementType AWS API Documentation # class PlacementType < Struct.new( :availability_zone, :availability_zones) SENSITIVE = [] include Aws::Structure end # A list of port ranges that are permitted to allow inbound traffic from # all public IP addresses. To specify a single port, use the same value # for `MinRange` and `MaxRange`. # # @note When making an API call, you may pass PortRange # data as a hash: # # { # min_range: 1, # required # max_range: 1, # } # # @!attribute [rw] min_range # The smallest port number in a specified range of port numbers. # @return [Integer] # # @!attribute [rw] max_range # The smallest port number in a specified range of port numbers. # @return [Integer] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PortRange AWS API Documentation # class PortRange < Struct.new( :min_range, :max_range) SENSITIVE = [] include Aws::Structure end # @note When making an API call, you may pass PutAutoScalingPolicyInput # data as a hash: # # { # cluster_id: "ClusterId", # required # instance_group_id: "InstanceGroupId", # required # auto_scaling_policy: { # required # constraints: { # required # min_capacity: 1, # required # max_capacity: 1, # required # }, # rules: [ # required # { # name: "String", # required # description: "String", # action: { # required # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT # simple_scaling_policy_configuration: { # required # adjustment_type: "CHANGE_IN_CAPACITY", # accepts CHANGE_IN_CAPACITY, PERCENT_CHANGE_IN_CAPACITY, EXACT_CAPACITY # scaling_adjustment: 1, # required # cool_down: 1, # }, # }, # trigger: { # required # cloud_watch_alarm_definition: { # required # comparison_operator: "GREATER_THAN_OR_EQUAL", # required, accepts GREATER_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, LESS_THAN_OR_EQUAL # evaluation_periods: 1, # metric_name: "String", # required # namespace: "String", # period: 1, # required # statistic: "SAMPLE_COUNT", # accepts SAMPLE_COUNT, AVERAGE, SUM, MINIMUM, MAXIMUM # threshold: 1.0, # required # unit: "NONE", # accepts 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 # dimensions: [ # { # key: "String", # value: "String", # }, # ], # }, # }, # }, # ], # }, # } # # @!attribute [rw] cluster_id # Specifies the ID of a cluster. The instance group to which the # automatic scaling policy is applied is within this cluster. # @return [String] # # @!attribute [rw] instance_group_id # Specifies the ID of the instance group to which the automatic # scaling policy is applied. # @return [String] # # @!attribute [rw] auto_scaling_policy # Specifies the definition of the automatic scaling policy. # @return [Types::AutoScalingPolicy] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutAutoScalingPolicyInput AWS API Documentation # class PutAutoScalingPolicyInput < Struct.new( :cluster_id, :instance_group_id, :auto_scaling_policy) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] cluster_id # Specifies the ID of a cluster. The instance group to which the # automatic scaling policy is applied is within this cluster. # @return [String] # # @!attribute [rw] instance_group_id # Specifies the ID of the instance group to which the scaling policy # is applied. # @return [String] # # @!attribute [rw] auto_scaling_policy # The automatic scaling policy definition. # @return [Types::AutoScalingPolicyDescription] # # @!attribute [rw] cluster_arn # The Amazon Resource Name (ARN) of the cluster. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutAutoScalingPolicyOutput AWS API Documentation # class PutAutoScalingPolicyOutput < Struct.new( :cluster_id, :instance_group_id, :auto_scaling_policy, :cluster_arn) SENSITIVE = [] include Aws::Structure end # @note When making an API call, you may pass PutBlockPublicAccessConfigurationInput # data as a hash: # # { # block_public_access_configuration: { # required # block_public_security_group_rules: false, # required # permitted_public_security_group_rule_ranges: [ # { # min_range: 1, # required # max_range: 1, # }, # ], # }, # } # # @!attribute [rw] block_public_access_configuration # A configuration for Amazon EMR block public access. The # configuration applies to all clusters created in your account for # the current Region. The configuration specifies whether block public # access is enabled. If block public access is enabled, security # groups associated with the cluster cannot have rules that allow # inbound traffic from 0.0.0.0/0 or ::/0 on a port, unless the port is # specified as an exception using # `PermittedPublicSecurityGroupRuleRanges` in the # `BlockPublicAccessConfiguration`. By default, Port 22 (SSH) is an # exception, and public access is allowed on this port. You can change # this by updating `BlockPublicSecurityGroupRules` to remove the # exception. # # For accounts that created clusters in a Region before November 25, # 2019, block public access is disabled by default in that Region. To # use this feature, you must manually enable and configure it. For # accounts that did not create an EMR cluster in a Region before this # date, block public access is enabled by default in that Region. # # # @return [Types::BlockPublicAccessConfiguration] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutBlockPublicAccessConfigurationInput AWS API Documentation # class PutBlockPublicAccessConfigurationInput < Struct.new( :block_public_access_configuration) SENSITIVE = [] include Aws::Structure end # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutBlockPublicAccessConfigurationOutput AWS API Documentation # class PutBlockPublicAccessConfigurationOutput < Aws::EmptyStructure; end # @note When making an API call, you may pass PutManagedScalingPolicyInput # data as a hash: # # { # cluster_id: "ClusterId", # required # managed_scaling_policy: { # required # compute_limits: { # unit_type: "InstanceFleetUnits", # required, accepts InstanceFleetUnits, Instances, VCPU # minimum_capacity_units: 1, # required # maximum_capacity_units: 1, # required # maximum_on_demand_capacity_units: 1, # maximum_core_capacity_units: 1, # }, # }, # } # # @!attribute [rw] cluster_id # Specifies the ID of an EMR cluster where the managed scaling policy # is attached. # @return [String] # # @!attribute [rw] managed_scaling_policy # Specifies the constraints for the managed scaling policy. # @return [Types::ManagedScalingPolicy] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutManagedScalingPolicyInput AWS API Documentation # class PutManagedScalingPolicyInput < Struct.new( :cluster_id, :managed_scaling_policy) SENSITIVE = [] include Aws::Structure end # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutManagedScalingPolicyOutput AWS API Documentation # class PutManagedScalingPolicyOutput < Aws::EmptyStructure; end # @note When making an API call, you may pass RemoveAutoScalingPolicyInput # data as a hash: # # { # cluster_id: "ClusterId", # required # instance_group_id: "InstanceGroupId", # required # } # # @!attribute [rw] cluster_id # Specifies the ID of a cluster. The instance group to which the # automatic scaling policy is applied is within this cluster. # @return [String] # # @!attribute [rw] instance_group_id # Specifies the ID of the instance group to which the scaling policy # is applied. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveAutoScalingPolicyInput AWS API Documentation # class RemoveAutoScalingPolicyInput < Struct.new( :cluster_id, :instance_group_id) SENSITIVE = [] include Aws::Structure end # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveAutoScalingPolicyOutput AWS API Documentation # class RemoveAutoScalingPolicyOutput < Aws::EmptyStructure; end # @note When making an API call, you may pass RemoveManagedScalingPolicyInput # data as a hash: # # { # cluster_id: "ClusterId", # required # } # # @!attribute [rw] cluster_id # Specifies the ID of the cluster from which the managed scaling # policy will be removed. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveManagedScalingPolicyInput AWS API Documentation # class RemoveManagedScalingPolicyInput < Struct.new( :cluster_id) SENSITIVE = [] include Aws::Structure end # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveManagedScalingPolicyOutput AWS API Documentation # class RemoveManagedScalingPolicyOutput < Aws::EmptyStructure; end # This input identifies a cluster and a list of tags to remove. # # @note When making an API call, you may pass RemoveTagsInput # data as a hash: # # { # resource_id: "ResourceId", # required # tag_keys: ["String"], # required # } # # @!attribute [rw] resource_id # The Amazon EMR resource identifier from which tags will be removed. # This value must be a cluster identifier. # @return [String] # # @!attribute [rw] tag_keys # A list of tag keys to remove from a resource. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveTagsInput AWS API Documentation # class RemoveTagsInput < Struct.new( :resource_id, :tag_keys) SENSITIVE = [] include Aws::Structure end # This output indicates the result of removing tags from a resource. # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveTagsOutput AWS API Documentation # class RemoveTagsOutput < Aws::EmptyStructure; end # Input to the RunJobFlow operation. # # @note When making an API call, you may pass RunJobFlowInput # data as a hash: # # { # name: "XmlStringMaxLen256", # required # log_uri: "XmlString", # log_encryption_kms_key_id: "XmlString", # additional_info: "XmlString", # ami_version: "XmlStringMaxLen256", # release_label: "XmlStringMaxLen256", # instances: { # required # master_instance_type: "InstanceType", # slave_instance_type: "InstanceType", # instance_count: 1, # instance_groups: [ # { # name: "XmlStringMaxLen256", # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT # instance_role: "MASTER", # required, accepts MASTER, CORE, TASK # bid_price: "XmlStringMaxLen256", # instance_type: "InstanceType", # required # instance_count: 1, # required # configurations: [ # { # classification: "String", # configurations: { # # recursive ConfigurationList # }, # properties: { # "String" => "String", # }, # }, # ], # ebs_configuration: { # ebs_block_device_configs: [ # { # volume_specification: { # required # volume_type: "String", # required # iops: 1, # size_in_gb: 1, # required # }, # volumes_per_instance: 1, # }, # ], # ebs_optimized: false, # }, # auto_scaling_policy: { # constraints: { # required # min_capacity: 1, # required # max_capacity: 1, # required # }, # rules: [ # required # { # name: "String", # required # description: "String", # action: { # required # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT # simple_scaling_policy_configuration: { # required # adjustment_type: "CHANGE_IN_CAPACITY", # accepts CHANGE_IN_CAPACITY, PERCENT_CHANGE_IN_CAPACITY, EXACT_CAPACITY # scaling_adjustment: 1, # required # cool_down: 1, # }, # }, # trigger: { # required # cloud_watch_alarm_definition: { # required # comparison_operator: "GREATER_THAN_OR_EQUAL", # required, accepts GREATER_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, LESS_THAN_OR_EQUAL # evaluation_periods: 1, # metric_name: "String", # required # namespace: "String", # period: 1, # required # statistic: "SAMPLE_COUNT", # accepts SAMPLE_COUNT, AVERAGE, SUM, MINIMUM, MAXIMUM # threshold: 1.0, # required # unit: "NONE", # accepts 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 # dimensions: [ # { # key: "String", # value: "String", # }, # ], # }, # }, # }, # ], # }, # }, # ], # instance_fleets: [ # { # name: "XmlStringMaxLen256", # instance_fleet_type: "MASTER", # required, accepts MASTER, CORE, TASK # target_on_demand_capacity: 1, # target_spot_capacity: 1, # instance_type_configs: [ # { # instance_type: "InstanceType", # required # weighted_capacity: 1, # bid_price: "XmlStringMaxLen256", # bid_price_as_percentage_of_on_demand_price: 1.0, # ebs_configuration: { # ebs_block_device_configs: [ # { # volume_specification: { # required # volume_type: "String", # required # iops: 1, # size_in_gb: 1, # required # }, # volumes_per_instance: 1, # }, # ], # ebs_optimized: false, # }, # configurations: [ # { # classification: "String", # configurations: { # # recursive ConfigurationList # }, # properties: { # "String" => "String", # }, # }, # ], # }, # ], # launch_specifications: { # spot_specification: { # timeout_duration_minutes: 1, # required # timeout_action: "SWITCH_TO_ON_DEMAND", # required, accepts SWITCH_TO_ON_DEMAND, TERMINATE_CLUSTER # block_duration_minutes: 1, # allocation_strategy: "capacity-optimized", # accepts capacity-optimized # }, # on_demand_specification: { # allocation_strategy: "lowest-price", # required, accepts lowest-price # capacity_reservation_options: { # usage_strategy: "use-capacity-reservations-first", # accepts use-capacity-reservations-first # capacity_reservation_preference: "open", # accepts open, none # capacity_reservation_resource_group_arn: "XmlStringMaxLen256", # }, # }, # }, # }, # ], # ec2_key_name: "XmlStringMaxLen256", # placement: { # availability_zone: "XmlString", # availability_zones: ["XmlStringMaxLen256"], # }, # keep_job_flow_alive_when_no_steps: false, # termination_protected: false, # hadoop_version: "XmlStringMaxLen256", # ec2_subnet_id: "XmlStringMaxLen256", # ec2_subnet_ids: ["XmlStringMaxLen256"], # emr_managed_master_security_group: "XmlStringMaxLen256", # emr_managed_slave_security_group: "XmlStringMaxLen256", # service_access_security_group: "XmlStringMaxLen256", # additional_master_security_groups: ["XmlStringMaxLen256"], # additional_slave_security_groups: ["XmlStringMaxLen256"], # }, # steps: [ # { # name: "XmlStringMaxLen256", # required # action_on_failure: "TERMINATE_JOB_FLOW", # accepts TERMINATE_JOB_FLOW, TERMINATE_CLUSTER, CANCEL_AND_WAIT, CONTINUE # hadoop_jar_step: { # required # properties: [ # { # key: "XmlString", # value: "XmlString", # }, # ], # jar: "XmlString", # required # main_class: "XmlString", # args: ["XmlString"], # }, # }, # ], # bootstrap_actions: [ # { # name: "XmlStringMaxLen256", # required # script_bootstrap_action: { # required # path: "XmlString", # required # args: ["XmlString"], # }, # }, # ], # supported_products: ["XmlStringMaxLen256"], # new_supported_products: [ # { # name: "XmlStringMaxLen256", # args: ["XmlString"], # }, # ], # applications: [ # { # name: "String", # version: "String", # args: ["String"], # additional_info: { # "String" => "String", # }, # }, # ], # configurations: [ # { # classification: "String", # configurations: { # # recursive ConfigurationList # }, # properties: { # "String" => "String", # }, # }, # ], # visible_to_all_users: false, # job_flow_role: "XmlString", # service_role: "XmlString", # tags: [ # { # key: "String", # value: "String", # }, # ], # security_configuration: "XmlString", # auto_scaling_role: "XmlString", # scale_down_behavior: "TERMINATE_AT_INSTANCE_HOUR", # accepts TERMINATE_AT_INSTANCE_HOUR, TERMINATE_AT_TASK_COMPLETION # custom_ami_id: "XmlStringMaxLen256", # ebs_root_volume_size: 1, # repo_upgrade_on_boot: "SECURITY", # accepts SECURITY, NONE # kerberos_attributes: { # realm: "XmlStringMaxLen256", # required # kdc_admin_password: "XmlStringMaxLen256", # required # cross_realm_trust_principal_password: "XmlStringMaxLen256", # ad_domain_join_user: "XmlStringMaxLen256", # ad_domain_join_password: "XmlStringMaxLen256", # }, # step_concurrency_level: 1, # managed_scaling_policy: { # compute_limits: { # unit_type: "InstanceFleetUnits", # required, accepts InstanceFleetUnits, Instances, VCPU # minimum_capacity_units: 1, # required # maximum_capacity_units: 1, # required # maximum_on_demand_capacity_units: 1, # maximum_core_capacity_units: 1, # }, # }, # placement_group_configs: [ # { # instance_role: "MASTER", # required, accepts MASTER, CORE, TASK # placement_strategy: "SPREAD", # accepts SPREAD, PARTITION, CLUSTER, NONE # }, # ], # } # # @!attribute [rw] name # The name of the job flow. # @return [String] # # @!attribute [rw] log_uri # The location in Amazon S3 to write the log files of the job flow. If # a value is not provided, logs are not created. # @return [String] # # @!attribute [rw] log_encryption_kms_key_id # The AWS KMS customer master key (CMK) used for encrypting log files. # If a value is not provided, the logs remain encrypted by AES-256. # This attribute is only available with Amazon EMR version 5.30.0 and # later, excluding Amazon EMR 6.0.0. # @return [String] # # @!attribute [rw] additional_info # A JSON string for selecting additional features. # @return [String] # # @!attribute [rw] ami_version # Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR # releases 4.0 and later, `ReleaseLabel` is used. To specify a custom # AMI, use `CustomAmiID`. # @return [String] # # @!attribute [rw] release_label # The Amazon EMR release label, which determines the version of # open-source application packages installed on the cluster. Release # labels are in the form `emr-x.x.x`, where x.x.x is an Amazon EMR # release version such as `emr-5.14.0`. For more information about # Amazon EMR release versions and included application versions and # features, see # [https://docs.aws.amazon.com/emr/latest/ReleaseGuide/][1]. The # release label applies only to Amazon EMR releases version 4.0 and # later. Earlier versions use `AmiVersion`. # # # # [1]: https://docs.aws.amazon.com/emr/latest/ReleaseGuide/ # @return [String] # # @!attribute [rw] instances # A specification of the number and type of Amazon EC2 instances. # @return [Types::JobFlowInstancesConfig] # # @!attribute [rw] steps # A list of steps to run. # @return [Array] # # @!attribute [rw] bootstrap_actions # A list of bootstrap actions to run before Hadoop starts on the # cluster nodes. # @return [Array] # # @!attribute [rw] supported_products # For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and # later, use Applications. # # # # A list of strings that indicates third-party software to use. For # more information, see the [Amazon EMR Developer Guide][1]. Currently # supported values are: # # * "mapr-m3" - launch the job flow using MapR M3 Edition. # # * "mapr-m5" - launch the job flow using MapR M5 Edition. # # # # [1]: https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf # @return [Array] # # @!attribute [rw] new_supported_products # For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and # later, 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" in the [Amazon EMR # Developer Guide][1]. 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 Analytics # 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. # # # # [1]: https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf # @return [Array] # # @!attribute [rw] applications # Applies to Amazon EMR releases 4.0 and later. A case-insensitive # list of applications for Amazon EMR to install and configure when # launching the cluster. For a list of applications available for each # Amazon EMR release version, see the [Amazon EMR Release Guide][1]. # # # # [1]: https://docs.aws.amazon.com/emr/latest/ReleaseGuide/ # @return [Array] # # @!attribute [rw] configurations # For Amazon EMR releases 4.0 and later. The list of configurations # supplied for the EMR cluster you are creating. # @return [Array] # # @!attribute [rw] visible_to_all_users # A value of `true` indicates that all IAM users in the AWS account # can perform cluster actions if they have the proper IAM policy # permissions. This is the default. A value of `false` indicates that # only the IAM user who created the cluster can perform actions. # @return [Boolean] # # @!attribute [rw] job_flow_role # 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. # @return [String] # # @!attribute [rw] service_role # The IAM role that will be assumed by the Amazon EMR service to # access AWS resources on your behalf. # @return [String] # # @!attribute [rw] tags # A list of tags to associate with a cluster and propagate to Amazon # EC2 instances. # @return [Array] # # @!attribute [rw] security_configuration # The name of a security configuration to apply to the cluster. # @return [String] # # @!attribute [rw] auto_scaling_role # 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. # @return [String] # # @!attribute [rw] scale_down_behavior # 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 adds nodes # to a deny list 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. # @return [String] # # @!attribute [rw] custom_ami_id # Available only in Amazon EMR version 5.7.0 and later. The ID of a # custom Amazon EBS-backed Linux AMI. If specified, Amazon EMR uses # this AMI when it launches cluster EC2 instances. For more # information about custom AMIs in Amazon EMR, see [Using a Custom # AMI][1] in the *Amazon EMR Management Guide*. If omitted, the # cluster uses the base Linux AMI for the `ReleaseLabel` specified. # For Amazon EMR versions 2.x and 3.x, use `AmiVersion` instead. # # For information about creating a custom AMI, see [Creating an Amazon # EBS-Backed Linux AMI][2] in the *Amazon Elastic Compute Cloud User # Guide for Linux Instances*. For information about finding an AMI ID, # see [Finding a Linux AMI][3]. # # # # [1]: https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami.html # [2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html # [3]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html # @return [String] # # @!attribute [rw] ebs_root_volume_size # The size, in GiB, of the Amazon EBS root device volume of the Linux # AMI that is used for each EC2 instance. Available in Amazon EMR # version 4.x and later. # @return [Integer] # # @!attribute [rw] repo_upgrade_on_boot # Applies only when `CustomAmiID` is used. Specifies which updates # from the Amazon Linux AMI package repositories to apply # automatically when the instance boots using the AMI. If omitted, the # default is `SECURITY`, which indicates that only security updates # are applied. If `NONE` is specified, no updates are applied, and all # updates must be applied manually. # @return [String] # # @!attribute [rw] kerberos_attributes # Attributes for Kerberos configuration when Kerberos authentication # is enabled using a security configuration. For more information see # [Use Kerberos Authentication][1] in the *Amazon EMR Management # Guide*. # # # # [1]: https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html # @return [Types::KerberosAttributes] # # @!attribute [rw] step_concurrency_level # Specifies the number of steps that can be executed concurrently. The # default value is `1`. The maximum value is `256`. # @return [Integer] # # @!attribute [rw] managed_scaling_policy # The specified managed scaling policy for an Amazon EMR cluster. # @return [Types::ManagedScalingPolicy] # # @!attribute [rw] placement_group_configs # The specified placement group configuration for an Amazon EMR # cluster. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RunJobFlowInput AWS API Documentation # class RunJobFlowInput < Struct.new( :name, :log_uri, :log_encryption_kms_key_id, :additional_info, :ami_version, :release_label, :instances, :steps, :bootstrap_actions, :supported_products, :new_supported_products, :applications, :configurations, :visible_to_all_users, :job_flow_role, :service_role, :tags, :security_configuration, :auto_scaling_role, :scale_down_behavior, :custom_ami_id, :ebs_root_volume_size, :repo_upgrade_on_boot, :kerberos_attributes, :step_concurrency_level, :managed_scaling_policy, :placement_group_configs) SENSITIVE = [] include Aws::Structure end # The result of the RunJobFlow operation. # # @!attribute [rw] job_flow_id # A unique identifier for the job flow. # @return [String] # # @!attribute [rw] cluster_arn # The Amazon Resource Name (ARN) of the cluster. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RunJobFlowOutput AWS API Documentation # class RunJobFlowOutput < Struct.new( :job_flow_id, :cluster_arn) SENSITIVE = [] include Aws::Structure end # The type of adjustment the automatic scaling activity makes when # triggered, and the periodicity of the adjustment. # # @note When making an API call, you may pass ScalingAction # data as a hash: # # { # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT # simple_scaling_policy_configuration: { # required # adjustment_type: "CHANGE_IN_CAPACITY", # accepts CHANGE_IN_CAPACITY, PERCENT_CHANGE_IN_CAPACITY, EXACT_CAPACITY # scaling_adjustment: 1, # required # cool_down: 1, # }, # } # # @!attribute [rw] market # Not available for instance groups. Instance groups use the market # type specified for the group. # @return [String] # # @!attribute [rw] simple_scaling_policy_configuration # The type of adjustment the automatic scaling activity makes when # triggered, and the periodicity of the adjustment. # @return [Types::SimpleScalingPolicyConfiguration] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ScalingAction AWS API Documentation # class ScalingAction < Struct.new( :market, :simple_scaling_policy_configuration) SENSITIVE = [] include Aws::Structure end # The upper and lower EC2 instance limits for an automatic scaling # policy. Automatic scaling activities triggered by automatic scaling # rules will not cause an instance group to grow above or below these # limits. # # @note When making an API call, you may pass ScalingConstraints # data as a hash: # # { # min_capacity: 1, # required # max_capacity: 1, # required # } # # @!attribute [rw] min_capacity # 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. # @return [Integer] # # @!attribute [rw] max_capacity # 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. # @return [Integer] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ScalingConstraints AWS API Documentation # class ScalingConstraints < Struct.new( :min_capacity, :max_capacity) SENSITIVE = [] include Aws::Structure end # A scale-in or scale-out rule that defines scaling activity, including # the CloudWatch metric alarm that triggers activity, how EC2 instances # are added or removed, and the periodicity of adjustments. The # automatic scaling policy for an instance group can comprise one or # more automatic scaling rules. # # @note When making an API call, you may pass ScalingRule # data as a hash: # # { # name: "String", # required # description: "String", # action: { # required # market: "ON_DEMAND", # accepts ON_DEMAND, SPOT # simple_scaling_policy_configuration: { # required # adjustment_type: "CHANGE_IN_CAPACITY", # accepts CHANGE_IN_CAPACITY, PERCENT_CHANGE_IN_CAPACITY, EXACT_CAPACITY # scaling_adjustment: 1, # required # cool_down: 1, # }, # }, # trigger: { # required # cloud_watch_alarm_definition: { # required # comparison_operator: "GREATER_THAN_OR_EQUAL", # required, accepts GREATER_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, LESS_THAN_OR_EQUAL # evaluation_periods: 1, # metric_name: "String", # required # namespace: "String", # period: 1, # required # statistic: "SAMPLE_COUNT", # accepts SAMPLE_COUNT, AVERAGE, SUM, MINIMUM, MAXIMUM # threshold: 1.0, # required # unit: "NONE", # accepts 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 # dimensions: [ # { # key: "String", # value: "String", # }, # ], # }, # }, # } # # @!attribute [rw] name # The name used to identify an automatic scaling rule. Rule names must # be unique within a scaling policy. # @return [String] # # @!attribute [rw] description # A friendly, more verbose description of the automatic scaling rule. # @return [String] # # @!attribute [rw] action # The conditions that trigger an automatic scaling activity. # @return [Types::ScalingAction] # # @!attribute [rw] trigger # The CloudWatch alarm definition that determines when automatic # scaling activity is triggered. # @return [Types::ScalingTrigger] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ScalingRule AWS API Documentation # class ScalingRule < Struct.new( :name, :description, :action, :trigger) SENSITIVE = [] include Aws::Structure end # The conditions that trigger an automatic scaling activity. # # @note When making an API call, you may pass ScalingTrigger # data as a hash: # # { # cloud_watch_alarm_definition: { # required # comparison_operator: "GREATER_THAN_OR_EQUAL", # required, accepts GREATER_THAN_OR_EQUAL, GREATER_THAN, LESS_THAN, LESS_THAN_OR_EQUAL # evaluation_periods: 1, # metric_name: "String", # required # namespace: "String", # period: 1, # required # statistic: "SAMPLE_COUNT", # accepts SAMPLE_COUNT, AVERAGE, SUM, MINIMUM, MAXIMUM # threshold: 1.0, # required # unit: "NONE", # accepts 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 # dimensions: [ # { # key: "String", # value: "String", # }, # ], # }, # } # # @!attribute [rw] cloud_watch_alarm_definition # The definition of a CloudWatch metric alarm. When the defined alarm # conditions are met along with other trigger parameters, scaling # activity begins. # @return [Types::CloudWatchAlarmDefinition] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ScalingTrigger AWS API Documentation # class ScalingTrigger < Struct.new( :cloud_watch_alarm_definition) SENSITIVE = [] include Aws::Structure end # Configuration of the script to run during a bootstrap action. # # @note When making an API call, you may pass ScriptBootstrapActionConfig # data as a hash: # # { # path: "XmlString", # required # args: ["XmlString"], # } # # @!attribute [rw] path # Location of the script to run during a bootstrap action. Can be # either a location in Amazon S3 or on a local file system. # @return [String] # # @!attribute [rw] args # A list of command line arguments to pass to the bootstrap action # script. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ScriptBootstrapActionConfig AWS API Documentation # class ScriptBootstrapActionConfig < Struct.new( :path, :args) SENSITIVE = [] include Aws::Structure end # The creation date and time, and name, of a security configuration. # # @!attribute [rw] name # The name of the security configuration. # @return [String] # # @!attribute [rw] creation_date_time # The date and time the security configuration was created. # @return [Time] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SecurityConfigurationSummary AWS API Documentation # class SecurityConfigurationSummary < Struct.new( :name, :creation_date_time) SENSITIVE = [] include Aws::Structure end # Details for an Amazon EMR Studio session mapping including creation # time, user or group ID, Studio ID, and so on. # # @!attribute [rw] studio_id # The ID of the Amazon EMR Studio. # @return [String] # # @!attribute [rw] identity_id # The globally unique identifier (GUID) of the user or group. # @return [String] # # @!attribute [rw] identity_name # The name of the user or group. For more information, see # [UserName][1] and [DisplayName][2] in the *AWS SSO Identity Store # API Reference*. # # # # [1]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName # [2]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName # @return [String] # # @!attribute [rw] identity_type # Specifies whether the identity mapped to the Amazon EMR Studio is a # user or a group. # @return [String] # # @!attribute [rw] session_policy_arn # The Amazon Resource Name (ARN) of the session policy associated with # the user or group. # @return [String] # # @!attribute [rw] creation_time # The time the session mapping was created. # @return [Time] # # @!attribute [rw] last_modified_time # The time the session mapping was last modified. # @return [Time] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SessionMappingDetail AWS API Documentation # class SessionMappingDetail < Struct.new( :studio_id, :identity_id, :identity_name, :identity_type, :session_policy_arn, :creation_time, :last_modified_time) SENSITIVE = [] include Aws::Structure end # Details for an Amazon EMR Studio session mapping. The details do not # include the time the session mapping was last modified. # # @!attribute [rw] studio_id # The ID of the Amazon EMR Studio. # @return [String] # # @!attribute [rw] identity_id # The globally unique identifier (GUID) of the user or group from the # AWS SSO Identity Store. # @return [String] # # @!attribute [rw] identity_name # The name of the user or group. For more information, see # [UserName][1] and [DisplayName][2] in the *AWS SSO Identity Store # API Reference*. # # # # [1]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName # [2]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName # @return [String] # # @!attribute [rw] identity_type # Specifies whether the identity mapped to the Amazon EMR Studio is a # user or a group. # @return [String] # # @!attribute [rw] session_policy_arn # The Amazon Resource Name (ARN) of the session policy associated with # the user or group. # @return [String] # # @!attribute [rw] creation_time # The time the session mapping was created. # @return [Time] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SessionMappingSummary AWS API Documentation # class SessionMappingSummary < Struct.new( :studio_id, :identity_id, :identity_name, :identity_type, :session_policy_arn, :creation_time) SENSITIVE = [] include Aws::Structure end # The input argument to the TerminationProtection operation. # # @note When making an API call, you may pass SetTerminationProtectionInput # data as a hash: # # { # job_flow_ids: ["XmlString"], # required # termination_protected: false, # required # } # # @!attribute [rw] job_flow_ids # A list of strings that uniquely identify the clusters to protect. # This identifier is returned by RunJobFlow and can also be obtained # from DescribeJobFlows . # @return [Array] # # @!attribute [rw] termination_protected # A Boolean that indicates whether to protect the cluster and prevent # the Amazon EC2 instances in the cluster from shutting down due to # API calls, user intervention, or job-flow error. # @return [Boolean] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetTerminationProtectionInput AWS API Documentation # class SetTerminationProtectionInput < Struct.new( :job_flow_ids, :termination_protected) SENSITIVE = [] include Aws::Structure end # The input to the SetVisibleToAllUsers action. # # @note When making an API call, you may pass SetVisibleToAllUsersInput # data as a hash: # # { # job_flow_ids: ["XmlString"], # required # visible_to_all_users: false, # required # } # # @!attribute [rw] job_flow_ids # The unique identifier of the job flow (cluster). # @return [Array] # # @!attribute [rw] visible_to_all_users # A value of `true` indicates that all IAM users in the AWS account # can perform cluster actions if they have the proper IAM policy # permissions. This is the default. A value of `false` indicates that # only the IAM user who created the cluster can perform actions. # @return [Boolean] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetVisibleToAllUsersInput AWS API Documentation # class SetVisibleToAllUsersInput < Struct.new( :job_flow_ids, :visible_to_all_users) SENSITIVE = [] include Aws::Structure end # Policy for customizing shrink operations. Allows configuration of # decommissioning timeout and targeted instance shrinking. # # @note When making an API call, you may pass ShrinkPolicy # data as a hash: # # { # decommission_timeout: 1, # instance_resize_policy: { # instances_to_terminate: ["InstanceId"], # instances_to_protect: ["InstanceId"], # instance_termination_timeout: 1, # }, # } # # @!attribute [rw] decommission_timeout # The desired timeout for decommissioning an instance. Overrides the # default YARN decommissioning timeout. # @return [Integer] # # @!attribute [rw] instance_resize_policy # Custom policy for requesting termination protection or termination # of specific instances when shrinking an instance group. # @return [Types::InstanceResizePolicy] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ShrinkPolicy AWS API Documentation # class ShrinkPolicy < Struct.new( :decommission_timeout, :instance_resize_policy) SENSITIVE = [] include Aws::Structure end # An automatic scaling configuration, which describes how the policy # adds or removes instances, the cooldown period, and the number of EC2 # instances that will be added each time the CloudWatch metric alarm # condition is satisfied. # # @note When making an API call, you may pass SimpleScalingPolicyConfiguration # data as a hash: # # { # adjustment_type: "CHANGE_IN_CAPACITY", # accepts CHANGE_IN_CAPACITY, PERCENT_CHANGE_IN_CAPACITY, EXACT_CAPACITY # scaling_adjustment: 1, # required # cool_down: 1, # } # # @!attribute [rw] adjustment_type # 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 an integer. For example, 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. # @return [String] # # @!attribute [rw] scaling_adjustment # 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 an integer. For example, -20 indicates a decrease in # 20% increments of cluster capacity. # @return [Integer] # # @!attribute [rw] cool_down # 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. # @return [Integer] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SimpleScalingPolicyConfiguration AWS API Documentation # class SimpleScalingPolicyConfiguration < Struct.new( :adjustment_type, :scaling_adjustment, :cool_down) SENSITIVE = [] include Aws::Structure end # The launch specification for Spot Instances in the instance fleet, # which determines the defined duration, provisioning timeout behavior, # and allocation strategy. # # The instance fleet configuration is available only in Amazon EMR # versions 4.8.0 and later, excluding 5.0.x versions. Spot Instance # allocation strategy is available in Amazon EMR version 5.12.1 and # later. # # # # @note When making an API call, you may pass SpotProvisioningSpecification # data as a hash: # # { # timeout_duration_minutes: 1, # required # timeout_action: "SWITCH_TO_ON_DEMAND", # required, accepts SWITCH_TO_ON_DEMAND, TERMINATE_CLUSTER # block_duration_minutes: 1, # allocation_strategy: "capacity-optimized", # accepts capacity-optimized # } # # @!attribute [rw] timeout_duration_minutes # The spot provisioning timeout period in minutes. If Spot Instances # are not provisioned within this time period, the `TimeOutAction` is # taken. Minimum value is 5 and maximum value is 1440. The timeout # applies only during initial provisioning, when the cluster is first # created. # @return [Integer] # # @!attribute [rw] timeout_action # The action to take when `TargetSpotCapacity` has not been fulfilled # when the `TimeoutDurationMinutes` has expired; that is, when all # Spot Instances could not be provisioned within the Spot provisioning # timeout. Valid values are `TERMINATE_CLUSTER` and # `SWITCH_TO_ON_DEMAND`. SWITCH\_TO\_ON\_DEMAND specifies that if no # Spot Instances are available, On-Demand Instances should be # provisioned to fulfill any remaining Spot capacity. # @return [String] # # @!attribute [rw] block_duration_minutes # The defined duration for Spot Instances (also known as Spot blocks) # in minutes. When specified, the Spot Instance does not terminate # before the defined duration expires, and defined duration pricing # for Spot Instances applies. Valid values are 60, 120, 180, 240, 300, # or 360. The duration period starts as soon as a Spot Instance # receives its instance ID. At the end of the duration, Amazon EC2 # marks the Spot Instance for termination and provides a Spot Instance # termination notice, which gives the instance a two-minute warning # before it terminates. # @return [Integer] # # @!attribute [rw] allocation_strategy # Specifies the strategy to use in launching Spot Instance fleets. # Currently, the only option is capacity-optimized (the default), # which launches instances from Spot Instance pools with optimal # capacity for the number of instances that are launching. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SpotProvisioningSpecification AWS API Documentation # class SpotProvisioningSpecification < Struct.new( :timeout_duration_minutes, :timeout_action, :block_duration_minutes, :allocation_strategy) SENSITIVE = [] include Aws::Structure end # @note When making an API call, you may pass StartNotebookExecutionInput # data as a hash: # # { # editor_id: "XmlStringMaxLen256", # required # relative_path: "XmlString", # required # notebook_execution_name: "XmlStringMaxLen256", # notebook_params: "XmlString", # execution_engine: { # required # id: "XmlStringMaxLen256", # required # type: "EMR", # accepts EMR # master_instance_security_group_id: "XmlStringMaxLen256", # }, # service_role: "XmlString", # required # notebook_instance_security_group_id: "XmlStringMaxLen256", # tags: [ # { # key: "String", # value: "String", # }, # ], # } # # @!attribute [rw] editor_id # The unique identifier of the EMR Notebook to use for notebook # execution. # @return [String] # # @!attribute [rw] relative_path # The path and file name of the notebook file for this execution, # relative to the path specified for the EMR Notebook. For example, if # you specify a path of `s3://MyBucket/MyNotebooks` when you create an # EMR Notebook for a notebook with an ID of # `e-ABCDEFGHIJK1234567890ABCD` (the `EditorID` of this request), and # you specify a `RelativePath` of # `my_notebook_executions/notebook_execution.ipynb`, the location of # the file for the notebook execution is # `s3://MyBucket/MyNotebooks/e-ABCDEFGHIJK1234567890ABCD/my_notebook_executions/notebook_execution.ipynb`. # @return [String] # # @!attribute [rw] notebook_execution_name # An optional name for the notebook execution. # @return [String] # # @!attribute [rw] notebook_params # Input parameters in JSON format passed to the EMR Notebook at # runtime for execution. # @return [String] # # @!attribute [rw] execution_engine # Specifies the execution engine (cluster) that runs the notebook # execution. # @return [Types::ExecutionEngineConfig] # # @!attribute [rw] service_role # The name or ARN of the IAM role that is used as the service role for # Amazon EMR (the EMR role) for the notebook execution. # @return [String] # # @!attribute [rw] notebook_instance_security_group_id # The unique identifier of the Amazon EC2 security group to associate # with the EMR Notebook for this notebook execution. # @return [String] # # @!attribute [rw] tags # A list of tags associated with a notebook execution. 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. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StartNotebookExecutionInput AWS API Documentation # class StartNotebookExecutionInput < Struct.new( :editor_id, :relative_path, :notebook_execution_name, :notebook_params, :execution_engine, :service_role, :notebook_instance_security_group_id, :tags) SENSITIVE = [] include Aws::Structure end # @!attribute [rw] notebook_execution_id # The unique identifier of the notebook execution. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StartNotebookExecutionOutput AWS API Documentation # class StartNotebookExecutionOutput < Struct.new( :notebook_execution_id) SENSITIVE = [] include Aws::Structure end # This represents a step in a cluster. # # @!attribute [rw] id # The identifier of the cluster step. # @return [String] # # @!attribute [rw] name # The name of the cluster step. # @return [String] # # @!attribute [rw] config # The Hadoop job configuration of the cluster step. # @return [Types::HadoopStepConfig] # # @!attribute [rw] action_on_failure # The action to take when the cluster step fails. Possible values are # TERMINATE\_CLUSTER, CANCEL\_AND\_WAIT, and CONTINUE. # TERMINATE\_JOB\_FLOW is provided for backward compatibility. We # recommend using TERMINATE\_CLUSTER instead. # @return [String] # # @!attribute [rw] status # The current execution status details of the cluster step. # @return [Types::StepStatus] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/Step AWS API Documentation # class Step < Struct.new( :id, :name, :config, :action_on_failure, :status) SENSITIVE = [] include Aws::Structure end # Specification of a cluster (job flow) step. # # @note When making an API call, you may pass StepConfig # data as a hash: # # { # name: "XmlStringMaxLen256", # required # action_on_failure: "TERMINATE_JOB_FLOW", # accepts TERMINATE_JOB_FLOW, TERMINATE_CLUSTER, CANCEL_AND_WAIT, CONTINUE # hadoop_jar_step: { # required # properties: [ # { # key: "XmlString", # value: "XmlString", # }, # ], # jar: "XmlString", # required # main_class: "XmlString", # args: ["XmlString"], # }, # } # # @!attribute [rw] name # The name of the step. # @return [String] # # @!attribute [rw] action_on_failure # The action to take when the cluster step fails. Possible values are # TERMINATE\_CLUSTER, CANCEL\_AND\_WAIT, and CONTINUE. # TERMINATE\_JOB\_FLOW is provided for backward compatibility. We # recommend using TERMINATE\_CLUSTER instead. # @return [String] # # @!attribute [rw] hadoop_jar_step # The JAR file used for the step. # @return [Types::HadoopJarStepConfig] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StepConfig AWS API Documentation # class StepConfig < Struct.new( :name, :action_on_failure, :hadoop_jar_step) SENSITIVE = [] include Aws::Structure end # Combines the execution state and configuration of a step. # # @!attribute [rw] step_config # The step configuration. # @return [Types::StepConfig] # # @!attribute [rw] execution_status_detail # The description of the step status. # @return [Types::StepExecutionStatusDetail] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StepDetail AWS API Documentation # class StepDetail < Struct.new( :step_config, :execution_status_detail) SENSITIVE = [] include Aws::Structure end # The execution state of a step. # # @!attribute [rw] state # The state of the step. # @return [String] # # @!attribute [rw] creation_date_time # The creation date and time of the step. # @return [Time] # # @!attribute [rw] start_date_time # The start date and time of the step. # @return [Time] # # @!attribute [rw] end_date_time # The completion date and time of the step. # @return [Time] # # @!attribute [rw] last_state_change_reason # A description of the step's current state. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StepExecutionStatusDetail AWS API Documentation # class StepExecutionStatusDetail < Struct.new( :state, :creation_date_time, :start_date_time, :end_date_time, :last_state_change_reason) SENSITIVE = [] include Aws::Structure end # The details of the step state change reason. # # @!attribute [rw] code # The programmable code for the state change reason. Note: Currently, # the service provides no code for the state change. # @return [String] # # @!attribute [rw] message # The descriptive message for the state change reason. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StepStateChangeReason AWS API Documentation # class StepStateChangeReason < Struct.new( :code, :message) SENSITIVE = [] include Aws::Structure end # The execution status details of the cluster step. # # @!attribute [rw] state # The execution state of the cluster step. # @return [String] # # @!attribute [rw] state_change_reason # The reason for the step execution status change. # @return [Types::StepStateChangeReason] # # @!attribute [rw] failure_details # The details for the step failure including reason, message, and log # file path where the root cause was identified. # @return [Types::FailureDetails] # # @!attribute [rw] timeline # The timeline of the cluster step status over time. # @return [Types::StepTimeline] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StepStatus AWS API Documentation # class StepStatus < Struct.new( :state, :state_change_reason, :failure_details, :timeline) SENSITIVE = [] include Aws::Structure end # The summary of the cluster step. # # @!attribute [rw] id # The identifier of the cluster step. # @return [String] # # @!attribute [rw] name # The name of the cluster step. # @return [String] # # @!attribute [rw] config # The Hadoop job configuration of the cluster step. # @return [Types::HadoopStepConfig] # # @!attribute [rw] action_on_failure # The action to take when the cluster step fails. Possible values are # TERMINATE\_CLUSTER, CANCEL\_AND\_WAIT, and CONTINUE. # TERMINATE\_JOB\_FLOW is available for backward compatibility. We # recommend using TERMINATE\_CLUSTER instead. # @return [String] # # @!attribute [rw] status # The current execution status details of the cluster step. # @return [Types::StepStatus] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StepSummary AWS API Documentation # class StepSummary < Struct.new( :id, :name, :config, :action_on_failure, :status) SENSITIVE = [] include Aws::Structure end # The timeline of the cluster step lifecycle. # # @!attribute [rw] creation_date_time # The date and time when the cluster step was created. # @return [Time] # # @!attribute [rw] start_date_time # The date and time when the cluster step execution started. # @return [Time] # # @!attribute [rw] end_date_time # The date and time when the cluster step execution completed or # failed. # @return [Time] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StepTimeline AWS API Documentation # class StepTimeline < Struct.new( :creation_date_time, :start_date_time, :end_date_time) SENSITIVE = [] include Aws::Structure end # @note When making an API call, you may pass StopNotebookExecutionInput # data as a hash: # # { # notebook_execution_id: "XmlStringMaxLen256", # required # } # # @!attribute [rw] notebook_execution_id # The unique identifier of the notebook execution. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StopNotebookExecutionInput AWS API Documentation # class StopNotebookExecutionInput < Struct.new( :notebook_execution_id) SENSITIVE = [] include Aws::Structure end # Details for an Amazon EMR Studio including ID, creation time, name, # and so on. # # @!attribute [rw] studio_id # The ID of the Amazon EMR Studio. # @return [String] # # @!attribute [rw] studio_arn # The Amazon Resource Name (ARN) of the Amazon EMR Studio. # @return [String] # # @!attribute [rw] name # The name of the Amazon EMR Studio. # @return [String] # # @!attribute [rw] description # The detailed description of the Amazon EMR Studio. # @return [String] # # @!attribute [rw] auth_mode # Specifies whether the Amazon EMR Studio authenticates users using # single sign-on (SSO) or IAM. # @return [String] # # @!attribute [rw] vpc_id # The ID of the VPC associated with the Amazon EMR Studio. # @return [String] # # @!attribute [rw] subnet_ids # The list of IDs of the subnets associated with the Amazon EMR # Studio. # @return [Array] # # @!attribute [rw] service_role # The name of the IAM role assumed by the Amazon EMR Studio. # @return [String] # # @!attribute [rw] user_role # The name of the IAM role assumed by users logged in to the Amazon # EMR Studio. # @return [String] # # @!attribute [rw] workspace_security_group_id # The ID of the Workspace security group associated with the Amazon # EMR Studio. The Workspace security group allows outbound network # traffic to resources in the Engine security group and to the # internet. # @return [String] # # @!attribute [rw] engine_security_group_id # The ID of the Engine security group associated with the Amazon EMR # Studio. The Engine security group allows inbound network traffic # from resources in the Workspace security group. # @return [String] # # @!attribute [rw] url # The unique access URL of the Amazon EMR Studio. # @return [String] # # @!attribute [rw] creation_time # The time the Amazon EMR Studio was created. # @return [Time] # # @!attribute [rw] default_s3_location # The Amazon S3 location to back up Amazon EMR Studio Workspaces and # notebook files. # @return [String] # # @!attribute [rw] tags # A list of tags associated with the Amazon EMR Studio. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/Studio AWS API Documentation # class Studio < Struct.new( :studio_id, :studio_arn, :name, :description, :auth_mode, :vpc_id, :subnet_ids, :service_role, :user_role, :workspace_security_group_id, :engine_security_group_id, :url, :creation_time, :default_s3_location, :tags) SENSITIVE = [] include Aws::Structure end # Details for an Amazon EMR Studio, including ID, Name, VPC, and # Description. The details do not include subnets, IAM roles, security # groups, or tags associated with the Studio. # # @!attribute [rw] studio_id # The ID of the Amazon EMR Studio. # @return [String] # # @!attribute [rw] name # The name of the Amazon EMR Studio. # @return [String] # # @!attribute [rw] vpc_id # The ID of the Virtual Private Cloud (Amazon VPC) associated with the # Amazon EMR Studio. # @return [String] # # @!attribute [rw] description # The detailed description of the Amazon EMR Studio. # @return [String] # # @!attribute [rw] url # The unique access URL of the Amazon EMR Studio. # @return [String] # # @!attribute [rw] creation_time # The time when the Amazon EMR Studio was created. # @return [Time] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StudioSummary AWS API Documentation # class StudioSummary < Struct.new( :studio_id, :name, :vpc_id, :description, :url, :creation_time) SENSITIVE = [] include Aws::Structure end # The list of supported product configurations that allow user-supplied # arguments. EMR accepts these arguments and forwards them to the # corresponding installation script as bootstrap action arguments. # # @note When making an API call, you may pass SupportedProductConfig # data as a hash: # # { # name: "XmlStringMaxLen256", # args: ["XmlString"], # } # # @!attribute [rw] name # The name of the product configuration. # @return [String] # # @!attribute [rw] args # The list of user-supplied arguments. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SupportedProductConfig AWS API Documentation # class SupportedProductConfig < Struct.new( :name, :args) SENSITIVE = [] include Aws::Structure end # A key-value pair containing user-defined metadata that you can # associate with an Amazon EMR resource. Tags make it easier to # associate clusters in various ways, such as grouping clusters to track # your Amazon EMR resource allocation costs. For more information, see # [Tag Clusters][1]. # # # # [1]: https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html # # @note When making an API call, you may pass Tag # data as a hash: # # { # key: "String", # value: "String", # } # # @!attribute [rw] key # A user-defined key, which is the minimum required information for a # valid tag. For more information, see [Tag ][1]. # # # # [1]: https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html # @return [String] # # @!attribute [rw] value # A user-defined value, which is optional in a tag. For more # information, see [Tag Clusters][1]. # # # # [1]: https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/Tag AWS API Documentation # class Tag < Struct.new( :key, :value) SENSITIVE = [] include Aws::Structure end # Input to the TerminateJobFlows operation. # # @note When making an API call, you may pass TerminateJobFlowsInput # data as a hash: # # { # job_flow_ids: ["XmlString"], # required # } # # @!attribute [rw] job_flow_ids # A list of job flows to be shut down. # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/TerminateJobFlowsInput AWS API Documentation # class TerminateJobFlowsInput < Struct.new( :job_flow_ids) SENSITIVE = [] include Aws::Structure end # @note When making an API call, you may pass UpdateStudioInput # data as a hash: # # { # studio_id: "XmlStringMaxLen256", # required # name: "XmlStringMaxLen256", # description: "XmlStringMaxLen256", # subnet_ids: ["String"], # default_s3_location: "XmlString", # } # # @!attribute [rw] studio_id # The ID of the Amazon EMR Studio to update. # @return [String] # # @!attribute [rw] name # A descriptive name for the Amazon EMR Studio. # @return [String] # # @!attribute [rw] description # A detailed description to assign to the Amazon EMR Studio. # @return [String] # # @!attribute [rw] subnet_ids # A list of subnet IDs to associate with the Amazon EMR Studio. The # list can include new subnet IDs, but must also include all of the # subnet IDs previously associated with the Studio. The list order # does not matter. A Studio can have a maximum of 5 subnets. The # subnets must belong to the same VPC as the Studio. # @return [Array] # # @!attribute [rw] default_s3_location # The Amazon S3 location to back up Workspaces and notebook files for # the Amazon EMR Studio. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/UpdateStudioInput AWS API Documentation # class UpdateStudioInput < Struct.new( :studio_id, :name, :description, :subnet_ids, :default_s3_location) SENSITIVE = [] include Aws::Structure end # @note When making an API call, you may pass UpdateStudioSessionMappingInput # data as a hash: # # { # studio_id: "XmlStringMaxLen256", # required # identity_id: "XmlStringMaxLen256", # identity_name: "XmlStringMaxLen256", # identity_type: "USER", # required, accepts USER, GROUP # session_policy_arn: "XmlStringMaxLen256", # required # } # # @!attribute [rw] studio_id # The ID of the Amazon EMR Studio. # @return [String] # # @!attribute [rw] identity_id # The globally unique identifier (GUID) of the user or group. For more # information, see [UserId][1] and [GroupId][2] in the *AWS SSO # Identity Store API Reference*. Either `IdentityName` or `IdentityId` # must be specified. # # # # [1]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId # [2]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId # @return [String] # # @!attribute [rw] identity_name # The name of the user or group to update. For more information, see # [UserName][1] and [DisplayName][2] in the *AWS SSO Identity Store # API Reference*. Either `IdentityName` or `IdentityId` must be # specified. # # # # [1]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName # [2]: https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName # @return [String] # # @!attribute [rw] identity_type # Specifies whether the identity to update is a user or a group. # @return [String] # # @!attribute [rw] session_policy_arn # The Amazon Resource Name (ARN) of the session policy to associate # with the specified user or group. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/UpdateStudioSessionMappingInput AWS API Documentation # class UpdateStudioSessionMappingInput < Struct.new( :studio_id, :identity_id, :identity_name, :identity_type, :session_policy_arn) SENSITIVE = [] include Aws::Structure end # 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. # # @note When making an API call, you may pass VolumeSpecification # data as a hash: # # { # volume_type: "String", # required # iops: 1, # size_in_gb: 1, # required # } # # @!attribute [rw] volume_type # The volume type. Volume types supported are gp2, io1, standard. # @return [String] # # @!attribute [rw] iops # The number of I/O operations per second (IOPS) that the volume # supports. # @return [Integer] # # @!attribute [rw] size_in_gb # 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. # @return [Integer] # # @see http://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/VolumeSpecification AWS API Documentation # class VolumeSpecification < Struct.new( :volume_type, :iops, :size_in_gb) SENSITIVE = [] include Aws::Structure end end end