1use crate::{
2 access_request::{
3 BrowserCustodianStudyAccessRequestApproveRequest,
4 BrowserCustodianStudyAccessRequestListRequest,
5 BrowserCustodianStudyAccessRequestRejectRequest,
6 BrowserRequesterStudyAccessRequestDetailRequest,
7 BrowserRequesterStudyAccessRequestListRequest,
8 BrowserRequesterStudyAccessRequestWithdrawRequest,
9 BrowserStudyAccessRequestSubmissionRequest,
10 },
11 asset::{
12 AssetDuoClearRequest, AssetDuoListRequest, AssetDuoReplaceRequest, AssetGetRequest,
13 AssetListRequest, AssetVersionsRequest,
14 },
15 datafile::GetDataFileMetadataRequest,
16 datafile::{
17 BrowserDataFileSearchRequest, ExportDataFileRequest, ListDataFilesRequest,
18 SearchDataFilesRequest,
19 },
20 dataset::{
21 BrowserDatasetSearchRequest, DatasetDataRequest, DatasetTransformRequest,
22 ExportDatasetRequest, GetDatasetMetadataRequest, ListDatasetsRequest,
23 PreviewDatasetRequest, SearchDatasetsRequest,
24 },
25 datastore::{BrowserDatastoreDiscoveryRequest, DatastoreInfoRequest, DatastorePingRequest},
26 dictionary::{
27 AddVariableRequest, AddVocabularyRequest, BrowserVariableSearchRequest, GetVariableRequest,
28 GetVocabularyRequest, ListVariablesRequest, ListVocabulariesRequest,
29 SearchVariablesRequest, UpdateVariableRequest,
30 },
31 dictionary_discovery::BrowserDictionaryDiscoveryRequest,
32 domain::{
33 AddDomainRequest, BrowserDomainCollectionRequest, BrowserDomainDetailRequest,
34 BrowserDomainStudyCollectionRequest, BrowserDomainVariableCollectionRequest,
35 BrowserDomainVariableDetailRequest, BrowserVocabularyDetailRequest,
36 BrowserVocabularyItemCollectionRequest, BrowserVocabularyMappingCollectionRequest,
37 GetDomainRequest, ListDomainsRequest,
38 },
39 execution_profile::{ExecutionProfileListRequest, ExecutionProfileSelectRequest},
40 ingest::{
41 DatasetCreateFromDatafileRequest, IngestDatasetFileRequest, IngestFileRequest,
42 IngestRedcapRequest, IngestSqlRequest,
43 },
44 lifecycle::{
45 AssetDeleteRequest, DataFileDeleteRequest, DatasetDeleteRequest, DatasetWithdrawRequest,
46 SemanticDeleteRequest, StudyDeleteRequest,
47 },
48 model::{
49 AddEntityRequest, AddRelationRequest, BrowserEntitySearchRequest,
50 BrowserRelationSearchRequest, EntityInstanceAddRequest, EntityInstanceAssetLinkAddRequest,
51 EntityInstanceAssetLinkListRequest, EntityInstanceDatasetLinkAddRequest,
52 EntityInstanceDatasetLinkGetRequest, EntityInstanceDatasetLinkListRequest,
53 EntityInstanceDatasetsRequest, EntityInstanceEnsureFromDatasetRequest,
54 EntityInstanceGetRequest, EntityInstanceListRequest, EntityInstanceMapAddRequest,
55 EntityInstanceMapGetRequest, EntityInstanceMapListRequest, GetEntityRequest,
56 GetRelationRequest, ListEntitiesRequest, ListRelationsRequest, RelationInstanceAddRequest,
57 RelationInstanceAssetLinkAddRequest, RelationInstanceAssetLinkListRequest,
58 RelationInstanceDatasetLinkAddRequest, RelationInstanceDatasetLinkGetRequest,
59 RelationInstanceDatasetLinkListRequest, RelationInstanceEnsureFromDatasetRequest,
60 RelationInstanceGetRequest, RelationInstanceListRequest, RelationInstanceMapAddRequest,
61 RelationInstanceMapGetRequest, RelationInstanceMapListRequest, SearchEntitiesRequest,
62 SearchRelationsRequest,
63 },
64 operation::OperationRef,
65 pagination::PageRequest,
66 readiness::{DaemonDoctorRequest, DaemonVersionRequest},
67 resource_discovery::BrowserResourceDiscoveryRequest,
68 runtime_capabilities::RuntimeCapabilitiesRequest,
69 semantic_discovery::BrowserSemanticCatalogDiscoveryRequest,
70 session::{
71 CurrentStudyClearRequest, CurrentStudyCurrentRequest, CurrentStudySetRequest,
72 SessionCloseAllRequest, SessionCloseRequest, SessionListRequest, SessionOpenRequest,
73 SessionStatusRequest, SessionUseRequest, StudyContextListRequest,
74 },
75 study::{
76 AddStudyDomainRequest, AddStudyRequest, BrowserStudyDetailRequest,
77 BrowserStudyDiscoveryRequest, BrowserStudySearchRequest, GetStudyRequest,
78 ListStudiesRequest, SearchStudiesRequest, StudyAccessGrantRequest, StudyAccessListRequest,
79 StudyAccessRevokeRequest, StudyCustodianMutationRequest, StudyCustodiansListRequest,
80 StudyDuoListRequest, StudyDuoReplaceRequest,
81 },
82 tag::{TagGetRequest, TagListRequest, TagSetRequest},
83 transformation::TransformationListRequest,
84};
85use serde::{Deserialize, Serialize};
86
87pub mod kind {
88 pub const PROTOCOL_INVALID_REQUEST: &str = "protocol.invalid_request";
89 pub const RUNTIME_CAPABILITIES: &str = "runtime.capabilities";
90 pub const EXECUTION_PROFILE_LIST: &str = "execution_profile.list";
91 pub const EXECUTION_PROFILE_SELECT: &str = "execution_profile.select";
92 pub const DAEMON_VERSION: &str = "daemon.version";
93 pub const DAEMON_DOCTOR: &str = "daemon.doctor";
94 pub const DATASTORE_INFO: &str = "datastore.info";
95 pub const DATASTORE_PING: &str = "datastore.ping";
96 pub const BROWSER_DATASTORE_LIST: &str = "browser.datastore.list";
97 pub const BROWSER_STUDY_LIST: &str = "browser.study.list";
98 pub const BROWSER_STUDY_GET: &str = "browser.study.get";
99 pub const BROWSER_STUDY_SEARCH: &str = "browser.study.search";
100 pub const BROWSER_RESOURCE_LIST: &str = "browser.resource.list";
101 pub const BROWSER_DATASET_SEARCH: &str = "browser.dataset.search";
102 pub const BROWSER_DATAFILE_SEARCH: &str = "browser.datafile.search";
103 pub const BROWSER_DICTIONARY_GET: &str = "browser.dictionary.get";
104 pub const BROWSER_VARIABLE_SEARCH: &str = "browser.dictionary.variable.search";
105 pub const BROWSER_DOMAIN_LIST: &str = "browser.domain.list";
106 pub const BROWSER_DOMAIN_GET: &str = "browser.domain.get";
107 pub const BROWSER_DOMAIN_STUDY_LIST: &str = "browser.domain.study.list";
108 pub const BROWSER_DOMAIN_VARIABLE_LIST: &str = "browser.domain.variable.list";
109 pub const BROWSER_DOMAIN_VARIABLE_GET: &str = "browser.domain.variable.get";
110 pub const BROWSER_VOCABULARY_GET: &str = "browser.vocabulary.get";
111 pub const BROWSER_VOCABULARY_ITEM_LIST: &str = "browser.vocabulary.item.list";
112 pub const BROWSER_VOCABULARY_MAPPING_LIST: &str = "browser.vocabulary.mapping.list";
113 pub const BROWSER_SEMANTIC_CATALOG_GET: &str = "browser.semantic_catalog.get";
114 pub const BROWSER_MODEL_ENTITY_SEARCH: &str = "browser.model.entity.search";
115 pub const BROWSER_MODEL_RELATION_SEARCH: &str = "browser.model.relation.search";
116 pub const BROWSER_ACCESS_REQUEST_SUBMIT: &str = "browser.access_request.submit";
117 pub const BROWSER_ACCESS_REQUEST_LIST: &str = "browser.access_request.list";
118 pub const BROWSER_ACCESS_REQUEST_GET: &str = "browser.access_request.get";
119 pub const BROWSER_ACCESS_REQUEST_WITHDRAW: &str = "browser.access_request.withdraw";
120 pub const BROWSER_CUSTODIAN_ACCESS_REQUEST_LIST: &str = "browser.custodian.access_request.list";
121 pub const BROWSER_CUSTODIAN_ACCESS_REQUEST_APPROVE: &str =
122 "browser.custodian.access_request.approve";
123 pub const BROWSER_CUSTODIAN_ACCESS_REQUEST_REJECT: &str =
124 "browser.custodian.access_request.reject";
125 pub const SESSION_LIST: &str = "session.list";
126 pub const SESSION_OPEN: &str = "session.open";
127 pub const SESSION_STATUS: &str = "session.status";
128 pub const SESSION_USE: &str = "session.use";
129 pub const SESSION_CLOSE: &str = "session.close";
130 pub const SESSION_CLOSE_ALL: &str = "session.close_all";
131 pub const CURRENT_STUDY_SET: &str = "study.current.set";
132 pub const CURRENT_STUDY_GET: &str = "study.current.get";
133 pub const CURRENT_STUDY_CLEAR: &str = "study.current.clear";
134 pub const STUDY_CONTEXT_LIST: &str = "study.context.list";
135 pub const DOMAIN_LIST: &str = "domain.list";
136 pub const DOMAIN_GET: &str = "domain.get";
137 pub const DOMAIN_ADD: &str = "domain.add";
138 pub const STUDY_LIST: &str = "study.list";
139 pub const STUDY_SEARCH: &str = "study.search";
140 pub const STUDY_GET: &str = "study.get";
141 pub const STUDY_ADD: &str = "study.add";
142 pub const STUDY_ADD_DOMAIN: &str = "study.add_domain";
143 pub const STUDY_DELETE: &str = "study.delete";
144 pub const STUDY_ACCESS_LIST: &str = "study.access.list";
145 pub const STUDY_ACCESS_GRANT: &str = "study.access.grant";
146 pub const STUDY_ACCESS_REVOKE: &str = "study.access.revoke";
147 pub const STUDY_CUSTODIANS_LIST: &str = "study.custodians.list";
148 pub const STUDY_CUSTODIANS_ADD_DELEGATE: &str = "study.custodians.add_delegate";
149 pub const STUDY_CUSTODIANS_TRANSFER_PRIMARY: &str = "study.custodians.transfer_primary";
150 pub const STUDY_CUSTODIANS_REMOVE_DELEGATE: &str = "study.custodians.remove_delegate";
151 pub const STUDY_DUO_LIST: &str = "study.duo.list";
152 pub const STUDY_DUO_REPLACE: &str = "study.duo.replace";
153 pub const ASSET_LIST: &str = "asset.list";
154 pub const ASSET_GET: &str = "asset.get";
155 pub const ASSET_VERSIONS: &str = "asset.versions";
156 pub const ASSET_DUO_LIST: &str = "asset.duo.list";
157 pub const ASSET_DUO_REPLACE: &str = "asset.duo.replace";
158 pub const ASSET_DUO_CLEAR: &str = "asset.duo.clear";
159 pub const ASSET_DELETE: &str = "asset.delete";
160 pub const DATAFILE_LIST: &str = "datafile.list";
161 pub const DATAFILE_METADATA: &str = "datafile.metadata";
162 pub const DATAFILE_EXPORT: &str = "datafile.export";
163 pub const DATAFILE_DELETE: &str = "datafile.delete";
164 pub const DATAFILE_SEARCH: &str = "datafile.search";
165 pub const DATASET_LIST: &str = "dataset.list";
166 pub const DATASET_METADATA: &str = "dataset.metadata";
167 pub const DATASET_PREVIEW: &str = "dataset.preview";
168 pub const DATASET_DATA: &str = "dataset.data";
169 pub const DATASET_EXPORT: &str = "dataset.export";
170 pub const DATASET_DELETE: &str = "dataset.delete";
171 pub const DATASET_TRANSFORM: &str = "dataset.transform";
172 pub const DATASET_WITHDRAW: &str = "dataset.withdraw";
173 pub const SEMANTIC_DELETE: &str = "semantic.delete";
174 pub const INGEST_DATAFILE: &str = "ingest.datafile";
175 pub const INGEST_DATASET_TABLE: &str = "ingest.dataset.table";
176 pub const INGEST_DATASET_FROM_DATAFILE: &str = "ingest.dataset.from_datafile";
177 pub const INGEST_DATASET_FROM_SQL: &str = "ingest.dataset.from_sql";
178 pub const INGEST_REDCAP_PROJECT: &str = "ingest.redcap.project";
179 pub const TRANSFORMATION_LIST: &str = "transformation.list";
180 pub const DATASET_SEARCH: &str = "dataset.search";
181 pub const VARIABLE_LIST: &str = "variable.list";
182 pub const VARIABLE_GET: &str = "variable.get";
183 pub const VARIABLE_ADD: &str = "variable.add";
184 pub const VARIABLE_UPDATE: &str = "variable.update";
185 pub const VOCABULARY_LIST: &str = "vocabulary.list";
186 pub const VOCABULARY_GET: &str = "vocabulary.get";
187 pub const VOCABULARY_ADD: &str = "vocabulary.add";
188 pub const TAG_LIST: &str = "tag.list";
189 pub const TAG_GET: &str = "tag.get";
190 pub const TAG_SET: &str = "tag.set";
191 pub const DICTIONARY_VARIABLE_SEARCH: &str = "dictionary.variable.search";
192 pub const MODEL_ENTITY_SEARCH: &str = "model.entity.search";
193 pub const MODEL_RELATION_SEARCH: &str = "model.relation.search";
194 pub const ENTITY_LIST: &str = "entity.list";
195 pub const ENTITY_GET: &str = "entity.get";
196 pub const ENTITY_ADD: &str = "entity.add";
197 pub const ENTITY_INSTANCE_GET: &str = "entity.instance.get";
198 pub const ENTITY_INSTANCE_LIST: &str = "entity.instance.list";
199 pub const ENTITY_INSTANCE_ADD: &str = "entity.instance.add";
200 pub const ENTITY_INSTANCE_ENSURE_FROM_DATASET: &str = "entity.instance.ensure_from_dataset";
201 pub const ENTITY_INSTANCE_MAP_ADD: &str = "entity.instance.map.add";
202 pub const ENTITY_INSTANCE_MAP_GET: &str = "entity.instance.map.get";
203 pub const ENTITY_INSTANCE_MAP_LIST: &str = "entity.instance.map.list";
204 pub const ENTITY_INSTANCE_ASSET_LINK_ADD: &str = "entity.instance.asset_link.add";
205 pub const ENTITY_INSTANCE_ASSET_LINK_LIST: &str = "entity.instance.asset_link.list";
206 pub const ENTITY_INSTANCE_DATASET_LINK_ADD: &str = "entity.instance.dataset_link.add";
207 pub const ENTITY_INSTANCE_DATASETS: &str = "entity.instance.datasets";
208 pub const ENTITY_INSTANCE_DATASET_LINK_GET: &str = "entity.instance.dataset_link.get";
209 pub const ENTITY_INSTANCE_DATASET_LINK_LIST: &str = "entity.instance.dataset_link.list";
210 pub const ENTITY_RELATION_LIST: &str = "entity_relation.list";
211 pub const ENTITY_RELATION_GET: &str = "entity_relation.get";
212 pub const ENTITY_RELATION_ADD: &str = "entity_relation.add";
213 pub const RELATION_INSTANCE_GET: &str = "entity_relation.instance.get";
214 pub const RELATION_INSTANCE_LIST: &str = "entity_relation.instance.list";
215 pub const RELATION_INSTANCE_ADD: &str = "entity_relation.instance.add";
216 pub const RELATION_INSTANCE_ENSURE_FROM_DATASET: &str =
217 "entity_relation.instance.ensure_from_dataset";
218 pub const RELATION_INSTANCE_MAP_ADD: &str = "entity_relation.instance.map.add";
219 pub const RELATION_INSTANCE_MAP_GET: &str = "entity_relation.instance.map.get";
220 pub const RELATION_INSTANCE_MAP_LIST: &str = "entity_relation.instance.map.list";
221 pub const RELATION_INSTANCE_ASSET_LINK_ADD: &str = "entity_relation.instance.asset_link.add";
222 pub const RELATION_INSTANCE_ASSET_LINK_LIST: &str = "entity_relation.instance.asset_link.list";
223 pub const RELATION_INSTANCE_DATASET_LINK_ADD: &str =
224 "entity_relation.instance.dataset_link.add";
225 pub const RELATION_INSTANCE_DATASET_LINK_GET: &str =
226 "entity_relation.instance.dataset_link.get";
227 pub const RELATION_INSTANCE_DATASET_LINK_LIST: &str =
228 "entity_relation.instance.dataset_link.list";
229 pub const OPERATION_GET: &str = "operation.get";
230 pub const OPERATION_CANCEL: &str = "operation.cancel";
231 pub const OPERATION_LIST: &str = "operation.list";
232 pub const OPERATION_RESULT_GET: &str = "operation.result.get";
233}
234
235#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
236#[serde(tag = "kind", content = "body")]
237pub enum ProtocolRequest {
238 #[serde(rename = "runtime.capabilities")]
239 RuntimeCapabilities(RuntimeCapabilitiesRequest),
240 #[serde(rename = "execution_profile.list")]
241 ExecutionProfileList(ExecutionProfileListRequest),
242 #[serde(rename = "execution_profile.select")]
243 ExecutionProfileSelect(ExecutionProfileSelectRequest),
244 #[serde(rename = "daemon.version")]
245 DaemonVersion(DaemonVersionRequest),
246 #[serde(rename = "daemon.doctor")]
247 DaemonDoctor(DaemonDoctorRequest),
248 #[serde(rename = "datastore.ping")]
249 DatastorePing(DatastorePingRequest),
250 #[serde(rename = "datastore.info")]
251 DatastoreInfo(DatastoreInfoRequest),
252 #[serde(rename = "browser.datastore.list")]
253 BrowserDatastoreList(BrowserDatastoreDiscoveryRequest),
254 #[serde(rename = "browser.study.list")]
255 BrowserStudyList(BrowserStudyDiscoveryRequest),
256 #[serde(rename = "browser.study.get")]
257 BrowserStudyGet(BrowserStudyDetailRequest),
258 #[serde(rename = "browser.study.search")]
259 BrowserStudySearch(BrowserStudySearchRequest),
260 #[serde(rename = "browser.resource.list")]
261 BrowserResourceList(BrowserResourceDiscoveryRequest),
262 #[serde(rename = "browser.dataset.search")]
263 BrowserDatasetSearch(BrowserDatasetSearchRequest),
264 #[serde(rename = "browser.datafile.search")]
265 BrowserDataFileSearch(BrowserDataFileSearchRequest),
266 #[serde(rename = "browser.dictionary.get")]
267 BrowserDictionaryGet(BrowserDictionaryDiscoveryRequest),
268 #[serde(rename = "browser.dictionary.variable.search")]
269 BrowserVariableSearch(BrowserVariableSearchRequest),
270 #[serde(rename = "browser.domain.list")]
271 BrowserDomainList(BrowserDomainCollectionRequest),
272 #[serde(rename = "browser.domain.get")]
273 BrowserDomainGet(BrowserDomainDetailRequest),
274 #[serde(rename = "browser.domain.study.list")]
275 BrowserDomainStudyList(BrowserDomainStudyCollectionRequest),
276 #[serde(rename = "browser.domain.variable.list")]
277 BrowserDomainVariableList(BrowserDomainVariableCollectionRequest),
278 #[serde(rename = "browser.domain.variable.get")]
279 BrowserDomainVariableGet(BrowserDomainVariableDetailRequest),
280 #[serde(rename = "browser.vocabulary.get")]
281 BrowserVocabularyGet(BrowserVocabularyDetailRequest),
282 #[serde(rename = "browser.vocabulary.item.list")]
283 BrowserVocabularyItemList(BrowserVocabularyItemCollectionRequest),
284 #[serde(rename = "browser.vocabulary.mapping.list")]
285 BrowserVocabularyMappingList(BrowserVocabularyMappingCollectionRequest),
286 #[serde(rename = "browser.semantic_catalog.get")]
287 BrowserSemanticCatalogGet(BrowserSemanticCatalogDiscoveryRequest),
288 #[serde(rename = "browser.model.entity.search")]
289 BrowserModelEntitySearch(BrowserEntitySearchRequest),
290 #[serde(rename = "browser.model.relation.search")]
291 BrowserModelRelationSearch(BrowserRelationSearchRequest),
292 #[serde(rename = "browser.access_request.submit")]
293 BrowserAccessRequestSubmit(BrowserStudyAccessRequestSubmissionRequest),
294 #[serde(rename = "browser.access_request.list")]
295 BrowserAccessRequestList(BrowserRequesterStudyAccessRequestListRequest),
296 #[serde(rename = "browser.access_request.get")]
297 BrowserAccessRequestGet(BrowserRequesterStudyAccessRequestDetailRequest),
298 #[serde(rename = "browser.access_request.withdraw")]
299 BrowserAccessRequestWithdraw(BrowserRequesterStudyAccessRequestWithdrawRequest),
300 #[serde(rename = "browser.custodian.access_request.list")]
301 BrowserCustodianAccessRequestList(BrowserCustodianStudyAccessRequestListRequest),
302 #[serde(rename = "browser.custodian.access_request.approve")]
303 BrowserCustodianAccessRequestApprove(BrowserCustodianStudyAccessRequestApproveRequest),
304 #[serde(rename = "browser.custodian.access_request.reject")]
305 BrowserCustodianAccessRequestReject(BrowserCustodianStudyAccessRequestRejectRequest),
306 #[serde(rename = "session.list")]
307 SessionList(SessionListRequest),
308 #[serde(rename = "session.open")]
309 SessionOpen(SessionOpenRequest),
310 #[serde(rename = "session.status")]
311 SessionStatus(SessionStatusRequest),
312 #[serde(rename = "session.use")]
313 SessionUse(SessionUseRequest),
314 #[serde(rename = "session.close")]
315 SessionClose(SessionCloseRequest),
316 #[serde(rename = "session.close_all")]
317 SessionCloseAll(SessionCloseAllRequest),
318 #[serde(rename = "study.current.set")]
319 CurrentStudySet(CurrentStudySetRequest),
320 #[serde(rename = "study.current.get")]
321 CurrentStudyCurrent(CurrentStudyCurrentRequest),
322 #[serde(rename = "study.current.clear")]
323 CurrentStudyClear(CurrentStudyClearRequest),
324 #[serde(rename = "study.context.list")]
325 StudyContextList(StudyContextListRequest),
326 #[serde(rename = "domain.list")]
327 DomainList(ListDomainsRequest),
328 #[serde(rename = "domain.get")]
329 DomainGet(GetDomainRequest),
330 #[serde(rename = "domain.add")]
331 DomainAdd(AddDomainRequest),
332 #[serde(rename = "study.list")]
333 StudyList(ListStudiesRequest),
334 #[serde(rename = "study.search")]
335 StudySearch(SearchStudiesRequest),
336 #[serde(rename = "study.get")]
337 StudyGet(GetStudyRequest),
338 #[serde(rename = "study.add")]
339 StudyAdd(AddStudyRequest),
340 #[serde(rename = "study.add_domain")]
341 StudyAddDomain(AddStudyDomainRequest),
342 #[serde(rename = "study.delete")]
343 StudyDelete(StudyDeleteRequest),
344 #[serde(rename = "study.access.list")]
345 StudyAccessList(StudyAccessListRequest),
346 #[serde(rename = "study.access.grant")]
347 StudyAccessGrant(StudyAccessGrantRequest),
348 #[serde(rename = "study.access.revoke")]
349 StudyAccessRevoke(StudyAccessRevokeRequest),
350 #[serde(rename = "study.custodians.list")]
351 StudyCustodiansList(StudyCustodiansListRequest),
352 #[serde(rename = "study.custodians.add_delegate")]
353 StudyCustodiansAddDelegate(StudyCustodianMutationRequest),
354 #[serde(rename = "study.custodians.transfer_primary")]
355 StudyCustodiansTransferPrimary(StudyCustodianMutationRequest),
356 #[serde(rename = "study.custodians.remove_delegate")]
357 StudyCustodiansRemoveDelegate(StudyCustodianMutationRequest),
358 #[serde(rename = "study.duo.list")]
359 StudyDuoList(StudyDuoListRequest),
360 #[serde(rename = "study.duo.replace")]
361 StudyDuoReplace(StudyDuoReplaceRequest),
362 #[serde(rename = "asset.list")]
363 AssetList(AssetListRequest),
364 #[serde(rename = "asset.get")]
365 AssetGet(AssetGetRequest),
366 #[serde(rename = "asset.versions")]
367 AssetVersions(AssetVersionsRequest),
368 #[serde(rename = "asset.duo.list")]
369 AssetDuoList(AssetDuoListRequest),
370 #[serde(rename = "asset.duo.replace")]
371 AssetDuoReplace(AssetDuoReplaceRequest),
372 #[serde(rename = "asset.duo.clear")]
373 AssetDuoClear(AssetDuoClearRequest),
374 #[serde(rename = "asset.delete")]
375 AssetDelete(AssetDeleteRequest),
376 #[serde(rename = "datafile.list")]
377 DataFileList(ListDataFilesRequest),
378 #[serde(rename = "datafile.metadata")]
379 DataFileMetadata(GetDataFileMetadataRequest),
380 #[serde(rename = "datafile.export")]
381 DataFileExport(ExportDataFileRequest),
382 #[serde(rename = "datafile.delete")]
383 DataFileDelete(DataFileDeleteRequest),
384 #[serde(rename = "datafile.search")]
385 DataFileSearch(SearchDataFilesRequest),
386 #[serde(rename = "dataset.list")]
387 DatasetList(ListDatasetsRequest),
388 #[serde(rename = "dataset.metadata")]
389 DatasetMetadata(GetDatasetMetadataRequest),
390 #[serde(rename = "dataset.preview")]
391 DatasetPreview(PreviewDatasetRequest),
392 #[serde(rename = "dataset.data")]
393 DatasetData(DatasetDataRequest),
394 #[serde(rename = "dataset.export")]
395 DatasetExport(ExportDatasetRequest),
396 #[serde(rename = "dataset.delete")]
397 DatasetDelete(DatasetDeleteRequest),
398 #[serde(rename = "dataset.transform")]
399 DatasetTransform(DatasetTransformRequest),
400 #[serde(rename = "dataset.withdraw")]
401 DatasetWithdraw(DatasetWithdrawRequest),
402 #[serde(rename = "semantic.delete")]
403 SemanticDelete(SemanticDeleteRequest),
404 #[serde(rename = "ingest.datafile")]
405 IngestFile(IngestFileRequest),
406 #[serde(rename = "ingest.dataset.table")]
407 IngestDatasetFile(IngestDatasetFileRequest),
408 #[serde(rename = "ingest.dataset.from_datafile")]
409 DatasetCreateFromDatafile(DatasetCreateFromDatafileRequest),
410 #[serde(rename = "ingest.dataset.from_sql")]
411 IngestSql(IngestSqlRequest),
412 #[serde(rename = "ingest.redcap.project")]
413 IngestRedcap(IngestRedcapRequest),
414 #[serde(rename = "transformation.list")]
415 TransformationList(TransformationListRequest),
416 #[serde(rename = "dataset.search")]
417 DatasetSearch(SearchDatasetsRequest),
418 #[serde(rename = "variable.list")]
419 VariableList(ListVariablesRequest),
420 #[serde(rename = "variable.get")]
421 VariableGet(GetVariableRequest),
422 #[serde(rename = "variable.add")]
423 VariableAdd(AddVariableRequest),
424 #[serde(rename = "variable.update")]
425 VariableUpdate(UpdateVariableRequest),
426 #[serde(rename = "vocabulary.list")]
427 VocabularyList(ListVocabulariesRequest),
428 #[serde(rename = "vocabulary.get")]
429 VocabularyGet(GetVocabularyRequest),
430 #[serde(rename = "vocabulary.add")]
431 VocabularyAdd(AddVocabularyRequest),
432 #[serde(rename = "tag.list")]
433 TagList(TagListRequest),
434 #[serde(rename = "tag.get")]
435 TagGet(TagGetRequest),
436 #[serde(rename = "tag.set")]
437 TagSet(TagSetRequest),
438 #[serde(rename = "dictionary.variable.search")]
439 DictionaryVariableSearch(SearchVariablesRequest),
440 #[serde(rename = "model.entity.search")]
441 ModelEntitySearch(SearchEntitiesRequest),
442 #[serde(rename = "model.relation.search")]
443 ModelRelationSearch(SearchRelationsRequest),
444 #[serde(rename = "entity.list")]
445 EntityList(ListEntitiesRequest),
446 #[serde(rename = "entity.get")]
447 EntityGet(GetEntityRequest),
448 #[serde(rename = "entity.add")]
449 EntityAdd(AddEntityRequest),
450 #[serde(rename = "entity.instance.get")]
451 EntityInstanceGet(EntityInstanceGetRequest),
452 #[serde(rename = "entity.instance.list")]
453 EntityInstanceList(EntityInstanceListRequest),
454 #[serde(rename = "entity.instance.add")]
455 EntityInstanceAdd(EntityInstanceAddRequest),
456 #[serde(rename = "entity.instance.ensure_from_dataset")]
457 EntityInstanceEnsureFromDataset(EntityInstanceEnsureFromDatasetRequest),
458 #[serde(rename = "entity.instance.map.add")]
459 EntityInstanceMapAdd(EntityInstanceMapAddRequest),
460 #[serde(rename = "entity.instance.map.get")]
461 EntityInstanceMapGet(EntityInstanceMapGetRequest),
462 #[serde(rename = "entity.instance.map.list")]
463 EntityInstanceMapList(EntityInstanceMapListRequest),
464 #[serde(rename = "entity.instance.asset_link.add")]
465 EntityInstanceAssetLinkAdd(EntityInstanceAssetLinkAddRequest),
466 #[serde(rename = "entity.instance.asset_link.list")]
467 EntityInstanceAssetLinkList(EntityInstanceAssetLinkListRequest),
468 #[serde(rename = "entity.instance.dataset_link.add")]
469 EntityInstanceDatasetLinkAdd(EntityInstanceDatasetLinkAddRequest),
470 #[serde(rename = "entity.instance.datasets")]
471 EntityInstanceDatasets(EntityInstanceDatasetsRequest),
472 #[serde(rename = "entity.instance.dataset_link.get")]
473 EntityInstanceDatasetLinkGet(EntityInstanceDatasetLinkGetRequest),
474 #[serde(rename = "entity.instance.dataset_link.list")]
475 EntityInstanceDatasetLinkList(EntityInstanceDatasetLinkListRequest),
476 #[serde(rename = "entity_relation.list")]
477 EntityRelationList(ListRelationsRequest),
478 #[serde(rename = "entity_relation.get")]
479 EntityRelationGet(GetRelationRequest),
480 #[serde(rename = "entity_relation.add")]
481 EntityRelationAdd(AddRelationRequest),
482 #[serde(rename = "entity_relation.instance.get")]
483 RelationInstanceGet(RelationInstanceGetRequest),
484 #[serde(rename = "entity_relation.instance.list")]
485 RelationInstanceList(RelationInstanceListRequest),
486 #[serde(rename = "entity_relation.instance.add")]
487 RelationInstanceAdd(RelationInstanceAddRequest),
488 #[serde(rename = "entity_relation.instance.ensure_from_dataset")]
489 RelationInstanceEnsureFromDataset(RelationInstanceEnsureFromDatasetRequest),
490 #[serde(rename = "entity_relation.instance.map.add")]
491 RelationInstanceMapAdd(RelationInstanceMapAddRequest),
492 #[serde(rename = "entity_relation.instance.map.get")]
493 RelationInstanceMapGet(RelationInstanceMapGetRequest),
494 #[serde(rename = "entity_relation.instance.map.list")]
495 RelationInstanceMapList(RelationInstanceMapListRequest),
496 #[serde(rename = "entity_relation.instance.asset_link.add")]
497 RelationInstanceAssetLinkAdd(RelationInstanceAssetLinkAddRequest),
498 #[serde(rename = "entity_relation.instance.asset_link.list")]
499 RelationInstanceAssetLinkList(RelationInstanceAssetLinkListRequest),
500 #[serde(rename = "entity_relation.instance.dataset_link.add")]
501 RelationInstanceDatasetLinkAdd(RelationInstanceDatasetLinkAddRequest),
502 #[serde(rename = "entity_relation.instance.dataset_link.get")]
503 RelationInstanceDatasetLinkGet(RelationInstanceDatasetLinkGetRequest),
504 #[serde(rename = "entity_relation.instance.dataset_link.list")]
505 RelationInstanceDatasetLinkList(RelationInstanceDatasetLinkListRequest),
506 #[serde(rename = "operation.get")]
507 OperationGet(OperationGetRequest),
508 #[serde(rename = "operation.cancel")]
509 OperationCancel(OperationCancelRequest),
510 #[serde(rename = "operation.list")]
511 OperationList(OperationListRequest),
512 #[serde(rename = "operation.result.get")]
513 OperationResultGet(OperationResultGetRequest),
514}
515
516impl ProtocolRequest {
517 pub const fn kind(&self) -> &'static str {
518 match self {
519 Self::RuntimeCapabilities(_) => kind::RUNTIME_CAPABILITIES,
520 Self::ExecutionProfileList(_) => kind::EXECUTION_PROFILE_LIST,
521 Self::ExecutionProfileSelect(_) => kind::EXECUTION_PROFILE_SELECT,
522 Self::DaemonVersion(_) => kind::DAEMON_VERSION,
523 Self::DaemonDoctor(_) => kind::DAEMON_DOCTOR,
524 Self::DatastorePing(_) => kind::DATASTORE_PING,
525 Self::DatastoreInfo(_) => kind::DATASTORE_INFO,
526 Self::BrowserDatastoreList(_) => kind::BROWSER_DATASTORE_LIST,
527 Self::BrowserStudyList(_) => kind::BROWSER_STUDY_LIST,
528 Self::BrowserStudyGet(_) => kind::BROWSER_STUDY_GET,
529 Self::BrowserStudySearch(_) => kind::BROWSER_STUDY_SEARCH,
530 Self::BrowserResourceList(_) => kind::BROWSER_RESOURCE_LIST,
531 Self::BrowserDatasetSearch(_) => kind::BROWSER_DATASET_SEARCH,
532 Self::BrowserDataFileSearch(_) => kind::BROWSER_DATAFILE_SEARCH,
533 Self::BrowserDictionaryGet(_) => kind::BROWSER_DICTIONARY_GET,
534 Self::BrowserVariableSearch(_) => kind::BROWSER_VARIABLE_SEARCH,
535 Self::BrowserDomainList(_) => kind::BROWSER_DOMAIN_LIST,
536 Self::BrowserDomainGet(_) => kind::BROWSER_DOMAIN_GET,
537 Self::BrowserDomainStudyList(_) => kind::BROWSER_DOMAIN_STUDY_LIST,
538 Self::BrowserDomainVariableList(_) => kind::BROWSER_DOMAIN_VARIABLE_LIST,
539 Self::BrowserDomainVariableGet(_) => kind::BROWSER_DOMAIN_VARIABLE_GET,
540 Self::BrowserVocabularyGet(_) => kind::BROWSER_VOCABULARY_GET,
541 Self::BrowserVocabularyItemList(_) => kind::BROWSER_VOCABULARY_ITEM_LIST,
542 Self::BrowserVocabularyMappingList(_) => kind::BROWSER_VOCABULARY_MAPPING_LIST,
543 Self::BrowserSemanticCatalogGet(_) => kind::BROWSER_SEMANTIC_CATALOG_GET,
544 Self::BrowserModelEntitySearch(_) => kind::BROWSER_MODEL_ENTITY_SEARCH,
545 Self::BrowserModelRelationSearch(_) => kind::BROWSER_MODEL_RELATION_SEARCH,
546 Self::BrowserAccessRequestSubmit(_) => kind::BROWSER_ACCESS_REQUEST_SUBMIT,
547 Self::BrowserAccessRequestList(_) => kind::BROWSER_ACCESS_REQUEST_LIST,
548 Self::BrowserAccessRequestGet(_) => kind::BROWSER_ACCESS_REQUEST_GET,
549 Self::BrowserAccessRequestWithdraw(_) => kind::BROWSER_ACCESS_REQUEST_WITHDRAW,
550 Self::BrowserCustodianAccessRequestList(_) => {
551 kind::BROWSER_CUSTODIAN_ACCESS_REQUEST_LIST
552 }
553 Self::BrowserCustodianAccessRequestApprove(_) => {
554 kind::BROWSER_CUSTODIAN_ACCESS_REQUEST_APPROVE
555 }
556 Self::BrowserCustodianAccessRequestReject(_) => {
557 kind::BROWSER_CUSTODIAN_ACCESS_REQUEST_REJECT
558 }
559 Self::SessionList(_) => kind::SESSION_LIST,
560 Self::SessionOpen(_) => kind::SESSION_OPEN,
561 Self::SessionStatus(_) => kind::SESSION_STATUS,
562 Self::SessionUse(_) => kind::SESSION_USE,
563 Self::SessionClose(_) => kind::SESSION_CLOSE,
564 Self::SessionCloseAll(_) => kind::SESSION_CLOSE_ALL,
565 Self::CurrentStudySet(_) => kind::CURRENT_STUDY_SET,
566 Self::CurrentStudyCurrent(_) => kind::CURRENT_STUDY_GET,
567 Self::CurrentStudyClear(_) => kind::CURRENT_STUDY_CLEAR,
568 Self::StudyContextList(_) => kind::STUDY_CONTEXT_LIST,
569 Self::DomainList(_) => kind::DOMAIN_LIST,
570 Self::DomainGet(_) => kind::DOMAIN_GET,
571 Self::DomainAdd(_) => kind::DOMAIN_ADD,
572 Self::StudyList(_) => kind::STUDY_LIST,
573 Self::StudySearch(_) => kind::STUDY_SEARCH,
574 Self::StudyGet(_) => kind::STUDY_GET,
575 Self::StudyAdd(_) => kind::STUDY_ADD,
576 Self::StudyAddDomain(_) => kind::STUDY_ADD_DOMAIN,
577 Self::StudyDelete(_) => kind::STUDY_DELETE,
578 Self::StudyAccessList(_) => kind::STUDY_ACCESS_LIST,
579 Self::StudyAccessGrant(_) => kind::STUDY_ACCESS_GRANT,
580 Self::StudyAccessRevoke(_) => kind::STUDY_ACCESS_REVOKE,
581 Self::StudyCustodiansList(_) => kind::STUDY_CUSTODIANS_LIST,
582 Self::StudyCustodiansAddDelegate(_) => kind::STUDY_CUSTODIANS_ADD_DELEGATE,
583 Self::StudyCustodiansTransferPrimary(_) => kind::STUDY_CUSTODIANS_TRANSFER_PRIMARY,
584 Self::StudyCustodiansRemoveDelegate(_) => kind::STUDY_CUSTODIANS_REMOVE_DELEGATE,
585 Self::StudyDuoList(_) => kind::STUDY_DUO_LIST,
586 Self::StudyDuoReplace(_) => kind::STUDY_DUO_REPLACE,
587 Self::AssetList(_) => kind::ASSET_LIST,
588 Self::AssetGet(_) => kind::ASSET_GET,
589 Self::AssetVersions(_) => kind::ASSET_VERSIONS,
590 Self::AssetDuoList(_) => kind::ASSET_DUO_LIST,
591 Self::AssetDuoReplace(_) => kind::ASSET_DUO_REPLACE,
592 Self::AssetDuoClear(_) => kind::ASSET_DUO_CLEAR,
593 Self::AssetDelete(_) => kind::ASSET_DELETE,
594 Self::DataFileList(_) => kind::DATAFILE_LIST,
595 Self::DataFileMetadata(_) => kind::DATAFILE_METADATA,
596 Self::DataFileExport(_) => kind::DATAFILE_EXPORT,
597 Self::DataFileDelete(_) => kind::DATAFILE_DELETE,
598 Self::DataFileSearch(_) => kind::DATAFILE_SEARCH,
599 Self::DatasetList(_) => kind::DATASET_LIST,
600 Self::DatasetMetadata(_) => kind::DATASET_METADATA,
601 Self::DatasetPreview(_) => kind::DATASET_PREVIEW,
602 Self::DatasetData(_) => kind::DATASET_DATA,
603 Self::DatasetExport(_) => kind::DATASET_EXPORT,
604 Self::DatasetDelete(_) => kind::DATASET_DELETE,
605 Self::DatasetTransform(_) => kind::DATASET_TRANSFORM,
606 Self::DatasetWithdraw(_) => kind::DATASET_WITHDRAW,
607 Self::SemanticDelete(_) => kind::SEMANTIC_DELETE,
608 Self::IngestFile(_) => kind::INGEST_DATAFILE,
609 Self::IngestDatasetFile(_) => kind::INGEST_DATASET_TABLE,
610 Self::DatasetCreateFromDatafile(_) => kind::INGEST_DATASET_FROM_DATAFILE,
611 Self::IngestSql(_) => kind::INGEST_DATASET_FROM_SQL,
612 Self::IngestRedcap(_) => kind::INGEST_REDCAP_PROJECT,
613 Self::TransformationList(_) => kind::TRANSFORMATION_LIST,
614 Self::DatasetSearch(_) => kind::DATASET_SEARCH,
615 Self::VariableList(_) => kind::VARIABLE_LIST,
616 Self::VariableGet(_) => kind::VARIABLE_GET,
617 Self::VariableAdd(_) => kind::VARIABLE_ADD,
618 Self::VariableUpdate(_) => kind::VARIABLE_UPDATE,
619 Self::VocabularyList(_) => kind::VOCABULARY_LIST,
620 Self::VocabularyGet(_) => kind::VOCABULARY_GET,
621 Self::VocabularyAdd(_) => kind::VOCABULARY_ADD,
622 Self::TagList(_) => kind::TAG_LIST,
623 Self::TagGet(_) => kind::TAG_GET,
624 Self::TagSet(_) => kind::TAG_SET,
625 Self::DictionaryVariableSearch(_) => kind::DICTIONARY_VARIABLE_SEARCH,
626 Self::ModelEntitySearch(_) => kind::MODEL_ENTITY_SEARCH,
627 Self::ModelRelationSearch(_) => kind::MODEL_RELATION_SEARCH,
628 Self::EntityList(_) => kind::ENTITY_LIST,
629 Self::EntityGet(_) => kind::ENTITY_GET,
630 Self::EntityAdd(_) => kind::ENTITY_ADD,
631 Self::EntityInstanceGet(_) => kind::ENTITY_INSTANCE_GET,
632 Self::EntityInstanceList(_) => kind::ENTITY_INSTANCE_LIST,
633 Self::EntityInstanceAdd(_) => kind::ENTITY_INSTANCE_ADD,
634 Self::EntityInstanceEnsureFromDataset(_) => kind::ENTITY_INSTANCE_ENSURE_FROM_DATASET,
635 Self::EntityInstanceMapAdd(_) => kind::ENTITY_INSTANCE_MAP_ADD,
636 Self::EntityInstanceMapGet(_) => kind::ENTITY_INSTANCE_MAP_GET,
637 Self::EntityInstanceMapList(_) => kind::ENTITY_INSTANCE_MAP_LIST,
638 Self::EntityInstanceAssetLinkAdd(_) => kind::ENTITY_INSTANCE_ASSET_LINK_ADD,
639 Self::EntityInstanceAssetLinkList(_) => kind::ENTITY_INSTANCE_ASSET_LINK_LIST,
640 Self::EntityInstanceDatasetLinkAdd(_) => kind::ENTITY_INSTANCE_DATASET_LINK_ADD,
641 Self::EntityInstanceDatasets(_) => kind::ENTITY_INSTANCE_DATASETS,
642 Self::EntityInstanceDatasetLinkGet(_) => kind::ENTITY_INSTANCE_DATASET_LINK_GET,
643 Self::EntityInstanceDatasetLinkList(_) => kind::ENTITY_INSTANCE_DATASET_LINK_LIST,
644 Self::EntityRelationList(_) => kind::ENTITY_RELATION_LIST,
645 Self::EntityRelationGet(_) => kind::ENTITY_RELATION_GET,
646 Self::EntityRelationAdd(_) => kind::ENTITY_RELATION_ADD,
647 Self::RelationInstanceGet(_) => kind::RELATION_INSTANCE_GET,
648 Self::RelationInstanceList(_) => kind::RELATION_INSTANCE_LIST,
649 Self::RelationInstanceAdd(_) => kind::RELATION_INSTANCE_ADD,
650 Self::RelationInstanceEnsureFromDataset(_) => {
651 kind::RELATION_INSTANCE_ENSURE_FROM_DATASET
652 }
653 Self::RelationInstanceMapAdd(_) => kind::RELATION_INSTANCE_MAP_ADD,
654 Self::RelationInstanceMapGet(_) => kind::RELATION_INSTANCE_MAP_GET,
655 Self::RelationInstanceMapList(_) => kind::RELATION_INSTANCE_MAP_LIST,
656 Self::RelationInstanceAssetLinkAdd(_) => kind::RELATION_INSTANCE_ASSET_LINK_ADD,
657 Self::RelationInstanceAssetLinkList(_) => kind::RELATION_INSTANCE_ASSET_LINK_LIST,
658 Self::RelationInstanceDatasetLinkAdd(_) => kind::RELATION_INSTANCE_DATASET_LINK_ADD,
659 Self::RelationInstanceDatasetLinkGet(_) => kind::RELATION_INSTANCE_DATASET_LINK_GET,
660 Self::RelationInstanceDatasetLinkList(_) => kind::RELATION_INSTANCE_DATASET_LINK_LIST,
661 Self::OperationGet(_) => kind::OPERATION_GET,
662 Self::OperationCancel(_) => kind::OPERATION_CANCEL,
663 Self::OperationList(_) => kind::OPERATION_LIST,
664 Self::OperationResultGet(_) => kind::OPERATION_RESULT_GET,
665 }
666 }
667}
668
669#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
670pub struct OperationGetRequest {
671 #[serde(default, skip_serializing_if = "Option::is_none")]
672 pub events: Option<PageRequest>,
673 pub session: crate::refs::SessionSelector,
674 pub operation: OperationRef,
675}
676
677#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
678pub struct OperationCancelRequest {
679 pub session: crate::refs::SessionSelector,
680 pub operation: OperationRef,
681}
682
683#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
684pub struct OperationListRequest {
685 pub session: crate::refs::SessionSelector,
686 pub scope: crate::operation::OperationScope,
687 pub page: PageRequest,
688 #[serde(default, skip_serializing_if = "Vec::is_empty")]
689 pub statuses: Vec<crate::operation::OperationStatus>,
690 #[serde(default, skip_serializing_if = "Option::is_none")]
691 pub operation_kind: Option<crate::operation::OperationKind>,
692 #[serde(default, skip_serializing_if = "Option::is_none")]
693 pub created_after: Option<String>,
694 #[serde(default, skip_serializing_if = "Option::is_none")]
695 pub created_before: Option<String>,
696}
697
698#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
699pub struct OperationResultGetRequest {
700 pub session: crate::refs::SessionSelector,
701 pub operation: OperationRef,
702}