001package org.hl7.fhir.dstu3.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 Mon, Apr 17, 2017 17:38-0400 for FHIR v3.0.1
033
034import java.util.*;
035
036import org.hl7.fhir.utilities.Utilities;
037import org.hl7.fhir.dstu3.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 organisation is hosting this in the cloud, it is the organisation 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 (may not be the organization that exposes the endpoint)", formalDefinition="The organization that manages this endpoint (even if technically another organisation is hosting this in the cloud, it is the organisation 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 organisation is hosting this in the cloud, it is the organisation 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 = {UriType.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 UriType 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 = 694168955L;
294
295  /**
296   * Constructor
297   */
298    public Endpoint() {
299      super();
300    }
301
302  /**
303   * Constructor
304   */
305    public Endpoint(Enumeration<EndpointStatus> status, Coding connectionType, UriType 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 organisation is hosting this in the cloud, it is the organisation 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 organisation is hosting this in the cloud, it is the organisation 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 organisation is hosting this in the cloud, it is the organisation 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 organisation is hosting this in the cloud, it is the organisation 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.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 UriType 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 UriType(); // 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(UriType 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 UriType();
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.equals(value)) // string
820          return true;
821      return false;
822    }
823
824      protected void listChildren(List<Property> childrenList) {
825        super.listChildren(childrenList);
826        childrenList.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        childrenList.add(new Property("status", "code", "active | suspended | error | off | test.", 0, java.lang.Integer.MAX_VALUE, status));
828        childrenList.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));
829        childrenList.add(new Property("name", "string", "A friendly name that this endpoint can be referred to with.", 0, java.lang.Integer.MAX_VALUE, name));
830        childrenList.add(new Property("managingOrganization", "Reference(Organization)", "The organization that manages this endpoint (even if technically another organisation is hosting this in the cloud, it is the organisation associated with the data).", 0, java.lang.Integer.MAX_VALUE, managingOrganization));
831        childrenList.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        childrenList.add(new Property("period", "Period", "The interval during which the endpoint is expected to be operational.", 0, java.lang.Integer.MAX_VALUE, period));
833        childrenList.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        childrenList.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        childrenList.add(new Property("address", "uri", "The uri that describes the actual end-point to connect to.", 0, java.lang.Integer.MAX_VALUE, address));
836        childrenList.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 Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
841        switch (hash) {
842        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
843        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<EndpointStatus>
844        case 1270211384: /*connectionType*/ return this.connectionType == null ? new Base[0] : new Base[] {this.connectionType}; // Coding
845        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
846        case -2058947787: /*managingOrganization*/ return this.managingOrganization == null ? new Base[0] : new Base[] {this.managingOrganization}; // Reference
847        case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactPoint
848        case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period
849        case 909929960: /*payloadType*/ return this.payloadType == null ? new Base[0] : this.payloadType.toArray(new Base[this.payloadType.size()]); // CodeableConcept
850        case -1702836932: /*payloadMimeType*/ return this.payloadMimeType == null ? new Base[0] : this.payloadMimeType.toArray(new Base[this.payloadMimeType.size()]); // CodeType
851        case -1147692044: /*address*/ return this.address == null ? new Base[0] : new Base[] {this.address}; // UriType
852        case -1221270899: /*header*/ return this.header == null ? new Base[0] : this.header.toArray(new Base[this.header.size()]); // StringType
853        default: return super.getProperty(hash, name, checkValid);
854        }
855
856      }
857
858      @Override
859      public Base setProperty(int hash, String name, Base value) throws FHIRException {
860        switch (hash) {
861        case -1618432855: // identifier
862          this.getIdentifier().add(castToIdentifier(value)); // Identifier
863          return value;
864        case -892481550: // status
865          value = new EndpointStatusEnumFactory().fromType(castToCode(value));
866          this.status = (Enumeration) value; // Enumeration<EndpointStatus>
867          return value;
868        case 1270211384: // connectionType
869          this.connectionType = castToCoding(value); // Coding
870          return value;
871        case 3373707: // name
872          this.name = castToString(value); // StringType
873          return value;
874        case -2058947787: // managingOrganization
875          this.managingOrganization = castToReference(value); // Reference
876          return value;
877        case 951526432: // contact
878          this.getContact().add(castToContactPoint(value)); // ContactPoint
879          return value;
880        case -991726143: // period
881          this.period = castToPeriod(value); // Period
882          return value;
883        case 909929960: // payloadType
884          this.getPayloadType().add(castToCodeableConcept(value)); // CodeableConcept
885          return value;
886        case -1702836932: // payloadMimeType
887          this.getPayloadMimeType().add(castToCode(value)); // CodeType
888          return value;
889        case -1147692044: // address
890          this.address = castToUri(value); // UriType
891          return value;
892        case -1221270899: // header
893          this.getHeader().add(castToString(value)); // StringType
894          return value;
895        default: return super.setProperty(hash, name, value);
896        }
897
898      }
899
900      @Override
901      public Base setProperty(String name, Base value) throws FHIRException {
902        if (name.equals("identifier")) {
903          this.getIdentifier().add(castToIdentifier(value));
904        } else if (name.equals("status")) {
905          value = new EndpointStatusEnumFactory().fromType(castToCode(value));
906          this.status = (Enumeration) value; // Enumeration<EndpointStatus>
907        } else if (name.equals("connectionType")) {
908          this.connectionType = castToCoding(value); // Coding
909        } else if (name.equals("name")) {
910          this.name = castToString(value); // StringType
911        } else if (name.equals("managingOrganization")) {
912          this.managingOrganization = castToReference(value); // Reference
913        } else if (name.equals("contact")) {
914          this.getContact().add(castToContactPoint(value));
915        } else if (name.equals("period")) {
916          this.period = castToPeriod(value); // Period
917        } else if (name.equals("payloadType")) {
918          this.getPayloadType().add(castToCodeableConcept(value));
919        } else if (name.equals("payloadMimeType")) {
920          this.getPayloadMimeType().add(castToCode(value));
921        } else if (name.equals("address")) {
922          this.address = castToUri(value); // UriType
923        } else if (name.equals("header")) {
924          this.getHeader().add(castToString(value));
925        } else
926          return super.setProperty(name, value);
927        return value;
928      }
929
930      @Override
931      public Base makeProperty(int hash, String name) throws FHIRException {
932        switch (hash) {
933        case -1618432855:  return addIdentifier(); 
934        case -892481550:  return getStatusElement();
935        case 1270211384:  return getConnectionType(); 
936        case 3373707:  return getNameElement();
937        case -2058947787:  return getManagingOrganization(); 
938        case 951526432:  return addContact(); 
939        case -991726143:  return getPeriod(); 
940        case 909929960:  return addPayloadType(); 
941        case -1702836932:  return addPayloadMimeTypeElement();
942        case -1147692044:  return getAddressElement();
943        case -1221270899:  return addHeaderElement();
944        default: return super.makeProperty(hash, name);
945        }
946
947      }
948
949      @Override
950      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
951        switch (hash) {
952        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
953        case -892481550: /*status*/ return new String[] {"code"};
954        case 1270211384: /*connectionType*/ return new String[] {"Coding"};
955        case 3373707: /*name*/ return new String[] {"string"};
956        case -2058947787: /*managingOrganization*/ return new String[] {"Reference"};
957        case 951526432: /*contact*/ return new String[] {"ContactPoint"};
958        case -991726143: /*period*/ return new String[] {"Period"};
959        case 909929960: /*payloadType*/ return new String[] {"CodeableConcept"};
960        case -1702836932: /*payloadMimeType*/ return new String[] {"code"};
961        case -1147692044: /*address*/ return new String[] {"uri"};
962        case -1221270899: /*header*/ return new String[] {"string"};
963        default: return super.getTypesForProperty(hash, name);
964        }
965
966      }
967
968      @Override
969      public Base addChild(String name) throws FHIRException {
970        if (name.equals("identifier")) {
971          return addIdentifier();
972        }
973        else if (name.equals("status")) {
974          throw new FHIRException("Cannot call addChild on a primitive type Endpoint.status");
975        }
976        else if (name.equals("connectionType")) {
977          this.connectionType = new Coding();
978          return this.connectionType;
979        }
980        else if (name.equals("name")) {
981          throw new FHIRException("Cannot call addChild on a primitive type Endpoint.name");
982        }
983        else if (name.equals("managingOrganization")) {
984          this.managingOrganization = new Reference();
985          return this.managingOrganization;
986        }
987        else if (name.equals("contact")) {
988          return addContact();
989        }
990        else if (name.equals("period")) {
991          this.period = new Period();
992          return this.period;
993        }
994        else if (name.equals("payloadType")) {
995          return addPayloadType();
996        }
997        else if (name.equals("payloadMimeType")) {
998          throw new FHIRException("Cannot call addChild on a primitive type Endpoint.payloadMimeType");
999        }
1000        else if (name.equals("address")) {
1001          throw new FHIRException("Cannot call addChild on a primitive type Endpoint.address");
1002        }
1003        else if (name.equals("header")) {
1004          throw new FHIRException("Cannot call addChild on a primitive type Endpoint.header");
1005        }
1006        else
1007          return super.addChild(name);
1008      }
1009
1010  public String fhirType() {
1011    return "Endpoint";
1012
1013  }
1014
1015      public Endpoint copy() {
1016        Endpoint dst = new Endpoint();
1017        copyValues(dst);
1018        if (identifier != null) {
1019          dst.identifier = new ArrayList<Identifier>();
1020          for (Identifier i : identifier)
1021            dst.identifier.add(i.copy());
1022        };
1023        dst.status = status == null ? null : status.copy();
1024        dst.connectionType = connectionType == null ? null : connectionType.copy();
1025        dst.name = name == null ? null : name.copy();
1026        dst.managingOrganization = managingOrganization == null ? null : managingOrganization.copy();
1027        if (contact != null) {
1028          dst.contact = new ArrayList<ContactPoint>();
1029          for (ContactPoint i : contact)
1030            dst.contact.add(i.copy());
1031        };
1032        dst.period = period == null ? null : period.copy();
1033        if (payloadType != null) {
1034          dst.payloadType = new ArrayList<CodeableConcept>();
1035          for (CodeableConcept i : payloadType)
1036            dst.payloadType.add(i.copy());
1037        };
1038        if (payloadMimeType != null) {
1039          dst.payloadMimeType = new ArrayList<CodeType>();
1040          for (CodeType i : payloadMimeType)
1041            dst.payloadMimeType.add(i.copy());
1042        };
1043        dst.address = address == null ? null : address.copy();
1044        if (header != null) {
1045          dst.header = new ArrayList<StringType>();
1046          for (StringType i : header)
1047            dst.header.add(i.copy());
1048        };
1049        return dst;
1050      }
1051
1052      protected Endpoint typedCopy() {
1053        return copy();
1054      }
1055
1056      @Override
1057      public boolean equalsDeep(Base other) {
1058        if (!super.equalsDeep(other))
1059          return false;
1060        if (!(other instanceof Endpoint))
1061          return false;
1062        Endpoint o = (Endpoint) other;
1063        return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) && compareDeep(connectionType, o.connectionType, true)
1064           && compareDeep(name, o.name, true) && compareDeep(managingOrganization, o.managingOrganization, true)
1065           && compareDeep(contact, o.contact, true) && compareDeep(period, o.period, true) && compareDeep(payloadType, o.payloadType, true)
1066           && compareDeep(payloadMimeType, o.payloadMimeType, true) && compareDeep(address, o.address, true)
1067           && compareDeep(header, o.header, true);
1068      }
1069
1070      @Override
1071      public boolean equalsShallow(Base other) {
1072        if (!super.equalsShallow(other))
1073          return false;
1074        if (!(other instanceof Endpoint))
1075          return false;
1076        Endpoint o = (Endpoint) other;
1077        return compareValues(status, o.status, true) && compareValues(name, o.name, true) && compareValues(payloadMimeType, o.payloadMimeType, true)
1078           && compareValues(address, o.address, true) && compareValues(header, o.header, true);
1079      }
1080
1081      public boolean isEmpty() {
1082        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, status, connectionType
1083          , name, managingOrganization, contact, period, payloadType, payloadMimeType, address
1084          , header);
1085      }
1086
1087  @Override
1088  public ResourceType getResourceType() {
1089    return ResourceType.Endpoint;
1090   }
1091
1092 /**
1093   * Search parameter: <b>payload-type</b>
1094   * <p>
1095   * Description: <b>The type of content that may be used at this endpoint (e.g. XDS Discharge summaries)</b><br>
1096   * Type: <b>token</b><br>
1097   * Path: <b>Endpoint.payloadType</b><br>
1098   * </p>
1099   */
1100  @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" )
1101  public static final String SP_PAYLOAD_TYPE = "payload-type";
1102 /**
1103   * <b>Fluent Client</b> search parameter constant for <b>payload-type</b>
1104   * <p>
1105   * Description: <b>The type of content that may be used at this endpoint (e.g. XDS Discharge summaries)</b><br>
1106   * Type: <b>token</b><br>
1107   * Path: <b>Endpoint.payloadType</b><br>
1108   * </p>
1109   */
1110  public static final ca.uhn.fhir.rest.gclient.TokenClientParam PAYLOAD_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PAYLOAD_TYPE);
1111
1112 /**
1113   * Search parameter: <b>identifier</b>
1114   * <p>
1115   * Description: <b>Identifies this endpoint across multiple systems</b><br>
1116   * Type: <b>token</b><br>
1117   * Path: <b>Endpoint.identifier</b><br>
1118   * </p>
1119   */
1120  @SearchParamDefinition(name="identifier", path="Endpoint.identifier", description="Identifies this endpoint across multiple systems", type="token" )
1121  public static final String SP_IDENTIFIER = "identifier";
1122 /**
1123   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
1124   * <p>
1125   * Description: <b>Identifies this endpoint across multiple systems</b><br>
1126   * Type: <b>token</b><br>
1127   * Path: <b>Endpoint.identifier</b><br>
1128   * </p>
1129   */
1130  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
1131
1132 /**
1133   * Search parameter: <b>organization</b>
1134   * <p>
1135   * Description: <b>The organization that is managing the endpoint</b><br>
1136   * Type: <b>reference</b><br>
1137   * Path: <b>Endpoint.managingOrganization</b><br>
1138   * </p>
1139   */
1140  @SearchParamDefinition(name="organization", path="Endpoint.managingOrganization", description="The organization that is managing the endpoint", type="reference", target={Organization.class } )
1141  public static final String SP_ORGANIZATION = "organization";
1142 /**
1143   * <b>Fluent Client</b> search parameter constant for <b>organization</b>
1144   * <p>
1145   * Description: <b>The organization that is managing the endpoint</b><br>
1146   * Type: <b>reference</b><br>
1147   * Path: <b>Endpoint.managingOrganization</b><br>
1148   * </p>
1149   */
1150  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ORGANIZATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ORGANIZATION);
1151
1152/**
1153   * Constant for fluent queries to be used to add include statements. Specifies
1154   * the path value of "<b>Endpoint:organization</b>".
1155   */
1156  public static final ca.uhn.fhir.model.api.Include INCLUDE_ORGANIZATION = new ca.uhn.fhir.model.api.Include("Endpoint:organization").toLocked();
1157
1158 /**
1159   * Search parameter: <b>connection-type</b>
1160   * <p>
1161   * Description: <b>Protocol/Profile/Standard to be used with this endpoint connection</b><br>
1162   * Type: <b>token</b><br>
1163   * Path: <b>Endpoint.connectionType</b><br>
1164   * </p>
1165   */
1166  @SearchParamDefinition(name="connection-type", path="Endpoint.connectionType", description="Protocol/Profile/Standard to be used with this endpoint connection", type="token" )
1167  public static final String SP_CONNECTION_TYPE = "connection-type";
1168 /**
1169   * <b>Fluent Client</b> search parameter constant for <b>connection-type</b>
1170   * <p>
1171   * Description: <b>Protocol/Profile/Standard to be used with this endpoint connection</b><br>
1172   * Type: <b>token</b><br>
1173   * Path: <b>Endpoint.connectionType</b><br>
1174   * </p>
1175   */
1176  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONNECTION_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONNECTION_TYPE);
1177
1178 /**
1179   * Search parameter: <b>name</b>
1180   * <p>
1181   * Description: <b>A name that this endpoint can be identified by</b><br>
1182   * Type: <b>string</b><br>
1183   * Path: <b>Endpoint.name</b><br>
1184   * </p>
1185   */
1186  @SearchParamDefinition(name="name", path="Endpoint.name", description="A name that this endpoint can be identified by", type="string" )
1187  public static final String SP_NAME = "name";
1188 /**
1189   * <b>Fluent Client</b> search parameter constant for <b>name</b>
1190   * <p>
1191   * Description: <b>A name that this endpoint can be identified by</b><br>
1192   * Type: <b>string</b><br>
1193   * Path: <b>Endpoint.name</b><br>
1194   * </p>
1195   */
1196  public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME);
1197
1198 /**
1199   * Search parameter: <b>status</b>
1200   * <p>
1201   * Description: <b>The current status of the Endpoint (usually expected to be active)</b><br>
1202   * Type: <b>token</b><br>
1203   * Path: <b>Endpoint.status</b><br>
1204   * </p>
1205   */
1206  @SearchParamDefinition(name="status", path="Endpoint.status", description="The current status of the Endpoint (usually expected to be active)", type="token" )
1207  public static final String SP_STATUS = "status";
1208 /**
1209   * <b>Fluent Client</b> search parameter constant for <b>status</b>
1210   * <p>
1211   * Description: <b>The current status of the Endpoint (usually expected to be active)</b><br>
1212   * Type: <b>token</b><br>
1213   * Path: <b>Endpoint.status</b><br>
1214   * </p>
1215   */
1216  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
1217
1218
1219}
1220