001    /**
002     * Licensed to the Apache Software Foundation (ASF) under one
003     * or more contributor license agreements.  See the NOTICE file
004     * distributed with this work for additional information
005     * regarding copyright ownership.  The ASF licenses this file
006     * to you under the Apache License, Version 2.0 (the
007     * "License"); you may not use this file except in compliance
008     * with the License.  You may obtain a copy of the License at
009     * 
010     *      http://www.apache.org/licenses/LICENSE-2.0
011     * 
012     * Unless required by applicable law or agreed to in writing, software
013     * distributed under the License is distributed on an "AS IS" BASIS,
014     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015     * See the License for the specific language governing permissions and
016     * limitations under the License.
017     */
018    package org.apache.oozie.client;
019    
020    import java.util.Date;
021    
022    /**
023     * Bean that represents a workflow action in a workflow job.
024     */
025    public interface WorkflowAction {
026    
027        /**
028         * Defines the possible stati of a action.
029         */
030        public static enum Status {
031            PREP,
032            RUNNING,
033            OK,
034            ERROR,
035            USER_RETRY,
036            START_RETRY,
037            START_MANUAL,
038            DONE,
039            END_RETRY,
040            END_MANUAL,
041            KILLED,
042            FAILED, }
043    
044        /**
045         * Return the action action ID.
046         *
047         * @return the action action ID.
048         */
049        String getId();
050    
051        /**
052         * Return the action name.
053         *
054         * @return the action name.
055         */
056        String getName();
057    
058        /**
059         * Return the Credential.
060         *
061         * @return the Credential.
062         */
063        String getCred();
064        
065        /**
066         * Return the action type.
067         *
068         * @return the action type.
069         */
070        String getType();
071    
072    
073        /**
074         * Return the action configuration.
075         *
076         * @return the action configuration.
077         */
078        String getConf();
079    
080        /**
081         * Return the current status of the action action.
082         *
083         * @return the current status of the action action.
084         */
085        Status getStatus();
086    
087        /**
088         * Return the number of retries of the action.
089         *
090         * @return the number of retries of the action.
091         */
092        int getRetries();
093        
094        /**
095         * Return the number of user retry of the action.
096         *
097         * @return the number of user retry of the action.
098         */
099        int getUserRetryCount();
100        
101        /**
102         * Return the max number of user retry of the action.
103         *
104         * @return the max number of user retry of the action.
105         */
106        int getUserRetryMax();
107        
108        /**
109         * Return the interval of user retry of the action, in minutes.
110         *
111         * @return the interval of user retry of the action, in minutes.
112         */
113        int getUserRetryInterval();
114    
115        /**
116         * Return the start time of the action action.
117         *
118         * @return the start time of the action action.
119         */
120        Date getStartTime();
121    
122        /**
123         * Return the end time of the action action.
124         *
125         * @return the end time of the action action.
126         */
127        Date getEndTime();
128    
129        /**
130         * Return the transition a action took.
131         *
132         * @return the transition a action took.
133         */
134        String getTransition();
135    
136        /**
137         * Return the action data.
138         *
139         * @return the action data.
140         */
141        String getData();
142    
143        /**
144         * Return the action statistics.
145         *
146         * @return the action statistics.
147         */
148        String getStats();
149    
150        /**
151         * Return the external child IDs of the action.
152         *
153         * @return the external child IDs of the action.
154         */
155        String getExternalChildIDs();
156    
157        /**
158         * Return the external ID of the action.
159         *
160         * @return the external ID of the action.
161         */
162        String getExternalId();
163    
164        /**
165         * Return the external status of the action.
166         *
167         * @return the external status of the action.
168         */
169        String getExternalStatus();
170    
171        /**
172         * Return the URL to programmatically track the status of the action.
173         *
174         * @return the URL to programmatically track the status of the action.
175         */
176        String getTrackerUri();
177    
178        /**
179         * Return the URL to the web console of the system executing the action.
180         *
181         * @return the URL to the web console of the system executing the action.
182         */
183        String getConsoleUrl();
184    
185        /**
186         * Return the error code of the action, if it ended in ERROR.
187         *
188         * @return the error code of the action.
189         */
190        String getErrorCode();
191    
192        /**
193         * Return the error message of the action, if it ended in ERROR.
194         *
195         * @return the error message of the action.
196         */
197        String getErrorMessage();
198    }