R4 Ballot #1 (Mixed Normative/Trial use)

This page is part of the FHIR Specification (v3.3.0: R4 Ballot 2). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4

2.34 JSON Schema for Bundle

FHIR Infrastructure Work GroupMaturity Level: N/ABallot Status: Informative Compartments: Not linked to any defined compartments

This is a representation of the json schema for Bundle, which is just a part of the full JSON Schema.

{
  "$schema": "http://json-schema.org/draft-06/schema#",
  "id": "http://hl7.org/fhir/json-schema/Bundle",
  "$ref": "#/definitions/Bundle",
  "description": "see http://hl7.org/fhir/json.html#schema for information about the FHIR Json Schemas",
  "definitions": {
    "Bundle": {
      "description": "A container for a collection of resources.",
      "properties": {
        "resourceType": {
          "description": "This is a Bundle resource",
          "const": "Bundle"
        },
        "id": {
          "description": "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.",
          "$ref": "id.schema.json#/definitions/id"
        },
        "meta": {
          "description": "The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.",
          "$ref": "Meta.schema.json#/definitions/Meta"
        },
        "implicitRules": {
          "description": "A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.",
          "$ref": "#/definitions/uri"
        },
        "_implicitRules": {
          "description": "Extensions for implicitRules",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "language": {
          "description": "The base language in which the resource is written.",
          "$ref": "#/definitions/code"
        },
        "_language": {
          "description": "Extensions for language",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "identifier": {
          "description": "A persistent identifier for the batch that won\u0027t change as a batch is copied from server to server.",
          "$ref": "Identifier.schema.json#/definitions/Identifier"
        },
        "type": {
          "description": "Indicates the purpose of this bundle - how it was intended to be used.",
          "enum": [
            "document",
            "message",
            "transaction",
            "transaction-response",
            "batch",
            "batch-response",
            "history",
            "searchset",
            "collection"
          ]
        },
        "_type": {
          "description": "Extensions for type",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "timestamp": {
          "description": "The date/time that the bundle was assembled - i.e. when the resources were placed in the bundle.",
          "$ref": "#/definitions/instant"
        },
        "_timestamp": {
          "description": "Extensions for timestamp",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "total": {
          "description": "If a set of search matches, this is the total number of matches for the search (as opposed to the number of results in this bundle).",
          "$ref": "#/definitions/unsignedInt"
        },
        "_total": {
          "description": "Extensions for total",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "link": {
          "description": "A series of links that provide context to this bundle.",
          "items": {
            "$ref": "#/definitions/Bundle_Link"
          },
          "type": "array"
        },
        "entry": {
          "description": "An entry in a bundle resource - will either contain a resource, or information about a resource (transactions and history only).",
          "items": {
            "$ref": "#/definitions/Bundle_Entry"
          },
          "type": "array"
        },
        "signature": {
          "description": "Digital Signature - base64 encoded. XML-DSig or a JWT.",
          "$ref": "Signature.schema.json#/definitions/Signature"
        }
      },
      "additionalProperties": false,
      "required": [
        "resourceType"
      ]
    },
    "Bundle_Link": {
      "description": "A container for a collection of resources.",
      "properties": {
        "id": {
          "description": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
          "$ref": "string.schema.json#/definitions/string"
        },
        "extension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "modifierExtension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "relation": {
          "description": "A name which details the functional use for this link - see [http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1](http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1).",
          "$ref": "#/definitions/string"
        },
        "_relation": {
          "description": "Extensions for relation",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "url": {
          "description": "The reference details for the link.",
          "$ref": "#/definitions/uri"
        },
        "_url": {
          "description": "Extensions for url",
          "$ref": "Element.schema.json#/definitions/Element"
        }
      },
      "additionalProperties": false
    },
    "Bundle_Entry": {
      "description": "A container for a collection of resources.",
      "properties": {
        "id": {
          "description": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
          "$ref": "string.schema.json#/definitions/string"
        },
        "extension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "modifierExtension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "link": {
          "description": "A series of links that provide context to this entry.",
          "items": {
            "$ref": "#/definitions/Bundle_Link"
          },
          "type": "array"
        },
        "fullUrl": {
          "description": "The Absolute URL for the resource.  The fullUrl SHALL not disagree with the id in the resource. 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.",
          "$ref": "#/definitions/uri"
        },
        "_fullUrl": {
          "description": "Extensions for fullUrl",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "resource": {
          "description": "The Resources for the entry.",
          "$ref": "ResourceList.schema.json#/definitions/ResourceList"
        },
        "search": {
          "description": "Information about the search process that lead to the creation of this entry.",
          "$ref": "#/definitions/Bundle_Search"
        },
        "request": {
          "description": "Additional information about how this entry should be processed as part of a transaction.",
          "$ref": "#/definitions/Bundle_Request"
        },
        "response": {
          "description": "Additional information about how this entry should be processed as part of a transaction.",
          "$ref": "#/definitions/Bundle_Response"
        }
      },
      "additionalProperties": false
    },
    "Bundle_Search": {
      "description": "A container for a collection of resources.",
      "properties": {
        "id": {
          "description": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
          "$ref": "string.schema.json#/definitions/string"
        },
        "extension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "modifierExtension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "mode": {
          "description": "Why this entry is in the result set - whether it\u0027s included as a match or because of an _include requirement.",
          "enum": [
            "match",
            "include",
            "outcome"
          ]
        },
        "_mode": {
          "description": "Extensions for mode",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "score": {
          "description": "When searching, the server\u0027s search ranking score for the entry.",
          "$ref": "#/definitions/decimal"
        },
        "_score": {
          "description": "Extensions for score",
          "$ref": "Element.schema.json#/definitions/Element"
        }
      },
      "additionalProperties": false
    },
    "Bundle_Request": {
      "description": "A container for a collection of resources.",
      "properties": {
        "id": {
          "description": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
          "$ref": "string.schema.json#/definitions/string"
        },
        "extension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "modifierExtension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "method": {
          "description": "The HTTP verb for this entry in either a change history, or a transaction/ transaction response.",
          "enum": [
            "GET",
            "HEAD",
            "POST",
            "PUT",
            "DELETE",
            "PATCH"
          ]
        },
        "_method": {
          "description": "Extensions for method",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "url": {
          "description": "The URL for this entry, relative to the root (the address to which the request is posted).",
          "$ref": "#/definitions/uri"
        },
        "_url": {
          "description": "Extensions for url",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "ifNoneMatch": {
          "description": "If the ETag values match, return a 304 Not Modified status. See the API documentation for [\"Conditional Read\"](http.html#cread).",
          "$ref": "#/definitions/string"
        },
        "_ifNoneMatch": {
          "description": "Extensions for ifNoneMatch",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "ifModifiedSince": {
          "description": "Only perform the operation if the last updated date matches. See the API documentation for [\"Conditional Read\"](http.html#cread).",
          "$ref": "#/definitions/instant"
        },
        "_ifModifiedSince": {
          "description": "Extensions for ifModifiedSince",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "ifMatch": {
          "description": "Only perform the operation if the Etag value matches. For more information, see the API section [\"Managing Resource Contention\"](http.html#concurrency).",
          "$ref": "#/definitions/string"
        },
        "_ifMatch": {
          "description": "Extensions for ifMatch",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "ifNoneExist": {
          "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 - what follows the \"?\" (not including the \"?\").",
          "$ref": "#/definitions/string"
        },
        "_ifNoneExist": {
          "description": "Extensions for ifNoneExist",
          "$ref": "Element.schema.json#/definitions/Element"
        }
      },
      "additionalProperties": false
    },
    "Bundle_Response": {
      "description": "A container for a collection of resources.",
      "properties": {
        "id": {
          "description": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.",
          "$ref": "string.schema.json#/definitions/string"
        },
        "extension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "modifierExtension": {
          "description": "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "status": {
          "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.",
          "$ref": "#/definitions/string"
        },
        "_status": {
          "description": "Extensions for status",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "location": {
          "description": "The location header created by processing this operation.",
          "$ref": "#/definitions/uri"
        },
        "_location": {
          "description": "Extensions for location",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "etag": {
          "description": "The Etag for the resource, it the operation for the entry produced a versioned resource (see [Resource Metadata and Versioning](http.html#versioning) and [Managing Resource Contention](http.html#concurrency)).",
          "$ref": "#/definitions/string"
        },
        "_etag": {
          "description": "Extensions for etag",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "lastModified": {
          "description": "The date/time that the resource was modified on the server.",
          "$ref": "#/definitions/instant"
        },
        "_lastModified": {
          "description": "Extensions for lastModified",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "outcome": {
          "description": "An OperationOutcome containing hints and warnings produced as part of processing this entry in a batch or transaction.",
          "$ref": "ResourceList.schema.json#/definitions/ResourceList"
        }
      },
      "additionalProperties": false
    }
  }
}