package com.cloudera.api.dao;

import com.cloudera.api.DataView;
import com.cloudera.api.internal.ApiHdfsRestoreSnapshotArgs;
import com.cloudera.api.internal.ApiHdfsSnapshottableDirectoryStatus;
import com.cloudera.api.model.ApiCommand;
import com.cloudera.api.model.ApiHBaseSnapshot;
import com.cloudera.api.model.ApiHBaseSnapshot.Storage;
import com.cloudera.api.model.ApiHdfsSnapshot;
import com.cloudera.api.model.ApiSnapshotCommandList;
import com.cloudera.api.model.ApiSnapshotPolicy;
import com.cloudera.api.model.ApiSnapshotPolicyList;
import java.util.Date;
import java.util.List;

public abstract interface SnapshotManagerDao
{
  public abstract ApiCommand createHBaseSnapshot(ApiHBaseSnapshot paramApiHBaseSnapshot);

  public abstract List<ApiHBaseSnapshot> getHBaseSnapshots(String paramString, ApiHBaseSnapshot.Storage paramStorage);

  public abstract ApiHBaseSnapshot updateHBaseSnapshot(ApiHBaseSnapshot paramApiHBaseSnapshot, ApiHBaseSnapshot.Storage paramStorage);

  public abstract ApiCommand deleteHBaseSnapshot(String paramString, ApiHBaseSnapshot.Storage paramStorage, Date paramDate);

  public abstract ApiCommand restoreHBaseSnapshot(String paramString, ApiHBaseSnapshot.Storage paramStorage, Date paramDate);

  public abstract ApiCommand cloneHBaseSnapshot(String paramString1, ApiHBaseSnapshot.Storage paramStorage, Date paramDate, String paramString2);

  public abstract ApiSnapshotPolicyList createPolicies(ApiSnapshotPolicyList paramApiSnapshotPolicyList);

  public abstract ApiSnapshotPolicyList readPolicies(DataView paramDataView);

  public abstract ApiSnapshotPolicy readPolicy(String paramString, DataView paramDataView);

  public abstract ApiSnapshotPolicy updatePolicy(String paramString, ApiSnapshotPolicy paramApiSnapshotPolicy);

  public abstract ApiSnapshotPolicy deletePolicy(String paramString);

  public abstract ApiSnapshotCommandList readHistory(String paramString, int paramInt1, int paramInt2, DataView paramDataView);

  public abstract List<ApiHdfsSnapshot> listHdfsSnapshots(String paramString);

  public abstract ApiHdfsSnapshottableDirectoryStatus getSnapshotRootDir(String paramString);

  public abstract List<ApiHdfsSnapshottableDirectoryStatus> getSnapshottableDirListing();

  public abstract ApiCommand enableHdfsSnapshottableDir(String paramString);

  public abstract ApiCommand disableHdfsSnapshottableDir(String paramString);

  public abstract ApiCommand createHdfsSnapshot(ApiHdfsSnapshot paramApiHdfsSnapshot);

  public abstract ApiCommand deleteHdfsSnapshot(ApiHdfsSnapshot paramApiHdfsSnapshot);

  public abstract ApiCommand restoreHdfsSnapshot(ApiHdfsRestoreSnapshotArgs paramApiHdfsRestoreSnapshotArgs);
}