/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you 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.
 */
package org.apache.phoenix.mapreduce.index.automation;

public class YarnApplication {

  public static final String APP_ELEMENT = "app";
  public static final String APPS_ELEMENT = "apps";
  public static final String APP_STATES_ELEMENT = "states";

  private long finishedTime;
  private String amContainerLogs;
  private String trackingUI;

  public enum state {
    NEW,
    ACCEPTED,
    SUBMITTED,
    RUNNING,
    FINISHED
  }

  private String user;
  private String id;
  private String clusterId;

  public enum finalStatus {
    SUCCEEDED,
    FAILED,
    KILLED,
    UNDEFINED
  }

  private String amHostHttpAddress;
  private double progress;
  private String name;
  private long startedTime;
  private long elapsedTime;
  private String diagnostics;
  private String trackingUrl;
  private String queue;
  private int allocatedMB;
  private int allocatedVCores;
  private int runningContainers;
  private int memorySeconds;
  private int vcoreSeconds;

  public long getFinishedTime() {
    return finishedTime;
  }

  public void setFinishedTime(long finishedTime) {
    this.finishedTime = finishedTime;
  }

  public String getAmContainerLogs() {
    return amContainerLogs;
  }

  public void setAmContainerLogs(String amContainerLogs) {
    this.amContainerLogs = amContainerLogs;
  }

  public String getTrackingUI() {
    return trackingUI;
  }

  public void setTrackingUI(String trackingUI) {
    this.trackingUI = trackingUI;
  }

  public String getUser() {
    return user;
  }

  public void setUser(String user) {
    this.user = user;
  }

  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }

  public String getClusterId() {
    return clusterId;
  }

  public void setClusterId(String clusterId) {
    this.clusterId = clusterId;
  }

  public String getAmHostHttpAddress() {
    return amHostHttpAddress;
  }

  public void setAmHostHttpAddress(String amHostHttpAddress) {
    this.amHostHttpAddress = amHostHttpAddress;
  }

  public double getProgress() {
    return progress;
  }

  public void setProgress(double progress) {
    this.progress = progress;
  }

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public long getStartedTime() {
    return startedTime;
  }

  public void setStartedTime(long startedTime) {
    this.startedTime = startedTime;
  }

  public long getElapsedTime() {
    return elapsedTime;
  }

  public void setElapsedTime(long elapsedTime) {
    this.elapsedTime = elapsedTime;
  }

  public String getDiagnostics() {
    return diagnostics;
  }

  public void setDiagnostics(String diagnostics) {
    this.diagnostics = diagnostics;
  }

  public String getTrackingUrl() {
    return trackingUrl;
  }

  public void setTrackingUrl(String trackingUrl) {
    this.trackingUrl = trackingUrl;
  }

  public String getQueue() {
    return queue;
  }

  public void setQueue(String queue) {
    this.queue = queue;
  }

  public int getAllocatedMB() {
    return allocatedMB;
  }

  public void setAllocatedMB(int allocatedMB) {
    this.allocatedMB = allocatedMB;
  }

  public int getAllocatedVCores() {
    return allocatedVCores;
  }

  public void setAllocatedVCores(int allocatedVCores) {
    this.allocatedVCores = allocatedVCores;
  }

  public int getRunningContainers() {
    return runningContainers;
  }

  public void setRunningContainers(int runningContainers) {
    this.runningContainers = runningContainers;
  }

  public int getMemorySeconds() {
    return memorySeconds;
  }

  public void setMemorySeconds(int memorySeconds) {
    this.memorySeconds = memorySeconds;
  }

  public int getVcoreSeconds() {
    return vcoreSeconds;
  }

  public void setVcoreSeconds(int vcoreSeconds) {
    this.vcoreSeconds = vcoreSeconds;
  }

}
