openapi: 3.0.1
info:
  title: ImmunizationRecommendation
  description: "A simplified version of the HL7 FHIR API for ImmunizationRecommendation\
    \ resource.\nSupported Profiles: \nhttp://hl7.org/fhir/StructureDefinition/ImmunizationRecommendation\n"
  contact:
    name: API Support
    url: https://wso2.com/contact/
    email: user@email.com
  version: 1.0.0
tags:
- name: http://hl7.org/fhir/StructureDefinition/ImmunizationRecommendation
- name: ImmunizationRecommendation
- name: 4.0.1
paths:
  /:
    get:
      tags:
      - GET
      - ImmunizationRecommendation
      parameters:
      - name: date
        in: query
        description: Date recommendation(s) created
        required: false
        schema:
          type: string
        x-wso2-oh-fhirType: date
      - name: identifier
        in: query
        description: Business identifier
        required: false
        schema:
          type: string
        x-wso2-oh-fhirType: token
      - name: information
        in: query
        description: Patient observations supporting recommendation
        required: false
        schema:
          type: string
        x-wso2-oh-fhirType: reference
      - name: patient
        in: query
        description: Who this profile is for
        required: false
        schema:
          type: string
        x-wso2-oh-fhirType: reference
      - name: status
        in: query
        description: Vaccine recommendation status
        required: false
        schema:
          type: string
        x-wso2-oh-fhirType: token
      - name: support
        in: query
        description: Past immunizations supporting recommendation
        required: false
        schema:
          type: string
        x-wso2-oh-fhirType: reference
      - name: target-disease
        in: query
        description: Disease to be immunized against
        required: false
        schema:
          type: string
        x-wso2-oh-fhirType: token
      - name: vaccine-type
        in: query
        description: Vaccine  or vaccine group recommendation applies to
        required: false
        schema:
          type: string
        x-wso2-oh-fhirType: token
      - $ref: "#/components/parameters/_lastUpdatedParam"
      - $ref: "#/components/parameters/_securityParam"
      - $ref: "#/components/parameters/_tagParam"
      - $ref: "#/components/parameters/_idParam"
      - $ref: "#/components/parameters/_sourceParam"
      - $ref: "#/components/parameters/_profileParam"
      responses:
        "200":
          description: search ImmunizationRecommendation operation successful
          content:
            application/fhir+json:
              schema:
                $ref: "#/components/schemas/Bundle"
      security:
      - default:
        - patient/ImmunizationRecommendation.s
        - user/ImmunizationRecommendation.s
        - system/ImmunizationRecommendation.s
      x-auth-type: Application & Application User
  /{id}:
    get:
      tags:
      - GET
      - ImmunizationRecommendation
      parameters:
      - name: id
        in: path
        description: logical identifier
        required: true
        schema:
          type: string
      responses:
        "200":
          description: read ImmunizationRecommendation operation successful
          content:
            application/fhir+json:
              schema:
                $ref: "#/components/schemas/ImmunizationRecommendation"
      security:
      - default:
        - patient/ImmunizationRecommendation.r
        - user/ImmunizationRecommendation.r
        - system/ImmunizationRecommendation.r
      x-auth-type: Application & Application User
    put:
      tags:
      - PUT
      - ImmunizationRecommendation
      parameters:
      - name: id
        in: path
        description: logical identifier
        required: true
        schema:
          type: string
      responses:
        "200":
          description: update ImmunizationRecommendation operation successful
      security:
      - default:
        - patient/ImmunizationRecommendation.u
        - user/ImmunizationRecommendation.u
        - system/ImmunizationRecommendation.u
      x-auth-type: Application & Application User
    delete:
      tags:
      - DELETE
      - ImmunizationRecommendation
      parameters:
      - name: id
        in: path
        description: logical identifier
        required: true
        schema:
          type: string
      responses:
        "204":
          description: delete ImmunizationRecommendation operation successful
      security:
      - default:
        - patient/ImmunizationRecommendation.d
        - user/ImmunizationRecommendation.d
        - system/ImmunizationRecommendation.d
      x-auth-type: Application & Application User
    patch:
      tags:
      - PATCH
      - ImmunizationRecommendation
      parameters:
      - name: id
        in: path
        description: logical identifier
        required: true
        schema:
          type: string
      responses:
        "200":
          description: patch ImmunizationRecommendation operation successful
      security:
      - default:
        - patient/ImmunizationRecommendation.u
        - user/ImmunizationRecommendation.u
        - system/ImmunizationRecommendation.u
      x-auth-type: Application & Application User
