class Aws::OpsWorks::Layer

Public Class Methods

new(*args) click to toggle source

@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

arn() click to toggle source

The Amazon Resource Number (ARN) of a layer. @return [String]

# File lib/aws-sdk-opsworks/layer.rb, line 39
def arn
  data[:arn]
end
attributes() click to toggle source

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
auto_assign_elastic_ips() click to toggle source

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
auto_assign_public_ips() click to toggle source

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
client() click to toggle source

@return [Client]

# File lib/aws-sdk-opsworks/layer.rb, line 231
def client
  @client
end
cloud_watch_logs_configuration() click to toggle source

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
created_at() click to toggle source

Date when the layer was created. @return [String]

# File lib/aws-sdk-opsworks/layer.rb, line 195
def created_at
  data[:created_at]
end
custom_instance_profile_arn() click to toggle source

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
custom_json() click to toggle source

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
custom_recipes() click to toggle source

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
custom_security_group_ids() click to toggle source

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
data() click to toggle source

@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
data_loaded?() click to toggle source

@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
default_recipes() click to toggle source

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
default_security_group_names() click to toggle source

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
delete(options = {}) click to toggle source

@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
enable_auto_healing() click to toggle source

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
id() click to toggle source

@return [String]

# File lib/aws-sdk-opsworks/layer.rb, line 33
def id
  @id
end
identifiers() click to toggle source

@deprecated @api private

# File lib/aws-sdk-opsworks/layer.rb, line 389
def identifiers
  { id: @id }
end
install_updates_on_boot() click to toggle source

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
layer_id() click to toggle source

The layer ID. @return [String]

# File lib/aws-sdk-opsworks/layer.rb, line 51
def layer_id
  data[:layer_id]
end
lifecycle_event_configuration() click to toggle source

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
load() click to toggle source

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
Also aliased as: reload
name() click to toggle source

The layer name. @return [String]

# File lib/aws-sdk-opsworks/layer.rb, line 63
def name
  data[:name]
end
packages() click to toggle source

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
reload()
Alias for: load
shortname() click to toggle source

The layer short name. @return [String]

# File lib/aws-sdk-opsworks/layer.rb, line 69
def shortname
  data[:shortname]
end
stack() click to toggle source

@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
stack_id() click to toggle source

The layer stack ID. @return [String]

# File lib/aws-sdk-opsworks/layer.rb, line 45
def stack_id
  data[:stack_id]
end
type() click to toggle source

The layer type. @return [String]

# File lib/aws-sdk-opsworks/layer.rb, line 57
def type
  data[:type]
end
use_ebs_optimized_instances() click to toggle source

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
volume_configurations() click to toggle source

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
wait_until(options = {}, &block) click to toggle source

@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

extract_id(args, options) click to toggle source
# 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