misp-client-rs 0.1.0

A Rust client library for interacting with MISP (Malware Information Sharing Platform) instances via their REST API.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
pub mod add_analyst_data_request;
pub use self::add_analyst_data_request::AddAnalystDataRequest;
pub mod add_attribute_200_response;
pub use self::add_attribute_200_response::AddAttribute200Response;
pub mod add_attribute_event_id_parameter;
pub use self::add_attribute_event_id_parameter::AddAttributeEventIdParameter;
pub mod add_auth_key_200_response;
pub use self::add_auth_key_200_response::AddAuthKey200Response;
pub mod add_auth_key_request;
pub use self::add_auth_key_request::AddAuthKeyRequest;
pub mod add_collection_200_response;
pub use self::add_collection_200_response::AddCollection200Response;
pub mod add_collection_request;
pub use self::add_collection_request::AddCollectionRequest;
pub mod add_feed_request;
pub use self::add_feed_request::AddFeedRequest;
pub mod add_galaxy_cluster_200_response;
pub use self::add_galaxy_cluster_200_response::AddGalaxyCluster200Response;
pub mod add_object_200_response;
pub use self::add_object_200_response::AddObject200Response;
pub mod add_object_object_template_id_parameter;
pub use self::add_object_object_template_id_parameter::AddObjectObjectTemplateIdParameter;
pub mod add_object_request;
pub use self::add_object_request::AddObjectRequest;
pub mod add_object_request_attribute_inner;
pub use self::add_object_request_attribute_inner::AddObjectRequestAttributeInner;
pub mod add_organisation_to_sharing_group_200_response;
pub use self::add_organisation_to_sharing_group_200_response::AddOrganisationToSharingGroup200Response;
pub mod add_server_200_response;
pub use self::add_server_200_response::AddServer200Response;
pub mod add_server_to_sharing_group_200_response;
pub use self::add_server_to_sharing_group_200_response::AddServerToSharingGroup200Response;
pub mod add_sharing_group_200_response;
pub use self::add_sharing_group_200_response::AddSharingGroup200Response;
pub mod add_sighting_by_value_request;
pub use self::add_sighting_by_value_request::AddSightingByValueRequest;
pub mod analysis_level_id;
pub use self::analysis_level_id::AnalysisLevelId;
pub mod analyst_data;
pub use self::analyst_data::AnalystData;
pub mod analyst_data_type;
pub use self::analyst_data_type::AnalystDataType;
pub mod analyst_note;
pub use self::analyst_note::AnalystNote;
pub mod analyst_object_type;
pub use self::analyst_object_type::AnalystObjectType;
pub mod analyst_opinion;
pub use self::analyst_opinion::AnalystOpinion;
pub mod analyst_relationship;
pub use self::analyst_relationship::AnalystRelationship;
pub mod api_error;
pub use self::api_error::ApiError;
pub mod attach_galaxy_cluster_200_response;
pub use self::attach_galaxy_cluster_200_response::AttachGalaxyCluster200Response;
pub mod attach_galaxy_cluster_attach_target_id_parameter;
pub use self::attach_galaxy_cluster_attach_target_id_parameter::AttachGalaxyClusterAttachTargetIdParameter;
pub mod attach_galaxy_cluster_request;
pub use self::attach_galaxy_cluster_request::AttachGalaxyClusterRequest;
pub mod attach_galaxy_cluster_request_galaxy;
pub use self::attach_galaxy_cluster_request_galaxy::AttachGalaxyClusterRequestGalaxy;
pub mod attribute;
pub use self::attribute::Attribute;
pub mod attribute_category;
pub use self::attribute_category::AttributeCategory;
pub mod attribute_no_id;
pub use self::attribute_no_id::AttributeNoId;
pub mod attribute_no_id_first_seen;
pub use self::attribute_no_id_first_seen::AttributeNoIdFirstSeen;
pub mod attribute_rest_search_filter;
pub use self::attribute_rest_search_filter::AttributeRestSearchFilter;
pub mod attribute_rest_search_list_item;
pub use self::attribute_rest_search_list_item::AttributeRestSearchListItem;
pub mod attribute_type;
pub use self::attribute_type::AttributeType;
pub mod attributes_rest_search_return_format;
pub use self::attributes_rest_search_return_format::AttributesRestSearchReturnFormat;
pub mod auth_key;
pub use self::auth_key::AuthKey;
pub mod base_collection;
pub use self::base_collection::BaseCollection;
pub mod cache_feeds_200_response;
pub use self::cache_feeds_200_response::CacheFeeds200Response;
pub mod cache_server_200_response;
pub use self::cache_server_200_response::CacheServer200Response;
pub mod collection_add_edit;
pub use self::collection_add_edit::CollectionAddEdit;
pub mod collection_element;
pub use self::collection_element::CollectionElement;
pub mod collection_full;
pub use self::collection_full::CollectionFull;
pub mod collection_full_no_elements;
pub use self::collection_full_no_elements::CollectionFullNoElements;
pub mod collection_type;
pub use self::collection_type::CollectionType;
pub mod create_sync_200_response;
pub use self::create_sync_200_response::CreateSync200Response;
pub mod create_sync_200_response_server;
pub use self::create_sync_200_response_server::CreateSync200ResponseServer;
pub mod create_sync_200_response_server_organisation;
pub use self::create_sync_200_response_server_organisation::CreateSync200ResponseServerOrganisation;
pub mod dashboard_user_setting;
pub use self::dashboard_user_setting::DashboardUserSetting;
pub mod dashboard_user_setting_position;
pub use self::dashboard_user_setting_position::DashboardUserSettingPosition;
pub mod database_table_diagnostics;
pub use self::database_table_diagnostics::DatabaseTableDiagnostics;
pub mod decay_score;
pub use self::decay_score::DecayScore;
pub mod decay_score_decaying_model;
pub use self::decay_score_decaying_model::DecayScoreDecayingModel;
pub mod decaying_model;
pub use self::decaying_model::DecayingModel;
pub mod decaying_model_parameters;
pub use self::decaying_model_parameters::DecayingModelParameters;
pub mod delete_analyst_data_200_response;
pub use self::delete_analyst_data_200_response::DeleteAnalystData200Response;
pub mod delete_attribute_200_response;
pub use self::delete_attribute_200_response::DeleteAttribute200Response;
pub mod delete_auth_key_200_response;
pub use self::delete_auth_key_200_response::DeleteAuthKey200Response;
pub mod delete_collection_200_response;
pub use self::delete_collection_200_response::DeleteCollection200Response;
pub mod delete_event_200_response;
pub use self::delete_event_200_response::DeleteEvent200Response;
pub mod delete_event_report_200_response;
pub use self::delete_event_report_200_response::DeleteEventReport200Response;
pub mod delete_galaxy_200_response;
pub use self::delete_galaxy_200_response::DeleteGalaxy200Response;
pub mod delete_galaxy_cluster_200_response;
pub use self::delete_galaxy_cluster_200_response::DeleteGalaxyCluster200Response;
pub mod delete_object_200_response;
pub use self::delete_object_200_response::DeleteObject200Response;
pub mod delete_organisation_200_response;
pub use self::delete_organisation_200_response::DeleteOrganisation200Response;
pub mod delete_server_200_response;
pub use self::delete_server_200_response::DeleteServer200Response;
pub mod delete_sharing_group_200_response;
pub use self::delete_sharing_group_200_response::DeleteSharingGroup200Response;
pub mod delete_sighting_200_response;
pub use self::delete_sighting_200_response::DeleteSighting200Response;
pub mod delete_tag_200_response;
pub use self::delete_tag_200_response::DeleteTag200Response;
pub mod delete_user_200_response;
pub use self::delete_user_200_response::DeleteUser200Response;
pub mod delete_user_setting_by_id_200_response;
pub use self::delete_user_setting_by_id_200_response::DeleteUserSettingById200Response;
pub mod delete_user_totp_200_response;
pub use self::delete_user_totp_200_response::DeleteUserTotp200Response;
pub mod describe_attribute_types_response;
pub use self::describe_attribute_types_response::DescribeAttributeTypesResponse;
pub mod direction_search_field;
pub use self::direction_search_field::DirectionSearchField;
pub mod disable_feed_200_response;
pub use self::disable_feed_200_response::DisableFeed200Response;
pub mod disable_taxonomy_200_response;
pub use self::disable_taxonomy_200_response::DisableTaxonomy200Response;
pub mod distribution_level_id;
pub use self::distribution_level_id::DistributionLevelId;
pub mod edit_analyst_data_analyst_data_id_parameter;
pub use self::edit_analyst_data_analyst_data_id_parameter::EditAnalystDataAnalystDataIdParameter;
pub mod edit_attribute_attribute_id_parameter;
pub use self::edit_attribute_attribute_id_parameter::EditAttributeAttributeIdParameter;
pub mod edit_auth_key_request;
pub use self::edit_auth_key_request::EditAuthKeyRequest;
pub mod edit_collection_collection_id_parameter;
pub use self::edit_collection_collection_id_parameter::EditCollectionCollectionIdParameter;
pub mod edit_feed_request;
pub use self::edit_feed_request::EditFeedRequest;
pub mod edit_galaxy_cluster_galaxy_cluster_id_parameter;
pub use self::edit_galaxy_cluster_galaxy_cluster_id_parameter::EditGalaxyClusterGalaxyClusterIdParameter;
pub mod edit_organisation_organisation_id_parameter;
pub use self::edit_organisation_organisation_id_parameter::EditOrganisationOrganisationIdParameter;
pub mod edit_organisation_request;
pub use self::edit_organisation_request::EditOrganisationRequest;
pub mod edit_server_server_id_parameter;
pub use self::edit_server_server_id_parameter::EditServerServerIdParameter;
pub mod edit_server_setting_200_response;
pub use self::edit_server_setting_200_response::EditServerSetting200Response;
pub mod edit_server_setting_request;
pub use self::edit_server_setting_request::EditServerSettingRequest;
pub mod edit_server_setting_request_value;
pub use self::edit_server_setting_request_value::EditServerSettingRequestValue;
pub mod edit_sharing_group_sharing_group_id_parameter;
pub use self::edit_sharing_group_sharing_group_id_parameter::EditSharingGroupSharingGroupIdParameter;
pub mod edit_tag_200_response;
pub use self::edit_tag_200_response::EditTag200Response;
pub mod edited_event;
pub use self::edited_event::EditedEvent;
pub mod edited_event_event;
pub use self::edited_event_event::EditedEventEvent;
pub mod enable_feed_200_response;
pub use self::enable_feed_200_response::EnableFeed200Response;
pub mod enable_taxonomy_200_response;
pub use self::enable_taxonomy_200_response::EnableTaxonomy200Response;
pub mod enrich_attribute_200_response;
pub use self::enrich_attribute_200_response::EnrichAttribute200Response;
pub mod enrich_event_200_response;
pub use self::enrich_event_200_response::EnrichEvent200Response;
pub mod enrich_modules_list;
pub use self::enrich_modules_list::EnrichModulesList;
pub mod event;
pub use self::event::Event;
pub mod event_no_id;
pub use self::event_no_id::EventNoId;
pub mod event_organisation;
pub use self::event_organisation::EventOrganisation;
pub mod event_report;
pub use self::event_report::EventReport;
pub mod event_report_no_id;
pub use self::event_report_no_id::EventReportNoId;
pub mod event_rest_search_list_inner;
pub use self::event_rest_search_list_inner::EventRestSearchListInner;
pub mod event_rest_search_list_inner_event;
pub use self::event_rest_search_list_inner_event::EventRestSearchListInnerEvent;
pub mod event_tag;
pub use self::event_tag::EventTag;
pub mod events_rest_search_return_format;
pub use self::events_rest_search_return_format::EventsRestSearchReturnFormat;
pub mod export_galaxy_clusters_200_response;
pub use self::export_galaxy_clusters_200_response::ExportGalaxyClusters200Response;
pub mod export_galaxy_clusters_request;
pub use self::export_galaxy_clusters_request::ExportGalaxyClustersRequest;
pub mod export_galaxy_clusters_request_galaxy;
pub use self::export_galaxy_clusters_request_galaxy::ExportGalaxyClustersRequestGalaxy;
pub mod export_taxonomy_200_response;
pub use self::export_taxonomy_200_response::ExportTaxonomy200Response;
pub mod extended_attribute;
pub use self::extended_attribute::ExtendedAttribute;
pub mod extended_event;
pub use self::extended_event::ExtendedEvent;
pub mod extended_galaxy;
pub use self::extended_galaxy::ExtendedGalaxy;
pub mod extended_galaxy_cluster;
pub use self::extended_galaxy_cluster::ExtendedGalaxyCluster;
pub mod extended_object;
pub use self::extended_object::ExtendedObject;
pub mod extended_object_all_of_event;
pub use self::extended_object_all_of_event::ExtendedObjectAllOfEvent;
pub mod extended_tag;
pub use self::extended_tag::ExtendedTag;
pub mod extended_taxonomy_entry;
pub use self::extended_taxonomy_entry::ExtendedTaxonomyEntry;
pub mod extended_user;
pub use self::extended_user::ExtendedUser;
pub mod feed;
pub use self::feed::Feed;
pub mod feed_cache_timestamp;
pub use self::feed_cache_timestamp::FeedCacheTimestamp;
pub mod feed_input_source;
pub use self::feed_input_source::FeedInputSource;
pub mod feed_no_id;
pub use self::feed_no_id::FeedNoId;
pub mod feed_source_format;
pub use self::feed_source_format::FeedSourceFormat;
pub mod fetch_from_feed_200_response;
pub use self::fetch_from_feed_200_response::FetchFromFeed200Response;
pub mod full_decaying_model;
pub use self::full_decaying_model::FullDecayingModel;
pub mod galaxy;
pub use self::galaxy::Galaxy;
pub mod galaxy_cluster;
pub use self::galaxy_cluster::GalaxyCluster;
pub mod galaxy_cluster_no_id;
pub use self::galaxy_cluster_no_id::GalaxyClusterNoId;
pub mod galaxy_element;
pub use self::galaxy_element::GalaxyElement;
pub mod galaxy_misp_format;
pub use self::galaxy_misp_format::GalaxyMispFormat;
pub mod galaxy_misp_format_values_inner;
pub use self::galaxy_misp_format_values_inner::GalaxyMispFormatValuesInner;
pub mod galaxy_misp_format_version;
pub use self::galaxy_misp_format_version::GalaxyMispFormatVersion;
pub mod get_auth_key_by_id_200_response;
pub use self::get_auth_key_by_id_200_response::GetAuthKeyById200Response;
pub mod get_auth_key_by_id_200_response_user;
pub use self::get_auth_key_by_id_200_response_user::GetAuthKeyById200ResponseUser;
pub mod get_auth_key_by_id_auth_key_id_parameter;
pub use self::get_auth_key_by_id_auth_key_id_parameter::GetAuthKeyByIdAuthKeyIdParameter;
pub mod get_auth_keys_200_response_inner;
pub use self::get_auth_keys_200_response_inner::GetAuthKeys200ResponseInner;
pub mod get_auth_keys_200_response_inner_user;
pub use self::get_auth_keys_200_response_inner_user::GetAuthKeys200ResponseInnerUser;
pub mod get_collection_by_id_200_response;
pub use self::get_collection_by_id_200_response::GetCollectionById200Response;
pub mod get_collections_200_response_inner;
pub use self::get_collections_200_response_inner::GetCollections200ResponseInner;
pub mod get_collections_request;
pub use self::get_collections_request::GetCollectionsRequest;
pub mod get_event_by_id_200_response;
pub use self::get_event_by_id_200_response::GetEventById200Response;
pub mod get_feed_by_id_feed_id_parameter;
pub use self::get_feed_by_id_feed_id_parameter::GetFeedByIdFeedIdParameter;
pub mod get_feeds_200_response_inner;
pub use self::get_feeds_200_response_inner::GetFeeds200ResponseInner;
pub mod get_galaxies_200_response_inner;
pub use self::get_galaxies_200_response_inner::GetGalaxies200ResponseInner;
pub mod get_galaxy_by_id_galaxy_id_parameter;
pub use self::get_galaxy_by_id_galaxy_id_parameter::GetGalaxyByIdGalaxyIdParameter;
pub mod get_galaxy_cluster_by_id_200_response;
pub use self::get_galaxy_cluster_by_id_200_response::GetGalaxyClusterById200Response;
pub mod get_logs_200_response_inner;
pub use self::get_logs_200_response_inner::GetLogs200ResponseInner;
pub mod get_logs_request;
pub use self::get_logs_request::GetLogsRequest;
pub mod get_logs_request_created;
pub use self::get_logs_request_created::GetLogsRequestCreated;
pub mod get_noticelists_200_response_inner;
pub use self::get_noticelists_200_response_inner::GetNoticelists200ResponseInner;
pub mod get_object_by_id_200_response;
pub use self::get_object_by_id_200_response::GetObjectById200Response;
pub mod get_object_by_id_object_id_parameter;
pub use self::get_object_by_id_object_id_parameter::GetObjectByIdObjectIdParameter;
pub mod get_py_misp_version_200_response;
pub use self::get_py_misp_version_200_response::GetPyMispVersion200Response;
pub mod get_server_settings_200_response;
pub use self::get_server_settings_200_response::GetServerSettings200Response;
pub mod get_server_settings_200_response_db_schema_diagnostics;
pub use self::get_server_settings_200_response_db_schema_diagnostics::GetServerSettings200ResponseDbSchemaDiagnostics;
pub mod get_server_settings_200_response_db_schema_diagnostics_diagnostic_index;
pub use self::get_server_settings_200_response_db_schema_diagnostics_diagnostic_index::GetServerSettings200ResponseDbSchemaDiagnosticsDiagnosticIndex;
pub mod get_server_settings_200_response_extensions;
pub use self::get_server_settings_200_response_extensions::GetServerSettings200ResponseExtensions;
pub mod get_server_settings_200_response_extensions_cli;
pub use self::get_server_settings_200_response_extensions_cli::GetServerSettings200ResponseExtensionsCli;
pub mod get_server_settings_200_response_module_status;
pub use self::get_server_settings_200_response_module_status::GetServerSettings200ResponseModuleStatus;
pub mod get_server_settings_200_response_php_settings;
pub use self::get_server_settings_200_response_php_settings::GetServerSettings200ResponsePhpSettings;
pub mod get_server_settings_200_response_stix;
pub use self::get_server_settings_200_response_stix::GetServerSettings200ResponseStix;
pub mod get_server_settings_200_response_version;
pub use self::get_server_settings_200_response_version::GetServerSettings200ResponseVersion;
pub mod get_server_settings_200_response_workers;
pub use self::get_server_settings_200_response_workers::GetServerSettings200ResponseWorkers;
pub mod get_server_uuid_200_response;
pub use self::get_server_uuid_200_response::GetServerUuid200Response;
pub mod get_server_version_200_response;
pub use self::get_server_version_200_response::GetServerVersion200Response;
pub mod get_sharing_group_200_response;
pub use self::get_sharing_group_200_response::GetSharingGroup200Response;
pub mod get_tags_200_response;
pub use self::get_tags_200_response::GetTags200Response;
pub mod get_taxonomies_200_response_inner;
pub use self::get_taxonomies_200_response_inner::GetTaxonomies200ResponseInner;
pub mod get_taxonomy_by_id_200_response;
pub use self::get_taxonomy_by_id_200_response::GetTaxonomyById200Response;
pub mod get_taxonomy_tags_200_response;
pub use self::get_taxonomy_tags_200_response::GetTaxonomyTags200Response;
pub mod get_user_settings_200_response_inner;
pub use self::get_user_settings_200_response_inner::GetUserSettings200ResponseInner;
pub mod get_warninglists_200_response;
pub use self::get_warninglists_200_response::GetWarninglists200Response;
pub mod get_warninglists_200_response_warninglists_inner;
pub use self::get_warninglists_200_response_warninglists_inner::GetWarninglists200ResponseWarninglistsInner;
pub mod homepage_user_setting;
pub use self::homepage_user_setting::HomepageUserSetting;
pub mod import_from_url_event_report_200_response;
pub use self::import_from_url_event_report_200_response::ImportFromUrlEventReport200Response;
pub mod import_from_url_event_report_request;
pub use self::import_from_url_event_report_request::ImportFromUrlEventReportRequest;
pub mod import_galaxy_cluster_200_response;
pub use self::import_galaxy_cluster_200_response::ImportGalaxyCluster200Response;
pub mod import_galaxy_cluster_item;
pub use self::import_galaxy_cluster_item::ImportGalaxyClusterItem;
pub mod import_server_request;
pub use self::import_server_request::ImportServerRequest;
pub mod import_server_request_organisation;
pub use self::import_server_request_organisation::ImportServerRequestOrganisation;
pub mod index_minimal_analyst_data_200_response;
pub use self::index_minimal_analyst_data_200_response::IndexMinimalAnalystData200Response;
pub mod index_minimal_analyst_data_request;
pub use self::index_minimal_analyst_data_request::IndexMinimalAnalystDataRequest;
pub mod index_minimal_analyst_data_request_orgc_name;
pub use self::index_minimal_analyst_data_request_orgc_name::IndexMinimalAnalystDataRequestOrgcName;
pub mod kill_all_workers_200_response;
pub use self::kill_all_workers_200_response::KillAllWorkers200Response;
pub mod last_rest_search_filter;
pub use self::last_rest_search_filter::LastRestSearchFilter;
pub mod local;
pub use self::local::Local;
pub mod log;
pub use self::log::Log;
pub mod log_action_type;
pub use self::log_action_type::LogActionType;
pub mod minimal_analyst_data;
pub use self::minimal_analyst_data::MinimalAnalystData;
pub mod misp_setting;
pub use self::misp_setting::MispSetting;
pub mod misp_setting_options;
pub use self::misp_setting_options::MispSettingOptions;
pub mod misp_setting_test;
pub use self::misp_setting_test::MispSettingTest;
pub mod misp_setting_value;
pub use self::misp_setting_value::MispSettingValue;
pub mod model_name;
pub use self::model_name::ModelName;
pub mod not_found_api_error;
pub use self::not_found_api_error::NotFoundApiError;
pub mod not_found_user_totp_delete_error;
pub use self::not_found_user_totp_delete_error::NotFoundUserTotpDeleteError;
pub mod noticelist;
pub use self::noticelist::Noticelist;
pub mod noticelist_entry;
pub use self::noticelist_entry::NoticelistEntry;
pub mod noticelist_entry_data;
pub use self::noticelist_entry_data::NoticelistEntryData;
pub mod noticelist_entry_data_message;
pub use self::noticelist_entry_data_message::NoticelistEntryDataMessage;
pub mod object;
pub use self::object::Object;
pub mod object_rest_search_filter;
pub use self::object_rest_search_filter::ObjectRestSearchFilter;
pub mod object_rest_search_list;
pub use self::object_rest_search_list::ObjectRestSearchList;
pub mod objects_rest_search_return_format;
pub use self::objects_rest_search_return_format::ObjectsRestSearchReturnFormat;
pub mod organisation;
pub use self::organisation::Organisation;
pub mod organisation_list_item;
pub use self::organisation_list_item::OrganisationListItem;
pub mod organisation_no_id;
pub use self::organisation_no_id::OrganisationNoId;
pub mod php_server_setting;
pub use self::php_server_setting::PhpServerSetting;
pub mod php_server_setting_recommended;
pub use self::php_server_setting_recommended::PhpServerSettingRecommended;
pub mod php_server_setting_value;
pub use self::php_server_setting_value::PhpServerSettingValue;
pub mod publish_event_200_response;
pub use self::publish_event_200_response::PublishEvent200Response;
pub mod publish_galaxy_cluster_200_response;
pub use self::publish_galaxy_cluster_200_response::PublishGalaxyCluster200Response;
pub mod pull_server_200_response;
pub use self::pull_server_200_response::PullServer200Response;
pub mod push_server_200_response;
pub use self::push_server_200_response::PushServer200Response;
pub mod remove_organisation_from_sharing_group_200_response;
pub use self::remove_organisation_from_sharing_group_200_response::RemoveOrganisationFromSharingGroup200Response;
pub mod remove_server_from_sharing_group_200_response;
pub use self::remove_server_from_sharing_group_200_response::RemoveServerFromSharingGroup200Response;
pub mod reset_user_password_200_response;
pub use self::reset_user_password_200_response::ResetUserPassword200Response;
pub mod rest_search_attributes_200_response;
pub use self::rest_search_attributes_200_response::RestSearchAttributes200Response;
pub mod rest_search_attributes_200_response_response;
pub use self::rest_search_attributes_200_response_response::RestSearchAttributes200ResponseResponse;
pub mod rest_search_events_200_response;
pub use self::rest_search_events_200_response::RestSearchEvents200Response;
pub mod rest_search_events_request;
pub use self::rest_search_events_request::RestSearchEventsRequest;
pub mod rest_search_events_request_org;
pub use self::rest_search_events_request_org::RestSearchEventsRequestOrg;
pub mod rest_search_objects_200_response;
pub use self::rest_search_objects_200_response::RestSearchObjects200Response;
pub mod restart_dead_workers_200_response;
pub use self::restart_dead_workers_200_response::RestartDeadWorkers200Response;
pub mod restart_workers_200_response;
pub use self::restart_workers_200_response::RestartWorkers200Response;
pub mod restore_event_report_200_response;
pub use self::restore_event_report_200_response::RestoreEventReport200Response;
pub mod restore_galaxy_cluster_200_response;
pub use self::restore_galaxy_cluster_200_response::RestoreGalaxyCluster200Response;
pub mod role;
pub use self::role::Role;
pub mod search_auth_keys_request;
pub use self::search_auth_keys_request::SearchAuthKeysRequest;
pub mod search_events_request;
pub use self::search_events_request::SearchEventsRequest;
pub mod search_galaxies_request;
pub use self::search_galaxies_request::SearchGalaxiesRequest;
pub mod search_galaxy_clusters_request;
pub use self::search_galaxy_clusters_request::SearchGalaxyClustersRequest;
pub mod search_user_settings_request;
pub use self::search_user_settings_request::SearchUserSettingsRequest;
pub mod server;
pub use self::server::Server;
pub mod server_list_item;
pub use self::server_list_item::ServerListItem;
pub mod server_no_id;
pub use self::server_no_id::ServerNoId;
pub mod server_package_version;
pub use self::server_package_version::ServerPackageVersion;
pub mod set_user_setting_request;
pub use self::set_user_setting_request::SetUserSettingRequest;
pub mod sharing_group;
pub use self::sharing_group::SharingGroup;
pub mod sharing_group_list_item;
pub use self::sharing_group_list_item::SharingGroupListItem;
pub mod sharing_group_no_id;
pub use self::sharing_group_no_id::SharingGroupNoId;
pub mod sharing_group_organisation;
pub use self::sharing_group_organisation::SharingGroupOrganisation;
pub mod sharing_group_organisation_organisation;
pub use self::sharing_group_organisation_organisation::SharingGroupOrganisationOrganisation;
pub mod sharing_group_server;
pub use self::sharing_group_server::SharingGroupServer;
pub mod sharing_group_server_server;
pub use self::sharing_group_server_server::SharingGroupServerServer;
pub mod sighting;
pub use self::sighting::Sighting;
pub mod sighting_organisation;
pub use self::sighting_organisation::SightingOrganisation;
pub mod slim_event;
pub use self::slim_event::SlimEvent;
pub mod slim_sharing_group;
pub use self::slim_sharing_group::SlimSharingGroup;
pub mod slim_sharing_group_no_id;
pub use self::slim_sharing_group_no_id::SlimSharingGroupNoId;
pub mod start_worker_200_response;
pub use self::start_worker_200_response::StartWorker200Response;
pub mod stop_worker_200_response;
pub use self::stop_worker_200_response::StopWorker200Response;
pub mod tag;
pub use self::tag::Tag;
pub mod tag_attribute_200_response;
pub use self::tag_attribute_200_response::TagAttribute200Response;
pub mod tag_attribute_request;
pub use self::tag_attribute_request::TagAttributeRequest;
pub mod tag_no_id;
pub use self::tag_no_id::TagNoId;
pub mod taxonomy;
pub use self::taxonomy::Taxonomy;
pub mod taxonomy_entry;
pub use self::taxonomy_entry::TaxonomyEntry;
pub mod taxonomy_entry_export;
pub use self::taxonomy_entry_export::TaxonomyEntryExport;
pub mod taxonomy_predicate;
pub use self::taxonomy_predicate::TaxonomyPredicate;
pub mod taxonomy_predicate_export;
pub use self::taxonomy_predicate_export::TaxonomyPredicateExport;
pub mod taxonomy_value_export;
pub use self::taxonomy_value_export::TaxonomyValueExport;
pub mod threat_level_id;
pub use self::threat_level_id::ThreatLevelId;
pub mod toggle_enable_noticelist_200_response;
pub use self::toggle_enable_noticelist_200_response::ToggleEnableNoticelist200Response;
pub mod toggle_enable_warninglist_200_response;
pub use self::toggle_enable_warninglist_200_response::ToggleEnableWarninglist200Response;
pub mod unauthorized_api_error;
pub use self::unauthorized_api_error::UnauthorizedApiError;
pub mod unpublish_event_200_response;
pub use self::unpublish_event_200_response::UnpublishEvent200Response;
pub mod unpublish_galaxy_cluster_200_response;
pub use self::unpublish_galaxy_cluster_200_response::UnpublishGalaxyCluster200Response;
pub mod untag_attribute_200_response;
pub use self::untag_attribute_200_response::UntagAttribute200Response;
pub mod update_galaxies_200_response;
pub use self::update_galaxies_200_response::UpdateGalaxies200Response;
pub mod update_noticelists_200_response;
pub use self::update_noticelists_200_response::UpdateNoticelists200Response;
pub mod update_server_200_response;
pub use self::update_server_200_response::UpdateServer200Response;
pub mod update_server_200_response_results_inner;
pub use self::update_server_200_response_results_inner::UpdateServer200ResponseResultsInner;
pub mod update_server_result_item;
pub use self::update_server_result_item::UpdateServerResultItem;
pub mod update_taxonomies_200_response;
pub use self::update_taxonomies_200_response::UpdateTaxonomies200Response;
pub mod update_warninglists_200_response;
pub use self::update_warninglists_200_response::UpdateWarninglists200Response;
pub mod user;
pub use self::user::User;
pub mod user_list_item;
pub use self::user_list_item::UserListItem;
pub mod user_list_item_organisation;
pub use self::user_list_item_organisation::UserListItemOrganisation;
pub mod user_no_id;
pub use self::user_no_id::UserNoId;
pub mod user_setting;
pub use self::user_setting::UserSetting;
pub mod user_setting_name;
pub use self::user_setting_name::UserSettingName;
pub mod view_event_report_200_response;
pub use self::view_event_report_200_response::ViewEventReport200Response;
pub mod view_event_report_event_report_id_parameter;
pub use self::view_event_report_event_report_id_parameter::ViewEventReportEventReportIdParameter;
pub mod view_user_settings;
pub use self::view_user_settings::ViewUserSettings;
pub mod warninglist;
pub use self::warninglist::Warninglist;
pub mod warninglist_entry;
pub use self::warninglist_entry::WarninglistEntry;
pub mod warninglists_id_filter;
pub use self::warninglists_id_filter::WarninglistsIdFilter;
pub mod warninglists_name_filter;
pub use self::warninglists_name_filter::WarninglistsNameFilter;
pub mod worker;
pub use self::worker::Worker;
pub mod workers_status;
pub use self::workers_status::WorkersStatus;
use serde::{Deserialize, Deserializer, Serializer};
use serde_with::{de::DeserializeAsWrap, ser::SerializeAsWrap, DeserializeAs, SerializeAs};
use std::marker::PhantomData;

pub(crate) struct DoubleOption<T>(PhantomData<T>);

impl<T, TAs> SerializeAs<Option<Option<T>>> for DoubleOption<TAs>
where
    TAs: SerializeAs<T>,
{
    fn serialize_as<S>(values: &Option<Option<T>>, serializer: S) -> Result<S::Ok, S::Error>
    where
        S: Serializer,
    {
        match values {
            None => serializer.serialize_unit(),
            Some(None) => serializer.serialize_none(),
            Some(Some(v)) => serializer.serialize_some(&SerializeAsWrap::<T, TAs>::new(v)),
        }
    }
}

impl<'de, T, TAs> DeserializeAs<'de, Option<Option<T>>> for DoubleOption<TAs>
where
    TAs: DeserializeAs<'de, T>,
    T: std::fmt::Debug,
{
    fn deserialize_as<D>(deserializer: D) -> Result<Option<Option<T>>, D::Error>
    where
        D: Deserializer<'de>,
    {
        Ok(Some(
            DeserializeAsWrap::<Option<T>, Option<TAs>>::deserialize(deserializer)?
                .into_inner(),
        ))
    }
}