Class: AWS::Flow::ChildWorkflowDecisionStateMachine Private

Inherits:
DecisionStateMachineBase show all
Defined in:
lib/aws/decider/state_machines.rb

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Instance Attribute Summary collapse

Attributes inherited from DecisionStateMachineBase

#id

Attributes included from DecisionStateMachineDFA

#start_state, #states, #symbols, #transitions

Instance Method Summary collapse

Methods inherited from DecisionStateMachineBase

#done?, #handle_started_event

Methods included from DecisionStateMachineDFA

#add_transition, #add_transitions, #get_start_state, #get_transitions, #init, #self_transitions, #uncovered_transitions

Constructor Details

#initialize(decision_id, attributes) ⇒ ChildWorkflowDecisionStateMachine

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.

Returns a new instance of ChildWorkflowDecisionStateMachine.



311
312
313
314
# File 'lib/aws/decider/state_machines.rb', line 311

def initialize(decision_id, attributes)
  @attributes = attributes
  super(decision_id)
end

Instance Attribute Details

#attributesObject

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.



310
311
312
# File 'lib/aws/decider/state_machines.rb', line 310

def attributes
  @attributes
end

#run_idObject

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.



310
311
312
# File 'lib/aws/decider/state_machines.rb', line 310

def run_id
  @run_id
end

Instance Method Details

#create_request_cancel_external_workflow_execution_decisionObject

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.



344
345
346
347
348
349
350
351
352
# File 'lib/aws/decider/state_machines.rb', line 344

def create_request_cancel_external_workflow_execution_decision
  result = {
    :decision_type => "RequestCancelExternalWorkflowExecution",
    :request_cancel_external_workflow_execution_decision_attributes => {
      :workflow_id => @attributes[:workflow_id].to_s,
      :run_id => @run_id.to_s,
    }
  }
end

#create_start_child_workflow_execution_decisionObject

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.



316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
# File 'lib/aws/decider/state_machines.rb', line 316

def create_start_child_workflow_execution_decision
  options = @attributes[:options]
  workflow_name = options.workflow_name || options.prefix_name
  attribute_name = :start_child_workflow_execution_decision_attributes
  result = {
    :decision_type => "StartChildWorkflowExecution",
     attribute_name =>
    {
      :workflow_type =>
      {
        :name => "#{workflow_name}.#{options.execution_method}",
        :version => options.version
      },
      :workflow_id => @attributes[:workflow_id].to_s,
      :task_list => {
        :name => options.task_list
      },
      # :control => @attributes[:control]
      :tag_list => @attributes[:tag_list]
    }
  }
  result[:start_child_workflow_execution_decision_attributes].delete(:task_list) if options.task_list.nil?
  #TODO Figure out what control is
  to_add = options.get_options([:execution_start_to_close_timeout, :task_start_to_close_timeout, :task_priority, :child_policy, :tag_list, :input])
  result[attribute_name].merge!(to_add)
  result
end

#get_decisionObject

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.



354
355
356
357
358
359
360
361
# File 'lib/aws/decider/state_machines.rb', line 354

def get_decision
  case @current_state
  when :created
    return create_start_child_workflow_execution_decision
  when :cancelled_after_started
    return create_request_cancel_external_workflow_execution_decision
  end
end