001    /**
002     * Copyright (c) 2010 Yahoo! Inc. All rights reserved.
003     * Licensed under the Apache License, Version 2.0 (the "License");
004     * you may not use this file except in compliance with the License.
005     * You may obtain a copy of the License at
006     *
007     *   http://www.apache.org/licenses/LICENSE-2.0
008     *
009     *  Unless required by applicable law or agreed to in writing, software
010     *  distributed under the License is distributed on an "AS IS" BASIS,
011     *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
012     *  See the License for the specific language governing permissions and
013     *  limitations under the License. See accompanying LICENSE file.
014     */
015    package org.apache.oozie.client;
016    
017    import java.util.Date;
018    
019    /**
020     * Bean that represents a workflow action in a workflow job.
021     */
022    public interface WorkflowAction {
023    
024        /**
025         * Defines the possible stati of a action.
026         */
027        public static enum Status {
028            PREP,
029            RUNNING,
030            OK,
031            ERROR,
032            START_RETRY,
033            START_MANUAL,
034            DONE,
035            END_RETRY,
036            END_MANUAL,
037            KILLED,
038            FAILED, }
039    
040        /**
041         * Return the action action ID.
042         *
043         * @return the action action ID.
044         */
045        String getId();
046    
047        /**
048         * Return the action name.
049         *
050         * @return the action name.
051         */
052        String getName();
053    
054        /**
055         * Return the action type.
056         *
057         * @return the action type.
058         */
059        String getType();
060    
061    
062        /**
063         * Return the action configuration.
064         *
065         * @return the action configuration.
066         */
067        String getConf();
068    
069        /**
070         * Return the current status of the action action.
071         *
072         * @return the current status of the action action.
073         */
074        Status getStatus();
075    
076        /**
077         * Return the number of retries of the action.
078         *
079         * @return the number of retries of the action.
080         */
081        int getRetries();
082    
083        /**
084         * Return the start time of the action action.
085         *
086         * @return the start time of the action action.
087         */
088        Date getStartTime();
089    
090        /**
091         * Return the end time of the action action.
092         *
093         * @return the end time of the action action.
094         */
095        Date getEndTime();
096    
097        /**
098         * Return the transition a action took.
099         *
100         * @return the transition a action took.
101         */
102        String getTransition();
103    
104        /**
105         * Return the action data.
106         *
107         * @return the action data.
108         */
109        String getData();
110    
111        /**
112         * Return the external ID of the action.
113         *
114         * @return the external ID of the action.
115         */
116        String getExternalId();
117    
118        /**
119         * Return the external status of the action.
120         *
121         * @return the external status of the action.
122         */
123        String getExternalStatus();
124    
125        /**
126         * Return the URL to programmatically track the status of the action.
127         *
128         * @return the URL to programmatically track the status of the action.
129         */
130        String getTrackerUri();
131    
132        /**
133         * Return the URL to the web console of the system executing the action.
134         *
135         * @return the URL to the web console of the system executing the action.
136         */
137        String getConsoleUrl();
138    
139        /**
140         * Return the error code of the action, if it ended in ERROR.
141         *
142         * @return the error code of the action.
143         */
144        String getErrorCode();
145    
146        /**
147         * Return the error message of the action, if it ended in ERROR.
148         *
149         * @return the error message of the action.
150         */
151        String getErrorMessage();
152    }