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