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