aws-sdk 1.5.7 → 1.5.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. data/lib/aws.rb +2 -0
  2. data/lib/aws/api_config/EMR-2009-03-31.yml +349 -0
  3. data/lib/aws/auto_scaling.rb +8 -8
  4. data/lib/aws/auto_scaling/group.rb +2 -2
  5. data/lib/aws/auto_scaling/instance.rb +1 -1
  6. data/lib/aws/auto_scaling/launch_configuration.rb +4 -4
  7. data/lib/aws/auto_scaling/launch_configuration_collection.rb +11 -11
  8. data/lib/aws/auto_scaling/scaling_policy.rb +1 -1
  9. data/lib/aws/auto_scaling/scheduled_action.rb +1 -1
  10. data/lib/aws/auto_scaling/tag.rb +3 -3
  11. data/lib/aws/cloud_formation/stack.rb +7 -7
  12. data/lib/aws/cloud_formation/stack_collection.rb +13 -13
  13. data/lib/aws/cloud_formation/stack_event_collection.rb +2 -2
  14. data/lib/aws/cloud_formation/stack_resource.rb +1 -1
  15. data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +10 -18
  16. data/lib/aws/cloud_formation/stack_summary_collection.rb +12 -16
  17. data/lib/aws/core.rb +7 -1
  18. data/lib/aws/core/collection.rb +12 -12
  19. data/lib/aws/core/configuration.rb +4 -0
  20. data/lib/aws/core/credential_providers.rb +23 -23
  21. data/lib/aws/core/inflection.rb +2 -0
  22. data/lib/aws/core/model.rb +6 -6
  23. data/lib/aws/core/policy.rb +102 -102
  24. data/lib/aws/core/resource.rb +81 -80
  25. data/lib/aws/core/response.rb +23 -23
  26. data/lib/aws/core/xml/frame.rb +4 -2
  27. data/lib/aws/dynamo_db/resource.rb +2 -2
  28. data/lib/aws/dynamo_db/table.rb +5 -5
  29. data/lib/aws/ec2/availability_zone.rb +2 -3
  30. data/lib/aws/ec2/export_task.rb +7 -7
  31. data/lib/aws/ec2/image.rb +5 -5
  32. data/lib/aws/ec2/instance.rb +40 -40
  33. data/lib/aws/ec2/instance_collection.rb +5 -2
  34. data/lib/aws/ec2/key_pair.rb +1 -1
  35. data/lib/aws/ec2/network_acl.rb +1 -1
  36. data/lib/aws/ec2/network_interface.rb +2 -2
  37. data/lib/aws/ec2/region.rb +1 -1
  38. data/lib/aws/ec2/resource.rb +1 -1
  39. data/lib/aws/ec2/route_table.rb +1 -1
  40. data/lib/aws/ec2/security_group.rb +4 -4
  41. data/lib/aws/ec2/subnet.rb +1 -1
  42. data/lib/aws/ec2/volume.rb +1 -1
  43. data/lib/aws/ec2/vpn_connection.rb +1 -1
  44. data/lib/aws/ec2/vpn_gateway.rb +2 -2
  45. data/lib/aws/elb/listener_opts.rb +1 -1
  46. data/lib/aws/elb/load_balancer.rb +5 -5
  47. data/lib/aws/elb/load_balancer_collection.rb +17 -9
  48. data/lib/aws/elb/load_balancer_policy.rb +2 -2
  49. data/lib/aws/emr.rb +84 -0
  50. data/lib/aws/emr/client.rb +309 -0
  51. data/lib/aws/emr/config.rb +18 -0
  52. data/lib/aws/emr/errors.rb +22 -0
  53. data/lib/aws/emr/instance_group.rb +138 -0
  54. data/lib/aws/emr/instance_group_collection.rb +82 -0
  55. data/lib/aws/emr/job_flow.rb +296 -0
  56. data/lib/aws/emr/job_flow_collection.rb +185 -0
  57. data/lib/aws/emr/request.rb +23 -0
  58. data/lib/aws/iam/access_key.rb +1 -1
  59. data/lib/aws/iam/account_alias_collection.rb +2 -2
  60. data/lib/aws/iam/client.rb +1 -1
  61. data/lib/aws/iam/group.rb +2 -2
  62. data/lib/aws/iam/policy_collection.rb +1 -1
  63. data/lib/aws/iam/server_certificate.rb +2 -2
  64. data/lib/aws/iam/signing_certificate.rb +1 -1
  65. data/lib/aws/iam/user.rb +2 -2
  66. data/lib/aws/iam/virtual_mfa_device.rb +1 -1
  67. data/lib/aws/s3/client.rb +57 -55
  68. data/lib/aws/s3/config.rb +2 -0
  69. data/lib/aws/s3/request.rb +14 -6
  70. data/lib/aws/simple_email_service/identity.rb +9 -7
  71. data/lib/aws/simple_workflow/domain.rb +1 -1
  72. data/lib/aws/simple_workflow/resource.rb +2 -2
  73. data/lib/aws/simple_workflow/workflow_execution.rb +5 -5
  74. data/lib/aws/sns/subscription_collection.rb +33 -35
  75. data/lib/aws/sns/topic_collection.rb +13 -18
  76. data/lib/aws/sns/topic_subscription_collection.rb +8 -9
  77. data/lib/aws/sqs/queue.rb +4 -4
  78. data/lib/aws/sqs/queue_collection.rb +17 -13
  79. metadata +13 -4
  80. data/lib/aws/cloud_formation/stack_summary.rb +0 -71
