aws-sdk-opsworks 1.0.0.rc1
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.
- checksums.yaml +7 -0
- data/lib/aws-sdk-opsworks.rb +51 -0
- data/lib/aws-sdk-opsworks/client.rb +4633 -0
- data/lib/aws-sdk-opsworks/client_api.rb +1879 -0
- data/lib/aws-sdk-opsworks/customizations.rb +7 -0
- data/lib/aws-sdk-opsworks/errors.rb +23 -0
- data/lib/aws-sdk-opsworks/layer.rb +298 -0
- data/lib/aws-sdk-opsworks/resource.rb +377 -0
- data/lib/aws-sdk-opsworks/stack.rb +468 -0
- data/lib/aws-sdk-opsworks/stack_summary.rb +133 -0
- data/lib/aws-sdk-opsworks/types.rb +6204 -0
- data/lib/aws-sdk-opsworks/waiters.rb +454 -0
- metadata +84 -0
@@ -0,0 +1,23 @@
|
|
1
|
+
# WARNING ABOUT GENERATED CODE
|
2
|
+
#
|
3
|
+
# This file is generated. See the contributing for info on making contributions:
|
4
|
+
# https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
|
5
|
+
#
|
6
|
+
# WARNING ABOUT GENERATED CODE
|
7
|
+
|
8
|
+
module Aws
|
9
|
+
module OpsWorks
|
10
|
+
module Errors
|
11
|
+
|
12
|
+
extend Aws::Errors::DynamicErrors
|
13
|
+
|
14
|
+
# Raised when calling #load or #data on a resource class that can not be
|
15
|
+
# loaded. This can happen when:
|
16
|
+
#
|
17
|
+
# * A resource class has identifiers, but no data attributes.
|
18
|
+
# * Resource data is only available when making an API call that
|
19
|
+
# enumerates all resources of that type.
|
20
|
+
class ResourceNotLoadable < RuntimeError; end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,298 @@
|
|
1
|
+
# WARNING ABOUT GENERATED CODE
|
2
|
+
#
|
3
|
+
# This file is generated. See the contributing for info on making contributions:
|
4
|
+
# https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
|
5
|
+
#
|
6
|
+
# WARNING ABOUT GENERATED CODE
|
7
|
+
|
8
|
+
module Aws
|
9
|
+
module OpsWorks
|
10
|
+
class Layer
|
11
|
+
|
12
|
+
extend Aws::Deprecations
|
13
|
+
|
14
|
+
# @overload def initialize(id, options = {})
|
15
|
+
# @param [String] id
|
16
|
+
# @option options [Client] :client
|
17
|
+
# @overload def initialize(options = {})
|
18
|
+
# @option options [required, String] :id
|
19
|
+
# @option options [Client] :client
|
20
|
+
def initialize(*args)
|
21
|
+
options = Hash === args.last ? args.pop.dup : {}
|
22
|
+
@id = extract_id(args, options)
|
23
|
+
@data = options.delete(:data)
|
24
|
+
@client = options.delete(:client) || Client.new(options)
|
25
|
+
end
|
26
|
+
|
27
|
+
# @!group Read-Only Attributes
|
28
|
+
|
29
|
+
# @return [String]
|
30
|
+
def id
|
31
|
+
@id
|
32
|
+
end
|
33
|
+
|
34
|
+
# The layer stack ID.
|
35
|
+
# @return [String]
|
36
|
+
def stack_id
|
37
|
+
data.stack_id
|
38
|
+
end
|
39
|
+
|
40
|
+
# The layer ID.
|
41
|
+
# @return [String]
|
42
|
+
def layer_id
|
43
|
+
data.layer_id
|
44
|
+
end
|
45
|
+
|
46
|
+
# The layer type.
|
47
|
+
# @return [String]
|
48
|
+
def type
|
49
|
+
data.type
|
50
|
+
end
|
51
|
+
|
52
|
+
# The layer name.
|
53
|
+
# @return [String]
|
54
|
+
def name
|
55
|
+
data.name
|
56
|
+
end
|
57
|
+
|
58
|
+
# The layer short name.
|
59
|
+
# @return [String]
|
60
|
+
def shortname
|
61
|
+
data.shortname
|
62
|
+
end
|
63
|
+
|
64
|
+
# The layer attributes.
|
65
|
+
#
|
66
|
+
# For the `HaproxyStatsPassword`, `MysqlRootPassword`, and
|
67
|
+
# `GangliaPassword` attributes, AWS OpsWorks returns
|
68
|
+
# `*****FILTERED*****` instead of the actual value
|
69
|
+
#
|
70
|
+
# For an ECS Cluster layer, AWS OpsWorks the `EcsClusterArn` attribute
|
71
|
+
# is set to the cluster's ARN.
|
72
|
+
# @return [Hash<String,String>]
|
73
|
+
def attributes
|
74
|
+
data.attributes
|
75
|
+
end
|
76
|
+
|
77
|
+
# The ARN of the default IAM profile to be used for the layer's EC2
|
78
|
+
# instances. For more information about IAM ARNs, see [Using
|
79
|
+
# Identifiers][1].
|
80
|
+
#
|
81
|
+
#
|
82
|
+
#
|
83
|
+
# [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html
|
84
|
+
# @return [String]
|
85
|
+
def custom_instance_profile_arn
|
86
|
+
data.custom_instance_profile_arn
|
87
|
+
end
|
88
|
+
|
89
|
+
# A JSON formatted string containing the layer's custom stack
|
90
|
+
# configuration and deployment attributes.
|
91
|
+
# @return [String]
|
92
|
+
def custom_json
|
93
|
+
data.custom_json
|
94
|
+
end
|
95
|
+
|
96
|
+
# An array containing the layer's custom security group IDs.
|
97
|
+
# @return [Array<String>]
|
98
|
+
def custom_security_group_ids
|
99
|
+
data.custom_security_group_ids
|
100
|
+
end
|
101
|
+
|
102
|
+
# An array containing the layer's security group names.
|
103
|
+
# @return [Array<String>]
|
104
|
+
def default_security_group_names
|
105
|
+
data.default_security_group_names
|
106
|
+
end
|
107
|
+
|
108
|
+
# An array of `Package` objects that describe the layer's packages.
|
109
|
+
# @return [Array<String>]
|
110
|
+
def packages
|
111
|
+
data.packages
|
112
|
+
end
|
113
|
+
|
114
|
+
# A `VolumeConfigurations` object that describes the layer's Amazon EBS
|
115
|
+
# volumes.
|
116
|
+
# @return [Array<Types::VolumeConfiguration>]
|
117
|
+
def volume_configurations
|
118
|
+
data.volume_configurations
|
119
|
+
end
|
120
|
+
|
121
|
+
# Whether auto healing is disabled for the layer.
|
122
|
+
# @return [Boolean]
|
123
|
+
def enable_auto_healing
|
124
|
+
data.enable_auto_healing
|
125
|
+
end
|
126
|
+
|
127
|
+
# Whether to automatically assign an [Elastic IP address][1] to the
|
128
|
+
# layer's instances. For more information, see [How to Edit a
|
129
|
+
# Layer][2].
|
130
|
+
#
|
131
|
+
#
|
132
|
+
#
|
133
|
+
# [1]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html
|
134
|
+
# [2]: http://docs.aws.amazon.com/opsworks/latest/userguide/workinglayers-basics-edit.html
|
135
|
+
# @return [Boolean]
|
136
|
+
def auto_assign_elastic_ips
|
137
|
+
data.auto_assign_elastic_ips
|
138
|
+
end
|
139
|
+
|
140
|
+
# For stacks that are running in a VPC, whether to automatically assign
|
141
|
+
# a public IP address to the layer's instances. For more information,
|
142
|
+
# see [How to Edit a Layer][1].
|
143
|
+
#
|
144
|
+
#
|
145
|
+
#
|
146
|
+
# [1]: http://docs.aws.amazon.com/opsworks/latest/userguide/workinglayers-basics-edit.html
|
147
|
+
# @return [Boolean]
|
148
|
+
def auto_assign_public_ips
|
149
|
+
data.auto_assign_public_ips
|
150
|
+
end
|
151
|
+
|
152
|
+
# AWS OpsWorks supports five lifecycle events: **setup**,
|
153
|
+
# **configuration**, **deploy**, **undeploy**, and **shutdown**. For
|
154
|
+
# each layer, AWS OpsWorks runs a set of standard recipes for each
|
155
|
+
# event. In addition, you can provide custom recipes for any or all
|
156
|
+
# layers and events. AWS OpsWorks runs custom event recipes after the
|
157
|
+
# standard recipes. `LayerCustomRecipes` specifies the custom recipes
|
158
|
+
# for a particular layer to be run in response to each of the five
|
159
|
+
# events.
|
160
|
+
#
|
161
|
+
# To specify a recipe, use the cookbook's directory name in the
|
162
|
+
# repository followed by two colons and the recipe name, which is the
|
163
|
+
# recipe's file name without the .rb extension. For example:
|
164
|
+
# phpapp2::dbsetup specifies the dbsetup.rb recipe in the repository's
|
165
|
+
# phpapp2 folder.
|
166
|
+
# @return [Types::Recipes]
|
167
|
+
def default_recipes
|
168
|
+
data.default_recipes
|
169
|
+
end
|
170
|
+
|
171
|
+
# A `LayerCustomRecipes` object that specifies the layer's custom
|
172
|
+
# recipes.
|
173
|
+
# @return [Types::Recipes]
|
174
|
+
def custom_recipes
|
175
|
+
data.custom_recipes
|
176
|
+
end
|
177
|
+
|
178
|
+
# Date when the layer was created.
|
179
|
+
# @return [String]
|
180
|
+
def created_at
|
181
|
+
data.created_at
|
182
|
+
end
|
183
|
+
|
184
|
+
# Whether to install operating system and package updates when the
|
185
|
+
# instance boots. The default value is `true`. If this value is set to
|
186
|
+
# `false`, you must then update your instances manually by using
|
187
|
+
# CreateDeployment to run the `update_dependencies` stack command or
|
188
|
+
# manually running `yum` (Amazon Linux) or `apt-get` (Ubuntu) on the
|
189
|
+
# instances.
|
190
|
+
#
|
191
|
+
# <note markdown="1"> We strongly recommend using the default value of `true`, to ensure
|
192
|
+
# that your instances have the latest security updates.
|
193
|
+
#
|
194
|
+
# </note>
|
195
|
+
# @return [Boolean]
|
196
|
+
def install_updates_on_boot
|
197
|
+
data.install_updates_on_boot
|
198
|
+
end
|
199
|
+
|
200
|
+
# Whether the layer uses Amazon EBS-optimized instances.
|
201
|
+
# @return [Boolean]
|
202
|
+
def use_ebs_optimized_instances
|
203
|
+
data.use_ebs_optimized_instances
|
204
|
+
end
|
205
|
+
|
206
|
+
# A `LifeCycleEventConfiguration` object that specifies the Shutdown
|
207
|
+
# event configuration.
|
208
|
+
# @return [Types::LifecycleEventConfiguration]
|
209
|
+
def lifecycle_event_configuration
|
210
|
+
data.lifecycle_event_configuration
|
211
|
+
end
|
212
|
+
|
213
|
+
# @!endgroup
|
214
|
+
|
215
|
+
# @return [Client]
|
216
|
+
def client
|
217
|
+
@client
|
218
|
+
end
|
219
|
+
|
220
|
+
# Loads, or reloads {#data} for the current {Layer}.
|
221
|
+
# Returns `self` making it possible to chain methods.
|
222
|
+
#
|
223
|
+
# layer.reload.data
|
224
|
+
#
|
225
|
+
# @return [self]
|
226
|
+
def load
|
227
|
+
resp = @client.describe_layers(layer_ids: [@id])
|
228
|
+
@data = resp.layers[0]
|
229
|
+
self
|
230
|
+
end
|
231
|
+
alias :reload :load
|
232
|
+
|
233
|
+
# @return [Types::Layer]
|
234
|
+
# Returns the data for this {Layer}. Calls
|
235
|
+
# {Client#describe_layers} if {#data_loaded?} is `false`.
|
236
|
+
def data
|
237
|
+
load unless @data
|
238
|
+
@data
|
239
|
+
end
|
240
|
+
|
241
|
+
# @return [Boolean]
|
242
|
+
# Returns `true` if this resource is loaded. Accessing attributes or
|
243
|
+
# {#data} on an unloaded resource will trigger a call to {#load}.
|
244
|
+
def data_loaded?
|
245
|
+
!!@data
|
246
|
+
end
|
247
|
+
|
248
|
+
# @!group Actions
|
249
|
+
|
250
|
+
# @example Request syntax with placeholder values
|
251
|
+
#
|
252
|
+
# layer.delete()
|
253
|
+
# @param [Hash] options ({})
|
254
|
+
# @return [EmptyStructure]
|
255
|
+
def delete(options = {})
|
256
|
+
options = options.merge(layer_id: @id)
|
257
|
+
resp = @client.delete_layer(options)
|
258
|
+
resp.data
|
259
|
+
end
|
260
|
+
|
261
|
+
# @!group Associations
|
262
|
+
|
263
|
+
# @return [Stack, nil]
|
264
|
+
def stack
|
265
|
+
if data.stack_id
|
266
|
+
Stack.new(
|
267
|
+
id: data.stack_id,
|
268
|
+
client: @client
|
269
|
+
)
|
270
|
+
else
|
271
|
+
nil
|
272
|
+
end
|
273
|
+
end
|
274
|
+
|
275
|
+
# @deprecated
|
276
|
+
# @api private
|
277
|
+
def identifiers
|
278
|
+
{ id: @id }
|
279
|
+
end
|
280
|
+
deprecated(:identifiers)
|
281
|
+
|
282
|
+
private
|
283
|
+
|
284
|
+
def extract_id(args, options)
|
285
|
+
value = args[0] || options.delete(:id)
|
286
|
+
case value
|
287
|
+
when String then value
|
288
|
+
when nil then raise ArgumentError, "missing required option :id"
|
289
|
+
else
|
290
|
+
msg = "expected :id to be a String, got #{value.class}"
|
291
|
+
raise ArgumentError, msg
|
292
|
+
end
|
293
|
+
end
|
294
|
+
|
295
|
+
class Collection < Aws::Resources::Collection; end
|
296
|
+
end
|
297
|
+
end
|
298
|
+
end
|
@@ -0,0 +1,377 @@
|
|
1
|
+
# WARNING ABOUT GENERATED CODE
|
2
|
+
#
|
3
|
+
# This file is generated. See the contributing for info on making contributions:
|
4
|
+
# https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
|
5
|
+
#
|
6
|
+
# WARNING ABOUT GENERATED CODE
|
7
|
+
|
8
|
+
module Aws
|
9
|
+
module OpsWorks
|
10
|
+
class Resource
|
11
|
+
|
12
|
+
# @param options ({})
|
13
|
+
# @option options [Client] :client
|
14
|
+
def initialize(options = {})
|
15
|
+
@client = options[:client] || Client.new(options)
|
16
|
+
end
|
17
|
+
|
18
|
+
# @return [Client]
|
19
|
+
def client
|
20
|
+
@client
|
21
|
+
end
|
22
|
+
|
23
|
+
# @!group Actions
|
24
|
+
|
25
|
+
# @example Request syntax with placeholder values
|
26
|
+
#
|
27
|
+
# stack = ops_works.create_stack({
|
28
|
+
# name: "String", # required
|
29
|
+
# region: "String", # required
|
30
|
+
# vpc_id: "String",
|
31
|
+
# attributes: {
|
32
|
+
# "Color" => "String",
|
33
|
+
# },
|
34
|
+
# service_role_arn: "String", # required
|
35
|
+
# default_instance_profile_arn: "String", # required
|
36
|
+
# default_os: "String",
|
37
|
+
# hostname_theme: "String",
|
38
|
+
# default_availability_zone: "String",
|
39
|
+
# default_subnet_id: "String",
|
40
|
+
# custom_json: "String",
|
41
|
+
# configuration_manager: {
|
42
|
+
# name: "String",
|
43
|
+
# version: "String",
|
44
|
+
# },
|
45
|
+
# chef_configuration: {
|
46
|
+
# manage_berkshelf: false,
|
47
|
+
# berkshelf_version: "String",
|
48
|
+
# },
|
49
|
+
# use_custom_cookbooks: false,
|
50
|
+
# use_opsworks_security_groups: false,
|
51
|
+
# custom_cookbooks_source: {
|
52
|
+
# type: "git", # accepts git, svn, archive, s3
|
53
|
+
# url: "String",
|
54
|
+
# username: "String",
|
55
|
+
# password: "String",
|
56
|
+
# ssh_key: "String",
|
57
|
+
# revision: "String",
|
58
|
+
# },
|
59
|
+
# default_ssh_key_name: "String",
|
60
|
+
# default_root_device_type: "ebs", # accepts ebs, instance-store
|
61
|
+
# agent_version: "String",
|
62
|
+
# })
|
63
|
+
# @param [Hash] options ({})
|
64
|
+
# @option options [required, String] :name
|
65
|
+
# The stack name.
|
66
|
+
# @option options [required, String] :region
|
67
|
+
# The stack's AWS region, such as "ap-south-1". For more information
|
68
|
+
# about Amazon regions, see [Regions and Endpoints][1].
|
69
|
+
#
|
70
|
+
#
|
71
|
+
#
|
72
|
+
# [1]: http://docs.aws.amazon.com/general/latest/gr/rande.html
|
73
|
+
# @option options [String] :vpc_id
|
74
|
+
# The ID of the VPC that the stack is to be launched into. The VPC must
|
75
|
+
# be in the stack's region. All instances are launched into this VPC.
|
76
|
+
# You cannot change the ID later.
|
77
|
+
#
|
78
|
+
# * If your account supports EC2-Classic, the default value is `no VPC`.
|
79
|
+
#
|
80
|
+
# * If your account does not support EC2-Classic, the default value is
|
81
|
+
# the default VPC for the specified region.
|
82
|
+
#
|
83
|
+
# If the VPC ID corresponds to a default VPC and you have specified
|
84
|
+
# either the `DefaultAvailabilityZone` or the `DefaultSubnetId`
|
85
|
+
# parameter only, AWS OpsWorks infers the value of the other parameter.
|
86
|
+
# If you specify neither parameter, AWS OpsWorks sets these parameters
|
87
|
+
# to the first valid Availability Zone for the specified region and the
|
88
|
+
# corresponding default VPC subnet ID, respectively.
|
89
|
+
#
|
90
|
+
# If you specify a nondefault VPC ID, note the following:
|
91
|
+
#
|
92
|
+
# * It must belong to a VPC in your account that is in the specified
|
93
|
+
# region.
|
94
|
+
#
|
95
|
+
# * You must specify a value for `DefaultSubnetId`.
|
96
|
+
#
|
97
|
+
# For more information on how to use AWS OpsWorks with a VPC, see
|
98
|
+
# [Running a Stack in a VPC][1]. For more information on default VPC and
|
99
|
+
# EC2-Classic, see [Supported Platforms][2].
|
100
|
+
#
|
101
|
+
#
|
102
|
+
#
|
103
|
+
# [1]: http://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-vpc.html
|
104
|
+
# [2]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html
|
105
|
+
# @option options [Hash<String,String>] :attributes
|
106
|
+
# One or more user-defined key-value pairs to be added to the stack
|
107
|
+
# attributes.
|
108
|
+
# @option options [required, String] :service_role_arn
|
109
|
+
# The stack's AWS Identity and Access Management (IAM) role, which
|
110
|
+
# allows AWS OpsWorks to work with AWS resources on your behalf. You
|
111
|
+
# must set this parameter to the Amazon Resource Name (ARN) for an
|
112
|
+
# existing IAM role. For more information about IAM ARNs, see [Using
|
113
|
+
# Identifiers][1].
|
114
|
+
#
|
115
|
+
#
|
116
|
+
#
|
117
|
+
# [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html
|
118
|
+
# @option options [required, String] :default_instance_profile_arn
|
119
|
+
# The Amazon Resource Name (ARN) of an IAM profile that is the default
|
120
|
+
# profile for all of the stack's EC2 instances. For more information
|
121
|
+
# about IAM ARNs, see [Using Identifiers][1].
|
122
|
+
#
|
123
|
+
#
|
124
|
+
#
|
125
|
+
# [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html
|
126
|
+
# @option options [String] :default_os
|
127
|
+
# The stack's default operating system, which is installed on every
|
128
|
+
# instance unless you specify a different operating system when you
|
129
|
+
# create the instance. You can specify one of the following.
|
130
|
+
#
|
131
|
+
# * A supported Linux operating system: An Amazon Linux version, such as
|
132
|
+
# `Amazon Linux 2016.03`, `Amazon Linux 2015.09`, or `Amazon Linux
|
133
|
+
# 2015.03`.
|
134
|
+
#
|
135
|
+
# * A supported Ubuntu operating system, such as `Ubuntu 16.04 LTS`,
|
136
|
+
# `Ubuntu 14.04 LTS`, or `Ubuntu 12.04 LTS`.
|
137
|
+
#
|
138
|
+
# * `CentOS 7`
|
139
|
+
#
|
140
|
+
# * `Red Hat Enterprise Linux 7`
|
141
|
+
#
|
142
|
+
# * A supported Windows operating system, such as `Microsoft Windows
|
143
|
+
# Server 2012 R2 Base`, `Microsoft Windows Server 2012 R2 with SQL
|
144
|
+
# Server Express`, `Microsoft Windows Server 2012 R2 with SQL Server
|
145
|
+
# Standard`, or `Microsoft Windows Server 2012 R2 with SQL Server
|
146
|
+
# Web`.
|
147
|
+
#
|
148
|
+
# * A custom AMI: `Custom`. You specify the custom AMI you want to use
|
149
|
+
# when you create instances. For more information, see [ Using Custom
|
150
|
+
# AMIs][1].
|
151
|
+
#
|
152
|
+
# The default option is the current Amazon Linux version. For more
|
153
|
+
# information on the supported operating systems, see [AWS OpsWorks
|
154
|
+
# Operating Systems][2].
|
155
|
+
#
|
156
|
+
#
|
157
|
+
#
|
158
|
+
# [1]: http://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html
|
159
|
+
# [2]: http://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-os.html
|
160
|
+
# @option options [String] :hostname_theme
|
161
|
+
# The stack's host name theme, with spaces replaced by underscores. The
|
162
|
+
# theme is used to generate host names for the stack's instances. By
|
163
|
+
# default, `HostnameTheme` is set to `Layer_Dependent`, which creates
|
164
|
+
# host names by appending integers to the layer's short name. The other
|
165
|
+
# themes are:
|
166
|
+
#
|
167
|
+
# * `Baked_Goods`
|
168
|
+
#
|
169
|
+
# * `Clouds`
|
170
|
+
#
|
171
|
+
# * `Europe_Cities`
|
172
|
+
#
|
173
|
+
# * `Fruits`
|
174
|
+
#
|
175
|
+
# * `Greek_Deities`
|
176
|
+
#
|
177
|
+
# * `Legendary_creatures_from_Japan`
|
178
|
+
#
|
179
|
+
# * `Planets_and_Moons`
|
180
|
+
#
|
181
|
+
# * `Roman_Deities`
|
182
|
+
#
|
183
|
+
# * `Scottish_Islands`
|
184
|
+
#
|
185
|
+
# * `US_Cities`
|
186
|
+
#
|
187
|
+
# * `Wild_Cats`
|
188
|
+
#
|
189
|
+
# To obtain a generated host name, call `GetHostNameSuggestion`, which
|
190
|
+
# returns a host name based on the current theme.
|
191
|
+
# @option options [String] :default_availability_zone
|
192
|
+
# The stack's default Availability Zone, which must be in the specified
|
193
|
+
# region. For more information, see [Regions and Endpoints][1]. If you
|
194
|
+
# also specify a value for `DefaultSubnetId`, the subnet must be in the
|
195
|
+
# same zone. For more information, see the `VpcId` parameter
|
196
|
+
# description.
|
197
|
+
#
|
198
|
+
#
|
199
|
+
#
|
200
|
+
# [1]: http://docs.aws.amazon.com/general/latest/gr/rande.html
|
201
|
+
# @option options [String] :default_subnet_id
|
202
|
+
# The stack's default VPC subnet ID. This parameter is required if you
|
203
|
+
# specify a value for the `VpcId` parameter. All instances are launched
|
204
|
+
# into this subnet unless you specify otherwise when you create the
|
205
|
+
# instance. If you also specify a value for `DefaultAvailabilityZone`,
|
206
|
+
# the subnet must be in that zone. For information on default values and
|
207
|
+
# when this parameter is required, see the `VpcId` parameter
|
208
|
+
# description.
|
209
|
+
# @option options [String] :custom_json
|
210
|
+
# A string that contains user-defined, custom JSON. It can be used to
|
211
|
+
# override the corresponding default stack configuration attribute
|
212
|
+
# values or to pass data to recipes. The string should be in the
|
213
|
+
# following format:
|
214
|
+
#
|
215
|
+
# `"\{"key1": "value1", "key2": "value2",...\}"`
|
216
|
+
#
|
217
|
+
# For more information on custom JSON, see [Use Custom JSON to Modify
|
218
|
+
# the Stack Configuration Attributes][1].
|
219
|
+
#
|
220
|
+
#
|
221
|
+
#
|
222
|
+
# [1]: http://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html
|
223
|
+
# @option options [Types::StackConfigurationManager] :configuration_manager
|
224
|
+
# The configuration manager. When you create a stack we recommend that
|
225
|
+
# you use the configuration manager to specify the Chef version: 12,
|
226
|
+
# 11.10, or 11.4 for Linux stacks, or 12.2 for Windows stacks. The
|
227
|
+
# default value for Linux stacks is currently 11.4.
|
228
|
+
# @option options [Types::ChefConfiguration] :chef_configuration
|
229
|
+
# A `ChefConfiguration` object that specifies whether to enable
|
230
|
+
# Berkshelf and the Berkshelf version on Chef 11.10 stacks. For more
|
231
|
+
# information, see [Create a New Stack][1].
|
232
|
+
#
|
233
|
+
#
|
234
|
+
#
|
235
|
+
# [1]: http://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html
|
236
|
+
# @option options [Boolean] :use_custom_cookbooks
|
237
|
+
# Whether the stack uses custom cookbooks.
|
238
|
+
# @option options [Boolean] :use_opsworks_security_groups
|
239
|
+
# Whether to associate the AWS OpsWorks built-in security groups with
|
240
|
+
# the stack's layers.
|
241
|
+
#
|
242
|
+
# AWS OpsWorks provides a standard set of built-in security groups, one
|
243
|
+
# for each layer, which are associated with layers by default. With
|
244
|
+
# `UseOpsworksSecurityGroups` you can instead provide your own custom
|
245
|
+
# security groups. `UseOpsworksSecurityGroups` has the following
|
246
|
+
# settings:
|
247
|
+
#
|
248
|
+
# * True - AWS OpsWorks automatically associates the appropriate
|
249
|
+
# built-in security group with each layer (default setting). You can
|
250
|
+
# associate additional security groups with a layer after you create
|
251
|
+
# it, but you cannot delete the built-in security group.
|
252
|
+
#
|
253
|
+
# * False - AWS OpsWorks does not associate built-in security groups
|
254
|
+
# with layers. You must create appropriate EC2 security groups and
|
255
|
+
# associate a security group with each layer that you create. However,
|
256
|
+
# you can still manually associate a built-in security group with a
|
257
|
+
# layer on creation; custom security groups are required only for
|
258
|
+
# those layers that need custom settings.
|
259
|
+
#
|
260
|
+
# For more information, see [Create a New Stack][1].
|
261
|
+
#
|
262
|
+
#
|
263
|
+
#
|
264
|
+
# [1]: http://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html
|
265
|
+
# @option options [Types::Source] :custom_cookbooks_source
|
266
|
+
# Contains the information required to retrieve an app or cookbook from
|
267
|
+
# a repository. For more information, see [Creating Apps][1] or [Custom
|
268
|
+
# Recipes and Cookbooks][2].
|
269
|
+
#
|
270
|
+
#
|
271
|
+
#
|
272
|
+
# [1]: http://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html
|
273
|
+
# [2]: http://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook.html
|
274
|
+
# @option options [String] :default_ssh_key_name
|
275
|
+
# A default Amazon EC2 key pair name. The default value is none. If you
|
276
|
+
# specify a key pair name, AWS OpsWorks installs the public key on the
|
277
|
+
# instance and you can use the private key with an SSH client to log in
|
278
|
+
# to the instance. For more information, see [ Using SSH to Communicate
|
279
|
+
# with an Instance][1] and [ Managing SSH Access][2]. You can override
|
280
|
+
# this setting by specifying a different key pair, or no key pair, when
|
281
|
+
# you [ create an instance][3].
|
282
|
+
#
|
283
|
+
#
|
284
|
+
#
|
285
|
+
# [1]: http://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-ssh.html
|
286
|
+
# [2]: http://docs.aws.amazon.com/opsworks/latest/userguide/security-ssh-access.html
|
287
|
+
# [3]: http://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-add.html
|
288
|
+
# @option options [String] :default_root_device_type
|
289
|
+
# The default root device type. This value is the default for all
|
290
|
+
# instances in the stack, but you can override it when you create an
|
291
|
+
# instance. The default option is `instance-store`. For more
|
292
|
+
# information, see [Storage for the Root Device][1].
|
293
|
+
#
|
294
|
+
#
|
295
|
+
#
|
296
|
+
# [1]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ComponentsAMIs.html#storage-for-the-root-device
|
297
|
+
# @option options [String] :agent_version
|
298
|
+
# The default AWS OpsWorks agent version. You have the following
|
299
|
+
# options:
|
300
|
+
#
|
301
|
+
# * Auto-update - Set this parameter to `LATEST`. AWS OpsWorks
|
302
|
+
# automatically installs new agent versions on the stack's instances
|
303
|
+
# as soon as they are available.
|
304
|
+
#
|
305
|
+
# * Fixed version - Set this parameter to your preferred agent version.
|
306
|
+
# To update the agent version, you must edit the stack configuration
|
307
|
+
# and specify a new version. AWS OpsWorks then automatically installs
|
308
|
+
# that version on the stack's instances.
|
309
|
+
#
|
310
|
+
# The default setting is the most recent release of the agent. To
|
311
|
+
# specify an agent version, you must use the complete version number,
|
312
|
+
# not the abbreviated number shown on the console. For a list of
|
313
|
+
# available agent version numbers, call DescribeAgentVersions.
|
314
|
+
#
|
315
|
+
# <note markdown="1"> You can also specify an agent version when you create or update an
|
316
|
+
# instance, which overrides the stack's default setting.
|
317
|
+
#
|
318
|
+
# </note>
|
319
|
+
# @return [Stack]
|
320
|
+
def create_stack(options = {})
|
321
|
+
resp = @client.create_stack(options)
|
322
|
+
Stack.new(
|
323
|
+
id: resp.data.stack_id,
|
324
|
+
client: @client
|
325
|
+
)
|
326
|
+
end
|
327
|
+
|
328
|
+
# @!group Associations
|
329
|
+
|
330
|
+
# @param [String] id
|
331
|
+
# @return [Layer]
|
332
|
+
def layer(id)
|
333
|
+
Layer.new(
|
334
|
+
id: id,
|
335
|
+
client: @client
|
336
|
+
)
|
337
|
+
end
|
338
|
+
|
339
|
+
# @param [String] id
|
340
|
+
# @return [Stack]
|
341
|
+
def stack(id)
|
342
|
+
Stack.new(
|
343
|
+
id: id,
|
344
|
+
client: @client
|
345
|
+
)
|
346
|
+
end
|
347
|
+
|
348
|
+
# @example Request syntax with placeholder values
|
349
|
+
#
|
350
|
+
# stacks = ops_works.stacks({
|
351
|
+
# stack_ids: ["String"],
|
352
|
+
# })
|
353
|
+
# @param [Hash] options ({})
|
354
|
+
# @option options [Array<String>] :stack_ids
|
355
|
+
# An array of stack IDs that specify the stacks to be described. If you
|
356
|
+
# omit this parameter, `DescribeStacks` returns a description of every
|
357
|
+
# stack.
|
358
|
+
# @return [Stack::Collection]
|
359
|
+
def stacks(options = {})
|
360
|
+
batches = Enumerator.new do |y|
|
361
|
+
batch = []
|
362
|
+
resp = @client.describe_stacks(options)
|
363
|
+
resp.data.stacks.each do |s|
|
364
|
+
batch << Stack.new(
|
365
|
+
id: s.stack_id,
|
366
|
+
data: s,
|
367
|
+
client: @client
|
368
|
+
)
|
369
|
+
end
|
370
|
+
y.yield(batch)
|
371
|
+
end
|
372
|
+
Stack::Collection.new(batches)
|
373
|
+
end
|
374
|
+
|
375
|
+
end
|
376
|
+
end
|
377
|
+
end
|