components:
  schemas:
    Resource:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          language:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: The base language in which the resource is written.
    DomainResource:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          modifierExtension:
            $ref: "#/components/schemas/Extension"
    Bundle:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          signature:
            $ref: "#/components/schemas/Signature"
    OperationOutcome:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    Bundle_Entry:
      allOf:
      - $ref: "#/components/schemas/BackboneElement"
      - type: object
        properties:
          link:
            type: array
            items:
              $ref: "#/components/schemas/Bundle_Link"
          fullUrl:
            pattern: \S*
            type: string
            description: "The Absolute URL for the resource.  The fullUrl SHALL NOT\
              \ disagree with the id in the resource &ndash; i.e. if the fullUrl is\
              \ not a urn:uuid, the URL shall be version&ndash;independent URL consistent\
              \ with the Resource.id. The fullUrl is a version independent reference\
              \ to the resource. The fullUrl element SHALL have a value except that:\
              \ \n* fullUrl can be empty on a POST (although it does not need to when\
              \ specifying a temporary id for reference in the bundle)\n* Results\
              \ from operations might involve resources that are not identified."
          resource:
            $ref: "#/components/schemas/Resource"
          search:
            $ref: "#/components/schemas/Bundle_Entry_Search"
          request:
            $ref: "#/components/schemas/Bundle_Entry_Request"
          response:
            $ref: "#/components/schemas/Bundle_Entry_Response"
    Bundle_Entry_Response:
      required:
      - status
      allOf:
      - $ref: "#/components/schemas/BackboneElement"
      - type: object
        properties:
          status:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: The status code returned by processing this entry. The status
              SHALL start with a 3 digit HTTP code (e.g. 404) and may contain the
              standard HTTP description associated with the status code.
          location:
            pattern: \S*
            type: string
            description: "The location header created by processing this operation,\
              \ populated if the operation returns a location."
          etag:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: "The Etag for the resource, if the operation for the entry\
              \ produced a versioned resource (see [Resource Metadata and Versioning](http.html#versioning)\
              \ and [Managing Resource Contention](http.html#concurrency))."
          lastModified:
            pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\
              .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))"
            type: string
            description: The date/time that the resource was modified on the server.
          outcome:
            $ref: "#/components/schemas/Resource"
    Bundle_Entry_Request:
      required:
      - method
      - url
      allOf:
      - $ref: "#/components/schemas/BackboneElement"
      - type: object
        properties:
          method:
            type: string
            description: "In a transaction or batch, this is the HTTP action to be\
              \ executed for this entry. In a history bundle, this indicates the HTTP\
              \ action that occurred."
            enum:
            - GET
            - HEAD
            - POST
            - PUT
            - DELETE
            - PATCH
          url:
            pattern: \S*
            type: string
            description: "The URL for this entry, relative to the root (the address\
              \ to which the request is posted)."
          ifNoneMatch:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: "If the ETag values match, return a 304 Not Modified status.\
              \ See the API documentation for [\"Conditional Read\"](http.html#cread)."
          ifModifiedSince:
            pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\
              .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))"
            type: string
            description: "Only perform the operation if the last updated date matches.\
              \ See the API documentation for [\"Conditional Read\"](http.html#cread)."
          ifMatch:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: "Only perform the operation if the Etag value matches. For\
              \ more information, see the API section [\"Managing Resource Contention\"\
              ](http.html#concurrency)."
          ifNoneExist:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: "Instruct the server not to perform the create if a specified\
              \ resource already exists. For further information, see the API documentation\
              \ for [\"Conditional Create\"](http.html#ccreate). This is just the\
              \ query portion of the URL &ndash; what follows the \"?\" (not including\
              \ the \"?\")."
    Bundle_Entry_Search:
      allOf:
      - $ref: "#/components/schemas/BackboneElement"
      - type: object
        properties:
          mode:
            type: string
            description: "Why this entry is in the result set &ndash; whether it's\
              \ included as a match or because of an _include requirement, or to convey\
              \ information or warning information about the search process."
            enum:
            - match
            - include
            - outcome
          score:
            type: number
            description: "When searching, the server's search ranking score for the\
              \ entry."
    Bundle_Link:
      required:
      - relation
      - url
      allOf:
      - $ref: "#/components/schemas/BackboneElement"
      - type: object
        properties:
          relation:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: "A name which details the functional use for this link &ndash;\
              \ see [http://www.iana.org/assignments/link&ndash;relations/link&ndash;relations.xhtml#link&ndash;relations&ndash;1](http://www.iana.org/assignments/link&ndash;relations/link&ndash;relations.xhtml#link&ndash;relations&ndash;1)."
          url:
            pattern: \S*
            type: string
            description: The reference details for the link.
    OperationOutcome_Issue:
      required:
      - code
      - severity
      allOf:
      - $ref: "#/components/schemas/BackboneElement"
      - type: object
        properties:
          severity:
            type: string
            description: Indicates whether the issue indicates a variation from successful
              processing.
            enum:
            - fatal
            - error
            - warning
            - information
          code:
            type: string
            description: "Describes the type of the issue. The system that creates\
              \ an OperationOutcome SHALL choose the most applicable code from the\
              \ IssueType value set, and may additional provide its own code for the\
              \ error in the details element."
            enum:
            - invalid
            - structure
            - required
            - value
            - invariant
            - security
            - login
            - unknown
            - expired
            - forbidden
            - suppressed
            - processing
            - not-supported
            - duplicate
            - multiple-matches
            - not-found
            - deleted
            - too-long
            - code-invalid
            - extension
            - too-costly
            - business-rule
            - conflict
            - transient
            - lock-error
            - no-store
            - exception
            - timeout
            - incomplete
            - throttled
            - informational
          details:
            $ref: "#/components/schemas/CodeableConcept"
          diagnostics:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: Additional diagnostic information about the issue.
          location:
            type: array
            items:
              pattern: "[ \\r\\n\\t\\S]+"
              type: string
              description: "This element is deprecated because it is XML specific.\
                \ It is replaced by issue.expression, which is format independent,\
                \ and simpler to parse. \n\nFor resource issues, this will be a simple\
                \ XPath limited to element names, repetition indicators and the default\
                \ child accessor that identifies one of the elements in the resource\
                \ that caused this issue to be raised.  For HTTP errors, will be \"\
                http.\" + the parameter name."
          expression:
            type: array
            items:
              pattern: "[ \\r\\n\\t\\S]+"
              type: string
              description: "A [simple subset of FHIRPath](fhirpath.html#simple) limited\
                \ to element names, repetition indicators and the default child accessor\
                \ that identifies one of the elements in the resource that caused\
                \ this issue to be raised."
    Element:
      type: object
      properties:
        id:
          pattern: "[A-Za-z0-9\\-\\.]{1,64}"
          type: string
          description: Unique id for the element within a resource (for internal references).
            This may be any string value that does not contain spaces.
        extension:
          type: array
          items:
            $ref: "#/components/schemas/Extension"
    BackboneElement:
      allOf:
      - $ref: "#/components/schemas/Element"
      - type: object
        properties:
          modifierExtension:
            type: array
            items:
              $ref: "#/components/schemas/Extension"
    Address:
      allOf:
      - $ref: "#/components/schemas/Element"
      - type: object
        properties:
          use:
            type: string
            description: The purpose of this address.
            enum:
            - home
            - work
            - temp
            - old
            - billing
          type:
            type: string
            description: Distinguishes between physical addresses (those you can visit)
              and mailing addresses (e.g. PO Boxes and care&ndash;of addresses). Most
              addresses are both.
            enum:
            - postal
            - physical
            - both
          text:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: Specifies the entire address as it should be displayed e.g.
              on a postal label. This may be provided instead of or as well as the
              specific parts.
          line:
            type: array
            items:
              pattern: "[ \\r\\n\\t\\S]+"
              type: string
              description: "This component contains the house number, apartment number,\
                \ street name, street direction,  P.O. Box number, delivery hints,\
                \ and similar address information."
          city:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: "The name of the city, town, suburb, village or other community\
              \ or delivery center."
          district:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: The name of the administrative area (county).
          state:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: Sub&ndash;unit of a country with limited sovereignty in a
              federally organized country. A code may be used if codes are in common
              use (e.g. US 2 letter state codes).
          postalCode:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: A postal code designating a region defined by the postal
              service.
          country:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: Country &ndash; a nation as commonly understood or generally
              accepted.
          period:
            $ref: "#/components/schemas/Period"
    Age:
      allOf:
      - $ref: "#/components/schemas/Quantity"
      - type: object
        properties: {}
    Annotation:
      required:
      - text
      allOf:
      - $ref: "#/components/schemas/Element"
      - type: object
        properties:
          authorReference:
            $ref: "#/components/schemas/Reference"
          authorString:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: The individual responsible for making the annotation.
          time:
            pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\
              .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?"
            type: string
            description: Indicates when this particular annotation was made.
          text:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: The text of the annotation in markdown format.
    Attachment:
      allOf:
      - $ref: "#/components/schemas/Element"
      - type: object
        properties:
          contentType:
            pattern: "[^\\s]+(\\s[^\\s]+)*"
            type: string
            description: Identifies the type of the data in the attachment and allows
              a method to be chosen to interpret or render the data. Includes mime
              type parameters such as charset where appropriate.
          language:
            pattern: "[^\\s]+(\\s[^\\s]+)*"
            type: string
            description: The human language of the content. The value can be any valid
              value according to BCP 47.
          data:
            pattern: "(\\s*([0-9a-zA-Z\\+\\=]){4}\\s*)+"
            type: string
            description: "The actual data of the attachment &ndash; a sequence of\
              \ bytes, base64 encoded."
          url:
            pattern: \S*
            type: string
            description: A location where the data can be accessed.
          size:
            type: integer
            description: "The number of bytes of data that make up this attachment\
              \ (before base64 encoding, if that is done)."
            format: int32
          hash:
            pattern: "(\\s*([0-9a-zA-Z\\+\\=]){4}\\s*)+"
            type: string
            description: The calculated hash of the data using SHA&ndash;1. Represented
              using base64.
          title:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: A label or set of text to display in place of the data.
          creation:
            pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\
              .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?"
            type: string
            description: The date that the attachment was first created.
    CodeableConcept:
      allOf:
      - $ref: "#/components/schemas/Element"
      - type: object
        properties:
          coding:
            type: array
            items:
              $ref: "#/components/schemas/Coding"
          text:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: A human language representation of the concept as seen/selected/uttered
              by the user who entered the data and/or which represents the intended
              meaning of the user.
    Coding:
      allOf:
      - $ref: "#/components/schemas/Element"
      - type: object
        properties:
          system:
            pattern: \S*
            type: string
            description: The identification of the code system that defines the meaning
              of the symbol in the code.
          version:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: "The version of the code system which was used when choosing\
              \ this code. Note that a well&ndash;maintained code system does not\
              \ need the version reported, because the meaning of codes is consistent\
              \ across versions. However this cannot consistently be assured, and\
              \ when the meaning is not guaranteed to be consistent, the version SHOULD\
              \ be exchanged."
          code:
            pattern: "[^\\s]+(\\s[^\\s]+)*"
            type: string
            description: A symbol in syntax defined by the system. The symbol may
              be a predefined code or an expression in a syntax defined by the coding
              system (e.g. post&ndash;coordination).
          display:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: "A representation of the meaning of the code in the system,\
              \ following the rules of the system."
          userSelected:
            type: boolean
            description: Indicates that this coding was chosen by a user directly
              &ndash; e.g. off a pick list of available items (codes or displays).
    ContactPoint:
      allOf:
      - $ref: "#/components/schemas/Element"
      - type: object
        properties:
          system:
            type: string
            description: Telecommunications form for contact point &ndash; what communications
              system is required to make use of the contact.
            enum:
            - phone
            - fax
            - email
            - pager
            - url
            - sms
            - other
          value:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: "The actual contact point details, in a form that is meaningful\
              \ to the designated communication system (i.e. phone number or email\
              \ address)."
          use:
            type: string
            description: Identifies the purpose for the contact point.
            enum:
            - home
            - work
            - temp
            - old
            - mobile
          rank:
            type: integer
            description: Specifies a preferred order in which to use a set of contacts.
              ContactPoints with lower rank values are more preferred than those with
              higher rank values.
            format: int32
          period:
            $ref: "#/components/schemas/Period"
    Count:
      allOf:
      - $ref: "#/components/schemas/Quantity"
      - type: object
        properties: {}
    Distance:
      allOf:
      - $ref: "#/components/schemas/Quantity"
      - type: object
        properties: {}
    Duration:
      allOf:
      - $ref: "#/components/schemas/Quantity"
      - type: object
        properties: {}
    HumanName:
      allOf:
      - $ref: "#/components/schemas/Element"
      - type: object
        properties:
          use:
            type: string
            description: Identifies the purpose for this name.
            enum:
            - usual
            - official
            - temp
            - nickname
            - anonymous
            - old
            - maiden
          text:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: Specifies the entire name as it should be displayed e.g.
              on an application UI. This may be provided instead of or as well as
              the specific parts.
          family:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: The part of a name that links to the genealogy. In some cultures
              (e.g. Eritrea) the family name of a son is the first name of his father.
          given:
            type: array
            items:
              pattern: "[ \\r\\n\\t\\S]+"
              type: string
              description: Given name.
          prefix:
            type: array
            items:
              pattern: "[ \\r\\n\\t\\S]+"
              type: string
              description: "Part of the name that is acquired as a title due to academic,\
                \ legal, employment or nobility status, etc. and that appears at the\
                \ start of the name."
          suffix:
            type: array
            items:
              pattern: "[ \\r\\n\\t\\S]+"
              type: string
              description: "Part of the name that is acquired as a title due to academic,\
                \ legal, employment or nobility status, etc. and that appears at the\
                \ end of the name."
          period:
            $ref: "#/components/schemas/Period"
    Identifier:
      allOf:
      - $ref: "#/components/schemas/Element"
      - type: object
        properties:
          use:
            type: string
            description: The purpose of this identifier.
            enum:
            - usual
            - official
            - temp
            - secondary
            - old
          type:
            $ref: "#/components/schemas/CodeableConcept"
          system:
            pattern: \S*
            type: string
            description: "Establishes the namespace for the value &ndash; that is,\
              \ a URL that describes a set values that are unique."
          value:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: The portion of the identifier typically relevant to the user
              and which is unique within the context of the system.
          period:
            $ref: "#/components/schemas/Period"
          assigner:
            $ref: "#/components/schemas/Reference"
    Money:
      allOf:
      - $ref: "#/components/schemas/Element"
      - type: object
        properties:
          value:
            type: number
            description: Numerical value (with implicit precision).
          currency:
            pattern: "[^\\s]+(\\s[^\\s]+)*"
            type: string
            description: ISO 4217 Currency Code.
    MoneyQuantity:
      allOf:
      - $ref: "#/components/schemas/Quantity"
      - type: object
        properties: {}
    Period:
      allOf:
      - $ref: "#/components/schemas/Element"
      - type: object
        properties:
          start:
            pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\
              .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?"
            type: string
            description: The start of the period. The boundary is inclusive.
          end:
            pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\
              .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?"
            type: string
            description: "The end of the period. If the end of the period is missing,\
              \ it means no end was known or planned at the time the instance was\
              \ created. The start may be in the past, and the end date in the future,\
              \ which means that period is expected/planned to end at that time."
    Quantity:
      allOf:
      - $ref: "#/components/schemas/Element"
      - type: object
        properties:
          value:
            type: number
            description: The value of the measured amount. The value includes an implicit
              precision in the presentation of the value.
          comparator:
            type: string
            description: "How the value should be understood and represented &ndash;\
              \ whether the actual value is greater or less than the stated value\
              \ due to measurement issues; e.g. if the comparator is \"<\" , then\
              \ the real value is < stated value."
            enum:
            - <
            - <=
            - '>='
            - '>'
          unit:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: A human&ndash;readable form of the unit.
          system:
            pattern: \S*
            type: string
            description: The identification of the system that provides the coded
              form of the unit.
          code:
            pattern: "[^\\s]+(\\s[^\\s]+)*"
            type: string
            description: A computer processable form of the unit in some unit representation
              system.
    Range:
      allOf:
      - $ref: "#/components/schemas/Element"
      - type: object
        properties:
          low:
            $ref: "#/components/schemas/SimpleQuantity"
          high:
            $ref: "#/components/schemas/SimpleQuantity"
    Ratio:
      allOf:
      - $ref: "#/components/schemas/Element"
      - type: object
        properties:
          numerator:
            $ref: "#/components/schemas/Quantity"
          denominator:
            $ref: "#/components/schemas/Quantity"
    Reference:
      allOf:
      - $ref: "#/components/schemas/Element"
      - type: object
        properties:
          reference:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: "A reference to a location at which the other resource is\
              \ found. The reference may be a relative reference, in which case it\
              \ is relative to the service base URL, or an absolute URL that resolves\
              \ to the location where the resource is found. The reference may be\
              \ version specific or not. If the reference is not to a FHIR RESTful\
              \ server, then it should be assumed to be version specific. Internal\
              \ fragment references (start with '#') refer to contained resources."
          type:
            pattern: \S*
            type: string
            description: |-
              The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent.

              The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
          identifier:
            $ref: "#/components/schemas/Identifier"
          display:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: Plain text narrative that identifies the resource in addition
              to the resource reference.
    SampledData:
      required:
      - dimensions
      - origin
      - period
      allOf:
      - $ref: "#/components/schemas/Element"
      - type: object
        properties:
          origin:
            $ref: "#/components/schemas/SimpleQuantity"
          period:
            type: number
            description: "The length of time between sampling times, measured in milliseconds."
          factor:
            type: number
            description: A correction factor that is applied to the sampled data points
              before they are added to the origin.
          lowerLimit:
            type: number
            description: The lower limit of detection of the measured points. This
              is needed if any of the data points have the value "L" (lower than detection
              limit).
          upperLimit:
            type: number
            description: The upper limit of detection of the measured points. This
              is needed if any of the data points have the value "U" (higher than
              detection limit).
          dimensions:
            type: integer
            description: "The number of sample points at each time point. If this\
              \ value is greater than one, then the dimensions will be interlaced\
              \ &ndash; all the sample points for a point in time will be recorded\
              \ at once."
            format: int32
          data:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: "A series of data points which are decimal values separated\
              \ by a single space (character u20). The special values \"E\" (error),\
              \ \"L\" (below detection limit) and \"U\" (above detection limit) can\
              \ also be used in place of a decimal value."
    SimpleQuantity:
      allOf:
      - $ref: "#/components/schemas/Quantity"
      - type: object
        properties: {}
    Signature:
      required:
      - type
      - when
      - who
      allOf:
      - $ref: "#/components/schemas/Element"
      - type: object
        properties:
          type:
            type: array
            items:
              $ref: "#/components/schemas/Coding"
          when:
            pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\
              .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))"
            type: string
            description: When the digital signature was signed.
          who:
            $ref: "#/components/schemas/Reference"
          onBehalfOf:
            $ref: "#/components/schemas/Reference"
          targetFormat:
            pattern: "[^\\s]+(\\s[^\\s]+)*"
            type: string
            description: A mime type that indicates the technical format of the target
              resources signed by the signature.
          sigFormat:
            pattern: "[^\\s]+(\\s[^\\s]+)*"
            type: string
            description: "A mime type that indicates the technical format of the signature.\
              \ Important mime types are application/signature+xml for X ML DigSig,\
              \ application/jose for JWS, and image/* for a graphical image of a signature,\
              \ etc."
          data:
            pattern: "(\\s*([0-9a-zA-Z\\+\\=]){4}\\s*)+"
            type: string
            description: The base64 encoding of the Signature content. When signature
              is not recorded electronically this element would be empty.
    Timing:
      allOf:
      - $ref: "#/components/schemas/BackboneElement"
      - type: object
        properties:
          event:
            type: array
            items:
              pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\
                .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?"
              type: string
              description: Identifies specific times when the event occurs.
          repeat:
            $ref: "#/components/schemas/Timing_Repeat"
          code:
            $ref: "#/components/schemas/CodeableConcept"
    Timing_Repeat:
      allOf:
      - $ref: "#/components/schemas/BackboneElement"
      - type: object
        properties:
          boundsDuration:
            $ref: "#/components/schemas/Duration"
          boundsRange:
            $ref: "#/components/schemas/Range"
          boundsPeriod:
            $ref: "#/components/schemas/Period"
          count:
            type: integer
            description: "A total count of the desired number of repetitions across\
              \ the duration of the entire timing specification. If countMax is present,\
              \ this element indicates the lower bound of the allowed range of count\
              \ values."
            format: int32
          countMax:
            type: integer
            description: "If present, indicates that the count is a range &ndash;\
              \ so to perform the action between [count] and [countMax] times."
            format: int32
          duration:
            type: number
            description: "How long this thing happens for when it happens. If durationMax\
              \ is present, this element indicates the lower bound of the allowed\
              \ range of the duration."
          durationMax:
            type: number
            description: "If present, indicates that the duration is a range &ndash;\
              \ so to perform the action between [duration] and [durationMax] time\
              \ length."
          durationUnit:
            type: string
            description: "The units of time for the duration, in UCUM units."
            enum:
            - s
            - min
            - h
            - d
            - wk
            - mo
            - a
          frequency:
            type: integer
            description: "The number of times to repeat the action within the specified\
              \ period. If frequencyMax is present, this element indicates the lower\
              \ bound of the allowed range of the frequency."
            format: int32
          frequencyMax:
            type: integer
            description: "If present, indicates that the frequency is a range &ndash;\
              \ so to repeat between [frequency] and [frequencyMax] times within the\
              \ period or period range."
            format: int32
          period:
            type: number
            description: "Indicates the duration of time over which repetitions are\
              \ to occur; e.g. to express \"3 times per day\", 3 would be the frequency\
              \ and \"1 day\" would be the period. If periodMax is present, this element\
              \ indicates the lower bound of the allowed range of the period length."
          periodMax:
            type: number
            description: "If present, indicates that the period is a range from [period]\
              \ to [periodMax], allowing expressing concepts such as \"do this once\
              \ every 3&ndash;5 days."
          periodUnit:
            type: string
            description: The units of time for the period in UCUM units.
            enum:
            - s
            - min
            - h
            - d
            - wk
            - mo
            - a
          dayOfWeek:
            type: array
            items:
              type: string
              description: "If one or more days of week is provided, then the action\
                \ happens only on the specified day(s)."
              enum:
              - mon
              - tue
              - wed
              - thu
              - fri
              - sat
              - sun
          timeOfDay:
            type: array
            items:
              pattern: "([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?"
              type: string
              description: Specified time of day for action to take place.
          when:
            type: array
            items:
              type: string
              description: "An approximate time period during the day, potentially\
                \ linked to an event of daily living that indicates when the action\
                \ should occur."
              enum:
              - MORN
              - MORN.early
              - MORN.late
              - NOON
              - AFT
              - AFT.early
              - AFT.late
              - EVE
              - EVE.early
              - EVE.late
              - NIGHT
              - PHS
              - HS
              - WAKE
              - C
              - CM
              - CD
              - CV
              - AC
              - ACM
              - ACD
              - ACV
              - PC
              - PCM
              - PCD
              - PCV
          offset:
            type: integer
            description: "The number of minutes from the event. If the event code\
              \ does not indicate whether the minutes is before or after the event,\
              \ then the offset is assumed to be after the event."
            format: int32
    ContactDetail:
      allOf:
      - $ref: "#/components/schemas/Element"
      - type: object
        properties:
          name:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: The name of an individual to contact.
          telecom:
            type: array
            items:
              $ref: "#/components/schemas/ContactPoint"
    RelatedArtifact:
      required:
      - type
      allOf:
      - $ref: "#/components/schemas/Element"
      - type: object
        properties:
          type:
            type: string
            description: The type of relationship to the related artifact.
            enum:
            - documentation
            - justification
            - citation
            - predecessor
            - successor
            - derived-from
            - depends-on
            - composed-of
          label:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: "A short label that can be used to reference the citation\
              \ from elsewhere in the containing artifact, such as a footnote index."
          display:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: "A brief description of the document or knowledge resource\
              \ being referenced, suitable for display to a consumer."
          citation:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: A bibliographic citation for the related artifact. This text
              SHOULD be formatted according to an accepted citation format.
          url:
            pattern: \S*
            type: string
            description: A url for the artifact that can be followed to access the
              actual content.
          document:
            $ref: "#/components/schemas/Attachment"
          resource:
            pattern: \S*
            type: string
            description: "The related resource, such as a library, value set, profile,\
              \ or other knowledge resource."
    UsageContext:
      required:
      - code
      allOf:
      - $ref: "#/components/schemas/Element"
      - type: object
        properties:
          code:
            $ref: "#/components/schemas/Coding"
          valueCodeableConcept:
            $ref: "#/components/schemas/CodeableConcept"
          valueQuantity:
            $ref: "#/components/schemas/Quantity"
          valueRange:
            $ref: "#/components/schemas/Range"
          valueReference:
            $ref: "#/components/schemas/Reference"
    Meta:
      allOf:
      - $ref: "#/components/schemas/Element"
      - type: object
        properties:
          versionId:
            pattern: "[A-Za-z0-9\\-\\.]{1,64}"
            type: string
            description: "The version specific identifier, as it appears in the version\
              \ portion of the URL. This value changes when the resource is created,\
              \ updated, or deleted."
          lastUpdated:
            pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\
              .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))"
            type: string
            description: When the resource last changed &ndash; e.g. when the version
              changed.
          source:
            pattern: \S*
            type: string
            description: "A uri that identifies the source system of the resource.\
              \ This provides a minimal amount of [Provenance](provenance.html#) information\
              \ that can be used to track or differentiate the source of information\
              \ in the resource. The source may identify another FHIR server, document,\
              \ message, database, etc."
          profile:
            type: array
            items:
              pattern: \S*
              type: string
              description: "A list of profiles (references to [StructureDefinition](structuredefinition.html#)\
                \ resources) that this resource claims to conform to. The URL is a\
                \ reference to [StructureDefinition.url](structuredefinition&ndash;definitions.html#StructureDefinition.url)."
          security:
            type: array
            items:
              $ref: "#/components/schemas/Coding"
          tag:
            type: array
            items:
              $ref: "#/components/schemas/Coding"
    Narrative:
      required:
      - div
      - status
      allOf:
      - $ref: "#/components/schemas/Element"
      - type: object
        properties:
          status:
            type: string
            description: "The status of the narrative &ndash; whether it's entirely\
              \ generated (from just the defined data or the extensions too), or whether\
              \ a human authored it and it may contain additional data."
            enum:
            - generated
            - extensions
            - additional
            - empty
          div:
            type: string
            description: "The actual narrative content, a stripped down version of\
              \ XHTML."
    Extension:
      required:
      - url
      allOf:
      - $ref: "#/components/schemas/Element"
      - type: object
        properties:
          url:
            pattern: \S*
            type: string
            description: Source of the definition for the extension code &ndash; a
              logical name or a URL.
          valueBase64Binary:
            pattern: "(\\s*([0-9a-zA-Z\\+\\=]){4}\\s*)+"
            type: string
            description: "Value of extension &ndash; must be one of a constrained\
              \ set of the data types (see [Extensibility](extensibility.html) for\
              \ a list)."
          valueBoolean:
            type: boolean
            description: "Value of extension &ndash; must be one of a constrained\
              \ set of the data types (see [Extensibility](extensibility.html) for\
              \ a list)."
          valueCanonical:
            pattern: \S*
            type: string
            description: "Value of extension &ndash; must be one of a constrained\
              \ set of the data types (see [Extensibility](extensibility.html) for\
              \ a list)."
          valueCode:
            pattern: "[^\\s]+(\\s[^\\s]+)*"
            type: string
            description: "Value of extension &ndash; must be one of a constrained\
              \ set of the data types (see [Extensibility](extensibility.html) for\
              \ a list)."
          valueDate:
            pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1]))?)?"
            type: string
            description: "Value of extension &ndash; must be one of a constrained\
              \ set of the data types (see [Extensibility](extensibility.html) for\
              \ a list)."
          valueDateTime:
            pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)(-(0[1-9]|1[0-2])(-(0[1-9]|[1-2][0-9]|3[0-1])(T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\
              .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00)))?)?)?"
            type: string
            description: "Value of extension &ndash; must be one of a constrained\
              \ set of the data types (see [Extensibility](extensibility.html) for\
              \ a list)."
          valueDecimal:
            type: number
            description: "Value of extension &ndash; must be one of a constrained\
              \ set of the data types (see [Extensibility](extensibility.html) for\
              \ a list)."
          valueId:
            pattern: "[A-Za-z0-9\\-\\.]{1,64}"
            type: string
            description: "Value of extension &ndash; must be one of a constrained\
              \ set of the data types (see [Extensibility](extensibility.html) for\
              \ a list)."
          valueInstant:
            pattern: "([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-9]000)-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\\
              .[0-9]+)?(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))"
            type: string
            description: "Value of extension &ndash; must be one of a constrained\
              \ set of the data types (see [Extensibility](extensibility.html) for\
              \ a list)."
          valueInteger:
            type: integer
            description: "Value of extension &ndash; must be one of a constrained\
              \ set of the data types (see [Extensibility](extensibility.html) for\
              \ a list)."
            format: int32
          valueMarkdown:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: "Value of extension &ndash; must be one of a constrained\
              \ set of the data types (see [Extensibility](extensibility.html) for\
              \ a list)."
          valueOid:
            pattern: "urn:oid:[0-2](\\.(0|[1-9][0-9]*))+"
            type: string
            description: "Value of extension &ndash; must be one of a constrained\
              \ set of the data types (see [Extensibility](extensibility.html) for\
              \ a list)."
          valuePositiveInt:
            type: integer
            description: "Value of extension &ndash; must be one of a constrained\
              \ set of the data types (see [Extensibility](extensibility.html) for\
              \ a list)."
            format: int32
          valueString:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: "Value of extension &ndash; must be one of a constrained\
              \ set of the data types (see [Extensibility](extensibility.html) for\
              \ a list)."
          valueTime:
            pattern: "([01][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)(\\.[0-9]+)?"
            type: string
            description: "Value of extension &ndash; must be one of a constrained\
              \ set of the data types (see [Extensibility](extensibility.html) for\
              \ a list)."
          valueUnsignedInt:
            type: integer
            description: "Value of extension &ndash; must be one of a constrained\
              \ set of the data types (see [Extensibility](extensibility.html) for\
              \ a list)."
            format: int32
          valueUri:
            pattern: \S*
            type: string
            description: "Value of extension &ndash; must be one of a constrained\
              \ set of the data types (see [Extensibility](extensibility.html) for\
              \ a list)."
          valueUrl:
            pattern: \S*
            type: string
            description: "Value of extension &ndash; must be one of a constrained\
              \ set of the data types (see [Extensibility](extensibility.html) for\
              \ a list)."
          valueUuid:
            pattern: "urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
            type: string
            description: "Value of extension &ndash; must be one of a constrained\
              \ set of the data types (see [Extensibility](extensibility.html) for\
              \ a list)."
          valueAddress:
            $ref: "#/components/schemas/Address"
          valueAge:
            $ref: "#/components/schemas/Age"
          valueAnnotation:
            $ref: "#/components/schemas/Annotation"
          valueAttachment:
            $ref: "#/components/schemas/Attachment"
          valueCodeableConcept:
            $ref: "#/components/schemas/CodeableConcept"
          valueCoding:
            $ref: "#/components/schemas/Coding"
          valueContactPoint:
            $ref: "#/components/schemas/ContactPoint"
          valueCount:
            $ref: "#/components/schemas/Count"
          valueDistance:
            $ref: "#/components/schemas/Distance"
          valueDuration:
            $ref: "#/components/schemas/Duration"
          valueHumanName:
            $ref: "#/components/schemas/HumanName"
          valueIdentifier:
            $ref: "#/components/schemas/Identifier"
          valueMoney:
            $ref: "#/components/schemas/Money"
          valuePeriod:
            $ref: "#/components/schemas/Period"
          valueQuantity:
            $ref: "#/components/schemas/Quantity"
          valueRange:
            $ref: "#/components/schemas/Range"
          valueRatio:
            $ref: "#/components/schemas/Ratio"
          valueReference:
            $ref: "#/components/schemas/Reference"
          valueSampledData:
            $ref: "#/components/schemas/SampledData"
          valueSignature:
            $ref: "#/components/schemas/Signature"
          valueTiming:
            $ref: "#/components/schemas/Timing"
          valueContactDetail:
            $ref: "#/components/schemas/ContactDetail"
          valueRelatedArtifact:
            $ref: "#/components/schemas/RelatedArtifact"
          valueUsageContext:
            $ref: "#/components/schemas/UsageContext"
          valueMeta:
            $ref: "#/components/schemas/Meta"
    MedicinalProductIngredient:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    AdverseEvent:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          study:
            $ref: "#/components/schemas/Reference"
    Consent:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    EnrollmentRequest:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          coverage:
            $ref: "#/components/schemas/Reference"
    SupplyDelivery:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          receiver:
            $ref: "#/components/schemas/Reference"
    Subscription:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    Basic:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          author:
            $ref: "#/components/schemas/Reference"
    SubstanceNucleicAcid:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    VisionPrescription:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    HealthcareService:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          endpoint:
            $ref: "#/components/schemas/Reference"
    ResearchSubject:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          consent:
            $ref: "#/components/schemas/Reference"
    Medication:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    PaymentNotice:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          paymentStatus:
            $ref: "#/components/schemas/CodeableConcept"
    ServiceRequest:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          relevantHistory:
            $ref: "#/components/schemas/Reference"
    NamingSystem:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    Composition:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    Specimen:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          note:
            $ref: "#/components/schemas/Annotation"
    DeviceDefinition:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    PractitionerRole:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          endpoint:
            $ref: "#/components/schemas/Reference"
    Condition:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          note:
            $ref: "#/components/schemas/Annotation"
    Evidence:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          outcome:
            $ref: "#/components/schemas/Reference"
    DetectedIssue:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    MeasureReport:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          evaluatedResource:
            $ref: "#/components/schemas/Reference"
    DeviceUseStatement:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          note:
            $ref: "#/components/schemas/Annotation"
    Endpoint:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          header:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: Additional headers / information to send as part of the notification.
    OperationDefinition:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    GuidanceResponse:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          dataRequirement:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: "If the evaluation could not be completed due to lack of\
              \ information, or additional information would potentially result in\
              \ a more accurate response, this element will a description of the data\
              \ required in order to proceed with the evaluation. A subsequent request\
              \ to the service should include this data."
    Communication:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          note:
            $ref: "#/components/schemas/Annotation"
    MedicationRequest:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          eventHistory:
            $ref: "#/components/schemas/Reference"
    Contract:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          legallyBindingAttachment:
            $ref: "#/components/schemas/Attachment"
          legallyBindingReference:
            $ref: "#/components/schemas/Reference"
    StructureMap:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    Provenance:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          signature:
            $ref: "#/components/schemas/Signature"
    MedicinalProductAuthorization:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    SubstanceReferenceInformation:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    DocumentReference:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    ObservationDefinition:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          criticalCodedValueSet:
            $ref: "#/components/schemas/Reference"
    EvidenceVariable:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    Library:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          content:
            $ref: "#/components/schemas/Attachment"
    EffectEvidenceSynthesis:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    PaymentReconciliation:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    ChargeItem:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          supportingInformation:
            $ref: "#/components/schemas/Reference"
    RequestGroup:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    DeviceRequest:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          relevantHistory:
            $ref: "#/components/schemas/Reference"
    ResearchElementDefinition:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    GraphDefinition:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    TestScript:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    Questionnaire:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    SpecimenDefinition:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    DiagnosticReport:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          presentedForm:
            $ref: "#/components/schemas/Attachment"
    Device:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          parent:
            $ref: "#/components/schemas/Reference"
    Account:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          partOf:
            $ref: "#/components/schemas/Reference"
    AuditEvent:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    SearchParameter:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    Substance:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    Practitioner:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          communication:
            $ref: "#/components/schemas/CodeableConcept"
    EnrollmentResponse:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          requestProvider:
            $ref: "#/components/schemas/Reference"
    List:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          emptyReason:
            $ref: "#/components/schemas/CodeableConcept"
    Patient:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    SubstanceSpecification:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          sourceMaterial:
            $ref: "#/components/schemas/Reference"
    ResearchStudy:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    EpisodeOfCare:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          account:
            $ref: "#/components/schemas/Reference"
    MedicationKnowledge:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    SupplyRequest:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          deliverTo:
            $ref: "#/components/schemas/Reference"
    Procedure:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          usedCode:
            $ref: "#/components/schemas/CodeableConcept"
    Person:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    CoverageEligibilityRequest:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    VerificationResult:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    SubstanceProtein:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    ExampleScenario:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          workflow:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: Another nested workflow.
    SubstancePolymer:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    Coverage:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          contract:
            $ref: "#/components/schemas/Reference"
    MedicinalProductIndication:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          population:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: The population group to which this applies.
    ClaimResponse:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    MedicationAdministration:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          eventHistory:
            $ref: "#/components/schemas/Reference"
    MedicinalProductUndesirableEffect:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          population:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: The population group to which this applies.
    CodeSystem:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    Flag:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          author:
            $ref: "#/components/schemas/Reference"
    InsurancePlan:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    ResearchDefinition:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          outcome:
            $ref: "#/components/schemas/Reference"
    BodyStructure:
      required:
      - patient
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          patient:
            $ref: "#/components/schemas/Reference"
    TerminologyCapabilities:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    Slot:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          comment:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: Comments on the slot to describe any extended information.
              Such as custom constraints on the slot.
    ExplanationOfBenefit:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    ConceptMap:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    MedicinalProductPharmaceutical:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    RiskAssessment:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          note:
            $ref: "#/components/schemas/Annotation"
    MedicinalProductPackaged:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    OrganizationAffiliation:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          endpoint:
            $ref: "#/components/schemas/Reference"
    CapabilityStatement:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    QuestionnaireResponse:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    MessageDefinition:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          graph:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: "Canonical reference to a GraphDefinition. If a URL is provided,\
              \ it is the canonical reference to a [GraphDefinition](graphdefinition.html)\
              \ that it controls what resources are to be added to the bundle when\
              \ building the document. The GraphDefinition can also specify profiles\
              \ that apply to the various resources."
    RelatedPerson:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    Task:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    MedicationDispense:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          eventHistory:
            $ref: "#/components/schemas/Reference"
    Schedule:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          comment:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: Comments on the availability to describe any extended information.
              Such as custom constraints on the slots that may be associated.
    Observation:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    ImmunizationRecommendation:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    MolecularSequence:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    Invoice:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          note:
            $ref: "#/components/schemas/Annotation"
    CarePlan:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          note:
            $ref: "#/components/schemas/Annotation"
    MedicinalProductManufactured:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          otherCharacteristics:
            $ref: "#/components/schemas/CodeableConcept"
    ImplementationGuide:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    Immunization:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    MedicinalProductInteraction:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          management:
            $ref: "#/components/schemas/CodeableConcept"
    Group:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    Binary:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          data:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: "The actual content, base64 encoded."
    Linkage:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    CommunicationRequest:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          note:
            $ref: "#/components/schemas/Annotation"
    AllergyIntolerance:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    ClinicalImpression:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          note:
            $ref: "#/components/schemas/Annotation"
    ChargeItemDefinition:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    MedicinalProduct:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    CareTeam:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          note:
            $ref: "#/components/schemas/Annotation"
    BiologicallyDerivedProduct:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    CatalogEntry:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    MedicationStatement:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          dosage:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: Indicates how the medication is/was or should be taken by
              the patient.
    Location:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          endpoint:
            $ref: "#/components/schemas/Reference"
    Measure:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    Encounter:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          partOf:
            $ref: "#/components/schemas/Reference"
    PlanDefinition:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    ImagingStudy:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    SubstanceSourceMaterial:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    TestReport:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    CoverageEligibilityResponse:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    Goal:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          outcomeReference:
            $ref: "#/components/schemas/Reference"
    FamilyMemberHistory:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    CompartmentDefinition:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    ActivityDefinition:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    Appointment:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          requestedPeriod:
            $ref: "#/components/schemas/Period"
    AppointmentResponse:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          comment:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: Additional comments about the appointment.
    Claim:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          total:
            $ref: "#/components/schemas/Money"
    DeviceMetric:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    DocumentManifest:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    EventDefinition:
      required:
      - trigger
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          trigger:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: "The trigger element defines when the event occurs. If more\
              \ than one trigger condition is specified, the event fires whenever\
              \ any one of the trigger conditions is met."
    ImmunizationEvaluation:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          seriesDosesPositiveint:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: The recommended number of doses to achieve immunity.
          seriesDosesString:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: The recommended number of doses to achieve immunity.
    Media:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          note:
            $ref: "#/components/schemas/Annotation"
    MedicinalProductContraindication:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          population:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: The population group to which this applies.
    MessageHeader:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          definition:
            pattern: "[ \\r\\n\\t\\S]+"
            type: string
            description: Permanent link to the MessageDefinition for this message.
    NutritionOrder:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          note:
            $ref: "#/components/schemas/Annotation"
    Organization:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties:
          endpoint:
            $ref: "#/components/schemas/Reference"
    Parameters:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    RiskEvidenceSynthesis:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    StructureDefinition:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
    ValueSet:
      allOf:
      - $ref: "#/components/schemas/DomainResource"
      - type: object
        properties: {}
  parameters:
    _lastUpdatedParam:
      name: _lastUpdated
      in: query
      description: When the resource version last changed
      required: false
      style: form
      explode: true
      schema:
        type: string
    _securityParam:
      name: _security
      in: query
      description: Security Labels applied to this resource
      required: false
      style: form
      explode: true
      schema:
        type: string
    _tagParam:
      name: _tag
      in: query
      description: Tags applied to this resource
      required: false
      style: form
      explode: true
      schema:
        type: string
    _idParam:
      name: _id
      in: query
      description: Logical id of this artifact
      required: false
      style: form
      explode: true
      schema:
        type: string
    _sourceParam:
      name: _source
      in: query
      description: Identifies where the resource comes from
      required: false
      style: form
      explode: true
      schema:
        type: string
    _profileParam:
      name: _profile
      in: query
      description: Profiles this resource claims to conform to
      required: false
      style: form
      explode: true
      schema:
        type: string
  securitySchemes:
    default:
      type: oauth2
      flows:
        implicit:
          authorizationUrl: https://localhost:8243/authorize
          scopes: {}
