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 import java.util.List;
019
020 /**
021 * Bean that represents an Oozie application.
022 */
023 public interface CoordinatorJob {
024
025 /**
026 * Defines the possible stati of an Oozie application.
027 */
028 public static enum Status {
029 PREP, PREMATER, RUNNING, SUSPENDED, SUCCEEDED, KILLED, FAILED
030 }
031
032 /**
033 * Defines the possible execution order of an Oozie application.
034 */
035 public static enum Execution {
036 FIFO, LIFO, LAST_ONLY
037 }
038
039 /**
040 * Defines the possible frequency unit of an Oozie application.
041 */
042 public static enum Timeunit {
043 MINUTE, HOUR, DAY, WEEK, MONTH, END_OF_DAY, END_OF_MONTH, NONE
044 }
045
046 /**
047 * Return the path to the Oozie application.
048 *
049 * @return the path to the Oozie application.
050 */
051 String getAppPath();
052
053 /**
054 * Return the name of the Oozie application (from the application definition).
055 *
056 * @return the name of the Oozie application.
057 */
058 String getAppName();
059
060 /**
061 * Return the application ID.
062 *
063 * @return the application ID.
064 */
065 String getId();
066
067 /**
068 * Return the application configuration.
069 *
070 * @return the application configuration.
071 */
072 String getConf();
073
074 /**
075 * Return the application status.
076 *
077 * @return the application status.
078 */
079 Status getStatus();
080
081 /**
082 * Return the frequency for the coord job in unit of minute
083 *
084 * @return the frequency for the coord job in unit of minute
085 */
086 int getFrequency();
087
088 /**
089 * Return the timeUnit for the coord job, it could be, Timeunit enum, e.g. MINUTE, HOUR, DAY, WEEK or MONTH
090 *
091 * @return the time unit for the coord job
092 */
093 Timeunit getTimeUnit();
094
095 /**
096 * Return the time zone information for the coord job
097 *
098 * @return the time zone information for the coord job
099 */
100 String getTimeZone();
101
102 /**
103 * Return the concurrency for the coord job
104 *
105 * @return the concurrency for the coord job
106 */
107 int getConcurrency();
108
109 /**
110 * Return the execution order policy for the coord job
111 *
112 * @return the execution order policy for the coord job
113 */
114 Execution getExecutionOrder();
115
116 /**
117 * Return the time out value for the coord job
118 *
119 * @return the time out value for the coord job
120 */
121 int getTimeout();
122
123 /**
124 * Return the date for the last action of the coord job
125 *
126 * @return the date for the last action of the coord job
127 */
128 Date getLastActionTime();
129
130 /**
131 * Return the application next materialized time.
132 *
133 * @return the application next materialized time.
134 */
135 Date getNextMaterializedTime();
136
137 /**
138 * Return the application start time.
139 *
140 * @return the application start time.
141 */
142 Date getStartTime();
143
144 /**
145 * Return the application end time.
146 *
147 * @return the application end time.
148 */
149 Date getEndTime();
150
151 /**
152 * Return the application user owner.
153 *
154 * @return the application user owner.
155 */
156 String getUser();
157
158 /**
159 * Return the application group.
160 *
161 * @return the application group.
162 */
163 String getGroup();
164
165 /**
166 * Return the BundleId.
167 *
168 * @return the BundleId.
169 */
170 String getBundleId();
171
172 /**
173 * Return the application console URL.
174 *
175 * @return the application console URL.
176 */
177 String getConsoleUrl();
178
179 /**
180 * Return list of coordinator actions.
181 *
182 * @return the list of coordinator actions.
183 */
184 List<CoordinatorAction> getActions();
185 }