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