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