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