stencila_schema/
types.rs

1// Generated by rust.ts; do not edit
2
3#![allow(clippy::large_enum_variant)]
4
5use crate::prelude::*;
6
7/*********************************************************************
8 * Structs for "interface" schemas
9 ********************************************************************/
10
11
12/// The most simple compound (ie. non-atomic like `number`, `string` etc) type.
13#[skip_serializing_none]
14#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
15#[serde(default, rename_all = "camelCase")]
16pub struct Entity {
17    /// The name of this type
18    #[def = "Entity_::Entity"]
19    pub type_: Entity_,
20
21    /// The identifier for this item.
22    pub id: Option<Box<String>>,
23}
24
25#[derive(Clone, Debug, Serialize, Deserialize)]
26pub enum Entity_ {
27  Entity
28}
29
30/// A reference to a CreativeWork that is cited in another CreativeWork.
31#[skip_serializing_none]
32#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
33#[serde(default, rename_all = "camelCase")]
34pub struct Cite {
35    /// The name of this type
36    #[def = "Cite_::Cite"]
37    pub type_: Cite_,
38
39    /// The target of the citation (URL or reference ID).
40    pub target: String,
41
42    /// The type/s of the citation, both factually and rhetorically.
43    pub citation_intent: Option<Vec<CitationIntentEnumeration>>,
44
45    /// Determines how the citation is shown within the surrounding text.
46    pub citation_mode: Option<CiteCitationMode>,
47
48    /// Text to show before the citation.
49    pub citation_prefix: Option<Box<String>>,
50
51    /// Text to show after the citation.
52    pub citation_suffix: Option<Box<String>>,
53
54    /// Optional structured content/text of this citation.
55    pub content: Option<Vec<InlineContent>>,
56
57    /// The identifier for this item.
58    pub id: Option<Box<String>>,
59
60    /// The page on which the work ends; for example "138" or "xvi".
61    pub page_end: Option<Box<CitePageEnd>>,
62
63    /// The page on which the work starts; for example "135" or "xiii".
64    pub page_start: Option<Box<CitePageStart>>,
65
66    /// Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55".
67    pub pagination: Option<Box<String>>,
68}
69
70#[derive(Clone, Debug, Serialize, Deserialize)]
71pub enum Cite_ {
72  Cite
73}
74
75/// A group of Cite nodes.
76#[skip_serializing_none]
77#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
78#[serde(default, rename_all = "camelCase")]
79pub struct CiteGroup {
80    /// The name of this type
81    #[def = "CiteGroup_::CiteGroup"]
82    pub type_: CiteGroup_,
83
84    /// One or more `Cite`s to be referenced in the same surrounding text.
85    pub items: Vec<Cite>,
86
87    /// The identifier for this item.
88    pub id: Option<Box<String>>,
89}
90
91#[derive(Clone, Debug, Serialize, Deserialize)]
92pub enum CiteGroup_ {
93  CiteGroup
94}
95
96/// Base type for non-executable (e.g. `CodeBlock`) and executable (e.g. `CodeExpression`) code nodes.
97#[skip_serializing_none]
98#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
99#[serde(default, rename_all = "camelCase")]
100pub struct Code {
101    /// The name of this type
102    #[def = "Code_::Code"]
103    pub type_: Code_,
104
105    /// The text of the code.
106    pub text: String,
107
108    /// The identifier for this item.
109    pub id: Option<Box<String>>,
110
111    /// Media type, typically expressed using a MIME format, of the code.
112    pub media_type: Option<Box<String>>,
113
114    /// The programming language of the code.
115    pub programming_language: Option<Box<String>>,
116}
117
118#[derive(Clone, Debug, Serialize, Deserialize)]
119pub enum Code_ {
120  Code
121}
122
123/// A code block.
124#[skip_serializing_none]
125#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
126#[serde(default, rename_all = "camelCase")]
127pub struct CodeBlock {
128    /// The name of this type
129    #[def = "CodeBlock_::CodeBlock"]
130    pub type_: CodeBlock_,
131
132    /// The text of the code.
133    pub text: String,
134
135    /// The identifier for this item.
136    pub id: Option<Box<String>>,
137
138    /// Media type, typically expressed using a MIME format, of the code.
139    pub media_type: Option<Box<String>>,
140
141    /// The programming language of the code.
142    pub programming_language: Option<Box<String>>,
143}
144
145#[derive(Clone, Debug, Serialize, Deserialize)]
146pub enum CodeBlock_ {
147  CodeBlock
148}
149
150/// Base type for executable code nodes (i.e. `CodeChunk` and `CodeExpression`).
151#[skip_serializing_none]
152#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
153#[serde(default, rename_all = "camelCase")]
154pub struct CodeExecutable {
155    /// The name of this type
156    #[def = "CodeExecutable_::CodeExecutable"]
157    pub type_: CodeExecutable_,
158
159    /// The programming language of the code.
160    pub programming_language: String,
161
162    /// The text of the code.
163    pub text: String,
164
165    /// The upstream dependencies of the code.
166    pub code_dependencies: Option<Vec<CodeExecutableCodeDependencies>>,
167
168    /// The downstream dependents of the code.
169    pub code_dependents: Option<Vec<CodeExecutableCodeDependents>>,
170
171    /// A digest of the content, semantics and dependencies of the node.
172    pub compile_digest: Option<Box<Cord>>,
173
174    /// Errors when compiling (e.g. syntax errors) or executing the chunk.
175    pub errors: Option<Vec<CodeError>>,
176
177    /// A count of the number of times that the node has been executed.
178    pub execute_count: Option<Integer>,
179
180    /// The `compileDigest` of the node when it was last executed.
181    pub execute_digest: Option<Box<Cord>>,
182
183    /// Duration in seconds of the last execution of the code.
184    pub execute_duration: Option<Number>,
185
186    /// The date-time that the the last execution of the code ended.
187    pub execute_ended: Option<Box<Date>>,
188
189    /// Whether, and why, a node requires execution or re-execution.
190    pub execute_required: Option<CodeExecutableExecuteRequired>,
191
192    /// Status of the most recent, including any current, execution of the code.
193    pub execute_status: Option<CodeExecutableExecuteStatus>,
194
195    /// The identifier for this item.
196    pub id: Option<Box<String>>,
197
198    /// Media type, typically expressed using a MIME format, of the code.
199    pub media_type: Option<Box<String>>,
200}
201
202#[derive(Clone, Debug, Serialize, Deserialize)]
203pub enum CodeExecutable_ {
204  CodeExecutable
205}
206
207/// A executable chunk of code.
208#[skip_serializing_none]
209#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
210#[serde(default, rename_all = "camelCase")]
211pub struct CodeChunk {
212    /// The name of this type
213    #[def = "CodeChunk_::CodeChunk"]
214    pub type_: CodeChunk_,
215
216    /// The programming language of the code.
217    pub programming_language: String,
218
219    /// The text of the code.
220    pub text: String,
221
222    /// A caption for the CodeChunk.
223    pub caption: Option<Box<CodeChunkCaption>>,
224
225    /// The upstream dependencies of the code.
226    pub code_dependencies: Option<Vec<CodeExecutableCodeDependencies>>,
227
228    /// The downstream dependents of the code.
229    pub code_dependents: Option<Vec<CodeExecutableCodeDependents>>,
230
231    /// A digest of the content, semantics and dependencies of the node.
232    pub compile_digest: Option<Box<Cord>>,
233
234    /// Errors when compiling (e.g. syntax errors) or executing the chunk.
235    pub errors: Option<Vec<CodeError>>,
236
237    /// Under which circumstances the node should be automatically executed.
238    pub execute_auto: Option<CodeChunkExecuteAuto>,
239
240    /// A count of the number of times that the node has been executed.
241    pub execute_count: Option<u32>,
242
243    /// The `compileDigest` of the node when it was last executed.
244    pub execute_digest: Option<Box<Cord>>,
245
246    /// Duration in seconds of the last execution of the code.
247    pub execute_duration: Option<Number>,
248
249    /// The date-time that the the last execution of the code ended.
250    pub execute_ended: Option<Box<Date>>,
251
252    /// Whether the code should be treated as side-effect free when executed.
253    pub execute_pure: Option<Boolean>,
254
255    /// Whether, and why, a node requires execution or re-execution.
256    pub execute_required: Option<CodeExecutableExecuteRequired>,
257
258    /// Status of the most recent, including any current, execution of the code.
259    pub execute_status: Option<CodeExecutableExecuteStatus>,
260
261    /// The identifier for this item.
262    pub id: Option<Box<String>>,
263
264    /// A short label for the CodeChunk.
265    pub label: Option<Box<String>>,
266
267    /// Media type, typically expressed using a MIME format, of the code.
268    pub media_type: Option<Box<String>>,
269
270    /// Outputs from executing the chunk.
271    pub outputs: Option<Vec<Node>>,
272}
273
274#[derive(Clone, Debug, Serialize, Deserialize)]
275pub enum CodeChunk_ {
276  CodeChunk
277}
278
279/// An executable programming code expression.
280#[skip_serializing_none]
281#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
282#[serde(default, rename_all = "camelCase")]
283pub struct CodeExpression {
284    /// The name of this type
285    #[def = "CodeExpression_::CodeExpression"]
286    pub type_: CodeExpression_,
287
288    /// The programming language of the code.
289    pub programming_language: String,
290
291    /// The text of the code.
292    pub text: String,
293
294    /// The upstream dependencies of the code.
295    pub code_dependencies: Option<Vec<CodeExecutableCodeDependencies>>,
296
297    /// The downstream dependents of the code.
298    pub code_dependents: Option<Vec<CodeExecutableCodeDependents>>,
299
300    /// A digest of the content, semantics and dependencies of the node.
301    pub compile_digest: Option<Box<Cord>>,
302
303    /// Errors when compiling (e.g. syntax errors) or executing the chunk.
304    pub errors: Option<Vec<CodeError>>,
305
306    /// A count of the number of times that the node has been executed.
307    pub execute_count: Option<u32>,
308
309    /// The `compileDigest` of the node when it was last executed.
310    pub execute_digest: Option<Box<Cord>>,
311
312    /// Duration in seconds of the last execution of the code.
313    pub execute_duration: Option<Number>,
314
315    /// The date-time that the the last execution of the code ended.
316    pub execute_ended: Option<Box<Date>>,
317
318    /// Whether, and why, a node requires execution or re-execution.
319    pub execute_required: Option<CodeExecutableExecuteRequired>,
320
321    /// Status of the most recent, including any current, execution of the code.
322    pub execute_status: Option<CodeExecutableExecuteStatus>,
323
324    /// The identifier for this item.
325    pub id: Option<Box<String>>,
326
327    /// Media type, typically expressed using a MIME format, of the code.
328    pub media_type: Option<Box<String>>,
329
330    /// The value of the expression when it was last evaluated.
331    pub output: Option<Box<Node>>,
332}
333
334#[derive(Clone, Debug, Serialize, Deserialize)]
335pub enum CodeExpression_ {
336  CodeExpression
337}
338
339/// Inline code.
340#[skip_serializing_none]
341#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
342#[serde(default, rename_all = "camelCase")]
343pub struct CodeFragment {
344    /// The name of this type
345    #[def = "CodeFragment_::CodeFragment"]
346    pub type_: CodeFragment_,
347
348    /// The text of the code.
349    pub text: String,
350
351    /// The identifier for this item.
352    pub id: Option<Box<String>>,
353
354    /// Media type, typically expressed using a MIME format, of the code.
355    pub media_type: Option<Box<String>>,
356
357    /// The programming language of the code.
358    pub programming_language: Option<Box<String>>,
359}
360
361#[derive(Clone, Debug, Serialize, Deserialize)]
362pub enum CodeFragment_ {
363  CodeFragment
364}
365
366/// An error that occurred when parsing, compiling or executing a Code node.
367#[skip_serializing_none]
368#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
369#[serde(default, rename_all = "camelCase")]
370pub struct CodeError {
371    /// The name of this type
372    #[def = "CodeError_::CodeError"]
373    pub type_: CodeError_,
374
375    /// The error message or brief description of the error.
376    pub error_message: String,
377
378    /// The type of error e.g. "SyntaxError", "ZeroDivisionError".
379    pub error_type: Option<Box<String>>,
380
381    /// The identifier for this item.
382    pub id: Option<Box<String>>,
383
384    /// Stack trace leading up to the error.
385    pub stack_trace: Option<Box<String>>,
386}
387
388#[derive(Clone, Debug, Serialize, Deserialize)]
389pub enum CodeError_ {
390  CodeError
391}
392
393/// A date encoded as a ISO 8601 string.
394#[skip_serializing_none]
395#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
396#[serde(default, rename_all = "camelCase")]
397pub struct Date {
398    /// The name of this type
399    #[def = "Date_::Date"]
400    pub type_: Date_,
401
402    /// The date as an ISO 8601 string.
403    #[def = "chrono::Utc::now().to_rfc3339()"]
404    pub value: String,
405
406    /// The identifier for this item.
407    pub id: Option<Box<String>>,
408}
409
410#[derive(Clone, Debug, Serialize, Deserialize)]
411pub enum Date_ {
412  Date
413}
414
415/// A base class for nodes that mark some other inline content in some way (e.g. as being emphasised, or quoted).
416#[skip_serializing_none]
417#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
418#[serde(default, rename_all = "camelCase")]
419pub struct Mark {
420    /// The name of this type
421    #[def = "Mark_::Mark"]
422    pub type_: Mark_,
423
424    /// The content that is marked.
425    pub content: Vec<InlineContent>,
426
427    /// The identifier for this item.
428    pub id: Option<Box<String>>,
429}
430
431#[derive(Clone, Debug, Serialize, Deserialize)]
432pub enum Mark_ {
433  Mark
434}
435
436/// Content that is marked for deletion
437#[skip_serializing_none]
438#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
439#[serde(default, rename_all = "camelCase")]
440pub struct Delete {
441    /// The name of this type
442    #[def = "Delete_::Delete"]
443    pub type_: Delete_,
444
445    /// The content that is marked.
446    pub content: Vec<InlineContent>,
447
448    /// The identifier for this item.
449    pub id: Option<Box<String>>,
450}
451
452#[derive(Clone, Debug, Serialize, Deserialize)]
453pub enum Delete_ {
454  Delete
455}
456
457/// Emphasised content.
458#[skip_serializing_none]
459#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
460#[serde(default, rename_all = "camelCase")]
461pub struct Emphasis {
462    /// The name of this type
463    #[def = "Emphasis_::Emphasis"]
464    pub type_: Emphasis_,
465
466    /// The content that is marked.
467    pub content: Vec<InlineContent>,
468
469    /// The identifier for this item.
470    pub id: Option<Box<String>>,
471}
472
473#[derive(Clone, Debug, Serialize, Deserialize)]
474pub enum Emphasis_ {
475  Emphasis
476}
477
478/// The most generic type of item.
479#[skip_serializing_none]
480#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
481#[serde(default, rename_all = "camelCase")]
482pub struct Thing {
483    /// The name of this type
484    #[def = "Thing_::Thing"]
485    pub type_: Thing_,
486
487    /// Alternate names (aliases) for the item.
488    pub alternate_names: Option<Vec<String>>,
489
490    /// A description of the item.
491    pub description: Option<Box<ThingDescription>>,
492
493    /// The identifier for this item.
494    pub id: Option<Box<String>>,
495
496    /// Any kind of identifier for any kind of Thing.
497    pub identifiers: Option<Vec<ThingIdentifiers>>,
498
499    /// Images of the item.
500    pub images: Option<Vec<ThingImages>>,
501
502    /// The name of the item.
503    pub name: Option<Box<String>>,
504
505    /// The URL of the item.
506    pub url: Option<Box<String>>,
507}
508
509#[derive(Clone, Debug, Serialize, Deserialize)]
510pub enum Thing_ {
511  Thing
512}
513
514/// A brand used by an organization or person for labeling a product, product group, or similar.
515#[skip_serializing_none]
516#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
517#[serde(default, rename_all = "camelCase")]
518pub struct Brand {
519    /// The name of this type
520    #[def = "Brand_::Brand"]
521    pub type_: Brand_,
522
523    /// The name of the item.
524    pub name: String,
525
526    /// Alternate names (aliases) for the item.
527    pub alternate_names: Option<Vec<String>>,
528
529    /// A description of the item.
530    pub description: Option<Box<ThingDescription>>,
531
532    /// The identifier for this item.
533    pub id: Option<Box<String>>,
534
535    /// Any kind of identifier for any kind of Thing.
536    pub identifiers: Option<Vec<ThingIdentifiers>>,
537
538    /// Images of the item.
539    pub images: Option<Vec<ThingImages>>,
540
541    /// A logo associated with the brand.
542    pub logo: Option<Box<BrandLogo>>,
543
544    /// Reviews of the brand.
545    pub reviews: Option<Vec<String>>,
546
547    /// The URL of the item.
548    pub url: Option<Box<String>>,
549}
550
551#[derive(Clone, Debug, Serialize, Deserialize)]
552pub enum Brand_ {
553  Brand
554}
555
556/// A contact point, usually within an organization.
557#[skip_serializing_none]
558#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
559#[serde(default, rename_all = "camelCase")]
560pub struct ContactPoint {
561    /// The name of this type
562    #[def = "ContactPoint_::ContactPoint"]
563    pub type_: ContactPoint_,
564
565    /// Alternate names (aliases) for the item.
566    pub alternate_names: Option<Vec<String>>,
567
568    /// Languages (human not programming) in which it is possible to communicate with the organization/department etc.
569    pub available_languages: Option<Vec<String>>,
570
571    /// A description of the item.
572    pub description: Option<Box<ThingDescription>>,
573
574    /// Email address for correspondence.
575    pub emails: Option<Vec<String>>,
576
577    /// The identifier for this item.
578    pub id: Option<Box<String>>,
579
580    /// Any kind of identifier for any kind of Thing.
581    pub identifiers: Option<Vec<ThingIdentifiers>>,
582
583    /// Images of the item.
584    pub images: Option<Vec<ThingImages>>,
585
586    /// The name of the item.
587    pub name: Option<Box<String>>,
588
589    /// Telephone numbers for the contact point.
590    pub telephone_numbers: Option<Vec<String>>,
591
592    /// The URL of the item.
593    pub url: Option<Box<String>>,
594}
595
596#[derive(Clone, Debug, Serialize, Deserialize)]
597pub enum ContactPoint_ {
598  ContactPoint
599}
600
601/// A creative work, including books, movies, photographs, software programs, etc.
602#[skip_serializing_none]
603#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
604#[serde(default, rename_all = "camelCase")]
605pub struct CreativeWork {
606    /// The name of this type
607    #[def = "CreativeWork_::CreativeWork"]
608    pub type_: CreativeWork_,
609
610    /// The subject matter of the content.
611    pub about: Option<Vec<ThingTypes>>,
612
613    /// Alternate names (aliases) for the item.
614    pub alternate_names: Option<Vec<String>>,
615
616    /// The authors of this creative work.
617    pub authors: Option<Vec<CreativeWorkAuthors>>,
618
619    /// Comments about this creative work.
620    pub comments: Option<Vec<Comment>>,
621
622    /// The structured content of this creative work c.f. property `text`.
623    pub content: Option<Box<CreativeWorkContent>>,
624
625    /// Date/time of acceptance.
626    pub date_accepted: Option<Box<Date>>,
627
628    /// Date/time of creation.
629    pub date_created: Option<Box<Date>>,
630
631    /// Date/time of most recent modification.
632    pub date_modified: Option<Box<Date>>,
633
634    /// Date of first publication.
635    pub date_published: Option<Box<Date>>,
636
637    /// Date/time that work was received.
638    pub date_received: Option<Box<Date>>,
639
640    /// A description of the item.
641    pub description: Option<Box<ThingDescription>>,
642
643    /// People who edited the `CreativeWork`.
644    pub editors: Option<Vec<Person>>,
645
646    /// Grants that funded the `CreativeWork`; reverse of `fundedItems`.
647    pub funded_by: Option<Vec<CreativeWorkFundedBy>>,
648
649    /// People or organizations that funded the `CreativeWork`.
650    pub funders: Option<Vec<CreativeWorkFunders>>,
651
652    /// Genre of the creative work, broadcast channel or group.
653    pub genre: Option<Vec<String>>,
654
655    /// The identifier for this item.
656    pub id: Option<Box<String>>,
657
658    /// Any kind of identifier for any kind of Thing.
659    pub identifiers: Option<Vec<ThingIdentifiers>>,
660
661    /// Images of the item.
662    pub images: Option<Vec<ThingImages>>,
663
664    /// An item or other CreativeWork that this CreativeWork is a part of.
665    pub is_part_of: Option<Box<CreativeWorkTypes>>,
666
667    /// Keywords or tags used to describe this content. Multiple entries in a keywords list are typically delimited by commas.
668    pub keywords: Option<Vec<String>>,
669
670    /// License documents that applies to this content, typically indicated by URL.
671    pub licenses: Option<Vec<CreativeWorkLicenses>>,
672
673    /// The people or organizations who maintain this CreativeWork.
674    pub maintainers: Option<Vec<CreativeWorkMaintainers>>,
675
676    /// The name of the item.
677    pub name: Option<Box<String>>,
678
679    /// Elements of the collection which can be a variety of different elements, such as Articles, Datatables, Tables and more.
680    pub parts: Option<Vec<CreativeWorkTypes>>,
681
682    /// A publisher of the CreativeWork.
683    pub publisher: Option<Box<CreativeWorkPublisher>>,
684
685    /// References to other creative works, such as another publication, web page, scholarly article, etc.
686    pub references: Option<Vec<CreativeWorkReferences>>,
687
688    /// The textual content of this creative work.
689    pub text: Option<Box<String>>,
690
691    /// The title of the creative work.
692    pub title: Option<Box<CreativeWorkTitle>>,
693
694    /// The URL of the item.
695    pub url: Option<Box<String>>,
696
697    /// The version of the creative work.
698    pub version: Option<Box<CreativeWorkVersion>>,
699}
700
701#[derive(Clone, Debug, Serialize, Deserialize)]
702pub enum CreativeWork_ {
703  CreativeWork
704}
705
706/// An article, including news and scholarly articles.
707#[skip_serializing_none]
708#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
709#[serde(default, rename_all = "camelCase")]
710pub struct Article {
711    /// The name of this type
712    #[def = "Article_::Article"]
713    pub type_: Article_,
714
715    /// The subject matter of the content.
716    pub about: Option<Vec<ThingTypes>>,
717
718    /// Alternate names (aliases) for the item.
719    pub alternate_names: Option<Vec<String>>,
720
721    /// The authors of this creative work.
722    pub authors: Option<Vec<CreativeWorkAuthors>>,
723
724    /// Comments about this creative work.
725    pub comments: Option<Vec<Comment>>,
726
727    /// The structured content of this article.
728    pub content: Option<Vec<BlockContent>>,
729
730    /// Date/time of acceptance.
731    pub date_accepted: Option<Box<Date>>,
732
733    /// Date/time of creation.
734    pub date_created: Option<Box<Date>>,
735
736    /// Date/time of most recent modification.
737    pub date_modified: Option<Box<Date>>,
738
739    /// Date of first publication.
740    pub date_published: Option<Box<Date>>,
741
742    /// Date/time that work was received.
743    pub date_received: Option<Box<Date>>,
744
745    /// A description of the item.
746    pub description: Option<Box<ThingDescription>>,
747
748    /// People who edited the `CreativeWork`.
749    pub editors: Option<Vec<Person>>,
750
751    /// Grants that funded the `CreativeWork`; reverse of `fundedItems`.
752    pub funded_by: Option<Vec<CreativeWorkFundedBy>>,
753
754    /// People or organizations that funded the `CreativeWork`.
755    pub funders: Option<Vec<CreativeWorkFunders>>,
756
757    /// Genre of the creative work, broadcast channel or group.
758    pub genre: Option<Vec<String>>,
759
760    /// The identifier for this item.
761    pub id: Option<Box<String>>,
762
763    /// Any kind of identifier for any kind of Thing.
764    pub identifiers: Option<Vec<ThingIdentifiers>>,
765
766    /// Images of the item.
767    pub images: Option<Vec<ThingImages>>,
768
769    /// An item or other CreativeWork that this CreativeWork is a part of.
770    pub is_part_of: Option<Box<CreativeWorkTypes>>,
771
772    /// Keywords or tags used to describe this content. Multiple entries in a keywords list are typically delimited by commas.
773    pub keywords: Option<Vec<String>>,
774
775    /// License documents that applies to this content, typically indicated by URL.
776    pub licenses: Option<Vec<CreativeWorkLicenses>>,
777
778    /// The people or organizations who maintain this CreativeWork.
779    pub maintainers: Option<Vec<CreativeWorkMaintainers>>,
780
781    /// The name of the item.
782    pub name: Option<Box<String>>,
783
784    /// The page on which the article ends; for example "138" or "xvi".
785    pub page_end: Option<Box<ArticlePageEnd>>,
786
787    /// The page on which the article starts; for example "135" or "xiii".
788    pub page_start: Option<Box<ArticlePageStart>>,
789
790    /// Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55".
791    pub pagination: Option<Box<String>>,
792
793    /// Elements of the collection which can be a variety of different elements, such as Articles, Datatables, Tables and more.
794    pub parts: Option<Vec<CreativeWorkTypes>>,
795
796    /// A publisher of the CreativeWork.
797    pub publisher: Option<Box<CreativeWorkPublisher>>,
798
799    /// References to other creative works, such as another publication, web page, scholarly article, etc.
800    pub references: Option<Vec<CreativeWorkReferences>>,
801
802    /// The textual content of this creative work.
803    pub text: Option<Box<String>>,
804
805    /// The title of the creative work.
806    pub title: Option<Box<CreativeWorkTitle>>,
807
808    /// The URL of the item.
809    pub url: Option<Box<String>>,
810
811    /// The version of the creative work.
812    pub version: Option<Box<CreativeWorkVersion>>,
813}
814
815#[derive(Clone, Debug, Serialize, Deserialize)]
816pub enum Article_ {
817  Article
818}
819
820/// A claim represents specific reviewable facts or statements.
821#[skip_serializing_none]
822#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
823#[serde(default, rename_all = "camelCase")]
824pub struct Claim {
825    /// The name of this type
826    #[def = "Claim_::Claim"]
827    pub type_: Claim_,
828
829    /// Content of the claim, usually a single paragraph.
830    pub content: Vec<BlockContent>,
831
832    /// The subject matter of the content.
833    pub about: Option<Vec<ThingTypes>>,
834
835    /// Alternate names (aliases) for the item.
836    pub alternate_names: Option<Vec<String>>,
837
838    /// The authors of this creative work.
839    pub authors: Option<Vec<CreativeWorkAuthors>>,
840
841    /// Kind of the claim.
842    pub claim_type: Option<ClaimClaimType>,
843
844    /// Comments about this creative work.
845    pub comments: Option<Vec<Comment>>,
846
847    /// Date/time of acceptance.
848    pub date_accepted: Option<Box<Date>>,
849
850    /// Date/time of creation.
851    pub date_created: Option<Box<Date>>,
852
853    /// Date/time of most recent modification.
854    pub date_modified: Option<Box<Date>>,
855
856    /// Date of first publication.
857    pub date_published: Option<Box<Date>>,
858
859    /// Date/time that work was received.
860    pub date_received: Option<Box<Date>>,
861
862    /// A description of the item.
863    pub description: Option<Box<ThingDescription>>,
864
865    /// People who edited the `CreativeWork`.
866    pub editors: Option<Vec<Person>>,
867
868    /// Grants that funded the `CreativeWork`; reverse of `fundedItems`.
869    pub funded_by: Option<Vec<CreativeWorkFundedBy>>,
870
871    /// People or organizations that funded the `CreativeWork`.
872    pub funders: Option<Vec<CreativeWorkFunders>>,
873
874    /// Genre of the creative work, broadcast channel or group.
875    pub genre: Option<Vec<String>>,
876
877    /// The identifier for this item.
878    pub id: Option<Box<String>>,
879
880    /// Any kind of identifier for any kind of Thing.
881    pub identifiers: Option<Vec<ThingIdentifiers>>,
882
883    /// Images of the item.
884    pub images: Option<Vec<ThingImages>>,
885
886    /// An item or other CreativeWork that this CreativeWork is a part of.
887    pub is_part_of: Option<Box<CreativeWorkTypes>>,
888
889    /// Keywords or tags used to describe this content. Multiple entries in a keywords list are typically delimited by commas.
890    pub keywords: Option<Vec<String>>,
891
892    /// A short label for the claim.
893    pub label: Option<Box<String>>,
894
895    /// License documents that applies to this content, typically indicated by URL.
896    pub licenses: Option<Vec<CreativeWorkLicenses>>,
897
898    /// The people or organizations who maintain this CreativeWork.
899    pub maintainers: Option<Vec<CreativeWorkMaintainers>>,
900
901    /// The name of the item.
902    pub name: Option<Box<String>>,
903
904    /// Elements of the collection which can be a variety of different elements, such as Articles, Datatables, Tables and more.
905    pub parts: Option<Vec<CreativeWorkTypes>>,
906
907    /// A publisher of the CreativeWork.
908    pub publisher: Option<Box<CreativeWorkPublisher>>,
909
910    /// References to other creative works, such as another publication, web page, scholarly article, etc.
911    pub references: Option<Vec<CreativeWorkReferences>>,
912
913    /// The textual content of this creative work.
914    pub text: Option<Box<String>>,
915
916    /// The title of the creative work.
917    pub title: Option<Box<CreativeWorkTitle>>,
918
919    /// The URL of the item.
920    pub url: Option<Box<String>>,
921
922    /// The version of the creative work.
923    pub version: Option<Box<CreativeWorkVersion>>,
924}
925
926#[derive(Clone, Debug, Serialize, Deserialize)]
927pub enum Claim_ {
928  Claim
929}
930/// A claim represents specific reviewable facts or statements.
931#[skip_serializing_none]
932#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
933#[serde(default, rename_all = "camelCase")]
934pub struct ClaimSimple {
935    /// The name of this type
936    #[def = "ClaimSimple_::Claim"]
937    pub type_: ClaimSimple_,
938
939    /// Content of the claim, usually a single paragraph.
940    pub content: Vec<BlockContent>,
941
942    /// Kind of the claim.
943    pub claim_type: Option<ClaimClaimType>,
944
945    /// The identifier for this item.
946    pub id: Option<Box<String>>,
947
948    /// A short label for the claim.
949    pub label: Option<Box<String>>,
950
951    /// Elements of the collection which can be a variety of different elements, such as Articles, Datatables, Tables and more.
952    pub parts: Option<Vec<CreativeWorkTypes>>,
953
954    /// The title of the creative work.
955    pub title: Option<Box<CreativeWorkTitle>>,
956}
957
958#[derive(Clone, Debug, Serialize, Deserialize)]
959pub enum ClaimSimple_ {
960  Claim
961}
962
963/// A collection of CreativeWorks or other artifacts.
964#[skip_serializing_none]
965#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
966#[serde(default, rename_all = "camelCase")]
967pub struct Collection {
968    /// The name of this type
969    #[def = "Collection_::Collection"]
970    pub type_: Collection_,
971
972    /// Elements of the collection which can be a variety of different elements, such as Articles, Datatables, Tables and more.
973    pub parts: Vec<CreativeWorkTypes>,
974
975    /// The subject matter of the content.
976    pub about: Option<Vec<ThingTypes>>,
977
978    /// Alternate names (aliases) for the item.
979    pub alternate_names: Option<Vec<String>>,
980
981    /// The authors of this creative work.
982    pub authors: Option<Vec<CreativeWorkAuthors>>,
983
984    /// Comments about this creative work.
985    pub comments: Option<Vec<Comment>>,
986
987    /// The structured content of this creative work c.f. property `text`.
988    pub content: Option<Box<CreativeWorkContent>>,
989
990    /// Date/time of acceptance.
991    pub date_accepted: Option<Box<Date>>,
992
993    /// Date/time of creation.
994    pub date_created: Option<Box<Date>>,
995
996    /// Date/time of most recent modification.
997    pub date_modified: Option<Box<Date>>,
998
999    /// Date of first publication.
1000    pub date_published: Option<Box<Date>>,
1001
1002    /// Date/time that work was received.
1003    pub date_received: Option<Box<Date>>,
1004
1005    /// A description of the item.
1006    pub description: Option<Box<ThingDescription>>,
1007
1008    /// People who edited the `CreativeWork`.
1009    pub editors: Option<Vec<Person>>,
1010
1011    /// Grants that funded the `CreativeWork`; reverse of `fundedItems`.
1012    pub funded_by: Option<Vec<CreativeWorkFundedBy>>,
1013
1014    /// People or organizations that funded the `CreativeWork`.
1015    pub funders: Option<Vec<CreativeWorkFunders>>,
1016
1017    /// Genre of the creative work, broadcast channel or group.
1018    pub genre: Option<Vec<String>>,
1019
1020    /// The identifier for this item.
1021    pub id: Option<Box<String>>,
1022
1023    /// Any kind of identifier for any kind of Thing.
1024    pub identifiers: Option<Vec<ThingIdentifiers>>,
1025
1026    /// Images of the item.
1027    pub images: Option<Vec<ThingImages>>,
1028
1029    /// An item or other CreativeWork that this CreativeWork is a part of.
1030    pub is_part_of: Option<Box<CreativeWorkTypes>>,
1031
1032    /// Keywords or tags used to describe this content. Multiple entries in a keywords list are typically delimited by commas.
1033    pub keywords: Option<Vec<String>>,
1034
1035    /// License documents that applies to this content, typically indicated by URL.
1036    pub licenses: Option<Vec<CreativeWorkLicenses>>,
1037
1038    /// The people or organizations who maintain this CreativeWork.
1039    pub maintainers: Option<Vec<CreativeWorkMaintainers>>,
1040
1041    /// The name of the item.
1042    pub name: Option<Box<String>>,
1043
1044    /// A publisher of the CreativeWork.
1045    pub publisher: Option<Box<CreativeWorkPublisher>>,
1046
1047    /// References to other creative works, such as another publication, web page, scholarly article, etc.
1048    pub references: Option<Vec<CreativeWorkReferences>>,
1049
1050    /// The textual content of this creative work.
1051    pub text: Option<Box<String>>,
1052
1053    /// The title of the creative work.
1054    pub title: Option<Box<CreativeWorkTitle>>,
1055
1056    /// The URL of the item.
1057    pub url: Option<Box<String>>,
1058
1059    /// The version of the creative work.
1060    pub version: Option<Box<CreativeWorkVersion>>,
1061}
1062
1063#[derive(Clone, Debug, Serialize, Deserialize)]
1064pub enum Collection_ {
1065  Collection
1066}
1067/// A collection of CreativeWorks or other artifacts.
1068#[skip_serializing_none]
1069#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
1070#[serde(default, rename_all = "camelCase")]
1071pub struct CollectionSimple {
1072    /// The name of this type
1073    #[def = "CollectionSimple_::Collection"]
1074    pub type_: CollectionSimple_,
1075
1076    /// Elements of the collection which can be a variety of different elements, such as Articles, Datatables, Tables and more.
1077    pub parts: Vec<CreativeWorkTypes>,
1078
1079    /// The structured content of this creative work c.f. property `text`.
1080    pub content: Option<Box<CreativeWorkContent>>,
1081
1082    /// The identifier for this item.
1083    pub id: Option<Box<String>>,
1084
1085    /// The title of the creative work.
1086    pub title: Option<Box<CreativeWorkTitle>>,
1087}
1088
1089#[derive(Clone, Debug, Serialize, Deserialize)]
1090pub enum CollectionSimple_ {
1091  Collection
1092}
1093
1094/// A comment on an item, e.g on a Article, or SoftwareSourceCode.
1095#[skip_serializing_none]
1096#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
1097#[serde(default, rename_all = "camelCase")]
1098pub struct Comment {
1099    /// The name of this type
1100    #[def = "Comment_::Comment"]
1101    pub type_: Comment_,
1102
1103    /// The subject matter of the content.
1104    pub about: Option<Vec<ThingTypes>>,
1105
1106    /// Alternate names (aliases) for the item.
1107    pub alternate_names: Option<Vec<String>>,
1108
1109    /// The authors of this creative work.
1110    pub authors: Option<Vec<CreativeWorkAuthors>>,
1111
1112    /// The part or facet of the item that is being commented on.
1113    pub comment_aspect: Option<Box<String>>,
1114
1115    /// Comments about this creative work.
1116    pub comments: Option<Vec<Comment>>,
1117
1118    /// The structured content of this creative work c.f. property `text`.
1119    pub content: Option<Box<CreativeWorkContent>>,
1120
1121    /// Date/time of acceptance.
1122    pub date_accepted: Option<Box<Date>>,
1123
1124    /// Date/time of creation.
1125    pub date_created: Option<Box<Date>>,
1126
1127    /// Date/time of most recent modification.
1128    pub date_modified: Option<Box<Date>>,
1129
1130    /// Date of first publication.
1131    pub date_published: Option<Box<Date>>,
1132
1133    /// Date/time that work was received.
1134    pub date_received: Option<Box<Date>>,
1135
1136    /// A description of the item.
1137    pub description: Option<Box<ThingDescription>>,
1138
1139    /// People who edited the `CreativeWork`.
1140    pub editors: Option<Vec<Person>>,
1141
1142    /// Grants that funded the `CreativeWork`; reverse of `fundedItems`.
1143    pub funded_by: Option<Vec<CreativeWorkFundedBy>>,
1144
1145    /// People or organizations that funded the `CreativeWork`.
1146    pub funders: Option<Vec<CreativeWorkFunders>>,
1147
1148    /// Genre of the creative work, broadcast channel or group.
1149    pub genre: Option<Vec<String>>,
1150
1151    /// The identifier for this item.
1152    pub id: Option<Box<String>>,
1153
1154    /// Any kind of identifier for any kind of Thing.
1155    pub identifiers: Option<Vec<ThingIdentifiers>>,
1156
1157    /// Images of the item.
1158    pub images: Option<Vec<ThingImages>>,
1159
1160    /// An item or other CreativeWork that this CreativeWork is a part of.
1161    pub is_part_of: Option<Box<CreativeWorkTypes>>,
1162
1163    /// Keywords or tags used to describe this content. Multiple entries in a keywords list are typically delimited by commas.
1164    pub keywords: Option<Vec<String>>,
1165
1166    /// License documents that applies to this content, typically indicated by URL.
1167    pub licenses: Option<Vec<CreativeWorkLicenses>>,
1168
1169    /// The people or organizations who maintain this CreativeWork.
1170    pub maintainers: Option<Vec<CreativeWorkMaintainers>>,
1171
1172    /// The name of the item.
1173    pub name: Option<Box<String>>,
1174
1175    /// The parent comment of this comment.
1176    pub parent_item: Option<Box<Comment>>,
1177
1178    /// Elements of the collection which can be a variety of different elements, such as Articles, Datatables, Tables and more.
1179    pub parts: Option<Vec<CreativeWorkTypes>>,
1180
1181    /// A publisher of the CreativeWork.
1182    pub publisher: Option<Box<CreativeWorkPublisher>>,
1183
1184    /// References to other creative works, such as another publication, web page, scholarly article, etc.
1185    pub references: Option<Vec<CreativeWorkReferences>>,
1186
1187    /// The textual content of this creative work.
1188    pub text: Option<Box<String>>,
1189
1190    /// The title of the creative work.
1191    pub title: Option<Box<CreativeWorkTitle>>,
1192
1193    /// The URL of the item.
1194    pub url: Option<Box<String>>,
1195
1196    /// The version of the creative work.
1197    pub version: Option<Box<CreativeWorkVersion>>,
1198}
1199
1200#[derive(Clone, Debug, Serialize, Deserialize)]
1201pub enum Comment_ {
1202  Comment
1203}
1204
1205/// A table of data.
1206#[skip_serializing_none]
1207#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
1208#[serde(default, rename_all = "camelCase")]
1209pub struct Datatable {
1210    /// The name of this type
1211    #[def = "Datatable_::Datatable"]
1212    pub type_: Datatable_,
1213
1214    /// The columns of data.
1215    pub columns: Vec<DatatableColumn>,
1216
1217    /// The subject matter of the content.
1218    pub about: Option<Vec<ThingTypes>>,
1219
1220    /// Alternate names (aliases) for the item.
1221    pub alternate_names: Option<Vec<String>>,
1222
1223    /// The authors of this creative work.
1224    pub authors: Option<Vec<CreativeWorkAuthors>>,
1225
1226    /// Comments about this creative work.
1227    pub comments: Option<Vec<Comment>>,
1228
1229    /// The structured content of this creative work c.f. property `text`.
1230    pub content: Option<Box<CreativeWorkContent>>,
1231
1232    /// Date/time of acceptance.
1233    pub date_accepted: Option<Box<Date>>,
1234
1235    /// Date/time of creation.
1236    pub date_created: Option<Box<Date>>,
1237
1238    /// Date/time of most recent modification.
1239    pub date_modified: Option<Box<Date>>,
1240
1241    /// Date of first publication.
1242    pub date_published: Option<Box<Date>>,
1243
1244    /// Date/time that work was received.
1245    pub date_received: Option<Box<Date>>,
1246
1247    /// A description of the item.
1248    pub description: Option<Box<ThingDescription>>,
1249
1250    /// People who edited the `CreativeWork`.
1251    pub editors: Option<Vec<Person>>,
1252
1253    /// Grants that funded the `CreativeWork`; reverse of `fundedItems`.
1254    pub funded_by: Option<Vec<CreativeWorkFundedBy>>,
1255
1256    /// People or organizations that funded the `CreativeWork`.
1257    pub funders: Option<Vec<CreativeWorkFunders>>,
1258
1259    /// Genre of the creative work, broadcast channel or group.
1260    pub genre: Option<Vec<String>>,
1261
1262    /// The identifier for this item.
1263    pub id: Option<Box<String>>,
1264
1265    /// Any kind of identifier for any kind of Thing.
1266    pub identifiers: Option<Vec<ThingIdentifiers>>,
1267
1268    /// Images of the item.
1269    pub images: Option<Vec<ThingImages>>,
1270
1271    /// An item or other CreativeWork that this CreativeWork is a part of.
1272    pub is_part_of: Option<Box<CreativeWorkTypes>>,
1273
1274    /// Keywords or tags used to describe this content. Multiple entries in a keywords list are typically delimited by commas.
1275    pub keywords: Option<Vec<String>>,
1276
1277    /// License documents that applies to this content, typically indicated by URL.
1278    pub licenses: Option<Vec<CreativeWorkLicenses>>,
1279
1280    /// The people or organizations who maintain this CreativeWork.
1281    pub maintainers: Option<Vec<CreativeWorkMaintainers>>,
1282
1283    /// The name of the item.
1284    pub name: Option<Box<String>>,
1285
1286    /// Elements of the collection which can be a variety of different elements, such as Articles, Datatables, Tables and more.
1287    pub parts: Option<Vec<CreativeWorkTypes>>,
1288
1289    /// A publisher of the CreativeWork.
1290    pub publisher: Option<Box<CreativeWorkPublisher>>,
1291
1292    /// References to other creative works, such as another publication, web page, scholarly article, etc.
1293    pub references: Option<Vec<CreativeWorkReferences>>,
1294
1295    /// The textual content of this creative work.
1296    pub text: Option<Box<String>>,
1297
1298    /// The title of the creative work.
1299    pub title: Option<Box<CreativeWorkTitle>>,
1300
1301    /// The URL of the item.
1302    pub url: Option<Box<String>>,
1303
1304    /// The version of the creative work.
1305    pub version: Option<Box<CreativeWorkVersion>>,
1306}
1307
1308#[derive(Clone, Debug, Serialize, Deserialize)]
1309pub enum Datatable_ {
1310  Datatable
1311}
1312
1313/// A media object, such as an image, video, or audio object embedded in a web page or a downloadable dataset.
1314#[skip_serializing_none]
1315#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
1316#[serde(default, rename_all = "camelCase")]
1317pub struct MediaObject {
1318    /// The name of this type
1319    #[def = "MediaObject_::MediaObject"]
1320    pub type_: MediaObject_,
1321
1322    /// URL for the actual bytes of the media object, for example the image file or video file.
1323    pub content_url: String,
1324
1325    /// The subject matter of the content.
1326    pub about: Option<Vec<ThingTypes>>,
1327
1328    /// Alternate names (aliases) for the item.
1329    pub alternate_names: Option<Vec<String>>,
1330
1331    /// The authors of this creative work.
1332    pub authors: Option<Vec<CreativeWorkAuthors>>,
1333
1334    /// Bitrate in megabits per second (Mbit/s, Mb/s, Mbps).
1335    pub bitrate: Option<Number>,
1336
1337    /// Comments about this creative work.
1338    pub comments: Option<Vec<Comment>>,
1339
1340    /// The structured content of this creative work c.f. property `text`.
1341    pub content: Option<Box<CreativeWorkContent>>,
1342
1343    /// File size in megabits (Mbit, Mb).
1344    pub content_size: Option<Number>,
1345
1346    /// Date/time of acceptance.
1347    pub date_accepted: Option<Box<Date>>,
1348
1349    /// Date/time of creation.
1350    pub date_created: Option<Box<Date>>,
1351
1352    /// Date/time of most recent modification.
1353    pub date_modified: Option<Box<Date>>,
1354
1355    /// Date of first publication.
1356    pub date_published: Option<Box<Date>>,
1357
1358    /// Date/time that work was received.
1359    pub date_received: Option<Box<Date>>,
1360
1361    /// A description of the item.
1362    pub description: Option<Box<ThingDescription>>,
1363
1364    /// People who edited the `CreativeWork`.
1365    pub editors: Option<Vec<Person>>,
1366
1367    /// URL that can be used to embed the media on a web page via a specific media player.
1368    pub embed_url: Option<Box<String>>,
1369
1370    /// Grants that funded the `CreativeWork`; reverse of `fundedItems`.
1371    pub funded_by: Option<Vec<CreativeWorkFundedBy>>,
1372
1373    /// People or organizations that funded the `CreativeWork`.
1374    pub funders: Option<Vec<CreativeWorkFunders>>,
1375
1376    /// Genre of the creative work, broadcast channel or group.
1377    pub genre: Option<Vec<String>>,
1378
1379    /// The identifier for this item.
1380    pub id: Option<Box<String>>,
1381
1382    /// Any kind of identifier for any kind of Thing.
1383    pub identifiers: Option<Vec<ThingIdentifiers>>,
1384
1385    /// Images of the item.
1386    pub images: Option<Vec<ThingImages>>,
1387
1388    /// An item or other CreativeWork that this CreativeWork is a part of.
1389    pub is_part_of: Option<Box<CreativeWorkTypes>>,
1390
1391    /// Keywords or tags used to describe this content. Multiple entries in a keywords list are typically delimited by commas.
1392    pub keywords: Option<Vec<String>>,
1393
1394    /// License documents that applies to this content, typically indicated by URL.
1395    pub licenses: Option<Vec<CreativeWorkLicenses>>,
1396
1397    /// The people or organizations who maintain this CreativeWork.
1398    pub maintainers: Option<Vec<CreativeWorkMaintainers>>,
1399
1400    /// IANA media type (MIME type).
1401    pub media_type: Option<Box<String>>,
1402
1403    /// The name of the item.
1404    pub name: Option<Box<String>>,
1405
1406    /// Elements of the collection which can be a variety of different elements, such as Articles, Datatables, Tables and more.
1407    pub parts: Option<Vec<CreativeWorkTypes>>,
1408
1409    /// A publisher of the CreativeWork.
1410    pub publisher: Option<Box<CreativeWorkPublisher>>,
1411
1412    /// References to other creative works, such as another publication, web page, scholarly article, etc.
1413    pub references: Option<Vec<CreativeWorkReferences>>,
1414
1415    /// The textual content of this creative work.
1416    pub text: Option<Box<String>>,
1417
1418    /// The title of the creative work.
1419    pub title: Option<Box<CreativeWorkTitle>>,
1420
1421    /// The URL of the item.
1422    pub url: Option<Box<String>>,
1423
1424    /// The version of the creative work.
1425    pub version: Option<Box<CreativeWorkVersion>>,
1426}
1427
1428#[derive(Clone, Debug, Serialize, Deserialize)]
1429pub enum MediaObject_ {
1430  MediaObject
1431}
1432
1433/// An audio file
1434#[skip_serializing_none]
1435#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
1436#[serde(default, rename_all = "camelCase")]
1437pub struct AudioObject {
1438    /// The name of this type
1439    #[def = "AudioObject_::AudioObject"]
1440    pub type_: AudioObject_,
1441
1442    /// URL for the actual bytes of the media object, for example the image file or video file.
1443    pub content_url: String,
1444
1445    /// The subject matter of the content.
1446    pub about: Option<Vec<ThingTypes>>,
1447
1448    /// Alternate names (aliases) for the item.
1449    pub alternate_names: Option<Vec<String>>,
1450
1451    /// The authors of this creative work.
1452    pub authors: Option<Vec<CreativeWorkAuthors>>,
1453
1454    /// Bitrate in megabits per second (Mbit/s, Mb/s, Mbps).
1455    pub bitrate: Option<Number>,
1456
1457    /// The caption for this audio recording.
1458    pub caption: Option<Box<String>>,
1459
1460    /// Comments about this creative work.
1461    pub comments: Option<Vec<Comment>>,
1462
1463    /// The structured content of this creative work c.f. property `text`.
1464    pub content: Option<Box<CreativeWorkContent>>,
1465
1466    /// File size in megabits (Mbit, Mb).
1467    pub content_size: Option<Number>,
1468
1469    /// Date/time of acceptance.
1470    pub date_accepted: Option<Box<Date>>,
1471
1472    /// Date/time of creation.
1473    pub date_created: Option<Box<Date>>,
1474
1475    /// Date/time of most recent modification.
1476    pub date_modified: Option<Box<Date>>,
1477
1478    /// Date of first publication.
1479    pub date_published: Option<Box<Date>>,
1480
1481    /// Date/time that work was received.
1482    pub date_received: Option<Box<Date>>,
1483
1484    /// A description of the item.
1485    pub description: Option<Box<ThingDescription>>,
1486
1487    /// People who edited the `CreativeWork`.
1488    pub editors: Option<Vec<Person>>,
1489
1490    /// URL that can be used to embed the media on a web page via a specific media player.
1491    pub embed_url: Option<Box<String>>,
1492
1493    /// Grants that funded the `CreativeWork`; reverse of `fundedItems`.
1494    pub funded_by: Option<Vec<CreativeWorkFundedBy>>,
1495
1496    /// People or organizations that funded the `CreativeWork`.
1497    pub funders: Option<Vec<CreativeWorkFunders>>,
1498
1499    /// Genre of the creative work, broadcast channel or group.
1500    pub genre: Option<Vec<String>>,
1501
1502    /// The identifier for this item.
1503    pub id: Option<Box<String>>,
1504
1505    /// Any kind of identifier for any kind of Thing.
1506    pub identifiers: Option<Vec<ThingIdentifiers>>,
1507
1508    /// Images of the item.
1509    pub images: Option<Vec<ThingImages>>,
1510
1511    /// An item or other CreativeWork that this CreativeWork is a part of.
1512    pub is_part_of: Option<Box<CreativeWorkTypes>>,
1513
1514    /// Keywords or tags used to describe this content. Multiple entries in a keywords list are typically delimited by commas.
1515    pub keywords: Option<Vec<String>>,
1516
1517    /// License documents that applies to this content, typically indicated by URL.
1518    pub licenses: Option<Vec<CreativeWorkLicenses>>,
1519
1520    /// The people or organizations who maintain this CreativeWork.
1521    pub maintainers: Option<Vec<CreativeWorkMaintainers>>,
1522
1523    /// IANA media type (MIME type).
1524    pub media_type: Option<Box<String>>,
1525
1526    /// The name of the item.
1527    pub name: Option<Box<String>>,
1528
1529    /// Elements of the collection which can be a variety of different elements, such as Articles, Datatables, Tables and more.
1530    pub parts: Option<Vec<CreativeWorkTypes>>,
1531
1532    /// A publisher of the CreativeWork.
1533    pub publisher: Option<Box<CreativeWorkPublisher>>,
1534
1535    /// References to other creative works, such as another publication, web page, scholarly article, etc.
1536    pub references: Option<Vec<CreativeWorkReferences>>,
1537
1538    /// The textual content of this creative work.
1539    pub text: Option<Box<String>>,
1540
1541    /// The title of the creative work.
1542    pub title: Option<Box<CreativeWorkTitle>>,
1543
1544    /// The transcript of this audio recording.
1545    pub transcript: Option<Box<String>>,
1546
1547    /// The URL of the item.
1548    pub url: Option<Box<String>>,
1549
1550    /// The version of the creative work.
1551    pub version: Option<Box<CreativeWorkVersion>>,
1552}
1553
1554#[derive(Clone, Debug, Serialize, Deserialize)]
1555pub enum AudioObject_ {
1556  AudioObject
1557}
1558/// An audio file
1559#[skip_serializing_none]
1560#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
1561#[serde(default, rename_all = "camelCase")]
1562pub struct AudioObjectSimple {
1563    /// The name of this type
1564    #[def = "AudioObjectSimple_::AudioObject"]
1565    pub type_: AudioObjectSimple_,
1566
1567    /// URL for the actual bytes of the media object, for example the image file or video file.
1568    pub content_url: String,
1569
1570    /// Bitrate in megabits per second (Mbit/s, Mb/s, Mbps).
1571    pub bitrate: Option<Number>,
1572
1573    /// The caption for this audio recording.
1574    pub caption: Option<Box<String>>,
1575
1576    /// File size in megabits (Mbit, Mb).
1577    pub content_size: Option<Number>,
1578
1579    /// URL that can be used to embed the media on a web page via a specific media player.
1580    pub embed_url: Option<Box<String>>,
1581
1582    /// The identifier for this item.
1583    pub id: Option<Box<String>>,
1584
1585    /// IANA media type (MIME type).
1586    pub media_type: Option<Box<String>>,
1587
1588    /// The title of the creative work.
1589    pub title: Option<Box<CreativeWorkTitle>>,
1590
1591    /// The transcript of this audio recording.
1592    pub transcript: Option<Box<String>>,
1593}
1594
1595#[derive(Clone, Debug, Serialize, Deserialize)]
1596pub enum AudioObjectSimple_ {
1597  AudioObject
1598}
1599
1600/// A column of data within a Datatable.
1601#[skip_serializing_none]
1602#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
1603#[serde(default, rename_all = "camelCase")]
1604pub struct DatatableColumn {
1605    /// The name of this type
1606    #[def = "DatatableColumn_::DatatableColumn"]
1607    pub type_: DatatableColumn_,
1608
1609    /// The name of the item.
1610    pub name: String,
1611
1612    /// The data values of the column.
1613    pub values: Vec<Node>,
1614
1615    /// Alternate names (aliases) for the item.
1616    pub alternate_names: Option<Vec<String>>,
1617
1618    /// A description of the item.
1619    pub description: Option<Box<ThingDescription>>,
1620
1621    /// The identifier for this item.
1622    pub id: Option<Box<String>>,
1623
1624    /// Any kind of identifier for any kind of Thing.
1625    pub identifiers: Option<Vec<ThingIdentifiers>>,
1626
1627    /// Images of the item.
1628    pub images: Option<Vec<ThingImages>>,
1629
1630    /// The URL of the item.
1631    pub url: Option<Box<String>>,
1632
1633    /// The validator to use to validate data in the column.
1634    pub validator: Option<Box<ArrayValidator>>,
1635}
1636
1637#[derive(Clone, Debug, Serialize, Deserialize)]
1638pub enum DatatableColumn_ {
1639  DatatableColumn
1640}
1641
1642/// A word, name, acronym, phrase, etc. with a formal definition.
1643#[skip_serializing_none]
1644#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
1645#[serde(default, rename_all = "camelCase")]
1646pub struct DefinedTerm {
1647    /// The name of this type
1648    #[def = "DefinedTerm_::DefinedTerm"]
1649    pub type_: DefinedTerm_,
1650
1651    /// The name of the item.
1652    pub name: String,
1653
1654    /// Alternate names (aliases) for the item.
1655    pub alternate_names: Option<Vec<String>>,
1656
1657    /// A description of the item.
1658    pub description: Option<Box<ThingDescription>>,
1659
1660    /// The identifier for this item.
1661    pub id: Option<Box<String>>,
1662
1663    /// Any kind of identifier for any kind of Thing.
1664    pub identifiers: Option<Vec<ThingIdentifiers>>,
1665
1666    /// Images of the item.
1667    pub images: Option<Vec<ThingImages>>,
1668
1669    /// A code that identifies this DefinedTerm within a DefinedTermSet
1670    pub term_code: Option<Box<String>>,
1671
1672    /// The URL of the item.
1673    pub url: Option<Box<String>>,
1674}
1675
1676#[derive(Clone, Debug, Serialize, Deserialize)]
1677pub enum DefinedTerm_ {
1678  DefinedTerm
1679}
1680
1681/// A base for all validator types.
1682#[skip_serializing_none]
1683#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
1684#[serde(default, rename_all = "camelCase")]
1685pub struct Validator {
1686    /// The name of this type
1687    #[def = "Validator_::Validator"]
1688    pub type_: Validator_,
1689
1690    /// The identifier for this item.
1691    pub id: Option<Box<String>>,
1692}
1693
1694#[derive(Clone, Debug, Serialize, Deserialize)]
1695pub enum Validator_ {
1696  Validator
1697}
1698
1699/// A validator specifying constraints on an array node.
1700#[skip_serializing_none]
1701#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
1702#[serde(default, rename_all = "camelCase")]
1703pub struct ArrayValidator {
1704    /// The name of this type
1705    #[def = "ArrayValidator_::ArrayValidator"]
1706    pub type_: ArrayValidator_,
1707
1708    /// An array node is valid if at least one of its items is valid against the `contains` schema.
1709    pub contains: Option<Box<ValidatorTypes>>,
1710
1711    /// The identifier for this item.
1712    pub id: Option<Box<String>>,
1713
1714    /// Another validator node specifying the constraints on all items in the array.
1715    pub items_validator: Option<Box<ValidatorTypes>>,
1716
1717    /// An array node is valid if its size is less than, or equal to, this value.
1718    pub max_items: Option<u32>,
1719
1720    /// An array node is valid if its size is greater than, or equal to, this value.
1721    pub min_items: Option<u32>,
1722
1723    /// A flag to indicate that each value in the array should be unique.
1724    pub unique_items: Option<Boolean>,
1725}
1726
1727#[derive(Clone, Debug, Serialize, Deserialize)]
1728pub enum ArrayValidator_ {
1729  ArrayValidator
1730}
1731
1732/// A schema specifying that a node must be a boolean value.
1733#[skip_serializing_none]
1734#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
1735#[serde(default, rename_all = "camelCase")]
1736pub struct BooleanValidator {
1737    /// The name of this type
1738    #[def = "BooleanValidator_::BooleanValidator"]
1739    pub type_: BooleanValidator_,
1740
1741    /// The identifier for this item.
1742    pub id: Option<Box<String>>,
1743}
1744
1745#[derive(Clone, Debug, Serialize, Deserialize)]
1746pub enum BooleanValidator_ {
1747  BooleanValidator
1748}
1749
1750/// A validator specifying a constant value that a node must have.
1751#[skip_serializing_none]
1752#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
1753#[serde(default, rename_all = "camelCase")]
1754pub struct ConstantValidator {
1755    /// The name of this type
1756    #[def = "ConstantValidator_::ConstantValidator"]
1757    pub type_: ConstantValidator_,
1758
1759    /// The identifier for this item.
1760    pub id: Option<Box<String>>,
1761
1762    /// The value that the node must have.
1763    pub value: Option<Box<Node>>,
1764}
1765
1766#[derive(Clone, Debug, Serialize, Deserialize)]
1767pub enum ConstantValidator_ {
1768  ConstantValidator
1769}
1770
1771/// A schema specifying that a node must be one of several values.
1772#[skip_serializing_none]
1773#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
1774#[serde(default, rename_all = "camelCase")]
1775pub struct EnumValidator {
1776    /// The name of this type
1777    #[def = "EnumValidator_::EnumValidator"]
1778    pub type_: EnumValidator_,
1779
1780    /// The identifier for this item.
1781    pub id: Option<Box<String>>,
1782
1783    /// A node is valid if it is equal to any of these values.
1784    pub values: Option<Vec<Node>>,
1785}
1786
1787#[derive(Clone, Debug, Serialize, Deserialize)]
1788pub enum EnumValidator_ {
1789  EnumValidator
1790}
1791
1792/// Lists or enumerations, for example, a list of cuisines or music genres, etc.
1793#[skip_serializing_none]
1794#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
1795#[serde(default, rename_all = "camelCase")]
1796pub struct Enumeration {
1797    /// The name of this type
1798    #[def = "Enumeration_::Enumeration"]
1799    pub type_: Enumeration_,
1800
1801    /// Alternate names (aliases) for the item.
1802    pub alternate_names: Option<Vec<String>>,
1803
1804    /// A description of the item.
1805    pub description: Option<Box<ThingDescription>>,
1806
1807    /// The identifier for this item.
1808    pub id: Option<Box<String>>,
1809
1810    /// Any kind of identifier for any kind of Thing.
1811    pub identifiers: Option<Vec<ThingIdentifiers>>,
1812
1813    /// Images of the item.
1814    pub images: Option<Vec<ThingImages>>,
1815
1816    /// The name of the item.
1817    pub name: Option<Box<String>>,
1818
1819    /// The URL of the item.
1820    pub url: Option<Box<String>>,
1821}
1822
1823#[derive(Clone, Debug, Serialize, Deserialize)]
1824pub enum Enumeration_ {
1825  Enumeration
1826}
1827
1828/// Encapsulates one or more images, videos, tables, etc, and provides captions and labels for them.
1829#[skip_serializing_none]
1830#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
1831#[serde(default, rename_all = "camelCase")]
1832pub struct Figure {
1833    /// The name of this type
1834    #[def = "Figure_::Figure"]
1835    pub type_: Figure_,
1836
1837    /// The subject matter of the content.
1838    pub about: Option<Vec<ThingTypes>>,
1839
1840    /// Alternate names (aliases) for the item.
1841    pub alternate_names: Option<Vec<String>>,
1842
1843    /// The authors of this creative work.
1844    pub authors: Option<Vec<CreativeWorkAuthors>>,
1845
1846    /// A caption for the figure.
1847    pub caption: Option<Box<FigureCaption>>,
1848
1849    /// Comments about this creative work.
1850    pub comments: Option<Vec<Comment>>,
1851
1852    /// The structured content of this creative work c.f. property `text`.
1853    pub content: Option<Box<CreativeWorkContent>>,
1854
1855    /// Date/time of acceptance.
1856    pub date_accepted: Option<Box<Date>>,
1857
1858    /// Date/time of creation.
1859    pub date_created: Option<Box<Date>>,
1860
1861    /// Date/time of most recent modification.
1862    pub date_modified: Option<Box<Date>>,
1863
1864    /// Date of first publication.
1865    pub date_published: Option<Box<Date>>,
1866
1867    /// Date/time that work was received.
1868    pub date_received: Option<Box<Date>>,
1869
1870    /// A description of the item.
1871    pub description: Option<Box<ThingDescription>>,
1872
1873    /// People who edited the `CreativeWork`.
1874    pub editors: Option<Vec<Person>>,
1875
1876    /// Grants that funded the `CreativeWork`; reverse of `fundedItems`.
1877    pub funded_by: Option<Vec<CreativeWorkFundedBy>>,
1878
1879    /// People or organizations that funded the `CreativeWork`.
1880    pub funders: Option<Vec<CreativeWorkFunders>>,
1881
1882    /// Genre of the creative work, broadcast channel or group.
1883    pub genre: Option<Vec<String>>,
1884
1885    /// The identifier for this item.
1886    pub id: Option<Box<String>>,
1887
1888    /// Any kind of identifier for any kind of Thing.
1889    pub identifiers: Option<Vec<ThingIdentifiers>>,
1890
1891    /// Images of the item.
1892    pub images: Option<Vec<ThingImages>>,
1893
1894    /// An item or other CreativeWork that this CreativeWork is a part of.
1895    pub is_part_of: Option<Box<CreativeWorkTypes>>,
1896
1897    /// Keywords or tags used to describe this content. Multiple entries in a keywords list are typically delimited by commas.
1898    pub keywords: Option<Vec<String>>,
1899
1900    /// A short label for the figure.
1901    pub label: Option<Box<String>>,
1902
1903    /// License documents that applies to this content, typically indicated by URL.
1904    pub licenses: Option<Vec<CreativeWorkLicenses>>,
1905
1906    /// The people or organizations who maintain this CreativeWork.
1907    pub maintainers: Option<Vec<CreativeWorkMaintainers>>,
1908
1909    /// The name of the item.
1910    pub name: Option<Box<String>>,
1911
1912    /// Elements of the collection which can be a variety of different elements, such as Articles, Datatables, Tables and more.
1913    pub parts: Option<Vec<CreativeWorkTypes>>,
1914
1915    /// A publisher of the CreativeWork.
1916    pub publisher: Option<Box<CreativeWorkPublisher>>,
1917
1918    /// References to other creative works, such as another publication, web page, scholarly article, etc.
1919    pub references: Option<Vec<CreativeWorkReferences>>,
1920
1921    /// The textual content of this creative work.
1922    pub text: Option<Box<String>>,
1923
1924    /// The title of the creative work.
1925    pub title: Option<Box<CreativeWorkTitle>>,
1926
1927    /// The URL of the item.
1928    pub url: Option<Box<String>>,
1929
1930    /// The version of the creative work.
1931    pub version: Option<Box<CreativeWorkVersion>>,
1932}
1933
1934#[derive(Clone, Debug, Serialize, Deserialize)]
1935pub enum Figure_ {
1936  Figure
1937}
1938/// Encapsulates one or more images, videos, tables, etc, and provides captions and labels for them.
1939#[skip_serializing_none]
1940#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
1941#[serde(default, rename_all = "camelCase")]
1942pub struct FigureSimple {
1943    /// The name of this type
1944    #[def = "FigureSimple_::Figure"]
1945    pub type_: FigureSimple_,
1946
1947    /// A caption for the figure.
1948    pub caption: Option<Box<FigureCaption>>,
1949
1950    /// The structured content of this creative work c.f. property `text`.
1951    pub content: Option<Box<CreativeWorkContent>>,
1952
1953    /// The identifier for this item.
1954    pub id: Option<Box<String>>,
1955
1956    /// A short label for the figure.
1957    pub label: Option<Box<String>>,
1958
1959    /// Elements of the collection which can be a variety of different elements, such as Articles, Datatables, Tables and more.
1960    pub parts: Option<Vec<CreativeWorkTypes>>,
1961
1962    /// The title of the creative work.
1963    pub title: Option<Box<CreativeWorkTitle>>,
1964}
1965
1966#[derive(Clone, Debug, Serialize, Deserialize)]
1967pub enum FigureSimple_ {
1968  Figure
1969}
1970
1971/// A function with a name, which might take Parameters and return a value of a certain type.
1972#[skip_serializing_none]
1973#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
1974#[serde(default, rename_all = "camelCase")]
1975pub struct Function {
1976    /// The name of this type
1977    #[def = "Function_::Function"]
1978    pub type_: Function_,
1979
1980    /// The identifier for this item.
1981    pub id: Option<Box<String>>,
1982
1983    /// The name of the function.
1984    pub name: Option<Box<String>>,
1985
1986    /// The parameters of the function.
1987    pub parameters: Option<Vec<Parameter>>,
1988
1989    /// The return type of the function.
1990    pub returns: Option<Box<ValidatorTypes>>,
1991}
1992
1993#[derive(Clone, Debug, Serialize, Deserialize)]
1994pub enum Function_ {
1995  Function
1996}
1997
1998/// A grant, typically financial or otherwise quantifiable, of resources.
1999#[skip_serializing_none]
2000#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
2001#[serde(default, rename_all = "camelCase")]
2002pub struct Grant {
2003    /// The name of this type
2004    #[def = "Grant_::Grant"]
2005    pub type_: Grant_,
2006
2007    /// Alternate names (aliases) for the item.
2008    pub alternate_names: Option<Vec<String>>,
2009
2010    /// A description of the item.
2011    pub description: Option<Box<ThingDescription>>,
2012
2013    /// Indicates an item funded or sponsored through a Grant.
2014    pub funded_items: Option<Vec<Thing>>,
2015
2016    /// The identifier for this item.
2017    pub id: Option<Box<String>>,
2018
2019    /// Any kind of identifier for any kind of Thing.
2020    pub identifiers: Option<Vec<ThingIdentifiers>>,
2021
2022    /// Images of the item.
2023    pub images: Option<Vec<ThingImages>>,
2024
2025    /// The name of the item.
2026    pub name: Option<Box<String>>,
2027
2028    /// A person or organization that supports a thing through a pledge, promise, or financial contribution.
2029    pub sponsors: Option<Vec<GrantSponsors>>,
2030
2031    /// The URL of the item.
2032    pub url: Option<Box<String>>,
2033}
2034
2035#[derive(Clone, Debug, Serialize, Deserialize)]
2036pub enum Grant_ {
2037  Grant
2038}
2039
2040/// A heading.
2041#[skip_serializing_none]
2042#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
2043#[serde(default, rename_all = "camelCase")]
2044pub struct Heading {
2045    /// The name of this type
2046    #[def = "Heading_::Heading"]
2047    pub type_: Heading_,
2048
2049    /// Content of the heading.
2050    pub content: Vec<InlineContent>,
2051
2052    /// The depth of the heading.
2053    pub depth: Option<u8>,
2054
2055    /// The identifier for this item.
2056    pub id: Option<Box<String>>,
2057}
2058
2059#[derive(Clone, Debug, Serialize, Deserialize)]
2060pub enum Heading_ {
2061  Heading
2062}
2063
2064/// An image file.
2065#[skip_serializing_none]
2066#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
2067#[serde(default, rename_all = "camelCase")]
2068pub struct ImageObject {
2069    /// The name of this type
2070    #[def = "ImageObject_::ImageObject"]
2071    pub type_: ImageObject_,
2072
2073    /// URL for the actual bytes of the media object, for example the image file or video file.
2074    pub content_url: String,
2075
2076    /// The subject matter of the content.
2077    pub about: Option<Vec<ThingTypes>>,
2078
2079    /// Alternate names (aliases) for the item.
2080    pub alternate_names: Option<Vec<String>>,
2081
2082    /// The authors of this creative work.
2083    pub authors: Option<Vec<CreativeWorkAuthors>>,
2084
2085    /// Bitrate in megabits per second (Mbit/s, Mb/s, Mbps).
2086    pub bitrate: Option<Number>,
2087
2088    /// The caption for this image.
2089    pub caption: Option<Box<String>>,
2090
2091    /// Comments about this creative work.
2092    pub comments: Option<Vec<Comment>>,
2093
2094    /// The structured content of this creative work c.f. property `text`.
2095    pub content: Option<Box<CreativeWorkContent>>,
2096
2097    /// File size in megabits (Mbit, Mb).
2098    pub content_size: Option<Number>,
2099
2100    /// Date/time of acceptance.
2101    pub date_accepted: Option<Box<Date>>,
2102
2103    /// Date/time of creation.
2104    pub date_created: Option<Box<Date>>,
2105
2106    /// Date/time of most recent modification.
2107    pub date_modified: Option<Box<Date>>,
2108
2109    /// Date of first publication.
2110    pub date_published: Option<Box<Date>>,
2111
2112    /// Date/time that work was received.
2113    pub date_received: Option<Box<Date>>,
2114
2115    /// A description of the item.
2116    pub description: Option<Box<ThingDescription>>,
2117
2118    /// People who edited the `CreativeWork`.
2119    pub editors: Option<Vec<Person>>,
2120
2121    /// URL that can be used to embed the media on a web page via a specific media player.
2122    pub embed_url: Option<Box<String>>,
2123
2124    /// Grants that funded the `CreativeWork`; reverse of `fundedItems`.
2125    pub funded_by: Option<Vec<CreativeWorkFundedBy>>,
2126
2127    /// People or organizations that funded the `CreativeWork`.
2128    pub funders: Option<Vec<CreativeWorkFunders>>,
2129
2130    /// Genre of the creative work, broadcast channel or group.
2131    pub genre: Option<Vec<String>>,
2132
2133    /// The identifier for this item.
2134    pub id: Option<Box<String>>,
2135
2136    /// Any kind of identifier for any kind of Thing.
2137    pub identifiers: Option<Vec<ThingIdentifiers>>,
2138
2139    /// Images of the item.
2140    pub images: Option<Vec<ThingImages>>,
2141
2142    /// An item or other CreativeWork that this CreativeWork is a part of.
2143    pub is_part_of: Option<Box<CreativeWorkTypes>>,
2144
2145    /// Keywords or tags used to describe this content. Multiple entries in a keywords list are typically delimited by commas.
2146    pub keywords: Option<Vec<String>>,
2147
2148    /// License documents that applies to this content, typically indicated by URL.
2149    pub licenses: Option<Vec<CreativeWorkLicenses>>,
2150
2151    /// The people or organizations who maintain this CreativeWork.
2152    pub maintainers: Option<Vec<CreativeWorkMaintainers>>,
2153
2154    /// IANA media type (MIME type).
2155    pub media_type: Option<Box<String>>,
2156
2157    /// The name of the item.
2158    pub name: Option<Box<String>>,
2159
2160    /// Elements of the collection which can be a variety of different elements, such as Articles, Datatables, Tables and more.
2161    pub parts: Option<Vec<CreativeWorkTypes>>,
2162
2163    /// A publisher of the CreativeWork.
2164    pub publisher: Option<Box<CreativeWorkPublisher>>,
2165
2166    /// References to other creative works, such as another publication, web page, scholarly article, etc.
2167    pub references: Option<Vec<CreativeWorkReferences>>,
2168
2169    /// The textual content of this creative work.
2170    pub text: Option<Box<String>>,
2171
2172    /// Thumbnail image of this image.
2173    pub thumbnail: Option<Box<ImageObject>>,
2174
2175    /// The title of the creative work.
2176    pub title: Option<Box<CreativeWorkTitle>>,
2177
2178    /// The URL of the item.
2179    pub url: Option<Box<String>>,
2180
2181    /// The version of the creative work.
2182    pub version: Option<Box<CreativeWorkVersion>>,
2183}
2184
2185#[derive(Clone, Debug, Serialize, Deserialize)]
2186pub enum ImageObject_ {
2187  ImageObject
2188}
2189/// An image file.
2190#[skip_serializing_none]
2191#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
2192#[serde(default, rename_all = "camelCase")]
2193pub struct ImageObjectSimple {
2194    /// The name of this type
2195    #[def = "ImageObjectSimple_::ImageObject"]
2196    pub type_: ImageObjectSimple_,
2197
2198    /// URL for the actual bytes of the media object, for example the image file or video file.
2199    pub content_url: String,
2200
2201    /// Bitrate in megabits per second (Mbit/s, Mb/s, Mbps).
2202    pub bitrate: Option<Number>,
2203
2204    /// The caption for this image.
2205    pub caption: Option<Box<String>>,
2206
2207    /// File size in megabits (Mbit, Mb).
2208    pub content_size: Option<Number>,
2209
2210    /// URL that can be used to embed the media on a web page via a specific media player.
2211    pub embed_url: Option<Box<String>>,
2212
2213    /// The identifier for this item.
2214    pub id: Option<Box<String>>,
2215
2216    /// IANA media type (MIME type).
2217    pub media_type: Option<Box<String>>,
2218
2219    /// Thumbnail image of this image.
2220    pub thumbnail: Option<Box<ImageObject>>,
2221
2222    /// The title of the creative work.
2223    pub title: Option<Box<CreativeWorkTitle>>,
2224}
2225
2226#[derive(Clone, Debug, Serialize, Deserialize)]
2227pub enum ImageObjectSimple_ {
2228  ImageObject
2229}
2230
2231/// Include content from an external source (e.g. file, URL).
2232#[skip_serializing_none]
2233#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
2234#[serde(default, rename_all = "camelCase")]
2235pub struct Include {
2236    /// The name of this type
2237    #[def = "Include_::Include"]
2238    pub type_: Include_,
2239
2240    /// The external source of the content, a file path or URL.
2241    pub source: String,
2242
2243    /// The SHA-256 digest of the `source` and `mediaType` properties the last time the node was built.
2244    pub build_digest: Option<Box<Cord>>,
2245
2246    /// The structured content decoded from the source.
2247    pub content: Option<Vec<BlockContent>>,
2248
2249    /// The identifier for this item.
2250    pub id: Option<Box<String>>,
2251
2252    /// Media type of the source content.
2253    pub media_type: Option<Box<String>>,
2254}
2255
2256#[derive(Clone, Debug, Serialize, Deserialize)]
2257pub enum Include_ {
2258  Include
2259}
2260
2261/// A validator specifying the constraints on an integer node.
2262#[skip_serializing_none]
2263#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
2264#[serde(default, rename_all = "camelCase")]
2265pub struct IntegerValidator {
2266    /// The name of this type
2267    #[def = "IntegerValidator_::IntegerValidator"]
2268    pub type_: IntegerValidator_,
2269
2270    /// The identifier for this item.
2271    pub id: Option<Box<String>>,
2272}
2273
2274#[derive(Clone, Debug, Serialize, Deserialize)]
2275pub enum IntegerValidator_ {
2276  IntegerValidator
2277}
2278
2279/// A hyperlink to other pages, sections within the same document, resources, or any URL.
2280#[skip_serializing_none]
2281#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
2282#[serde(default, rename_all = "camelCase")]
2283pub struct Link {
2284    /// The name of this type
2285    #[def = "Link_::Link"]
2286    pub type_: Link_,
2287
2288    /// The textual content of the link.
2289    pub content: Vec<InlineContent>,
2290
2291    /// The target of the link.
2292    pub target: String,
2293
2294    /// A compilation directive giving the name of the variable to export to the link target.
2295    pub export_from: Option<Box<String>>,
2296
2297    /// The identifier for this item.
2298    pub id: Option<Box<String>>,
2299
2300    /// A compilation directive giving the name of the variable to import the link target as.
2301    pub import_to: Option<Box<String>>,
2302
2303    /// The relation between the target and the current thing.
2304    pub relation: Option<Box<String>>,
2305
2306    /// A title for the link.
2307    pub title: Option<Box<String>>,
2308}
2309
2310#[derive(Clone, Debug, Serialize, Deserialize)]
2311pub enum Link_ {
2312  Link
2313}
2314
2315/// A list of items.
2316#[skip_serializing_none]
2317#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
2318#[serde(default, rename_all = "camelCase")]
2319pub struct List {
2320    /// The name of this type
2321    #[def = "List_::List"]
2322    pub type_: List_,
2323
2324    /// The items in the list
2325    pub items: Vec<ListItem>,
2326
2327    /// The identifier for this item.
2328    pub id: Option<Box<String>>,
2329
2330    /// Type of ordering.
2331    pub order: Option<ListOrder>,
2332}
2333
2334#[derive(Clone, Debug, Serialize, Deserialize)]
2335pub enum List_ {
2336  List
2337}
2338
2339/// A single item in a list.
2340#[skip_serializing_none]
2341#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
2342#[serde(default, rename_all = "camelCase")]
2343pub struct ListItem {
2344    /// The name of this type
2345    #[def = "ListItem_::ListItem"]
2346    pub type_: ListItem_,
2347
2348    /// Alternate names (aliases) for the item.
2349    pub alternate_names: Option<Vec<String>>,
2350
2351    /// The content of the list item.
2352    pub content: Option<ListItemContent>,
2353
2354    /// A description of the item.
2355    pub description: Option<Box<ThingDescription>>,
2356
2357    /// The identifier for this item.
2358    pub id: Option<Box<String>>,
2359
2360    /// Any kind of identifier for any kind of Thing.
2361    pub identifiers: Option<Vec<ThingIdentifiers>>,
2362
2363    /// Images of the item.
2364    pub images: Option<Vec<ThingImages>>,
2365
2366    /// A flag to indicate if this list item is checked.
2367    pub is_checked: Option<Boolean>,
2368
2369    /// The item represented by this list item.
2370    pub item: Option<Box<Node>>,
2371
2372    /// The name of the item.
2373    pub name: Option<Box<String>>,
2374
2375    /// The position of the item in a series or sequence of items.
2376    pub position: Option<u32>,
2377
2378    /// The URL of the item.
2379    pub url: Option<Box<String>>,
2380}
2381
2382#[derive(Clone, Debug, Serialize, Deserialize)]
2383pub enum ListItem_ {
2384  ListItem
2385}
2386
2387/// A mathematical variable or equation.
2388#[skip_serializing_none]
2389#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
2390#[serde(default, rename_all = "camelCase")]
2391pub struct Math {
2392    /// The name of this type
2393    #[def = "Math_::Math"]
2394    pub type_: Math_,
2395
2396    /// The text of the equation in the language.
2397    pub text: String,
2398
2399    /// Errors that occurred when parsing the math equation.
2400    pub errors: Option<Vec<String>>,
2401
2402    /// The identifier for this item.
2403    pub id: Option<Box<String>>,
2404
2405    /// The language used for the equation e.g tex, mathml, asciimath.
2406    pub math_language: Option<Box<String>>,
2407}
2408
2409#[derive(Clone, Debug, Serialize, Deserialize)]
2410pub enum Math_ {
2411  Math
2412}
2413
2414/// A block of math, e.g an equation, to be treated as block content.
2415#[skip_serializing_none]
2416#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
2417#[serde(default, rename_all = "camelCase")]
2418pub struct MathBlock {
2419    /// The name of this type
2420    #[def = "MathBlock_::MathBlock"]
2421    pub type_: MathBlock_,
2422
2423    /// The text of the equation in the language.
2424    pub text: String,
2425
2426    /// Errors that occurred when parsing the math equation.
2427    pub errors: Option<Vec<String>>,
2428
2429    /// The identifier for this item.
2430    pub id: Option<Box<String>>,
2431
2432    /// A short label for the math block.
2433    pub label: Option<Box<String>>,
2434
2435    /// The language used for the equation e.g tex, mathml, asciimath.
2436    pub math_language: Option<Box<String>>,
2437}
2438
2439#[derive(Clone, Debug, Serialize, Deserialize)]
2440pub enum MathBlock_ {
2441  MathBlock
2442}
2443
2444/// A fragment of math, e.g a variable name, to be treated as inline content.
2445#[skip_serializing_none]
2446#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
2447#[serde(default, rename_all = "camelCase")]
2448pub struct MathFragment {
2449    /// The name of this type
2450    #[def = "MathFragment_::MathFragment"]
2451    pub type_: MathFragment_,
2452
2453    /// The text of the equation in the language.
2454    pub text: String,
2455
2456    /// Errors that occurred when parsing the math equation.
2457    pub errors: Option<Vec<String>>,
2458
2459    /// The identifier for this item.
2460    pub id: Option<Box<String>>,
2461
2462    /// The language used for the equation e.g tex, mathml, asciimath.
2463    pub math_language: Option<Box<String>>,
2464}
2465
2466#[derive(Clone, Debug, Serialize, Deserialize)]
2467pub enum MathFragment_ {
2468  MathFragment
2469}
2470
2471/// A monetary grant.
2472#[skip_serializing_none]
2473#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
2474#[serde(default, rename_all = "camelCase")]
2475pub struct MonetaryGrant {
2476    /// The name of this type
2477    #[def = "MonetaryGrant_::MonetaryGrant"]
2478    pub type_: MonetaryGrant_,
2479
2480    /// Alternate names (aliases) for the item.
2481    pub alternate_names: Option<Vec<String>>,
2482
2483    /// The amount of money.
2484    pub amounts: Option<Number>,
2485
2486    /// A description of the item.
2487    pub description: Option<Box<ThingDescription>>,
2488
2489    /// Indicates an item funded or sponsored through a Grant.
2490    pub funded_items: Option<Vec<Thing>>,
2491
2492    /// A person or organization that supports (sponsors) something through some kind of financial contribution.
2493    pub funders: Option<Vec<MonetaryGrantFunders>>,
2494
2495    /// The identifier for this item.
2496    pub id: Option<Box<String>>,
2497
2498    /// Any kind of identifier for any kind of Thing.
2499    pub identifiers: Option<Vec<ThingIdentifiers>>,
2500
2501    /// Images of the item.
2502    pub images: Option<Vec<ThingImages>>,
2503
2504    /// The name of the item.
2505    pub name: Option<Box<String>>,
2506
2507    /// A person or organization that supports a thing through a pledge, promise, or financial contribution.
2508    pub sponsors: Option<Vec<GrantSponsors>>,
2509
2510    /// The URL of the item.
2511    pub url: Option<Box<String>>,
2512}
2513
2514#[derive(Clone, Debug, Serialize, Deserialize)]
2515pub enum MonetaryGrant_ {
2516  MonetaryGrant
2517}
2518
2519/// Inline text that has a non-textual annotation.
2520#[skip_serializing_none]
2521#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
2522#[serde(default, rename_all = "camelCase")]
2523pub struct NontextualAnnotation {
2524    /// The name of this type
2525    #[def = "NontextualAnnotation_::NontextualAnnotation"]
2526    pub type_: NontextualAnnotation_,
2527
2528    /// The content that is marked.
2529    pub content: Vec<InlineContent>,
2530
2531    /// The identifier for this item.
2532    pub id: Option<Box<String>>,
2533}
2534
2535#[derive(Clone, Debug, Serialize, Deserialize)]
2536pub enum NontextualAnnotation_ {
2537  NontextualAnnotation
2538}
2539
2540/// Additional content which is not part of the main content of a document.
2541#[skip_serializing_none]
2542#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
2543#[serde(default, rename_all = "camelCase")]
2544pub struct Note {
2545    /// The name of this type
2546    #[def = "Note_::Note"]
2547    pub type_: Note_,
2548
2549    /// Content of the note, usually a paragraph.
2550    pub content: Vec<BlockContent>,
2551
2552    /// The identifier for this item.
2553    pub id: Option<Box<String>>,
2554
2555    /// Determines where the note content is displayed within the document.
2556    pub note_type: Option<NoteNoteType>,
2557}
2558
2559#[derive(Clone, Debug, Serialize, Deserialize)]
2560pub enum Note_ {
2561  Note
2562}
2563
2564/// A validator specifying the constraints on a numeric node.
2565#[skip_serializing_none]
2566#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
2567#[serde(default, rename_all = "camelCase")]
2568pub struct NumberValidator {
2569    /// The name of this type
2570    #[def = "NumberValidator_::NumberValidator"]
2571    pub type_: NumberValidator_,
2572
2573    /// The exclusive upper limit for a numeric node.
2574    pub exclusive_maximum: Option<Number>,
2575
2576    /// The exclusive lower limit for a numeric node.
2577    pub exclusive_minimum: Option<Number>,
2578
2579    /// The identifier for this item.
2580    pub id: Option<Box<String>>,
2581
2582    /// The inclusive upper limit for a numeric node.
2583    pub maximum: Option<Number>,
2584
2585    /// The inclusive lower limit for a numeric node.
2586    pub minimum: Option<Number>,
2587
2588    /// A number that a numeric node must be a multiple of.
2589    pub multiple_of: Option<Number>,
2590}
2591
2592#[derive(Clone, Debug, Serialize, Deserialize)]
2593pub enum NumberValidator_ {
2594  NumberValidator
2595}
2596
2597/// An organization such as a school, NGO, corporation, club, etc.
2598#[skip_serializing_none]
2599#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
2600#[serde(default, rename_all = "camelCase")]
2601pub struct Organization {
2602    /// The name of this type
2603    #[def = "Organization_::Organization"]
2604    pub type_: Organization_,
2605
2606    /// Postal address for the organization.
2607    pub address: Option<Box<OrganizationAddress>>,
2608
2609    /// Alternate names (aliases) for the item.
2610    pub alternate_names: Option<Vec<String>>,
2611
2612    /// Brands that the organization is connected with.
2613    pub brands: Option<Vec<Brand>>,
2614
2615    /// Correspondence/Contact points for the organization.
2616    pub contact_points: Option<Vec<ContactPoint>>,
2617
2618    /// Departments within the organization. For example, Department of Computer Science, Research & Development etc.
2619    pub departments: Option<Vec<Organization>>,
2620
2621    /// A description of the item.
2622    pub description: Option<Box<ThingDescription>>,
2623
2624    /// Organization(s) or person(s) funding the organization.
2625    pub funders: Option<Vec<OrganizationFunders>>,
2626
2627    /// The identifier for this item.
2628    pub id: Option<Box<String>>,
2629
2630    /// Any kind of identifier for any kind of Thing.
2631    pub identifiers: Option<Vec<ThingIdentifiers>>,
2632
2633    /// Images of the item.
2634    pub images: Option<Vec<ThingImages>>,
2635
2636    /// Legal name for the Organization. Should only include letters and spaces.
2637    pub legal_name: Option<Box<String>>,
2638
2639    /// The logo of the organization.
2640    pub logo: Option<Box<OrganizationLogo>>,
2641
2642    /// Person(s) or organization(s) who are members of this organization.
2643    pub members: Option<Vec<OrganizationMembers>>,
2644
2645    /// The name of the item.
2646    pub name: Option<Box<String>>,
2647
2648    /// Entity that the Organization is a part of. For example, parentOrganization to a department is a university.
2649    pub parent_organization: Option<Box<Organization>>,
2650
2651    /// The URL of the item.
2652    pub url: Option<Box<String>>,
2653}
2654
2655#[derive(Clone, Debug, Serialize, Deserialize)]
2656pub enum Organization_ {
2657  Organization
2658}
2659
2660/// Paragraph
2661#[skip_serializing_none]
2662#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
2663#[serde(default, rename_all = "camelCase")]
2664pub struct Paragraph {
2665    /// The name of this type
2666    #[def = "Paragraph_::Paragraph"]
2667    pub type_: Paragraph_,
2668
2669    /// The contents of the paragraph.
2670    pub content: Vec<InlineContent>,
2671
2672    /// The identifier for this item.
2673    pub id: Option<Box<String>>,
2674}
2675
2676#[derive(Clone, Debug, Serialize, Deserialize)]
2677pub enum Paragraph_ {
2678  Paragraph
2679}
2680
2681/// A parameter of a document or function.
2682#[skip_serializing_none]
2683#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
2684#[serde(default, rename_all = "camelCase")]
2685pub struct Parameter {
2686    /// The name of this type
2687    #[def = "Parameter_::Parameter"]
2688    pub type_: Parameter_,
2689
2690    /// The name of the parameter.
2691    pub name: String,
2692
2693    /// The default value of the parameter.
2694    pub default: Option<Box<Node>>,
2695
2696    /// The SHA-256 digest of the `value` property the last time the node was executed.
2697    pub execute_digest: Option<Box<Cord>>,
2698
2699    /// The identifier for this item.
2700    pub id: Option<Box<String>>,
2701
2702    /// Indicates that this parameter is variadic and can accept multiple named arguments.
2703    pub is_extensible: Option<Boolean>,
2704
2705    /// Is this parameter required, if not it should have a default or default is assumed to be null.
2706    pub is_required: Option<Boolean>,
2707
2708    /// Indicates that this parameter is variadic and can accept multiple arguments.
2709    pub is_variadic: Option<Boolean>,
2710
2711    /// The validator that the value is validated against.
2712    pub validator: Option<Box<ValidatorTypes>>,
2713
2714    /// The current value of the parameter.
2715    pub value: Option<Box<Node>>,
2716}
2717
2718#[derive(Clone, Debug, Serialize, Deserialize)]
2719pub enum Parameter_ {
2720  Parameter
2721}
2722
2723/// A periodical publication.
2724#[skip_serializing_none]
2725#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
2726#[serde(default, rename_all = "camelCase")]
2727pub struct Periodical {
2728    /// The name of this type
2729    #[def = "Periodical_::Periodical"]
2730    pub type_: Periodical_,
2731
2732    /// The subject matter of the content.
2733    pub about: Option<Vec<ThingTypes>>,
2734
2735    /// Alternate names (aliases) for the item.
2736    pub alternate_names: Option<Vec<String>>,
2737
2738    /// The authors of this creative work.
2739    pub authors: Option<Vec<CreativeWorkAuthors>>,
2740
2741    /// Comments about this creative work.
2742    pub comments: Option<Vec<Comment>>,
2743
2744    /// The structured content of this creative work c.f. property `text`.
2745    pub content: Option<Box<CreativeWorkContent>>,
2746
2747    /// Date/time of acceptance.
2748    pub date_accepted: Option<Box<Date>>,
2749
2750    /// Date/time of creation.
2751    pub date_created: Option<Box<Date>>,
2752
2753    /// The date this Periodical ceased publication.
2754    pub date_end: Option<Box<Date>>,
2755
2756    /// Date/time of most recent modification.
2757    pub date_modified: Option<Box<Date>>,
2758
2759    /// Date of first publication.
2760    pub date_published: Option<Box<Date>>,
2761
2762    /// Date/time that work was received.
2763    pub date_received: Option<Box<Date>>,
2764
2765    /// The date this Periodical was first published.
2766    pub date_start: Option<Box<Date>>,
2767
2768    /// A description of the item.
2769    pub description: Option<Box<ThingDescription>>,
2770
2771    /// People who edited the `CreativeWork`.
2772    pub editors: Option<Vec<Person>>,
2773
2774    /// Grants that funded the `CreativeWork`; reverse of `fundedItems`.
2775    pub funded_by: Option<Vec<CreativeWorkFundedBy>>,
2776
2777    /// People or organizations that funded the `CreativeWork`.
2778    pub funders: Option<Vec<CreativeWorkFunders>>,
2779
2780    /// Genre of the creative work, broadcast channel or group.
2781    pub genre: Option<Vec<String>>,
2782
2783    /// The identifier for this item.
2784    pub id: Option<Box<String>>,
2785
2786    /// Any kind of identifier for any kind of Thing.
2787    pub identifiers: Option<Vec<ThingIdentifiers>>,
2788
2789    /// Images of the item.
2790    pub images: Option<Vec<ThingImages>>,
2791
2792    /// An item or other CreativeWork that this CreativeWork is a part of.
2793    pub is_part_of: Option<Box<CreativeWorkTypes>>,
2794
2795    /// The International Standard Serial Number(s) (ISSN) that identifies this serial publication.
2796    pub issns: Option<Vec<String>>,
2797
2798    /// Keywords or tags used to describe this content. Multiple entries in a keywords list are typically delimited by commas.
2799    pub keywords: Option<Vec<String>>,
2800
2801    /// License documents that applies to this content, typically indicated by URL.
2802    pub licenses: Option<Vec<CreativeWorkLicenses>>,
2803
2804    /// The people or organizations who maintain this CreativeWork.
2805    pub maintainers: Option<Vec<CreativeWorkMaintainers>>,
2806
2807    /// The name of the item.
2808    pub name: Option<Box<String>>,
2809
2810    /// Elements of the collection which can be a variety of different elements, such as Articles, Datatables, Tables and more.
2811    pub parts: Option<Vec<CreativeWorkTypes>>,
2812
2813    /// A publisher of the CreativeWork.
2814    pub publisher: Option<Box<CreativeWorkPublisher>>,
2815
2816    /// References to other creative works, such as another publication, web page, scholarly article, etc.
2817    pub references: Option<Vec<CreativeWorkReferences>>,
2818
2819    /// The textual content of this creative work.
2820    pub text: Option<Box<String>>,
2821
2822    /// The title of the creative work.
2823    pub title: Option<Box<CreativeWorkTitle>>,
2824
2825    /// The URL of the item.
2826    pub url: Option<Box<String>>,
2827
2828    /// The version of the creative work.
2829    pub version: Option<Box<CreativeWorkVersion>>,
2830}
2831
2832#[derive(Clone, Debug, Serialize, Deserialize)]
2833pub enum Periodical_ {
2834  Periodical
2835}
2836
2837/// A person (alive, dead, undead, or fictional).
2838#[skip_serializing_none]
2839#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
2840#[serde(default, rename_all = "camelCase")]
2841pub struct Person {
2842    /// The name of this type
2843    #[def = "Person_::Person"]
2844    pub type_: Person_,
2845
2846    /// Postal address for the person.
2847    pub address: Option<Box<PersonAddress>>,
2848
2849    /// Organizations that the person is affiliated with.
2850    pub affiliations: Option<Vec<Organization>>,
2851
2852    /// Alternate names (aliases) for the item.
2853    pub alternate_names: Option<Vec<String>>,
2854
2855    /// A description of the item.
2856    pub description: Option<Box<ThingDescription>>,
2857
2858    /// Email addresses for the person.
2859    pub emails: Option<Vec<String>>,
2860
2861    /// Family name. In the U.S., the last name of a person.
2862    pub family_names: Option<Vec<String>>,
2863
2864    /// A person or organization that supports (sponsors) something through some kind of financial contribution.
2865    pub funders: Option<Vec<PersonFunders>>,
2866
2867    /// Given name. In the U.S., the first name of a person.
2868    pub given_names: Option<Vec<String>>,
2869
2870    /// An honorific prefix preceding a person's name such as Dr/Mrs/Mr.
2871    pub honorific_prefix: Option<Box<String>>,
2872
2873    /// An honorific suffix after a person's name such as MD/PhD/MSCSW.
2874    pub honorific_suffix: Option<Box<String>>,
2875
2876    /// The identifier for this item.
2877    pub id: Option<Box<String>>,
2878
2879    /// Any kind of identifier for any kind of Thing.
2880    pub identifiers: Option<Vec<ThingIdentifiers>>,
2881
2882    /// Images of the item.
2883    pub images: Option<Vec<ThingImages>>,
2884
2885    /// The job title of the person (for example, Financial Manager).
2886    pub job_title: Option<Box<String>>,
2887
2888    /// An organization (or program membership) to which this person belongs.
2889    pub member_of: Option<Vec<Organization>>,
2890
2891    /// The name of the item.
2892    pub name: Option<Box<String>>,
2893
2894    /// Telephone numbers for the person.
2895    pub telephone_numbers: Option<Vec<String>>,
2896
2897    /// The URL of the item.
2898    pub url: Option<Box<String>>,
2899}
2900
2901#[derive(Clone, Debug, Serialize, Deserialize)]
2902pub enum Person_ {
2903  Person
2904}
2905
2906/// A physical mailing address.
2907#[skip_serializing_none]
2908#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
2909#[serde(default, rename_all = "camelCase")]
2910pub struct PostalAddress {
2911    /// The name of this type
2912    #[def = "PostalAddress_::PostalAddress"]
2913    pub type_: PostalAddress_,
2914
2915    /// The country.
2916    pub address_country: Option<Box<String>>,
2917
2918    /// The locality in which the street address is, and which is in the region.
2919    pub address_locality: Option<Box<String>>,
2920
2921    /// The region in which the locality is, and which is in the country.
2922    pub address_region: Option<Box<String>>,
2923
2924    /// Alternate names (aliases) for the item.
2925    pub alternate_names: Option<Vec<String>>,
2926
2927    /// Languages (human not programming) in which it is possible to communicate with the organization/department etc.
2928    pub available_languages: Option<Vec<String>>,
2929
2930    /// A description of the item.
2931    pub description: Option<Box<ThingDescription>>,
2932
2933    /// Email address for correspondence.
2934    pub emails: Option<Vec<String>>,
2935
2936    /// The identifier for this item.
2937    pub id: Option<Box<String>>,
2938
2939    /// Any kind of identifier for any kind of Thing.
2940    pub identifiers: Option<Vec<ThingIdentifiers>>,
2941
2942    /// Images of the item.
2943    pub images: Option<Vec<ThingImages>>,
2944
2945    /// The name of the item.
2946    pub name: Option<Box<String>>,
2947
2948    /// The post office box number.
2949    pub post_office_box_number: Option<Box<String>>,
2950
2951    /// The postal code.
2952    pub postal_code: Option<Box<String>>,
2953
2954    /// The street address.
2955    pub street_address: Option<Box<String>>,
2956
2957    /// Telephone numbers for the contact point.
2958    pub telephone_numbers: Option<Vec<String>>,
2959
2960    /// The URL of the item.
2961    pub url: Option<Box<String>>,
2962}
2963
2964#[derive(Clone, Debug, Serialize, Deserialize)]
2965pub enum PostalAddress_ {
2966  PostalAddress
2967}
2968
2969/// Any offered product or service. For example, a pair of shoes; a haircut; or an episode of a TV show streamed online.
2970#[skip_serializing_none]
2971#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
2972#[serde(default, rename_all = "camelCase")]
2973pub struct Product {
2974    /// The name of this type
2975    #[def = "Product_::Product"]
2976    pub type_: Product_,
2977
2978    /// Alternate names (aliases) for the item.
2979    pub alternate_names: Option<Vec<String>>,
2980
2981    /// Brands that the product is labelled with.
2982    pub brands: Option<Vec<Brand>>,
2983
2984    /// A description of the item.
2985    pub description: Option<Box<ThingDescription>>,
2986
2987    /// The identifier for this item.
2988    pub id: Option<Box<String>>,
2989
2990    /// Any kind of identifier for any kind of Thing.
2991    pub identifiers: Option<Vec<ThingIdentifiers>>,
2992
2993    /// Images of the item.
2994    pub images: Option<Vec<ThingImages>>,
2995
2996    /// The logo of the product.
2997    pub logo: Option<Box<ProductLogo>>,
2998
2999    /// The name of the item.
3000    pub name: Option<Box<String>>,
3001
3002    /// Product identification code.
3003    pub product_id: Option<Box<String>>,
3004
3005    /// The URL of the item.
3006    pub url: Option<Box<String>>,
3007}
3008
3009#[derive(Clone, Debug, Serialize, Deserialize)]
3010pub enum Product_ {
3011  Product
3012}
3013
3014/// A property-value pair.
3015#[skip_serializing_none]
3016#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
3017#[serde(default, rename_all = "camelCase")]
3018pub struct PropertyValue {
3019    /// The name of this type
3020    #[def = "PropertyValue_::PropertyValue"]
3021    pub type_: PropertyValue_,
3022
3023    /// The value of the property.
3024    #[def = "PropertyValueValue::String(String::new())"]
3025    pub value: PropertyValueValue,
3026
3027    /// Alternate names (aliases) for the item.
3028    pub alternate_names: Option<Vec<String>>,
3029
3030    /// A description of the item.
3031    pub description: Option<Box<ThingDescription>>,
3032
3033    /// The identifier for this item.
3034    pub id: Option<Box<String>>,
3035
3036    /// Any kind of identifier for any kind of Thing.
3037    pub identifiers: Option<Vec<ThingIdentifiers>>,
3038
3039    /// Images of the item.
3040    pub images: Option<Vec<ThingImages>>,
3041
3042    /// The name of the item.
3043    pub name: Option<Box<String>>,
3044
3045    /// A commonly used identifier for the characteristic represented by the property.
3046    pub property_id: Option<Box<String>>,
3047
3048    /// The URL of the item.
3049    pub url: Option<Box<String>>,
3050}
3051
3052#[derive(Clone, Debug, Serialize, Deserialize)]
3053pub enum PropertyValue_ {
3054  PropertyValue
3055}
3056
3057/// A part of a successively published publication such as a periodical or publication volume, often numbered.
3058#[skip_serializing_none]
3059#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
3060#[serde(default, rename_all = "camelCase")]
3061pub struct PublicationIssue {
3062    /// The name of this type
3063    #[def = "PublicationIssue_::PublicationIssue"]
3064    pub type_: PublicationIssue_,
3065
3066    /// The subject matter of the content.
3067    pub about: Option<Vec<ThingTypes>>,
3068
3069    /// Alternate names (aliases) for the item.
3070    pub alternate_names: Option<Vec<String>>,
3071
3072    /// The authors of this creative work.
3073    pub authors: Option<Vec<CreativeWorkAuthors>>,
3074
3075    /// Comments about this creative work.
3076    pub comments: Option<Vec<Comment>>,
3077
3078    /// The structured content of this creative work c.f. property `text`.
3079    pub content: Option<Box<CreativeWorkContent>>,
3080
3081    /// Date/time of acceptance.
3082    pub date_accepted: Option<Box<Date>>,
3083
3084    /// Date/time of creation.
3085    pub date_created: Option<Box<Date>>,
3086
3087    /// Date/time of most recent modification.
3088    pub date_modified: Option<Box<Date>>,
3089
3090    /// Date of first publication.
3091    pub date_published: Option<Box<Date>>,
3092
3093    /// Date/time that work was received.
3094    pub date_received: Option<Box<Date>>,
3095
3096    /// A description of the item.
3097    pub description: Option<Box<ThingDescription>>,
3098
3099    /// People who edited the `CreativeWork`.
3100    pub editors: Option<Vec<Person>>,
3101
3102    /// Grants that funded the `CreativeWork`; reverse of `fundedItems`.
3103    pub funded_by: Option<Vec<CreativeWorkFundedBy>>,
3104
3105    /// People or organizations that funded the `CreativeWork`.
3106    pub funders: Option<Vec<CreativeWorkFunders>>,
3107
3108    /// Genre of the creative work, broadcast channel or group.
3109    pub genre: Option<Vec<String>>,
3110
3111    /// The identifier for this item.
3112    pub id: Option<Box<String>>,
3113
3114    /// Any kind of identifier for any kind of Thing.
3115    pub identifiers: Option<Vec<ThingIdentifiers>>,
3116
3117    /// Images of the item.
3118    pub images: Option<Vec<ThingImages>>,
3119
3120    /// An item or other CreativeWork that this CreativeWork is a part of.
3121    pub is_part_of: Option<Box<CreativeWorkTypes>>,
3122
3123    /// Identifies the issue of publication; for example, "iii" or "2".
3124    pub issue_number: Option<Box<PublicationIssueIssueNumber>>,
3125
3126    /// Keywords or tags used to describe this content. Multiple entries in a keywords list are typically delimited by commas.
3127    pub keywords: Option<Vec<String>>,
3128
3129    /// License documents that applies to this content, typically indicated by URL.
3130    pub licenses: Option<Vec<CreativeWorkLicenses>>,
3131
3132    /// The people or organizations who maintain this CreativeWork.
3133    pub maintainers: Option<Vec<CreativeWorkMaintainers>>,
3134
3135    /// The name of the item.
3136    pub name: Option<Box<String>>,
3137
3138    /// The page on which the issue ends; for example "138" or "xvi".
3139    pub page_end: Option<Box<PublicationIssuePageEnd>>,
3140
3141    /// The page on which the issue starts; for example "135" or "xiii".
3142    pub page_start: Option<Box<PublicationIssuePageStart>>,
3143
3144    /// Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55".
3145    pub pagination: Option<Box<String>>,
3146
3147    /// Elements of the collection which can be a variety of different elements, such as Articles, Datatables, Tables and more.
3148    pub parts: Option<Vec<CreativeWorkTypes>>,
3149
3150    /// A publisher of the CreativeWork.
3151    pub publisher: Option<Box<CreativeWorkPublisher>>,
3152
3153    /// References to other creative works, such as another publication, web page, scholarly article, etc.
3154    pub references: Option<Vec<CreativeWorkReferences>>,
3155
3156    /// The textual content of this creative work.
3157    pub text: Option<Box<String>>,
3158
3159    /// The title of the creative work.
3160    pub title: Option<Box<CreativeWorkTitle>>,
3161
3162    /// The URL of the item.
3163    pub url: Option<Box<String>>,
3164
3165    /// The version of the creative work.
3166    pub version: Option<Box<CreativeWorkVersion>>,
3167}
3168
3169#[derive(Clone, Debug, Serialize, Deserialize)]
3170pub enum PublicationIssue_ {
3171  PublicationIssue
3172}
3173
3174/// A part of a successively published publication such as a periodical or multi-volume work.
3175#[skip_serializing_none]
3176#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
3177#[serde(default, rename_all = "camelCase")]
3178pub struct PublicationVolume {
3179    /// The name of this type
3180    #[def = "PublicationVolume_::PublicationVolume"]
3181    pub type_: PublicationVolume_,
3182
3183    /// The subject matter of the content.
3184    pub about: Option<Vec<ThingTypes>>,
3185
3186    /// Alternate names (aliases) for the item.
3187    pub alternate_names: Option<Vec<String>>,
3188
3189    /// The authors of this creative work.
3190    pub authors: Option<Vec<CreativeWorkAuthors>>,
3191
3192    /// Comments about this creative work.
3193    pub comments: Option<Vec<Comment>>,
3194
3195    /// The structured content of this creative work c.f. property `text`.
3196    pub content: Option<Box<CreativeWorkContent>>,
3197
3198    /// Date/time of acceptance.
3199    pub date_accepted: Option<Box<Date>>,
3200
3201    /// Date/time of creation.
3202    pub date_created: Option<Box<Date>>,
3203
3204    /// Date/time of most recent modification.
3205    pub date_modified: Option<Box<Date>>,
3206
3207    /// Date of first publication.
3208    pub date_published: Option<Box<Date>>,
3209
3210    /// Date/time that work was received.
3211    pub date_received: Option<Box<Date>>,
3212
3213    /// A description of the item.
3214    pub description: Option<Box<ThingDescription>>,
3215
3216    /// People who edited the `CreativeWork`.
3217    pub editors: Option<Vec<Person>>,
3218
3219    /// Grants that funded the `CreativeWork`; reverse of `fundedItems`.
3220    pub funded_by: Option<Vec<CreativeWorkFundedBy>>,
3221
3222    /// People or organizations that funded the `CreativeWork`.
3223    pub funders: Option<Vec<CreativeWorkFunders>>,
3224
3225    /// Genre of the creative work, broadcast channel or group.
3226    pub genre: Option<Vec<String>>,
3227
3228    /// The identifier for this item.
3229    pub id: Option<Box<String>>,
3230
3231    /// Any kind of identifier for any kind of Thing.
3232    pub identifiers: Option<Vec<ThingIdentifiers>>,
3233
3234    /// Images of the item.
3235    pub images: Option<Vec<ThingImages>>,
3236
3237    /// An item or other CreativeWork that this CreativeWork is a part of.
3238    pub is_part_of: Option<Box<CreativeWorkTypes>>,
3239
3240    /// Keywords or tags used to describe this content. Multiple entries in a keywords list are typically delimited by commas.
3241    pub keywords: Option<Vec<String>>,
3242
3243    /// License documents that applies to this content, typically indicated by URL.
3244    pub licenses: Option<Vec<CreativeWorkLicenses>>,
3245
3246    /// The people or organizations who maintain this CreativeWork.
3247    pub maintainers: Option<Vec<CreativeWorkMaintainers>>,
3248
3249    /// The name of the item.
3250    pub name: Option<Box<String>>,
3251
3252    /// The page on which the volume ends; for example "138" or "xvi".
3253    pub page_end: Option<Box<PublicationVolumePageEnd>>,
3254
3255    /// The page on which the volume starts; for example "135" or "xiii".
3256    pub page_start: Option<Box<PublicationVolumePageStart>>,
3257
3258    /// Any description of pages that is not separated into pageStart and pageEnd; for example, "1-6, 9, 55".
3259    pub pagination: Option<Box<String>>,
3260
3261    /// Elements of the collection which can be a variety of different elements, such as Articles, Datatables, Tables and more.
3262    pub parts: Option<Vec<CreativeWorkTypes>>,
3263
3264    /// A publisher of the CreativeWork.
3265    pub publisher: Option<Box<CreativeWorkPublisher>>,
3266
3267    /// References to other creative works, such as another publication, web page, scholarly article, etc.
3268    pub references: Option<Vec<CreativeWorkReferences>>,
3269
3270    /// The textual content of this creative work.
3271    pub text: Option<Box<String>>,
3272
3273    /// The title of the creative work.
3274    pub title: Option<Box<CreativeWorkTitle>>,
3275
3276    /// The URL of the item.
3277    pub url: Option<Box<String>>,
3278
3279    /// The version of the creative work.
3280    pub version: Option<Box<CreativeWorkVersion>>,
3281
3282    /// Identifies the volume of publication or multi-part work; for example, "iii" or "2".
3283    pub volume_number: Option<Box<PublicationVolumeVolumeNumber>>,
3284}
3285
3286#[derive(Clone, Debug, Serialize, Deserialize)]
3287pub enum PublicationVolume_ {
3288  PublicationVolume
3289}
3290
3291/// Inline, quoted content.
3292#[skip_serializing_none]
3293#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
3294#[serde(default, rename_all = "camelCase")]
3295pub struct Quote {
3296    /// The name of this type
3297    #[def = "Quote_::Quote"]
3298    pub type_: Quote_,
3299
3300    /// The content that is marked.
3301    pub content: Vec<InlineContent>,
3302
3303    /// The source of the quote.
3304    pub cite: Option<Box<QuoteCite>>,
3305
3306    /// The identifier for this item.
3307    pub id: Option<Box<String>>,
3308}
3309
3310#[derive(Clone, Debug, Serialize, Deserialize)]
3311pub enum Quote_ {
3312  Quote
3313}
3314
3315/// A section quoted from somewhere else.
3316#[skip_serializing_none]
3317#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
3318#[serde(default, rename_all = "camelCase")]
3319pub struct QuoteBlock {
3320    /// The name of this type
3321    #[def = "QuoteBlock_::QuoteBlock"]
3322    pub type_: QuoteBlock_,
3323
3324    /// The content of the quote.
3325    pub content: Vec<BlockContent>,
3326
3327    /// The source of the quote.
3328    pub cite: Option<Box<QuoteBlockCite>>,
3329
3330    /// The identifier for this item.
3331    pub id: Option<Box<String>>,
3332}
3333
3334#[derive(Clone, Debug, Serialize, Deserialize)]
3335pub enum QuoteBlock_ {
3336  QuoteBlock
3337}
3338
3339/// A review of an item, e.g of an Article, or SoftwareSourceCode.
3340#[skip_serializing_none]
3341#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
3342#[serde(default, rename_all = "camelCase")]
3343pub struct Review {
3344    /// The name of this type
3345    #[def = "Review_::Review"]
3346    pub type_: Review_,
3347
3348    /// The subject matter of the content.
3349    pub about: Option<Vec<ThingTypes>>,
3350
3351    /// Alternate names (aliases) for the item.
3352    pub alternate_names: Option<Vec<String>>,
3353
3354    /// The authors of this creative work.
3355    pub authors: Option<Vec<CreativeWorkAuthors>>,
3356
3357    /// Comments about this creative work.
3358    pub comments: Option<Vec<Comment>>,
3359
3360    /// The structured content of this creative work c.f. property `text`.
3361    pub content: Option<Box<CreativeWorkContent>>,
3362
3363    /// Date/time of acceptance.
3364    pub date_accepted: Option<Box<Date>>,
3365
3366    /// Date/time of creation.
3367    pub date_created: Option<Box<Date>>,
3368
3369    /// Date/time of most recent modification.
3370    pub date_modified: Option<Box<Date>>,
3371
3372    /// Date of first publication.
3373    pub date_published: Option<Box<Date>>,
3374
3375    /// Date/time that work was received.
3376    pub date_received: Option<Box<Date>>,
3377
3378    /// A description of the item.
3379    pub description: Option<Box<ThingDescription>>,
3380
3381    /// People who edited the `CreativeWork`.
3382    pub editors: Option<Vec<Person>>,
3383
3384    /// Grants that funded the `CreativeWork`; reverse of `fundedItems`.
3385    pub funded_by: Option<Vec<CreativeWorkFundedBy>>,
3386
3387    /// People or organizations that funded the `CreativeWork`.
3388    pub funders: Option<Vec<CreativeWorkFunders>>,
3389
3390    /// Genre of the creative work, broadcast channel or group.
3391    pub genre: Option<Vec<String>>,
3392
3393    /// The identifier for this item.
3394    pub id: Option<Box<String>>,
3395
3396    /// Any kind of identifier for any kind of Thing.
3397    pub identifiers: Option<Vec<ThingIdentifiers>>,
3398
3399    /// Images of the item.
3400    pub images: Option<Vec<ThingImages>>,
3401
3402    /// An item or other CreativeWork that this CreativeWork is a part of.
3403    pub is_part_of: Option<Box<CreativeWorkTypes>>,
3404
3405    /// The item that is being reviewed.
3406    pub item_reviewed: Option<Box<Thing>>,
3407
3408    /// Keywords or tags used to describe this content. Multiple entries in a keywords list are typically delimited by commas.
3409    pub keywords: Option<Vec<String>>,
3410
3411    /// License documents that applies to this content, typically indicated by URL.
3412    pub licenses: Option<Vec<CreativeWorkLicenses>>,
3413
3414    /// The people or organizations who maintain this CreativeWork.
3415    pub maintainers: Option<Vec<CreativeWorkMaintainers>>,
3416
3417    /// The name of the item.
3418    pub name: Option<Box<String>>,
3419
3420    /// Elements of the collection which can be a variety of different elements, such as Articles, Datatables, Tables and more.
3421    pub parts: Option<Vec<CreativeWorkTypes>>,
3422
3423    /// A publisher of the CreativeWork.
3424    pub publisher: Option<Box<CreativeWorkPublisher>>,
3425
3426    /// References to other creative works, such as another publication, web page, scholarly article, etc.
3427    pub references: Option<Vec<CreativeWorkReferences>>,
3428
3429    /// The part or facet of the item that is being reviewed.
3430    pub review_aspect: Option<Box<String>>,
3431
3432    /// The textual content of this creative work.
3433    pub text: Option<Box<String>>,
3434
3435    /// The title of the creative work.
3436    pub title: Option<Box<CreativeWorkTitle>>,
3437
3438    /// The URL of the item.
3439    pub url: Option<Box<String>>,
3440
3441    /// The version of the creative work.
3442    pub version: Option<Box<CreativeWorkVersion>>,
3443}
3444
3445#[derive(Clone, Debug, Serialize, Deserialize)]
3446pub enum Review_ {
3447  Review
3448}
3449
3450/// A software application.
3451#[skip_serializing_none]
3452#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
3453#[serde(default, rename_all = "camelCase")]
3454pub struct SoftwareApplication {
3455    /// The name of this type
3456    #[def = "SoftwareApplication_::SoftwareApplication"]
3457    pub type_: SoftwareApplication_,
3458
3459    /// The subject matter of the content.
3460    pub about: Option<Vec<ThingTypes>>,
3461
3462    /// Alternate names (aliases) for the item.
3463    pub alternate_names: Option<Vec<String>>,
3464
3465    /// The authors of this creative work.
3466    pub authors: Option<Vec<CreativeWorkAuthors>>,
3467
3468    /// Comments about this creative work.
3469    pub comments: Option<Vec<Comment>>,
3470
3471    /// The structured content of this creative work c.f. property `text`.
3472    pub content: Option<Box<CreativeWorkContent>>,
3473
3474    /// Date/time of acceptance.
3475    pub date_accepted: Option<Box<Date>>,
3476
3477    /// Date/time of creation.
3478    pub date_created: Option<Box<Date>>,
3479
3480    /// Date/time of most recent modification.
3481    pub date_modified: Option<Box<Date>>,
3482
3483    /// Date of first publication.
3484    pub date_published: Option<Box<Date>>,
3485
3486    /// Date/time that work was received.
3487    pub date_received: Option<Box<Date>>,
3488
3489    /// A description of the item.
3490    pub description: Option<Box<ThingDescription>>,
3491
3492    /// People who edited the `CreativeWork`.
3493    pub editors: Option<Vec<Person>>,
3494
3495    /// Grants that funded the `CreativeWork`; reverse of `fundedItems`.
3496    pub funded_by: Option<Vec<CreativeWorkFundedBy>>,
3497
3498    /// People or organizations that funded the `CreativeWork`.
3499    pub funders: Option<Vec<CreativeWorkFunders>>,
3500
3501    /// Genre of the creative work, broadcast channel or group.
3502    pub genre: Option<Vec<String>>,
3503
3504    /// The identifier for this item.
3505    pub id: Option<Box<String>>,
3506
3507    /// Any kind of identifier for any kind of Thing.
3508    pub identifiers: Option<Vec<ThingIdentifiers>>,
3509
3510    /// Images of the item.
3511    pub images: Option<Vec<ThingImages>>,
3512
3513    /// An item or other CreativeWork that this CreativeWork is a part of.
3514    pub is_part_of: Option<Box<CreativeWorkTypes>>,
3515
3516    /// Keywords or tags used to describe this content. Multiple entries in a keywords list are typically delimited by commas.
3517    pub keywords: Option<Vec<String>>,
3518
3519    /// License documents that applies to this content, typically indicated by URL.
3520    pub licenses: Option<Vec<CreativeWorkLicenses>>,
3521
3522    /// The people or organizations who maintain this CreativeWork.
3523    pub maintainers: Option<Vec<CreativeWorkMaintainers>>,
3524
3525    /// The name of the item.
3526    pub name: Option<Box<String>>,
3527
3528    /// Elements of the collection which can be a variety of different elements, such as Articles, Datatables, Tables and more.
3529    pub parts: Option<Vec<CreativeWorkTypes>>,
3530
3531    /// A publisher of the CreativeWork.
3532    pub publisher: Option<Box<CreativeWorkPublisher>>,
3533
3534    /// References to other creative works, such as another publication, web page, scholarly article, etc.
3535    pub references: Option<Vec<CreativeWorkReferences>>,
3536
3537    /// Requirements for application, including shared libraries that are not included in the application distribution.
3538    pub software_requirements: Option<Vec<SoftwareApplication>>,
3539
3540    /// Version of the software.
3541    pub software_version: Option<Box<String>>,
3542
3543    /// The textual content of this creative work.
3544    pub text: Option<Box<String>>,
3545
3546    /// The title of the creative work.
3547    pub title: Option<Box<CreativeWorkTitle>>,
3548
3549    /// The URL of the item.
3550    pub url: Option<Box<String>>,
3551
3552    /// The version of the creative work.
3553    pub version: Option<Box<CreativeWorkVersion>>,
3554}
3555
3556#[derive(Clone, Debug, Serialize, Deserialize)]
3557pub enum SoftwareApplication_ {
3558  SoftwareApplication
3559}
3560
3561/// A computational environment.
3562#[skip_serializing_none]
3563#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
3564#[serde(default, rename_all = "camelCase")]
3565pub struct SoftwareEnvironment {
3566    /// The name of this type
3567    #[def = "SoftwareEnvironment_::SoftwareEnvironment"]
3568    pub type_: SoftwareEnvironment_,
3569
3570    /// The name of the item.
3571    pub name: String,
3572
3573    /// The packages that this environment adds to the base environments listed under `extends` (if any).,
3574    pub adds: Option<Vec<SoftwareSourceCode>>,
3575
3576    /// Alternate names (aliases) for the item.
3577    pub alternate_names: Option<Vec<String>>,
3578
3579    /// A description of the item.
3580    pub description: Option<Box<ThingDescription>>,
3581
3582    /// Other environments that this environment extends by adding or removing packages.,
3583    pub extends: Option<Vec<SoftwareEnvironment>>,
3584
3585    /// The identifier for this item.
3586    pub id: Option<Box<String>>,
3587
3588    /// Any kind of identifier for any kind of Thing.
3589    pub identifiers: Option<Vec<ThingIdentifiers>>,
3590
3591    /// Images of the item.
3592    pub images: Option<Vec<ThingImages>>,
3593
3594    /// The packages that this environment removes from the base environments listed under `extends` (if any).,
3595    pub removes: Option<Vec<SoftwareSourceCode>>,
3596
3597    /// The URL of the item.
3598    pub url: Option<Box<String>>,
3599}
3600
3601#[derive(Clone, Debug, Serialize, Deserialize)]
3602pub enum SoftwareEnvironment_ {
3603  SoftwareEnvironment
3604}
3605
3606/// Definition of a compute session, including its software and compute resource requirements and status.
3607#[skip_serializing_none]
3608#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
3609#[serde(default, rename_all = "camelCase")]
3610pub struct SoftwareSession {
3611    /// The name of this type
3612    #[def = "SoftwareSession_::SoftwareSession"]
3613    pub type_: SoftwareSession_,
3614
3615    /// Alternate names (aliases) for the item.
3616    pub alternate_names: Option<Vec<String>>,
3617
3618    /// The maximum number of concurrent clients the session is limited to.
3619    pub clients_limit: Option<Number>,
3620
3621    /// The maximum number of concurrent clients requested for the session.
3622    pub clients_request: Option<Number>,
3623
3624    /// The amount of CPU the session is limited to.
3625    pub cpu_limit: Option<Number>,
3626
3627    /// The amount of CPU requested for the session.
3628    pub cpu_request: Option<Number>,
3629
3630    /// The date-time that the session ended.
3631    pub date_end: Option<Box<Date>>,
3632
3633    /// The date-time that the session began.
3634    pub date_start: Option<Box<Date>>,
3635
3636    /// A description of the item.
3637    pub description: Option<Box<ThingDescription>>,
3638
3639    /// The maximum duration (seconds) the session is limited to.
3640    pub duration_limit: Option<Number>,
3641
3642    /// The maximum duration (seconds) requested for the session.
3643    pub duration_request: Option<Number>,
3644
3645    /// The software environment to execute this session in.
3646    pub environment: Option<Box<SoftwareEnvironment>>,
3647
3648    /// The identifier for this item.
3649    pub id: Option<Box<String>>,
3650
3651    /// Any kind of identifier for any kind of Thing.
3652    pub identifiers: Option<Vec<ThingIdentifiers>>,
3653
3654    /// Images of the item.
3655    pub images: Option<Vec<ThingImages>>,
3656
3657    /// The amount of memory that the session is limited to.
3658    pub memory_limit: Option<Number>,
3659
3660    /// The amount of memory requested for the session.
3661    pub memory_request: Option<Number>,
3662
3663    /// The name of the item.
3664    pub name: Option<Box<String>>,
3665
3666    /// The amount of network data transfer (GiB) that the session is limited to.
3667    pub network_transfer_limit: Option<Number>,
3668
3669    /// The amount of network data transfer (GiB) requested for the session.
3670    pub network_transfer_request: Option<Number>,
3671
3672    /// The status of the session (starting, stopped, etc).
3673    pub status: Option<SoftwareSessionStatus>,
3674
3675    /// The inactivity timeout (seconds) the session is limited to.
3676    pub timeout_limit: Option<Number>,
3677
3678    /// The inactivity timeout (seconds) requested for the session.
3679    pub timeout_request: Option<Number>,
3680
3681    /// The URL of the item.
3682    pub url: Option<Box<String>>,
3683
3684    /// Volumes to mount in the session.
3685    pub volume_mounts: Option<Vec<VolumeMount>>,
3686}
3687
3688#[derive(Clone, Debug, Serialize, Deserialize)]
3689pub enum SoftwareSession_ {
3690  SoftwareSession
3691}
3692
3693/// Computer programming source code. Example: Full (compile ready) solutions, code snippet samples, scripts, templates.
3694#[skip_serializing_none]
3695#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
3696#[serde(default, rename_all = "camelCase")]
3697pub struct SoftwareSourceCode {
3698    /// The name of this type
3699    #[def = "SoftwareSourceCode_::SoftwareSourceCode"]
3700    pub type_: SoftwareSourceCode_,
3701
3702    /// The subject matter of the content.
3703    pub about: Option<Vec<ThingTypes>>,
3704
3705    /// Alternate names (aliases) for the item.
3706    pub alternate_names: Option<Vec<String>>,
3707
3708    /// The authors of this creative work.
3709    pub authors: Option<Vec<CreativeWorkAuthors>>,
3710
3711    /// Link to the repository where the un-compiled, human readable code and related code is located.
3712    pub code_repository: Option<Box<String>>,
3713
3714    /// What type of code sample: full (compile ready) solution, code snippet, inline code, scripts, template.
3715    pub code_sample_type: Option<Box<String>>,
3716
3717    /// Comments about this creative work.
3718    pub comments: Option<Vec<Comment>>,
3719
3720    /// The structured content of this creative work c.f. property `text`.
3721    pub content: Option<Box<CreativeWorkContent>>,
3722
3723    /// Date/time of acceptance.
3724    pub date_accepted: Option<Box<Date>>,
3725
3726    /// Date/time of creation.
3727    pub date_created: Option<Box<Date>>,
3728
3729    /// Date/time of most recent modification.
3730    pub date_modified: Option<Box<Date>>,
3731
3732    /// Date of first publication.
3733    pub date_published: Option<Box<Date>>,
3734
3735    /// Date/time that work was received.
3736    pub date_received: Option<Box<Date>>,
3737
3738    /// A description of the item.
3739    pub description: Option<Box<ThingDescription>>,
3740
3741    /// People who edited the `CreativeWork`.
3742    pub editors: Option<Vec<Person>>,
3743
3744    /// Grants that funded the `CreativeWork`; reverse of `fundedItems`.
3745    pub funded_by: Option<Vec<CreativeWorkFundedBy>>,
3746
3747    /// People or organizations that funded the `CreativeWork`.
3748    pub funders: Option<Vec<CreativeWorkFunders>>,
3749
3750    /// Genre of the creative work, broadcast channel or group.
3751    pub genre: Option<Vec<String>>,
3752
3753    /// The identifier for this item.
3754    pub id: Option<Box<String>>,
3755
3756    /// Any kind of identifier for any kind of Thing.
3757    pub identifiers: Option<Vec<ThingIdentifiers>>,
3758
3759    /// Images of the item.
3760    pub images: Option<Vec<ThingImages>>,
3761
3762    /// An item or other CreativeWork that this CreativeWork is a part of.
3763    pub is_part_of: Option<Box<CreativeWorkTypes>>,
3764
3765    /// Keywords or tags used to describe this content. Multiple entries in a keywords list are typically delimited by commas.
3766    pub keywords: Option<Vec<String>>,
3767
3768    /// License documents that applies to this content, typically indicated by URL.
3769    pub licenses: Option<Vec<CreativeWorkLicenses>>,
3770
3771    /// The people or organizations who maintain this CreativeWork.
3772    pub maintainers: Option<Vec<CreativeWorkMaintainers>>,
3773
3774    /// The name of the item.
3775    pub name: Option<Box<String>>,
3776
3777    /// Elements of the collection which can be a variety of different elements, such as Articles, Datatables, Tables and more.
3778    pub parts: Option<Vec<CreativeWorkTypes>>,
3779
3780    /// The computer programming language.
3781    pub programming_language: Option<Box<String>>,
3782
3783    /// A publisher of the CreativeWork.
3784    pub publisher: Option<Box<CreativeWorkPublisher>>,
3785
3786    /// References to other creative works, such as another publication, web page, scholarly article, etc.
3787    pub references: Option<Vec<CreativeWorkReferences>>,
3788
3789    /// Runtime platform or script interpreter dependencies (Example - Java v1, Python2.3, .Net Framework 3.0).
3790    pub runtime_platform: Option<Vec<String>>,
3791
3792    /// Dependency requirements for the software.
3793    pub software_requirements: Option<Vec<SoftwareSourceCodeSoftwareRequirements>>,
3794
3795    /// Target operating system or product to which the code applies.
3796    pub target_products: Option<Vec<SoftwareApplication>>,
3797
3798    /// The textual content of this creative work.
3799    pub text: Option<Box<String>>,
3800
3801    /// The title of the creative work.
3802    pub title: Option<Box<CreativeWorkTitle>>,
3803
3804    /// The URL of the item.
3805    pub url: Option<Box<String>>,
3806
3807    /// The version of the creative work.
3808    pub version: Option<Box<CreativeWorkVersion>>,
3809}
3810
3811#[derive(Clone, Debug, Serialize, Deserialize)]
3812pub enum SoftwareSourceCode_ {
3813  SoftwareSourceCode
3814}
3815
3816/// A schema specifying constraints on a string node.
3817#[skip_serializing_none]
3818#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
3819#[serde(default, rename_all = "camelCase")]
3820pub struct StringValidator {
3821    /// The name of this type
3822    #[def = "StringValidator_::StringValidator"]
3823    pub type_: StringValidator_,
3824
3825    /// The identifier for this item.
3826    pub id: Option<Box<String>>,
3827
3828    /// The maximum length for a string node.
3829    pub max_length: Option<u32>,
3830
3831    /// The minimum length for a string node.
3832    pub min_length: Option<u32>,
3833
3834    /// A regular expression that a string node must match.
3835    pub pattern: Option<Box<String>>,
3836}
3837
3838#[derive(Clone, Debug, Serialize, Deserialize)]
3839pub enum StringValidator_ {
3840  StringValidator
3841}
3842
3843/// Strongly emphasised content.
3844#[skip_serializing_none]
3845#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
3846#[serde(default, rename_all = "camelCase")]
3847pub struct Strong {
3848    /// The name of this type
3849    #[def = "Strong_::Strong"]
3850    pub type_: Strong_,
3851
3852    /// The content that is marked.
3853    pub content: Vec<InlineContent>,
3854
3855    /// The identifier for this item.
3856    pub id: Option<Box<String>>,
3857}
3858
3859#[derive(Clone, Debug, Serialize, Deserialize)]
3860pub enum Strong_ {
3861  Strong
3862}
3863
3864/// Subscripted content.
3865#[skip_serializing_none]
3866#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
3867#[serde(default, rename_all = "camelCase")]
3868pub struct Subscript {
3869    /// The name of this type
3870    #[def = "Subscript_::Subscript"]
3871    pub type_: Subscript_,
3872
3873    /// The content that is marked.
3874    pub content: Vec<InlineContent>,
3875
3876    /// The identifier for this item.
3877    pub id: Option<Box<String>>,
3878}
3879
3880#[derive(Clone, Debug, Serialize, Deserialize)]
3881pub enum Subscript_ {
3882  Subscript
3883}
3884
3885/// Superscripted content.
3886#[skip_serializing_none]
3887#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
3888#[serde(default, rename_all = "camelCase")]
3889pub struct Superscript {
3890    /// The name of this type
3891    #[def = "Superscript_::Superscript"]
3892    pub type_: Superscript_,
3893
3894    /// The content that is marked.
3895    pub content: Vec<InlineContent>,
3896
3897    /// The identifier for this item.
3898    pub id: Option<Box<String>>,
3899}
3900
3901#[derive(Clone, Debug, Serialize, Deserialize)]
3902pub enum Superscript_ {
3903  Superscript
3904}
3905
3906/// A table.
3907#[skip_serializing_none]
3908#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
3909#[serde(default, rename_all = "camelCase")]
3910pub struct Table {
3911    /// The name of this type
3912    #[def = "Table_::Table"]
3913    pub type_: Table_,
3914
3915    /// Rows of cells in the table.
3916    pub rows: Vec<TableRow>,
3917
3918    /// The subject matter of the content.
3919    pub about: Option<Vec<ThingTypes>>,
3920
3921    /// Alternate names (aliases) for the item.
3922    pub alternate_names: Option<Vec<String>>,
3923
3924    /// The authors of this creative work.
3925    pub authors: Option<Vec<CreativeWorkAuthors>>,
3926
3927    /// A caption for the table.
3928    pub caption: Option<Box<TableCaption>>,
3929
3930    /// Comments about this creative work.
3931    pub comments: Option<Vec<Comment>>,
3932
3933    /// The structured content of this creative work c.f. property `text`.
3934    pub content: Option<Box<CreativeWorkContent>>,
3935
3936    /// Date/time of acceptance.
3937    pub date_accepted: Option<Box<Date>>,
3938
3939    /// Date/time of creation.
3940    pub date_created: Option<Box<Date>>,
3941
3942    /// Date/time of most recent modification.
3943    pub date_modified: Option<Box<Date>>,
3944
3945    /// Date of first publication.
3946    pub date_published: Option<Box<Date>>,
3947
3948    /// Date/time that work was received.
3949    pub date_received: Option<Box<Date>>,
3950
3951    /// A description of the item.
3952    pub description: Option<Box<ThingDescription>>,
3953
3954    /// People who edited the `CreativeWork`.
3955    pub editors: Option<Vec<Person>>,
3956
3957    /// Grants that funded the `CreativeWork`; reverse of `fundedItems`.
3958    pub funded_by: Option<Vec<CreativeWorkFundedBy>>,
3959
3960    /// People or organizations that funded the `CreativeWork`.
3961    pub funders: Option<Vec<CreativeWorkFunders>>,
3962
3963    /// Genre of the creative work, broadcast channel or group.
3964    pub genre: Option<Vec<String>>,
3965
3966    /// The identifier for this item.
3967    pub id: Option<Box<String>>,
3968
3969    /// Any kind of identifier for any kind of Thing.
3970    pub identifiers: Option<Vec<ThingIdentifiers>>,
3971
3972    /// Images of the item.
3973    pub images: Option<Vec<ThingImages>>,
3974
3975    /// An item or other CreativeWork that this CreativeWork is a part of.
3976    pub is_part_of: Option<Box<CreativeWorkTypes>>,
3977
3978    /// Keywords or tags used to describe this content. Multiple entries in a keywords list are typically delimited by commas.
3979    pub keywords: Option<Vec<String>>,
3980
3981    /// A short label for the table.
3982    pub label: Option<Box<String>>,
3983
3984    /// License documents that applies to this content, typically indicated by URL.
3985    pub licenses: Option<Vec<CreativeWorkLicenses>>,
3986
3987    /// The people or organizations who maintain this CreativeWork.
3988    pub maintainers: Option<Vec<CreativeWorkMaintainers>>,
3989
3990    /// The name of the item.
3991    pub name: Option<Box<String>>,
3992
3993    /// Elements of the collection which can be a variety of different elements, such as Articles, Datatables, Tables and more.
3994    pub parts: Option<Vec<CreativeWorkTypes>>,
3995
3996    /// A publisher of the CreativeWork.
3997    pub publisher: Option<Box<CreativeWorkPublisher>>,
3998
3999    /// References to other creative works, such as another publication, web page, scholarly article, etc.
4000    pub references: Option<Vec<CreativeWorkReferences>>,
4001
4002    /// The textual content of this creative work.
4003    pub text: Option<Box<String>>,
4004
4005    /// The title of the creative work.
4006    pub title: Option<Box<CreativeWorkTitle>>,
4007
4008    /// The URL of the item.
4009    pub url: Option<Box<String>>,
4010
4011    /// The version of the creative work.
4012    pub version: Option<Box<CreativeWorkVersion>>,
4013}
4014
4015#[derive(Clone, Debug, Serialize, Deserialize)]
4016pub enum Table_ {
4017  Table
4018}
4019/// A table.
4020#[skip_serializing_none]
4021#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
4022#[serde(default, rename_all = "camelCase")]
4023pub struct TableSimple {
4024    /// The name of this type
4025    #[def = "TableSimple_::Table"]
4026    pub type_: TableSimple_,
4027
4028    /// Rows of cells in the table.
4029    pub rows: Vec<TableRow>,
4030
4031    /// A caption for the table.
4032    pub caption: Option<Box<TableCaption>>,
4033
4034    /// The structured content of this creative work c.f. property `text`.
4035    pub content: Option<Box<CreativeWorkContent>>,
4036
4037    /// The identifier for this item.
4038    pub id: Option<Box<String>>,
4039
4040    /// A short label for the table.
4041    pub label: Option<Box<String>>,
4042
4043    /// Elements of the collection which can be a variety of different elements, such as Articles, Datatables, Tables and more.
4044    pub parts: Option<Vec<CreativeWorkTypes>>,
4045
4046    /// The title of the creative work.
4047    pub title: Option<Box<CreativeWorkTitle>>,
4048}
4049
4050#[derive(Clone, Debug, Serialize, Deserialize)]
4051pub enum TableSimple_ {
4052  Table
4053}
4054
4055/// A cell within a `Table`.
4056#[skip_serializing_none]
4057#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
4058#[serde(default, rename_all = "camelCase")]
4059pub struct TableCell {
4060    /// The name of this type
4061    #[def = "TableCell_::TableCell"]
4062    pub type_: TableCell_,
4063
4064    /// Indicates whether the cell is a header or data.
4065    pub cell_type: Option<TableCellCellType>,
4066
4067    /// How many columns the cell extends.
4068    pub colspan: Option<u32>,
4069
4070    /// Contents of the table cell.
4071    pub content: Option<TableCellContent>,
4072
4073    /// The identifier for this item.
4074    pub id: Option<Box<String>>,
4075
4076    /// The name of the cell.
4077    pub name: Option<Box<String>>,
4078
4079    /// How many columns the cell extends.
4080    pub rowspan: Option<u32>,
4081}
4082
4083#[derive(Clone, Debug, Serialize, Deserialize)]
4084pub enum TableCell_ {
4085  TableCell
4086}
4087
4088/// A row within a Table.
4089#[skip_serializing_none]
4090#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
4091#[serde(default, rename_all = "camelCase")]
4092pub struct TableRow {
4093    /// The name of this type
4094    #[def = "TableRow_::TableRow"]
4095    pub type_: TableRow_,
4096
4097    /// An array of cells in the row.
4098    pub cells: Vec<TableCell>,
4099
4100    /// The identifier for this item.
4101    pub id: Option<Box<String>>,
4102
4103    /// If present, indicates that all cells in this row should be treated as header cells.
4104    pub row_type: Option<TableRowRowType>,
4105}
4106
4107#[derive(Clone, Debug, Serialize, Deserialize)]
4108pub enum TableRow_ {
4109  TableRow
4110}
4111
4112/// A thematic break, such as a scene change in a story, a transition to another topic, or a new document.
4113#[skip_serializing_none]
4114#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
4115#[serde(default, rename_all = "camelCase")]
4116pub struct ThematicBreak {
4117    /// The name of this type
4118    #[def = "ThematicBreak_::ThematicBreak"]
4119    pub type_: ThematicBreak_,
4120
4121    /// The identifier for this item.
4122    pub id: Option<Box<String>>,
4123}
4124
4125#[derive(Clone, Debug, Serialize, Deserialize)]
4126pub enum ThematicBreak_ {
4127  ThematicBreak
4128}
4129
4130/// A validator specifying constraints on an array of heterogeneous items.
4131#[skip_serializing_none]
4132#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
4133#[serde(default, rename_all = "camelCase")]
4134pub struct TupleValidator {
4135    /// The name of this type
4136    #[def = "TupleValidator_::TupleValidator"]
4137    pub type_: TupleValidator_,
4138
4139    /// The identifier for this item.
4140    pub id: Option<Box<String>>,
4141
4142    /// An array of validators specifying the constraints on each successive item in the array.
4143    pub items: Option<Vec<ValidatorTypes>>,
4144}
4145
4146#[derive(Clone, Debug, Serialize, Deserialize)]
4147pub enum TupleValidator_ {
4148  TupleValidator
4149}
4150
4151/// A variable representing a name / value pair.
4152#[skip_serializing_none]
4153#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
4154#[serde(default, rename_all = "camelCase")]
4155pub struct Variable {
4156    /// The name of this type
4157    #[def = "Variable_::Variable"]
4158    pub type_: Variable_,
4159
4160    /// The name of the variable.
4161    pub name: String,
4162
4163    /// The identifier for this item.
4164    pub id: Option<Box<String>>,
4165
4166    /// Whether or not a property is mutable. Default is false.
4167    pub is_readonly: Option<Boolean>,
4168
4169    /// The validator that the value is validated against.
4170    pub validator: Option<Box<ValidatorTypes>>,
4171
4172    /// The value of the variable.
4173    pub value: Option<Box<Node>>,
4174}
4175
4176#[derive(Clone, Debug, Serialize, Deserialize)]
4177pub enum Variable_ {
4178  Variable
4179}
4180
4181/// A video file.
4182#[skip_serializing_none]
4183#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
4184#[serde(default, rename_all = "camelCase")]
4185pub struct VideoObject {
4186    /// The name of this type
4187    #[def = "VideoObject_::VideoObject"]
4188    pub type_: VideoObject_,
4189
4190    /// URL for the actual bytes of the media object, for example the image file or video file.
4191    pub content_url: String,
4192
4193    /// The subject matter of the content.
4194    pub about: Option<Vec<ThingTypes>>,
4195
4196    /// Alternate names (aliases) for the item.
4197    pub alternate_names: Option<Vec<String>>,
4198
4199    /// The authors of this creative work.
4200    pub authors: Option<Vec<CreativeWorkAuthors>>,
4201
4202    /// Bitrate in megabits per second (Mbit/s, Mb/s, Mbps).
4203    pub bitrate: Option<Number>,
4204
4205    /// The caption for this video recording.
4206    pub caption: Option<Box<String>>,
4207
4208    /// Comments about this creative work.
4209    pub comments: Option<Vec<Comment>>,
4210
4211    /// The structured content of this creative work c.f. property `text`.
4212    pub content: Option<Box<CreativeWorkContent>>,
4213
4214    /// File size in megabits (Mbit, Mb).
4215    pub content_size: Option<Number>,
4216
4217    /// Date/time of acceptance.
4218    pub date_accepted: Option<Box<Date>>,
4219
4220    /// Date/time of creation.
4221    pub date_created: Option<Box<Date>>,
4222
4223    /// Date/time of most recent modification.
4224    pub date_modified: Option<Box<Date>>,
4225
4226    /// Date of first publication.
4227    pub date_published: Option<Box<Date>>,
4228
4229    /// Date/time that work was received.
4230    pub date_received: Option<Box<Date>>,
4231
4232    /// A description of the item.
4233    pub description: Option<Box<ThingDescription>>,
4234
4235    /// People who edited the `CreativeWork`.
4236    pub editors: Option<Vec<Person>>,
4237
4238    /// URL that can be used to embed the media on a web page via a specific media player.
4239    pub embed_url: Option<Box<String>>,
4240
4241    /// Grants that funded the `CreativeWork`; reverse of `fundedItems`.
4242    pub funded_by: Option<Vec<CreativeWorkFundedBy>>,
4243
4244    /// People or organizations that funded the `CreativeWork`.
4245    pub funders: Option<Vec<CreativeWorkFunders>>,
4246
4247    /// Genre of the creative work, broadcast channel or group.
4248    pub genre: Option<Vec<String>>,
4249
4250    /// The identifier for this item.
4251    pub id: Option<Box<String>>,
4252
4253    /// Any kind of identifier for any kind of Thing.
4254    pub identifiers: Option<Vec<ThingIdentifiers>>,
4255
4256    /// Images of the item.
4257    pub images: Option<Vec<ThingImages>>,
4258
4259    /// An item or other CreativeWork that this CreativeWork is a part of.
4260    pub is_part_of: Option<Box<CreativeWorkTypes>>,
4261
4262    /// Keywords or tags used to describe this content. Multiple entries in a keywords list are typically delimited by commas.
4263    pub keywords: Option<Vec<String>>,
4264
4265    /// License documents that applies to this content, typically indicated by URL.
4266    pub licenses: Option<Vec<CreativeWorkLicenses>>,
4267
4268    /// The people or organizations who maintain this CreativeWork.
4269    pub maintainers: Option<Vec<CreativeWorkMaintainers>>,
4270
4271    /// IANA media type (MIME type).
4272    pub media_type: Option<Box<String>>,
4273
4274    /// The name of the item.
4275    pub name: Option<Box<String>>,
4276
4277    /// Elements of the collection which can be a variety of different elements, such as Articles, Datatables, Tables and more.
4278    pub parts: Option<Vec<CreativeWorkTypes>>,
4279
4280    /// A publisher of the CreativeWork.
4281    pub publisher: Option<Box<CreativeWorkPublisher>>,
4282
4283    /// References to other creative works, such as another publication, web page, scholarly article, etc.
4284    pub references: Option<Vec<CreativeWorkReferences>>,
4285
4286    /// The textual content of this creative work.
4287    pub text: Option<Box<String>>,
4288
4289    /// Thumbnail image of this video recording.
4290    pub thumbnail: Option<Box<ImageObject>>,
4291
4292    /// The title of the creative work.
4293    pub title: Option<Box<CreativeWorkTitle>>,
4294
4295    /// The transcript of this video recording.
4296    pub transcript: Option<Box<String>>,
4297
4298    /// The URL of the item.
4299    pub url: Option<Box<String>>,
4300
4301    /// The version of the creative work.
4302    pub version: Option<Box<CreativeWorkVersion>>,
4303}
4304
4305#[derive(Clone, Debug, Serialize, Deserialize)]
4306pub enum VideoObject_ {
4307  VideoObject
4308}
4309/// A video file.
4310#[skip_serializing_none]
4311#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
4312#[serde(default, rename_all = "camelCase")]
4313pub struct VideoObjectSimple {
4314    /// The name of this type
4315    #[def = "VideoObjectSimple_::VideoObject"]
4316    pub type_: VideoObjectSimple_,
4317
4318    /// URL for the actual bytes of the media object, for example the image file or video file.
4319    pub content_url: String,
4320
4321    /// Bitrate in megabits per second (Mbit/s, Mb/s, Mbps).
4322    pub bitrate: Option<Number>,
4323
4324    /// The caption for this video recording.
4325    pub caption: Option<Box<String>>,
4326
4327    /// File size in megabits (Mbit, Mb).
4328    pub content_size: Option<Number>,
4329
4330    /// URL that can be used to embed the media on a web page via a specific media player.
4331    pub embed_url: Option<Box<String>>,
4332
4333    /// The identifier for this item.
4334    pub id: Option<Box<String>>,
4335
4336    /// IANA media type (MIME type).
4337    pub media_type: Option<Box<String>>,
4338
4339    /// Thumbnail image of this video recording.
4340    pub thumbnail: Option<Box<ImageObject>>,
4341
4342    /// The title of the creative work.
4343    pub title: Option<Box<CreativeWorkTitle>>,
4344
4345    /// The transcript of this video recording.
4346    pub transcript: Option<Box<String>>,
4347}
4348
4349#[derive(Clone, Debug, Serialize, Deserialize)]
4350pub enum VideoObjectSimple_ {
4351  VideoObject
4352}
4353
4354/// Describes a volume mount from a host to container.
4355#[skip_serializing_none]
4356#[derive(Clone, Debug, Defaults, Serialize, Deserialize)]
4357#[serde(default, rename_all = "camelCase")]
4358pub struct VolumeMount {
4359    /// The name of this type
4360    #[def = "VolumeMount_::VolumeMount"]
4361    pub type_: VolumeMount_,
4362
4363    /// The mount location inside the container.
4364    pub mount_destination: String,
4365
4366    /// Alternate names (aliases) for the item.
4367    pub alternate_names: Option<Vec<String>>,
4368
4369    /// A description of the item.
4370    pub description: Option<Box<ThingDescription>>,
4371
4372    /// The identifier for this item.
4373    pub id: Option<Box<String>>,
4374
4375    /// Any kind of identifier for any kind of Thing.
4376    pub identifiers: Option<Vec<ThingIdentifiers>>,
4377
4378    /// Images of the item.
4379    pub images: Option<Vec<ThingImages>>,
4380
4381    /// A list of options to use when applying the mount.
4382    pub mount_options: Option<Vec<String>>,
4383
4384    /// The mount source directory on the host.
4385    pub mount_source: Option<Box<String>>,
4386
4387    /// The type of mount.
4388    pub mount_type: Option<Box<String>>,
4389
4390    /// The name of the item.
4391    pub name: Option<Box<String>>,
4392
4393    /// The URL of the item.
4394    pub url: Option<Box<String>>,
4395}
4396
4397#[derive(Clone, Debug, Serialize, Deserialize)]
4398pub enum VolumeMount_ {
4399  VolumeMount
4400}
4401
4402/*********************************************************************
4403 * Enums for struct properties which use JSON Schema 'enum' or 'anyOf'
4404 ********************************************************************/
4405
4406#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4407pub enum CiteCitationMode {
4408    Parenthetical,
4409    Narrative,
4410    NarrativeAuthor,
4411    NarrativeYear,
4412    normal,
4413    suppressAuthor,
4414}
4415
4416/// Types permitted for the `pageEnd` property of a `Cite` node.
4417#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4418#[serde(untagged)]
4419pub enum CitePageEnd {
4420    Integer(Integer),
4421    String(String),
4422}
4423
4424/// Types permitted for the `pageStart` property of a `Cite` node.
4425#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4426#[serde(untagged)]
4427pub enum CitePageStart {
4428    Integer(Integer),
4429    String(String),
4430}
4431
4432/// Types permitted for the `codeDependencies` property of a `CodeExecutable` node.
4433#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4434#[serde(untagged)]
4435pub enum CodeExecutableCodeDependencies {
4436    CodeChunk(CodeChunk),
4437    Parameter(Parameter),
4438}
4439
4440/// Types permitted for the `codeDependents` property of a `CodeExecutable` node.
4441#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4442#[serde(untagged)]
4443pub enum CodeExecutableCodeDependents {
4444    CodeChunk(CodeChunk),
4445    CodeExpression(CodeExpression),
4446}
4447
4448#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4449pub enum CodeExecutableExecuteRequired {
4450    No,
4451    NeverExecuted,
4452    SemanticsChanged,
4453    DependenciesChanged,
4454    DependenciesFailed,
4455}
4456
4457#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4458pub enum CodeExecutableExecuteStatus {
4459    Scheduled,
4460    ScheduledPreviouslyFailed,
4461    Running,
4462    RunningPreviouslyFailed,
4463    Succeeded,
4464    Failed,
4465    Cancelled,
4466}
4467
4468/// Types permitted for the `caption` property of a `CodeChunk` node.
4469#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4470#[serde(untagged)]
4471pub enum CodeChunkCaption {
4472    VecBlockContent(Vec<BlockContent>),
4473    String(String),
4474}
4475
4476#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4477pub enum CodeChunkExecuteAuto {
4478    Never,
4479    Needed,
4480    Always,
4481}
4482
4483/// Types permitted for the `description` property of a `Thing` node.
4484#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4485#[serde(untagged)]
4486pub enum ThingDescription {
4487    VecBlockContent(Vec<BlockContent>),
4488    VecInlineContent(Vec<InlineContent>),
4489    String(String),
4490}
4491
4492/// Types permitted for the `identifiers` property of a `Thing` node.
4493#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4494#[serde(untagged)]
4495pub enum ThingIdentifiers {
4496    PropertyValue(PropertyValue),
4497    String(String),
4498}
4499
4500/// Types permitted for the `images` property of a `Thing` node.
4501#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4502#[serde(untagged)]
4503pub enum ThingImages {
4504    ImageObject(ImageObject),
4505    String(String),
4506}
4507
4508/// Types permitted for the `logo` property of a `Brand` node.
4509#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4510#[serde(untagged)]
4511pub enum BrandLogo {
4512    ImageObject(ImageObject),
4513    String(String),
4514}
4515
4516/// Types permitted for the `authors` property of a `CreativeWork` node.
4517#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4518#[serde(untagged)]
4519pub enum CreativeWorkAuthors {
4520    Person(Person),
4521    Organization(Organization),
4522}
4523
4524/// Types permitted for the `content` property of a `CreativeWork` node.
4525#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4526#[serde(untagged)]
4527pub enum CreativeWorkContent {
4528    VecNode(Vec<Node>),
4529    String(String),
4530}
4531
4532/// Types permitted for the `fundedBy` property of a `CreativeWork` node.
4533#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4534#[serde(untagged)]
4535pub enum CreativeWorkFundedBy {
4536    Grant(Grant),
4537    MonetaryGrant(MonetaryGrant),
4538}
4539
4540/// Types permitted for the `funders` property of a `CreativeWork` node.
4541#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4542#[serde(untagged)]
4543pub enum CreativeWorkFunders {
4544    Person(Person),
4545    Organization(Organization),
4546}
4547
4548/// Types permitted for the `licenses` property of a `CreativeWork` node.
4549#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4550#[serde(untagged)]
4551pub enum CreativeWorkLicenses {
4552    CreativeWorkTypes(CreativeWorkTypes),
4553    String(String),
4554}
4555
4556/// Types permitted for the `maintainers` property of a `CreativeWork` node.
4557#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4558#[serde(untagged)]
4559pub enum CreativeWorkMaintainers {
4560    Person(Person),
4561    Organization(Organization),
4562}
4563
4564/// Types permitted for the `publisher` property of a `CreativeWork` node.
4565#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4566#[serde(untagged)]
4567pub enum CreativeWorkPublisher {
4568    Person(Person),
4569    Organization(Organization),
4570}
4571
4572/// Types permitted for the `references` property of a `CreativeWork` node.
4573#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4574#[serde(untagged)]
4575pub enum CreativeWorkReferences {
4576    CreativeWorkTypes(CreativeWorkTypes),
4577    String(String),
4578}
4579
4580/// Types permitted for the `title` property of a `CreativeWork` node.
4581#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4582#[serde(untagged)]
4583pub enum CreativeWorkTitle {
4584    VecInlineContent(Vec<InlineContent>),
4585    String(String),
4586}
4587
4588/// Types permitted for the `version` property of a `CreativeWork` node.
4589#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4590#[serde(untagged)]
4591pub enum CreativeWorkVersion {
4592    String(String),
4593    Number(Number),
4594}
4595
4596/// Types permitted for the `pageEnd` property of a `Article` node.
4597#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4598#[serde(untagged)]
4599pub enum ArticlePageEnd {
4600    Integer(Integer),
4601    String(String),
4602}
4603
4604/// Types permitted for the `pageStart` property of a `Article` node.
4605#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4606#[serde(untagged)]
4607pub enum ArticlePageStart {
4608    Integer(Integer),
4609    String(String),
4610}
4611
4612#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4613pub enum ClaimClaimType {
4614    Statement,
4615    Theorem,
4616    Lemma,
4617    Proof,
4618    Postulate,
4619    Hypothesis,
4620    Proposition,
4621    Corollary,
4622}
4623
4624/// Types permitted for the `caption` property of a `Figure` node.
4625#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4626#[serde(untagged)]
4627pub enum FigureCaption {
4628    VecBlockContent(Vec<BlockContent>),
4629    String(String),
4630}
4631
4632/// Types permitted for the `sponsors` property of a `Grant` node.
4633#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4634#[serde(untagged)]
4635pub enum GrantSponsors {
4636    Person(Person),
4637    Organization(Organization),
4638}
4639
4640#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4641pub enum ListOrder {
4642    Ascending,
4643    Descending,
4644    Unordered,
4645}
4646
4647/// Types permitted for the `content` property of a `ListItem` node.
4648#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4649#[serde(untagged)]
4650pub enum ListItemContent {
4651    VecBlockContent(Vec<BlockContent>),
4652    VecInlineContent(Vec<InlineContent>),
4653}
4654
4655/// Types permitted for the `funders` property of a `MonetaryGrant` node.
4656#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4657#[serde(untagged)]
4658pub enum MonetaryGrantFunders {
4659    Person(Person),
4660    Organization(Organization),
4661}
4662
4663#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4664pub enum NoteNoteType {
4665    Footnote,
4666    Endnote,
4667    Sidenote,
4668}
4669
4670/// Types permitted for the `address` property of a `Organization` node.
4671#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4672#[serde(untagged)]
4673pub enum OrganizationAddress {
4674    PostalAddress(PostalAddress),
4675    String(String),
4676}
4677
4678/// Types permitted for the `funders` property of a `Organization` node.
4679#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4680#[serde(untagged)]
4681pub enum OrganizationFunders {
4682    Organization(Organization),
4683    Person(Person),
4684}
4685
4686/// Types permitted for the `logo` property of a `Organization` node.
4687#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4688#[serde(untagged)]
4689pub enum OrganizationLogo {
4690    ImageObject(ImageObject),
4691    String(String),
4692}
4693
4694/// Types permitted for the `members` property of a `Organization` node.
4695#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4696#[serde(untagged)]
4697pub enum OrganizationMembers {
4698    Organization(Organization),
4699    Person(Person),
4700}
4701
4702/// Types permitted for the `address` property of a `Person` node.
4703#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4704#[serde(untagged)]
4705pub enum PersonAddress {
4706    PostalAddress(PostalAddress),
4707    String(String),
4708}
4709
4710/// Types permitted for the `funders` property of a `Person` node.
4711#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4712#[serde(untagged)]
4713pub enum PersonFunders {
4714    Organization(Organization),
4715    Person(Person),
4716}
4717
4718/// Types permitted for the `logo` property of a `Product` node.
4719#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4720#[serde(untagged)]
4721pub enum ProductLogo {
4722    ImageObject(ImageObject),
4723    String(String),
4724}
4725
4726/// Types permitted for the `value` property of a `PropertyValue` node.
4727#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4728#[serde(untagged)]
4729pub enum PropertyValueValue {
4730    Boolean(Boolean),
4731    Integer(Integer),
4732    Number(Number),
4733    String(String),
4734}
4735
4736/// Types permitted for the `issueNumber` property of a `PublicationIssue` node.
4737#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4738#[serde(untagged)]
4739pub enum PublicationIssueIssueNumber {
4740    Integer(Integer),
4741    String(String),
4742}
4743
4744/// Types permitted for the `pageEnd` property of a `PublicationIssue` node.
4745#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4746#[serde(untagged)]
4747pub enum PublicationIssuePageEnd {
4748    Integer(Integer),
4749    String(String),
4750}
4751
4752/// Types permitted for the `pageStart` property of a `PublicationIssue` node.
4753#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4754#[serde(untagged)]
4755pub enum PublicationIssuePageStart {
4756    Integer(Integer),
4757    String(String),
4758}
4759
4760/// Types permitted for the `pageEnd` property of a `PublicationVolume` node.
4761#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4762#[serde(untagged)]
4763pub enum PublicationVolumePageEnd {
4764    Integer(Integer),
4765    String(String),
4766}
4767
4768/// Types permitted for the `pageStart` property of a `PublicationVolume` node.
4769#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4770#[serde(untagged)]
4771pub enum PublicationVolumePageStart {
4772    Integer(Integer),
4773    String(String),
4774}
4775
4776/// Types permitted for the `volumeNumber` property of a `PublicationVolume` node.
4777#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4778#[serde(untagged)]
4779pub enum PublicationVolumeVolumeNumber {
4780    Integer(Integer),
4781    String(String),
4782}
4783
4784/// Types permitted for the `cite` property of a `Quote` node.
4785#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4786#[serde(untagged)]
4787pub enum QuoteCite {
4788    Cite(Cite),
4789    String(String),
4790}
4791
4792/// Types permitted for the `cite` property of a `QuoteBlock` node.
4793#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4794#[serde(untagged)]
4795pub enum QuoteBlockCite {
4796    Cite(Cite),
4797    String(String),
4798}
4799
4800#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4801pub enum SoftwareSessionStatus {
4802    Unknown,
4803    Starting,
4804    Started,
4805    Stopping,
4806    Stopped,
4807    Failed,
4808}
4809
4810/// Types permitted for the `softwareRequirements` property of a `SoftwareSourceCode` node.
4811#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4812#[serde(untagged)]
4813pub enum SoftwareSourceCodeSoftwareRequirements {
4814    SoftwareSourceCode(SoftwareSourceCode),
4815    SoftwareApplication(SoftwareApplication),
4816    String(String),
4817}
4818
4819/// Types permitted for the `caption` property of a `Table` node.
4820#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4821#[serde(untagged)]
4822pub enum TableCaption {
4823    VecBlockContent(Vec<BlockContent>),
4824    String(String),
4825}
4826
4827#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4828pub enum TableCellCellType {
4829    Data,
4830    Header,
4831}
4832
4833/// Types permitted for the `content` property of a `TableCell` node.
4834#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4835#[serde(untagged)]
4836pub enum TableCellContent {
4837    VecBlockContent(Vec<BlockContent>),
4838    VecInlineContent(Vec<InlineContent>),
4839}
4840
4841#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4842pub enum TableRowRowType {
4843    Header,
4844    Footer,
4845}
4846
4847
4848/*********************************************************************
4849 * Enums for "enum" schemas
4850 ********************************************************************/
4851
4852/// The type or nature of a citation, both factually and rhetorically.
4853#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
4854#[serde(untagged)]
4855pub enum CitationIntentEnumeration {
4856    /// The citing entity agrees with statements, ideas or conclusions presented in the cited entity
4857    AgreesWith,
4858    /// The citing entity cites the cited entity as one that provides an authoritative description or definition of the subject under discussion
4859    CitesAsAuthority,
4860    /// The citing entity cites the cited entity as source of data
4861    CitesAsDataSource,
4862    /// The citing entity cites the cited entity as source of factual evidence for statements it contains
4863    CitesAsEvidence,
4864    /// The citing entity cites the cited entity as being the container of metadata describing the citing entity
4865    CitesAsMetadataDocument,
4866    /// The citing entity cites the cited entity as providing or containing a possible solution to the issues being discussed
4867    CitesAsPotentialSolution,
4868    /// The citing entity cites the cited entity as an item of recommended reading
4869    CitesAsRecommendedReading,
4870    /// The citing entity cites the cited entity as one that is related
4871    CitesAsRelated,
4872    /// The citing entity cites the cited entity as being the entity from which the citing entity is derived, or about which the citing entity contains metadata
4873    CitesAsSourceDocument,
4874    /// The citing entity cites the cited entity as a source of information on the subject under discussion
4875    CitesForInformation,
4876    /// The citing entity is used to create or compile the cited entity
4877    Compiles,
4878    /// The citing entity confirms facts, ideas or statements presented in the cited entity
4879    Confirms,
4880    /// The citing entity contains a statement of fact or a logical assertion (or a collection of such facts and/or assertions) originally present in the cited entity
4881    ContainsAssertionFrom,
4882    /// The citing entity corrects statements, ideas or conclusions presented in the cited entity
4883    Corrects,
4884    /// The citing entity acknowledges contributions made by the cited entity
4885    Credits,
4886    /// The citing entity critiques statements, ideas or conclusions presented in the cited entity
4887    Critiques,
4888    /// The citing entity express derision for the cited entity, or for ideas or conclusions contained within it
4889    Derides,
4890    /// The citing entity describes the cited entity
4891    Describes,
4892    /// The citing entity disagrees with statements, ideas or conclusions presented in the cited entity
4893    DisagreesWith,
4894    /// The citing entity discusses statements, ideas or conclusions presented in the cited entity
4895    Discusses,
4896    /// The citing entity disputes statements, ideas or conclusions presented in the cited entity
4897    Disputes,
4898    /// The citing entity documents information about the cited entity
4899    Documents,
4900    /// The citing entity extends facts, ideas or understandings presented in the cited entity
4901    Extends,
4902    /// The cited entity provides background information for the citing entity
4903    GivesBackgroundTo,
4904    /// The cited entity provides intellectual or factual support for the citing entity
4905    GivesSupportTo,
4906    /// The cited entity evokes a reply from the citing entity
4907    HasReplyFrom,
4908    /// The citing entity includes one or more excerpts from the cited entity
4909    IncludesExcerptFrom,
4910    /// The citing entity includes one or more quotations from the cited entity
4911    IncludesQuotationFrom,
4912    /// The cited entity contains statements, ideas or conclusions with which the citing entity agrees
4913    IsAgreedWithBy,
4914    /// The cited entity is cited as providing an authoritative description or definition of the subject under discussion in the citing entity
4915    IsCitedAsAuthorityBy,
4916    /// The cited entity is cited as a data source by the citing entity
4917    IsCitedAsDataSourceBy,
4918    /// The cited entity is cited for providing factual evidence to the citing entity
4919    IsCitedAsEvidenceBy,
4920    /// The cited entity is cited as being the container of metadata relating to the citing entity
4921    IsCitedAsMetadataDocumentBy,
4922    /// The cited entity is cited as providing or containing a possible solution to the issues being discussed in the citing entity
4923    IsCitedAsPontentialSolutionBy,
4924    /// The cited entity is cited by the citing entity as an item of recommended reading
4925    IsCitedAsRecommendedReadingBy,
4926    /// The cited entity is cited as being related to the citing entity
4927    IsCitedAsRelatedBy,
4928    /// The cited entity is cited as being the entity from which the citing entity is derived, or about which the citing entity contains metadata
4929    IsCitedAsSourceDocumentBy,
4930    /// The cited entity (the subject of the RDF triple) is cited by the citing entity (the object of the triple)
4931    IsCitedBy,
4932    /// The cited entity is cited as a source of information on the subject under discussion in the citing entity
4933    IsCitedForInformationBy,
4934    /// The cited entity is the result of a compile or creation event using the citing entity
4935    IsCompiledBy,
4936    /// The cited entity presents facts, ideas or statements that are confirmed by the citing entity
4937    IsConfirmedBy,
4938    /// The cited entity presents statements, ideas or conclusions that are corrected by the citing entity
4939    IsCorrectedBy,
4940    /// The cited entity makes contributions that are acknowledged by the citing entity
4941    IsCreditedBy,
4942    /// The cited entity presents statements, ideas or conclusions that are critiqued by the citing entity
4943    IsCritiquedBy,
4944    /// The cited entity contains ideas or conclusions for which the citing entity express derision
4945    IsDeridedBy,
4946    /// The cited entity is described by the citing entity
4947    IsDescribedBy,
4948    /// The cited entity presents statements, ideas or conclusions that are disagreed with by the citing entity
4949    IsDisagreedWithBy,
4950    /// The cited entity presents statements, ideas or conclusions that are discussed by the citing entity
4951    IsDiscussedBy,
4952    /// The cited entity presents statements, ideas or conclusions that are disputed by the citing entity
4953    IsDisputedBy,
4954    /// Information about the cited entity is documented by the citing entity
4955    IsDocumentedBy,
4956    /// The cited entity presents facts, ideas or understandings that are extended by the citing entity
4957    IsExtendedBy,
4958    /// The cited entity is the target for an HTTP Uniform Resource Locator (URL) link within the citing entity
4959    IsLinkedToBy,
4960    /// The characteristic style or content of the cited entity is imitated by the citing entity for comic effect, usually without explicit citation
4961    IsParodiedBy,
4962    /// The cited entity is plagiarized by the author of the citing entity, who includes within the citing entity textual or other elements from the cited entity without formal acknowledgement of their source
4963    IsPlagiarizedBy,
4964    /// The cited entity presents statements, ideas or conclusions that are qualified or have conditions placed upon them by the citing entity
4965    IsQualifiedBy,
4966    /// The cited entity presents statements, ideas or conclusions that are refuted by the citing entity
4967    IsRefutedBy,
4968    /// The cited entity is formally retracted by the citing entity
4969    IsRetractedBy,
4970    /// The cited entity presents statements, ideas or conclusions that are reviewed by the citing entity
4971    IsReviewedBy,
4972    /// The cited entity or aspects of its contents are ridiculed by the citing entity
4973    IsRidiculedBy,
4974    /// The cited entity is cited because the citing article contains speculations on its content or ideas
4975    IsSpeculatedOnBy,
4976    /// The cited entity receives intellectual or factual support from the citing entity
4977    IsSupportedBy,
4978    /// The cited entity presents statements, ideas, hypotheses or understanding that are updated by the cited entity
4979    IsUpdatedBy,
4980    /// A property that permits you to express appreciation of or interest in something that is the object of the RDF triple, or to express that it is worth thinking about even if you do not agree with its content, enabling social media 'likes' statements to be encoded in RDF
4981    Likes,
4982    /// The citing entity provides a link, in the form of an HTTP Uniform Resource Locator (URL), to the cited entity
4983    LinksTo,
4984    /// The citing entity obtains background information from the cited entity
4985    ObtainsBackgroundFrom,
4986    /// The citing entity obtains intellectual or factual support from the cited entity
4987    ObtainsSupportFrom,
4988    /// The citing entity imitates the characteristic style or content of the cited entity for comic effect, usually without explicit citation
4989    Parodies,
4990    /// A property indicating that the author of the citing entity plagiarizes the cited entity, by including textual or other elements from the cited entity without formal acknowledgement of their source
4991    Plagiarizes,
4992    /// The cited entity contains and is the original source of a statement of fact or a logical assertion (or a collection of such facts and/or assertions) that is to be found in the citing entity
4993    ProvidesAssertionFor,
4994    /// The cited entity presents conclusions that are used in work described in the citing entity
4995    ProvidesConclusionsFor,
4996    /// The cited entity presents data that are used in work described in the citing entity
4997    ProvidesDataFor,
4998    /// The cited entity contains information, usually of a textual nature, that is excerpted by (used as an excerpt within) the citing entity
4999    ProvidesExcerptFor,
5000    /// The cited entity details a method that is used in work described by the citing entity
5001    ProvidesMethodFor,
5002    /// The cited entity contains information, usually of a textual nature, that is quoted by (used as a quotation within) the citing entity
5003    ProvidesQuotationFor,
5004    /// The citing entity qualifies or places conditions or restrictions upon statements, ideas or conclusions presented in the cited entity
5005    Qualifies,
5006    /// The citing entity refutes statements, ideas or conclusions presented in the cited entity
5007    Refutes,
5008    /// The citing entity replies to statements, ideas or criticisms presented in the cited entity
5009    RepliesTo,
5010    /// The citing entity constitutes a formal retraction of the cited entity
5011    Retracts,
5012    /// The citing entity reviews statements, ideas or conclusions presented in the cited entity
5013    Reviews,
5014    /// The citing entity ridicules the cited entity or aspects of its contents
5015    Ridicules,
5016    /// Each entity has at least one author that shares a common institutional affiliation with an author of the other entity
5017    SharesAuthorInstitutionWith,
5018    /// Each entity has at least one author in common with the other entity
5019    SharesAuthorWith,
5020    /// The two entities result from activities that have been funded by the same funding agency
5021    SharesFundingAgencyWith,
5022    /// The citing and cited bibliographic resources are published in the same journal
5023    SharesJournalWith,
5024    /// The citing and cited bibliographic resources are published in same publication venue
5025    SharesPublicationVenueWith,
5026    /// The citing entity speculates on something within or related to the cited entity, without firm evidence
5027    SpeculatesOn,
5028    /// The citing entity provides intellectual or factual support for statements, ideas or conclusions presented in the cited entity
5029    Supports,
5030    /// The citing entity updates statements, ideas, hypotheses or understanding presented in the cited entity
5031    Updates,
5032    /// The citing entity describes work that uses conclusions presented in the cited entity
5033    UsesConclusionsFrom,
5034    /// The citing entity describes work that uses data presented in the cited entity
5035    UsesDataFrom,
5036    /// The citing entity describes work that uses a method detailed in the cited entity
5037    UsesMethodIn,
5038}
5039
5040/*********************************************************************
5041 * Enums for "union" schemas
5042 ********************************************************************/
5043  
5044/// Union type for valid block content.
5045#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
5046#[serde(untagged)]
5047pub enum BlockContent {
5048    Claim(ClaimSimple),
5049    CodeBlock(CodeBlock),
5050    CodeChunk(CodeChunk),
5051    Collection(CollectionSimple),
5052    Figure(FigureSimple),
5053    Heading(Heading),
5054    Include(Include),
5055    List(List),
5056    MathBlock(MathBlock),
5057    Paragraph(Paragraph),
5058    QuoteBlock(QuoteBlock),
5059    Table(TableSimple),
5060    ThematicBreak(ThematicBreak),
5061}
5062
5063/// All type schemas that are derived from CodeExecutable
5064#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
5065#[serde(untagged)]
5066pub enum CodeExecutableTypes {
5067    CodeExecutable(CodeExecutable),
5068    CodeChunk(CodeChunk),
5069    CodeExpression(CodeExpression),
5070}
5071
5072/// All type schemas that are derived from Code
5073#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
5074#[serde(untagged)]
5075pub enum CodeTypes {
5076    Code(Code),
5077    CodeBlock(CodeBlock),
5078    CodeChunk(CodeChunk),
5079    CodeExecutable(CodeExecutable),
5080    CodeExpression(CodeExpression),
5081    CodeFragment(CodeFragment),
5082}
5083
5084/// All type schemas that are derived from ContactPoint
5085#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
5086#[serde(untagged)]
5087pub enum ContactPointTypes {
5088    ContactPoint(ContactPoint),
5089    PostalAddress(PostalAddress),
5090}
5091
5092/// All type schemas that are derived from CreativeWork
5093#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
5094#[serde(untagged)]
5095pub enum CreativeWorkTypes {
5096    CreativeWork(CreativeWork),
5097    Article(Article),
5098    AudioObject(AudioObject),
5099    Claim(Claim),
5100    Collection(Collection),
5101    Comment(Comment),
5102    Datatable(Datatable),
5103    Figure(Figure),
5104    ImageObject(ImageObject),
5105    MediaObject(MediaObject),
5106    Periodical(Periodical),
5107    PublicationIssue(PublicationIssue),
5108    PublicationVolume(PublicationVolume),
5109    Review(Review),
5110    SoftwareApplication(SoftwareApplication),
5111    SoftwareSourceCode(SoftwareSourceCode),
5112    Table(Table),
5113    VideoObject(VideoObject),
5114}
5115
5116/// All type schemas that are derived from Entity
5117#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
5118#[serde(untagged)]
5119pub enum EntityTypes {
5120    Entity(Entity),
5121    ArrayValidator(ArrayValidator),
5122    Article(Article),
5123    AudioObject(AudioObject),
5124    BooleanValidator(BooleanValidator),
5125    Brand(Brand),
5126    CitationIntentEnumeration(CitationIntentEnumeration),
5127    Cite(Cite),
5128    CiteGroup(CiteGroup),
5129    Claim(Claim),
5130    Code(Code),
5131    CodeBlock(CodeBlock),
5132    CodeChunk(CodeChunk),
5133    CodeError(CodeError),
5134    CodeExecutable(CodeExecutable),
5135    CodeExpression(CodeExpression),
5136    CodeFragment(CodeFragment),
5137    Collection(Collection),
5138    Comment(Comment),
5139    ConstantValidator(ConstantValidator),
5140    ContactPoint(ContactPoint),
5141    CreativeWork(CreativeWork),
5142    Datatable(Datatable),
5143    DatatableColumn(DatatableColumn),
5144    Date(Date),
5145    DefinedTerm(DefinedTerm),
5146    Delete(Delete),
5147    Emphasis(Emphasis),
5148    EnumValidator(EnumValidator),
5149    Enumeration(Enumeration),
5150    Figure(Figure),
5151    Function(Function),
5152    Grant(Grant),
5153    Heading(Heading),
5154    ImageObject(ImageObject),
5155    Include(Include),
5156    IntegerValidator(IntegerValidator),
5157    Link(Link),
5158    List(List),
5159    ListItem(ListItem),
5160    Mark(Mark),
5161    Math(Math),
5162    MathBlock(MathBlock),
5163    MathFragment(MathFragment),
5164    MediaObject(MediaObject),
5165    MonetaryGrant(MonetaryGrant),
5166    NontextualAnnotation(NontextualAnnotation),
5167    Note(Note),
5168    NumberValidator(NumberValidator),
5169    Organization(Organization),
5170    Paragraph(Paragraph),
5171    Parameter(Parameter),
5172    Periodical(Periodical),
5173    Person(Person),
5174    PostalAddress(PostalAddress),
5175    Product(Product),
5176    PropertyValue(PropertyValue),
5177    PublicationIssue(PublicationIssue),
5178    PublicationVolume(PublicationVolume),
5179    Quote(Quote),
5180    QuoteBlock(QuoteBlock),
5181    Review(Review),
5182    SoftwareApplication(SoftwareApplication),
5183    SoftwareEnvironment(SoftwareEnvironment),
5184    SoftwareSession(SoftwareSession),
5185    SoftwareSourceCode(SoftwareSourceCode),
5186    StringValidator(StringValidator),
5187    Strong(Strong),
5188    Subscript(Subscript),
5189    Superscript(Superscript),
5190    Table(Table),
5191    TableCell(TableCell),
5192    TableRow(TableRow),
5193    ThematicBreak(ThematicBreak),
5194    Thing(Thing),
5195    TupleValidator(TupleValidator),
5196    Validator(Validator),
5197    Variable(Variable),
5198    VideoObject(VideoObject),
5199    VolumeMount(VolumeMount),
5200}
5201
5202/// All type schemas that are derived from Enumeration
5203#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
5204#[serde(untagged)]
5205pub enum EnumerationTypes {
5206    Enumeration(Enumeration),
5207    CitationIntentEnumeration(CitationIntentEnumeration),
5208}
5209
5210/// All type schemas that are derived from Grant
5211#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
5212#[serde(untagged)]
5213pub enum GrantTypes {
5214    Grant(Grant),
5215    MonetaryGrant(MonetaryGrant),
5216}
5217
5218/// Union type for valid inline content.
5219#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
5220#[serde(untagged)]
5221pub enum InlineContent {
5222    AudioObject(AudioObjectSimple),
5223    Cite(Cite),
5224    CiteGroup(CiteGroup),
5225    CodeExpression(CodeExpression),
5226    CodeFragment(CodeFragment),
5227    Delete(Delete),
5228    Emphasis(Emphasis),
5229    ImageObject(ImageObjectSimple),
5230    Link(Link),
5231    MathFragment(MathFragment),
5232    NontextualAnnotation(NontextualAnnotation),
5233    Note(Note),
5234    Parameter(Parameter),
5235    Quote(Quote),
5236    Strong(Strong),
5237    Subscript(Subscript),
5238    Superscript(Superscript),
5239    VideoObject(VideoObjectSimple),
5240    Null(Null),
5241    Boolean(Boolean),
5242    Integer(Integer),
5243    Number(Number),
5244    String(String),
5245}
5246
5247/// All type schemas that are derived from Mark
5248#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
5249#[serde(untagged)]
5250pub enum MarkTypes {
5251    Mark(Mark),
5252    Delete(Delete),
5253    Emphasis(Emphasis),
5254    NontextualAnnotation(NontextualAnnotation),
5255    Quote(Quote),
5256    Strong(Strong),
5257    Subscript(Subscript),
5258    Superscript(Superscript),
5259}
5260
5261/// All type schemas that are derived from Math
5262#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
5263#[serde(untagged)]
5264pub enum MathTypes {
5265    Math(Math),
5266    MathBlock(MathBlock),
5267    MathFragment(MathFragment),
5268}
5269
5270/// All type schemas that are derived from MediaObject
5271#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
5272#[serde(untagged)]
5273pub enum MediaObjectTypes {
5274    MediaObject(MediaObject),
5275    AudioObject(AudioObject),
5276    ImageObject(ImageObject),
5277    VideoObject(VideoObject),
5278}
5279
5280/// Union type for all schema nodes, including primitives and entities
5281#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
5282#[serde(untagged)]
5283pub enum Node {
5284    Entity(Entity),
5285    ArrayValidator(ArrayValidator),
5286    Article(Article),
5287    AudioObject(AudioObject),
5288    BooleanValidator(BooleanValidator),
5289    Brand(Brand),
5290    CitationIntentEnumeration(CitationIntentEnumeration),
5291    Cite(Cite),
5292    CiteGroup(CiteGroup),
5293    Claim(Claim),
5294    Code(Code),
5295    CodeBlock(CodeBlock),
5296    CodeChunk(CodeChunk),
5297    CodeError(CodeError),
5298    CodeExecutable(CodeExecutable),
5299    CodeExpression(CodeExpression),
5300    CodeFragment(CodeFragment),
5301    Collection(Collection),
5302    Comment(Comment),
5303    ConstantValidator(ConstantValidator),
5304    ContactPoint(ContactPoint),
5305    CreativeWork(CreativeWork),
5306    Datatable(Datatable),
5307    DatatableColumn(DatatableColumn),
5308    Date(Date),
5309    DefinedTerm(DefinedTerm),
5310    Delete(Delete),
5311    Emphasis(Emphasis),
5312    EnumValidator(EnumValidator),
5313    Enumeration(Enumeration),
5314    Figure(Figure),
5315    Function(Function),
5316    Grant(Grant),
5317    Heading(Heading),
5318    ImageObject(ImageObject),
5319    Include(Include),
5320    IntegerValidator(IntegerValidator),
5321    Link(Link),
5322    List(List),
5323    ListItem(ListItem),
5324    Mark(Mark),
5325    Math(Math),
5326    MathBlock(MathBlock),
5327    MathFragment(MathFragment),
5328    MediaObject(MediaObject),
5329    MonetaryGrant(MonetaryGrant),
5330    NontextualAnnotation(NontextualAnnotation),
5331    Note(Note),
5332    NumberValidator(NumberValidator),
5333    Organization(Organization),
5334    Paragraph(Paragraph),
5335    Parameter(Parameter),
5336    Periodical(Periodical),
5337    Person(Person),
5338    PostalAddress(PostalAddress),
5339    Product(Product),
5340    PropertyValue(PropertyValue),
5341    PublicationIssue(PublicationIssue),
5342    PublicationVolume(PublicationVolume),
5343    Quote(Quote),
5344    QuoteBlock(QuoteBlock),
5345    Review(Review),
5346    SoftwareApplication(SoftwareApplication),
5347    SoftwareEnvironment(SoftwareEnvironment),
5348    SoftwareSession(SoftwareSession),
5349    SoftwareSourceCode(SoftwareSourceCode),
5350    StringValidator(StringValidator),
5351    Strong(Strong),
5352    Subscript(Subscript),
5353    Superscript(Superscript),
5354    Table(Table),
5355    TableCell(TableCell),
5356    TableRow(TableRow),
5357    ThematicBreak(ThematicBreak),
5358    Thing(Thing),
5359    TupleValidator(TupleValidator),
5360    Validator(Validator),
5361    Variable(Variable),
5362    VideoObject(VideoObject),
5363    VolumeMount(VolumeMount),
5364    Null(Null),
5365    Boolean(Boolean),
5366    Integer(Integer),
5367    Number(Number),
5368    String(String),
5369    Object(Object),
5370    Array(Array),
5371}
5372
5373/// All type schemas that are derived from Thing
5374#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
5375#[serde(untagged)]
5376pub enum ThingTypes {
5377    Thing(Thing),
5378    Article(Article),
5379    AudioObject(AudioObject),
5380    Brand(Brand),
5381    CitationIntentEnumeration(CitationIntentEnumeration),
5382    Claim(Claim),
5383    Collection(Collection),
5384    Comment(Comment),
5385    ContactPoint(ContactPoint),
5386    CreativeWork(CreativeWork),
5387    Datatable(Datatable),
5388    DatatableColumn(DatatableColumn),
5389    DefinedTerm(DefinedTerm),
5390    Enumeration(Enumeration),
5391    Figure(Figure),
5392    Grant(Grant),
5393    ImageObject(ImageObject),
5394    ListItem(ListItem),
5395    MediaObject(MediaObject),
5396    MonetaryGrant(MonetaryGrant),
5397    Organization(Organization),
5398    Periodical(Periodical),
5399    Person(Person),
5400    PostalAddress(PostalAddress),
5401    Product(Product),
5402    PropertyValue(PropertyValue),
5403    PublicationIssue(PublicationIssue),
5404    PublicationVolume(PublicationVolume),
5405    Review(Review),
5406    SoftwareApplication(SoftwareApplication),
5407    SoftwareEnvironment(SoftwareEnvironment),
5408    SoftwareSession(SoftwareSession),
5409    SoftwareSourceCode(SoftwareSourceCode),
5410    Table(Table),
5411    VideoObject(VideoObject),
5412    VolumeMount(VolumeMount),
5413}
5414
5415/// All type schemas that are derived from Validator
5416#[derive(Clone, Debug, AsRefStr, Serialize, Deserialize)]
5417#[serde(untagged)]
5418pub enum ValidatorTypes {
5419    Validator(Validator),
5420    ArrayValidator(ArrayValidator),
5421    BooleanValidator(BooleanValidator),
5422    ConstantValidator(ConstantValidator),
5423    EnumValidator(EnumValidator),
5424    IntegerValidator(IntegerValidator),
5425    NumberValidator(NumberValidator),
5426    StringValidator(StringValidator),
5427    TupleValidator(TupleValidator),
5428}