Class: Aws::CloudFormation::Event
- Inherits:
-
Object
- Object
- Aws::CloudFormation::Event
- Extended by:
- Deprecations
- Defined in:
- lib/aws-sdk-cloudformation/event.rb
Defined Under Namespace
Classes: Collection
Read-Only Attributes collapse
-
#client_request_token ⇒ String
The token passed to the operation that generated this event.
-
#detailed_status ⇒ String
An optional field containing information about the detailed status of the stack event.
-
#hook_failure_mode ⇒ String
Specify the hook failure mode for non-compliant resources in the followings ways.
-
#hook_invocation_point ⇒ String
Invocation points are points in provisioning logic where hooks are initiated.
-
#hook_status ⇒ String
Provides the status of the change set hook.
-
#hook_status_reason ⇒ String
Provides the reason for the hook status.
-
#hook_type ⇒ String
The name of the hook.
- #id ⇒ String (also: #event_id)
-
#logical_resource_id ⇒ String
The logical name of the resource specified in the template.
-
#physical_resource_id ⇒ String
The name or unique identifier associated with the physical instance of the resource.
-
#resource_properties ⇒ String
BLOB of the properties used to create the resource.
-
#resource_status ⇒ String
Current status of the resource.
-
#resource_status_reason ⇒ String
Success/failure message associated with the resource.
-
#resource_type ⇒ String
Type of resource.
-
#stack_id ⇒ String
The unique ID name of the instance of the stack.
-
#stack_name ⇒ String
The name associated with a stack.
-
#timestamp ⇒ Time
Time the status was updated.
Instance Method Summary collapse
- #client ⇒ Client
-
#data ⇒ Types::StackEvent
Returns the data for this Event.
-
#data_loaded? ⇒ Boolean
Returns ‘true` if this resource is loaded.
- #identifiers ⇒ Object deprecated private Deprecated.
-
#initialize(*args) ⇒ Event
constructor
A new instance of Event.
- #load ⇒ Object (also: #reload) private
-
#wait_until(options = {}) {|resource| ... } ⇒ Resource
deprecated
Deprecated.
Use [Aws::CloudFormation::Client] #wait_until instead
Constructor Details
#initialize(id, options = {}) ⇒ Event #initialize(options = {}) ⇒ Event
Returns a new instance of Event.
22 23 24 25 26 27 28 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 22 def initialize(*args) = Hash === args.last ? args.pop.dup : {} @id = extract_id(args, ) @data = .delete(:data) @client = .delete(:client) || Client.new() @waiter_block_warned = false end |
Instance Method Details
#client ⇒ Client
183 184 185 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 183 def client @client end |
#client_request_token ⇒ String
The token passed to the operation that generated this event.
All events triggered by a given stack operation are assigned the same client request token, which you can use to track operations. For example, if you execute a ‘CreateStack` operation with the token `token1`, then all the `StackEvents` generated by that operation will have `ClientRequestToken` set as `token1`.
In the console, stack operations display the client request token on the Events tab. Stack operations that are initiated from the console use the token format Console-StackOperation-ID, which helps you easily identify the stack operation . For example, if you create a stack using the console, each stack event would be assigned the same token in the following format: ‘Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002`.
115 116 117 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 115 def client_request_token data[:client_request_token] end |
#data ⇒ Types::StackEvent
Returns the data for this Aws::CloudFormation::Event.
198 199 200 201 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 198 def data load unless @data @data end |
#data_loaded? ⇒ Boolean
206 207 208 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 206 def data_loaded? !!@data end |
#detailed_status ⇒ String
An optional field containing information about the detailed status of the stack event.
-
‘CONFIGURATION_COMPLETE` - all of the resources in the stack have reached that event. For more information, see [Understand CloudFormation stack creation events] in the *CloudFormation User Guide*.
^ ^
-
‘VALIDATION_FAILED` - template validation failed because of invalid properties in the template. The `ResourceStatusReason` field shows what properties are defined incorrectly.
^
[1]: docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stack-resource-configuration-complete.html
176 177 178 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 176 def detailed_status data[:detailed_status] end |
#hook_failure_mode ⇒ String
Specify the hook failure mode for non-compliant resources in the followings ways.
-
‘FAIL` Stops provisioning resources.
-
‘WARN` Allows provisioning to continue with a warning message.
151 152 153 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 151 def hook_failure_mode data[:hook_failure_mode] end |
#hook_invocation_point ⇒ String
Invocation points are points in provisioning logic where hooks are initiated.
140 141 142 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 140 def hook_invocation_point data[:hook_invocation_point] end |
#hook_status ⇒ String
Provides the status of the change set hook.
127 128 129 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 127 def hook_status data[:hook_status] end |
#hook_status_reason ⇒ String
Provides the reason for the hook status.
133 134 135 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 133 def hook_status_reason data[:hook_status_reason] end |
#hook_type ⇒ String
The name of the hook.
121 122 123 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 121 def hook_type data[:hook_type] end |
#id ⇒ String Also known as: event_id
33 34 35 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 33 def id @id end |
#identifiers ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
311 312 313 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 311 def identifiers { id: @id } end |
#load ⇒ Object Also known as: reload
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
189 190 191 192 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 189 def load msg = "#load is not implemented, data only available via enumeration" raise NotImplementedError, msg end |
#logical_resource_id ⇒ String
The logical name of the resource specified in the template.
52 53 54 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 52 def logical_resource_id data[:logical_resource_id] end |
#physical_resource_id ⇒ String
The name or unique identifier associated with the physical instance of the resource.
59 60 61 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 59 def physical_resource_id data[:physical_resource_id] end |
#resource_properties ⇒ String
BLOB of the properties used to create the resource.
95 96 97 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 95 def resource_properties data[:resource_properties] end |
#resource_status ⇒ String
Current status of the resource.
83 84 85 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 83 def resource_status data[:resource_status] end |
#resource_status_reason ⇒ String
Success/failure message associated with the resource.
89 90 91 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 89 def resource_status_reason data[:resource_status_reason] end |
#resource_type ⇒ String
Type of resource. For more information, see [Amazon Web Services resource and property types reference] in the *CloudFormation User Guide*.
[1]: docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html
71 72 73 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 71 def resource_type data[:resource_type] end |
#stack_id ⇒ String
The unique ID name of the instance of the stack.
40 41 42 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 40 def stack_id data[:stack_id] end |
#stack_name ⇒ String
The name associated with a stack.
46 47 48 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 46 def stack_name data[:stack_name] end |
#timestamp ⇒ Time
Time the status was updated.
77 78 79 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 77 def data[:timestamp] end |
#wait_until(options = {}) {|resource| ... } ⇒ Resource
Use [Aws::CloudFormation::Client] #wait_until instead
The waiting operation is performed on a copy. The original resource remains unchanged.
Waiter polls an API operation until a resource enters a desired state.
## 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() {|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
attempts attempt in seconds invoked before each attempt invoked before each wait
290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 290 def wait_until( = {}, &block) self_copy = self.dup attempts = 0 [:max_attempts] = 10 unless .key?(:max_attempts) [:delay] ||= 10 [:poller] = Proc.new do attempts += 1 if block.call(self_copy) [:success, self_copy] else self_copy.reload unless attempts == [:max_attempts] :retry end end Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do Aws::Waiters::Waiter.new().wait({}) end end |