class Aws::OpsWorks::Layer
Public Class Methods
@overload def initialize(id, options = {})
@param [String] id @option options [Client] :client
@overload def initialize(options = {})
@option options [required, String] :id @option options [Client] :client
# File lib/aws-sdk-opsworks/layer.rb, line 22 def initialize(*args) options = Hash === args.last ? args.pop.dup : {} @id = extract_id(args, options) @data = options.delete(:data) @client = options.delete(:client) || Client.new(options) @waiter_block_warned = false end
Public Instance Methods
The Amazon Resource
Number (ARN) of a layer. @return [String]
# File lib/aws-sdk-opsworks/layer.rb, line 39 def arn data[:arn] end
The layer attributes.
For the `HaproxyStatsPassword`, `MysqlRootPassword`, and `GangliaPassword` attributes, AWS OpsWorks
Stacks returns `*****FILTERED*****` instead of the actual value
For an ECS Cluster layer, AWS OpsWorks
Stacks the `EcsClusterArn` attribute is set to the cluster's ARN. @return [Hash<String,String>]
# File lib/aws-sdk-opsworks/layer.rb, line 82 def attributes data[:attributes] end
Whether to automatically assign an [Elastic IP address] to the layer's instances. For more information, see [How to Edit a Layer].
[1]: docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html [2]: docs.aws.amazon.com/opsworks/latest/userguide/workinglayers-basics-edit.html @return [Boolean]
# File lib/aws-sdk-opsworks/layer.rb, line 151 def auto_assign_elastic_ips data[:auto_assign_elastic_ips] end
For stacks that are running in a VPC, whether to automatically assign a public IP address to the layer's instances. For more information, see [How to Edit a Layer].
[1]: docs.aws.amazon.com/opsworks/latest/userguide/workinglayers-basics-edit.html @return [Boolean]
# File lib/aws-sdk-opsworks/layer.rb, line 163 def auto_assign_public_ips data[:auto_assign_public_ips] end
@return [Client]
# File lib/aws-sdk-opsworks/layer.rb, line 231 def client @client end
The Amazon CloudWatch Logs configuration settings for the layer. @return [Types::CloudWatchLogsConfiguration]
# File lib/aws-sdk-opsworks/layer.rb, line 88 def cloud_watch_logs_configuration data[:cloud_watch_logs_configuration] end
Date when the layer was created. @return [String]
# File lib/aws-sdk-opsworks/layer.rb, line 195 def created_at data[:created_at] end
The ARN of the default IAM profile to be used for the layer's EC2 instances. For more information about IAM ARNs, see [Using Identifiers].
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html @return [String]
# File lib/aws-sdk-opsworks/layer.rb, line 100 def custom_instance_profile_arn data[:custom_instance_profile_arn] end
A JSON formatted string containing the layer's custom stack configuration and deployment attributes. @return [String]
# File lib/aws-sdk-opsworks/layer.rb, line 107 def custom_json data[:custom_json] end
A `LayerCustomRecipes` object that specifies the layer's custom recipes. @return [Types::Recipes]
# File lib/aws-sdk-opsworks/layer.rb, line 189 def custom_recipes data[:custom_recipes] end
An array containing the layer's custom security group IDs. @return [Array<String>]
# File lib/aws-sdk-opsworks/layer.rb, line 113 def custom_security_group_ids data[:custom_security_group_ids] end
@return [Types::Layer]
Returns the data for this {Layer}. Calls {Client#describe_layers} if {#data_loaded?} is `false`.
# File lib/aws-sdk-opsworks/layer.rb, line 251 def data load unless @data @data end
@return [Boolean]
Returns `true` if this resource is loaded. Accessing attributes or {#data} on an unloaded resource will trigger a call to {#load}.
# File lib/aws-sdk-opsworks/layer.rb, line 259 def data_loaded? !!@data end
AWS OpsWorks
Stacks supports five lifecycle events: setup, configuration, deploy, undeploy, and shutdown. For each layer, AWS OpsWorks
Stacks runs a set of standard recipes for each event. You can also provide custom recipes for any or all layers and events. AWS OpsWorks
Stacks runs custom event recipes after the standard recipes. `LayerCustomRecipes` specifies the custom recipes for a particular layer to be run in response to each of the five events.
To specify a recipe, use the cookbook's directory name in the repository followed by two colons and the recipe name, which is the recipe's file name without the `.rb` extension. For example: `phpapp2::dbsetup` specifies the `dbsetup.rb` recipe in the repository's `phpapp2` folder. @return [Types::Recipes]
# File lib/aws-sdk-opsworks/layer.rb, line 182 def default_recipes data[:default_recipes] end
An array containing the layer's security group names. @return [Array<String>]
# File lib/aws-sdk-opsworks/layer.rb, line 119 def default_security_group_names data[:default_security_group_names] end
@example Request syntax with placeholder values
layer.delete()
@param [Hash] options ({}) @return [EmptyStructure]
# File lib/aws-sdk-opsworks/layer.rb, line 367 def delete(options = {}) options = options.merge(layer_id: @id) resp = @client.delete_layer(options) resp.data end
Whether auto healing is disabled for the layer. @return [Boolean]
# File lib/aws-sdk-opsworks/layer.rb, line 138 def enable_auto_healing data[:enable_auto_healing] end
@return [String]
# File lib/aws-sdk-opsworks/layer.rb, line 33 def id @id end
@deprecated @api private
# File lib/aws-sdk-opsworks/layer.rb, line 389 def identifiers { id: @id } end
Whether to install operating system and package updates when the instance boots. The default value is `true`. If this value is set to `false`, you must then update your instances manually by using CreateDeployment to run the `update_dependencies` stack command or manually running `yum` (Amazon Linux) or `apt-get` (Ubuntu) on the instances.
<note markdown=“1”> We strongly recommend using the default value of `true`, to ensure that your instances have the latest security updates.
</note>
@return [Boolean]
# File lib/aws-sdk-opsworks/layer.rb, line 211 def install_updates_on_boot data[:install_updates_on_boot] end
The layer ID. @return [String]
# File lib/aws-sdk-opsworks/layer.rb, line 51 def layer_id data[:layer_id] end
A `LifeCycleEventConfiguration` object that specifies the Shutdown event configuration. @return [Types::LifecycleEventConfiguration]
# File lib/aws-sdk-opsworks/layer.rb, line 224 def lifecycle_event_configuration data[:lifecycle_event_configuration] end
Loads, or reloads {#data} for the current {Layer}. Returns `self` making it possible to chain methods.
layer.reload.data
@return [self]
# File lib/aws-sdk-opsworks/layer.rb, line 241 def load resp = @client.describe_layers(layer_ids: [@id]) @data = resp.layers[0] self end
The layer name. @return [String]
# File lib/aws-sdk-opsworks/layer.rb, line 63 def name data[:name] end
An array of `Package` objects that describe the layer's packages. @return [Array<String>]
# File lib/aws-sdk-opsworks/layer.rb, line 125 def packages data[:packages] end
The layer short name. @return [String]
# File lib/aws-sdk-opsworks/layer.rb, line 69 def shortname data[:shortname] end
@return [Stack, nil]
# File lib/aws-sdk-opsworks/layer.rb, line 376 def stack if data[:stack_id] Stack.new( id: data[:stack_id], client: @client ) else nil end end
The layer stack ID. @return [String]
# File lib/aws-sdk-opsworks/layer.rb, line 45 def stack_id data[:stack_id] end
The layer type. @return [String]
# File lib/aws-sdk-opsworks/layer.rb, line 57 def type data[:type] end
Whether the layer uses Amazon EBS-optimized instances. @return [Boolean]
# File lib/aws-sdk-opsworks/layer.rb, line 217 def use_ebs_optimized_instances data[:use_ebs_optimized_instances] end
A `VolumeConfigurations` object that describes the layer's Amazon EBS volumes. @return [Array<Types::VolumeConfiguration>]
# File lib/aws-sdk-opsworks/layer.rb, line 132 def volume_configurations data[:volume_configurations] end
@deprecated Use [Aws::OpsWorks::Client] wait_until
instead
Waiter polls an API operation until a resource enters a desired state.
@note The waiting operation is performed on a copy. The original resource
remains unchanged.
## Basic Usage
Waiter will polls until it is successful, it fails by entering a terminal state, or until a maximum number of attempts are made.
# polls in a loop until condition is true resource.wait_until(options) {|resource| condition}
## Example
instance.wait_until(max_attempts:10, delay:5) do |instance| instance.state.name == 'running' end
## Configuration
You can configure the maximum number of polling attempts, and the delay (in seconds) between each polling attempt. The waiting condition is set by passing a block to {#wait_until}:
# poll for ~25 seconds resource.wait_until(max_attempts:5,delay:5) {|resource|...}
## Callbacks
You can be notified before each polling attempt and before each delay. If you throw `:success` or `:failure` from these callbacks, it will terminate the waiter.
started_at = Time.now # poll for 1 hour, instead of a number of attempts proc = Proc.new do |attempts, response| throw :failure if Time.now - started_at > 3600 end # disable max attempts instance.wait_until(before_wait:proc, max_attempts:nil) {...}
## Handling Errors
When a waiter is successful, it returns the Resource
. When a waiter fails, it raises an error.
begin resource.wait_until(...) rescue Aws::Waiters::Errors::WaiterFailed # resource did not enter the desired state in time end
@yieldparam [Resource] resource to be used in the waiting condition.
@raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter
terminates because the waiter has entered a state that it will not transition out of, preventing success. yet successful.
@raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is
encountered while polling for a resource that is not expected.
@raise [NotImplementedError] Raised when the resource does not
@option options [Integer] :max_attempts (10) Maximum number of attempts @option options [Integer] :delay (10) Delay between each attempt in seconds @option options [Proc] :before_attempt (nil) Callback invoked before each attempt @option options [Proc] :before_wait (nil) Callback invoked before each wait @return [Resource] if the waiter was successful
# File lib/aws-sdk-opsworks/layer.rb, line 343 def wait_until(options = {}, &block) self_copy = self.dup attempts = 0 options[:max_attempts] = 10 unless options.key?(:max_attempts) options[:delay] ||= 10 options[:poller] = Proc.new do attempts += 1 if block.call(self_copy) [:success, self_copy] else self_copy.reload unless attempts == options[:max_attempts] :retry end end Aws::Waiters::Waiter.new(options).wait({}) end
Private Instance Methods
# File lib/aws-sdk-opsworks/layer.rb, line 396 def extract_id(args, options) value = args[0] || options.delete(:id) case value when String then value when nil then raise ArgumentError, "missing required option :id" else msg = "expected :id to be a String, got #{value.class}" raise ArgumentError, msg end end