x-wso2-oh-fhir-resourceType: ImmunizationRecommendation
x-wso2-oh-fhir-profile:
- http://hl7.org/fhir/StructureDefinition/ImmunizationRecommendation
x-wso2-security:
  apim:
    x-wso2-scopes:
    - name: patient/ImmunizationRecommendation.c
      description: This scope will group the ImmunizationRecommendationAPI related
        operations.
      key: patient/ImmunizationRecommendation.c
      roles: Internal/fhirCreate
    - name: patient/ImmunizationRecommendation.r
      description: This scope will group the ImmunizationRecommendationAPI related
        operations.
      key: patient/ImmunizationRecommendation.r
      roles: Internal/fhirRead
    - name: patient/ImmunizationRecommendation.u
      description: This scope will group the ImmunizationRecommendationAPI related
        operations.
      key: patient/ImmunizationRecommendation.u
      roles: Internal/fhirUpdate
    - name: patient/ImmunizationRecommendation.d
      description: This scope will group the ImmunizationRecommendationAPI related
        operations.
      key: patient/ImmunizationRecommendation.d
      roles: Internal/fhirDelete
    - name: patient/ImmunizationRecommendation.s
      description: This scope will group the ImmunizationRecommendationAPI related
        operations.
      key: patient/ImmunizationRecommendation.s
      roles: Internal/fhirSearch
    - name: user/ImmunizationRecommendation.c
      description: This scope will group the ImmunizationRecommendationAPI related
        operations.
      key: user/ImmunizationRecommendation.c
      roles: Internal/fhirCreate
    - name: user/ImmunizationRecommendation.r
      description: This scope will group the ImmunizationRecommendationAPI related
        operations.
      key: user/ImmunizationRecommendation.r
      roles: Internal/fhirRead
    - name: user/ImmunizationRecommendation.u
      description: This scope will group the ImmunizationRecommendationAPI related
        operations.
      key: user/ImmunizationRecommendation.u
      roles: Internal/fhirUpdate
    - name: user/ImmunizationRecommendation.d
      description: This scope will group the ImmunizationRecommendationAPI related
        operations.
      key: user/ImmunizationRecommendation.d
      roles: Internal/fhirDelete
    - name: user/ImmunizationRecommendation.s
      description: This scope will group the ImmunizationRecommendationAPI related
        operations.
      key: user/ImmunizationRecommendation.s
      roles: Internal/fhirSearch
    - name: system/ImmunizationRecommendation.c
      description: This scope will group the ImmunizationRecommendationAPI related
        operations.
      key: system/ImmunizationRecommendation.c
      roles: ""
    - name: system/ImmunizationRecommendation.r
      description: This scope will group the ImmunizationRecommendationAPI related
        operations.
      key: system/ImmunizationRecommendation.r
      roles: ""
    - name: system/ImmunizationRecommendation.u
      description: This scope will group the ImmunizationRecommendationAPI related
        operations.
      key: system/ImmunizationRecommendation.u
      roles: ""
    - name: system/ImmunizationRecommendation.d
      description: This scope will group the ImmunizationRecommendationAPI related
        operations.
      key: system/ImmunizationRecommendation.d
      roles: ""
    - name: system/ImmunizationRecommendation.s
      description: This scope will group the ImmunizationRecommendationAPI related
        operations.
      key: system/ImmunizationRecommendation.s
      roles: ""
