blob: c8490aa0ae5a1a4d020850c0a730ce40253e69e5 [file] [log] [blame]
/*
* 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 "../resource-catalog-models/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,
URI_COLLECTION,
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,
12: optional string storageResourceId,
13: optional bool isReadOnly
}
/**
* 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,
11: optional string storageResourceId,
}