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