/*
* RUserProjectCalls.java
*
* Copyright (C) 2010-2016, Microsoft Corporation
*
* This program is licensed to you under the terms of Version 2.0 of the
* Apache License. This program is distributed WITHOUT
* ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING THOSE OF NON-INFRINGEMENT,
* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Please refer to the
* Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0) for more details.
*
*/
package com.revo.deployr.client.api;
import com.revo.deployr.client.*;
import com.revo.deployr.client.params.ProjectCreationOptions;
import java.io.InputStream;
import java.util.List;
/**
* Defines project related interfaces for DeployR-managed user.
*/
public interface RUserProjectCalls {
/**
* Enabled/disable project auto-save semantics for duration of user session.
*
* @param save true to enable auto-save of projects on close or logout.
* @throws RClientException if RClient fails to complete call.
* @throws RSecurityException if DeployR server security conditions not met on call.
*/
public void autosaveProjects(boolean save) throws RClientException, RSecurityException;
/**
* Releases all server-wide live project grid resources associated with
* this user.
*
* @throws RClientException if RClient fails to complete call.
* @throws RSecurityException if DeployR server security conditions not met on call.
*/
public void releaseProjects() throws RClientException, RSecurityException;
/**
* Create a temporary project.
*
* @return RProject
* @throws RClientException if RClient fails to complete call.
* @throws RSecurityException if DeployR server security conditions not met on call.
*/
public RProject createProject()
throws RClientException, RSecurityException, RDataException, RGridException;
/**
* Create a temporary project.
*
* @return RProject
* @throws RClientException if RClient fails to complete call.
* @throws RSecurityException if DeployR server security conditions not met on call.
*/
public RProject createProject(ProjectCreationOptions options)
throws RClientException, RSecurityException, RDataException, RGridException;
/**
* Create a pool of temporary projects.
*
* @return List<RProject>
* @throws RClientException if RClient fails to complete call.
* @throws RSecurityException if DeployR server security conditions not met on call.
*/
public List<RProject> createProjectPool(int poolSize, ProjectCreationOptions options)
throws RClientException, RSecurityException, RDataException, RGridException;
/**
* Create a named persistent project.
*
* @return RProject
* @throws RClientException if RClient fails to complete call.
* @throws RSecurityException if DeployR server security conditions not met on call.
*/
public RProject createProject(String name, String descr)
throws RClientException, RSecurityException, RDataException, RGridException;
/**
* Create a named persistent project based on adoptions from existing projects.
*
* @return RProject
* @throws RClientException if RClient fails to complete call.
* @throws RSecurityException if DeployR server security conditions not met on call.
*/
public RProject createProject(String name, String descr, ProjectCreationOptions adoptions)
throws RClientException, RSecurityException, RDataException, RGridException;
/**
* Retrieve project reference.
*
* @return RProject
* @throws RClientException if RClient fails to complete call.
* @throws RSecurityException if DeployR server security conditions not met on call.
*/
public RProject getProject(String pid)
throws RClientException, RSecurityException;
/**
* List projects.
*
* @return RProject
* @throws RClientException if RClient fails to complete call.
* @throws RSecurityException if DeployR server security conditions not met on call.
*/
public List<RProject> listProjects()
throws RClientException, RSecurityException;
/**
* List projects.
*
* @param sortByLastModified true is projects to be sorted by last modified date.
* @param showPublicProjects true is projects list to include public projects.
* @return RProject
* @throws RClientException if RClient fails to complete call.
* @throws RSecurityException if DeployR server security conditions not met on call.
*/
public List<RProject> listProjects(boolean sortByLastModified, boolean showPublicProjects)
throws RClientException, RSecurityException;
/**
* Import project.
*
* @return RProject
* @throws RClientException if RClient fails to complete call.
* @throws RSecurityException if DeployR server security conditions not met on call.
*/
public RProject importProject(InputStream fileStream, String descr)
throws RClientException, RSecurityException;
}