/*************************************************************************
* Copyright 2009-2015 Eucalyptus Systems, Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 3 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see http://www.gnu.org/licenses/.
*
* Please contact Eucalyptus Systems, Inc., 6755 Hollister Ave., Goleta
* CA 93117, USA or visit http://www.eucalyptus.com/licenses/ if you need
* additional information or have any questions.
************************************************************************/
package com.eucalyptus.cloudformation.workflow;
import com.amazonaws.services.simpleworkflow.flow.annotations.Activities;
import com.amazonaws.services.simpleworkflow.flow.annotations.Activity;
import com.amazonaws.services.simpleworkflow.flow.annotations.ActivityRegistrationOptions;
import com.amazonaws.services.simpleworkflow.flow.core.Promise;
/**
* StackActivity but more promising.
*
* @see StackActivity
*/
@ActivityRegistrationOptions(
defaultTaskScheduleToStartTimeoutSeconds = 900,
defaultTaskStartToCloseTimeoutSeconds = 450,
defaultTaskHeartbeatTimeoutSeconds = 450,
defaultTaskScheduleToCloseTimeoutSeconds = 1350
)
@Activities(version="2.0")
public interface StackActivityClient {
@Activity(name = "StackActivity.initCreateResource")
Promise<String> initCreateResource(String resourceId, String stackId, String accountId, String effectiveUserId, String reverseDependentResourcesJson, int stackVersion);
@Activity(name = "StackActivity.validateAWSParameterTypes")
Promise<String> validateAWSParameterTypes(String stackId, String accountId, String effectiveUserId, int stackVersion);
@Activity(name = "StackActivity.performCreateStep")
Promise<Boolean> performCreateStep(String stepId, String resourceId, String stackId, String accountId, String effectiveUserId, int createdResourceVersion);
@Activity(name = "StackActivity.performDeleteStep")
Promise<Boolean> performDeleteStep(String stepId, String resourceId, String stackId, String accountId, String effectiveUserId, int deletedResourceVersion);
@Activity(name = "StackActivity.determineCreateResourceFailures")
Promise<String> determineCreateResourceFailures(String stackId, String accountId, int createdResourceVersion);
@Activity(name = "StackActivity.determineUpdateResourceFailures")
Promise<String> determineUpdateResourceFailures(String stackId, String accountId, int updatedResourceVersion);
@Activity(name = "StackActivity.determineDeleteResourceFailures")
Promise<String> determineDeleteResourceFailures(String stackId, String accountId, int deletedResourceVersion);
@Activity(name = "StackActivity.initDeleteResource")
Promise<String> initDeleteResource(String resourceId, String stackId, String accountId, String effectiveUserId, int deletedResourceVersion, String retainedResourcesStr);
@Activity(name = "StackActivity.createGlobalStackEvent")
Promise<String> createGlobalStackEvent(String stackId, String accountId, String resourceStatus, String resourceStatusReason, int stackVersion);
@Activity(name = "StackActivity.finalizeCreateStack")
Promise<String> finalizeCreateStack(String stackId, String accountId, String effectiveUserId, int createdStackVersion);
@Activity(name = "StackActivity.finalizeUpdateStack")
Promise<String> finalizeUpdateStack(String stackId, String accountId, String effectiveUserId, int updatedStackVersion);
@Activity(name = "StackActivity.deleteAllStackRecords")
Promise<String> deleteAllStackRecords(String stackId, String accountId);
@Activity(name = "StackActivity.getResourceType")
Promise<String> getResourceType(String stackId, String accountId, String resourceId, int resourceVersion);
@Activity(name = "StackActivity.finalizeCreateResource")
Promise<String> finalizeCreateResource(String resourceId, String stackId, String accountId, String effectiveUserId, int createdResourceVersion);
@Activity(name = "StackActivity.finalizeDeleteResource")
Promise<String> finalizeDeleteResource(String resourceId, String stackId, String accountId, String effectiveUserId, int updatedResourceVersion);
@Activity(name = "StackActivity.failDeleteResource")
Promise<String> failDeleteResource(String resourceId, String stackId, String accountId, String effectiveUserId, String errorMessage, int deletedResourceVersion);
@Activity(name = "StackActivity.getCreateWorkflowExecutionCloseStatus")
Promise<String> getCreateWorkflowExecutionCloseStatus(String stackId);
@Activity(name = "StackActivity.getUpdateWorkflowExecutionCloseStatus")
Promise<String> getUpdateWorkflowExecutionCloseStatus(String stackId);
@Activity(name = "StackActivity.getStackStatus")
Promise<String> getStackStatus(String stackId, String accountId, int stackVersion);
@Activity(name = "StackActivity.setStackStatus")
Promise<String> setStackStatus(String stackId, String accountId, String status, String statusReason, int stackVersion);
@Activity(name = "StackActivity.cancelCreateAndMonitorWorkflows")
Promise<String> cancelCreateAndMonitorWorkflows(String stackId);
@Activity(name = "StackActivity.verifyCreateAndMonitorWorkflowsClosed")
Promise<String> verifyCreateAndMonitorWorkflowsClosed(String stackId);
@Activity(name = "StackActivity.cancelOutstandingCreateResources")
Promise<String> cancelOutstandingCreateResources(String stackId, String accountId, String cancelMessage, int createdResourceVersion);
@Activity(name = "StackActivity.cancelOutstandingUpdateResources")
Promise<String> cancelOutstandingUpdateResources(String stackId, String accountId, String cancelMessage, int updatedResourceVersion);
@Activity(name = "StackActivity.initUpdateResource")
Promise<String> initUpdateResource(String resourceId, String stackId, String accountId, String effectiveUserId, String reverseDependentResourcesJson, int updatedResourceVersion);
@Activity(name = "StackActivity.finalizeUpdateResource")
Promise<String> finalizeUpdateResource(String resourceId, String stackId, String accountId, String effectiveUserId, int updatedResourceVersion);
@Activity(name = "StackActivity.performUpdateStep")
Promise<Boolean> performUpdateStep(String updateTypeAndDirectionStr, String stepId, String resourceId, String stackId, String accountId, String effectiveUserId, int updatedResourceVersion);
@Activity(name = "StackActivity.finalizeUpdateCleanupStack")
Promise<String> finalizeUpdateCleanupStack(String stackId, String accountId, String statusMessage, int updatedStackVersion);
@Activity(name = "StackActivity.initUpdateCleanupResource")
Promise<String> initUpdateCleanupResource(String resourceId, String stackId, String accountId, String effectiveUserId, int updatedResourceVersion);
@Activity(name = "StackActivity.failUpdateCleanupResource")
Promise<String> failUpdateCleanupResource(String resourceId, String stackId, String accountId, String effectiveUserId, String errorMessage, int updatedResourceVersion);
@Activity(name = "StackActivity.finalizeUpdateCleanupResource")
Promise<String> finalizeUpdateCleanupResource(String resourceId, String stackId, String accountId, String effectiveUserId, int updatedResourceVersion);
@Activity(name = "StackActivity.failUpdateUnsupportedResource")
Promise<String> failUpdateUnsupportedResource(String resourceId, String stackId, String accountId, String effectiveUserId, String errorMessage, int updatedResourceVersion);
@Activity(name = "StackActivity.initUpdateRollbackResource")
Promise<String> initUpdateRollbackResource(String resourceId, String stackId, String accountId, String effectiveUserId, int rolledBackResourceVersion);
@Activity(name = "StackActivity.finalizeUpdateRollbackResource")
Promise<String> finalizeUpdateRollbackResource(String resourceId, String stackId, String accountId, String effectiveUserId, int rolledBackResourceVersion);
@Activity(name = "StackActivity.finalizeUpdateRollbackStack")
Promise<String> finalizeUpdateRollbackStack(String stackId, String accountId, int rolledBackStackVersion);
@Activity(name = "StackActivity.failUpdateRollbackStack")
Promise<String> failUpdateRollbackStack(String stackId, String accountId, int rolledBackStackVersion, String errorMessage);
@Activity(name = "StackActivity.finalizeUpdateRollbackCleanupStack")
Promise<String> finalizeUpdateRollbackCleanupStack(String stackId, String accountId, String statusMessage, int rolledBackStackVersion);
@Activity(name = "StackActivity.initUpdateRollbackCleanupResource")
Promise<String> initUpdateRollbackCleanupResource(String resourceId, String stackId, String accountId, String effectiveUserId, int rolledBackResourceVersion);
@Activity(name = "StackActivity.failUpdateRollbackCleanupResource")
Promise<String> failUpdateRollbackCleanupResource(String resourceId, String stackId, String accountId, String effectiveUserId, String errorMessage, int rolledBackResourceVersion);
@Activity(name = "StackActivity.finalizeUpdateRollbackCleanupResource")
Promise<String> finalizeUpdateRollbackCleanupResource(String resourceId, String stackId, String accountId, String effectiveUserId, int rolledBackResourceVersion);
@Activity(name = "StackActivity.initUpdateRollbackStack")
Promise<String> initUpdateRollbackStack(String stackId, String accountId, int rolledBackStackVersion);
@Activity(name = "StackActivity.flattenStackForDelete")
Promise<String> flattenStackForDelete(String stackId, String accountId);
@Activity(name = "StackActivity.checkResourceAlreadyRolledBackOrStartedRollback")
Promise<String> checkResourceAlreadyRolledBackOrStartedRollback(String stackId, String accountId, String resourceId);
@Activity(name = "StackActivity.addCompletedUpdateRollbackResource")
Promise<String> addCompletedUpdateRollbackResource(String stackId, String accountId, String resourceId);
@Activity(name = "StackActivity.checkInnerStackUpdate")
Promise<Boolean> checkInnerStackUpdate(String resourceId, String stackId, String accountId, String effectiveUserId, int updatedResourceVersion);
@Activity(name = "StackActivity.initUpdateCleanupInnerStackUpdateResource")
Promise<String> initUpdateCleanupInnerStackUpdateResource(String resourceId, String stackId, String accountId, String effectiveUserId, int updatedResourceVersion);
@Activity(name = "StackActivity.finalizeUpdateCleanupInnerStackUpdateResource")
Promise<String> finalizeUpdateCleanupInnerStackUpdateResource(String resourceId, String stackId, String accountId, String effectiveUserId, int updatedResourceVersion);
@Activity(name = "StackActivity.performUpdateCleanupInnerStackUpdateStep")
Promise<Boolean> performUpdateCleanupInnerStackUpdateStep(String stepId, String resourceId, String stackId, String accountId, String effectiveUserId, int updatedResourceVersion);
@Activity(name = "StackActivity.initUpdateRollbackCleanupInnerStackUpdateResource")
Promise<String> initUpdateRollbackCleanupInnerStackUpdateResource(String resourceId, String stackId, String accountId, String effectiveUserId, int updatedResourceVersion);
@Activity(name = "StackActivity.finalizeUpdateRollbackCleanupInnerStackUpdateResource")
Promise<String> finalizeUpdateRollbackCleanupInnerStackUpdateResource(String resourceId, String stackId, String accountId, String effectiveUserId, int updatedResourceVersion);
@Activity(name = "StackActivity.performUpdateRollbackCleanupInnerStackUpdateStep")
Promise<Boolean> performUpdateRollbackCleanupInnerStackUpdateStep(String stepId, String resourceId, String stackId, String accountId, String effectiveUserId, int updatedResourceVersion);
@Activity(name = "StackActivity.kickOffUpdateRollbackCleanupStackWorkflow")
Promise<String> kickOffUpdateRollbackCleanupStackWorkflow(String stackId, String accountId, String effectiveUserId);
@Activity(name = "StackActivity.kickOffUpdateRollbackStackWorkflow")
Promise<String> kickOffUpdateRollbackStackWorkflow(String stackId, String accountId, String outerStackArn, String effectiveUserId);
@Activity(name = "StackActivity.kickOffUpdateCleanupStackWorkflow")
Promise<String> kickOffUpdateCleanupStackWorkflow(String stackId, String accountId, String effectiveUserId);
@Activity(name = "StackActivity.kickOffDeleteStackWorkflow")
Promise<String> kickOffDeleteStackWorkflow(String effectiveUserId, String stackId, String stackName, String stackAccountId, String stackAccountAlias, String resourceDependencyManagerJson, int deletedStackVersion, String retainedResourcesStr);
@Activity(name = "StackActivity.kickOffRollbackStackWorkflow")
Promise<String> kickOffRollbackStackWorkflow(String effectiveUserId, String stackId, String stackName, String accountId, String accountAlias, String resourceDependencyManagerJson, int rolledBackStackVersion);
@Activity(name = "StackActivity.logMessage")
Promise<String> logMessage(String level, String message);
@Activity(name = "StackActivity.cancelOutstandingDeleteResources")
Promise<String> cancelOutstandingDeleteResources(String stackId, String accountId, String cancelMessage, int deletedResourceVersion);
@Activity(name = "StackActivity.getWorkflowExecutionCloseStatus")
Promise<String> getWorkflowExecutionCloseStatus(String stackId, String workflowType);
@Activity(name = "StackActivity.getStackStatusIfLatest")
Promise<String> getStackStatusIfLatest(String stackId, String accountId, int stackVersion);
@Activity(name = "StackActivity.setStackStatusIfLatest")
Promise<String> setStackStatusIfLatest(String stackId, String accountId, String status, String statusReason, int stackVersion);
}