fhirbolt_model/generated/r4b/resources/
endpoint.rs

1// Generated on 2023-05-17 by fhirbolt-codegen v0.10.0
2#[doc = "The technical details of an endpoint that can be used for electronic services, such as for web services providing XDS.b or a REST endpoint for another FHIR server. This may include any security context information."]
3#[derive(Debug, Clone, PartialEq)]
4pub struct Endpoint {
5    #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
6    pub r#id: Option<super::super::types::Id>,
7    #[doc = "The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource."]
8    pub r#meta: Option<Box<super::super::types::Meta>>,
9    #[doc = "A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc."]
10    pub r#implicit_rules: Option<super::super::types::Uri>,
11    #[doc = "The base language in which the resource is written."]
12    pub r#language: Option<super::super::types::Code>,
13    #[doc = "A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety."]
14    pub r#text: Option<Box<super::super::types::Narrative>>,
15    #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
16    pub r#contained: Vec<super::super::Resource>,
17    #[doc = "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
18    pub r#extension: Vec<super::super::types::Extension>,
19    #[doc = "May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
20    pub r#modifier_extension: Vec<super::super::types::Extension>,
21    #[doc = "Identifier for the organization that is used to identify the endpoint across multiple disparate systems."]
22    pub r#identifier: Vec<super::super::types::Identifier>,
23    #[doc = "active | suspended | error | off | test."]
24    pub r#status: super::super::types::Code,
25    #[doc = "A coded value that represents the technical details of the usage of this endpoint, such as what WSDLs should be used in what way. (e.g. XDS.b/DICOM/cds-hook)."]
26    pub r#connection_type: Box<super::super::types::Coding>,
27    #[doc = "A friendly name that this endpoint can be referred to with."]
28    pub r#name: Option<super::super::types::String>,
29    #[doc = "The organization that manages this endpoint (even if technically another organization is hosting this in the cloud, it is the organization associated with the data)."]
30    pub r#managing_organization: Option<Box<super::super::types::Reference>>,
31    #[doc = "Contact details for a human to contact about the subscription. The primary use of this for system administrator troubleshooting."]
32    pub r#contact: Vec<super::super::types::ContactPoint>,
33    #[doc = "The interval during which the endpoint is expected to be operational."]
34    pub r#period: Option<Box<super::super::types::Period>>,
35    #[doc = "The payload type describes the acceptable content that can be communicated on the endpoint."]
36    pub r#payload_type: Vec<super::super::types::CodeableConcept>,
37    #[doc = "The mime type to send the payload in - e.g. application/fhir+xml, application/fhir+json. If the mime type is not specified, then the sender could send any content (including no content depending on the connectionType)."]
38    pub r#payload_mime_type: Vec<super::super::types::Code>,
39    #[doc = "The uri that describes the actual end-point to connect to."]
40    pub r#address: super::super::types::Url,
41    #[doc = "Additional headers / information to send as part of the notification."]
42    pub r#header: Vec<super::super::types::String>,
43}
44#[allow(clippy::derivable_impls)]
45impl Default for Endpoint {
46    fn default() -> Self {
47        Self {
48            r#id: Default::default(),
49            r#meta: Default::default(),
50            r#implicit_rules: Default::default(),
51            r#language: Default::default(),
52            r#text: Default::default(),
53            r#contained: Default::default(),
54            r#extension: Default::default(),
55            r#modifier_extension: Default::default(),
56            r#identifier: Default::default(),
57            r#status: super::super::types::Code {
58                id: Some("$invalid".to_string()),
59                ..Default::default()
60            },
61            r#connection_type: Box::new(super::super::types::Coding {
62                id: Some("$invalid".to_string()),
63                ..Default::default()
64            }),
65            r#name: Default::default(),
66            r#managing_organization: Default::default(),
67            r#contact: Default::default(),
68            r#period: Default::default(),
69            r#payload_type: Default::default(),
70            r#payload_mime_type: Default::default(),
71            r#address: super::super::types::Url {
72                id: Some("$invalid".to_string()),
73                ..Default::default()
74            },
75            r#header: Default::default(),
76        }
77    }
78}