R4 Ballot #2 (Mixed Normative/Trial use)

This page is part of the FHIR Specification (v3.5.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.36 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 bundle that won\u0027t change as a bundle is copied from server to server.",
          "$ref": "Identifier.schema.json#/definitions/Identifier"
        },
        "type": {
          "description": "Indicates the purpose of this bundle - how it is 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 entries of type \u0027match\u0027 across all pages in the search.  It does not include search.mode \u003d \u0027include\u0027 or \u0027outcome\u0027 entries and it does not provide a count of the number of entries in the 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.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
          "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.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
          "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 - i.e. if the fullUrl is not a urn:uuid, the URL shall be version-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.",
          "$ref": "#/definitions/uri"
        },
        "_fullUrl": {
          "description": "Extensions for fullUrl",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "resource": {
          "description": "The Resource for the entry. The purpose/meaning of the resource is determined by the Bundle.type.",
          "$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 or batch.  For history, it shows how the entry was processed to create the version contained in the entry.",
          "$ref": "#/definitions/Bundle_Request"
        },
        "response": {
          "description": "Indicates the results of processing the corresponding \u0027request\u0027 entry in the batch or transaction being responded to or what the results of an operation where when returning history.",
          "$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.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
          "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, or to convey information or warning information about the search process.",
          "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.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
          "items": {
            "$ref": "Extension.schema.json#/definitions/Extension"
          },
          "type": "array"
        },
        "method": {
          "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"
          ]
        },
        "_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.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
          "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, populated if the operation returns a location.",
          "$ref": "#/definitions/uri"
        },
        "_location": {
          "description": "Extensions for location",
          "$ref": "Element.schema.json#/definitions/Element"
        },
        "etag": {
          "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)).",
          "$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
    }
  }
}