You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sm...@apache.org on 2016/09/10 02:38:56 UTC
airavata git commit: modularizing app catalog
Repository: airavata
Updated Branches:
refs/heads/api-multiplexing 79bdeb123 -> f56d67775
modularizing app catalog
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/f56d6777
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/f56d6777
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/f56d6777
Branch: refs/heads/api-multiplexing
Commit: f56d6777526d1c17939df7d756acb1131a0ffdc6
Parents: 79bdeb1
Author: Suresh Marru <sm...@apache.org>
Authored: Fri Sep 9 22:38:27 2016 -0400
Committer: Suresh Marru <sm...@apache.org>
Committed: Fri Sep 9 22:38:31 2016 -0400
----------------------------------------------------------------------
.../airavata-apis/airavata_api.thrift | 549 -------------------
.../airavata-apis/app_catalog.thrift | 498 +++++++++++++++++
.../airavata-apis/credential_store.thrift | 175 ++++++
.../airavata-apis/resource_catalog.thrift | 0
4 files changed, 673 insertions(+), 549 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/f56d6777/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/airavata-apis/airavata_api.thrift b/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
index a9b36d6..4c45acd 100644
--- a/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
+++ b/thrift-interface-descriptions/airavata-apis/airavata_api.thrift
@@ -255,129 +255,6 @@ service Airavata {
/**
- * Generate and Register SSH Key Pair with Airavata Credential Store.
- *
- * @param gatewayId
- * The identifier for the requested Gateway.
- *
- * @param userName
- * The User for which the credential should be registered. For community accounts, this user is the name of the
- * community user name. For computational resources, this user name need not be the same user name on resoruces.
- *
- * @return airavataCredStoreToken
- * An SSH Key pair is generated and stored in the credential store and associated with users or community account
- * belonging to a Gateway.
- *
- **/
- string generateAndRegisterSSHKeys (1: required security_model.AuthzToken authzToken,
- 2: required string gatewayId,
- 3: required string userName)
- throws (1: airavata_errors.InvalidRequestException ire,
- 2: airavata_errors.AiravataClientException ace,
- 3: airavata_errors.AiravataSystemException ase)
-
-
- /**
- * Generate and Register Username PWD Pair with Airavata Credential Store.
- *
- * @param gatewayId
- * The identifier for the requested Gateway.
- *
- * @param portalUserName
- * The User for which the credential should be registered. For community accounts, this user is the name of the
- * community user name. For computational resources, this user name need not be the same user name on resoruces.
- *
- * @param loginUserName
- *
- * @param password
- *
- * @return airavataCredStoreToken
- * An SSH Key pair is generated and stored in the credential store and associated with users or community account
- * belonging to a Gateway.
- *
- **/
- string registerPwdCredential (1: required security_model.AuthzToken authzToken,
- 2: required string gatewayId,
- 3: required string portalUserName,
- 4: required string loginUserName,
- 5: required string password,
- 6: required string description)
- throws (1: airavata_errors.InvalidRequestException ire,
- 2: airavata_errors.AiravataClientException ace,
- 3: airavata_errors.AiravataSystemException ase)
-
- /**
- * Get a Public Key by Providing the Token
- *
- * @param CredStoreToken
- * Credential Store Token which you want to find the Public Key for.
- *
- * @param gatewayId
- * This is the unique identifier of your gateway where the token and public key was generated from.
- *
- * @return publicKey
- *
- **/
- string getSSHPubKey (1: required security_model.AuthzToken authzToken,
- 2: required string airavataCredStoreToken,
- 3: required string gatewayId)
- throws (1: airavata_errors.InvalidRequestException ire,
- 2: airavata_errors.AiravataClientException ace,
- 3: airavata_errors.AiravataSystemException ase)
-
- /**
- *
- * Get all Public Keys of the Gateway
- *
- * @param CredStoreToken
- * Credential Store Token which you want to find the Public Key for.
- *
- * @param gatewayId
- * This is the unique identifier of your gateway where the token and public key was generated from.
- *
- * @return publicKey
- *
- **/
- map<string, string> getAllGatewaySSHPubKeys (1: required security_model.AuthzToken authzToken,
- 2: required string gatewayId)
- throws (1: airavata_errors.InvalidRequestException ire,
- 2: airavata_errors.AiravataClientException ace,
- 3: airavata_errors.AiravataSystemException ase)
-
-
- map<string, string> getAllGatewayPWDCredentials (1: required security_model.AuthzToken authzToken,
- 2: required string gatewayId)
- throws (1: airavata_errors.InvalidRequestException ire,
- 2: airavata_errors.AiravataClientException ace,
- 3: airavata_errors.AiravataSystemException ase)
-
- /**
- *
- * Delete a Gateway
- *
- * @param gatewayId
- * The gateway Id of the Gateway to be deleted.
- *
- * @return boolean
- * Boolean identifier for the success or failure of the deletion operation.
- *
- **/
- bool deleteSSHPubKey (1: required security_model.AuthzToken authzToken,
- 2: required string airavataCredStoreToken,
- 3: required string gatewayId)
- throws (1: airavata_errors.InvalidRequestException ire,
- 2: airavata_errors.AiravataClientException ace,
- 3: airavata_errors.AiravataSystemException ase)
-
-
- bool deletePWDCredential (1: required security_model.AuthzToken authzToken,
- 2: required string airavataCredStoreToken,
- 3: required string gatewayId)
- throws (1: airavata_errors.InvalidRequestException ire,
- 2: airavata_errors.AiravataClientException ace,
- 3: airavata_errors.AiravataSystemException ase)
-
- /**
*
* Creates a Project with basic metadata.
* A Project is a container of experiments.
@@ -1125,433 +1002,7 @@ service Airavata {
4: airavata_errors.AiravataSystemException ase,
5: airavata_errors.AuthorizationException ae)
-/*
- *
- * API definitions for App Catalog related operations
- *
-*/
-
-/*
- *
- * Application Module
- * A specific computational application. Many applications, particularly scientific applications
- * are really a suite of applications or encompass of an ecosystem. For instance, Amber is referred to dozens of binaries.
- * WRF is referred for an ecosystem of applications. In this context, we refer to module as a single binary.
- *
- * Note: A module has to be defined before a deployment can be registered.
- *
-*/
-
- /**
- *
- * Register a Application Module.
- *
- * @gatewayId
- * ID of the gateway which is registering the new Application Module.
- *
- * @param applicationModule
- * Application Module Object created from the datamodel.
- *
- * @return appModuleId
- * Returns the server-side generated airavata appModule globally unique identifier.
- *
- */
- string registerApplicationModule(1: required security_model.AuthzToken authzToken,
- 2: required string gatewayId,
- 3: required application_deployment_model.ApplicationModule applicationModule)
- throws (1: airavata_errors.InvalidRequestException ire,
- 2: airavata_errors.AiravataClientException ace,
- 3: airavata_errors.AiravataSystemException ase,
- 4: airavata_errors.AuthorizationException ae)
-
- /**
- *
- * Fetch a Application Module.
- *
- * @param appModuleId
- * The unique identifier of the application module required
- *
- * @return applicationModule
- * Returns an Application Module Object.
- *
- */
- application_deployment_model.ApplicationModule getApplicationModule(1: required security_model.AuthzToken authzToken,
- 2: required string appModuleId)
- throws (1: airavata_errors.InvalidRequestException ire,
- 2: airavata_errors.AiravataClientException ace,
- 3: airavata_errors.AiravataSystemException ase,
- 4: airavata_errors.AuthorizationException ae)
-
- /**
- *
- * Update a Application Module.
- *
- * @param appModuleId
- * The identifier for the requested application module to be updated.
- *
- * @param applicationModule
- * Application Module Object created from the datamodel.
- *
- * @return status
- * Returns a success/failure of the update.
- *
- */
- bool updateApplicationModule(1: required security_model.AuthzToken authzToken,
- 2: required string appModuleId,
- 3: required application_deployment_model.ApplicationModule applicationModule)
- throws (1: airavata_errors.InvalidRequestException ire,
- 2: airavata_errors.AiravataClientException ace,
- 3: airavata_errors.AiravataSystemException ase,
- 4: airavata_errors.AuthorizationException ae)
-
- /**
- *
- * Fetch all Application Module Descriptions.
- *
- * @param gatewayId
- * ID of the gateway which need to list all available application deployment documentation.
- *
- * @return list
- * Returns the list of all Application Module Objects.
- *
- */
- list<application_deployment_model.ApplicationModule> getAllAppModules (1: required security_model.AuthzToken authzToken,
- 2: required string gatewayId)
- throws (1: airavata_errors.InvalidRequestException ire,
- 2: airavata_errors.AiravataClientException ace,
- 3: airavata_errors.AiravataSystemException ase,
- 4: airavata_errors.AuthorizationException ae)
-
- /**
- *
- * Delete an Application Module.
- *
- * @param appModuleId
- * The identifier of the Application Module to be deleted.
- *
- * @return status
- * Returns a success/failure of the deletion.
- *
- */
- bool deleteApplicationModule(1: required security_model.AuthzToken authzToken,
- 2: required string appModuleId)
- throws (1: airavata_errors.InvalidRequestException ire,
- 2: airavata_errors.AiravataClientException ace,
- 3: airavata_errors.AiravataSystemException ase,
- 4: airavata_errors.AuthorizationException ae)
-
-/*
- *
- * Application Deployment
- * Registers a deployment of an Application Module on a Compute Resource.
- *
-*/
-
- /**
- *
- * Register an Application Deployment.
- *
- * @param gatewayId
- * ID of the gateway which is registering the new Application Deployment.
- *
- * @param applicationDeployment
- * Application Module Object created from the datamodel.
- *
- * @return appDeploymentId
- * Returns a server-side generated airavata appDeployment globally unique identifier.
- *
- */
- string registerApplicationDeployment(1: required security_model.AuthzToken authzToken,
- 2: required string gatewayId,
- 3: required application_deployment_model.ApplicationDeploymentDescription applicationDeployment)
- throws (1: airavata_errors.InvalidRequestException ire,
- 2: airavata_errors.AiravataClientException ace,
- 3: airavata_errors.AiravataSystemException ase,
- 4: airavata_errors.AuthorizationException ae)
-
- /**
- *
- * Fetch a Application Deployment.
- *
- * @param appDeploymentId
- * The identifier for the requested application module
- *
- * @return applicationDeployment
- * Returns a application Deployment Object.
- *
- */
- application_deployment_model.ApplicationDeploymentDescription getApplicationDeployment(1: required security_model.AuthzToken authzToken,
- 2: required string appDeploymentId)
- throws (1: airavata_errors.InvalidRequestException ire,
- 2: airavata_errors.AiravataClientException ace,
- 3: airavata_errors.AiravataSystemException ase,
- 4: airavata_errors.AuthorizationException ae)
-
- /**
- *
- * Update an Application Deployment.
- *
- * @param appDeploymentId
- * The identifier of the requested application deployment to be updated.
- *
- * @param appDeployment
- * Application Deployment Object created from the datamodel.
- *
- * @return status
- * Returns a success/failure of the update.
- *
- */
- bool updateApplicationDeployment(1: required security_model.AuthzToken authzToken,
- 2: required string appDeploymentId,
- 3: required application_deployment_model.ApplicationDeploymentDescription applicationDeployment)
- throws (1: airavata_errors.InvalidRequestException ire,
- 2: airavata_errors.AiravataClientException ace,
- 3: airavata_errors.AiravataSystemException ase,
- 4: airavata_errors.AuthorizationException ae)
-
- /**
- *
- * Delete an Application Deployment.
- *
- * @param appDeploymentId
- * The unique identifier of application deployment to be deleted.
- *
- * @return status
- * Returns a success/failure of the deletion.
- *
- */
- bool deleteApplicationDeployment(1: required security_model.AuthzToken authzToken,
- 2: required string appDeploymentId)
- throws (1: airavata_errors.InvalidRequestException ire,
- 2: airavata_errors.AiravataClientException ace,
- 3: airavata_errors.AiravataSystemException ase,
- 4: airavata_errors.AuthorizationException ae)
-
- /**
- *
- * Fetch all Application Deployment Descriptions.
- *
- * @param gatewayId
- * ID of the gateway which need to list all available application deployment documentation.
- *
- * @return list<applicationDeployment.
- * Returns the list of all application Deployment Objects.
- *
- */
- list<application_deployment_model.ApplicationDeploymentDescription> getAllApplicationDeployments(1: required security_model.AuthzToken authzToken,
- 2: required string gatewayId)
- throws (1: airavata_errors.InvalidRequestException ire,
- 2: airavata_errors.AiravataClientException ace,
- 3: airavata_errors.AiravataSystemException ase,
- 4: airavata_errors.AuthorizationException ae)
-
- /**
- * Fetch a list of Deployed Compute Hosts.
- *
- * @param appModuleId
- * The identifier for the requested application module
- *
- * @return list<string>
- * Returns a list of Deployed Resources.
- *
- */
- list<string> getAppModuleDeployedResources(1: required security_model.AuthzToken authzToken, 2: required string appModuleId)
- throws (1: airavata_errors.InvalidRequestException ire,
- 2: airavata_errors.AiravataClientException ace,
- 3: airavata_errors.AiravataSystemException ase,
- 4: airavata_errors.AuthorizationException ae)
-
-/*
- *
- * Application Interface
- *
-*/
-
- /**
- *
- * Register a Application Interface.
- *
- * @param applicationInterface
- * Application Module Object created from the datamodel.
- *
- * @return appInterfaceId
- * Returns a server-side generated airavata application interface globally unique identifier.
- *
- */
- string registerApplicationInterface(1: required security_model.AuthzToken authzToken, 2: required string gatewayId,
- 3: required application_interface_model.ApplicationInterfaceDescription applicationInterface)
- throws (1: airavata_errors.InvalidRequestException ire,
- 2: airavata_errors.AiravataClientException ace,
- 3: airavata_errors.AiravataSystemException ase,
- 4: airavata_errors.AuthorizationException ae)
-
- /**
- *
- * Clone an Application Interface.
- *
- * @gatewayId
- * The identifier for the gateway profile to be requested
- *
- * @param existingAppInterfaceID
- * Identifier of the existing Application interface you wich to clone.
- *
- * @param newApplicationName
- * Name for the new application interface.
- *
- * @return appInterfaceId
- * Returns a server-side generated globally unique identifier for the newly cloned application interface.
- *
- */
- string cloneApplicationInterface(1: required security_model.AuthzToken authzToken,
- 2: string existingAppInterfaceID,
- 3: string newApplicationName,
- 4: string gatewayId)
- throws (1: airavata_errors.InvalidRequestException ire,
- 2: airavata_errors.AiravataClientException ace,
- 3: airavata_errors.AiravataSystemException ase,
- 4: airavata_errors.AuthorizationException ae)
-
- /**
- *
- * Fetch an Application Interface.
- *
- * @param appInterfaceId
- * The identifier for the requested application interface.
- *
- * @return applicationInterface
- * Returns an application Interface Object.
- *
- */
- application_interface_model.ApplicationInterfaceDescription getApplicationInterface(1: required security_model.AuthzToken authzToken,
- 2: required string appInterfaceId)
- throws (1: airavata_errors.InvalidRequestException ire,
- 2: airavata_errors.AiravataClientException ace,
- 3: airavata_errors.AiravataSystemException ase,
- 4: airavata_errors.AuthorizationException ae)
-
- /**
- *
- * Update a Application Interface.
- *
- * @param appInterfaceId
- * The identifier of the requested application deployment to be updated.
- *
- * @param appInterface
- * Application Interface Object created from the datamodel.
- *
- * @return status
- * Returns a success/failure of the update.
- *
- */
- bool updateApplicationInterface(1: required security_model.AuthzToken authzToken,
- 2: required string appInterfaceId,
- 3: required application_interface_model.ApplicationInterfaceDescription applicationInterface)
- throws (1: airavata_errors.InvalidRequestException ire,
- 2: airavata_errors.AiravataClientException ace,
- 3: airavata_errors.AiravataSystemException ase,
- 4: airavata_errors.AuthorizationException ae)
- /**
- *
- * Delete an Application Interface.
- *
- * @param appInterfaceId
- * The identifier for the requested application interface to be deleted.
- *
- * @return status
- * Returns a success/failure of the deletion.
- *
- */
- bool deleteApplicationInterface(1: required security_model.AuthzToken authzToken, 2: required string appInterfaceId)
- throws (1: airavata_errors.InvalidRequestException ire,
- 2: airavata_errors.AiravataClientException ace,
- 3: airavata_errors.AiravataSystemException ase,
- 4: airavata_errors.AuthorizationException ae)
-
- /**
- *
- * Fetch name and ID of Application Interface documents.
- *
- *
- * @return map<applicationId, applicationInterfaceNames>
- * Returns a list of application interfaces with corresponsing ID's
- *
- */
- map<string, string> getAllApplicationInterfaceNames (1: required security_model.AuthzToken authzToken, 2: required string gatewayId)
- throws (1: airavata_errors.InvalidRequestException ire,
- 2: airavata_errors.AiravataClientException ace,
- 3: airavata_errors.AiravataSystemException ase,
- 4: airavata_errors.AuthorizationException ae)
-
- /**
- *
- * Fetch all Application Interface documents.
- *
- *
- * @return map<applicationId, applicationInterfaceNames>
- * Returns a list of application interfaces documents (Application Interface ID, name, description, Inputs and Outputs objects).
- *
- */
- list<application_interface_model.ApplicationInterfaceDescription> getAllApplicationInterfaces (1: required security_model.AuthzToken authzToken,
- 2: required string gatewayId)
- throws (1: airavata_errors.InvalidRequestException ire,
- 2: airavata_errors.AiravataClientException ace,
- 3: airavata_errors.AiravataSystemException ase,
- 4: airavata_errors.AuthorizationException ae)
-
- /**
- *
- * Fetch the list of Application Inputs.
- *
- * @param appInterfaceId
- * The identifier of the application interface which need inputs to be fetched.
- *
- * @return list<application_interface_model.InputDataObjectType>
- * Returns a list of application inputs.
- *
- */
- list<application_io_models.InputDataObjectType> getApplicationInputs(1: required security_model.AuthzToken authzToken,
- 2: required string appInterfaceId)
- throws (1: airavata_errors.InvalidRequestException ire,
- 2: airavata_errors.AiravataClientException ace,
- 3: airavata_errors.AiravataSystemException ase,
- 4: airavata_errors.AuthorizationException ae)
-
- /**
- *
- * Fetch list of Application Outputs.
- *
- * @param appInterfaceId
- * The identifier of the application interface which need outputs to be fetched.
- *
- * @return list<application_interface_model.OutputDataObjectType>
- * Returns a list of application outputs.
- *
- */
- list<application_io_models.OutputDataObjectType> getApplicationOutputs(1: required security_model.AuthzToken authzToken,
- 2: required string appInterfaceId)
- throws (1: airavata_errors.InvalidRequestException ire,
- 2: airavata_errors.AiravataClientException ace,
- 3: airavata_errors.AiravataSystemException ase,
- 4: airavata_errors.AuthorizationException ae)
-
- /**
- *
- * Fetch a list of all deployed Compute Hosts for a given application interfaces.
- *
- * @param appInterfaceId
- * The identifier for the requested application interface.
- *
- * @return map<computeResourceId, computeResourceName>
- * A map of registered compute resource id's and their corresponding hostnames.
- * Deployments of each modules listed within the interfaces will be listed.
- *
- */
- map<string, string> getAvailableAppInterfaceComputeResources(1: required security_model.AuthzToken authzToken, 2: required string appInterfaceId)
- throws (1: airavata_errors.InvalidRequestException ire,
- 2: airavata_errors.AiravataClientException ace,
- 3: airavata_errors.AiravataSystemException ase,
- 4: airavata_errors.AuthorizationException ae)
/*
*
http://git-wip-us.apache.org/repos/asf/airavata/blob/f56d6777/thrift-interface-descriptions/airavata-apis/app_catalog.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/airavata-apis/app_catalog.thrift b/thrift-interface-descriptions/airavata-apis/app_catalog.thrift
new file mode 100644
index 0000000..7620352
--- /dev/null
+++ b/thrift-interface-descriptions/airavata-apis/app_catalog.thrift
@@ -0,0 +1,498 @@
+/*
+ * 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 "security_model.thrift"
+include "../data-models/airavata_data_models.thrift"
+include "../data-models/experiment-catalog-models/status_models.thrift"
+include "../data-models/experiment-catalog-models/job_model.thrift"
+include "../data-models/experiment-catalog-models/experiment_model.thrift"
+include "../data-models/experiment-catalog-models/workspace_model.thrift"
+include "../data-models/experiment-catalog-models/scheduling_model.thrift"
+include "../data-models/app-catalog-models/application_io_models.thrift"
+include "../data-models/app-catalog-models/application_deployment_model.thrift"
+include "../data-models/app-catalog-models/application_interface_model.thrift"
+include "../data-models/resource-catalog-models/compute_resource_model.thrift"
+include "../data-models/resource-catalog-models/storage_resource_model.thrift"
+include "../data-models/resource-catalog-models/gateway_resource_profile_model.thrift"
+include "../data-models/resource-catalog-models/data_movement_models.thrift"
+include "../data-models/workflow-models/workflow_data_model.thrift"
+include "../data-models/replica-catalog-models/replica_catalog_models.thrift"
+include "../data-models/user-group-models/group_manager_model.thrift"
+
+namespace java org.apache.airavata.api
+namespace php Airavata.API
+namespace cpp apache.airavata.api
+namespace perl ApacheAiravataAPI
+namespace py apache.airavata.api
+namespace js ApacheAiravataAPI
+
+/**
+ * Airavata Interface Versions depend upon this Thrift Interface File. When making changes, please edit the
+ * Version Constants according to Semantic Versioning Specification (SemVer) http://semver.org.
+ *
+ * Note: The Airavata API version may be different from the Airavata software release versions.
+ *
+ * The Airavata API version is composed as a dot delimited string with major, minor, and patch level components.
+ *
+ * - Major: Incremented for backward incompatible changes. An example would be changes to interfaces.
+ * - Minor: Incremented for backward compatible changes. An example would be the addition of a new optional methods.
+ * - Patch: Incremented for bug fixes. The patch level should be increased for every edit that doesn't result
+ * in a change to major/minor version numbers.
+ *
+*/
+
+service AiravataAppCatalogService {
+
+/*
+ *
+ * API definitions for App Catalog related operations
+ *
+*/
+
+/*
+ *
+ * Application Module
+ * A specific computational application. Many applications, particularly scientific applications
+ * are really a suite of applications or encompass of an ecosystem. For instance, Amber is referred to dozens of binaries.
+ * WRF is referred for an ecosystem of applications. In this context, we refer to module as a single binary.
+ *
+ * Note: A module has to be defined before a deployment can be registered.
+ *
+*/
+
+ /**
+ *
+ * Register a Application Module.
+ *
+ * @gatewayId
+ * ID of the gateway which is registering the new Application Module.
+ *
+ * @param applicationModule
+ * Application Module Object created from the datamodel.
+ *
+ * @return appModuleId
+ * Returns the server-side generated airavata appModule globally unique identifier.
+ *
+ */
+ string registerApplicationModule(1: required security_model.AuthzToken authzToken,
+ 2: required string gatewayId,
+ 3: required application_deployment_model.ApplicationModule applicationModule)
+ throws (1: airavata_errors.InvalidRequestException ire,
+ 2: airavata_errors.AiravataClientException ace,
+ 3: airavata_errors.AiravataSystemException ase,
+ 4: airavata_errors.AuthorizationException ae)
+
+ /**
+ *
+ * Fetch a Application Module.
+ *
+ * @param appModuleId
+ * The unique identifier of the application module required
+ *
+ * @return applicationModule
+ * Returns an Application Module Object.
+ *
+ */
+ application_deployment_model.ApplicationModule getApplicationModule(1: required security_model.AuthzToken authzToken,
+ 2: required string appModuleId)
+ throws (1: airavata_errors.InvalidRequestException ire,
+ 2: airavata_errors.AiravataClientException ace,
+ 3: airavata_errors.AiravataSystemException ase,
+ 4: airavata_errors.AuthorizationException ae)
+
+ /**
+ *
+ * Update a Application Module.
+ *
+ * @param appModuleId
+ * The identifier for the requested application module to be updated.
+ *
+ * @param applicationModule
+ * Application Module Object created from the datamodel.
+ *
+ * @return status
+ * Returns a success/failure of the update.
+ *
+ */
+ bool updateApplicationModule(1: required security_model.AuthzToken authzToken,
+ 2: required string appModuleId,
+ 3: required application_deployment_model.ApplicationModule applicationModule)
+ throws (1: airavata_errors.InvalidRequestException ire,
+ 2: airavata_errors.AiravataClientException ace,
+ 3: airavata_errors.AiravataSystemException ase,
+ 4: airavata_errors.AuthorizationException ae)
+
+ /**
+ *
+ * Fetch all Application Module Descriptions.
+ *
+ * @param gatewayId
+ * ID of the gateway which need to list all available application deployment documentation.
+ *
+ * @return list
+ * Returns the list of all Application Module Objects.
+ *
+ */
+ list<application_deployment_model.ApplicationModule> getAllAppModules (1: required security_model.AuthzToken authzToken,
+ 2: required string gatewayId)
+ throws (1: airavata_errors.InvalidRequestException ire,
+ 2: airavata_errors.AiravataClientException ace,
+ 3: airavata_errors.AiravataSystemException ase,
+ 4: airavata_errors.AuthorizationException ae)
+
+ /**
+ *
+ * Delete an Application Module.
+ *
+ * @param appModuleId
+ * The identifier of the Application Module to be deleted.
+ *
+ * @return status
+ * Returns a success/failure of the deletion.
+ *
+ */
+ bool deleteApplicationModule(1: required security_model.AuthzToken authzToken,
+ 2: required string appModuleId)
+ throws (1: airavata_errors.InvalidRequestException ire,
+ 2: airavata_errors.AiravataClientException ace,
+ 3: airavata_errors.AiravataSystemException ase,
+ 4: airavata_errors.AuthorizationException ae)
+
+/*
+ *
+ * Application Deployment
+ * Registers a deployment of an Application Module on a Compute Resource.
+ *
+*/
+
+ /**
+ *
+ * Register an Application Deployment.
+ *
+ * @param gatewayId
+ * ID of the gateway which is registering the new Application Deployment.
+ *
+ * @param applicationDeployment
+ * Application Module Object created from the datamodel.
+ *
+ * @return appDeploymentId
+ * Returns a server-side generated airavata appDeployment globally unique identifier.
+ *
+ */
+ string registerApplicationDeployment(1: required security_model.AuthzToken authzToken,
+ 2: required string gatewayId,
+ 3: required application_deployment_model.ApplicationDeploymentDescription applicationDeployment)
+ throws (1: airavata_errors.InvalidRequestException ire,
+ 2: airavata_errors.AiravataClientException ace,
+ 3: airavata_errors.AiravataSystemException ase,
+ 4: airavata_errors.AuthorizationException ae)
+
+ /**
+ *
+ * Fetch a Application Deployment.
+ *
+ * @param appDeploymentId
+ * The identifier for the requested application module
+ *
+ * @return applicationDeployment
+ * Returns a application Deployment Object.
+ *
+ */
+ application_deployment_model.ApplicationDeploymentDescription getApplicationDeployment(1: required security_model.AuthzToken authzToken,
+ 2: required string appDeploymentId)
+ throws (1: airavata_errors.InvalidRequestException ire,
+ 2: airavata_errors.AiravataClientException ace,
+ 3: airavata_errors.AiravataSystemException ase,
+ 4: airavata_errors.AuthorizationException ae)
+
+ /**
+ *
+ * Update an Application Deployment.
+ *
+ * @param appDeploymentId
+ * The identifier of the requested application deployment to be updated.
+ *
+ * @param appDeployment
+ * Application Deployment Object created from the datamodel.
+ *
+ * @return status
+ * Returns a success/failure of the update.
+ *
+ */
+ bool updateApplicationDeployment(1: required security_model.AuthzToken authzToken,
+ 2: required string appDeploymentId,
+ 3: required application_deployment_model.ApplicationDeploymentDescription applicationDeployment)
+ throws (1: airavata_errors.InvalidRequestException ire,
+ 2: airavata_errors.AiravataClientException ace,
+ 3: airavata_errors.AiravataSystemException ase,
+ 4: airavata_errors.AuthorizationException ae)
+
+ /**
+ *
+ * Delete an Application Deployment.
+ *
+ * @param appDeploymentId
+ * The unique identifier of application deployment to be deleted.
+ *
+ * @return status
+ * Returns a success/failure of the deletion.
+ *
+ */
+ bool deleteApplicationDeployment(1: required security_model.AuthzToken authzToken,
+ 2: required string appDeploymentId)
+ throws (1: airavata_errors.InvalidRequestException ire,
+ 2: airavata_errors.AiravataClientException ace,
+ 3: airavata_errors.AiravataSystemException ase,
+ 4: airavata_errors.AuthorizationException ae)
+
+ /**
+ *
+ * Fetch all Application Deployment Descriptions.
+ *
+ * @param gatewayId
+ * ID of the gateway which need to list all available application deployment documentation.
+ *
+ * @return list<applicationDeployment.
+ * Returns the list of all application Deployment Objects.
+ *
+ */
+ list<application_deployment_model.ApplicationDeploymentDescription> getAllApplicationDeployments(1: required security_model.AuthzToken authzToken,
+ 2: required string gatewayId)
+ throws (1: airavata_errors.InvalidRequestException ire,
+ 2: airavata_errors.AiravataClientException ace,
+ 3: airavata_errors.AiravataSystemException ase,
+ 4: airavata_errors.AuthorizationException ae)
+
+ /**
+ * Fetch a list of Deployed Compute Hosts.
+ *
+ * @param appModuleId
+ * The identifier for the requested application module
+ *
+ * @return list<string>
+ * Returns a list of Deployed Resources.
+ *
+ */
+ list<string> getAppModuleDeployedResources(1: required security_model.AuthzToken authzToken, 2: required string appModuleId)
+ throws (1: airavata_errors.InvalidRequestException ire,
+ 2: airavata_errors.AiravataClientException ace,
+ 3: airavata_errors.AiravataSystemException ase,
+ 4: airavata_errors.AuthorizationException ae)
+
+/*
+ *
+ * Application Interface
+ *
+*/
+
+ /**
+ *
+ * Register a Application Interface.
+ *
+ * @param applicationInterface
+ * Application Module Object created from the datamodel.
+ *
+ * @return appInterfaceId
+ * Returns a server-side generated airavata application interface globally unique identifier.
+ *
+ */
+ string registerApplicationInterface(1: required security_model.AuthzToken authzToken, 2: required string gatewayId,
+ 3: required application_interface_model.ApplicationInterfaceDescription applicationInterface)
+ throws (1: airavata_errors.InvalidRequestException ire,
+ 2: airavata_errors.AiravataClientException ace,
+ 3: airavata_errors.AiravataSystemException ase,
+ 4: airavata_errors.AuthorizationException ae)
+
+ /**
+ *
+ * Clone an Application Interface.
+ *
+ * @gatewayId
+ * The identifier for the gateway profile to be requested
+ *
+ * @param existingAppInterfaceID
+ * Identifier of the existing Application interface you wich to clone.
+ *
+ * @param newApplicationName
+ * Name for the new application interface.
+ *
+ * @return appInterfaceId
+ * Returns a server-side generated globally unique identifier for the newly cloned application interface.
+ *
+ */
+ string cloneApplicationInterface(1: required security_model.AuthzToken authzToken,
+ 2: string existingAppInterfaceID,
+ 3: string newApplicationName,
+ 4: string gatewayId)
+ throws (1: airavata_errors.InvalidRequestException ire,
+ 2: airavata_errors.AiravataClientException ace,
+ 3: airavata_errors.AiravataSystemException ase,
+ 4: airavata_errors.AuthorizationException ae)
+
+ /**
+ *
+ * Fetch an Application Interface.
+ *
+ * @param appInterfaceId
+ * The identifier for the requested application interface.
+ *
+ * @return applicationInterface
+ * Returns an application Interface Object.
+ *
+ */
+ application_interface_model.ApplicationInterfaceDescription getApplicationInterface(1: required security_model.AuthzToken authzToken,
+ 2: required string appInterfaceId)
+ throws (1: airavata_errors.InvalidRequestException ire,
+ 2: airavata_errors.AiravataClientException ace,
+ 3: airavata_errors.AiravataSystemException ase,
+ 4: airavata_errors.AuthorizationException ae)
+
+ /**
+ *
+ * Update a Application Interface.
+ *
+ * @param appInterfaceId
+ * The identifier of the requested application deployment to be updated.
+ *
+ * @param appInterface
+ * Application Interface Object created from the datamodel.
+ *
+ * @return status
+ * Returns a success/failure of the update.
+ *
+ */
+ bool updateApplicationInterface(1: required security_model.AuthzToken authzToken,
+ 2: required string appInterfaceId,
+ 3: required application_interface_model.ApplicationInterfaceDescription applicationInterface)
+ throws (1: airavata_errors.InvalidRequestException ire,
+ 2: airavata_errors.AiravataClientException ace,
+ 3: airavata_errors.AiravataSystemException ase,
+ 4: airavata_errors.AuthorizationException ae)
+
+ /**
+ *
+ * Delete an Application Interface.
+ *
+ * @param appInterfaceId
+ * The identifier for the requested application interface to be deleted.
+ *
+ * @return status
+ * Returns a success/failure of the deletion.
+ *
+ */
+ bool deleteApplicationInterface(1: required security_model.AuthzToken authzToken, 2: required string appInterfaceId)
+ throws (1: airavata_errors.InvalidRequestException ire,
+ 2: airavata_errors.AiravataClientException ace,
+ 3: airavata_errors.AiravataSystemException ase,
+ 4: airavata_errors.AuthorizationException ae)
+
+ /**
+ *
+ * Fetch name and ID of Application Interface documents.
+ *
+ *
+ * @return map<applicationId, applicationInterfaceNames>
+ * Returns a list of application interfaces with corresponsing ID's
+ *
+ */
+ map<string, string> getAllApplicationInterfaceNames (1: required security_model.AuthzToken authzToken, 2: required string gatewayId)
+ throws (1: airavata_errors.InvalidRequestException ire,
+ 2: airavata_errors.AiravataClientException ace,
+ 3: airavata_errors.AiravataSystemException ase,
+ 4: airavata_errors.AuthorizationException ae)
+
+ /**
+ *
+ * Fetch all Application Interface documents.
+ *
+ *
+ * @return map<applicationId, applicationInterfaceNames>
+ * Returns a list of application interfaces documents (Application Interface ID, name, description, Inputs and Outputs objects).
+ *
+ */
+ list<application_interface_model.ApplicationInterfaceDescription> getAllApplicationInterfaces (1: required security_model.AuthzToken authzToken,
+ 2: required string gatewayId)
+ throws (1: airavata_errors.InvalidRequestException ire,
+ 2: airavata_errors.AiravataClientException ace,
+ 3: airavata_errors.AiravataSystemException ase,
+ 4: airavata_errors.AuthorizationException ae)
+
+ /**
+ *
+ * Fetch the list of Application Inputs.
+ *
+ * @param appInterfaceId
+ * The identifier of the application interface which need inputs to be fetched.
+ *
+ * @return list<application_interface_model.InputDataObjectType>
+ * Returns a list of application inputs.
+ *
+ */
+ list<application_io_models.InputDataObjectType> getApplicationInputs(1: required security_model.AuthzToken authzToken,
+ 2: required string appInterfaceId)
+ throws (1: airavata_errors.InvalidRequestException ire,
+ 2: airavata_errors.AiravataClientException ace,
+ 3: airavata_errors.AiravataSystemException ase,
+ 4: airavata_errors.AuthorizationException ae)
+
+ /**
+ *
+ * Fetch list of Application Outputs.
+ *
+ * @param appInterfaceId
+ * The identifier of the application interface which need outputs to be fetched.
+ *
+ * @return list<application_interface_model.OutputDataObjectType>
+ * Returns a list of application outputs.
+ *
+ */
+ list<application_io_models.OutputDataObjectType> getApplicationOutputs(1: required security_model.AuthzToken authzToken,
+ 2: required string appInterfaceId)
+ throws (1: airavata_errors.InvalidRequestException ire,
+ 2: airavata_errors.AiravataClientException ace,
+ 3: airavata_errors.AiravataSystemException ase,
+ 4: airavata_errors.AuthorizationException ae)
+
+ /**
+ *
+ * Fetch a list of all deployed Compute Hosts for a given application interfaces.
+ *
+ * @param appInterfaceId
+ * The identifier for the requested application interface.
+ *
+ * @return map<computeResourceId, computeResourceName>
+ * A map of registered compute resource id's and their corresponding hostnames.
+ * Deployments of each modules listed within the interfaces will be listed.
+ *
+ */
+ map<string, string> getAvailableAppInterfaceComputeResources(1: required security_model.AuthzToken authzToken, 2: required string appInterfaceId)
+ throws (1: airavata_errors.InvalidRequestException ire,
+ 2: airavata_errors.AiravataClientException ace,
+ 3: airavata_errors.AiravataSystemException ase,
+ 4: airavata_errors.AuthorizationException ae)
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/f56d6777/thrift-interface-descriptions/airavata-apis/credential_store.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/airavata-apis/credential_store.thrift b/thrift-interface-descriptions/airavata-apis/credential_store.thrift
new file mode 100644
index 0000000..bbfc625
--- /dev/null
+++ b/thrift-interface-descriptions/airavata-apis/credential_store.thrift
@@ -0,0 +1,175 @@
+/*
+ * 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 "security_model.thrift"
+include "../data-models/airavata_data_models.thrift"
+include "../data-models/experiment-catalog-models/status_models.thrift"
+include "../data-models/experiment-catalog-models/job_model.thrift"
+include "../data-models/experiment-catalog-models/experiment_model.thrift"
+include "../data-models/experiment-catalog-models/workspace_model.thrift"
+include "../data-models/experiment-catalog-models/scheduling_model.thrift"
+include "../data-models/app-catalog-models/application_io_models.thrift"
+include "../data-models/app-catalog-models/application_deployment_model.thrift"
+include "../data-models/app-catalog-models/application_interface_model.thrift"
+include "../data-models/resource-catalog-models/compute_resource_model.thrift"
+include "../data-models/resource-catalog-models/storage_resource_model.thrift"
+include "../data-models/resource-catalog-models/gateway_resource_profile_model.thrift"
+include "../data-models/resource-catalog-models/data_movement_models.thrift"
+include "../data-models/workflow-models/workflow_data_model.thrift"
+include "../data-models/replica-catalog-models/replica_catalog_models.thrift"
+include "../data-models/user-group-models/group_manager_model.thrift"
+
+namespace java org.apache.airavata.api
+namespace php Airavata.API
+namespace cpp apache.airavata.api
+namespace perl ApacheAiravataAPI
+namespace py apache.airavata.api
+namespace js ApacheAiravataAPI
+
+
+ /**
+ * Generate and Register SSH Key Pair with Airavata Credential Store.
+ *
+ * @param gatewayId
+ * The identifier for the requested Gateway.
+ *
+ * @param userName
+ * The User for which the credential should be registered. For community accounts, this user is the name of the
+ * community user name. For computational resources, this user name need not be the same user name on resoruces.
+ *
+ * @return airavataCredStoreToken
+ * An SSH Key pair is generated and stored in the credential store and associated with users or community account
+ * belonging to a Gateway.
+ *
+ **/
+ string generateAndRegisterSSHKeys (1: required security_model.AuthzToken authzToken,
+ 2: required string gatewayId,
+ 3: required string userName)
+ throws (1: airavata_errors.InvalidRequestException ire,
+ 2: airavata_errors.AiravataClientException ace,
+ 3: airavata_errors.AiravataSystemException ase)
+
+
+ /**
+ * Generate and Register Username PWD Pair with Airavata Credential Store.
+ *
+ * @param gatewayId
+ * The identifier for the requested Gateway.
+ *
+ * @param portalUserName
+ * The User for which the credential should be registered. For community accounts, this user is the name of the
+ * community user name. For computational resources, this user name need not be the same user name on resoruces.
+ *
+ * @param loginUserName
+ *
+ * @param password
+ *
+ * @return airavataCredStoreToken
+ * An SSH Key pair is generated and stored in the credential store and associated with users or community account
+ * belonging to a Gateway.
+ *
+ **/
+ string registerPwdCredential (1: required security_model.AuthzToken authzToken,
+ 2: required string gatewayId,
+ 3: required string portalUserName,
+ 4: required string loginUserName,
+ 5: required string password,
+ 6: required string description)
+ throws (1: airavata_errors.InvalidRequestException ire,
+ 2: airavata_errors.AiravataClientException ace,
+ 3: airavata_errors.AiravataSystemException ase)
+
+ /**
+ * Get a Public Key by Providing the Token
+ *
+ * @param CredStoreToken
+ * Credential Store Token which you want to find the Public Key for.
+ *
+ * @param gatewayId
+ * This is the unique identifier of your gateway where the token and public key was generated from.
+ *
+ * @return publicKey
+ *
+ **/
+ string getSSHPubKey (1: required security_model.AuthzToken authzToken,
+ 2: required string airavataCredStoreToken,
+ 3: required string gatewayId)
+ throws (1: airavata_errors.InvalidRequestException ire,
+ 2: airavata_errors.AiravataClientException ace,
+ 3: airavata_errors.AiravataSystemException ase)
+
+ /**
+ *
+ * Get all Public Keys of the Gateway
+ *
+ * @param CredStoreToken
+ * Credential Store Token which you want to find the Public Key for.
+ *
+ * @param gatewayId
+ * This is the unique identifier of your gateway where the token and public key was generated from.
+ *
+ * @return publicKey
+ *
+ **/
+ map<string, string> getAllGatewaySSHPubKeys (1: required security_model.AuthzToken authzToken,
+ 2: required string gatewayId)
+ throws (1: airavata_errors.InvalidRequestException ire,
+ 2: airavata_errors.AiravataClientException ace,
+ 3: airavata_errors.AiravataSystemException ase)
+
+
+ map<string, string> getAllGatewayPWDCredentials (1: required security_model.AuthzToken authzToken,
+ 2: required string gatewayId)
+ throws (1: airavata_errors.InvalidRequestException ire,
+ 2: airavata_errors.AiravataClientException ace,
+ 3: airavata_errors.AiravataSystemException ase)
+
+ /**
+ *
+ * Delete a Gateway
+ *
+ * @param gatewayId
+ * The gateway Id of the Gateway to be deleted.
+ *
+ * @return boolean
+ * Boolean identifier for the success or failure of the deletion operation.
+ *
+ **/
+ bool deleteSSHPubKey (1: required security_model.AuthzToken authzToken,
+ 2: required string airavataCredStoreToken,
+ 3: required string gatewayId)
+ throws (1: airavata_errors.InvalidRequestException ire,
+ 2: airavata_errors.AiravataClientException ace,
+ 3: airavata_errors.AiravataSystemException ase)
+
+
+ bool deletePWDCredential (1: required security_model.AuthzToken authzToken,
+ 2: required string airavataCredStoreToken,
+ 3: required string gatewayId)
+ 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/f56d6777/thrift-interface-descriptions/airavata-apis/resource_catalog.thrift
----------------------------------------------------------------------
diff --git a/thrift-interface-descriptions/airavata-apis/resource_catalog.thrift b/thrift-interface-descriptions/airavata-apis/resource_catalog.thrift
new file mode 100644
index 0000000..e69de29