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