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
181 182 183 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 181 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`.
114 115 116 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 114 def client_request_token data[:client_request_token] end |
#data ⇒ Types::StackEvent
Returns the data for this Aws::CloudFormation::Event.
196 197 198 199 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 196 def data load unless @data @data end |
#data_loaded? ⇒ Boolean
204 205 206 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 204 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 [CloudFormation stack deployment] 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
174 175 176 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 174 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.
150 151 152 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 150 def hook_failure_mode data[:hook_failure_mode] end |
#hook_invocation_point ⇒ String
Invocation points are points in provisioning logic where hooks are initiated.
139 140 141 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 139 def hook_invocation_point data[:hook_invocation_point] end |
#hook_status ⇒ String
Provides the status of the change set hook.
126 127 128 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 126 def hook_status data[:hook_status] end |
#hook_status_reason ⇒ String
Provides the reason for the hook status.
132 133 134 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 132 def hook_status_reason data[:hook_status_reason] end |
#hook_type ⇒ String
The name of the hook.
120 121 122 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 120 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.
309 310 311 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 309 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.
187 188 189 190 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 187 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.
94 95 96 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 94 def resource_properties data[:resource_properties] end |
#resource_status ⇒ String
Current status of the resource.
82 83 84 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 82 def resource_status data[:resource_status] end |
#resource_status_reason ⇒ String
Success/failure message associated with the resource.
88 89 90 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 88 def resource_status_reason data[:resource_status_reason] end |
#resource_type ⇒ String
Type of resource. (For more information, go to [Amazon Web Services Resource Types Reference] in the *CloudFormation User Guide*.)
[1]: docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html
70 71 72 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 70 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.
76 77 78 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 76 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
288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 |
# File 'lib/aws-sdk-cloudformation/event.rb', line 288 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 |