| Interface | Description | 
|---|---|
| JobProxy | Job proxy is the primary abstraction used by the REST API to interact with jobs. | 
| JobProxyFactory | Simple factory interface to produce instances of  JobProxy,
 depending on the implementation. | 
| JobStatusProvider | Interface for getting job status independent of the underlying cluster implementation. | 
| Class | Description | 
|---|---|
| AbstractJobProxy | Implements a subset of the  JobProxyinterface with the default, cluster-agnostic,
 implementations. | 
| JobInstance | Allows us to encapsulate the jobName,jobId tuple as one entity. | 
| ScriptJobProxy | Extends  AbstractJobProxywith some script support functionality. | 
| SimpleYarnJobProxy | Extends the  ScriptJobProxywith methods specific to simple Samza deployments. | 
| SimpleYarnJobProxyFactory | Factory to produce SimpleJobProxy instances. | 
| YarnRestJobStatusProvider | An implementation of the  JobStatusProviderthat retrieves
 the job status from the YARN REST api. |