001package org.hl7.fhir.r4b.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, Dec 31, 2021 05:58+1100 for FHIR v4.3.0-snapshot1
033
034import java.util.ArrayList;
035import java.util.Date;
036import java.util.List;
037import org.hl7.fhir.utilities.Utilities;
038import org.hl7.fhir.r4b.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 or a REST endpoint for another FHIR server. 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     * active | suspended | error | off | test.
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="active | suspended | error | off | test." )
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=1, 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 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=1, 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 = 1528960001L;
298
299  /**
300   * Constructor
301   */
302    public Endpoint() {
303      super();
304    }
305
306  /**
307   * Constructor
308   */
309    public Endpoint(EndpointStatus status, Coding connectionType, CodeableConcept payloadType, String address) {
310      super();
311      this.setStatus(status);
312      this.setConnectionType(connectionType);
313      this.addPayloadType(payloadType);
314      this.setAddress(address);
315    }
316
317    /**
318     * @return {@link #identifier} (Identifier for the organization that is used to identify the endpoint across multiple disparate systems.)
319     */
320    public List<Identifier> getIdentifier() { 
321      if (this.identifier == null)
322        this.identifier = new ArrayList<Identifier>();
323      return this.identifier;
324    }
325
326    /**
327     * @return Returns a reference to <code>this</code> for easy method chaining
328     */
329    public Endpoint setIdentifier(List<Identifier> theIdentifier) { 
330      this.identifier = theIdentifier;
331      return this;
332    }
333
334    public boolean hasIdentifier() { 
335      if (this.identifier == null)
336        return false;
337      for (Identifier item : this.identifier)
338        if (!item.isEmpty())
339          return true;
340      return false;
341    }
342
343    public Identifier addIdentifier() { //3
344      Identifier t = new Identifier();
345      if (this.identifier == null)
346        this.identifier = new ArrayList<Identifier>();
347      this.identifier.add(t);
348      return t;
349    }
350
351    public Endpoint addIdentifier(Identifier t) { //3
352      if (t == null)
353        return this;
354      if (this.identifier == null)
355        this.identifier = new ArrayList<Identifier>();
356      this.identifier.add(t);
357      return this;
358    }
359
360    /**
361     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
362     */
363    public Identifier getIdentifierFirstRep() { 
364      if (getIdentifier().isEmpty()) {
365        addIdentifier();
366      }
367      return getIdentifier().get(0);
368    }
369
370    /**
371     * @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
372     */
373    public Enumeration<EndpointStatus> getStatusElement() { 
374      if (this.status == null)
375        if (Configuration.errorOnAutoCreate())
376          throw new Error("Attempt to auto-create Endpoint.status");
377        else if (Configuration.doAutoCreate())
378          this.status = new Enumeration<EndpointStatus>(new EndpointStatusEnumFactory()); // bb
379      return this.status;
380    }
381
382    public boolean hasStatusElement() { 
383      return this.status != null && !this.status.isEmpty();
384    }
385
386    public boolean hasStatus() { 
387      return this.status != null && !this.status.isEmpty();
388    }
389
390    /**
391     * @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
392     */
393    public Endpoint setStatusElement(Enumeration<EndpointStatus> value) { 
394      this.status = value;
395      return this;
396    }
397
398    /**
399     * @return active | suspended | error | off | test.
400     */
401    public EndpointStatus getStatus() { 
402      return this.status == null ? null : this.status.getValue();
403    }
404
405    /**
406     * @param value active | suspended | error | off | test.
407     */
408    public Endpoint setStatus(EndpointStatus value) { 
409        if (this.status == null)
410          this.status = new Enumeration<EndpointStatus>(new EndpointStatusEnumFactory());
411        this.status.setValue(value);
412      return this;
413    }
414
415    /**
416     * @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).)
417     */
418    public Coding getConnectionType() { 
419      if (this.connectionType == null)
420        if (Configuration.errorOnAutoCreate())
421          throw new Error("Attempt to auto-create Endpoint.connectionType");
422        else if (Configuration.doAutoCreate())
423          this.connectionType = new Coding(); // cc
424      return this.connectionType;
425    }
426
427    public boolean hasConnectionType() { 
428      return this.connectionType != null && !this.connectionType.isEmpty();
429    }
430
431    /**
432     * @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).)
433     */
434    public Endpoint setConnectionType(Coding value) { 
435      this.connectionType = value;
436      return this;
437    }
438
439    /**
440     * @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
441     */
442    public StringType getNameElement() { 
443      if (this.name == null)
444        if (Configuration.errorOnAutoCreate())
445          throw new Error("Attempt to auto-create Endpoint.name");
446        else if (Configuration.doAutoCreate())
447          this.name = new StringType(); // bb
448      return this.name;
449    }
450
451    public boolean hasNameElement() { 
452      return this.name != null && !this.name.isEmpty();
453    }
454
455    public boolean hasName() { 
456      return this.name != null && !this.name.isEmpty();
457    }
458
459    /**
460     * @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
461     */
462    public Endpoint setNameElement(StringType value) { 
463      this.name = value;
464      return this;
465    }
466
467    /**
468     * @return A friendly name that this endpoint can be referred to with.
469     */
470    public String getName() { 
471      return this.name == null ? null : this.name.getValue();
472    }
473
474    /**
475     * @param value A friendly name that this endpoint can be referred to with.
476     */
477    public Endpoint setName(String value) { 
478      if (Utilities.noString(value))
479        this.name = null;
480      else {
481        if (this.name == null)
482          this.name = new StringType();
483        this.name.setValue(value);
484      }
485      return this;
486    }
487
488    /**
489     * @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).)
490     */
491    public Reference getManagingOrganization() { 
492      if (this.managingOrganization == null)
493        if (Configuration.errorOnAutoCreate())
494          throw new Error("Attempt to auto-create Endpoint.managingOrganization");
495        else if (Configuration.doAutoCreate())
496          this.managingOrganization = new Reference(); // cc
497      return this.managingOrganization;
498    }
499
500    public boolean hasManagingOrganization() { 
501      return this.managingOrganization != null && !this.managingOrganization.isEmpty();
502    }
503
504    /**
505     * @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).)
506     */
507    public Endpoint setManagingOrganization(Reference value) { 
508      this.managingOrganization = value;
509      return this;
510    }
511
512    /**
513     * @return {@link #contact} (Contact details for a human to contact about the subscription. The primary use of this for system administrator troubleshooting.)
514     */
515    public List<ContactPoint> getContact() { 
516      if (this.contact == null)
517        this.contact = new ArrayList<ContactPoint>();
518      return this.contact;
519    }
520
521    /**
522     * @return Returns a reference to <code>this</code> for easy method chaining
523     */
524    public Endpoint setContact(List<ContactPoint> theContact) { 
525      this.contact = theContact;
526      return this;
527    }
528
529    public boolean hasContact() { 
530      if (this.contact == null)
531        return false;
532      for (ContactPoint item : this.contact)
533        if (!item.isEmpty())
534          return true;
535      return false;
536    }
537
538    public ContactPoint addContact() { //3
539      ContactPoint t = new ContactPoint();
540      if (this.contact == null)
541        this.contact = new ArrayList<ContactPoint>();
542      this.contact.add(t);
543      return t;
544    }
545
546    public Endpoint addContact(ContactPoint t) { //3
547      if (t == null)
548        return this;
549      if (this.contact == null)
550        this.contact = new ArrayList<ContactPoint>();
551      this.contact.add(t);
552      return this;
553    }
554
555    /**
556     * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist {3}
557     */
558    public ContactPoint getContactFirstRep() { 
559      if (getContact().isEmpty()) {
560        addContact();
561      }
562      return getContact().get(0);
563    }
564
565    /**
566     * @return {@link #period} (The interval during which the endpoint is expected to be operational.)
567     */
568    public Period getPeriod() { 
569      if (this.period == null)
570        if (Configuration.errorOnAutoCreate())
571          throw new Error("Attempt to auto-create Endpoint.period");
572        else if (Configuration.doAutoCreate())
573          this.period = new Period(); // cc
574      return this.period;
575    }
576
577    public boolean hasPeriod() { 
578      return this.period != null && !this.period.isEmpty();
579    }
580
581    /**
582     * @param value {@link #period} (The interval during which the endpoint is expected to be operational.)
583     */
584    public Endpoint setPeriod(Period value) { 
585      this.period = value;
586      return this;
587    }
588
589    /**
590     * @return {@link #payloadType} (The payload type describes the acceptable content that can be communicated on the endpoint.)
591     */
592    public List<CodeableConcept> getPayloadType() { 
593      if (this.payloadType == null)
594        this.payloadType = new ArrayList<CodeableConcept>();
595      return this.payloadType;
596    }
597
598    /**
599     * @return Returns a reference to <code>this</code> for easy method chaining
600     */
601    public Endpoint setPayloadType(List<CodeableConcept> thePayloadType) { 
602      this.payloadType = thePayloadType;
603      return this;
604    }
605
606    public boolean hasPayloadType() { 
607      if (this.payloadType == null)
608        return false;
609      for (CodeableConcept item : this.payloadType)
610        if (!item.isEmpty())
611          return true;
612      return false;
613    }
614
615    public CodeableConcept addPayloadType() { //3
616      CodeableConcept t = new CodeableConcept();
617      if (this.payloadType == null)
618        this.payloadType = new ArrayList<CodeableConcept>();
619      this.payloadType.add(t);
620      return t;
621    }
622
623    public Endpoint addPayloadType(CodeableConcept t) { //3
624      if (t == null)
625        return this;
626      if (this.payloadType == null)
627        this.payloadType = new ArrayList<CodeableConcept>();
628      this.payloadType.add(t);
629      return this;
630    }
631
632    /**
633     * @return The first repetition of repeating field {@link #payloadType}, creating it if it does not already exist {3}
634     */
635    public CodeableConcept getPayloadTypeFirstRep() { 
636      if (getPayloadType().isEmpty()) {
637        addPayloadType();
638      }
639      return getPayloadType().get(0);
640    }
641
642    /**
643     * @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).)
644     */
645    public List<CodeType> getPayloadMimeType() { 
646      if (this.payloadMimeType == null)
647        this.payloadMimeType = new ArrayList<CodeType>();
648      return this.payloadMimeType;
649    }
650
651    /**
652     * @return Returns a reference to <code>this</code> for easy method chaining
653     */
654    public Endpoint setPayloadMimeType(List<CodeType> thePayloadMimeType) { 
655      this.payloadMimeType = thePayloadMimeType;
656      return this;
657    }
658
659    public boolean hasPayloadMimeType() { 
660      if (this.payloadMimeType == null)
661        return false;
662      for (CodeType item : this.payloadMimeType)
663        if (!item.isEmpty())
664          return true;
665      return false;
666    }
667
668    /**
669     * @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).)
670     */
671    public CodeType addPayloadMimeTypeElement() {//2 
672      CodeType t = new CodeType();
673      if (this.payloadMimeType == null)
674        this.payloadMimeType = new ArrayList<CodeType>();
675      this.payloadMimeType.add(t);
676      return t;
677    }
678
679    /**
680     * @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).)
681     */
682    public Endpoint addPayloadMimeType(String value) { //1
683      CodeType t = new CodeType();
684      t.setValue(value);
685      if (this.payloadMimeType == null)
686        this.payloadMimeType = new ArrayList<CodeType>();
687      this.payloadMimeType.add(t);
688      return this;
689    }
690
691    /**
692     * @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).)
693     */
694    public boolean hasPayloadMimeType(String value) { 
695      if (this.payloadMimeType == null)
696        return false;
697      for (CodeType v : this.payloadMimeType)
698        if (v.getValue().equals(value)) // code
699          return true;
700      return false;
701    }
702
703    /**
704     * @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
705     */
706    public UrlType getAddressElement() { 
707      if (this.address == null)
708        if (Configuration.errorOnAutoCreate())
709          throw new Error("Attempt to auto-create Endpoint.address");
710        else if (Configuration.doAutoCreate())
711          this.address = new UrlType(); // bb
712      return this.address;
713    }
714
715    public boolean hasAddressElement() { 
716      return this.address != null && !this.address.isEmpty();
717    }
718
719    public boolean hasAddress() { 
720      return this.address != null && !this.address.isEmpty();
721    }
722
723    /**
724     * @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
725     */
726    public Endpoint setAddressElement(UrlType value) { 
727      this.address = value;
728      return this;
729    }
730
731    /**
732     * @return The uri that describes the actual end-point to connect to.
733     */
734    public String getAddress() { 
735      return this.address == null ? null : this.address.getValue();
736    }
737
738    /**
739     * @param value The uri that describes the actual end-point to connect to.
740     */
741    public Endpoint setAddress(String value) { 
742        if (this.address == null)
743          this.address = new UrlType();
744        this.address.setValue(value);
745      return this;
746    }
747
748    /**
749     * @return {@link #header} (Additional headers / information to send as part of the notification.)
750     */
751    public List<StringType> getHeader() { 
752      if (this.header == null)
753        this.header = new ArrayList<StringType>();
754      return this.header;
755    }
756
757    /**
758     * @return Returns a reference to <code>this</code> for easy method chaining
759     */
760    public Endpoint setHeader(List<StringType> theHeader) { 
761      this.header = theHeader;
762      return this;
763    }
764
765    public boolean hasHeader() { 
766      if (this.header == null)
767        return false;
768      for (StringType item : this.header)
769        if (!item.isEmpty())
770          return true;
771      return false;
772    }
773
774    /**
775     * @return {@link #header} (Additional headers / information to send as part of the notification.)
776     */
777    public StringType addHeaderElement() {//2 
778      StringType t = new StringType();
779      if (this.header == null)
780        this.header = new ArrayList<StringType>();
781      this.header.add(t);
782      return t;
783    }
784
785    /**
786     * @param value {@link #header} (Additional headers / information to send as part of the notification.)
787     */
788    public Endpoint addHeader(String value) { //1
789      StringType t = new StringType();
790      t.setValue(value);
791      if (this.header == null)
792        this.header = new ArrayList<StringType>();
793      this.header.add(t);
794      return this;
795    }
796
797    /**
798     * @param value {@link #header} (Additional headers / information to send as part of the notification.)
799     */
800    public boolean hasHeader(String value) { 
801      if (this.header == null)
802        return false;
803      for (StringType v : this.header)
804        if (v.getValue().equals(value)) // string
805          return true;
806      return false;
807    }
808
809      protected void listChildren(List<Property> children) {
810        super.listChildren(children);
811        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));
812        children.add(new Property("status", "code", "active | suspended | error | off | test.", 0, 1, status));
813        children.add(new Property("connectionType", "Coding", "A coded value that represents the technical details of the usage of this endpoint, such as what WSDLs should be used in what way. (e.g. XDS.b/DICOM/cds-hook).", 0, 1, connectionType));
814        children.add(new Property("name", "string", "A friendly name that this endpoint can be referred to with.", 0, 1, name));
815        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));
816        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));
817        children.add(new Property("period", "Period", "The interval during which the endpoint is expected to be operational.", 0, 1, period));
818        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));
819        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));
820        children.add(new Property("address", "url", "The uri that describes the actual end-point to connect to.", 0, 1, address));
821        children.add(new Property("header", "string", "Additional headers / information to send as part of the notification.", 0, java.lang.Integer.MAX_VALUE, header));
822      }
823
824      @Override
825      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
826        switch (_hash) {
827        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);
828        case -892481550: /*status*/  return new Property("status", "code", "active | suspended | error | off | test.", 0, 1, status);
829        case 1270211384: /*connectionType*/  return new Property("connectionType", "Coding", "A coded value that represents the technical details of the usage of this endpoint, such as what WSDLs should be used in what way. (e.g. XDS.b/DICOM/cds-hook).", 0, 1, connectionType);
830        case 3373707: /*name*/  return new Property("name", "string", "A friendly name that this endpoint can be referred to with.", 0, 1, name);
831        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);
832        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);
833        case -991726143: /*period*/  return new Property("period", "Period", "The interval during which the endpoint is expected to be operational.", 0, 1, period);
834        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);
835        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);
836        case -1147692044: /*address*/  return new Property("address", "url", "The uri that describes the actual end-point to connect to.", 0, 1, address);
837        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);
838        default: return super.getNamedProperty(_hash, _name, _checkValid);
839        }
840
841      }
842
843      @Override
844      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
845        switch (hash) {
846        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
847        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<EndpointStatus>
848        case 1270211384: /*connectionType*/ return this.connectionType == null ? new Base[0] : new Base[] {this.connectionType}; // Coding
849        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
850        case -2058947787: /*managingOrganization*/ return this.managingOrganization == null ? new Base[0] : new Base[] {this.managingOrganization}; // Reference
851        case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactPoint
852        case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period
853        case 909929960: /*payloadType*/ return this.payloadType == null ? new Base[0] : this.payloadType.toArray(new Base[this.payloadType.size()]); // CodeableConcept
854        case -1702836932: /*payloadMimeType*/ return this.payloadMimeType == null ? new Base[0] : this.payloadMimeType.toArray(new Base[this.payloadMimeType.size()]); // CodeType
855        case -1147692044: /*address*/ return this.address == null ? new Base[0] : new Base[] {this.address}; // UrlType
856        case -1221270899: /*header*/ return this.header == null ? new Base[0] : this.header.toArray(new Base[this.header.size()]); // StringType
857        default: return super.getProperty(hash, name, checkValid);
858        }
859
860      }
861
862      @Override
863      public Base setProperty(int hash, String name, Base value) throws FHIRException {
864        switch (hash) {
865        case -1618432855: // identifier
866          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
867          return value;
868        case -892481550: // status
869          value = new EndpointStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
870          this.status = (Enumeration) value; // Enumeration<EndpointStatus>
871          return value;
872        case 1270211384: // connectionType
873          this.connectionType = TypeConvertor.castToCoding(value); // Coding
874          return value;
875        case 3373707: // name
876          this.name = TypeConvertor.castToString(value); // StringType
877          return value;
878        case -2058947787: // managingOrganization
879          this.managingOrganization = TypeConvertor.castToReference(value); // Reference
880          return value;
881        case 951526432: // contact
882          this.getContact().add(TypeConvertor.castToContactPoint(value)); // ContactPoint
883          return value;
884        case -991726143: // period
885          this.period = TypeConvertor.castToPeriod(value); // Period
886          return value;
887        case 909929960: // payloadType
888          this.getPayloadType().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
889          return value;
890        case -1702836932: // payloadMimeType
891          this.getPayloadMimeType().add(TypeConvertor.castToCode(value)); // CodeType
892          return value;
893        case -1147692044: // address
894          this.address = TypeConvertor.castToUrl(value); // UrlType
895          return value;
896        case -1221270899: // header
897          this.getHeader().add(TypeConvertor.castToString(value)); // StringType
898          return value;
899        default: return super.setProperty(hash, name, value);
900        }
901
902      }
903
904      @Override
905      public Base setProperty(String name, Base value) throws FHIRException {
906        if (name.equals("identifier")) {
907          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
908        } else if (name.equals("status")) {
909          value = new EndpointStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
910          this.status = (Enumeration) value; // Enumeration<EndpointStatus>
911        } else if (name.equals("connectionType")) {
912          this.connectionType = TypeConvertor.castToCoding(value); // Coding
913        } else if (name.equals("name")) {
914          this.name = TypeConvertor.castToString(value); // StringType
915        } else if (name.equals("managingOrganization")) {
916          this.managingOrganization = TypeConvertor.castToReference(value); // Reference
917        } else if (name.equals("contact")) {
918          this.getContact().add(TypeConvertor.castToContactPoint(value));
919        } else if (name.equals("period")) {
920          this.period = TypeConvertor.castToPeriod(value); // Period
921        } else if (name.equals("payloadType")) {
922          this.getPayloadType().add(TypeConvertor.castToCodeableConcept(value));
923        } else if (name.equals("payloadMimeType")) {
924          this.getPayloadMimeType().add(TypeConvertor.castToCode(value));
925        } else if (name.equals("address")) {
926          this.address = TypeConvertor.castToUrl(value); // UrlType
927        } else if (name.equals("header")) {
928          this.getHeader().add(TypeConvertor.castToString(value));
929        } else
930          return super.setProperty(name, value);
931        return value;
932      }
933
934      @Override
935      public Base makeProperty(int hash, String name) throws FHIRException {
936        switch (hash) {
937        case -1618432855:  return addIdentifier(); 
938        case -892481550:  return getStatusElement();
939        case 1270211384:  return getConnectionType();
940        case 3373707:  return getNameElement();
941        case -2058947787:  return getManagingOrganization();
942        case 951526432:  return addContact(); 
943        case -991726143:  return getPeriod();
944        case 909929960:  return addPayloadType(); 
945        case -1702836932:  return addPayloadMimeTypeElement();
946        case -1147692044:  return getAddressElement();
947        case -1221270899:  return addHeaderElement();
948        default: return super.makeProperty(hash, name);
949        }
950
951      }
952
953      @Override
954      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
955        switch (hash) {
956        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
957        case -892481550: /*status*/ return new String[] {"code"};
958        case 1270211384: /*connectionType*/ return new String[] {"Coding"};
959        case 3373707: /*name*/ return new String[] {"string"};
960        case -2058947787: /*managingOrganization*/ return new String[] {"Reference"};
961        case 951526432: /*contact*/ return new String[] {"ContactPoint"};
962        case -991726143: /*period*/ return new String[] {"Period"};
963        case 909929960: /*payloadType*/ return new String[] {"CodeableConcept"};
964        case -1702836932: /*payloadMimeType*/ return new String[] {"code"};
965        case -1147692044: /*address*/ return new String[] {"url"};
966        case -1221270899: /*header*/ return new String[] {"string"};
967        default: return super.getTypesForProperty(hash, name);
968        }
969
970      }
971
972      @Override
973      public Base addChild(String name) throws FHIRException {
974        if (name.equals("identifier")) {
975          return addIdentifier();
976        }
977        else if (name.equals("status")) {
978          throw new FHIRException("Cannot call addChild on a primitive type Endpoint.status");
979        }
980        else if (name.equals("connectionType")) {
981          this.connectionType = new Coding();
982          return this.connectionType;
983        }
984        else if (name.equals("name")) {
985          throw new FHIRException("Cannot call addChild on a primitive type Endpoint.name");
986        }
987        else if (name.equals("managingOrganization")) {
988          this.managingOrganization = new Reference();
989          return this.managingOrganization;
990        }
991        else if (name.equals("contact")) {
992          return addContact();
993        }
994        else if (name.equals("period")) {
995          this.period = new Period();
996          return this.period;
997        }
998        else if (name.equals("payloadType")) {
999          return addPayloadType();
1000        }
1001        else if (name.equals("payloadMimeType")) {
1002          throw new FHIRException("Cannot call addChild on a primitive type Endpoint.payloadMimeType");
1003        }
1004        else if (name.equals("address")) {
1005          throw new FHIRException("Cannot call addChild on a primitive type Endpoint.address");
1006        }
1007        else if (name.equals("header")) {
1008          throw new FHIRException("Cannot call addChild on a primitive type Endpoint.header");
1009        }
1010        else
1011          return super.addChild(name);
1012      }
1013
1014  public String fhirType() {
1015    return "Endpoint";
1016
1017  }
1018
1019      public Endpoint copy() {
1020        Endpoint dst = new Endpoint();
1021        copyValues(dst);
1022        return dst;
1023      }
1024
1025      public void copyValues(Endpoint dst) {
1026        super.copyValues(dst);
1027        if (identifier != null) {
1028          dst.identifier = new ArrayList<Identifier>();
1029          for (Identifier i : identifier)
1030            dst.identifier.add(i.copy());
1031        };
1032        dst.status = status == null ? null : status.copy();
1033        dst.connectionType = connectionType == null ? null : connectionType.copy();
1034        dst.name = name == null ? null : name.copy();
1035        dst.managingOrganization = managingOrganization == null ? null : managingOrganization.copy();
1036        if (contact != null) {
1037          dst.contact = new ArrayList<ContactPoint>();
1038          for (ContactPoint i : contact)
1039            dst.contact.add(i.copy());
1040        };
1041        dst.period = period == null ? null : period.copy();
1042        if (payloadType != null) {
1043          dst.payloadType = new ArrayList<CodeableConcept>();
1044          for (CodeableConcept i : payloadType)
1045            dst.payloadType.add(i.copy());
1046        };
1047        if (payloadMimeType != null) {
1048          dst.payloadMimeType = new ArrayList<CodeType>();
1049          for (CodeType i : payloadMimeType)
1050            dst.payloadMimeType.add(i.copy());
1051        };
1052        dst.address = address == null ? null : address.copy();
1053        if (header != null) {
1054          dst.header = new ArrayList<StringType>();
1055          for (StringType i : header)
1056            dst.header.add(i.copy());
1057        };
1058      }
1059
1060      protected Endpoint typedCopy() {
1061        return copy();
1062      }
1063
1064      @Override
1065      public boolean equalsDeep(Base other_) {
1066        if (!super.equalsDeep(other_))
1067          return false;
1068        if (!(other_ instanceof Endpoint))
1069          return false;
1070        Endpoint o = (Endpoint) other_;
1071        return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) && compareDeep(connectionType, o.connectionType, true)
1072           && compareDeep(name, o.name, true) && compareDeep(managingOrganization, o.managingOrganization, true)
1073           && compareDeep(contact, o.contact, true) && compareDeep(period, o.period, true) && compareDeep(payloadType, o.payloadType, true)
1074           && compareDeep(payloadMimeType, o.payloadMimeType, true) && compareDeep(address, o.address, true)
1075           && compareDeep(header, o.header, true);
1076      }
1077
1078      @Override
1079      public boolean equalsShallow(Base other_) {
1080        if (!super.equalsShallow(other_))
1081          return false;
1082        if (!(other_ instanceof Endpoint))
1083          return false;
1084        Endpoint o = (Endpoint) other_;
1085        return compareValues(status, o.status, true) && compareValues(name, o.name, true) && compareValues(payloadMimeType, o.payloadMimeType, true)
1086           && compareValues(address, o.address, true) && compareValues(header, o.header, true);
1087      }
1088
1089      public boolean isEmpty() {
1090        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, status, connectionType
1091          , name, managingOrganization, contact, period, payloadType, payloadMimeType, address
1092          , header);
1093      }
1094
1095  @Override
1096  public ResourceType getResourceType() {
1097    return ResourceType.Endpoint;
1098   }
1099
1100 /**
1101   * Search parameter: <b>connection-type</b>
1102   * <p>
1103   * Description: <b>Protocol/Profile/Standard to be used with this endpoint connection</b><br>
1104   * Type: <b>token</b><br>
1105   * Path: <b>Endpoint.connectionType</b><br>
1106   * </p>
1107   */
1108  @SearchParamDefinition(name="connection-type", path="Endpoint.connectionType", description="Protocol/Profile/Standard to be used with this endpoint connection", type="token" )
1109  public static final String SP_CONNECTION_TYPE = "connection-type";
1110 /**
1111   * <b>Fluent Client</b> search parameter constant for <b>connection-type</b>
1112   * <p>
1113   * Description: <b>Protocol/Profile/Standard to be used with this endpoint connection</b><br>
1114   * Type: <b>token</b><br>
1115   * Path: <b>Endpoint.connectionType</b><br>
1116   * </p>
1117   */
1118  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONNECTION_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONNECTION_TYPE);
1119
1120 /**
1121   * Search parameter: <b>identifier</b>
1122   * <p>
1123   * Description: <b>Identifies this endpoint across multiple systems</b><br>
1124   * Type: <b>token</b><br>
1125   * Path: <b>Endpoint.identifier</b><br>
1126   * </p>
1127   */
1128  @SearchParamDefinition(name="identifier", path="Endpoint.identifier", description="Identifies this endpoint across multiple systems", type="token" )
1129  public static final String SP_IDENTIFIER = "identifier";
1130 /**
1131   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
1132   * <p>
1133   * Description: <b>Identifies this endpoint across multiple systems</b><br>
1134   * Type: <b>token</b><br>
1135   * Path: <b>Endpoint.identifier</b><br>
1136   * </p>
1137   */
1138  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
1139
1140 /**
1141   * Search parameter: <b>name</b>
1142   * <p>
1143   * Description: <b>A name that this endpoint can be identified by</b><br>
1144   * Type: <b>string</b><br>
1145   * Path: <b>Endpoint.name</b><br>
1146   * </p>
1147   */
1148  @SearchParamDefinition(name="name", path="Endpoint.name", description="A name that this endpoint can be identified by", type="string" )
1149  public static final String SP_NAME = "name";
1150 /**
1151   * <b>Fluent Client</b> search parameter constant for <b>name</b>
1152   * <p>
1153   * Description: <b>A name that this endpoint can be identified by</b><br>
1154   * Type: <b>string</b><br>
1155   * Path: <b>Endpoint.name</b><br>
1156   * </p>
1157   */
1158  public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME);
1159
1160 /**
1161   * Search parameter: <b>organization</b>
1162   * <p>
1163   * Description: <b>The organization that is managing the endpoint</b><br>
1164   * Type: <b>reference</b><br>
1165   * Path: <b>Endpoint.managingOrganization</b><br>
1166   * </p>
1167   */
1168  @SearchParamDefinition(name="organization", path="Endpoint.managingOrganization", description="The organization that is managing the endpoint", type="reference", target={Organization.class } )
1169  public static final String SP_ORGANIZATION = "organization";
1170 /**
1171   * <b>Fluent Client</b> search parameter constant for <b>organization</b>
1172   * <p>
1173   * Description: <b>The organization that is managing the endpoint</b><br>
1174   * Type: <b>reference</b><br>
1175   * Path: <b>Endpoint.managingOrganization</b><br>
1176   * </p>
1177   */
1178  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ORGANIZATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ORGANIZATION);
1179
1180/**
1181   * Constant for fluent queries to be used to add include statements. Specifies
1182   * the path value of "<b>Endpoint:organization</b>".
1183   */
1184  public static final ca.uhn.fhir.model.api.Include INCLUDE_ORGANIZATION = new ca.uhn.fhir.model.api.Include("Endpoint:organization").toLocked();
1185
1186 /**
1187   * Search parameter: <b>payload-type</b>
1188   * <p>
1189   * Description: <b>The type of content that may be used at this endpoint (e.g. XDS Discharge summaries)</b><br>
1190   * Type: <b>token</b><br>
1191   * Path: <b>Endpoint.payloadType</b><br>
1192   * </p>
1193   */
1194  @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" )
1195  public static final String SP_PAYLOAD_TYPE = "payload-type";
1196 /**
1197   * <b>Fluent Client</b> search parameter constant for <b>payload-type</b>
1198   * <p>
1199   * Description: <b>The type of content that may be used at this endpoint (e.g. XDS Discharge summaries)</b><br>
1200   * Type: <b>token</b><br>
1201   * Path: <b>Endpoint.payloadType</b><br>
1202   * </p>
1203   */
1204  public static final ca.uhn.fhir.rest.gclient.TokenClientParam PAYLOAD_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PAYLOAD_TYPE);
1205
1206 /**
1207   * Search parameter: <b>status</b>
1208   * <p>
1209   * Description: <b>The current status of the Endpoint (usually expected to be active)</b><br>
1210   * Type: <b>token</b><br>
1211   * Path: <b>Endpoint.status</b><br>
1212   * </p>
1213   */
1214  @SearchParamDefinition(name="status", path="Endpoint.status", description="The current status of the Endpoint (usually expected to be active)", type="token" )
1215  public static final String SP_STATUS = "status";
1216 /**
1217   * <b>Fluent Client</b> search parameter constant for <b>status</b>
1218   * <p>
1219   * Description: <b>The current status of the Endpoint (usually expected to be active)</b><br>
1220   * Type: <b>token</b><br>
1221   * Path: <b>Endpoint.status</b><br>
1222   * </p>
1223   */
1224  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
1225
1226
1227}
1228