@@ -41,7 +41,7 @@ module AWS
41
41
  # @return [String] The name of the region (e.g. "us-east-1").
42
42
  attr_reader :name
43
43
 
44
- attribute :endpoint, :as => :region_endpoint, :static => true
44
+ attribute :endpoint, :from => :region_endpoint, :static => true
45
45
 
46
46
  populates_from(:describe_regions) do |resp|
47
47
  resp.region_info.find{|r| r.region_name == name }
@@ -76,7 +76,7 @@ module AWS
76
76
  def describe_attribute_call(attribute)
77
77
  name = describe_attribute_call_name
78
78
 
79
- attr_opt_name = Core::Inflection.class_name(attribute.get_as.to_s)
79
+ attr_opt_name = Core::Inflection.class_name(attribute.from.to_s)
80
80
  attr_opt_name = attr_opt_name[0,1].downcase + attr_opt_name[1..-1]
81
81
 
82
82
  client.send(name, Hash[[[response_id_method.to_sym,
@@ -30,7 +30,7 @@ module AWS
30
30
  attr_reader :route_table_id
31
31
 
32
32
  alias_method :id, :route_table_id
33
-
33
+
34
34
  attribute :vpc_id, :static => true
35
35
 
36
36
  attribute :route_set
@@ -50,17 +50,17 @@ module AWS
50
50
 
51
51
  alias_method :id, :security_group_id
52
52
 
53
- attribute :name, :as => :group_name, :static => true
53
+ attribute :name, :from => :group_name, :static => true
54
54
 
55
55
  attribute :owner_id, :static => true
56
56
 
57
57
  attribute :vpc_id, :static => true
58
58
 
59
- attribute :description, :as => :group_description, :static => true
59
+ attribute :description, :from => :group_description, :static => true
60
60
 
61
- attribute :ip_permissions_list, :as => :ip_permissions
61
+ attribute :ip_permissions_list, :from => :ip_permissions
62
62
 
63
- attribute :ip_permissions_list_egress, :as => :ip_permissions_egress
63
+ attribute :ip_permissions_list_egress, :from => :ip_permissions_egress
64
64
 
65
65
  populates_from(:describe_security_groups) do |resp|
66
66
  resp.security_group_index[id]
@@ -47,7 +47,7 @@ module AWS
47
47
  attribute :available_ip_address_count, :integer => true, :static => true
48
48
 
49
49
  attribute :availability_zone_name,
50
- :as => :availability_zone, :static => true
50
+ :from => :availability_zone, :static => true
51
51
 
52
52
  populates_from(:create_subnet) do |resp|
53
53
  resp.subnet if resp.subnet.subnet_id == subnet_id
@@ -69,7 +69,7 @@ module AWS
69
69
 
70
70
  attribute :size, :static => true
71
71
 
72
- attribute :availability_zone_name, :as => :availability_zone,
72
+ attribute :availability_zone_name, :from => :availability_zone,
73
73
  :static => true
74
74
 
75
75
  attribute :create_time, :static => true
@@ -54,7 +54,7 @@ module AWS
54
54
 
55
55
  attribute :customer_gateway_configuration, :static => true
56
56
 
57
- attribute :vgw_telemetry_details, :as => :vgw_telemetry
57
+ attribute :vgw_telemetry_details, :from => :vgw_telemetry
58
58
 
59
59
  protected :vgw_telemetry_details
60
60
 
@@ -29,12 +29,12 @@ module AWS
29
29
  attr_reader :vpn_gateway_id
30
30
 
31
31
  alias_method :id, :vpn_gateway_id
32
-
32
+
33
33
  attribute :state, :to_sym => true
34
34
 
35
35
  attribute :vpn_type, :static => true
36
36
 
37
- attribute :attachment_set, :as => :attachments
37
+ attribute :attachment_set, :from => :attachments
38
38
 
39
39
  protected :attachment_set
40
40
 
@@ -16,7 +16,7 @@ module AWS
16
16
 
17
17
  # @private
18
18
  module ListenerOpts
19
-
19
+
20
20
  # convert protocols from symbols to strings (e.g. :http to 'HTTP')
21
21
  protected
22
22
  def format_listener_opts options
@@ -36,10 +36,10 @@ module AWS
36
36
  super(options.merge(:name => name.to_s))
37
37
  end
38
38
 
39
- attribute :name, :as => :load_balancer_name, :static => true
39
+ attribute :name, :from => :load_balancer_name, :static => true
40
40
 
41
41
  #availability_zones
42
- attribute :availability_zone_names, :as => :availability_zones
42
+ attribute :availability_zone_names, :from => :availability_zones
43
43
 
44
44
  #backend_server_policies
45
45
  attribute :backend_server_descriptions
@@ -53,17 +53,17 @@ module AWS
53
53
  attribute :dns_name, :static => true
54
54
 
55
55
  #health_check_configuration
56
- attribute :health_check_description, :as => :health_check
56
+ attribute :health_check_description, :from => :health_check
57
57
 
58
58
  #instances
59
- attribute :instance_descriptions, :as => :instances
59
+ attribute :instance_descriptions, :from => :instances
60
60
 
61
61
  #listeners
62
62
  attribute :listener_descriptions
63
63
 
64
64
  #source_security_group
65
65
  attribute :security_group_description,
66
- :as => :source_security_group,
66
+ :from => :source_security_group,
67
67
  :static => true
68
68
 
69
69
  populates_from(:describe_load_balancers) do |resp|
@@ -36,7 +36,7 @@ module AWS
36
36
  # :instance_port => 80,
37
37
  # :instance_protocol => :http,
38
38
  # }])
39
- #
39
+ #
40
40
  # @param [String] name The name of your load balancer. The name must
41
41
  # be unique within your set of load balancers.
42
42
  #
@@ -60,11 +60,19 @@ module AWS
60
60
  # for more detailed description of each option.
61
61
  #
62
62
  # @option options [String,IAM::ServerCertificate] :server_certificate (nil)
63
- # The ARN string of an IAM::ServerCertifcate or an
63
+ # The ARN string of an IAM::ServerCertifcate or an
64
64
  # IAM::ServerCertificate object. Reqruied for HTTPs listeners.
65
65
  #
66
66
  def create name, options = {}
67
-
67
+
68
+ unless options[:availability_zones]
69
+ raise ArgumentError, "missing required :availability_zones option"
70
+ end
71
+
72
+ unless options[:listeners]
73
+ raise ArgumentError, "missing required :listeners option"
74
+ end
75
+
68
76
  zones = [options[:availability_zones]].flatten.collect do |zone|
69
77
  zone.is_a?(EC2::AvailabilityZone) ? zone.name : zone
70
78
  end
@@ -94,20 +102,20 @@ module AWS
94
102
 
95
103
  protected
96
104
  def _each_item options = {}, &block
97
- response = client.describe_load_balancers
98
- response.load_balancer_descriptions.each do |description|
105
+ response = client.describe_load_balancers(options)
106
+ response.data[:load_balancer_descriptions].each do |description|
99
107
 
100
108
  load_balancer = LoadBalancer.new_from(
101
- :describe_load_balancers,
102
- description,
103
- description.load_balancer_name,
109
+ :describe_load_balancers,
110
+ description,
111
+ description[:load_balancer_name],
104
112
  :config => config)
105
113
 
106
114
  yield(load_balancer)
107
115
 
108
116
  end
109
117
  end
110
-
118
+
111
119
  end
112
120
  end
113
121
  end
@@ -24,9 +24,9 @@ module AWS
24
24
  # @return [LoadBalancer] Returns the load balancer this policy belongs to.
25
25
  attr_reader :load_balancer
26
26
 
27
- attribute :name, :static => true, :as => :policy_name
27
+ attribute :name, :static => true, :from => :policy_name
28
28
 
29
- attribute :type, :static => true, :as => :policy_type_name
29
+ attribute :type, :static => true, :from => :policy_type_name
30
30
 
31
31
  attribute :policy_attribute_descriptions, :static => true
32
32
 
@@ -0,0 +1,84 @@
1
+ # Copyright 2011-2012 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License"). You
4
+ # may not use this file except in compliance with the License. A copy of
5
+ # the License is located at
6
+ #
7
+ # http://aws.amazon.com/apache2.0/
8
+ #
9
+ # or in the "license" file accompanying this file. This file is
10
+ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
+ # ANY KIND, either express or implied. See the License for the specific
12
+ # language governing permissions and limitations under the License.
13
+
14
+ require 'aws/core'
15
+ require 'aws/emr/config'
16
+ require 'time'
17
+
18
+ module AWS
19
+
20
+ # Provides an expressive, object-oriented interface to Amazon Elastic
21
+ # MapReduce.
22
+ #
23
+ # To use Amazon Elastic MapReduce you must first
24
+ # {sign up here}[http://aws.amazon.com/elasticmapreduce/]
25
+ #
26
+ # For more information about Amazon Elastic MapReduce, see:
27
+ #
28
+ # * {Amazon Elastic MapReduce}[http://aws.amazon.com/elasticmapreduce/]
29
+ # * {Amazon Elastic MapReduce Documentation}[http://aws.amazon.com/documentation/elasticmapreduce/]
30
+ #
31
+ # == Credentials
32
+ #
33
+ # You can setup default credentials for all AWS services via
34
+ # AWS.config:
35
+ #
36
+ # AWS.config(
37
+ # :access_key_id => 'YOUR_ACCESS_KEY_ID',
38
+ # :secret_access_key => 'YOUR_SECRET_ACCESS_KEY')
39
+ #
40
+ # Or you can set them directly on the EMR interface:
41
+ #
42
+ # emr = AWS::EMR.new(
43
+ # :access_key_id => 'YOUR_ACCESS_KEY_ID',
44
+ # :secret_access_key => 'YOUR_SECRET_ACCESS_KEY')
45
+ #
46
+ # = Job Flows
47
+ #
48
+ # The {#job_flows} method returns a collection you use to interact
49
+ # with your job flows.
50
+ #
51
+ # # creating a job flow
52
+ # job_flow = emr.job_flows.create(...)
53
+ #
54
+ # # enumerating job flows
55
+ # emr.job_flows.each do |job_flow|
56
+ # puts job_flow.id
57
+ # end
58
+ #
59
+ # See {JobFlowCollection} and {JobFlow} for more information on working
60
+ # with job flows.
61
+ #
62
+ class EMR
63
+
64
+ AWS.register_autoloads(self) do
65
+ autoload :Client, 'client'
66
+ autoload :Errors, 'errors'
67
+ autoload :InstanceGroup, 'instance_group'
68
+ autoload :InstanceGroupCollection, 'instance_group_collection'
69
+ autoload :JobFlow, 'job_flow'
70
+ autoload :JobFlowCollection, 'job_flow_collection'
71
+ autoload :Request, 'request'
72
+ end
73
+
74
+ include Core::ServiceInterface
75
+
76
+ # @return [JobFlowCollection] Returns a collection that represents all
77
+ # job flows.
78
+ def job_flows
79
+ JobFlowCollection.new(:config => config)
80
+ end
81
+ alias_method :jobs, :job_flows
82
+
83
+ end
84
+ end
@@ -0,0 +1,309 @@
1
+ # Copyright 2011-2012 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License"). You
4
+ # may not use this file except in compliance with the License. A copy of
5
+ # the License is located at
6
+ #
7
+ # http://aws.amazon.com/apache2.0/
8
+ #
9
+ # or in the "license" file accompanying this file. This file is
10
+ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
+ # ANY KIND, either express or implied. See the License for the specific
12
+ # language governing permissions and limitations under the License.
13
+
14
+ module AWS
15
+ class EMR
16
+ class Client < Core::Client
17
+
18
+ API_VERSION = '2009-03-31'
19
+
20
+ extend Core::Client::QueryXML
21
+
22
+ # @private
23
+ CACHEABLE_REQUESTS = Set[]
24
+
25
+ ## client methods ##
26
+
27
+ # Calls the AddInstanceGroups API operation.
28
+ # @method add_instance_groups(options = {})
29
+ # @param [Hash] options
30
+ # * +:instance_groups+ - *required* - (Array<Hash>) Instance Groups to
31
+ # add.
32
+ # * +:name+ - (String) Friendly name given to the instance group.
33
+ # * +:market+ - (String) Market type of the Amazon EC2 instances used
34
+ # to create a cluster node.
35
+ # * +:instance_role+ - *required* - (String) The role of the instance
36
+ # group in the cluster.
37
+ # * +:bid_price+ - (String) Bid price for each Amazon EC2 instance in
38
+ # the instance group when launching nodes as Spot Instances,
39
+ # expressed in USD.
40
+ # * +:instance_type+ - *required* - (String) The Amazon EC2 instance
41
+ # type for all instances in the instance group.
42
+ # * +:instance_count+ - *required* - (Integer) Target number of
43
+ # instances for the instance group.
44
+ # * +:job_flow_id+ - *required* - (String) Job flow in which to add the
45
+ # instance groups.
46
+ # @return [Core::Response]
47
+ # Returns a reponse object whos #data method returns a hash
48
+ # the following structure:
49
+ # * +:job_flow_id+ - (String)
50
+ # * +:instance_group_ids+ - (Array<String>)
51
+ define_client_method :add_instance_groups, 'AddInstanceGroups'
52
+
53
+ # Calls the AddJobFlowSteps API operation.
54
+ # @method add_job_flow_steps(options = {})
55
+ # @param [Hash] options
56
+ # * +:job_flow_id+ - *required* - (String) A string that uniquely
57
+ # identifies the job flow. This identifier is returned by RunJobFlow
58
+ # and can also be obtained from DescribeJobFlows.
59
+ # * +:steps+ - *required* - (Array<Hash>) A list of StepConfig to be
60
+ # executed by the job flow.
61
+ # * +:name+ - *required* - (String) The name of the job flow step.
62
+ # * +:action_on_failure+ - (String) Specifies the action to take if
63
+ # the job flow step fails.
64
+ # * +:hadoop_jar_step+ - *required* - (Hash) Specifies the JAR file
65
+ # used for the job flow step.
66
+ # * +:properties+ - (Array<Hash>) A list of Java properties that
67
+ # are set when the step runs. You can use these properties to
68
+ # pass key value pairs to your main function.
69
+ # * +:key+ - (String) The unique identifier of a key value pair.
70
+ # * +:value+ - (String) The value part of the identified key.
71
+ # * +:jar+ - *required* - (String) A path to a JAR file run during
72
+ # the step.
73
+ # * +:main_class+ - (String) The name of the main class in the
74
+ # specified Java file. If not specified, the JAR file should
75
+ # specify a Main-Class in its manifest file.
76
+ # * +:args+ - (Array<String>) A list of command line arguments
77
+ # passed to the JAR file's main function when executed.
78
+ # @return [Core::Response]
79
+ define_client_method :add_job_flow_steps, 'AddJobFlowSteps'
80
+
81
+ # Calls the DescribeJobFlows API operation.
82
+ # @method describe_job_flows(options = {})
83
+ # @param [Hash] options
84
+ # * +:created_after+ - (String<ISO8601 datetime>) Return only job flows
85
+ # created after this date and time.
86
+ # * +:created_before+ - (String<ISO8601 datetime>) Return only job
87
+ # flows created before this date and time.
88
+ # * +:job_flow_ids+ - (Array<String>) Return only job flows whose job
89
+ # flow ID is contained in this list.
90
+ # * +:job_flow_states+ - (Array<String>) Return only job flows whose
91
+ # state is contained in this list.
92
+ # @return [Core::Response]
93
+ # Returns a reponse object whos #data method returns a hash
94
+ # the following structure:
95
+ # * +:job_flows+ - (Array<Hash>)
96
+ # * +:job_flow_id+ - (String)
97
+ # * +:name+ - (String)
98
+ # * +:log_uri+ - (String)
99
+ # * +:ami_version+ - (String)
100
+ # * +:execution_status_detail+ - (Hash)
101
+ # * +:state+ - (String)
102
+ # * +:creation_date_time+ - (Time)
103
+ # * +:start_date_time+ - (Time)
104
+ # * +:ready_date_time+ - (Time)
105
+ # * +:end_date_time+ - (Time)
106
+ # * +:last_state_change_reason+ - (String)
107
+ # * +:instances+ - (Hash)
108
+ # * +:master_instance_type+ - (String)
109
+ # * +:master_public_dns_name+ - (String)
110
+ # * +:master_instance_id+ - (String)
111
+ # * +:slave_instance_type+ - (String)
112
+ # * +:instance_count+ - (Integer)
113
+ # * +:instance_groups+ - (Array<Hash>)
114
+ # * +:instance_group_id+ - (String)
115
+ # * +:name+ - (String)
116
+ # * +:market+ - (String)
117
+ # * +:instance_role+ - (String)
118
+ # * +:bid_price+ - (String)
119
+ # * +:instance_type+ - (String)
120
+ # * +:instance_request_count+ - (Integer)
121
+ # * +:instance_running_count+ - (Integer)
122
+ # * +:state+ - (String)
123
+ # * +:last_state_change_reason+ - (String)
124
+ # * +:creation_date_time+ - (Time)
125
+ # * +:start_date_time+ - (Time)
126
+ # * +:ready_date_time+ - (Time)
127
+ # * +:end_date_time+ - (Time)
128
+ # * +:normalized_instance_hours+ - (Integer)
129
+ # * +:ec2_key_name+ - (String)
130
+ # * +:ec2_subnet_id+ - (String)
131
+ # * +:placement+ - (Hash)
132
+ # * +:availability_zone+ - (String)
133
+ # * +:keep_job_flow_alive_when_no_steps+ - (Boolean)
134
+ # * +:termination_protected+ - (Boolean)
135
+ # * +:hadoop_version+ - (String)
136
+ # * +:steps+ - (Array<Hash>)
137
+ # * +:step_config+ - (Hash)
138
+ # * +:name+ - (String)
139
+ # * +:action_on_failure+ - (String)
140
+ # * +:hadoop_jar_step+ - (Hash)
141
+ # * +:properties+ - (Array<Hash>)
142
+ # * +:key+ - (String)
143
+ # * +:value+ - (String)
144
+ # * +:jar+ - (String)
145
+ # * +:main_class+ - (String)
146
+ # * +:args+ - (Array<String>)
147
+ # * +:execution_status_detail+ - (Hash)
148
+ # * +:state+ - (String)
149
+ # * +:creation_date_time+ - (Time)
150
+ # * +:start_date_time+ - (Time)
151
+ # * +:end_date_time+ - (Time)
152
+ # * +:last_state_change_reason+ - (String)
153
+ # * +:bootstrap_actions+ - (Array<Hash>)
154
+ # * +:bootstrap_action_config+ - (Hash)
155
+ # * +:name+ - (String)
156
+ # * +:script_bootstrap_action+ - (Hash)
157
+ # * +:path+ - (String)
158
+ # * +:args+ - (Array<String>)
159
+ # * +:supported_products+ - (Array<String>)
160
+ define_client_method :describe_job_flows, 'DescribeJobFlows'
161
+
162
+ # Calls the ModifyInstanceGroups API operation.
163
+ # @method modify_instance_groups(options = {})
164
+ # @param [Hash] options
165
+ # * +:instance_groups+ - (Array<Hash>) Instance groups to change.
166
+ # * +:instance_group_id+ - *required* - (String) Unique ID of the
167
+ # instance group to expand or shrink.
168
+ # * +:instance_count+ - *required* - (Integer) Target size for the
169
+ # instance group.
170
+ # @return [Core::Response]
171
+ define_client_method :modify_instance_groups, 'ModifyInstanceGroups'
172
+
173
+ # Calls the RunJobFlow API operation.
174
+ # @method run_job_flow(options = {})
175
+ # @param [Hash] options
176
+ # * +:name+ - *required* - (String) The name of the job flow.
177
+ # * +:log_uri+ - (String) Specifies the location in Amazon S3 to write
178
+ # the log files of the job flow. If a value is not provided, logs are
179
+ # not created.
180
+ # * +:additional_info+ - (String) A JSON string for selecting
181
+ # additional features.
182
+ # * +:ami_version+ - (String) The version of the Amazon Machine Image
183
+ # (AMI) to use when launching Amazon EC2 instances in the job flow.
184
+ # The following values ane valid: "latest" (latest AMI version;
185
+ # currently AMI 2.0, Hadoop 0.20.205) "2.0" (AMI 2.0, Hadoop
186
+ # 0.20.205) "1.0" (AMI 1.0, Hadoop 0.18) If this value is not
187
+ # specified, the job flow uses the default of (AMI 1.0, Hadoop 0.18).
188
+ # If the AMI supports multiple verisons of Hadoop (for example, AMI
189
+ # 1.0 supports both Hadoop 0.18 and 0.20) you can use the
190
+ # JobFlowInstancesConfig HadoopVersion parameter to modify the
191
+ # version of Hadoop from the defaults shown above. For details about
192
+ # the AMI versions currently supported by Amazon ElasticMapReduce, go
193
+ # to AMI Versions Supported in Elastic MapReduce in the Amazon
194
+ # Elastic MapReduce Developer's Guide.
195
+ # * +:instances+ - *required* - (Hash) A specification of the number
196
+ # and type of Amazon EC2 instances on which to run the job flow.
197
+ # * +:master_instance_type+ - (String) The EC2 instance type of the
198
+ # master node.
199
+ # * +:slave_instance_type+ - (String) The EC2 instance type of the
200
+ # slave nodes.
201
+ # * +:instance_count+ - (Integer) The number of Amazon EC2 instances
202
+ # used to execute the job flow.
203
+ # * +:instance_groups+ - (Array<Hash>) Configuration for the job
204
+ # flow's instance groups.
205
+ # * +:name+ - (String) Friendly name given to the instance group.
206
+ # * +:market+ - (String) Market type of the Amazon EC2 instances
207
+ # used to create a cluster node.
208
+ # * +:instance_role+ - *required* - (String) The role of the
209
+ # instance group in the cluster.
210
+ # * +:bid_price+ - (String) Bid price for each Amazon EC2 instance
211
+ # in the instance group when launching nodes as Spot Instances,
212
+ # expressed in USD.
213
+ # * +:instance_type+ - *required* - (String) The Amazon EC2
214
+ # instance type for all instances in the instance group.
215
+ # * +:instance_count+ - *required* - (Integer) Target number of
216
+ # instances for the instance group.
217
+ # * +:ec2_key_name+ - (String) Specifies the name of the Amazon EC2
218
+ # key pair that can be used to ssh to the master node as the user
219
+ # called "hadoop."
220
+ # * +:placement+ - (Hash) Specifies the Availability Zone the job
221
+ # flow will run in.
222
+ # * +:availability_zone+ - *required* - (String) The Amazon EC2
223
+ # Availability Zone for the job flow.
224
+ # * +:keep_job_flow_alive_when_no_steps+ - (Boolean) Specifies
225
+ # whether the job flow should terminate after completing all steps.
226
+ # * +:termination_protected+ - (Boolean) Specifies whether to lock
227
+ # the job flow to prevent the Amazon EC2 instances from being
228
+ # terminated by API call, user intervention, or in the event of a
229
+ # job flow error.
230
+ # * +:hadoop_version+ - (String) Specifies the Hadoop version for the
231
+ # job flow. Valid inputs are "0.18", "0.20", or "0.20.205". If you
232
+ # do not set this value, the default of 0.18 is used, unless the
233
+ # AmiVersion parameter is set in the RunJobFlow call, in which case
234
+ # the default version of Hadoop for that AMI version is used.
235
+ # * +:ec2_subnet_id+ - (String) To launch the job flow in Amazon
236
+ # Virtual Private Cloud (Amazon VPC), set this parameter to the
237
+ # identifier of the Amazon VPC subnet where you want the job flow
238
+ # to launch. If you do not specify this value, the job flow is
239
+ # launched in the normal Amazon Web Services cloud, outside of an
240
+ # Amazon VPC. Amazon VPC currently does not support cluster compute
241
+ # quadruple extra large (cc1.4xlarge) instances. Thus you cannot
242
+ # specify the cc1.4xlarge instance type for nodes of a job flow
243
+ # launched in a Amazon VPC.
244
+ # * +:steps+ - (Array<Hash>) A list of steps to be executed by the job
245
+ # flow.
246
+ # * +:name+ - *required* - (String) The name of the job flow step.
247
+ # * +:action_on_failure+ - (String) Specifies the action to take if
248
+ # the job flow step fails.
249
+ # * +:hadoop_jar_step+ - *required* - (Hash) Specifies the JAR file
250
+ # used for the job flow step.
251
+ # * +:properties+ - (Array<Hash>) A list of Java properties that
252
+ # are set when the step runs. You can use these properties to
253
+ # pass key value pairs to your main function.
254
+ # * +:key+ - (String) The unique identifier of a key value pair.
255
+ # * +:value+ - (String) The value part of the identified key.
256
+ # * +:jar+ - *required* - (String) A path to a JAR file run during
257
+ # the step.
258
+ # * +:main_class+ - (String) The name of the main class in the
259
+ # specified Java file. If not specified, the JAR file should
260
+ # specify a Main-Class in its manifest file.
261
+ # * +:args+ - (Array<String>) A list of command line arguments
262
+ # passed to the JAR file's main function when executed.
263
+ # * +:bootstrap_actions+ - (Array<Hash>) A list of bootstrap actions
264
+ # that will be run before Hadoop is started on the cluster nodes.
265
+ # * +:name+ - *required* - (String) The name of the bootstrap action.
266
+ # * +:script_bootstrap_action+ - *required* - (Hash) The script run
267
+ # by the bootstrap action.
268
+ # * +:path+ - *required* - (String) Location of the script to run
269
+ # during a bootstrap action. Can be either a location in Amazon
270
+ # S3 or on a local file system.
271
+ # * +:args+ - (Array<String>) A list of command line arguments to
272
+ # pass to the bootstrap action script.
273
+ # * +:supported_products+ - (Array<String>) A list of strings used by
274
+ # third-party software to tag the job flow. Currently the only valid
275
+ # value is "karmasphere-enterprise-utility", which tags the job flow
276
+ # for management by Karmasphere.
277
+ # @return [Core::Response]
278
+ # Returns a reponse object whos #data method returns a hash
279
+ # the following structure:
280
+ # * +:job_flow_id+ - (String)
281
+ define_client_method :run_job_flow, 'RunJobFlow'
282
+
283
+ # Calls the SetTerminationProtection API operation.
284
+ # @method set_termination_protection(options = {})
285
+ # @param [Hash] options
286
+ # * +:job_flow_ids+ - *required* - (Array<String>) A list of strings
287
+ # that uniquely identify the job flows to protect. This identifier is
288
+ # returned by RunJobFlow and can also be obtained from
289
+ # DescribeJobFlows .
290
+ # * +:termination_protected+ - *required* - (Boolean) A Boolean that
291
+ # indicates whether to protect the job flow and prevent the Amazon
292
+ # EC2 instances in the cluster from shutting down due to API calls,
293
+ # user intervention, or job-flow error.
294
+ # @return [Core::Response]
295
+ define_client_method :set_termination_protection, 'SetTerminationProtection'
296
+
297
+ # Calls the TerminateJobFlows API operation.
298
+ # @method terminate_job_flows(options = {})
299
+ # @param [Hash] options
300
+ # * +:job_flow_ids+ - *required* - (Array<String>) A list of job flows
301
+ # to be shutdown.
302
+ # @return [Core::Response]
303
+ define_client_method :terminate_job_flows, 'TerminateJobFlows'
304
+
305
+ ## end client methods ##
306
+
307
+ end
308
+ end
309
+ end