1use crate::prelude::*;
2
3#[derive(Resource, Debug, Clone, Default)]
4#[fhir(base="DomainResource")]
5pub struct SubscriptionTopic {
6 #[fhir(name="id", min="0", max="1", summary=true, modifier=false, choice="")]
8 pub id: Option<Id>,
9 #[fhir(name="meta", min="0", max="1", summary=true, modifier=false, choice="")]
11 pub meta: Option<Meta>,
12 #[fhir(name="implicitRules", min="0", max="1", summary=true, modifier=true)]
14 pub implicit_rules: Option<UriDt>,
15 #[fhir(name="language", min="0", max="1", summary=false, modifier=false, choice="")]
17 pub language: Option<CodeDt>,
18 #[fhir(name="text", min="0", max="1", summary=false, modifier=false, choice="")]
20 pub text: Option<Narrative>,
21 #[fhir(name="contained", min="0", max="*", summary=false, modifier=false, choice="")]
23 pub contained: Option<Vec<AnyResource>>,
24 #[fhir(name="extension", min="0", max="*", summary=false, modifier=false, choice="")]
26 pub extension: Option<Vec<Extension>>,
27 #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
29 pub modifier_extension: Option<Vec<Extension>>,
30 #[fhir(name="url", min="1", max="1", summary=true, modifier=false, choice="")]
32 pub url: Option<UriDt>,
33 #[fhir(name="identifier", min="0", max="*", summary=true, modifier=false, choice="")]
35 pub identifier: Option<Vec<Identifier>>,
36 #[fhir(name="version", min="0", max="1", summary=true, modifier=false, choice="")]
38 pub version: Option<StringDt>,
39 #[fhir(name="versionAlgorithm", min="0", max="1", summary=true, modifier=false, choice="")]
41 pub version_algorithm: Option<Coding>,
42 #[fhir(name="name", min="0", max="1", summary=true, modifier=false, choice="")]
44 pub name: Option<StringDt>,
45 #[fhir(name="title", min="0", max="1", summary=true, modifier=false, choice="")]
47 pub title: Option<StringDt>,
48 #[fhir(name="derivedFrom", min="0", max="*", summary=true, modifier=false, choice="")]
50 pub derived_from: Option<Vec<CanonicalDt>>,
51 #[fhir(name="status", min="1", max="1", summary=true, modifier=true)]
53 pub status: Option<CodeDt>,
54 #[fhir(name="experimental", min="0", max="1", summary=true, modifier=false, choice="")]
56 pub experimental: Option<BooleanDt>,
57 #[fhir(name="date", min="0", max="1", summary=true, modifier=false, choice="")]
59 pub date: Option<DateTimeDt>,
60 #[fhir(name="publisher", min="0", max="1", summary=true, modifier=false, choice="")]
62 pub publisher: Option<StringDt>,
63 #[fhir(name="contact", min="0", max="*", summary=true, modifier=false, choice="")]
65 pub contact: Option<Vec<ContactDetail>>,
66 #[fhir(name="description", min="0", max="1", summary=false, modifier=false, choice="")]
68 pub description: Option<MarkdownDt>,
69 #[fhir(name="useContext", min="0", max="*", summary=true, modifier=false, choice="")]
71 pub use_context: Option<Vec<UsageContext>>,
72 #[fhir(name="jurisdiction", min="0", max="*", summary=true, modifier=false, choice="")]
74 pub jurisdiction: Option<Vec<CodeableConcept>>,
75 #[fhir(name="purpose", min="0", max="1", summary=false, modifier=false, choice="")]
77 pub purpose: Option<MarkdownDt>,
78 #[fhir(name="copyright", min="0", max="1", summary=false, modifier=false, choice="")]
80 pub copyright: Option<MarkdownDt>,
81 #[fhir(name="copyrightLabel", min="0", max="1", summary=false, modifier=false, choice="")]
83 pub copyright_label: Option<StringDt>,
84 #[fhir(name="approvalDate", min="0", max="1", summary=false, modifier=false, choice="")]
86 pub approval_date: Option<DateDt>,
87 #[fhir(name="lastReviewDate", min="0", max="1", summary=false, modifier=false, choice="")]
89 pub last_review_date: Option<DateDt>,
90 #[fhir(name="effectivePeriod", min="0", max="1", summary=true, modifier=false, choice="")]
92 pub effective_period: Option<Period>,
93 #[fhir(name="resourceTrigger", min="0", max="*", summary=true, modifier=false, choice="")]
95 pub resource_trigger: Option<Vec<SubscriptionTopicResourceTriggerBackboneElement>>,
96 #[fhir(name="eventTrigger", min="0", max="*", summary=true, modifier=false, choice="")]
98 pub event_trigger: Option<Vec<SubscriptionTopicEventTriggerBackboneElement>>,
99 #[fhir(name="canFilterBy", min="0", max="*", summary=true, modifier=false, choice="")]
101 pub can_filter_by: Option<Vec<SubscriptionTopicCanFilterByBackboneElement>>,
102 #[fhir(name="notificationShape", min="0", max="*", summary=true, modifier=false, choice="")]
104 pub notification_shape: Option<Vec<SubscriptionTopicNotificationShapeBackboneElement>>,
105}
106
107#[derive(Element, BackboneElement, Debug, Clone, Default)]
108pub struct SubscriptionTopicEventTriggerBackboneElement {
109 #[fhir(name="id", min="0", max="1", summary=false, modifier=false, choice="")]
111 pub id: Option<String>,
112 #[fhir(name="extension", min="0", max="*", summary=false, modifier=false, choice="")]
114 pub extension: Option<Vec<Extension>>,
115 #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
117 pub modifier_extension: Option<Vec<Extension>>,
118 #[fhir(name="description", min="0", max="1", summary=true, modifier=false, choice="")]
120 pub description: Option<MarkdownDt>,
121 #[fhir(name="event", min="1", max="1", summary=true, modifier=false, choice="")]
123 pub event: Option<CodeableConcept>,
124 #[fhir(name="resource", min="1", max="1", summary=true, modifier=false, choice="")]
126 pub resource: Option<UriDt>,
127}
128
129#[derive(Element, BackboneElement, Debug, Clone, Default)]
130pub struct SubscriptionTopicCanFilterByBackboneElement {
131 #[fhir(name="id", min="0", max="1", summary=false, modifier=false, choice="")]
133 pub id: Option<String>,
134 #[fhir(name="extension", min="0", max="*", summary=false, modifier=false, choice="")]
136 pub extension: Option<Vec<Extension>>,
137 #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
139 pub modifier_extension: Option<Vec<Extension>>,
140 #[fhir(name="description", min="0", max="1", summary=true, modifier=false, choice="")]
142 pub description: Option<MarkdownDt>,
143 #[fhir(name="resource", min="0", max="1", summary=true, modifier=false, choice="")]
145 pub resource: Option<UriDt>,
146 #[fhir(name="filterParameter", min="1", max="1", summary=true, modifier=false, choice="")]
148 pub filter_parameter: Option<StringDt>,
149 #[fhir(name="filterDefinition", min="0", max="1", summary=true, modifier=false, choice="")]
151 pub filter_definition: Option<UriDt>,
152 #[fhir(name="comparator", min="0", max="*", summary=false, modifier=false, choice="")]
154 pub comparator: Option<Vec<CodeDt>>,
155 #[fhir(name="modifier", min="0", max="*", summary=false, modifier=false, choice="")]
157 pub modifier: Option<Vec<CodeDt>>,
158}
159
160#[derive(Element, BackboneElement, Debug, Clone, Default)]
161pub struct SubscriptionTopicResourceTriggerBackboneElement {
162 #[fhir(name="id", min="0", max="1", summary=false, modifier=false, choice="")]
164 pub id: Option<String>,
165 #[fhir(name="extension", min="0", max="*", summary=false, modifier=false, choice="")]
167 pub extension: Option<Vec<Extension>>,
168 #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
170 pub modifier_extension: Option<Vec<Extension>>,
171 #[fhir(name="description", min="0", max="1", summary=true, modifier=false, choice="")]
173 pub description: Option<MarkdownDt>,
174 #[fhir(name="resource", min="1", max="1", summary=true, modifier=false, choice="")]
176 pub resource: Option<UriDt>,
177 #[fhir(name="supportedInteraction", min="0", max="*", summary=true, modifier=false, choice="")]
179 pub supported_interaction: Option<Vec<CodeDt>>,
180 #[fhir(name="queryCriteria", min="0", max="1", summary=true, modifier=false, choice="")]
182 pub query_criteria: Option<SubscriptionTopicResourceTriggerQueryCriteriaBackboneElement>,
183 #[fhir(name="fhirPathCriteria", min="0", max="1", summary=true, modifier=false, choice="")]
185 pub fhir_path_criteria: Option<StringDt>,
186}
187
188#[derive(Element, BackboneElement, Debug, Clone, Default)]
189pub struct SubscriptionTopicResourceTriggerQueryCriteriaBackboneElement {
190 #[fhir(name="id", min="0", max="1", summary=false, modifier=false, choice="")]
192 pub id: Option<String>,
193 #[fhir(name="extension", min="0", max="*", summary=false, modifier=false, choice="")]
195 pub extension: Option<Vec<Extension>>,
196 #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
198 pub modifier_extension: Option<Vec<Extension>>,
199 #[fhir(name="previous", min="0", max="1", summary=true, modifier=false, choice="")]
201 pub previous: Option<StringDt>,
202 #[fhir(name="resultForCreate", min="0", max="1", summary=true, modifier=false, choice="")]
204 pub result_for_create: Option<CodeDt>,
205 #[fhir(name="current", min="0", max="1", summary=true, modifier=false, choice="")]
207 pub current: Option<StringDt>,
208 #[fhir(name="resultForDelete", min="0", max="1", summary=true, modifier=false, choice="")]
210 pub result_for_delete: Option<CodeDt>,
211 #[fhir(name="requireBoth", min="0", max="1", summary=true, modifier=false, choice="")]
213 pub require_both: Option<BooleanDt>,
214}
215
216#[derive(Element, BackboneElement, Debug, Clone, Default)]
217pub struct SubscriptionTopicNotificationShapeBackboneElement {
218 #[fhir(name="id", min="0", max="1", summary=false, modifier=false, choice="")]
220 pub id: Option<String>,
221 #[fhir(name="extension", min="0", max="*", summary=false, modifier=false, choice="")]
223 pub extension: Option<Vec<Extension>>,
224 #[fhir(name="modifierExtension", min="0", max="*", summary=true, modifier=true)]
226 pub modifier_extension: Option<Vec<Extension>>,
227 #[fhir(name="resource", min="1", max="1", summary=true, modifier=false, choice="")]
229 pub resource: Option<UriDt>,
230 #[fhir(name="include", min="0", max="*", summary=true, modifier=false, choice="")]
232 pub include: Option<Vec<StringDt>>,
233 #[fhir(name="revInclude", min="0", max="*", summary=true, modifier=false, choice="")]
235 pub rev_include: Option<Vec<StringDt>>,
236}
237