airavata 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +15 -0
  3. data/.rspec +3 -0
  4. data/.travis.yml +6 -0
  5. data/CODE_OF_CONDUCT.md +74 -0
  6. data/Gemfile +11 -0
  7. data/README.md +61 -0
  8. data/Rakefile +6 -0
  9. data/airavata.gemspec +26 -0
  10. data/bin/console +14 -0
  11. data/bin/setup +8 -0
  12. data/lib/account_provisioning_model_constants.rb +9 -0
  13. data/lib/account_provisioning_model_types.rb +69 -0
  14. data/lib/airavata.rb +15774 -0
  15. data/lib/airavata_api_constants.rb +11 -0
  16. data/lib/airavata_api_types.rb +34 -0
  17. data/lib/airavata_commons_constants.rb +11 -0
  18. data/lib/airavata_commons_types.rb +79 -0
  19. data/lib/airavata_data_models_constants.rb +9 -0
  20. data/lib/airavata_data_models_types.rb +28 -0
  21. data/lib/airavata_errors_constants.rb +9 -0
  22. data/lib/airavata_errors_types.rb +317 -0
  23. data/lib/airavata_workflow_model_constants.rb +9 -0
  24. data/lib/airavata_workflow_model_types.rb +335 -0
  25. data/lib/application_deployment_model_constants.rb +9 -0
  26. data/lib/application_deployment_model_types.rb +186 -0
  27. data/lib/application_interface_model_constants.rb +9 -0
  28. data/lib/application_interface_model_types.rb +54 -0
  29. data/lib/application_io_models_constants.rb +9 -0
  30. data/lib/application_io_models_types.rb +160 -0
  31. data/lib/base_a_p_i.rb +77 -0
  32. data/lib/base_api_constants.rb +9 -0
  33. data/lib/base_api_types.rb +8 -0
  34. data/lib/compute_resource_model_constants.rb +9 -0
  35. data/lib/compute_resource_model_types.rb +470 -0
  36. data/lib/credential_store_data_models_constants.rb +11 -0
  37. data/lib/credential_store_data_models_types.rb +172 -0
  38. data/lib/data_movement_models_constants.rb +9 -0
  39. data/lib/data_movement_models_types.rb +199 -0
  40. data/lib/db_event_model_constants.rb +9 -0
  41. data/lib/db_event_model_types.rb +155 -0
  42. data/lib/experiment_model_constants.rb +9 -0
  43. data/lib/experiment_model_types.rb +246 -0
  44. data/lib/gateway_groups_model_constants.rb +9 -0
  45. data/lib/gateway_groups_model_types.rb +34 -0
  46. data/lib/gateway_resource_profile_model_constants.rb +9 -0
  47. data/lib/gateway_resource_profile_model_types.rb +165 -0
  48. data/lib/group_manager_model_constants.rb +9 -0
  49. data/lib/group_manager_model_types.rb +58 -0
  50. data/lib/group_resource_profile_model_constants.rb +9 -0
  51. data/lib/group_resource_profile_model_types.rb +230 -0
  52. data/lib/job_model_constants.rb +9 -0
  53. data/lib/job_model_types.rb +52 -0
  54. data/lib/messaging_events_constants.rb +9 -0
  55. data/lib/messaging_events_types.rb +399 -0
  56. data/lib/parallelism_model_constants.rb +9 -0
  57. data/lib/parallelism_model_types.rb +19 -0
  58. data/lib/parser_model_constants.rb +9 -0
  59. data/lib/parser_model_types.rb +229 -0
  60. data/lib/process_model_constants.rb +9 -0
  61. data/lib/process_model_types.rb +113 -0
  62. data/lib/replica_catalog_models_constants.rb +9 -0
  63. data/lib/replica_catalog_models_types.rb +116 -0
  64. data/lib/scheduling_model_constants.rb +9 -0
  65. data/lib/scheduling_model_types.rb +49 -0
  66. data/lib/security_model_constants.rb +9 -0
  67. data/lib/security_model_types.rb +27 -0
  68. data/lib/status_models_constants.rb +9 -0
  69. data/lib/status_models_types.rb +212 -0
  70. data/lib/storage_resource_model_constants.rb +9 -0
  71. data/lib/storage_resource_model_types.rb +56 -0
  72. data/lib/task_model_constants.rb +9 -0
  73. data/lib/task_model_types.rb +197 -0
  74. data/lib/tenant_profile_model_constants.rb +9 -0
  75. data/lib/tenant_profile_model_types.rb +108 -0
  76. data/lib/user_profile_model_constants.rb +11 -0
  77. data/lib/user_profile_model_types.rb +300 -0
  78. data/lib/user_resource_profile_model_constants.rb +9 -0
  79. data/lib/user_resource_profile_model_types.rb +150 -0
  80. data/lib/workspace_model_constants.rb +9 -0
  81. data/lib/workspace_model_types.rb +230 -0
  82. metadata +128 -0
