function states_for_activity()

in aws/hhvm1/state-machine/generate.hack [249:290]


function states_for_activity(
  keyset<P> $params_to_preserve,
  A $activity,
  string $next,
  string $failure_state,
): dict<string, State> {
  $params_to_preserve[] = P::BuildInput;
  return dict[
    S::PrepareTo.$activity => dict[
      F::Type => T::Task,
      F::Resource => Config::ARN[S::PrepareTo],
      F::Parameters => params_with($params_to_preserve, P::Activity, $activity),
      F::ResultPath => path(P::Results, $activity),
      F::Catch => vec[
        dict[
          'ErrorEquals' => vec['States.ALL'],
          'ResultPath' => path(P::Results, $activity, 'failure'),
          'Next' => $failure_state,
        ],
      ],
    ],
    S::Should.$activity => dict[
      F::Type => T::Choice,
      F::Choices => vec[
        dict[
          'Variable' => path(P::Results, $activity, 'skip'),
          'BooleanEquals' => true,
          'Next' => $next,
        ],
      ],
      F::Default => $activity,
    ],
    $activity => dict[
      F::Type => T::Task,
      F::Resource => Config::ARN[$activity],
      F::InputPath => path(P::Results, $activity, 'taskInput'),
      F::TimeoutSeconds => Config::TIMEOUT_SEC[$activity],
      F::Retry => Config::ACTIVITY_RETRY_POLICY,
      F::Next => $next,
    ],
  ];
}