001package org.hl7.fhir.r4.model;
002
003/*
004  Copyright (c) 2011+, HL7, Inc.
005  All rights reserved.
006  
007  Redistribution and use in source and binary forms, with or without modification, 
008  are permitted provided that the following conditions are met:
009  
010   * Redistributions of source code must retain the above copyright notice, this 
011     list of conditions and the following disclaimer.
012   * Redistributions in binary form must reproduce the above copyright notice, 
013     this list of conditions and the following disclaimer in the documentation 
014     and/or other materials provided with the distribution.
015   * Neither the name of HL7 nor the names of its contributors may be used to 
016     endorse or promote products derived from this software without specific 
017     prior written permission.
018  
019  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
020  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
021  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
022  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
023  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
024  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
025  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
026  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
027  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
028  POSSIBILITY OF SUCH DAMAGE.
029  
030*/
031
032// Generated on Sun, May 6, 2018 17:51-0400 for FHIR v3.4.0
033
034import java.util.*;
035
036import org.hl7.fhir.utilities.Utilities;
037import org.hl7.fhir.r4.model.Enumerations.*;
038import ca.uhn.fhir.model.api.annotation.ResourceDef;
039import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
040import ca.uhn.fhir.model.api.annotation.Child;
041import ca.uhn.fhir.model.api.annotation.ChildOrder;
042import ca.uhn.fhir.model.api.annotation.Description;
043import ca.uhn.fhir.model.api.annotation.Block;
044import org.hl7.fhir.instance.model.api.*;
045import org.hl7.fhir.exceptions.FHIRException;
046/**
047 * 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.
048 */
049@ResourceDef(name="Endpoint", profile="http://hl7.org/fhir/Profile/Endpoint")
050public class Endpoint extends DomainResource {
051
052    public enum EndpointStatus {
053        /**
054         * This endpoint is expected to be active and can be used
055         */
056        ACTIVE, 
057        /**
058         * This endpoint is temporarily unavailable
059         */
060        SUSPENDED, 
061        /**
062         * This endpoint has exceeded connectivity thresholds and is considered in an error state and should no longer be attempted to connect to until corrective action is taken
063         */
064        ERROR, 
065        /**
066         * This endpoint is no longer to be used
067         */
068        OFF, 
069        /**
070         * This instance should not have been part of this patient's medical record.
071         */
072        ENTEREDINERROR, 
073        /**
074         * This endpoint is not intended for production usage.
075         */
076        TEST, 
077        /**
078         * added to help the parsers with the generic types
079         */
080        NULL;
081        public static EndpointStatus fromCode(String codeString) throws FHIRException {
082            if (codeString == null || "".equals(codeString))
083                return null;
084        if ("active".equals(codeString))
085          return ACTIVE;
086        if ("suspended".equals(codeString))
087          return SUSPENDED;
088        if ("error".equals(codeString))
089          return ERROR;
090        if ("off".equals(codeString))
091          return OFF;
092        if ("entered-in-error".equals(codeString))
093          return ENTEREDINERROR;
094        if ("test".equals(codeString))
095          return TEST;
096        if (Configuration.isAcceptInvalidEnums())
097          return null;
098        else
099          throw new FHIRException("Unknown EndpointStatus code '"+codeString+"'");
100        }
101        public String toCode() {
102          switch (this) {
103            case ACTIVE: return "active";
104            case SUSPENDED: return "suspended";
105            case ERROR: return "error";
106            case OFF: return "off";
107            case ENTEREDINERROR: return "entered-in-error";
108            case TEST: return "test";
109            default: return "?";
110          }
111        }
112        public String getSystem() {
113          switch (this) {
114            case ACTIVE: return "http://hl7.org/fhir/endpoint-status";
115            case SUSPENDED: return "http://hl7.org/fhir/endpoint-status";
116            case ERROR: return "http://hl7.org/fhir/endpoint-status";
117            case OFF: return "http://hl7.org/fhir/endpoint-status";
118            case ENTEREDINERROR: return "http://hl7.org/fhir/endpoint-status";
119            case TEST: return "http://hl7.org/fhir/endpoint-status";
120            default: return "?";
121          }
122        }
123        public String getDefinition() {
124          switch (this) {
125            case ACTIVE: return "This endpoint is expected to be active and can be used";
126            case SUSPENDED: return "This endpoint is temporarily unavailable";
127            case ERROR: return "This endpoint has exceeded connectivity thresholds and is considered in an error state and should no longer be attempted to connect to until corrective action is taken";
128            case OFF: return "This endpoint is no longer to be used";
129            case ENTEREDINERROR: return "This instance should not have been part of this patient's medical record.";
130            case TEST: return "This endpoint is not intended for production usage.";
131            default: return "?";
132          }
133        }
134        public String getDisplay() {
135          switch (this) {
136            case ACTIVE: return "Active";
137            case SUSPENDED: return "Suspended";
138            case ERROR: return "Error";
139            case OFF: return "Off";
140            case ENTEREDINERROR: return "Entered in error";
141            case TEST: return "Test";
142            default: return "?";
143          }
144        }
145    }
146
147  public static class EndpointStatusEnumFactory implements EnumFactory<EndpointStatus> {
148    public EndpointStatus fromCode(String codeString) throws IllegalArgumentException {
149      if (codeString == null || "".equals(codeString))
150            if (codeString == null || "".equals(codeString))
151                return null;
152        if ("active".equals(codeString))
153          return EndpointStatus.ACTIVE;
154        if ("suspended".equals(codeString))
155          return EndpointStatus.SUSPENDED;
156        if ("error".equals(codeString))
157          return EndpointStatus.ERROR;
158        if ("off".equals(codeString))
159          return EndpointStatus.OFF;
160        if ("entered-in-error".equals(codeString))
161          return EndpointStatus.ENTEREDINERROR;
162        if ("test".equals(codeString))
163          return EndpointStatus.TEST;
164        throw new IllegalArgumentException("Unknown EndpointStatus code '"+codeString+"'");
165        }
166        public Enumeration<EndpointStatus> fromType(Base code) throws FHIRException {
167          if (code == null)
168            return null;
169          if (code.isEmpty())
170            return new Enumeration<EndpointStatus>(this);
171          String codeString = ((PrimitiveType) code).asStringValue();
172          if (codeString == null || "".equals(codeString))
173            return null;
174        if ("active".equals(codeString))
175          return new Enumeration<EndpointStatus>(this, EndpointStatus.ACTIVE);
176        if ("suspended".equals(codeString))
177          return new Enumeration<EndpointStatus>(this, EndpointStatus.SUSPENDED);
178        if ("error".equals(codeString))
179          return new Enumeration<EndpointStatus>(this, EndpointStatus.ERROR);
180        if ("off".equals(codeString))
181          return new Enumeration<EndpointStatus>(this, EndpointStatus.OFF);
182        if ("entered-in-error".equals(codeString))
183          return new Enumeration<EndpointStatus>(this, EndpointStatus.ENTEREDINERROR);
184        if ("test".equals(codeString))
185          return new Enumeration<EndpointStatus>(this, EndpointStatus.TEST);
186        throw new FHIRException("Unknown EndpointStatus code '"+codeString+"'");
187        }
188    public String toCode(EndpointStatus code) {
189      if (code == EndpointStatus.ACTIVE)
190        return "active";
191      if (code == EndpointStatus.SUSPENDED)
192        return "suspended";
193      if (code == EndpointStatus.ERROR)
194        return "error";
195      if (code == EndpointStatus.OFF)
196        return "off";
197      if (code == EndpointStatus.ENTEREDINERROR)
198        return "entered-in-error";
199      if (code == EndpointStatus.TEST)
200        return "test";
201      return "?";
202      }
203    public String toSystem(EndpointStatus code) {
204      return code.getSystem();
205      }
206    }
207
208    /**
209     * Identifier for the organization that is used to identify the endpoint across multiple disparate systems.
210     */
211    @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
212    @Description(shortDefinition="Identifies this endpoint across multiple systems", formalDefinition="Identifier for the organization that is used to identify the endpoint across multiple disparate systems." )
213    protected List<Identifier> identifier;
214
215    /**
216     * active | suspended | error | off | test.
217     */
218    @Child(name = "status", type = {CodeType.class}, order=1, min=1, max=1, modifier=true, summary=true)
219    @Description(shortDefinition="active | suspended | error | off | entered-in-error | test", formalDefinition="active | suspended | error | off | test." )
220    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/endpoint-status")
221    protected Enumeration<EndpointStatus> status;
222
223    /**
224     * 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).
225     */
226    @Child(name = "connectionType", type = {Coding.class}, order=2, min=1, max=1, modifier=false, summary=true)
227    @Description(shortDefinition="Protocol/Profile/Standard to be used with this endpoint connection", formalDefinition="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)." )
228    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/endpoint-connection-type")
229    protected Coding connectionType;
230
231    /**
232     * A friendly name that this endpoint can be referred to with.
233     */
234    @Child(name = "name", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=true)
235    @Description(shortDefinition="A name that this endpoint can be identified by", formalDefinition="A friendly name that this endpoint can be referred to with." )
236    protected StringType name;
237
238    /**
239     * 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).
240     */
241    @Child(name = "managingOrganization", type = {Organization.class}, order=4, min=0, max=1, modifier=false, summary=true)
242    @Description(shortDefinition="Organization that manages this endpoint (might not be the organization that exposes the endpoint)", formalDefinition="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)." )
243    protected Reference managingOrganization;
244
245    /**
246     * The actual object that is the target of the reference (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).)
247     */
248    protected Organization managingOrganizationTarget;
249
250    /**
251     * Contact details for a human to contact about the subscription. The primary use of this for system administrator troubleshooting.
252     */
253    @Child(name = "contact", type = {ContactPoint.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
254    @Description(shortDefinition="Contact details for source (e.g. troubleshooting)", formalDefinition="Contact details for a human to contact about the subscription. The primary use of this for system administrator troubleshooting." )
255    protected List<ContactPoint> contact;
256
257    /**
258     * The interval during which the endpoint is expected to be operational.
259     */
260    @Child(name = "period", type = {Period.class}, order=6, min=0, max=1, modifier=false, summary=true)
261    @Description(shortDefinition="Interval the endpoint is expected to be operational", formalDefinition="The interval during which the endpoint is expected to be operational." )
262    protected Period period;
263
264    /**
265     * The payload type describes the acceptable content that can be communicated on the endpoint.
266     */
267    @Child(name = "payloadType", type = {CodeableConcept.class}, order=7, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
268    @Description(shortDefinition="The type of content that may be used at this endpoint (e.g. XDS Discharge summaries)", formalDefinition="The payload type describes the acceptable content that can be communicated on the endpoint." )
269    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/endpoint-payload-type")
270    protected List<CodeableConcept> payloadType;
271
272    /**
273     * 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).
274     */
275    @Child(name = "payloadMimeType", type = {CodeType.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
276    @Description(shortDefinition="Mimetype to send. If not specified, the content could be anything (including no payload, if the connectionType defined this)", formalDefinition="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)." )
277    protected List<CodeType> payloadMimeType;
278
279    /**
280     * The uri that describes the actual end-point to connect to.
281     */
282    @Child(name = "address", type = {UrlType.class}, order=9, min=1, max=1, modifier=false, summary=true)
283    @Description(shortDefinition="The technical base address for connecting to this endpoint", formalDefinition="The uri that describes the actual end-point to connect to." )
284    protected UrlType address;
285
286    /**
287     * Additional headers / information to send as part of the notification.
288     */
289    @Child(name = "header", type = {StringType.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
290    @Description(shortDefinition="Usage depends on the channel type", formalDefinition="Additional headers / information to send as part of the notification." )
291    protected List<StringType> header;
292
293    private static final long serialVersionUID = 755181080L;
294
295  /**
296   * Constructor
297   */
298    public Endpoint() {
299      super();
300    }
301
302  /**
303   * Constructor
304   */
305    public Endpoint(Enumeration<EndpointStatus> status, Coding connectionType, UrlType address) {
306      super();
307      this.status = status;
308      this.connectionType = connectionType;
309      this.address = address;
310    }
311
312    /**
313     * @return {@link #identifier} (Identifier for the organization that is used to identify the endpoint across multiple disparate systems.)
314     */
315    public List<Identifier> getIdentifier() { 
316      if (this.identifier == null)
317        this.identifier = new ArrayList<Identifier>();
318      return this.identifier;
319    }
320
321    /**
322     * @return Returns a reference to <code>this</code> for easy method chaining
323     */
324    public Endpoint setIdentifier(List<Identifier> theIdentifier) { 
325      this.identifier = theIdentifier;
326      return this;
327    }
328
329    public boolean hasIdentifier() { 
330      if (this.identifier == null)
331        return false;
332      for (Identifier item : this.identifier)
333        if (!item.isEmpty())
334          return true;
335      return false;
336    }
337
338    public Identifier addIdentifier() { //3
339      Identifier t = new Identifier();
340      if (this.identifier == null)
341        this.identifier = new ArrayList<Identifier>();
342      this.identifier.add(t);
343      return t;
344    }
345
346    public Endpoint addIdentifier(Identifier t) { //3
347      if (t == null)
348        return this;
349      if (this.identifier == null)
350        this.identifier = new ArrayList<Identifier>();
351      this.identifier.add(t);
352      return this;
353    }
354
355    /**
356     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist
357     */
358    public Identifier getIdentifierFirstRep() { 
359      if (getIdentifier().isEmpty()) {
360        addIdentifier();
361      }
362      return getIdentifier().get(0);
363    }
364
365    /**
366     * @return {@link #status} (active | suspended | error | off | test.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
367     */
368    public Enumeration<EndpointStatus> getStatusElement() { 
369      if (this.status == null)
370        if (Configuration.errorOnAutoCreate())
371          throw new Error("Attempt to auto-create Endpoint.status");
372        else if (Configuration.doAutoCreate())
373          this.status = new Enumeration<EndpointStatus>(new EndpointStatusEnumFactory()); // bb
374      return this.status;
375    }
376
377    public boolean hasStatusElement() { 
378      return this.status != null && !this.status.isEmpty();
379    }
380
381    public boolean hasStatus() { 
382      return this.status != null && !this.status.isEmpty();
383    }
384
385    /**
386     * @param value {@link #status} (active | suspended | error | off | test.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
387     */
388    public Endpoint setStatusElement(Enumeration<EndpointStatus> value) { 
389      this.status = value;
390      return this;
391    }
392
393    /**
394     * @return active | suspended | error | off | test.
395     */
396    public EndpointStatus getStatus() { 
397      return this.status == null ? null : this.status.getValue();
398    }
399
400    /**
401     * @param value active | suspended | error | off | test.
402     */
403    public Endpoint setStatus(EndpointStatus value) { 
404        if (this.status == null)
405          this.status = new Enumeration<EndpointStatus>(new EndpointStatusEnumFactory());
406        this.status.setValue(value);
407      return this;
408    }
409
410    /**
411     * @return {@link #connectionType} (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).)
412     */
413    public Coding getConnectionType() { 
414      if (this.connectionType == null)
415        if (Configuration.errorOnAutoCreate())
416          throw new Error("Attempt to auto-create Endpoint.connectionType");
417        else if (Configuration.doAutoCreate())
418          this.connectionType = new Coding(); // cc
419      return this.connectionType;
420    }
421
422    public boolean hasConnectionType() { 
423      return this.connectionType != null && !this.connectionType.isEmpty();
424    }
425
426    /**
427     * @param value {@link #connectionType} (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).)
428     */
429    public Endpoint setConnectionType(Coding value) { 
430      this.connectionType = value;
431      return this;
432    }
433
434    /**
435     * @return {@link #name} (A friendly name that this endpoint can be referred to with.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
436     */
437    public StringType getNameElement() { 
438      if (this.name == null)
439        if (Configuration.errorOnAutoCreate())
440          throw new Error("Attempt to auto-create Endpoint.name");
441        else if (Configuration.doAutoCreate())
442          this.name = new StringType(); // bb
443      return this.name;
444    }
445
446    public boolean hasNameElement() { 
447      return this.name != null && !this.name.isEmpty();
448    }
449
450    public boolean hasName() { 
451      return this.name != null && !this.name.isEmpty();
452    }
453
454    /**
455     * @param value {@link #name} (A friendly name that this endpoint can be referred to with.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
456     */
457    public Endpoint setNameElement(StringType value) { 
458      this.name = value;
459      return this;
460    }
461
462    /**
463     * @return A friendly name that this endpoint can be referred to with.
464     */
465    public String getName() { 
466      return this.name == null ? null : this.name.getValue();
467    }
468
469    /**
470     * @param value A friendly name that this endpoint can be referred to with.
471     */
472    public Endpoint setName(String value) { 
473      if (Utilities.noString(value))
474        this.name = null;
475      else {
476        if (this.name == null)
477          this.name = new StringType();
478        this.name.setValue(value);
479      }
480      return this;
481    }
482
483    /**
484     * @return {@link #managingOrganization} (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).)
485     */
486    public Reference getManagingOrganization() { 
487      if (this.managingOrganization == null)
488        if (Configuration.errorOnAutoCreate())
489          throw new Error("Attempt to auto-create Endpoint.managingOrganization");
490        else if (Configuration.doAutoCreate())
491          this.managingOrganization = new Reference(); // cc
492      return this.managingOrganization;
493    }
494
495    public boolean hasManagingOrganization() { 
496      return this.managingOrganization != null && !this.managingOrganization.isEmpty();
497    }
498
499    /**
500     * @param value {@link #managingOrganization} (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).)
501     */
502    public Endpoint setManagingOrganization(Reference value) { 
503      this.managingOrganization = value;
504      return this;
505    }
506
507    /**
508     * @return {@link #managingOrganization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (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).)
509     */
510    public Organization getManagingOrganizationTarget() { 
511      if (this.managingOrganizationTarget == null)
512        if (Configuration.errorOnAutoCreate())
513          throw new Error("Attempt to auto-create Endpoint.managingOrganization");
514        else if (Configuration.doAutoCreate())
515          this.managingOrganizationTarget = new Organization(); // aa
516      return this.managingOrganizationTarget;
517    }
518
519    /**
520     * @param value {@link #managingOrganization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (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).)
521     */
522    public Endpoint setManagingOrganizationTarget(Organization value) { 
523      this.managingOrganizationTarget = value;
524      return this;
525    }
526
527    /**
528     * @return {@link #contact} (Contact details for a human to contact about the subscription. The primary use of this for system administrator troubleshooting.)
529     */
530    public List<ContactPoint> getContact() { 
531      if (this.contact == null)
532        this.contact = new ArrayList<ContactPoint>();
533      return this.contact;
534    }
535
536    /**
537     * @return Returns a reference to <code>this</code> for easy method chaining
538     */
539    public Endpoint setContact(List<ContactPoint> theContact) { 
540      this.contact = theContact;
541      return this;
542    }
543
544    public boolean hasContact() { 
545      if (this.contact == null)
546        return false;
547      for (ContactPoint item : this.contact)
548        if (!item.isEmpty())
549          return true;
550      return false;
551    }
552
553    public ContactPoint addContact() { //3
554      ContactPoint t = new ContactPoint();
555      if (this.contact == null)
556        this.contact = new ArrayList<ContactPoint>();
557      this.contact.add(t);
558      return t;
559    }
560
561    public Endpoint addContact(ContactPoint t) { //3
562      if (t == null)
563        return this;
564      if (this.contact == null)
565        this.contact = new ArrayList<ContactPoint>();
566      this.contact.add(t);
567      return this;
568    }
569
570    /**
571     * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist
572     */
573    public ContactPoint getContactFirstRep() { 
574      if (getContact().isEmpty()) {
575        addContact();
576      }
577      return getContact().get(0);
578    }
579
580    /**
581     * @return {@link #period} (The interval during which the endpoint is expected to be operational.)
582     */
583    public Period getPeriod() { 
584      if (this.period == null)
585        if (Configuration.errorOnAutoCreate())
586          throw new Error("Attempt to auto-create Endpoint.period");
587        else if (Configuration.doAutoCreate())
588          this.period = new Period(); // cc
589      return this.period;
590    }
591
592    public boolean hasPeriod() { 
593      return this.period != null && !this.period.isEmpty();
594    }
595
596    /**
597     * @param value {@link #period} (The interval during which the endpoint is expected to be operational.)
598     */
599    public Endpoint setPeriod(Period value) { 
600      this.period = value;
601      return this;
602    }
603
604    /**
605     * @return {@link #payloadType} (The payload type describes the acceptable content that can be communicated on the endpoint.)
606     */
607    public List<CodeableConcept> getPayloadType() { 
608      if (this.payloadType == null)
609        this.payloadType = new ArrayList<CodeableConcept>();
610      return this.payloadType;
611    }
612
613    /**
614     * @return Returns a reference to <code>this</code> for easy method chaining
615     */
616    public Endpoint setPayloadType(List<CodeableConcept> thePayloadType) { 
617      this.payloadType = thePayloadType;
618      return this;
619    }
620
621    public boolean hasPayloadType() { 
622      if (this.payloadType == null)
623        return false;
624      for (CodeableConcept item : this.payloadType)
625        if (!item.isEmpty())
626          return true;
627      return false;
628    }
629
630    public CodeableConcept addPayloadType() { //3
631      CodeableConcept t = new CodeableConcept();
632      if (this.payloadType == null)
633        this.payloadType = new ArrayList<CodeableConcept>();
634      this.payloadType.add(t);
635      return t;
636    }
637
638    public Endpoint addPayloadType(CodeableConcept t) { //3
639      if (t == null)
640        return this;
641      if (this.payloadType == null)
642        this.payloadType = new ArrayList<CodeableConcept>();
643      this.payloadType.add(t);
644      return this;
645    }
646
647    /**
648     * @return The first repetition of repeating field {@link #payloadType}, creating it if it does not already exist
649     */
650    public CodeableConcept getPayloadTypeFirstRep() { 
651      if (getPayloadType().isEmpty()) {
652        addPayloadType();
653      }
654      return getPayloadType().get(0);
655    }
656
657    /**
658     * @return {@link #payloadMimeType} (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).)
659     */
660    public List<CodeType> getPayloadMimeType() { 
661      if (this.payloadMimeType == null)
662        this.payloadMimeType = new ArrayList<CodeType>();
663      return this.payloadMimeType;
664    }
665
666    /**
667     * @return Returns a reference to <code>this</code> for easy method chaining
668     */
669    public Endpoint setPayloadMimeType(List<CodeType> thePayloadMimeType) { 
670      this.payloadMimeType = thePayloadMimeType;
671      return this;
672    }
673
674    public boolean hasPayloadMimeType() { 
675      if (this.payloadMimeType == null)
676        return false;
677      for (CodeType item : this.payloadMimeType)
678        if (!item.isEmpty())
679          return true;
680      return false;
681    }
682
683    /**
684     * @return {@link #payloadMimeType} (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).)
685     */
686    public CodeType addPayloadMimeTypeElement() {//2 
687      CodeType t = new CodeType();
688      if (this.payloadMimeType == null)
689        this.payloadMimeType = new ArrayList<CodeType>();
690      this.payloadMimeType.add(t);
691      return t;
692    }
693
694    /**
695     * @param value {@link #payloadMimeType} (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).)
696     */
697    public Endpoint addPayloadMimeType(String value) { //1
698      CodeType t = new CodeType();
699      t.setValue(value);
700      if (this.payloadMimeType == null)
701        this.payloadMimeType = new ArrayList<CodeType>();
702      this.payloadMimeType.add(t);
703      return this;
704    }
705
706    /**
707     * @param value {@link #payloadMimeType} (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).)
708     */
709    public boolean hasPayloadMimeType(String value) { 
710      if (this.payloadMimeType == null)
711        return false;
712      for (CodeType v : this.payloadMimeType)
713        if (v.getValue().equals(value)) // code
714          return true;
715      return false;
716    }
717
718    /**
719     * @return {@link #address} (The uri that describes the actual end-point to connect to.). This is the underlying object with id, value and extensions. The accessor "getAddress" gives direct access to the value
720     */
721    public UrlType getAddressElement() { 
722      if (this.address == null)
723        if (Configuration.errorOnAutoCreate())
724          throw new Error("Attempt to auto-create Endpoint.address");
725        else if (Configuration.doAutoCreate())
726          this.address = new UrlType(); // bb
727      return this.address;
728    }
729
730    public boolean hasAddressElement() { 
731      return this.address != null && !this.address.isEmpty();
732    }
733
734    public boolean hasAddress() { 
735      return this.address != null && !this.address.isEmpty();
736    }
737
738    /**
739     * @param value {@link #address} (The uri that describes the actual end-point to connect to.). This is the underlying object with id, value and extensions. The accessor "getAddress" gives direct access to the value
740     */
741    public Endpoint setAddressElement(UrlType value) { 
742      this.address = value;
743      return this;
744    }
745
746    /**
747     * @return The uri that describes the actual end-point to connect to.
748     */
749    public String getAddress() { 
750      return this.address == null ? null : this.address.getValue();
751    }
752
753    /**
754     * @param value The uri that describes the actual end-point to connect to.
755     */
756    public Endpoint setAddress(String value) { 
757        if (this.address == null)
758          this.address = new UrlType();
759        this.address.setValue(value);
760      return this;
761    }
762
763    /**
764     * @return {@link #header} (Additional headers / information to send as part of the notification.)
765     */
766    public List<StringType> getHeader() { 
767      if (this.header == null)
768        this.header = new ArrayList<StringType>();
769      return this.header;
770    }
771
772    /**
773     * @return Returns a reference to <code>this</code> for easy method chaining
774     */
775    public Endpoint setHeader(List<StringType> theHeader) { 
776      this.header = theHeader;
777      return this;
778    }
779
780    public boolean hasHeader() { 
781      if (this.header == null)
782        return false;
783      for (StringType item : this.header)
784        if (!item.isEmpty())
785          return true;
786      return false;
787    }
788
789    /**
790     * @return {@link #header} (Additional headers / information to send as part of the notification.)
791     */
792    public StringType addHeaderElement() {//2 
793      StringType t = new StringType();
794      if (this.header == null)
795        this.header = new ArrayList<StringType>();
796      this.header.add(t);
797      return t;
798    }
799
800    /**
801     * @param value {@link #header} (Additional headers / information to send as part of the notification.)
802     */
803    public Endpoint addHeader(String value) { //1
804      StringType t = new StringType();
805      t.setValue(value);
806      if (this.header == null)
807        this.header = new ArrayList<StringType>();
808      this.header.add(t);
809      return this;
810    }
811
812    /**
813     * @param value {@link #header} (Additional headers / information to send as part of the notification.)
814     */
815    public boolean hasHeader(String value) { 
816      if (this.header == null)
817        return false;
818      for (StringType v : this.header)
819        if (v.getValue().equals(value)) // string
820          return true;
821      return false;
822    }
823
824      protected void listChildren(List<Property> children) {
825        super.listChildren(children);
826        children.add(new Property("identifier", "Identifier", "Identifier for the organization that is used to identify the endpoint across multiple disparate systems.", 0, java.lang.Integer.MAX_VALUE, identifier));
827        children.add(new Property("status", "code", "active | suspended | error | off | test.", 0, 1, status));
828        children.add(new Property("connectionType", "Coding", "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).", 0, 1, connectionType));
829        children.add(new Property("name", "string", "A friendly name that this endpoint can be referred to with.", 0, 1, name));
830        children.add(new Property("managingOrganization", "Reference(Organization)", "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).", 0, 1, managingOrganization));
831        children.add(new Property("contact", "ContactPoint", "Contact details for a human to contact about the subscription. The primary use of this for system administrator troubleshooting.", 0, java.lang.Integer.MAX_VALUE, contact));
832        children.add(new Property("period", "Period", "The interval during which the endpoint is expected to be operational.", 0, 1, period));
833        children.add(new Property("payloadType", "CodeableConcept", "The payload type describes the acceptable content that can be communicated on the endpoint.", 0, java.lang.Integer.MAX_VALUE, payloadType));
834        children.add(new Property("payloadMimeType", "code", "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).", 0, java.lang.Integer.MAX_VALUE, payloadMimeType));
835        children.add(new Property("address", "url", "The uri that describes the actual end-point to connect to.", 0, 1, address));
836        children.add(new Property("header", "string", "Additional headers / information to send as part of the notification.", 0, java.lang.Integer.MAX_VALUE, header));
837      }
838
839      @Override
840      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
841        switch (_hash) {
842        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "Identifier for the organization that is used to identify the endpoint across multiple disparate systems.", 0, java.lang.Integer.MAX_VALUE, identifier);
843        case -892481550: /*status*/  return new Property("status", "code", "active | suspended | error | off | test.", 0, 1, status);
844        case 1270211384: /*connectionType*/  return new Property("connectionType", "Coding", "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).", 0, 1, connectionType);
845        case 3373707: /*name*/  return new Property("name", "string", "A friendly name that this endpoint can be referred to with.", 0, 1, name);
846        case -2058947787: /*managingOrganization*/  return new Property("managingOrganization", "Reference(Organization)", "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).", 0, 1, managingOrganization);
847        case 951526432: /*contact*/  return new Property("contact", "ContactPoint", "Contact details for a human to contact about the subscription. The primary use of this for system administrator troubleshooting.", 0, java.lang.Integer.MAX_VALUE, contact);
848        case -991726143: /*period*/  return new Property("period", "Period", "The interval during which the endpoint is expected to be operational.", 0, 1, period);
849        case 909929960: /*payloadType*/  return new Property("payloadType", "CodeableConcept", "The payload type describes the acceptable content that can be communicated on the endpoint.", 0, java.lang.Integer.MAX_VALUE, payloadType);
850        case -1702836932: /*payloadMimeType*/  return new Property("payloadMimeType", "code", "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).", 0, java.lang.Integer.MAX_VALUE, payloadMimeType);
851        case -1147692044: /*address*/  return new Property("address", "url", "The uri that describes the actual end-point to connect to.", 0, 1, address);
852        case -1221270899: /*header*/  return new Property("header", "string", "Additional headers / information to send as part of the notification.", 0, java.lang.Integer.MAX_VALUE, header);
853        default: return super.getNamedProperty(_hash, _name, _checkValid);
854        }
855
856      }
857
858      @Override
859      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
860        switch (hash) {
861        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
862        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<EndpointStatus>
863        case 1270211384: /*connectionType*/ return this.connectionType == null ? new Base[0] : new Base[] {this.connectionType}; // Coding
864        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
865        case -2058947787: /*managingOrganization*/ return this.managingOrganization == null ? new Base[0] : new Base[] {this.managingOrganization}; // Reference
866        case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactPoint
867        case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period
868        case 909929960: /*payloadType*/ return this.payloadType == null ? new Base[0] : this.payloadType.toArray(new Base[this.payloadType.size()]); // CodeableConcept
869        case -1702836932: /*payloadMimeType*/ return this.payloadMimeType == null ? new Base[0] : this.payloadMimeType.toArray(new Base[this.payloadMimeType.size()]); // CodeType
870        case -1147692044: /*address*/ return this.address == null ? new Base[0] : new Base[] {this.address}; // UrlType
871        case -1221270899: /*header*/ return this.header == null ? new Base[0] : this.header.toArray(new Base[this.header.size()]); // StringType
872        default: return super.getProperty(hash, name, checkValid);
873        }
874
875      }
876
877      @Override
878      public Base setProperty(int hash, String name, Base value) throws FHIRException {
879        switch (hash) {
880        case -1618432855: // identifier
881          this.getIdentifier().add(castToIdentifier(value)); // Identifier
882          return value;
883        case -892481550: // status
884          value = new EndpointStatusEnumFactory().fromType(castToCode(value));
885          this.status = (Enumeration) value; // Enumeration<EndpointStatus>
886          return value;
887        case 1270211384: // connectionType
888          this.connectionType = castToCoding(value); // Coding
889          return value;
890        case 3373707: // name
891          this.name = castToString(value); // StringType
892          return value;
893        case -2058947787: // managingOrganization
894          this.managingOrganization = castToReference(value); // Reference
895          return value;
896        case 951526432: // contact
897          this.getContact().add(castToContactPoint(value)); // ContactPoint
898          return value;
899        case -991726143: // period
900          this.period = castToPeriod(value); // Period
901          return value;
902        case 909929960: // payloadType
903          this.getPayloadType().add(castToCodeableConcept(value)); // CodeableConcept
904          return value;
905        case -1702836932: // payloadMimeType
906          this.getPayloadMimeType().add(castToCode(value)); // CodeType
907          return value;
908        case -1147692044: // address
909          this.address = castToUrl(value); // UrlType
910          return value;
911        case -1221270899: // header
912          this.getHeader().add(castToString(value)); // StringType
913          return value;
914        default: return super.setProperty(hash, name, value);
915        }
916
917      }
918
919      @Override
920      public Base setProperty(String name, Base value) throws FHIRException {
921        if (name.equals("identifier")) {
922          this.getIdentifier().add(castToIdentifier(value));
923        } else if (name.equals("status")) {
924          value = new EndpointStatusEnumFactory().fromType(castToCode(value));
925          this.status = (Enumeration) value; // Enumeration<EndpointStatus>
926        } else if (name.equals("connectionType")) {
927          this.connectionType = castToCoding(value); // Coding
928        } else if (name.equals("name")) {
929          this.name = castToString(value); // StringType
930        } else if (name.equals("managingOrganization")) {
931          this.managingOrganization = castToReference(value); // Reference
932        } else if (name.equals("contact")) {
933          this.getContact().add(castToContactPoint(value));
934        } else if (name.equals("period")) {
935          this.period = castToPeriod(value); // Period
936        } else if (name.equals("payloadType")) {
937          this.getPayloadType().add(castToCodeableConcept(value));
938        } else if (name.equals("payloadMimeType")) {
939          this.getPayloadMimeType().add(castToCode(value));
940        } else if (name.equals("address")) {
941          this.address = castToUrl(value); // UrlType
942        } else if (name.equals("header")) {
943          this.getHeader().add(castToString(value));
944        } else
945          return super.setProperty(name, value);
946        return value;
947      }
948
949      @Override
950      public Base makeProperty(int hash, String name) throws FHIRException {
951        switch (hash) {
952        case -1618432855:  return addIdentifier(); 
953        case -892481550:  return getStatusElement();
954        case 1270211384:  return getConnectionType(); 
955        case 3373707:  return getNameElement();
956        case -2058947787:  return getManagingOrganization(); 
957        case 951526432:  return addContact(); 
958        case -991726143:  return getPeriod(); 
959        case 909929960:  return addPayloadType(); 
960        case -1702836932:  return addPayloadMimeTypeElement();
961        case -1147692044:  return getAddressElement();
962        case -1221270899:  return addHeaderElement();
963        default: return super.makeProperty(hash, name);
964        }
965
966      }
967
968      @Override
969      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
970        switch (hash) {
971        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
972        case -892481550: /*status*/ return new String[] {"code"};
973        case 1270211384: /*connectionType*/ return new String[] {"Coding"};
974        case 3373707: /*name*/ return new String[] {"string"};
975        case -2058947787: /*managingOrganization*/ return new String[] {"Reference"};
976        case 951526432: /*contact*/ return new String[] {"ContactPoint"};
977        case -991726143: /*period*/ return new String[] {"Period"};
978        case 909929960: /*payloadType*/ return new String[] {"CodeableConcept"};
979        case -1702836932: /*payloadMimeType*/ return new String[] {"code"};
980        case -1147692044: /*address*/ return new String[] {"url"};
981        case -1221270899: /*header*/ return new String[] {"string"};
982        default: return super.getTypesForProperty(hash, name);
983        }
984
985      }
986
987      @Override
988      public Base addChild(String name) throws FHIRException {
989        if (name.equals("identifier")) {
990          return addIdentifier();
991        }
992        else if (name.equals("status")) {
993          throw new FHIRException("Cannot call addChild on a primitive type Endpoint.status");
994        }
995        else if (name.equals("connectionType")) {
996          this.connectionType = new Coding();
997          return this.connectionType;
998        }
999        else if (name.equals("name")) {
1000          throw new FHIRException("Cannot call addChild on a primitive type Endpoint.name");
1001        }
1002        else if (name.equals("managingOrganization")) {
1003          this.managingOrganization = new Reference();
1004          return this.managingOrganization;
1005        }
1006        else if (name.equals("contact")) {
1007          return addContact();
1008        }
1009        else if (name.equals("period")) {
1010          this.period = new Period();
1011          return this.period;
1012        }
1013        else if (name.equals("payloadType")) {
1014          return addPayloadType();
1015        }
1016        else if (name.equals("payloadMimeType")) {
1017          throw new FHIRException("Cannot call addChild on a primitive type Endpoint.payloadMimeType");
1018        }
1019        else if (name.equals("address")) {
1020          throw new FHIRException("Cannot call addChild on a primitive type Endpoint.address");
1021        }
1022        else if (name.equals("header")) {
1023          throw new FHIRException("Cannot call addChild on a primitive type Endpoint.header");
1024        }
1025        else
1026          return super.addChild(name);
1027      }
1028
1029  public String fhirType() {
1030    return "Endpoint";
1031
1032  }
1033
1034      public Endpoint copy() {
1035        Endpoint dst = new Endpoint();
1036        copyValues(dst);
1037        if (identifier != null) {
1038          dst.identifier = new ArrayList<Identifier>();
1039          for (Identifier i : identifier)
1040            dst.identifier.add(i.copy());
1041        };
1042        dst.status = status == null ? null : status.copy();
1043        dst.connectionType = connectionType == null ? null : connectionType.copy();
1044        dst.name = name == null ? null : name.copy();
1045        dst.managingOrganization = managingOrganization == null ? null : managingOrganization.copy();
1046        if (contact != null) {
1047          dst.contact = new ArrayList<ContactPoint>();
1048          for (ContactPoint i : contact)
1049            dst.contact.add(i.copy());
1050        };
1051        dst.period = period == null ? null : period.copy();
1052        if (payloadType != null) {
1053          dst.payloadType = new ArrayList<CodeableConcept>();
1054          for (CodeableConcept i : payloadType)
1055            dst.payloadType.add(i.copy());
1056        };
1057        if (payloadMimeType != null) {
1058          dst.payloadMimeType = new ArrayList<CodeType>();
1059          for (CodeType i : payloadMimeType)
1060            dst.payloadMimeType.add(i.copy());
1061        };
1062        dst.address = address == null ? null : address.copy();
1063        if (header != null) {
1064          dst.header = new ArrayList<StringType>();
1065          for (StringType i : header)
1066            dst.header.add(i.copy());
1067        };
1068        return dst;
1069      }
1070
1071      protected Endpoint typedCopy() {
1072        return copy();
1073      }
1074
1075      @Override
1076      public boolean equalsDeep(Base other_) {
1077        if (!super.equalsDeep(other_))
1078          return false;
1079        if (!(other_ instanceof Endpoint))
1080          return false;
1081        Endpoint o = (Endpoint) other_;
1082        return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) && compareDeep(connectionType, o.connectionType, true)
1083           && compareDeep(name, o.name, true) && compareDeep(managingOrganization, o.managingOrganization, true)
1084           && compareDeep(contact, o.contact, true) && compareDeep(period, o.period, true) && compareDeep(payloadType, o.payloadType, true)
1085           && compareDeep(payloadMimeType, o.payloadMimeType, true) && compareDeep(address, o.address, true)
1086           && compareDeep(header, o.header, true);
1087      }
1088
1089      @Override
1090      public boolean equalsShallow(Base other_) {
1091        if (!super.equalsShallow(other_))
1092          return false;
1093        if (!(other_ instanceof Endpoint))
1094          return false;
1095        Endpoint o = (Endpoint) other_;
1096        return compareValues(status, o.status, true) && compareValues(name, o.name, true) && compareValues(payloadMimeType, o.payloadMimeType, true)
1097           && compareValues(address, o.address, true) && compareValues(header, o.header, true);
1098      }
1099
1100      public boolean isEmpty() {
1101        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, status, connectionType
1102          , name, managingOrganization, contact, period, payloadType, payloadMimeType, address
1103          , header);
1104      }
1105
1106  @Override
1107  public ResourceType getResourceType() {
1108    return ResourceType.Endpoint;
1109   }
1110
1111 /**
1112   * Search parameter: <b>payload-type</b>
1113   * <p>
1114   * Description: <b>The type of content that may be used at this endpoint (e.g. XDS Discharge summaries)</b><br>
1115   * Type: <b>token</b><br>
1116   * Path: <b>Endpoint.payloadType</b><br>
1117   * </p>
1118   */
1119  @SearchParamDefinition(name="payload-type", path="Endpoint.payloadType", description="The type of content that may be used at this endpoint (e.g. XDS Discharge summaries)", type="token" )
1120  public static final String SP_PAYLOAD_TYPE = "payload-type";
1121 /**
1122   * <b>Fluent Client</b> search parameter constant for <b>payload-type</b>
1123   * <p>
1124   * Description: <b>The type of content that may be used at this endpoint (e.g. XDS Discharge summaries)</b><br>
1125   * Type: <b>token</b><br>
1126   * Path: <b>Endpoint.payloadType</b><br>
1127   * </p>
1128   */
1129  public static final ca.uhn.fhir.rest.gclient.TokenClientParam PAYLOAD_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PAYLOAD_TYPE);
1130
1131 /**
1132   * Search parameter: <b>identifier</b>
1133   * <p>
1134   * Description: <b>Identifies this endpoint across multiple systems</b><br>
1135   * Type: <b>token</b><br>
1136   * Path: <b>Endpoint.identifier</b><br>
1137   * </p>
1138   */
1139  @SearchParamDefinition(name="identifier", path="Endpoint.identifier", description="Identifies this endpoint across multiple systems", type="token" )
1140  public static final String SP_IDENTIFIER = "identifier";
1141 /**
1142   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
1143   * <p>
1144   * Description: <b>Identifies this endpoint across multiple systems</b><br>
1145   * Type: <b>token</b><br>
1146   * Path: <b>Endpoint.identifier</b><br>
1147   * </p>
1148   */
1149  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
1150
1151 /**
1152   * Search parameter: <b>organization</b>
1153   * <p>
1154   * Description: <b>The organization that is managing the endpoint</b><br>
1155   * Type: <b>reference</b><br>
1156   * Path: <b>Endpoint.managingOrganization</b><br>
1157   * </p>
1158   */
1159  @SearchParamDefinition(name="organization", path="Endpoint.managingOrganization", description="The organization that is managing the endpoint", type="reference", target={Organization.class } )
1160  public static final String SP_ORGANIZATION = "organization";
1161 /**
1162   * <b>Fluent Client</b> search parameter constant for <b>organization</b>
1163   * <p>
1164   * Description: <b>The organization that is managing the endpoint</b><br>
1165   * Type: <b>reference</b><br>
1166   * Path: <b>Endpoint.managingOrganization</b><br>
1167   * </p>
1168   */
1169  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ORGANIZATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ORGANIZATION);
1170
1171/**
1172   * Constant for fluent queries to be used to add include statements. Specifies
1173   * the path value of "<b>Endpoint:organization</b>".
1174   */
1175  public static final ca.uhn.fhir.model.api.Include INCLUDE_ORGANIZATION = new ca.uhn.fhir.model.api.Include("Endpoint:organization").toLocked();
1176
1177 /**
1178   * Search parameter: <b>connection-type</b>
1179   * <p>
1180   * Description: <b>Protocol/Profile/Standard to be used with this endpoint connection</b><br>
1181   * Type: <b>token</b><br>
1182   * Path: <b>Endpoint.connectionType</b><br>
1183   * </p>
1184   */
1185  @SearchParamDefinition(name="connection-type", path="Endpoint.connectionType", description="Protocol/Profile/Standard to be used with this endpoint connection", type="token" )
1186  public static final String SP_CONNECTION_TYPE = "connection-type";
1187 /**
1188   * <b>Fluent Client</b> search parameter constant for <b>connection-type</b>
1189   * <p>
1190   * Description: <b>Protocol/Profile/Standard to be used with this endpoint connection</b><br>
1191   * Type: <b>token</b><br>
1192   * Path: <b>Endpoint.connectionType</b><br>
1193   * </p>
1194   */
1195  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONNECTION_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONNECTION_TYPE);
1196
1197 /**
1198   * Search parameter: <b>name</b>
1199   * <p>
1200   * Description: <b>A name that this endpoint can be identified by</b><br>
1201   * Type: <b>string</b><br>
1202   * Path: <b>Endpoint.name</b><br>
1203   * </p>
1204   */
1205  @SearchParamDefinition(name="name", path="Endpoint.name", description="A name that this endpoint can be identified by", type="string" )
1206  public static final String SP_NAME = "name";
1207 /**
1208   * <b>Fluent Client</b> search parameter constant for <b>name</b>
1209   * <p>
1210   * Description: <b>A name that this endpoint can be identified by</b><br>
1211   * Type: <b>string</b><br>
1212   * Path: <b>Endpoint.name</b><br>
1213   * </p>
1214   */
1215  public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME);
1216
1217 /**
1218   * Search parameter: <b>status</b>
1219   * <p>
1220   * Description: <b>The current status of the Endpoint (usually expected to be active)</b><br>
1221   * Type: <b>token</b><br>
1222   * Path: <b>Endpoint.status</b><br>
1223   * </p>
1224   */
1225  @SearchParamDefinition(name="status", path="Endpoint.status", description="The current status of the Endpoint (usually expected to be active)", type="token" )
1226  public static final String SP_STATUS = "status";
1227 /**
1228   * <b>Fluent Client</b> search parameter constant for <b>status</b>
1229   * <p>
1230   * Description: <b>The current status of the Endpoint (usually expected to be active)</b><br>
1231   * Type: <b>token</b><br>
1232   * Path: <b>Endpoint.status</b><br>
1233   * </p>
1234   */
1235  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
1236
1237
1238}
1239