@@ -0,0 +1,9 @@
1
+ #
2
+ # Autogenerated by Thrift Compiler (0.10.0)
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+ require 'thrift'
8
+ require 'application_interface_model_types'
9
+
@@ -0,0 +1,54 @@
1
+ #
2
+ # Autogenerated by Thrift Compiler (0.10.0)
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+ require 'thrift'
8
+ require 'application_io_models_types'
9
+ require 'airavata_commons_types'
10
+
11
+
12
+ # Application Interface Description
13
+ #
14
+ # applicationModules:
15
+ # Associate all application modules with versions which interface is applicable to.
16
+ #
17
+ # applicationInputs:
18
+ # Inputs to be passed to the application
19
+ #
20
+ # applicationOutputs:
21
+ # Outputs generated from the application
22
+ #
23
+ class ApplicationInterfaceDescription
24
+ include ::Thrift::Struct, ::Thrift::Struct_Union
25
+ APPLICATIONINTERFACEID = 1
26
+ APPLICATIONNAME = 2
27
+ APPLICATIONDESCRIPTION = 3
28
+ APPLICATIONMODULES = 4
29
+ APPLICATIONINPUTS = 5
30
+ APPLICATIONOUTPUTS = 6
31
+ ARCHIVEWORKINGDIRECTORY = 7
32
+ HASOPTIONALFILEINPUTS = 8
33
+
34
+ FIELDS = {
35
+ APPLICATIONINTERFACEID => {:type => ::Thrift::Types::STRING, :name => 'applicationInterfaceId', :default => %q"DO_NOT_SET_AT_CLIENTS"},
36
+ APPLICATIONNAME => {:type => ::Thrift::Types::STRING, :name => 'applicationName'},
37
+ APPLICATIONDESCRIPTION => {:type => ::Thrift::Types::STRING, :name => 'applicationDescription', :optional => true},
38
+ APPLICATIONMODULES => {:type => ::Thrift::Types::LIST, :name => 'applicationModules', :element => {:type => ::Thrift::Types::STRING}, :optional => true},
39
+ APPLICATIONINPUTS => {:type => ::Thrift::Types::LIST, :name => 'applicationInputs', :element => {:type => ::Thrift::Types::STRUCT, :class => ::InputDataObjectType}, :optional => true},
40
+ APPLICATIONOUTPUTS => {:type => ::Thrift::Types::LIST, :name => 'applicationOutputs', :element => {:type => ::Thrift::Types::STRUCT, :class => ::OutputDataObjectType}, :optional => true},
41
+ ARCHIVEWORKINGDIRECTORY => {:type => ::Thrift::Types::BOOL, :name => 'archiveWorkingDirectory', :default => false, :optional => true},
42
+ HASOPTIONALFILEINPUTS => {:type => ::Thrift::Types::BOOL, :name => 'hasOptionalFileInputs', :optional => true}
43
+ }
44
+
45
+ def struct_fields; FIELDS; end
46
+
47
+ def validate
48
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field applicationInterfaceId is unset!') unless @applicationInterfaceId
49
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field applicationName is unset!') unless @applicationName
50
+ end
51
+
52
+ ::Thrift::Struct.generate_accessors self
53
+ end
54
+
@@ -0,0 +1,9 @@
1
+ #
2
+ # Autogenerated by Thrift Compiler (0.10.0)
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+ require 'thrift'
8
+ require 'application_io_models_types'
9
+
@@ -0,0 +1,160 @@
1
+ #
2
+ # Autogenerated by Thrift Compiler (0.10.0)
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+ require 'thrift'
8
+ require 'compute_resource_model_types'
9
+
10
+
11
+ module DataType
12
+ STRING = 0
13
+ INTEGER = 1
14
+ FLOAT = 2
15
+ URI = 3
16
+ URI_COLLECTION = 4
17
+ STDOUT = 5
18
+ STDERR = 6
19
+ VALUE_MAP = {0 => "STRING", 1 => "INTEGER", 2 => "FLOAT", 3 => "URI", 4 => "URI_COLLECTION", 5 => "STDOUT", 6 => "STDERR"}
20
+ VALID_VALUES = Set.new([STRING, INTEGER, FLOAT, URI, URI_COLLECTION, STDOUT, STDERR]).freeze
21
+ end
22
+
23
+ # Application Inputs. The paramters describe how inputs are passed to the application.
24
+ #
25
+ # name:
26
+ # Name of the parameter.
27
+ #
28
+ # value:
29
+ # Value of the parameter. A default value could be set during registration.
30
+ #
31
+ # type:
32
+ # Data type of the parameter
33
+ #
34
+ # applicationArguement:
35
+ # The argument flag sent to the application. Such as -p pressure.
36
+ #
37
+ # standardInput:
38
+ # When this value is set, the parameter is sent as standard input rather than a parameter.
39
+ # Typically this is passed using redirection operator ">".
40
+ #
41
+ # userFriendlyDescription:
42
+ # Description to be displayed at the user interface.
43
+ #
44
+ # metaData:
45
+ # Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
46
+ #
47
+ # overrideFilename:
48
+ # Rename input file to given value when staging to compute resource.
49
+ class InputDataObjectType
50
+ include ::Thrift::Struct, ::Thrift::Struct_Union
51
+ NAME = 1
52
+ VALUE = 2
53
+ TYPE = 3
54
+ APPLICATIONARGUMENT = 4
55
+ STANDARDINPUT = 5
56
+ USERFRIENDLYDESCRIPTION = 6
57
+ METADATA = 7
58
+ INPUTORDER = 8
59
+ ISREQUIRED = 9
60
+ REQUIREDTOADDEDTOCOMMANDLINE = 10
61
+ DATASTAGED = 11
62
+ STORAGERESOURCEID = 12
63
+ ISREADONLY = 13
64
+ OVERRIDEFILENAME = 14
65
+
66
+ FIELDS = {
67
+ NAME => {:type => ::Thrift::Types::STRING, :name => 'name'},
68
+ VALUE => {:type => ::Thrift::Types::STRING, :name => 'value', :optional => true},
69
+ TYPE => {:type => ::Thrift::Types::I32, :name => 'type', :optional => true, :enum_class => ::DataType},
70
+ APPLICATIONARGUMENT => {:type => ::Thrift::Types::STRING, :name => 'applicationArgument', :optional => true},
71
+ STANDARDINPUT => {:type => ::Thrift::Types::BOOL, :name => 'standardInput', :optional => true},
72
+ USERFRIENDLYDESCRIPTION => {:type => ::Thrift::Types::STRING, :name => 'userFriendlyDescription', :optional => true},
73
+ METADATA => {:type => ::Thrift::Types::STRING, :name => 'metaData', :optional => true},
74
+ INPUTORDER => {:type => ::Thrift::Types::I32, :name => 'inputOrder', :optional => true},
75
+ ISREQUIRED => {:type => ::Thrift::Types::BOOL, :name => 'isRequired', :optional => true},
76
+ REQUIREDTOADDEDTOCOMMANDLINE => {:type => ::Thrift::Types::BOOL, :name => 'requiredToAddedToCommandLine', :optional => true},
77
+ DATASTAGED => {:type => ::Thrift::Types::BOOL, :name => 'dataStaged', :optional => true},
78
+ STORAGERESOURCEID => {:type => ::Thrift::Types::STRING, :name => 'storageResourceId', :optional => true},
79
+ ISREADONLY => {:type => ::Thrift::Types::BOOL, :name => 'isReadOnly', :optional => true},
80
+ OVERRIDEFILENAME => {:type => ::Thrift::Types::STRING, :name => 'overrideFilename', :optional => true}
81
+ }
82
+
83
+ def struct_fields; FIELDS; end
84
+
85
+ def validate
86
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field name is unset!') unless @name
87
+ unless @type.nil? || ::DataType::VALID_VALUES.include?(@type)
88
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field type!')
89
+ end
90
+ end
91
+
92
+ ::Thrift::Struct.generate_accessors self
93
+ end
94
+
95
+ # Application Outputs. The paramters describe how outputs generated by the application.
96
+ #
97
+ # name:
98
+ # Name of the parameter.
99
+ #
100
+ # value:
101
+ # Value of the parameter.
102
+ #
103
+ # type:
104
+ # Data type of the parameter
105
+ #
106
+ # applicationArguement:
107
+ # The argument flag sent to the application. Such as -p pressure.
108
+ #
109
+ # standardInput:
110
+ # When this value is set, the parameter is sent as standard input rather than a parameter.
111
+ # Typically this is passed using redirection operator ">".
112
+ #
113
+ # userFriendlyDescription:
114
+ # Description to be displayed at the user interface.
115
+ #
116
+ # metaData:
117
+ # Any metadat. This is typically ignore by Airavata and is used by gateways for application configuration.
118
+ #
119
+ class OutputDataObjectType
120
+ include ::Thrift::Struct, ::Thrift::Struct_Union
121
+ NAME = 1
122
+ VALUE = 2
123
+ TYPE = 3
124
+ APPLICATIONARGUMENT = 4
125
+ ISREQUIRED = 5
126
+ REQUIREDTOADDEDTOCOMMANDLINE = 6
127
+ DATAMOVEMENT = 7
128
+ LOCATION = 8
129
+ SEARCHQUERY = 9
130
+ OUTPUTSTREAMING = 10
131
+ STORAGERESOURCEID = 11
132
+ METADATA = 12
133
+
134
+ FIELDS = {
135
+ NAME => {:type => ::Thrift::Types::STRING, :name => 'name'},
136
+ VALUE => {:type => ::Thrift::Types::STRING, :name => 'value', :optional => true},
137
+ TYPE => {:type => ::Thrift::Types::I32, :name => 'type', :optional => true, :enum_class => ::DataType},
138
+ APPLICATIONARGUMENT => {:type => ::Thrift::Types::STRING, :name => 'applicationArgument', :optional => true},
139
+ ISREQUIRED => {:type => ::Thrift::Types::BOOL, :name => 'isRequired', :optional => true},
140
+ REQUIREDTOADDEDTOCOMMANDLINE => {:type => ::Thrift::Types::BOOL, :name => 'requiredToAddedToCommandLine', :optional => true},
141
+ DATAMOVEMENT => {:type => ::Thrift::Types::BOOL, :name => 'dataMovement', :optional => true},
142
+ LOCATION => {:type => ::Thrift::Types::STRING, :name => 'location', :optional => true},
143
+ SEARCHQUERY => {:type => ::Thrift::Types::STRING, :name => 'searchQuery', :optional => true},
144
+ OUTPUTSTREAMING => {:type => ::Thrift::Types::BOOL, :name => 'outputStreaming', :optional => true},
145
+ STORAGERESOURCEID => {:type => ::Thrift::Types::STRING, :name => 'storageResourceId', :optional => true},
146
+ METADATA => {:type => ::Thrift::Types::STRING, :name => 'metaData', :optional => true}
147
+ }
148
+
149
+ def struct_fields; FIELDS; end
150
+
151
+ def validate
152
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field name is unset!') unless @name
153
+ unless @type.nil? || ::DataType::VALID_VALUES.include?(@type)
154
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field type!')
155
+ end
156
+ end
157
+
158
+ ::Thrift::Struct.generate_accessors self
159
+ end
160
+
@@ -0,0 +1,77 @@
1
+ #
2
+ # Autogenerated by Thrift Compiler (0.10.0)
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+ require 'thrift'
8
+ require 'base_api_types'
9
+
10
+ module BaseAPI
11
+ class Client
12
+ include ::Thrift::Client
13
+
14
+ def getAPIVersion()
15
+ send_getAPIVersion()
16
+ return recv_getAPIVersion()
17
+ end
18
+
19
+ def send_getAPIVersion()
20
+ send_message('getAPIVersion', GetAPIVersion_args)
21
+ end
22
+
23
+ def recv_getAPIVersion()
24
+ result = receive_message(GetAPIVersion_result)
25
+ return result.success unless result.success.nil?
26
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'getAPIVersion failed: unknown result')
27
+ end
28
+
29
+ end
30
+
31
+ class Processor
32
+ include ::Thrift::Processor
33
+
34
+ def process_getAPIVersion(seqid, iprot, oprot)
35
+ args = read_args(iprot, GetAPIVersion_args)
36
+ result = GetAPIVersion_result.new()
37
+ result.success = @handler.getAPIVersion()
38
+ write_result(result, oprot, 'getAPIVersion', seqid)
39
+ end
40
+
41
+ end
42
+
43
+ # HELPER FUNCTIONS AND STRUCTURES
44
+
45
+ class GetAPIVersion_args
46
+ include ::Thrift::Struct, ::Thrift::Struct_Union
47
+
48
+ FIELDS = {
49
+
50
+ }
51
+
52
+ def struct_fields; FIELDS; end
53
+
54
+ def validate
55
+ end
56
+
57
+ ::Thrift::Struct.generate_accessors self
58
+ end
59
+
60
+ class GetAPIVersion_result
61
+ include ::Thrift::Struct, ::Thrift::Struct_Union
62
+ SUCCESS = 0
63
+
64
+ FIELDS = {
65
+ SUCCESS => {:type => ::Thrift::Types::STRING, :name => 'success'}
66
+ }
67
+
68
+ def struct_fields; FIELDS; end
69
+
70
+ def validate
71
+ end
72
+
73
+ ::Thrift::Struct.generate_accessors self
74
+ end
75
+
76
+ end
77
+
@@ -0,0 +1,9 @@
1
+ #
2
+ # Autogenerated by Thrift Compiler (0.10.0)
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+ require 'thrift'
8
+ require 'base_api_types'
9
+
@@ -0,0 +1,8 @@
1
+ #
2
+ # Autogenerated by Thrift Compiler (0.10.0)
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+ require 'thrift'
8
+
@@ -0,0 +1,9 @@
1
+ #
2
+ # Autogenerated by Thrift Compiler (0.10.0)
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+ require 'thrift'
8
+ require 'compute_resource_model_types'
9
+
@@ -0,0 +1,470 @@
1
+ #
2
+ # Autogenerated by Thrift Compiler (0.10.0)
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+ require 'thrift'
8
+ require 'airavata_commons_types'
9
+ require 'parallelism_model_types'
10
+ require 'data_movement_models_types'
11
+
12
+
13
+ module ResourceJobManagerType
14
+ FORK = 0
15
+ PBS = 1
16
+ SLURM = 2
17
+ LSF = 3
18
+ UGE = 4
19
+ CLOUD = 5
20
+ AIRAVATA_CUSTOM = 6
21
+ VALUE_MAP = {0 => "FORK", 1 => "PBS", 2 => "SLURM", 3 => "LSF", 4 => "UGE", 5 => "CLOUD", 6 => "AIRAVATA_CUSTOM"}
22
+ VALID_VALUES = Set.new([FORK, PBS, SLURM, LSF, UGE, CLOUD, AIRAVATA_CUSTOM]).freeze
23
+ end
24
+
25
+ module JobManagerCommand
26
+ SUBMISSION = 0
27
+ JOB_MONITORING = 1
28
+ DELETION = 2
29
+ CHECK_JOB = 3
30
+ SHOW_QUEUE = 4
31
+ SHOW_RESERVATION = 5
32
+ SHOW_START = 6
33
+ VALUE_MAP = {0 => "SUBMISSION", 1 => "JOB_MONITORING", 2 => "DELETION", 3 => "CHECK_JOB", 4 => "SHOW_QUEUE", 5 => "SHOW_RESERVATION", 6 => "SHOW_START"}
34
+ VALID_VALUES = Set.new([SUBMISSION, JOB_MONITORING, DELETION, CHECK_JOB, SHOW_QUEUE, SHOW_RESERVATION, SHOW_START]).freeze
35
+ end
36
+
37
+ module FileSystems
38
+ HOME = 0
39
+ WORK = 1
40
+ LOCALTMP = 2
41
+ SCRATCH = 3
42
+ ARCHIVE = 4
43
+ VALUE_MAP = {0 => "HOME", 1 => "WORK", 2 => "LOCALTMP", 3 => "SCRATCH", 4 => "ARCHIVE"}
44
+ VALID_VALUES = Set.new([HOME, WORK, LOCALTMP, SCRATCH, ARCHIVE]).freeze
45
+ end
46
+
47
+ module JobSubmissionProtocol
48
+ LOCAL = 0
49
+ SSH = 1
50
+ GLOBUS = 2
51
+ UNICORE = 3
52
+ CLOUD = 4
53
+ SSH_FORK = 5
54
+ LOCAL_FORK = 6
55
+ VALUE_MAP = {0 => "LOCAL", 1 => "SSH", 2 => "GLOBUS", 3 => "UNICORE", 4 => "CLOUD", 5 => "SSH_FORK", 6 => "LOCAL_FORK"}
56
+ VALID_VALUES = Set.new([LOCAL, SSH, GLOBUS, UNICORE, CLOUD, SSH_FORK, LOCAL_FORK]).freeze
57
+ end
58
+
59
+ module MonitorMode
60
+ POLL_JOB_MANAGER = 0
61
+ CLOUD_JOB_MONITOR = 1
62
+ JOB_EMAIL_NOTIFICATION_MONITOR = 2
63
+ XSEDE_AMQP_SUBSCRIBE = 3
64
+ FORK = 4
65
+ LOCAL = 5
66
+ VALUE_MAP = {0 => "POLL_JOB_MANAGER", 1 => "CLOUD_JOB_MONITOR", 2 => "JOB_EMAIL_NOTIFICATION_MONITOR", 3 => "XSEDE_AMQP_SUBSCRIBE", 4 => "FORK", 5 => "LOCAL"}
67
+ VALID_VALUES = Set.new([POLL_JOB_MANAGER, CLOUD_JOB_MONITOR, JOB_EMAIL_NOTIFICATION_MONITOR, XSEDE_AMQP_SUBSCRIBE, FORK, LOCAL]).freeze
68
+ end
69
+
70
+ module DMType
71
+ COMPUTE_RESOURCE = 0
72
+ STORAGE_RESOURCE = 1
73
+ VALUE_MAP = {0 => "COMPUTE_RESOURCE", 1 => "STORAGE_RESOURCE"}
74
+ VALID_VALUES = Set.new([COMPUTE_RESOURCE, STORAGE_RESOURCE]).freeze
75
+ end
76
+
77
+ module ProviderName
78
+ EC2 = 0
79
+ AWSEC2 = 1
80
+ RACKSPACE = 2
81
+ VALUE_MAP = {0 => "EC2", 1 => "AWSEC2", 2 => "RACKSPACE"}
82
+ VALID_VALUES = Set.new([EC2, AWSEC2, RACKSPACE]).freeze
83
+ end
84
+
85
+ # Resource Job Manager Information
86
+ #
87
+ # resourceJobManagerType:
88
+ # A typical HPC cluster has a single Job Manager to manage the resources.
89
+ #
90
+ # pushMonitoringEndpoint:
91
+ # If the job manager pushes out state changes to a database or bus, specify the service endpoint.
92
+ # Ex: Moab Web Service, Moab MongoDB URL, AMQP (GLUE2) Broker
93
+ #
94
+ # jobManagerBinPath:
95
+ # Path to the Job Manager Installation Binary directory.
96
+ #
97
+ # jobManagerCommands:
98
+ # An enumeration of commonly used manager commands.
99
+ #
100
+ class ResourceJobManager
101
+ include ::Thrift::Struct, ::Thrift::Struct_Union
102
+ RESOURCEJOBMANAGERID = 1
103
+ RESOURCEJOBMANAGERTYPE = 2
104
+ PUSHMONITORINGENDPOINT = 3
105
+ JOBMANAGERBINPATH = 4
106
+ JOBMANAGERCOMMANDS = 5
107
+ PARALLELISMPREFIX = 6
108
+
109
+ FIELDS = {
110
+ RESOURCEJOBMANAGERID => {:type => ::Thrift::Types::STRING, :name => 'resourceJobManagerId', :default => %q"DO_NOT_SET_AT_CLIENTS"},
111
+ RESOURCEJOBMANAGERTYPE => {:type => ::Thrift::Types::I32, :name => 'resourceJobManagerType', :enum_class => ::ResourceJobManagerType},
112
+ PUSHMONITORINGENDPOINT => {:type => ::Thrift::Types::STRING, :name => 'pushMonitoringEndpoint', :optional => true},
113
+ JOBMANAGERBINPATH => {:type => ::Thrift::Types::STRING, :name => 'jobManagerBinPath', :optional => true},
114
+ JOBMANAGERCOMMANDS => {:type => ::Thrift::Types::MAP, :name => 'jobManagerCommands', :key => {:type => ::Thrift::Types::I32, :enum_class => ::JobManagerCommand}, :value => {:type => ::Thrift::Types::STRING}, :optional => true},
115
+ PARALLELISMPREFIX => {:type => ::Thrift::Types::MAP, :name => 'parallelismPrefix', :key => {:type => ::Thrift::Types::I32, :enum_class => ::ApplicationParallelismType}, :value => {:type => ::Thrift::Types::STRING}, :optional => true}
116
+ }
117
+
118
+ def struct_fields; FIELDS; end
119
+
120
+ def validate
121
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field resourceJobManagerId is unset!') unless @resourceJobManagerId
122
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field resourceJobManagerType is unset!') unless @resourceJobManagerType
123
+ unless @resourceJobManagerType.nil? || ::ResourceJobManagerType::VALID_VALUES.include?(@resourceJobManagerType)
124
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field resourceJobManagerType!')
125
+ end
126
+ end
127
+
128
+ ::Thrift::Struct.generate_accessors self
129
+ end
130
+
131
+ # Batch Queue Information on SuperComputers
132
+ #
133
+ # maxRunTime:
134
+ # Maximum allowed run time in hours.
135
+ class BatchQueue
136
+ include ::Thrift::Struct, ::Thrift::Struct_Union
137
+ QUEUENAME = 1
138
+ QUEUEDESCRIPTION = 2
139
+ MAXRUNTIME = 3
140
+ MAXNODES = 4
141
+ MAXPROCESSORS = 5
142
+ MAXJOBSINQUEUE = 6
143
+ MAXMEMORY = 7
144
+ CPUPERNODE = 8
145
+ DEFAULTNODECOUNT = 9
146
+ DEFAULTCPUCOUNT = 10
147
+ DEFAULTWALLTIME = 11
148
+ QUEUESPECIFICMACROS = 12
149
+ ISDEFAULTQUEUE = 13
150
+
151
+ FIELDS = {
152
+ QUEUENAME => {:type => ::Thrift::Types::STRING, :name => 'queueName'},
153
+ QUEUEDESCRIPTION => {:type => ::Thrift::Types::STRING, :name => 'queueDescription', :optional => true},
154
+ MAXRUNTIME => {:type => ::Thrift::Types::I32, :name => 'maxRunTime', :optional => true},
155
+ MAXNODES => {:type => ::Thrift::Types::I32, :name => 'maxNodes', :optional => true},
156
+ MAXPROCESSORS => {:type => ::Thrift::Types::I32, :name => 'maxProcessors', :optional => true},
157
+ MAXJOBSINQUEUE => {:type => ::Thrift::Types::I32, :name => 'maxJobsInQueue', :optional => true},
158
+ MAXMEMORY => {:type => ::Thrift::Types::I32, :name => 'maxMemory', :optional => true},
159
+ CPUPERNODE => {:type => ::Thrift::Types::I32, :name => 'cpuPerNode', :optional => true},
160
+ DEFAULTNODECOUNT => {:type => ::Thrift::Types::I32, :name => 'defaultNodeCount', :optional => true},
161
+ DEFAULTCPUCOUNT => {:type => ::Thrift::Types::I32, :name => 'defaultCPUCount', :optional => true},
162
+ DEFAULTWALLTIME => {:type => ::Thrift::Types::I32, :name => 'defaultWalltime', :optional => true},
163
+ QUEUESPECIFICMACROS => {:type => ::Thrift::Types::STRING, :name => 'queueSpecificMacros', :optional => true},
164
+ ISDEFAULTQUEUE => {:type => ::Thrift::Types::BOOL, :name => 'isDefaultQueue', :optional => true}
165
+ }
166
+
167
+ def struct_fields; FIELDS; end
168
+
169
+ def validate
170
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field queueName is unset!') unless @queueName
171
+ end
172
+
173
+ ::Thrift::Struct.generate_accessors self
174
+ end
175
+
176
+ # Locally Fork Jobs as OS processes
177
+ #
178
+ # alternativeSSHHostName:
179
+ # If the login to ssh is different than the hostname itself, specify it here
180
+ #
181
+ # sshPort:
182
+ # If a non-default port needs to used, specify it.
183
+ class LOCALSubmission
184
+ include ::Thrift::Struct, ::Thrift::Struct_Union
185
+ JOBSUBMISSIONINTERFACEID = 1
186
+ RESOURCEJOBMANAGER = 2
187
+ SECURITYPROTOCOL = 3
188
+
189
+ FIELDS = {
190
+ JOBSUBMISSIONINTERFACEID => {:type => ::Thrift::Types::STRING, :name => 'jobSubmissionInterfaceId', :default => %q"DO_NOT_SET_AT_CLIENTS"},
191
+ RESOURCEJOBMANAGER => {:type => ::Thrift::Types::STRUCT, :name => 'resourceJobManager', :class => ::ResourceJobManager},
192
+ SECURITYPROTOCOL => {:type => ::Thrift::Types::I32, :name => 'securityProtocol', :enum_class => ::SecurityProtocol}
193
+ }
194
+
195
+ def struct_fields; FIELDS; end
196
+
197
+ def validate
198
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field jobSubmissionInterfaceId is unset!') unless @jobSubmissionInterfaceId
199
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field resourceJobManager is unset!') unless @resourceJobManager
200
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field securityProtocol is unset!') unless @securityProtocol
201
+ unless @securityProtocol.nil? || ::SecurityProtocol::VALID_VALUES.include?(@securityProtocol)
202
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field securityProtocol!')
203
+ end
204
+ end
205
+
206
+ ::Thrift::Struct.generate_accessors self
207
+ end
208
+
209
+ # Authenticate using Secured Shell
210
+ #
211
+ # alternativeSSHHostName:
212
+ # If the login to ssh is different than the hostname itself, specify it here
213
+ #
214
+ # sshPort:
215
+ # If a non-default port needs to used, specify it.
216
+ #
217
+ # batchQueueEmailSenders:
218
+ # If a resource always sends the monitoring from a specific address, specify the
219
+ # full email address. If a resource sends emails from multiple addresses (
220
+ # example: based on the submitted login node) then use the wildchar * to indicate
221
+ # the same. Example: *@*.example.com or *@example.com
222
+ #
223
+ class SSHJobSubmission
224
+ include ::Thrift::Struct, ::Thrift::Struct_Union
225
+ JOBSUBMISSIONINTERFACEID = 1
226
+ SECURITYPROTOCOL = 2
227
+ RESOURCEJOBMANAGER = 3
228
+ ALTERNATIVESSHHOSTNAME = 4
229
+ SSHPORT = 5
230
+ MONITORMODE = 6
231
+ BATCHQUEUEEMAILSENDERS = 7
232
+
233
+ FIELDS = {
234
+ JOBSUBMISSIONINTERFACEID => {:type => ::Thrift::Types::STRING, :name => 'jobSubmissionInterfaceId', :default => %q"DO_NOT_SET_AT_CLIENTS"},
235
+ SECURITYPROTOCOL => {:type => ::Thrift::Types::I32, :name => 'securityProtocol', :enum_class => ::SecurityProtocol},
236
+ RESOURCEJOBMANAGER => {:type => ::Thrift::Types::STRUCT, :name => 'resourceJobManager', :class => ::ResourceJobManager},
237
+ ALTERNATIVESSHHOSTNAME => {:type => ::Thrift::Types::STRING, :name => 'alternativeSSHHostName', :optional => true},
238
+ SSHPORT => {:type => ::Thrift::Types::I32, :name => 'sshPort', :default => 22, :optional => true},
239
+ MONITORMODE => {:type => ::Thrift::Types::I32, :name => 'monitorMode', :optional => true, :enum_class => ::MonitorMode},
240
+ BATCHQUEUEEMAILSENDERS => {:type => ::Thrift::Types::LIST, :name => 'batchQueueEmailSenders', :element => {:type => ::Thrift::Types::STRING}, :optional => true}
241
+ }
242
+
243
+ def struct_fields; FIELDS; end
244
+
245
+ def validate
246
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field jobSubmissionInterfaceId is unset!') unless @jobSubmissionInterfaceId
247
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field securityProtocol is unset!') unless @securityProtocol
248
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field resourceJobManager is unset!') unless @resourceJobManager
249
+ unless @securityProtocol.nil? || ::SecurityProtocol::VALID_VALUES.include?(@securityProtocol)
250
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field securityProtocol!')
251
+ end
252
+ unless @monitorMode.nil? || ::MonitorMode::VALID_VALUES.include?(@monitorMode)
253
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field monitorMode!')
254
+ end
255
+ end
256
+
257
+ ::Thrift::Struct.generate_accessors self
258
+ end
259
+
260
+ class GlobusJobSubmission
261
+ include ::Thrift::Struct, ::Thrift::Struct_Union
262
+ JOBSUBMISSIONINTERFACEID = 1
263
+ SECURITYPROTOCOL = 2
264
+ GLOBUSGATEKEEPERENDPOINT = 3
265
+
266
+ FIELDS = {
267
+ JOBSUBMISSIONINTERFACEID => {:type => ::Thrift::Types::STRING, :name => 'jobSubmissionInterfaceId', :default => %q"DO_NOT_SET_AT_CLIENTS"},
268
+ SECURITYPROTOCOL => {:type => ::Thrift::Types::I32, :name => 'securityProtocol', :enum_class => ::SecurityProtocol},
269
+ GLOBUSGATEKEEPERENDPOINT => {:type => ::Thrift::Types::LIST, :name => 'globusGateKeeperEndPoint', :element => {:type => ::Thrift::Types::STRING}, :optional => true}
270
+ }
271
+
272
+ def struct_fields; FIELDS; end
273
+
274
+ def validate
275
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field jobSubmissionInterfaceId is unset!') unless @jobSubmissionInterfaceId
276
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field securityProtocol is unset!') unless @securityProtocol
277
+ unless @securityProtocol.nil? || ::SecurityProtocol::VALID_VALUES.include?(@securityProtocol)
278
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field securityProtocol!')
279
+ end
280
+ end
281
+
282
+ ::Thrift::Struct.generate_accessors self
283
+ end
284
+
285
+ # Unicore Job Submission
286
+ #
287
+ # unicoreEndPointURL:
288
+ # unicoreGateway End Point. The provider will query this service to fetch required service end points.
289
+ # authenticationMode
290
+ # The authenticationMode defines the way certificate is fetched.
291
+ class UnicoreJobSubmission
292
+ include ::Thrift::Struct, ::Thrift::Struct_Union
293
+ JOBSUBMISSIONINTERFACEID = 1
294
+ SECURITYPROTOCOL = 2
295
+ UNICOREENDPOINTURL = 3
296
+
297
+ FIELDS = {
298
+ JOBSUBMISSIONINTERFACEID => {:type => ::Thrift::Types::STRING, :name => 'jobSubmissionInterfaceId', :default => %q"DO_NOT_SET_AT_CLIENTS"},
299
+ SECURITYPROTOCOL => {:type => ::Thrift::Types::I32, :name => 'securityProtocol', :enum_class => ::SecurityProtocol},
300
+ UNICOREENDPOINTURL => {:type => ::Thrift::Types::STRING, :name => 'unicoreEndPointURL'}
301
+ }
302
+
303
+ def struct_fields; FIELDS; end
304
+
305
+ def validate
306
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field jobSubmissionInterfaceId is unset!') unless @jobSubmissionInterfaceId
307
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field securityProtocol is unset!') unless @securityProtocol
308
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field unicoreEndPointURL is unset!') unless @unicoreEndPointURL
309
+ unless @securityProtocol.nil? || ::SecurityProtocol::VALID_VALUES.include?(@securityProtocol)
310
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field securityProtocol!')
311
+ end
312
+ end
313
+
314
+ ::Thrift::Struct.generate_accessors self
315
+ end
316
+
317
+ # Cloud Job Submission
318
+ #
319
+ #
320
+ class CloudJobSubmission
321
+ include ::Thrift::Struct, ::Thrift::Struct_Union
322
+ JOBSUBMISSIONINTERFACEID = 1
323
+ SECURITYPROTOCOL = 2
324
+ NODEID = 3
325
+ EXECUTABLETYPE = 4
326
+ PROVIDERNAME = 5
327
+ USERACCOUNTNAME = 6
328
+
329
+ FIELDS = {
330
+ JOBSUBMISSIONINTERFACEID => {:type => ::Thrift::Types::STRING, :name => 'jobSubmissionInterfaceId', :default => %q"DO_NOT_SET_AT_CLIENTS"},
331
+ SECURITYPROTOCOL => {:type => ::Thrift::Types::I32, :name => 'securityProtocol', :enum_class => ::SecurityProtocol},
332
+ NODEID => {:type => ::Thrift::Types::STRING, :name => 'nodeId'},
333
+ EXECUTABLETYPE => {:type => ::Thrift::Types::STRING, :name => 'executableType'},
334
+ PROVIDERNAME => {:type => ::Thrift::Types::I32, :name => 'providerName', :enum_class => ::ProviderName},
335
+ USERACCOUNTNAME => {:type => ::Thrift::Types::STRING, :name => 'userAccountName'}
336
+ }
337
+
338
+ def struct_fields; FIELDS; end
339
+
340
+ def validate
341
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field jobSubmissionInterfaceId is unset!') unless @jobSubmissionInterfaceId
342
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field securityProtocol is unset!') unless @securityProtocol
343
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field nodeId is unset!') unless @nodeId
344
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field executableType is unset!') unless @executableType
345
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field providerName is unset!') unless @providerName
346
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field userAccountName is unset!') unless @userAccountName
347
+ unless @securityProtocol.nil? || ::SecurityProtocol::VALID_VALUES.include?(@securityProtocol)
348
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field securityProtocol!')
349
+ end
350
+ unless @providerName.nil? || ::ProviderName::VALID_VALUES.include?(@providerName)
351
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field providerName!')
352
+ end
353
+ end
354
+
355
+ ::Thrift::Struct.generate_accessors self
356
+ end
357
+
358
+ # Job Submission Interfaces
359
+ #
360
+ # jobSubmissionInterfaceId: The Job Submission Interface has to be previously registered and referenced here.
361
+ #
362
+ # priorityOrder:
363
+ # For resources with multiple interfaces, the priority order should be selected.
364
+ # Lower the numerical number, higher the priority
365
+ #
366
+ class JobSubmissionInterface
367
+ include ::Thrift::Struct, ::Thrift::Struct_Union
368
+ JOBSUBMISSIONINTERFACEID = 1
369
+ JOBSUBMISSIONPROTOCOL = 2
370
+ PRIORITYORDER = 3
371
+
372
+ FIELDS = {
373
+ JOBSUBMISSIONINTERFACEID => {:type => ::Thrift::Types::STRING, :name => 'jobSubmissionInterfaceId'},
374
+ JOBSUBMISSIONPROTOCOL => {:type => ::Thrift::Types::I32, :name => 'jobSubmissionProtocol', :enum_class => ::JobSubmissionProtocol},
375
+ PRIORITYORDER => {:type => ::Thrift::Types::I32, :name => 'priorityOrder', :default => 0}
376
+ }
377
+
378
+ def struct_fields; FIELDS; end
379
+
380
+ def validate
381
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field jobSubmissionInterfaceId is unset!') unless @jobSubmissionInterfaceId
382
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field jobSubmissionProtocol is unset!') unless @jobSubmissionProtocol
383
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field priorityOrder is unset!') unless @priorityOrder
384
+ unless @jobSubmissionProtocol.nil? || ::JobSubmissionProtocol::VALID_VALUES.include?(@jobSubmissionProtocol)
385
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field jobSubmissionProtocol!')
386
+ end
387
+ end
388
+
389
+ ::Thrift::Struct.generate_accessors self
390
+ end
391
+
392
+ # Computational Resource Description
393
+ #
394
+ # computeResourceId: Airavata Internal Unique Identifier to distinguish Compute Resource.
395
+ #
396
+ # hostName:
397
+ # Fully Qualified Host Name.
398
+ #
399
+ # hostAliases:
400
+ # Aliases if any.
401
+ #
402
+ # ipAddress:
403
+ # IP Addresses of the Resource.
404
+ #
405
+ # resourceDescription:
406
+ # A user friendly description of the resource.
407
+ #
408
+ # JobSubmissionProtocols:
409
+ # A computational resources may have one or more ways of submitting Jobs. This structure
410
+ # will hold all available mechanisms to interact with the resource.
411
+ # The key is the priority
412
+ #
413
+ # DataMovementProtocol:
414
+ # Option to specify a prefered data movement mechanism of the available options.
415
+ #
416
+ # fileSystems:
417
+ # Map of file systems type and the path.
418
+ #
419
+ class ComputeResourceDescription
420
+ include ::Thrift::Struct, ::Thrift::Struct_Union
421
+ COMPUTERESOURCEID = 1
422
+ HOSTNAME = 2
423
+ HOSTALIASES = 3
424
+ IPADDRESSES = 4
425
+ RESOURCEDESCRIPTION = 5
426
+ ENABLED = 6
427
+ BATCHQUEUES = 7
428
+ FILESYSTEMS = 8
429
+ JOBSUBMISSIONINTERFACES = 9
430
+ DATAMOVEMENTINTERFACES = 10
431
+ MAXMEMORYPERNODE = 11
432
+ GATEWAYUSAGEREPORTING = 12
433
+ GATEWAYUSAGEMODULELOADCOMMAND = 13
434
+ GATEWAYUSAGEEXECUTABLE = 14
435
+ CPUSPERNODE = 15
436
+ DEFAULTNODECOUNT = 16
437
+ DEFAULTCPUCOUNT = 17
438
+ DEFAULTWALLTIME = 18
439
+
440
+ FIELDS = {
441
+ COMPUTERESOURCEID => {:type => ::Thrift::Types::STRING, :name => 'computeResourceId', :default => %q"DO_NOT_SET_AT_CLIENTS"},
442
+ HOSTNAME => {:type => ::Thrift::Types::STRING, :name => 'hostName'},
443
+ HOSTALIASES => {:type => ::Thrift::Types::LIST, :name => 'hostAliases', :element => {:type => ::Thrift::Types::STRING}, :optional => true},
444
+ IPADDRESSES => {:type => ::Thrift::Types::LIST, :name => 'ipAddresses', :element => {:type => ::Thrift::Types::STRING}, :optional => true},
445
+ RESOURCEDESCRIPTION => {:type => ::Thrift::Types::STRING, :name => 'resourceDescription', :optional => true},
446
+ ENABLED => {:type => ::Thrift::Types::BOOL, :name => 'enabled', :optional => true},
447
+ BATCHQUEUES => {:type => ::Thrift::Types::LIST, :name => 'batchQueues', :element => {:type => ::Thrift::Types::STRUCT, :class => ::BatchQueue}, :optional => true},
448
+ FILESYSTEMS => {:type => ::Thrift::Types::MAP, :name => 'fileSystems', :key => {:type => ::Thrift::Types::I32, :enum_class => ::FileSystems}, :value => {:type => ::Thrift::Types::STRING}, :optional => true},
449
+ JOBSUBMISSIONINTERFACES => {:type => ::Thrift::Types::LIST, :name => 'jobSubmissionInterfaces', :element => {:type => ::Thrift::Types::STRUCT, :class => ::JobSubmissionInterface}, :optional => true},
450
+ DATAMOVEMENTINTERFACES => {:type => ::Thrift::Types::LIST, :name => 'dataMovementInterfaces', :element => {:type => ::Thrift::Types::STRUCT, :class => ::DataMovementInterface}, :optional => true},
451
+ MAXMEMORYPERNODE => {:type => ::Thrift::Types::I32, :name => 'maxMemoryPerNode', :optional => true},
452
+ GATEWAYUSAGEREPORTING => {:type => ::Thrift::Types::BOOL, :name => 'gatewayUsageReporting', :optional => true},
453
+ GATEWAYUSAGEMODULELOADCOMMAND => {:type => ::Thrift::Types::STRING, :name => 'gatewayUsageModuleLoadCommand', :optional => true},
454
+ GATEWAYUSAGEEXECUTABLE => {:type => ::Thrift::Types::STRING, :name => 'gatewayUsageExecutable', :optional => true},
455
+ CPUSPERNODE => {:type => ::Thrift::Types::I32, :name => 'cpusPerNode', :optional => true},
456
+ DEFAULTNODECOUNT => {:type => ::Thrift::Types::I32, :name => 'defaultNodeCount', :optional => true},
457
+ DEFAULTCPUCOUNT => {:type => ::Thrift::Types::I32, :name => 'defaultCPUCount', :optional => true},
458
+ DEFAULTWALLTIME => {:type => ::Thrift::Types::I32, :name => 'defaultWalltime', :optional => true}
459
+ }
460
+
461
+ def struct_fields; FIELDS; end
462
+
463
+ def validate
464
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field computeResourceId is unset!') unless @computeResourceId
465
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field hostName is unset!') unless @hostName
466
+ end
467
+
468
+ ::Thrift::Struct.generate_accessors self
469
+ end
470
+