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 'tenant_profile_model_types'
9
+
@@ -0,0 +1,108 @@
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
+
10
+
11
+ module TenantApprovalStatus
12
+ REQUESTED = 0
13
+ APPROVED = 1
14
+ ACTIVE = 2
15
+ DEACTIVATED = 3
16
+ CANCELLED = 4
17
+ DENIED = 5
18
+ CREATED = 6
19
+ DEPLOYED = 7
20
+ VALUE_MAP = {0 => "REQUESTED", 1 => "APPROVED", 2 => "ACTIVE", 3 => "DEACTIVATED", 4 => "CANCELLED", 5 => "DENIED", 6 => "CREATED", 7 => "DEPLOYED"}
21
+ VALID_VALUES = Set.new([REQUESTED, APPROVED, ACTIVE, DEACTIVATED, CANCELLED, DENIED, CREATED, DEPLOYED]).freeze
22
+ end
23
+
24
+ class TenantPreferences
25
+ include ::Thrift::Struct, ::Thrift::Struct_Union
26
+ TENANTADMINFIRSTNAME = 10
27
+ TENANTADMINLASTNAME = 11
28
+ TENANTADMINEMAIL = 12
29
+
30
+ FIELDS = {
31
+ TENANTADMINFIRSTNAME => {:type => ::Thrift::Types::STRING, :name => 'tenantAdminFirstName', :optional => true},
32
+ TENANTADMINLASTNAME => {:type => ::Thrift::Types::STRING, :name => 'tenantAdminLastName', :optional => true},
33
+ TENANTADMINEMAIL => {:type => ::Thrift::Types::STRING, :name => 'tenantAdminEmail', :optional => true}
34
+ }
35
+
36
+ def struct_fields; FIELDS; end
37
+
38
+ def validate
39
+ end
40
+
41
+ ::Thrift::Struct.generate_accessors self
42
+ end
43
+
44
+ class TenantConfig
45
+ include ::Thrift::Struct, ::Thrift::Struct_Union
46
+ OAUTHCLIENTID = 16
47
+ OAUTHCLIENTSECRET = 17
48
+ IDENTITYSERVERUSERNAME = 13
49
+ IDENTITYSERVERPASSWORDTOKEN = 14
50
+
51
+ FIELDS = {
52
+ OAUTHCLIENTID => {:type => ::Thrift::Types::STRING, :name => 'oauthClientId', :optional => true},
53
+ OAUTHCLIENTSECRET => {:type => ::Thrift::Types::STRING, :name => 'oauthClientSecret', :optional => true},
54
+ IDENTITYSERVERUSERNAME => {:type => ::Thrift::Types::STRING, :name => 'identityServerUserName', :optional => true},
55
+ IDENTITYSERVERPASSWORDTOKEN => {:type => ::Thrift::Types::STRING, :name => 'identityServerPasswordToken', :optional => true}
56
+ }
57
+
58
+ def struct_fields; FIELDS; end
59
+
60
+ def validate
61
+ end
62
+
63
+ ::Thrift::Struct.generate_accessors self
64
+ end
65
+
66
+ class Tenant
67
+ include ::Thrift::Struct, ::Thrift::Struct_Union
68
+ TENANTID = 1
69
+ TENANTAPPROVALSTATUS = 2
70
+ TENANTNAME = 3
71
+ DOMAIN = 4
72
+ EMAILADDRESS = 5
73
+ TENANTACRONYM = 6
74
+ TENANTURL = 7
75
+ TENANTPUBLICABSTRACT = 8
76
+ REVIEWPROPOSALDESCRIPTION = 9
77
+ DECLINEDREASON = 15
78
+ REQUESTCREATIONTIME = 18
79
+ REQUESTERUSERNAME = 19
80
+
81
+ FIELDS = {
82
+ TENANTID => {:type => ::Thrift::Types::STRING, :name => 'tenantId'},
83
+ TENANTAPPROVALSTATUS => {:type => ::Thrift::Types::I32, :name => 'tenantApprovalStatus', :enum_class => ::TenantApprovalStatus},
84
+ TENANTNAME => {:type => ::Thrift::Types::STRING, :name => 'tenantName', :optional => true},
85
+ DOMAIN => {:type => ::Thrift::Types::STRING, :name => 'domain', :optional => true},
86
+ EMAILADDRESS => {:type => ::Thrift::Types::STRING, :name => 'emailAddress', :optional => true},
87
+ TENANTACRONYM => {:type => ::Thrift::Types::STRING, :name => 'tenantAcronym', :optional => true},
88
+ TENANTURL => {:type => ::Thrift::Types::STRING, :name => 'tenantURL', :optional => true},
89
+ TENANTPUBLICABSTRACT => {:type => ::Thrift::Types::STRING, :name => 'tenantPublicAbstract', :optional => true},
90
+ REVIEWPROPOSALDESCRIPTION => {:type => ::Thrift::Types::STRING, :name => 'reviewProposalDescription', :optional => true},
91
+ DECLINEDREASON => {:type => ::Thrift::Types::STRING, :name => 'declinedReason', :optional => true},
92
+ REQUESTCREATIONTIME => {:type => ::Thrift::Types::I64, :name => 'requestCreationTime', :optional => true},
93
+ REQUESTERUSERNAME => {:type => ::Thrift::Types::STRING, :name => 'requesterUsername', :optional => true}
94
+ }
95
+
96
+ def struct_fields; FIELDS; end
97
+
98
+ def validate
99
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field tenantId is unset!') unless @tenantId
100
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field tenantApprovalStatus is unset!') unless @tenantApprovalStatus
101
+ unless @tenantApprovalStatus.nil? || ::TenantApprovalStatus::VALID_VALUES.include?(@tenantApprovalStatus)
102
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field tenantApprovalStatus!')
103
+ end
104
+ end
105
+
106
+ ::Thrift::Struct.generate_accessors self
107
+ end
108
+
@@ -0,0 +1,11 @@
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 'user_profile_model_types'
9
+
10
+ USER_PROFILE_VERSION = %q"1.0"
11
+
@@ -0,0 +1,300 @@
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
+
10
+
11
+ module Status
12
+ ACTIVE = 0
13
+ CONFIRMED = 1
14
+ APPROVED = 2
15
+ DELETED = 3
16
+ DUPLICATE = 4
17
+ GRACE_PERIOD = 5
18
+ INVITED = 6
19
+ DENIED = 7
20
+ PENDING = 8
21
+ PENDING_APPROVAL = 9
22
+ PENDING_CONFIRMATION = 10
23
+ SUSPENDED = 11
24
+ DECLINED = 12
25
+ EXPIRED = 13
26
+ VALUE_MAP = {0 => "ACTIVE", 1 => "CONFIRMED", 2 => "APPROVED", 3 => "DELETED", 4 => "DUPLICATE", 5 => "GRACE_PERIOD", 6 => "INVITED", 7 => "DENIED", 8 => "PENDING", 9 => "PENDING_APPROVAL", 10 => "PENDING_CONFIRMATION", 11 => "SUSPENDED", 12 => "DECLINED", 13 => "EXPIRED"}
27
+ VALID_VALUES = Set.new([ACTIVE, CONFIRMED, APPROVED, DELETED, DUPLICATE, GRACE_PERIOD, INVITED, DENIED, PENDING, PENDING_APPROVAL, PENDING_CONFIRMATION, SUSPENDED, DECLINED, EXPIRED]).freeze
28
+ end
29
+
30
+ module USCitizenship
31
+ US_CITIZEN = 0
32
+ US_PERMANENT_RESIDENT = 1
33
+ OTHER_NON_US_CITIZEN = 2
34
+ VALUE_MAP = {0 => "US_CITIZEN", 1 => "US_PERMANENT_RESIDENT", 2 => "OTHER_NON_US_CITIZEN"}
35
+ VALID_VALUES = Set.new([US_CITIZEN, US_PERMANENT_RESIDENT, OTHER_NON_US_CITIZEN]).freeze
36
+ end
37
+
38
+ module Ethnicity
39
+ HISPANIC_LATINO = 0
40
+ NOT_HISPANIC_LATINO = 1
41
+ VALUE_MAP = {0 => "HISPANIC_LATINO", 1 => "NOT_HISPANIC_LATINO"}
42
+ VALID_VALUES = Set.new([HISPANIC_LATINO, NOT_HISPANIC_LATINO]).freeze
43
+ end
44
+
45
+ module Race
46
+ ASIAN = 0
47
+ AMERICAN_INDIAN_OR_ALASKAN_NATIVE = 1
48
+ BLACK_OR_AFRICAN_AMERICAN = 2
49
+ NATIVE_HAWAIIAN_OR_PACIFIC_ISLANDER = 3
50
+ WHITE = 4
51
+ VALUE_MAP = {0 => "ASIAN", 1 => "AMERICAN_INDIAN_OR_ALASKAN_NATIVE", 2 => "BLACK_OR_AFRICAN_AMERICAN", 3 => "NATIVE_HAWAIIAN_OR_PACIFIC_ISLANDER", 4 => "WHITE"}
52
+ VALID_VALUES = Set.new([ASIAN, AMERICAN_INDIAN_OR_ALASKAN_NATIVE, BLACK_OR_AFRICAN_AMERICAN, NATIVE_HAWAIIAN_OR_PACIFIC_ISLANDER, WHITE]).freeze
53
+ end
54
+
55
+ module Disability
56
+ HEARING_IMAPAIRED = 0
57
+ VISUAL_IMPAIRED = 1
58
+ MOBILITY_OR_ORTHOPEDIC_IMPAIRMENT = 2
59
+ OTHER_IMPAIRMENT = 3
60
+ VALUE_MAP = {0 => "HEARING_IMAPAIRED", 1 => "VISUAL_IMPAIRED", 2 => "MOBILITY_OR_ORTHOPEDIC_IMPAIRMENT", 3 => "OTHER_IMPAIRMENT"}
61
+ VALID_VALUES = Set.new([HEARING_IMAPAIRED, VISUAL_IMPAIRED, MOBILITY_OR_ORTHOPEDIC_IMPAIRMENT, OTHER_IMPAIRMENT]).freeze
62
+ end
63
+
64
+ # A structure holding the NSF Demographic information.
65
+ #
66
+ #
67
+ class NSFDemographics
68
+ include ::Thrift::Struct, ::Thrift::Struct_Union
69
+ AIRAVATAINTERNALUSERID = 1
70
+ GENDER = 2
71
+ USCITIZENSHIP = 3
72
+ ETHNICITIES = 4
73
+ RACES = 5
74
+ DISABILITIES = 6
75
+
76
+ FIELDS = {
77
+ AIRAVATAINTERNALUSERID => {:type => ::Thrift::Types::STRING, :name => 'airavataInternalUserId', :default => %q"DO_NOT_SET_AT_CLIENTS"},
78
+ GENDER => {:type => ::Thrift::Types::STRING, :name => 'gender', :optional => true},
79
+ USCITIZENSHIP => {:type => ::Thrift::Types::I32, :name => 'usCitizenship', :optional => true, :enum_class => ::USCitizenship},
80
+ ETHNICITIES => {:type => ::Thrift::Types::LIST, :name => 'ethnicities', :element => {:type => ::Thrift::Types::I32, :enum_class => ::Ethnicity}, :optional => true},
81
+ RACES => {:type => ::Thrift::Types::LIST, :name => 'races', :element => {:type => ::Thrift::Types::I32, :enum_class => ::Race}, :optional => true},
82
+ DISABILITIES => {:type => ::Thrift::Types::LIST, :name => 'disabilities', :element => {:type => ::Thrift::Types::I32, :enum_class => ::Disability}, :optional => true}
83
+ }
84
+
85
+ def struct_fields; FIELDS; end
86
+
87
+ def validate
88
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field airavataInternalUserId is unset!') unless @airavataInternalUserId
89
+ unless @usCitizenship.nil? || ::USCitizenship::VALID_VALUES.include?(@usCitizenship)
90
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field usCitizenship!')
91
+ end
92
+ end
93
+
94
+ ::Thrift::Struct.generate_accessors self
95
+ end
96
+
97
+ # A structure holding the cutomized admin dashboard information.
98
+ #
99
+ #
100
+ class CustomDashboard
101
+ include ::Thrift::Struct, ::Thrift::Struct_Union
102
+ AIRAVATAINTERNALUSERID = 1
103
+ EXPERIMENTID = 2
104
+ NAME = 3
105
+ DESCRIPTION = 4
106
+ PROJECT = 5
107
+ OWNER = 6
108
+ APPLICATION = 7
109
+ COMPUTERESOURCE = 8
110
+ JOBNAME = 9
111
+ JOBID = 10
112
+ JOBSTATUS = 11
113
+ JOBCREATIONTIME = 12
114
+ NOTIFICATIONSTO = 13
115
+ WORKINGDIR = 14
116
+ JOBDESCRIPTION = 15
117
+ CREATIONTIME = 16
118
+ LASTMODIFIEDTIME = 17
119
+ WALLTIME = 18
120
+ CPUCOUNT = 19
121
+ NODECOUNT = 20
122
+ QUEUE = 21
123
+ INPUTS = 22
124
+ OUTPUTS = 23
125
+ STORAGEDIR = 24
126
+ ERRORS = 25
127
+
128
+ FIELDS = {
129
+ AIRAVATAINTERNALUSERID => {:type => ::Thrift::Types::STRING, :name => 'airavataInternalUserId', :default => %q"DO_NOT_SET_AT_CLIENTS"},
130
+ EXPERIMENTID => {:type => ::Thrift::Types::STRING, :name => 'experimentId', :optional => true},
131
+ NAME => {:type => ::Thrift::Types::STRING, :name => 'name', :optional => true},
132
+ DESCRIPTION => {:type => ::Thrift::Types::STRING, :name => 'description', :optional => true},
133
+ PROJECT => {:type => ::Thrift::Types::STRING, :name => 'project', :optional => true},
134
+ OWNER => {:type => ::Thrift::Types::STRING, :name => 'owner', :optional => true},
135
+ APPLICATION => {:type => ::Thrift::Types::STRING, :name => 'application', :optional => true},
136
+ COMPUTERESOURCE => {:type => ::Thrift::Types::STRING, :name => 'computeResource', :optional => true},
137
+ JOBNAME => {:type => ::Thrift::Types::STRING, :name => 'jobName', :optional => true},
138
+ JOBID => {:type => ::Thrift::Types::STRING, :name => 'jobId', :optional => true},
139
+ JOBSTATUS => {:type => ::Thrift::Types::STRING, :name => 'jobStatus', :optional => true},
140
+ JOBCREATIONTIME => {:type => ::Thrift::Types::STRING, :name => 'jobCreationTime', :optional => true},
141
+ NOTIFICATIONSTO => {:type => ::Thrift::Types::STRING, :name => 'notificationsTo', :optional => true},
142
+ WORKINGDIR => {:type => ::Thrift::Types::STRING, :name => 'workingDir', :optional => true},
143
+ JOBDESCRIPTION => {:type => ::Thrift::Types::STRING, :name => 'jobDescription', :optional => true},
144
+ CREATIONTIME => {:type => ::Thrift::Types::STRING, :name => 'creationTime', :optional => true},
145
+ LASTMODIFIEDTIME => {:type => ::Thrift::Types::STRING, :name => 'lastModifiedTime', :optional => true},
146
+ WALLTIME => {:type => ::Thrift::Types::STRING, :name => 'wallTime', :optional => true},
147
+ CPUCOUNT => {:type => ::Thrift::Types::STRING, :name => 'cpuCount', :optional => true},
148
+ NODECOUNT => {:type => ::Thrift::Types::STRING, :name => 'nodeCount', :optional => true},
149
+ QUEUE => {:type => ::Thrift::Types::STRING, :name => 'queue', :optional => true},
150
+ INPUTS => {:type => ::Thrift::Types::STRING, :name => 'inputs', :optional => true},
151
+ OUTPUTS => {:type => ::Thrift::Types::STRING, :name => 'outputs', :optional => true},
152
+ STORAGEDIR => {:type => ::Thrift::Types::STRING, :name => 'storageDir', :optional => true},
153
+ ERRORS => {:type => ::Thrift::Types::STRING, :name => 'errors', :optional => true}
154
+ }
155
+
156
+ def struct_fields; FIELDS; end
157
+
158
+ def validate
159
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field airavataInternalUserId is unset!') unless @airavataInternalUserId
160
+ end
161
+
162
+ ::Thrift::Struct.generate_accessors self
163
+ end
164
+
165
+ # * A structure holding the user profile and its child models.
166
+ # *
167
+ # * Notes:
168
+ # * The model does not include passwords as it is assumed an external identity provider is used to authenticate user.
169
+ # * References:
170
+ # * NSF Demographic Information - http://www.nsf.gov/pubs/2000/00form1225/00form1225.doc
171
+ # * LDAP Schema - https://tools.ietf.org/html/rfc4519
172
+ # * SCIM 2.0 - https://tools.ietf.org/html/rfc7643
173
+ # *
174
+ # * userModelVersion:
175
+ # * Version number of profile
176
+ # *
177
+ # * airavataInternalUserId:
178
+ # * internal to Airavata, not intended to be used outside of the Airavata platform or possibly by gateways
179
+ # * (that is, never shown to users), never reassigned, REQUIRED
180
+ # *
181
+ # * userId:
182
+ # * Externally assertable unique identifier. SAML (primarly in higher education, academic) tends to keep
183
+ # * user name less opaque. OpenID Connect maintains them to be opaque.
184
+ # *
185
+ # * firstName, middleName, lastName:
186
+ # * First and Last names as assertede by the user
187
+ # *
188
+ # * namePrefix, nameSuffix:
189
+ # * prefix and suffix to the users name as asserted by the user
190
+ # *
191
+ # * emails:
192
+ # * Email identifier are Verified, REQUIRED and MULTIVALUED
193
+ # *
194
+ # * userName:
195
+ # * Name-based identifiers can be multivalues. To keep it simple, Airavata will make it a string.
196
+ # * In the future these can be enumerated as:
197
+ # * Official name (as asserted possibly by some external identity provider)
198
+ # * Prefered name (as asserted or suggested by user directly)
199
+ # * Components:
200
+ # * givenName
201
+ # * surname (familyName)
202
+ # * displayName (often asserted by user to handle things like middle names, suffix, prefix, and the like)
203
+ # *
204
+ # * orcidId: ORCID ID - http://orcid.org/about/what-is-orcid)
205
+ # *
206
+ # * phones: Telephone MULTIVALUED
207
+ # *
208
+ # * country: Country of Residance
209
+ # *
210
+ # * nationality Countries of citizenship
211
+ # *
212
+ # * comments:
213
+ # * Free-form information (treated as opaque by Airavata and simply passed to resource).
214
+ # *
215
+ # * labeledURI:
216
+ # * Google Scholar, Web of Science, ACS, e.t.c
217
+ # *
218
+ # * timeZone:
219
+ # * User’s preferred timezone - IANA Timezone Databases - http://www.iana.org/time-zones.
220
+ # *
221
+ class UserProfile
222
+ include ::Thrift::Struct, ::Thrift::Struct_Union
223
+ USERMODELVERSION = 1
224
+ AIRAVATAINTERNALUSERID = 2
225
+ USERID = 3
226
+ GATEWAYID = 4
227
+ EMAILS = 5
228
+ FIRSTNAME = 6
229
+ LASTNAME = 7
230
+ MIDDLENAME = 8
231
+ NAMEPREFIX = 9
232
+ NAMESUFFIX = 10
233
+ ORCIDID = 11
234
+ PHONES = 12
235
+ COUNTRY = 13
236
+ NATIONALITY = 14
237
+ HOMEORGANIZATION = 15
238
+ ORGINATIONAFFILIATION = 16
239
+ CREATIONTIME = 17
240
+ LASTACCESSTIME = 18
241
+ VALIDUNTIL = 19
242
+ STATE = 20
243
+ COMMENTS = 21
244
+ LABELEDURI = 22
245
+ GPGKEY = 23
246
+ TIMEZONE = 24
247
+ NSFDEMOGRAPHICS = 25
248
+ CUSTOMDASHBOARD = 26
249
+
250
+ FIELDS = {
251
+ USERMODELVERSION => {:type => ::Thrift::Types::STRING, :name => 'userModelVersion', :default => %q"1.0"},
252
+ AIRAVATAINTERNALUSERID => {:type => ::Thrift::Types::STRING, :name => 'airavataInternalUserId', :default => %q"DO_NOT_SET_AT_CLIENTS"},
253
+ USERID => {:type => ::Thrift::Types::STRING, :name => 'userId'},
254
+ GATEWAYID => {:type => ::Thrift::Types::STRING, :name => 'gatewayId'},
255
+ EMAILS => {:type => ::Thrift::Types::LIST, :name => 'emails', :element => {:type => ::Thrift::Types::STRING}},
256
+ FIRSTNAME => {:type => ::Thrift::Types::STRING, :name => 'firstName'},
257
+ LASTNAME => {:type => ::Thrift::Types::STRING, :name => 'lastName'},
258
+ MIDDLENAME => {:type => ::Thrift::Types::STRING, :name => 'middleName', :optional => true},
259
+ NAMEPREFIX => {:type => ::Thrift::Types::STRING, :name => 'namePrefix', :optional => true},
260
+ NAMESUFFIX => {:type => ::Thrift::Types::STRING, :name => 'nameSuffix', :optional => true},
261
+ ORCIDID => {:type => ::Thrift::Types::STRING, :name => 'orcidId', :optional => true},
262
+ PHONES => {:type => ::Thrift::Types::LIST, :name => 'phones', :element => {:type => ::Thrift::Types::STRING}, :optional => true},
263
+ COUNTRY => {:type => ::Thrift::Types::STRING, :name => 'country', :optional => true},
264
+ NATIONALITY => {:type => ::Thrift::Types::LIST, :name => 'nationality', :element => {:type => ::Thrift::Types::STRING}, :optional => true},
265
+ HOMEORGANIZATION => {:type => ::Thrift::Types::STRING, :name => 'homeOrganization', :optional => true},
266
+ ORGINATIONAFFILIATION => {:type => ::Thrift::Types::STRING, :name => 'orginationAffiliation', :optional => true},
267
+ CREATIONTIME => {:type => ::Thrift::Types::I64, :name => 'creationTime'},
268
+ LASTACCESSTIME => {:type => ::Thrift::Types::I64, :name => 'lastAccessTime'},
269
+ VALIDUNTIL => {:type => ::Thrift::Types::I64, :name => 'validUntil'},
270
+ STATE => {:type => ::Thrift::Types::I32, :name => 'State', :enum_class => ::Status},
271
+ COMMENTS => {:type => ::Thrift::Types::STRING, :name => 'comments', :optional => true},
272
+ LABELEDURI => {:type => ::Thrift::Types::LIST, :name => 'labeledURI', :element => {:type => ::Thrift::Types::STRING}, :optional => true},
273
+ GPGKEY => {:type => ::Thrift::Types::STRING, :name => 'gpgKey', :optional => true},
274
+ TIMEZONE => {:type => ::Thrift::Types::STRING, :name => 'timeZone', :optional => true},
275
+ NSFDEMOGRAPHICS => {:type => ::Thrift::Types::STRUCT, :name => 'nsfDemographics', :class => ::NSFDemographics, :optional => true},
276
+ CUSTOMDASHBOARD => {:type => ::Thrift::Types::STRUCT, :name => 'customDashboard', :class => ::CustomDashboard, :optional => true}
277
+ }
278
+
279
+ def struct_fields; FIELDS; end
280
+
281
+ def validate
282
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field userModelVersion is unset!') unless @userModelVersion
283
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field airavataInternalUserId is unset!') unless @airavataInternalUserId
284
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field userId is unset!') unless @userId
285
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field gatewayId is unset!') unless @gatewayId
286
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field emails is unset!') unless @emails
287
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field firstName is unset!') unless @firstName
288
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field lastName is unset!') unless @lastName
289
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field creationTime is unset!') unless @creationTime
290
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field lastAccessTime is unset!') unless @lastAccessTime
291
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field validUntil is unset!') unless @validUntil
292
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field State is unset!') unless @State
293
+ unless @State.nil? || ::Status::VALID_VALUES.include?(@State)
294
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field State!')
295
+ end
296
+ end
297
+
298
+ ::Thrift::Struct.generate_accessors self
299
+ end
300
+
@@ -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 'user_resource_profile_model_types'
9
+
@@ -0,0 +1,150 @@
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
+ require 'data_movement_models_types'
10
+ require 'user_profile_model_types'
11
+
12
+
13
+ # User specific preferences for a Computer Resource
14
+ #
15
+ # computeResourceId:
16
+ # Corelate the preference to a compute resource.
17
+ #
18
+ #
19
+ # loginUserName:
20
+ # If turned true, Airavata will override the preferences of better alternatives exist.
21
+ #
22
+ #
23
+ # preferredBatchQueue:
24
+ # Gateways can choose a defualt batch queue based on average job dimention, reservations or other metrics.
25
+ #
26
+ # scratchLocation:
27
+ # Path to the local scratch space on a HPC cluster. Typically used to create working directory for job execution.
28
+ #
29
+ # allocationProjectNumber:
30
+ # Typically used on HPC machines to charge computing usage to a account number. For instance, on XSEDE once an
31
+ # allocation is approved, an allocation number is assigned. Before passing this number with job submittions, the
32
+ # account to be used has to be added to the allocation.
33
+ #
34
+ # resourceSpecificCredentialStoreToken:
35
+ # Resource specific credential store token. If this token is specified, then it is superceeded by the gateway's
36
+ # default credential store.
37
+ #
38
+ # validated:
39
+ # If true the the configuration has been validated in the sense that the username and credential can be used to
40
+ # login to the remote host and the scratchLocation is a valid location that the user has permission to write to.
41
+ # Should be treated as read-only and only mutated by Airavata middleware.
42
+ #
43
+ class UserComputeResourcePreference
44
+ include ::Thrift::Struct, ::Thrift::Struct_Union
45
+ COMPUTERESOURCEID = 1
46
+ LOGINUSERNAME = 2
47
+ PREFERREDBATCHQUEUE = 3
48
+ SCRATCHLOCATION = 4
49
+ ALLOCATIONPROJECTNUMBER = 5
50
+ RESOURCESPECIFICCREDENTIALSTORETOKEN = 6
51
+ QUALITYOFSERVICE = 7
52
+ RESERVATION = 8
53
+ RESERVATIONSTARTTIME = 9
54
+ RESERVATIONENDTIME = 10
55
+ VALIDATED = 11
56
+
57
+ FIELDS = {
58
+ COMPUTERESOURCEID => {:type => ::Thrift::Types::STRING, :name => 'computeResourceId'},
59
+ LOGINUSERNAME => {:type => ::Thrift::Types::STRING, :name => 'loginUserName', :optional => true},
60
+ PREFERREDBATCHQUEUE => {:type => ::Thrift::Types::STRING, :name => 'preferredBatchQueue', :optional => true},
61
+ SCRATCHLOCATION => {:type => ::Thrift::Types::STRING, :name => 'scratchLocation', :optional => true},
62
+ ALLOCATIONPROJECTNUMBER => {:type => ::Thrift::Types::STRING, :name => 'allocationProjectNumber', :optional => true},
63
+ RESOURCESPECIFICCREDENTIALSTORETOKEN => {:type => ::Thrift::Types::STRING, :name => 'resourceSpecificCredentialStoreToken', :optional => true},
64
+ QUALITYOFSERVICE => {:type => ::Thrift::Types::STRING, :name => 'qualityOfService', :optional => true},
65
+ RESERVATION => {:type => ::Thrift::Types::STRING, :name => 'reservation', :optional => true},
66
+ RESERVATIONSTARTTIME => {:type => ::Thrift::Types::I64, :name => 'reservationStartTime', :optional => true},
67
+ RESERVATIONENDTIME => {:type => ::Thrift::Types::I64, :name => 'reservationEndTime', :optional => true},
68
+ VALIDATED => {:type => ::Thrift::Types::BOOL, :name => 'validated', :default => false, :optional => true}
69
+ }
70
+
71
+ def struct_fields; FIELDS; end
72
+
73
+ def validate
74
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field computeResourceId is unset!') unless @computeResourceId
75
+ end
76
+
77
+ ::Thrift::Struct.generate_accessors self
78
+ end
79
+
80
+ class UserStoragePreference
81
+ include ::Thrift::Struct, ::Thrift::Struct_Union
82
+ STORAGERESOURCEID = 1
83
+ LOGINUSERNAME = 2
84
+ FILESYSTEMROOTLOCATION = 3
85
+ RESOURCESPECIFICCREDENTIALSTORETOKEN = 4
86
+
87
+ FIELDS = {
88
+ STORAGERESOURCEID => {:type => ::Thrift::Types::STRING, :name => 'storageResourceId'},
89
+ LOGINUSERNAME => {:type => ::Thrift::Types::STRING, :name => 'loginUserName', :optional => true},
90
+ FILESYSTEMROOTLOCATION => {:type => ::Thrift::Types::STRING, :name => 'fileSystemRootLocation', :optional => true},
91
+ RESOURCESPECIFICCREDENTIALSTORETOKEN => {:type => ::Thrift::Types::STRING, :name => 'resourceSpecificCredentialStoreToken', :optional => true}
92
+ }
93
+
94
+ def struct_fields; FIELDS; end
95
+
96
+ def validate
97
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field storageResourceId is unset!') unless @storageResourceId
98
+ end
99
+
100
+ ::Thrift::Struct.generate_accessors self
101
+ end
102
+
103
+ # User Resource Profile
104
+ #
105
+ # userId:
106
+ # Unique identifier used to link user to corresponding user data model
107
+ #
108
+ # gatewayID:
109
+ # Unique identifier for the gateway assigned by Airavata. Corelate this to Airavata Admin API Gateway Registration.
110
+ #
111
+ # credentialStoreToken:
112
+ # Gateway's defualt credential store token.
113
+ #
114
+ # computeResourcePreferences:
115
+ # List of resource preferences for each of the registered compute resources.
116
+ #
117
+ # identityServerTenant:
118
+ #
119
+ # identityServerPwdCredToken:
120
+ #
121
+ class UserResourceProfile
122
+ include ::Thrift::Struct, ::Thrift::Struct_Union
123
+ USERID = 1
124
+ GATEWAYID = 2
125
+ CREDENTIALSTORETOKEN = 3
126
+ USERCOMPUTERESOURCEPREFERENCES = 4
127
+ USERSTORAGEPREFERENCES = 5
128
+ IDENTITYSERVERTENANT = 6
129
+ IDENTITYSERVERPWDCREDTOKEN = 7
130
+
131
+ FIELDS = {
132
+ USERID => {:type => ::Thrift::Types::STRING, :name => 'userId'},
133
+ GATEWAYID => {:type => ::Thrift::Types::STRING, :name => 'gatewayID'},
134
+ CREDENTIALSTORETOKEN => {:type => ::Thrift::Types::STRING, :name => 'credentialStoreToken', :optional => true},
135
+ USERCOMPUTERESOURCEPREFERENCES => {:type => ::Thrift::Types::LIST, :name => 'userComputeResourcePreferences', :element => {:type => ::Thrift::Types::STRUCT, :class => ::UserComputeResourcePreference}, :optional => true},
136
+ USERSTORAGEPREFERENCES => {:type => ::Thrift::Types::LIST, :name => 'userStoragePreferences', :element => {:type => ::Thrift::Types::STRUCT, :class => ::UserStoragePreference}, :optional => true},
137
+ IDENTITYSERVERTENANT => {:type => ::Thrift::Types::STRING, :name => 'identityServerTenant', :optional => true},
138
+ IDENTITYSERVERPWDCREDTOKEN => {:type => ::Thrift::Types::STRING, :name => 'identityServerPwdCredToken', :optional => true}
139
+ }
140
+
141
+ def struct_fields; FIELDS; end
142
+
143
+ def validate
144
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field userId is unset!') unless @userId
145
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field gatewayID is unset!') unless @gatewayID
146
+ end
147
+
148
+ ::Thrift::Struct.generate_accessors self
149
+ end
150
+