http://git-wip-us.apache.org/repos/asf/airavata/blob/6c5e9954/thrift-interface-descriptions/airavata-api/airavata_commons.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/airavata-api/airavata_commons.thrift b/thrift-interface-descriptions/airavata-api/airavata_commons.thrift deleted file mode 100644 index e49fe3f..0000000 --- a/thrift-interface-descriptions/airavata-api/airavata_commons.thrift +++ /dev/null @@ -1,54 +0,0 @@ -/* - * 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. - * - */ - -namespace java org.apache.airavata.model.commons -namespace php Airavata.Model.Commons -namespace cpp apache.airavata.model.commons -namespace py apache.airavata.model.commons - -const string DEFAULT_ID = "DO_NOT_SET_AT_CLIENTS" - -struct ErrorModel { - 1: required string errorId = DEFAULT_ID, - 2: optional i64 creationTime, - 3: optional string actualErrorMessage, - 4: optional string userFriendlyMessage, - 5: optional bool transientOrPersistent = 0, - 6: optional list<string> rootCauseErrorIdList -} - - -/** -* This data structure can be used to store the validation results -* captured during validation step and during the launchExperiment -* operation it can be easilly checked to see the errors occured -* during the experiment launch operation -**/ - -struct ValidatorResult { - 1: required bool result, - 2: optional string errorDetails -} - - -struct ValidationResults { - 1: required bool validationState, - 2: required list<ValidatorResult> validationResultList -} \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/6c5e9954/thrift-interface-descriptions/airavata-api/airavata_data_models.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/airavata-api/airavata_data_models.thrift b/thrift-interface-descriptions/airavata-api/airavata_data_models.thrift deleted file mode 100644 index 4e9badf..0000000 --- a/thrift-interface-descriptions/airavata-api/airavata_data_models.thrift +++ /dev/null @@ -1,47 +0,0 @@ -/* - * 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. - * - */ - -include "airavata_commons.thrift" -include "workspace_model.thrift" -include "airavata_errors.thrift" -include "messaging_events.thrift" -include "security_model.thrift" -include "experiment_model.thrift" -include "job_model.thrift" -include "task_model.thrift" -include "process_model.thrift" -include "scheduling_model.thrift" -include "status_models.thrift" -include "data_movement_models.thrift" -include "replica_catalog_models.thrift" - -namespace java org.apache.airavata.model -namespace php Airavata.Model -namespace cpp apache.airavata.model -namespace py apache.airavata.model - -/* - * This file describes the definitions of the Airavata Execution Data Structures. Each of the - * language specific Airavata Client SDK's will translate this neutral data model into an - * appropriate form for passing to the Airavata Server Execution API Calls. -*/ - - - http://git-wip-us.apache.org/repos/asf/airavata/blob/6c5e9954/thrift-interface-descriptions/airavata-api/airavata_errors.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/airavata-api/airavata_errors.thrift b/thrift-interface-descriptions/airavata-api/airavata_errors.thrift deleted file mode 100644 index 870e9a0..0000000 --- a/thrift-interface-descriptions/airavata-api/airavata_errors.thrift +++ /dev/null @@ -1,172 +0,0 @@ -/* - * 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. - * - */ - -/* -* This file describes the definitions of the Error Messages that can occur -* when invoking Apache Airavata Services through the API. In addition Thrift provides -* built in funcationality to raise TApplicationException for all internal server errors. -*/ - -include "experiment_model.thrift" - -namespace java org.apache.airavata.model.error -namespace php Airavata.API.Error -namespace cpp apache.airavata.api.error -namespace perl AiravataAPIError -namespace py apache.airavata.api.error -namespace js AiravataAPIError - -/** - * A list of Airavata API Error Message Types - * - * UNKNOWN: No information available about the error - * - * PERMISSION_DENIED: Not permitted to perform action - * - * INTERNAL_ERROR: Unexpected problem with the service - * - * AUTHENTICATION_FAILURE: The client failed to authenticate. - * - * INVALID_AUTHORIZATION: Security Token and/or Username and/or password is incorrect - * - * AUTHORIZATION_EXPIRED: Authentication token expired - * - * UNKNOWN_GATEWAY_ID: The gateway is not registered with Airavata. - * - * UNSUPPORTED_OPERATION: Operation denied because it is currently unsupported. - */ - -enum AiravataErrorType { - UNKNOWN, - PERMISSION_DENIED, - INTERNAL_ERROR, - AUTHENTICATION_FAILURE, - INVALID_AUTHORIZATION, - AUTHORIZATION_EXPIRED, - UNKNOWN_GATEWAY_ID, - UNSUPPORTED_OPERATION -} - -/** - * This exception is thrown when a client asks to perform an operation on an experiment that does not exist. - * - * identifier: A description of the experiment that was not found on the server. - * - * key: The value passed from the client in the identifier, which was not found. - */ -exception ExperimentNotFoundException { - 1: required string message - /** - * 1: optional string identifier, - * 2: optional string key - **/ -} - -exception ProjectNotFoundException { - 1: required string message -} - -/** -* This exception is thrown for invalid requests that occur from any reasons like required input parameters are missing, -* or a parameter is malformed. -* -* message: contains the associated error message. -*/ -exception InvalidRequestException { - 1: required string message -} - - -/** -* This exception is thrown when RPC timeout gets exceeded. -*/ -exception TimedOutException { -} - -/** -* This exception is thrown for invalid sshKeyAuthentication requests. -* -* message: contains the cause of the authorization failure. -*/ -exception AuthenticationException { - 1: required string message -} - -/** -* This exception is thrown for invalid authorization requests such user does not have acces to an aplication or resource. -* -* message: contains the authorization failure message -*/ -exception AuthorizationException { - 1: required string message -} - - -/** - * This exception is thrown by Airavata Services when a call fails as a result of - * a problem that a client may be able to resolve. For example, if the user - * attempts to execute an application on a resource gateway does not have access to. - * - * This exception would not be used for internal system errors that do not - * reflect user actions, but rather reflect a problem within the service that - * the client cannot resolve. - * - * airavataErrorType: The message type indicating the error that occurred. - * must be one of the values of AiravataErrorType. - * - * parameter: If the error applied to a particular input parameter, this will - * indicate which parameter. - */ -exception AiravataClientException { - 1: required AiravataErrorType airavataErrorType, - 2: optional string parameter -} - -struct ValidatorResult { - 1: required bool result, - 2: optional string errorDetails -} - -struct ValidationResults { - 1: required bool validationState, - 2: required list<ValidatorResult> validationResultList -} - -exception LaunchValidationException { - 1: required ValidationResults validationResult; - 2: optional string errorMessage; -} - -/** - * This exception is thrown by Airavata Services when a call fails as a result of - * a problem in the service that could not be changed through client's action. - * - * airavataErrorType: The message type indicating the error that occurred. - * must be one of the values of AiravataErrorType. - * - * message: This may contain additional information about the error - * - */ -exception AiravataSystemException { - 1: required AiravataErrorType airavataErrorType, - 2: optional string message, -} - - http://git-wip-us.apache.org/repos/asf/airavata/blob/6c5e9954/thrift-interface-descriptions/airavata-api/app_catalog_models.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/airavata-api/app_catalog_models.thrift b/thrift-interface-descriptions/airavata-api/app_catalog_models.thrift deleted file mode 100644 index 149b129..0000000 --- a/thrift-interface-descriptions/airavata-api/app_catalog_models.thrift +++ /dev/null @@ -1,25 +0,0 @@ -/* - * 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. - * - */ - -include "compute_resource_model.thrift" -include "storage_resource_model.thrift" -include "application_deployment_model.thrift" -include "application_interface_model.thrift" -include "gateway_resource_profile_model.thrift" \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/6c5e9954/thrift-interface-descriptions/airavata-api/application_deployment_model.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/airavata-api/application_deployment_model.thrift b/thrift-interface-descriptions/airavata-api/application_deployment_model.thrift deleted file mode 100644 index 48f4158..0000000 --- a/thrift-interface-descriptions/airavata-api/application_deployment_model.thrift +++ /dev/null @@ -1,153 +0,0 @@ -/* - * 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. - * - */ - -/** - * This file describes the definitions of the Data Structures related to deployment of Application on - * computational resources. - * -*/ - -include "airavata_commons.thrift" - -namespace java org.apache.airavata.model.appcatalog.appdeployment -namespace php Airavata.Model.AppCatalog.AppDeployment -namespace cpp apache.airavata.model.appcatalog.appdeployment -namespace py apache.airavata.model.appcatalog.appdeployment - - -/** - * Key Value pairs to be used to set environments - * - * name: - * Name of the environment variable such as PATH, LD_LIBRARY_PATH, NETCDF_HOME. - * - * value: - * Value of the environment variable to set - * - * envPathOrder: - * The order of the setting of the env variables when there are multiple env variables -*/ -struct SetEnvPaths { - 1: required string name, - 2: required string value, - 3: optional i32 envPathOrder -} - -/** - * Job commands to be used in Pre Job, Post Job and Module Load Commands - * - * command: - * The actual command in string format - * - * commandOrder: - * Order of the command in the multiple command situation -*/ -struct CommandObject { - 1: required string command, - 2: optional i32 commandOrder -} - -/** - * Application Module Information. A module has to be registered before registering a deployment. - * - * appModuleId: Airavata Internal Unique Job ID. This is set by the registry. - * - * appModuleName: - * Name of the application module. - * - * appModuleVersion: - * Version of the application. - * - * appModuleDescription: - * Descriprion of the Module - * -*/ -struct ApplicationModule { - 1: required string appModuleId = airavata_commons.DEFAULT_ID, - 2: required string appModuleName, - 3: optional string appModuleVersion, - 4: optional string appModuleDescription -} - -/** - * Enumeration of application parallelism supported by Airavata - * - * SERIAL: - * Single processor applications without any parallelization. - * - * MPI: - * Messaging Passing Interface. - * - * OPENMP: - * Shared Memory Implementtaion. - * - * OPENMP_MPI: - * Hybrid Applications. - * -*/ -enum ApplicationParallelismType { - SERIAL, - MPI, - OPENMP, - OPENMP_MPI, - CCM, - CRAY_MPI -} -/** - * Application Deployment Description - * - * appDeploymentId: Airavata Internal Unique Job ID. This is set by the registry. - * - * appModuleName: - * Application Module Name. This has to be precise describing the binary. - * - * computeHostId: - * This ID maps application deployment to a particular resource previously described within Airavata. - * Example: Stampede is first registered and refered when registering WRF. - * - * moduleLoadCmd: - * Command string to load modules. This will be placed in the job submisison - * Ex: module load amber - * - * libPrependPaths: - * prepend to a path variable the value - * - * libAppendPaths: - * append to a path variable the value - * - * setEnvironment: - * assigns to the environment variable "NAME" the value - * -*/ -struct ApplicationDeploymentDescription { -// 1: required bool isEmpty = 0, - 1: required string appDeploymentId = airavata_commons.DEFAULT_ID, - 2: required string appModuleId, - 3: required string computeHostId, - 4: required string executablePath, - 5: required ApplicationParallelismType parallelism = ApplicationParallelismType.SERIAL, - 6: optional string appDeploymentDescription, - 7: optional list<CommandObject> moduleLoadCmds, - 8: optional list<SetEnvPaths> libPrependPaths, - 9: optional list<SetEnvPaths> libAppendPaths, - 10: optional list<SetEnvPaths> setEnvironment, - 11: optional list<CommandObject> preJobCommands, - 12: optional list<CommandObject> postJobCommands, -} http://git-wip-us.apache.org/repos/asf/airavata/blob/6c5e9954/thrift-interface-descriptions/airavata-api/application_interface_model.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/airavata-api/application_interface_model.thrift b/thrift-interface-descriptions/airavata-api/application_interface_model.thrift deleted file mode 100644 index 9a57667..0000000 --- a/thrift-interface-descriptions/airavata-api/application_interface_model.thrift +++ /dev/null @@ -1,56 +0,0 @@ -/* - * 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. - * - */ - -/** - * This file describes the definitions of the Data Structures of Application interfaces. These interfaces are mapped - * to application mapping on various resources. - * -*/ -include "application_io_models.thrift" -include "airavata_commons.thrift" - -namespace java org.apache.airavata.model.appcatalog.appinterface -namespace php Airavata.Model.AppCatalog.AppInterface -namespace cpp apache.airavata.model.appcatalog.appinterface -namespace py apache.airavata.model.appcatalog.appinterface - - -/** - * Application Interface Description - * - * applicationModules: - * Associate all application modules with versions which interface is applicable to. - * - * applicationInputs: - * Inputs to be passed to the application - * - * applicationOutputs: - * Outputs generated from the application - * -*/ -struct ApplicationInterfaceDescription { -// 1: required bool isEmpty = 0, - 1: required string applicationInterfaceId = airavata_commons.DEFAULT_ID, - 2: required string applicationName, - 3: optional string applicationDescription, - 4: optional list<string> applicationModules, - 5: optional list<application_io_models.InputDataObjectType> applicationInputs, - 6: optional list<application_io_models.OutputDataObjectType> applicationOutputs -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/6c5e9954/thrift-interface-descriptions/airavata-api/application_io_models.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/airavata-api/application_io_models.thrift b/thrift-interface-descriptions/airavata-api/application_io_models.thrift deleted file mode 100644 index 1749ced..0000000 --- a/thrift-interface-descriptions/airavata-api/application_io_models.thrift +++ /dev/null @@ -1,118 +0,0 @@ -/* - * 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. - * - */ - -include "compute_resource_model.thrift" - -namespace java org.apache.airavata.model.application.io -namespace php Airavata.Model.Application.Io -namespace cpp apache.airavata.model.application.io -namespace py apache.airavata.model.application.io - -/** - * Data Types supported in Airavata. The primitive data types - * -*/ -enum DataType{ - STRING, - INTEGER, - FLOAT, - URI, - STDOUT, - STDERR -} - -/** - * Application Inputs. The paramters describe how inputs are passed to the application. - * - * name: - * Name of the parameter. - * - * value: - * Value of the parameter. A default value could be set during registration. - * - * type: - * Data type of the parameter - * - * applicationArguement: - * The argument flag sent to the application. Such as -p pressure. - * - * standardInput: - * When this value is set, the parameter is sent as standard input rather than a parameter. - * Typically this is passed using redirection operator ">". - * - * userFriendlyDescription: - * Description to be displayed at the user interface. - * - * metaData: - * Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration. - * -*/ -struct InputDataObjectType { - 1: required string name, - 2: optional string value, - 3: optional DataType type, - 4: optional string applicationArgument, - 5: optional bool standardInput, - 6: optional string userFriendlyDescription, - 7: optional string metaData, - 8: optional i32 inputOrder, - 9: optional bool isRequired, - 10: optional bool requiredToAddedToCommandLine, - 11: optional bool dataStaged -} - -/** - * Application Outputs. The paramters describe how outputs generated by the application. - * - * name: - * Name of the parameter. - * - * value: - * Value of the parameter. - * - * type: - * Data type of the parameter - * - * applicationArguement: - * The argument flag sent to the application. Such as -p pressure. - * - * standardInput: - * When this value is set, the parameter is sent as standard input rather than a parameter. - * Typically this is passed using redirection operator ">". - * - * userFriendlyDescription: - * Description to be displayed at the user interface. - * - * metaData: - * Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration. - * -*/ -struct OutputDataObjectType { - 1: required string name, - 2: optional string value, - 3: optional DataType type, - 4: optional string applicationArgument, - 5: optional bool isRequired, - 6: optional bool requiredToAddedToCommandLine, - 7: optional bool dataMovement, - 8: optional string location, - 9: optional string searchQuery, - 10: optional bool outputStreaming -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/6c5e9954/thrift-interface-descriptions/airavata-api/compute_resource_model.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/airavata-api/compute_resource_model.thrift b/thrift-interface-descriptions/airavata-api/compute_resource_model.thrift deleted file mode 100644 index 1d7172f..0000000 --- a/thrift-interface-descriptions/airavata-api/compute_resource_model.thrift +++ /dev/null @@ -1,345 +0,0 @@ -/* - * 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. - * - */ - -include "airavata_commons.thrift" -include "data_movement_models.thrift" - -namespace java org.apache.airavata.model.appcatalog.computeresource -namespace php Airavata.Model.AppCatalog.ComputeResource -namespace cpp apache.airavata.model.appcatalog.computeresource -namespace py apache.airavata.model.appcatalog.computeresource - - -/** - * Enumeration of local resource job manager types supported by Airavata - * - * FORK: - * Forking of commands without any job manager - * - * PBS: - * Job manager supporting the Portal Batch System (PBS) protocol. Some examples include TORQUE, PBSPro, Grid Engine. - * - * SLURM: - * The Simple Linux Utility for Resource Management is a open source workload manager. - * - * UGE: - * Univa Grid Engine, a variation of PBS implementation. - * - * LSF: - * IBM Platform Load Sharing Facility is dominantly installed on IBM clusters. - * -*/ -enum ResourceJobManagerType { - FORK, - PBS, - SLURM, - LSF, - UGE -} - -/** - * Enumeration of resource job manager commands - * - * SUBMISSION: - * Ex: qsub, sbatch - * - * JOBMONITORING: - * Ex: qstat, squeue - * - * DELETION: - * Ex: qdel, scancel - * - * CHECK_JOB: - * Detailed Status about the Job. Ex: checkjob - * - * SHOW_QUEUE: - * List of Queued Job by the schedular. Ex: showq - * - * SHOW_RESERVATION: - * List all reservations. Ex:showres, show_res - * - * SHOW_START: - * Display the start time of the specified job. Ex: showstart - * -*/ -enum JobManagerCommand { - SUBMISSION, - JOB_MONITORING, - DELETION, - CHECK_JOB, - SHOW_QUEUE, - SHOW_RESERVATION, - SHOW_START -} - - -/** - * Resource Job Manager Information - * - * resourceJobManagerType: - * A typical HPC cluster has a single Job Manager to manage the resources. - * - * pushMonitoringEndpoint: - * If the job manager pushes out state changes to a database or bus, specify the service endpoint. - * Ex: Moab Web Service, Moab MongoDB URL, AMQP (GLUE2) Broker - * - * jobManagerBinPath: - * Path to the Job Manager Installation Binary directory. - * - * jobManagerCommands: - * An enumeration of commonly used manager commands. - * -*/ -struct ResourceJobManager { - 1: required string resourceJobManagerId = airavata_commons.DEFAULT_ID, - 2: required ResourceJobManagerType resourceJobManagerType, - 3: optional string pushMonitoringEndpoint, - 4: optional string jobManagerBinPath, - 5: optional map<JobManagerCommand, string> jobManagerCommands -} - -/** - * Enumeration of File Systems on the resource - * - * FORK: - * Forking of commands without any job manager - * - * PBS: - * Job manager supporting the Portal Batch System (PBS) protocol. Some examples include TORQUE, PBSPro, Grid Engine. - * - * UGE: - * Univa Grid Engine, a variation of PBS implementation. - * - * SLURM: - * The Simple Linux Utility for Resource Management is a open source workload manager. - * -*/ -enum FileSystems { - HOME, - WORK, - LOCALTMP, - SCRATCH, - ARCHIVE -} - -/** - * Batch Queue Information on SuperComputers - * - * maxRunTime: - * Maximum allowed run time in hours. -*/ -struct BatchQueue { - 1: required string queueName, - 2: optional string queueDescription, - 3: optional i32 maxRunTime, - 4: optional i32 maxNodes, - 5: optional i32 maxProcessors, - 6: optional i32 maxJobsInQueue, - 7: optional i32 maxMemory -} - - -/** - * Enumeration of Airavata supported Job Submission Mechanisms for High Performance Computing Clusters. - * - * SSH: - * Execute remote job submission commands using via secure shell protocol. - * - * GRAM: - * Execute remote jobs via Globus GRAM service. - * - * UNICORE: - * Execute remote jobs via Unicore services - * -*/ -enum JobSubmissionProtocol { - LOCAL, - SSH, - GLOBUS, - UNICORE, - CLOUD, - SSH_FORK, - LOCAL_FORK -} - -/** -* Monitoring modes -* -* POLL_JOB_MANAGER: -* GFac need to pull job status changes. -* -* XSEDE_AMQP_SUBSCRIBE: -* Server will publish job status changes to amqp servert. -* -**/ -enum MonitorMode { - POLL_JOB_MANAGER, - JOB_EMAIL_NOTIFICATION_MONITOR, - XSEDE_AMQP_SUBSCRIBE, - FORK -} - -/** - * Locally Fork Jobs as OS processes - * - * alternativeSSHHostName: - * If the login to ssh is different than the hostname itself, specify it here - * - * sshPort: - * If a non-default port needs to used, specify it. -*/ -struct LOCALSubmission { - 1: required string jobSubmissionInterfaceId = airavata_commons.DEFAULT_ID, - 2: required data_movement_models.SecurityProtocol securityProtocol, - 3: required ResourceJobManager resourceJobManager -} - -/** - * Authenticate using Secured Shell - * - * alternativeSSHHostName: - * If the login to ssh is different than the hostname itself, specify it here - * - * sshPort: - * If a non-default port needs to used, specify it. - * - * batchQueueEmailSenders: - * If a resource always sends the monitoring from a specific address, specify the - * full email address. If a resource sends emails from multiple addresses ( - * example: based on the submitted login node) then use the wildchar * to indicate - * the same. Example: *@*.example.com or *@example.com - * -*/ -struct SSHJobSubmission { - 1: required string jobSubmissionInterfaceId = airavata_commons.DEFAULT_ID, - 2: required data_movement_models.SecurityProtocol securityProtocol, - 3: required ResourceJobManager resourceJobManager, - 4: optional string alternativeSSHHostName, - 5: optional i32 sshPort = 22, - 6: optional MonitorMode monitorMode, - 7: optional list<string> batchQueueEmailSenders -} - -struct GlobusJobSubmission { - 1: required string jobSubmissionInterfaceId = airavata_commons.DEFAULT_ID, - 2: required data_movement_models.SecurityProtocol securityProtocol, - 3: optional list<string> globusGateKeeperEndPoint -} - -/** - * Unicore Job Submission - * - * unicoreEndPointURL: - * unicoreGateway End Point. The provider will query this service to fetch required service end points. - * authenticationMode - * The authenticationMode defines the way certificate is fetched. -*/ -struct UnicoreJobSubmission { - 1: required string jobSubmissionInterfaceId = airavata_commons.DEFAULT_ID, - 2: required data_movement_models.SecurityProtocol securityProtocol, - 3: required string unicoreEndPointURL, -} - - - -/** -* Provider name -**/ -enum ProviderName { - EC2, - AWSEC2, - RACKSPACE -} - -/** - * Cloud Job Submission - * - * -*/ -struct CloudJobSubmission { - 1: required string jobSubmissionInterfaceId = airavata_commons.DEFAULT_ID, - 2: required data_movement_models.SecurityProtocol securityProtocol, - 3: required string nodeId, - 4: required string executableType, - 5: required ProviderName providerName, - 6: required string userAccountName -} - -/** - * Job Submission Interfaces - * - * jobSubmissionInterfaceId: The Job Submission Interface has to be previously registered and referenced here. - * - * priorityOrder: - * For resources with multiple interfaces, the priority order should be selected. - * Lower the numerical number, higher the priority - * -*/ -struct JobSubmissionInterface { - 1: required string jobSubmissionInterfaceId, - 2: required JobSubmissionProtocol jobSubmissionProtocol - 3: required i32 priorityOrder = 0, -} - - - -/** - * Computational Resource Description - * - * computeResourceId: Airavata Internal Unique Identifier to distinguish Compute Resource. - * - * hostName: - * Fully Qualified Host Name. - * - * hostAliases: - * Aliases if any. - * - * ipAddress: - * IP Addresses of the Resource. - * - * resourceDescription: - * A user friendly description of the resource. - * - * JobSubmissionProtocols: - * A computational resources may have one or more ways of submitting Jobs. This structure - * will hold all available mechanisms to interact with the resource. - * The key is the priority - * - * DataMovementProtocol: - * Option to specify a prefered data movement mechanism of the available options. - * - * fileSystems: - * Map of file systems type and the path. - * -*/ -struct ComputeResourceDescription { -// 1: required bool isEmpty = 0, - 1: required string computeResourceId = airavata_commons.DEFAULT_ID, - 2: required string hostName, - 3: optional list<string> hostAliases, - 4: optional list<string> ipAddresses, - 5: optional string resourceDescription, - 6: optional bool enabled, - 7: optional list<BatchQueue> batchQueues, - 8: optional map<FileSystems, string> fileSystems, - 9: optional list<JobSubmissionInterface> jobSubmissionInterfaces, - 10: optional list<data_movement_models.DataMovementInterface> dataMovementInterfaces, - 11: optional i32 maxMemoryPerNode -} http://git-wip-us.apache.org/repos/asf/airavata/blob/6c5e9954/thrift-interface-descriptions/airavata-api/data_movement_models.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/airavata-api/data_movement_models.thrift b/thrift-interface-descriptions/airavata-api/data_movement_models.thrift deleted file mode 100644 index af449e6..0000000 --- a/thrift-interface-descriptions/airavata-api/data_movement_models.thrift +++ /dev/null @@ -1,154 +0,0 @@ -/* - * 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. - * - */ - -include "airavata_commons.thrift" - -namespace java org.apache.airavata.model.data.movement -namespace php Airavata.Model.Data.Movement -namespace cpp apache.airavata.model.data.movement -namespace py apache.airavata.model.data.movement - -enum DMType { - COMPUTE_RESOURCE, - STORAGE_RESOURCE -} - -/** - * Enumeration of security sshKeyAuthentication and authorization mechanisms supported by Airavata. This enumeration just - * describes the supported mechanism. The corresponding security credentials are registered with Airavata Credential - * store. - * - * USERNAME_PASSWORD: - * A User Name. - * - * SSH_KEYS: - * SSH Keys - * - * FIXME: Change GSI to a more precise generic security protocol - X509 - * -*/ -enum SecurityProtocol { - USERNAME_PASSWORD, - SSH_KEYS, - GSI, - KERBEROS, - OAUTH, - LOCAL -} - - -/** - * Enumeration of data movement supported by Airavata - * - * SCP: - * Job manager supporting the Portal Batch System (PBS) protocol. Some examples include TORQUE, PBSPro, Grid Engine. - * - * SFTP: - * The Simple Linux Utility for Resource Management is a open source workload manager. - * - * GridFTP: - * Globus File Transfer Protocol - * - * UNICORE_STORAGE_SERVICE: - * Storage Service Provided by Unicore - * -*/ -enum DataMovementProtocol { - LOCAL, - SCP, - SFTP, - GridFTP, - UNICORE_STORAGE_SERVICE -} - -/** - * Data Movement through Secured Copy - * - * alternativeSCPHostName: - * If the login to scp is different than the hostname itself, specify it here - * - * sshPort: - * If a non-default port needs to used, specify it. -*/ -struct SCPDataMovement { - 1: required string dataMovementInterfaceId = airavata_commons.DEFAULT_ID, - 2: required SecurityProtocol securityProtocol, - 3: optional string alternativeSCPHostName, - 4: optional i32 sshPort = 22 -} - -/** - * Data Movement through GridFTP - * - * alternativeSCPHostName: - * If the login to scp is different than the hostname itself, specify it here - * - * sshPort: - * If a non-default port needs to used, specify it. -*/ -struct GridFTPDataMovement { - 1: required string dataMovementInterfaceId = airavata_commons.DEFAULT_ID, - 2: required SecurityProtocol securityProtocol, - 3: required list<string> gridFTPEndPoints -} - -/** - * Data Movement through UnicoreStorage - * - * unicoreEndPointURL: - * unicoreGateway End Point. The provider will query this service to fetch required service end points. -*/ -struct UnicoreDataMovement { - 1: required string dataMovementInterfaceId = airavata_commons.DEFAULT_ID, - 2: required SecurityProtocol securityProtocol, - 3: required string unicoreEndPointURL -} - -/** - * LOCAL - * - * alternativeSCPHostName: - * If the login to scp is different than the hostname itself, specify it here - * - * sshPort: - * If a non-defualt port needs to used, specify it. -*/ -struct LOCALDataMovement { - 1: required string dataMovementInterfaceId = airavata_commons.DEFAULT_ID, -} - -/** - * Data Movement Interfaces - * - * dataMovementInterfaceId: The Data Movement Interface has to be previously registered and referenced here. - * - * priorityOrder: - * For resources with multiple interfaces, the priority order should be selected. - * Lower the numerical number, higher the priority - * -*/ -struct DataMovementInterface { - 1: required string dataMovementInterfaceId, - 2: required DataMovementProtocol dataMovementProtocol, - 3: required i32 priorityOrder = 0, -} - - - http://git-wip-us.apache.org/repos/asf/airavata/blob/6c5e9954/thrift-interface-descriptions/airavata-api/experiment_model.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/airavata-api/experiment_model.thrift b/thrift-interface-descriptions/airavata-api/experiment_model.thrift deleted file mode 100644 index d2a571e..0000000 --- a/thrift-interface-descriptions/airavata-api/experiment_model.thrift +++ /dev/null @@ -1,127 +0,0 @@ -/* - * 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. - * - */ - - include "application_io_models.thrift" - include "scheduling_model.thrift" - include "airavata_commons.thrift" - include "status_models.thrift" - include "process_model.thrift" - - namespace java org.apache.airavata.model.experiment - namespace php Airavata.Model.Experiment - namespace cpp apache.airavata.model.experiment - namespace py apache.airavata.model.experiment - -enum ExperimentType { - SINGLE_APPLICATION, - WORKFLOW -} - -enum ExperimentSearchFields { - EXPERIMENT_NAME, - EXPERIMENT_DESC, - APPLICATION_ID, - FROM_DATE, - TO_DATE, - STATUS, - PROJECT_ID -} -/** - * A structure holding the experiment configuration. - * - * -*/ -struct UserConfigurationDataModel { - 1: required bool airavataAutoSchedule = 0, - 2: required bool overrideManualScheduledParams = 0, - 3: optional bool shareExperimentPublicly = 0, - 4: optional scheduling_model.ComputationalResourceSchedulingModel computationalResourceScheduling, - 5: optional bool throttleResources = 0, - 6: optional string userDN, - 7: optional bool generateCert = 0, - 8: optional string storageId; -} - -/** - * A structure holding the experiment metadata and its child models. - * - * userName: - * The user name of the targeted gateway end user on whose behalf the experiment is being created. - * the associated gateway identity can only be inferred from the security hand-shake so as to avoid - * authorized Airavata Clients mimicking an unauthorized request. If a gateway is not registered with - * Airavata, an authorization exception is thrown. - * - * experimentName: - * The name of the experiment as defined by the user. The name need not be unique as uniqueness is enforced - * by the generated experiment id. - * - * experimentDescription: - * The verbose description of the experiment. This is an optional parameter. -*/ - -struct ExperimentModel { - 1: required string experimentId = airavata_commons.DEFAULT_ID, - 2: required string projectId, - 3: required string gatewayId, - 4: required ExperimentType experimentType = ExperimentType.SINGLE_APPLICATION, - 5: required string userName, - 6: required string experimentName, - 7: optional i64 creationTime, - 8: optional string description, - 9: optional string executionId, - 10: optional string gatewayExecutionId, - 11: optional bool enableEmailNotification, - 12: optional list<string> emailAddresses, - 13: optional UserConfigurationDataModel userConfigurationData, - 14: optional list<application_io_models.InputDataObjectType> experimentInputs, - 15: optional list<application_io_models.OutputDataObjectType> experimentOutputs, - 16: optional status_models.ExperimentStatus experimentStatus, - 17: optional list<airavata_commons.ErrorModel> errors, - 18: optional list<process_model.ProcessModel> processes -} - -struct ExperimentSummaryModel { - 1: required string experimentId, - 2: required string projectId, - 3: required string gatewayId, - 4: optional i64 creationTime, - 5: required string userName, - 6: required string name, - 7: optional string description, - 8: optional string executionId, - 9: optional string resourceHostId, - 10: optional string experimentStatus, - 12: optional i64 statusUpdateTime -} - -struct ExperimentStatistics { - 1: required i32 allExperimentCount, - 2: required i32 completedExperimentCount, - 3: optional i32 cancelledExperimentCount, - 4: required i32 failedExperimentCount, - 5: required i32 createdExperimentCount, - 6: required i32 runningExperimentCount, - 7: required list<ExperimentSummaryModel> allExperiments, - 8: optional list<ExperimentSummaryModel> completedExperiments, - 9: optional list<ExperimentSummaryModel> failedExperiments, - 10: optional list<ExperimentSummaryModel> cancelledExperiments, - 11: optional list<ExperimentSummaryModel> createdExperiments, - 12: optional list<ExperimentSummaryModel> runningExperiments, -} http://git-wip-us.apache.org/repos/asf/airavata/blob/6c5e9954/thrift-interface-descriptions/airavata-api/gateway_resource_profile_model.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/airavata-api/gateway_resource_profile_model.thrift b/thrift-interface-descriptions/airavata-api/gateway_resource_profile_model.thrift deleted file mode 100644 index de76c7d..0000000 --- a/thrift-interface-descriptions/airavata-api/gateway_resource_profile_model.thrift +++ /dev/null @@ -1,100 +0,0 @@ -/* - * 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. - * - */ - -namespace java org.apache.airavata.model.appcatalog.gatewayprofile -namespace php Airavata.Model.AppCatalog.GatewayProfile -namespace cpp apache.airavata.model.appcatalog.gatewayprofile -namespace py apache.airavata.model.appcatalog.gatewayprofile - -include "compute_resource_model.thrift" -include "data_movement_models.thrift" - -/** - * Gateway specific preferences for a Computer Resource - * - * computeResourceId: - * Corelate the preference to a compute resource. - * - * overridebyAiravata: - * If turned true, Airavata will override the preferences of better alternatives exist. - * - * loginUserName: - * If turned true, Airavata will override the preferences of better alternatives exist. - * - * preferredJobSubmissionProtocol: - * For resources with multiple job submission protocols, the gateway can pick a preferred option. - * - * preferredDataMovementProtocol: - * For resources with multiple data movement protocols, the gateway can pick a preferred option. - * - * preferredBatchQueue: - * Gateways can choose a defualt batch queue based on average job dimention, reservations or other metrics. - * - * scratchLocation: - * Path to the local scratch space on a HPC cluster. Typically used to create working directory for job execution. - * - * allocationProjectNumber: - * Typically used on HPC machines to charge computing usage to a account number. For instance, on XSEDE once an - * allocation is approved, an allocation number is assigned. Before passing this number with job submittions, the - * account to be used has to be added to the allocation. - * - * resourceSpecificCredentialStoreToken: - * Resource specific credential store token. If this token is specified, then it is superceeded by the gateway's - * default credential store. - * -*/ -struct ComputeResourcePreference { - 1: required string computeResourceId, - 2: required bool overridebyAiravata = 1, - 3: optional string loginUserName, - 4: optional compute_resource_model.JobSubmissionProtocol preferredJobSubmissionProtocol, - 5: optional data_movement_models.DataMovementProtocol preferredDataMovementProtocol, - 6: optional string preferredBatchQueue, - 7: optional string scratchLocation, - 8: optional string allocationProjectNumber, - 9: optional string resourceSpecificCredentialStoreToken -} - -struct StoragePreference { - 1: required string storageResourceId, - 2: optional string loginUserName, - 3: optional string fileSystemRootLocation, - 4: optional string resourceSpecificCredentialStoreToken -} - -/** - * Gateway Resource Profile - * - * gatewayID: - * Unique identifier for the gateway assigned by Airavata. Corelate this to Airavata Admin API Gateway Registration. - * - * credentialStoreToken: - * Gateway's defualt credential store token. - * - * computeResourcePreferences: - * List of resource preferences for each of the registered compute resources. - * -*/ -struct GatewayResourceProfile { - 1: required string gatewayID, - 2: optional string credentialStoreToken, - 3: optional list<ComputeResourcePreference> computeResourcePreferences - 4: optional list<StoragePreference> storagePreferences -} http://git-wip-us.apache.org/repos/asf/airavata/blob/6c5e9954/thrift-interface-descriptions/airavata-api/job_model.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/airavata-api/job_model.thrift b/thrift-interface-descriptions/airavata-api/job_model.thrift deleted file mode 100644 index f908c5e..0000000 --- a/thrift-interface-descriptions/airavata-api/job_model.thrift +++ /dev/null @@ -1,42 +0,0 @@ -/* - * 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. - * - */ - - include "status_models.thrift" - - namespace java org.apache.airavata.model.job - namespace php Airavata.Model.Job - namespace cpp apache.airavata.model.job - namespace py apache.airavata.model.job - -struct JobModel { - 1: required string jobId, - 2: required string taskId, - 3: required string processId, - 4: required string jobDescription, - 5: optional i64 creationTime, - 6: optional status_models.JobStatus jobStatus, - 7: optional string computeResourceConsumed, - 8: optional string jobName, - 9: optional string workingDir, - 10: optional string stdOut, - 11: optional string stdErr, - 12: optional i32 exitCode -} - http://git-wip-us.apache.org/repos/asf/airavata/blob/6c5e9954/thrift-interface-descriptions/airavata-api/messaging_events.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/airavata-api/messaging_events.thrift b/thrift-interface-descriptions/airavata-api/messaging_events.thrift deleted file mode 100644 index eed07da..0000000 --- a/thrift-interface-descriptions/airavata-api/messaging_events.thrift +++ /dev/null @@ -1,147 +0,0 @@ -/* - * 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. - * - */ - -include "status_models.thrift" -include "application_io_models.thrift" -include "airavata_commons.thrift" - -namespace java org.apache.airavata.model.messaging.event -namespace php Airavata.Model.Messaging.Event -namespace cpp apache.airavata.model.messaging.event -namespace py apache.airavata.model.messaging.event - -enum MessageLevel { - INFO, - DEBUG, - ERROR, - ACK -} - -enum MessageType { - EXPERIMENT, - TASK, - PROCESS, - JOB, - LAUNCHPROCESS, - TERMINATEPROCESS, - PROCESSOUTPUT -} - -struct ExperimentStatusChangeEvent { - 1: required status_models.ExperimentState state; - 2: required string experimentId; - 3: required string gatewayId; -} - -struct ProcessIdentifier { - 1: required string processId; - 2: required string experimentId; - 3: required string gatewayId; -} - -struct TaskIdentifier { - 1: required string taskId; - 2: required string processId; - 3: required string experimentId; - 4: required string gatewayId; -} - -struct TaskStatusChangeEvent { - 1: required status_models.TaskState state; - 2: required TaskIdentifier taskIdentity; -} - -struct TaskStatusChangeRequestEvent { - 1: required status_models.TaskState state; - 2: required TaskIdentifier taskIdentity; -} - -struct ProcessStatusChangeEvent { - 1: required status_models.ProcessState state; - 2: required ProcessIdentifier processIdentity; -} - -struct ProcessStatusChangeRequestEvent { - 1: required status_models.ProcessState state; - 2: required ProcessIdentifier processIdentity; -} - -struct TaskOutputChangeEvent { - 1: required list<application_io_models.OutputDataObjectType> output; - 2: required TaskIdentifier taskIdentity; -} - -struct JobIdentifier { - 1: required string jobId; - 2: required string taskId; - 3: required string processId; - 4: required string experimentId; - 5: required string gatewayId; -} - -//struct JobMonitor { -// 1: optional string username; -// 2: optional i64 jobStartedTime; -// 3: optional i64 lastMonitoredTime; -// 4: optional string hostId; -// 5: optional map<string, string> parameters; -// 6: optional string jobName; -// 7: optional i32 failedCount = 0; -// // FIXME - Job execution context -// //8: -// } - -struct ProcessSubmitEvent{ - 1: required string processId, - 2: required string gatewayId, - 3: required string experimentId, - 4: required string tokenId -} - -struct ProcessTerminateEvent{ - 1: required string processId, - 2: required string gatewayId, - 3: required string tokenId -} - -struct JobStatusChangeEvent { - 1: required status_models.JobState state; - 2: required JobIdentifier jobIdentity; -} - -struct JobStatusChangeRequestEvent { - 1: required status_models.JobState state; - 2: required JobIdentifier jobIdentity; -} - -struct Message { - 1: required binary event; - 2: required string messageId = airavata_commons.DEFAULT_ID, - 3: required MessageType messageType; - 4: optional i64 updatedTime; - 5: optional MessageLevel messageLevel; -} - - - - - - - http://git-wip-us.apache.org/repos/asf/airavata/blob/6c5e9954/thrift-interface-descriptions/airavata-api/process_model.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/airavata-api/process_model.thrift b/thrift-interface-descriptions/airavata-api/process_model.thrift deleted file mode 100644 index 0656e5b..0000000 --- a/thrift-interface-descriptions/airavata-api/process_model.thrift +++ /dev/null @@ -1,64 +0,0 @@ -/* - * 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. - * - */ - -include "airavata_commons.thrift" -include "status_models.thrift" -include "task_model.thrift" -include "application_io_models.thrift" -include "scheduling_model.thrift" - -namespace java org.apache.airavata.model.process -namespace php Airavata.Model.Process -namespace cpp apache.airavata.model.process -namespace py apache.airavata.model.process - - -/** - * ProcessModel: A structure holding the process details. The infromation is derived based on user provided - * configuration data or system inferred information from scheduling and QoS parameters. - * - * processDetail: - * A friendly description of the process, usally used to communicate information to users. - * - * -*/ -struct ProcessModel { - 1: required string processId = airavata_commons.DEFAULT_ID, - 2: required string experimentId, - 3: optional i64 creationTime, - 4: optional i64 lastUpdateTime, - 5: optional status_models.ProcessStatus processStatus, - 6: optional string processDetail, - 7: optional string applicationInterfaceId, - 8: optional string applicationDeploymentId, - 9: optional string computeResourceId, - 10: optional list<application_io_models.InputDataObjectType> processInputs, - 11: optional list<application_io_models.OutputDataObjectType> processOutputs, - 12: optional scheduling_model.ComputationalResourceSchedulingModel resourceSchedule, - 13: optional list<task_model.TaskModel> tasks, - 14: optional string taskDag, - 15: optional airavata_commons.ErrorModel processError, - 16: optional string gatewayExecutionId, - 17: optional bool enableEmailNotification, - 18: optional list<string> emailAddresses, - 19: optional string storageResourceId, - 20: optional string userDn, - 21: optional bool generateCert = 0 -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/6c5e9954/thrift-interface-descriptions/airavata-api/replica_catalog_models.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/airavata-api/replica_catalog_models.thrift b/thrift-interface-descriptions/airavata-api/replica_catalog_models.thrift deleted file mode 100644 index 0d44941..0000000 --- a/thrift-interface-descriptions/airavata-api/replica_catalog_models.thrift +++ /dev/null @@ -1,62 +0,0 @@ -/* - * 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. - * - */ - - namespace java org.apache.airavata.model.data.resource - namespace php Airavata.Model.Data.Resource - namespace cpp apache.airavata.model.data.resource - namespace py apache.airavata.model.data.resource - -enum ReplicaLocationCategory { - GATEWAY_DATA_STORE, - COMPUTE_RESOURCE, - LONG_TERM_STORAGE_RESOURCE, - OTHER -} - -enum ReplicaPersistentType { - TRANSIENT, - PERSISTENT -} - -struct DataResourceModel { - 1: optional string resourceId, - 2: optional string gatewayId, - 3: optional string resourceName, - 4: optional string resourceDescription, - 5: optional string ownerName, - 6: optional i32 resourceSize, - 7: optional i64 creationTime, - 8: optional i64 lastModifiedTime, - 9: optional map<string, string> resourceMetadata, - 10: optional list<DataReplicaLocationModel> dataReplicaLocations -} - -struct DataReplicaLocationModel { - 1: optional string replicaId, - 2: optional string resourceId, - 3: optional string replicaName, - 4: optional string replicaDescription, - 5: optional i64 creationTime, - 6: optional i64 lastModifiedTime, - 7: optional ReplicaLocationCategory replicaLocationCategory, - 8: optional ReplicaPersistentType replicaPersistentType, - 9: optional list<string> dataLocations, - 10: optional map<string, string> replicaMetadata -} http://git-wip-us.apache.org/repos/asf/airavata/blob/6c5e9954/thrift-interface-descriptions/airavata-api/scheduling_model.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/airavata-api/scheduling_model.thrift b/thrift-interface-descriptions/airavata-api/scheduling_model.thrift deleted file mode 100644 index 61d33a8..0000000 --- a/thrift-interface-descriptions/airavata-api/scheduling_model.thrift +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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. - * - */ - -namespace java org.apache.airavata.model.scheduling -namespace php Airavata.Model.Scheduling -namespace cpp apache.airavata.model.scheduling -namespace py apache.airavata.model.scheduling - -/** - * ComputationalResourceSchedulingModel: - * - * -*/ -struct ComputationalResourceSchedulingModel { - 1: optional string resourceHostId, - 2: optional i32 totalCPUCount, - 3: optional i32 nodeCount, - 4: optional i32 numberOfThreads, - 5: optional string queueName, - 6: optional i32 wallTimeLimit, - 7: optional i32 totalPhysicalMemory, - 8: optional string chessisNumber, - 9: optional string staticWorkingDir -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/6c5e9954/thrift-interface-descriptions/airavata-api/security_model.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/airavata-api/security_model.thrift b/thrift-interface-descriptions/airavata-api/security_model.thrift deleted file mode 100644 index bda9554..0000000 --- a/thrift-interface-descriptions/airavata-api/security_model.thrift +++ /dev/null @@ -1,35 +0,0 @@ -/* - * 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. - * - */ - -namespace java org.apache.airavata.model.security -namespace php Airavata.Model.Security -namespace cpp apache.airavata.model.security -namespace py apache.airavata.model.security - -/* - * This file describes the definitions of the security model which encapsulates the information that needs to be passed - to the API methods in order to authenticate and authorize the users. - * -*/ - -struct AuthzToken { - 1: required string accessToken, - 2: optional map<string, string> claimsMap -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/6c5e9954/thrift-interface-descriptions/airavata-api/status_models.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/airavata-api/status_models.thrift b/thrift-interface-descriptions/airavata-api/status_models.thrift deleted file mode 100644 index b3838ee..0000000 --- a/thrift-interface-descriptions/airavata-api/status_models.thrift +++ /dev/null @@ -1,109 +0,0 @@ -/* - * 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. - * - */ - -namespace java org.apache.airavata.model.status -namespace php Airavata.Model.Status -namespace cpp apache.airavata.model.status -namespace py apache.airavata.model.status - -enum ExperimentState { - CREATED, - VALIDATED, - SCHEDULED, - LAUNCHED, - EXECUTING, - CANCELING, - CANCELED, - COMPLETED, - FAILED -} - -enum TaskState { - CREATED, - EXECUTING, - COMPLETED, - FAILED, - CANCELED -} - -enum ProcessState { - CREATED, - VALIDATED, - STARTED, - PRE_PROCESSING, - CONFIGURING_WORKSPACE, - INPUT_DATA_STAGING, - EXECUTING, - MONITORING, - OUTPUT_DATA_STAGING, - POST_PROCESSING, - COMPLETED, - FAILED, - CANCELLING, - CANCELED -} - -enum JobState { - SUBMITTED, - QUEUED, - ACTIVE, - COMPLETE, - CANCELED, - FAILED, - SUSPENDED, - UNKNOWN -} - -/** - * Status: A generic status object. - * - * state: - * State . - * - * timeOfStateChange: - * time the status was last updated. - * - * reason: - * User friendly reason on how the state is inferred. - * -*/ -struct ExperimentStatus { - 1: required ExperimentState state, - 2: optional i64 timeOfStateChange, - 3: optional string reason -} - -struct ProcessStatus { - 1: required ProcessState state, - 2: optional i64 timeOfStateChange, - 3: optional string reason -} - -struct TaskStatus { - 1: required TaskState state, - 2: optional i64 timeOfStateChange, - 3: optional string reason -} - -struct JobStatus { - 1: required JobState jobState, - 2: optional i64 timeOfStateChange, - 3: optional string reason -} http://git-wip-us.apache.org/repos/asf/airavata/blob/6c5e9954/thrift-interface-descriptions/airavata-api/storage_resource_model.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/airavata-api/storage_resource_model.thrift b/thrift-interface-descriptions/airavata-api/storage_resource_model.thrift deleted file mode 100644 index 1063f17..0000000 --- a/thrift-interface-descriptions/airavata-api/storage_resource_model.thrift +++ /dev/null @@ -1,52 +0,0 @@ -/* - * 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. - * - */ - -include "airavata_commons.thrift" -include "data_movement_models.thrift" - -namespace java org.apache.airavata.model.appcatalog.storageresource -namespace php Airavata.Model.AppCatalog.StorageResource -namespace cpp apache.airavata.model.appcatalog.storageresource -namespace py apache.airavata.model.appcatalog.storageresource - -/** - * Storage Resource Description - * - * storageResourceId: Airavata Internal Unique Identifier to distinguish Compute Resource. - * - * hostName: - * Fully Qualified Host Name. - * - * storageResourceDescription: - * A user friendly description of the resource. - * - * - * DataMovementProtocol: - * Option to specify a prefered data movement mechanism of the available options. - * - * -*/ -struct StorageResourceDescription { - 1: required string storageResourceId = airavata_commons.DEFAULT_ID, - 2: required string hostName, - 3: optional string storageResourceDescription, - 4: optional bool enabled, - 5: optional list<data_movement_models.DataMovementInterface> dataMovementInterfaces, -} http://git-wip-us.apache.org/repos/asf/airavata/blob/6c5e9954/thrift-interface-descriptions/airavata-api/task_model.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/airavata-api/task_model.thrift b/thrift-interface-descriptions/airavata-api/task_model.thrift deleted file mode 100644 index f90e0e1..0000000 --- a/thrift-interface-descriptions/airavata-api/task_model.thrift +++ /dev/null @@ -1,109 +0,0 @@ -/* - * 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. - * - */ - -include "airavata_commons.thrift" -include "status_models.thrift" -include "compute_resource_model.thrift" -include "data_movement_models.thrift" -include "application_io_models.thrift" -include "job_model.thrift" - -namespace java org.apache.airavata.model.task -namespace php Airavata.Model.Task -namespace cpp apache.airavata.model.task -namespace py apache.airavata.model.task - -/** - * TaskTypes: An enumerated list of TaskTypes. Task being generic, the task type will provide the concrete interpretation. - * -*/ -enum TaskTypes { - ENV_SETUP, - DATA_STAGING, - JOB_SUBMISSION, - ENV_CLEANUP, - MONITORING, - OUTPUT_FETCHING -} - -/** - * TaskModel: A structure holding the generic task details. - * - * taskDetail: - * A friendly description of the task, usally used to communicate information to users. - * - * subTaskModel: - * A generic byte object for the Task developer to store internal serialized data into registry catalogs. -*/ -struct TaskModel { - 1: required string taskId = airavata_commons.DEFAULT_ID, - 2: required TaskTypes taskType, - 3: required string parentProcessId, - 4: required i64 creationTime, - 5: required i64 lastUpdateTime, - 6: required status_models.TaskStatus taskStatus, - 7: optional string taskDetail, - 8: optional binary subTaskModel, - 9: optional airavata_commons.ErrorModel taskError, - 10: optional list<job_model.JobModel> jobs -} - -/** - * DataStagingTaskModel: A structure holding the data staging task details. - * - * Source and Destination locations includes standard representation of protocol, host, port and path - * A friendly description of the task, usally used to communicate information to users. - * -*/ - -enum DataStageType { - INPUT, - OUPUT - -} -struct DataStagingTaskModel { - 1: required string source, - 2: required string destination, - 3: required DataStageType type, - 4: optional i64 transferStartTime, - 5: optional i64 transferEndTime, - 6: optional string transferRate, - 7: optional application_io_models.InputDataObjectType processInput, - 8: optional application_io_models.OutputDataObjectType processOutput -} - -/** -* EnvironmentSetupTaskModel: A structure holding the environment creation task details -**/ -struct EnvironmentSetupTaskModel { - 1: required string location, - 2: required data_movement_models.SecurityProtocol protocol -} - - -struct JobSubmissionTaskModel { - 1: required compute_resource_model.JobSubmissionProtocol jobSubmissionProtocol, - 2: required compute_resource_model.MonitorMode monitorMode, - 3: optional i32 wallTime -} - -struct MonitorTaskModel { - 1: required compute_resource_model.MonitorMode monitorMode -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata/blob/6c5e9954/thrift-interface-descriptions/airavata-api/workflow_api.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/airavata-api/workflow_api.thrift b/thrift-interface-descriptions/airavata-api/workflow_api.thrift deleted file mode 100644 index 064f128..0000000 --- a/thrift-interface-descriptions/airavata-api/workflow_api.thrift +++ /dev/null @@ -1,82 +0,0 @@ -/* - * 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. - * -*/ - -/** - * Application Programming Interface definition for Apache Airavata Services. - * this parent thrift file is contains all service interfaces. The data models are - * described in respective thrift files. -*/ - -include "airavata_errors.thrift" -include "airavata_data_models.thrift" -include "experiment_model.thrift" -include "workspace_model.thrift" -include "compute_resource_model.thrift" -include "application_deployment_model.thrift" -include "application_interface_model.thrift" -include "workflow_data_model.thrift" - -namespace java org.apache.airavata.api.workflow -namespace php Airavata.API.Workflow -namespace cpp airavata.api.workflow -namespace perl AiravataWorkflowAPI -namespace py apache.airavata.api.workflow -namespace js AiravataWorkflowAPI - -const string AIRAVATA_API_VERSION = "0.15.0" - -service Workflow { - - list<string> getAllWorkflows() - throws (1: airavata_errors.InvalidRequestException ire, - 2: airavata_errors.AiravataClientException ace, - 3: airavata_errors.AiravataSystemException ase) - - workflow_data_model.Workflow getWorkflow (1: required string workflowTemplateId) - throws (1: airavata_errors.InvalidRequestException ire, - 2: airavata_errors.AiravataClientException ace, - 3: airavata_errors.AiravataSystemException ase) - - void deleteWorkflow (1: required string workflowTemplateId) - throws (1: airavata_errors.InvalidRequestException ire, - 2: airavata_errors.AiravataClientException ace, - 3: airavata_errors.AiravataSystemException ase) - - string registerWorkflow(1: required workflow_data_model.Workflow workflow) - throws (1: airavata_errors.InvalidRequestException ire, - 2: airavata_errors.AiravataClientException ace, - 3: airavata_errors.AiravataSystemException ase) - - void updateWorkflow (1: required string workflowTemplateId, 2: required workflow_data_model.Workflow workflow) - throws (1: airavata_errors.InvalidRequestException ire, - 2: airavata_errors.AiravataClientException ace, - 3: airavata_errors.AiravataSystemException ase) - - string getWorkflowTemplateId (1: required string workflowName) - throws (1: airavata_errors.InvalidRequestException ire, - 2: airavata_errors.AiravataClientException ace, - 3: airavata_errors.AiravataSystemException ase) - - bool isWorkflowExistWithName(1: required string workflowName) - throws (1: airavata_errors.InvalidRequestException ire, - 2: airavata_errors.AiravataClientException ace, - 3: airavata_errors.AiravataSystemException ase) - } - http://git-wip-us.apache.org/repos/asf/airavata/blob/6c5e9954/thrift-interface-descriptions/airavata-api/workflow_data_model.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/airavata-api/workflow_data_model.thrift b/thrift-interface-descriptions/airavata-api/workflow_data_model.thrift deleted file mode 100644 index 146bbd0..0000000 --- a/thrift-interface-descriptions/airavata-api/workflow_data_model.thrift +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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. - * - */ - - -namespace java org.apache.airavata.model -namespace php Airavata.Model -namespace py apache.airavata.model.workflow - -include "application_io_models.thrift" -include "airavata_commons.thrift" - -/* - * This file describes the definitions of the Airavata Execution Data Structures. Each of the - * language specific Airavata Client SDK's will translate this neutral data model into an - * appropriate form for passing to the Airavata Server Execution API Calls. -*/ - - -struct Workflow { - 1: required string templateId = airavata_commons.DEFAULT_ID, - 2: required string name, - 3: optional string graph, - 4: optional binary image, - 5: optional list<application_io_models.InputDataObjectType> workflowInputs, - 6: optional list<application_io_models.OutputDataObjectType> workflowOutputs -} http://git-wip-us.apache.org/repos/asf/airavata/blob/6c5e9954/thrift-interface-descriptions/airavata-api/workspace_model.thrift ---------------------------------------------------------------------- diff --git a/thrift-interface-descriptions/airavata-api/workspace_model.thrift b/thrift-interface-descriptions/airavata-api/workspace_model.thrift deleted file mode 100644 index b31f1fd..0000000 --- a/thrift-interface-descriptions/airavata-api/workspace_model.thrift +++ /dev/null @@ -1,63 +0,0 @@ -/* - * 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. - * - */ - -include "airavata_commons.thrift" - -namespace java org.apache.airavata.model.workspace -namespace php Airavata.Model.Workspace -namespace cpp apache.airavata.model.workspace -namespace py apache.airavata.model.workspace - -/* - * This file describes the definitions of the Airavata Workspace. The workspace is a container for all user data - * organized as Projects and Experiment within them. - * - * The Experiment data model is divided into 6 categories: experiment metadata, experiment configuration - * data, experiment generated data, experiment monitoring data, provenance data and error handling data. - * - * -*/ - -struct Group { - 1: required string groupName, - 2: optional string description -} - -struct Project { - 1: required string projectID = airavata_commons.DEFAULT_ID, - 2: required string owner, - 3: required string name, - 4: optional string description - 5: optional i64 creationTime - 6: optional list<string> sharedUsers, - 7: optional list<string> sharedGroups -} - -struct User { - 1: required string userName, - 2: optional list<Group> groupList -} - -struct Gateway { - 1: required string gatewayId, - 2: optional string gatewayName, - 3: optional string domain, - 4: optional string emailAddress -} \ No newline at end of file
