package com.thinkbiganalytics.jobrepo.query.model; /*- * #%L * thinkbig-job-repository-api * %% * Copyright (C) 2017 ThinkBig Analytics * %% * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * #L% */ import org.joda.time.DateTime; import java.util.List; import java.util.Map; /** * Represents a Batch Job Execution along with some additional information that is transformed from the domain model {@link com.thinkbiganalytics.metadata.api.jobrepo.job.BatchJobExecution} */ public interface ExecutedJob { /** * Return the related job instance id for this job execution * * @return the job instance id for this job execution */ long getInstanceId(); /** * Set the job instance id */ void setInstanceId(long instanceId); /** * Return the job execution id for this job. This is the PrimaryKey for this given Job. * * @return the job execution id for this job */ long getExecutionId(); /** * set the job execution id */ void setExecutionId(long executionId); /** * Return the display name for this job. * * @return the name of the job */ String getJobName(); /** * set the name of the job */ void setJobName(String jobName); /** * Return the DateTime the job was created * * @return the time the job was created */ DateTime getCreateTime(); /** * set the create DateTime for the job */ void setCreateTime(DateTime createTime); /** * Return the end time of the job * * @return return the end time of the job */ DateTime getEndTime(); /** * set the end time of the job */ void setEndTime(DateTime endTime); /** * Return a map of key,value pairs with job context level data captured during this job execution * * @return a map of values captured during the job execution */ Map<String, Object> getExecutionContext(); /** * set the map of execution data to this job */ void setExecutionContext(Map<String, Object> executionContext); /** * Return a String representing the status of this job * * @see com.thinkbiganalytics.metadata.api.jobrepo.ExecutionConstants.ExitCode */ String getExitCode(); /** * set the exit code for the job */ void setExitCode(String exitCode); /** * Return a message indicating details of what happened during the job execution. This may contain success/failure messages summarizing the job execution as a whole * * @return a message indicating the details of this job execution */ String getExitStatus(); /** * set the exit message indicating details of what happened during the job execution */ void setExitStatus(String exitStatus); /** * Return a map of the job parameters used to setup/start this job * * @return a map of the job parameters used to setup/start this job */ Map<String, Object> getJobParameters(); /** * set the map of parameters used to setup/start this job */ void setJobParameters(Map<String, Object> jobParameters); /** * Return the DateTime this job was last updated * * @return the DateTime the job was last updated */ DateTime getLastUpdated(); /** * set the last updated date */ void setLastUpdated(DateTime lastUpdated); /** * Return the DateTime the job was started * * @return the DateTime the job was started */ DateTime getStartTime(); /** * set the start time for the job * * @param startTime the start time for the job */ void setStartTime(DateTime startTime); /** * Return the job status indicating overall success or failure of the job * * @return the status of the job */ ExecutionStatus getStatus(); /** * set the status for this job */ void setStatus(ExecutionStatus status); /** * Return all steps that have been executed during this job execution * * @return the steps that have been executed during this job execution */ List<ExecutedStep> getExecutedSteps(); /** * set the step executions */ void setExecutedSteps(List<ExecutedStep> executedSteps); /** * Return the run time in millis for this job. if the job is currently executing it will take the difference from the current time against the jobs start time * * @return return the run time in millis for this job. */ Long getRunTime(); /** * set the runtime for this job */ void setRunTime(Long runTime); /** * Return the time in millis since the last time this job ran * * @return return the time, in millis, since the last time this job ran (i.e Now() - {@link this#getEndTime()}) */ Long getTimeSinceEndTime(); /** * set the time in millis of the time since this job last ran. (i.e Now() - {@link this#getEndTime()}) */ void setTimeSinceEndTime(Long timeSinceEndTime); /** * Return the job type. 2 supported types (CHECK, or FEED). * * @return the type of job * @see com.thinkbiganalytics.jobrepo.common.constants.FeedConstants for more information on the types of jobs */ String getJobType(); /** * set the job type */ void setJobType(String jobType); /** * Return the feed name associated with this job * * @return the feed associated with this job */ String getFeedName(); /** * set the feed name associated with this job */ void setFeedName(String feedName); /** * Return a user friendly status of this job * * @return a user friendly status of this job */ String getDisplayStatus(); }