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: R4B R4
FHIR Infrastructure Work Group | Maturity Level: N/A | Ballot Status: Informative |
oauth-uris
{ "resourceType": "StructureDefinition", "id": "oauth-uris", "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg", "valueCode": "fhir" }, { "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm", "valueInteger": 1 } ], "url": "http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris", "name": "oauth-uris", "status": "active", "date": "2018-02-15", "publisher": "Health Level Seven International (FHIR Infrastructure)", "contact": [ { "telecom": [ { "system": "url", "value": "http://www.hl7.org/Special/committees/fiwg" } ] } ], "description": "Supports automated discovery of OAuth2 endpoints.", "fhirVersion": "3.3.0", "mapping": [ { "identity": "rim", "uri": "http://hl7.org/v3", "name": "RIM Mapping" } ], "kind": "complex-type", "abstract": false, "context": [ { "type": "element", "expression": "CapabilityStatement.rest.security" } ], "type": "Extension", "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Extension", "derivation": "constraint", "snapshot": { "element": [ { "id": "Extension", "path": "Extension", "short": "Automated discovery of OAuth2 endpoints", "definition": "Supports automated discovery of OAuth2 endpoints.", "min": 0, "max": "1", "base": { "path": "Extension", "min": 0, "max": "*" }, "condition": [ "ele-1" ], "constraint": [ { "key": "ele-1", "severity": "error", "human": "All FHIR elements must have a @value or children", "expression": "hasValue() | (children().count() > id.count())", "xpath": "@value|f:*|h:div", "source": "Element" }, { "key": "ext-1", "severity": "error", "human": "Must have either extensions or value[x], not both", "expression": "extension.exists() != value.exists()", "xpath": "exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])", "source": "Extension" } ], "isModifier": false }, { "id": "Extension.id", "path": "Extension.id", "representation": [ "xmlAttr" ], "short": "xml:id (or equivalent in JSON)", "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ], "isModifier": false, "isSummary": false, "mapping": [ { "identity": "rim", "map": "n/a" } ] }, { "id": "Extension.extension", "path": "Extension.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "short": "Additional content defined by implementations", "definition": "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.", "comment": "There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.", "alias": [ "extensions", "user content" ], "min": 0, "max": "*", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ], "isModifier": false, "isSummary": false, "mapping": [ { "identity": "rim", "map": "n/a" } ] }, { "id": "Extension.extension:authorize", "path": "Extension.extension", "sliceName": "authorize", "short": "OAuth2 \"authorize\" endpoint", "definition": "The OAuth2 \"authorize\" endpoint for this FHIR server.", "min": 1, "max": "1", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ], "isModifier": false, "isSummary": false }, { "id": "Extension.extension:authorize.id", "path": "Extension.extension.id", "representation": [ "xmlAttr" ], "short": "xml:id (or equivalent in JSON)", "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ], "isModifier": false, "isSummary": false, "mapping": [ { "identity": "rim", "map": "n/a" } ] }, { "id": "Extension.extension:authorize.extension", "path": "Extension.extension.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "short": "Extension", "definition": "An Extension", "min": 0, "max": "0", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ], "isModifier": false, "isSummary": false }, { "id": "Extension.extension:authorize.url", "path": "Extension.extension.url", "representation": [ "xmlAttr" ], "short": "identifies the meaning of the extension", "definition": "Source of the definition for the extension code - a logical name or a URL.", "comment": "The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.", "min": 1, "max": "1", "base": { "path": "Extension.url", "min": 1, "max": "1" }, "type": [ { "code": "uri" } ], "fixedUri": "authorize", "isModifier": false, "isSummary": false, "mapping": [ { "identity": "rim", "map": "N/A" } ] }, { "id": "Extension.extension:authorize.valueUri", "path": "Extension.extension.valueUri", "short": "Value of extension", "definition": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).", "min": 0, "max": "1", "base": { "path": "Extension.value[x]", "min": 0, "max": "1" }, "type": [ { "code": "uri" } ], "isModifier": false, "isSummary": false, "mapping": [ { "identity": "rim", "map": "N/A" } ] }, { "id": "Extension.extension:token", "path": "Extension.extension", "sliceName": "token", "short": "OAuth2 \"token\" endpoint", "definition": "The OAuth2 \"token\" endpoint for this FHIR server.", "min": 1, "max": "1", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ], "isModifier": false, "isSummary": false }, { "id": "Extension.extension:token.id", "path": "Extension.extension.id", "representation": [ "xmlAttr" ], "short": "xml:id (or equivalent in JSON)", "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ], "isModifier": false, "isSummary": false, "mapping": [ { "identity": "rim", "map": "n/a" } ] }, { "id": "Extension.extension:token.extension", "path": "Extension.extension.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "short": "Extension", "definition": "An Extension", "min": 0, "max": "0", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ], "isModifier": false, "isSummary": false }, { "id": "Extension.extension:token.url", "path": "Extension.extension.url", "representation": [ "xmlAttr" ], "short": "identifies the meaning of the extension", "definition": "Source of the definition for the extension code - a logical name or a URL.", "comment": "The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.", "min": 1, "max": "1", "base": { "path": "Extension.url", "min": 1, "max": "1" }, "type": [ { "code": "uri" } ], "fixedUri": "token", "isModifier": false, "isSummary": false, "mapping": [ { "identity": "rim", "map": "N/A" } ] }, { "id": "Extension.extension:token.valueUri", "path": "Extension.extension.valueUri", "short": "Value of extension", "definition": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).", "min": 0, "max": "1", "base": { "path": "Extension.value[x]", "min": 0, "max": "1" }, "type": [ { "code": "uri" } ], "isModifier": false, "isSummary": false, "mapping": [ { "identity": "rim", "map": "N/A" } ] }, { "id": "Extension.extension:register", "path": "Extension.extension", "sliceName": "register", "short": "OAuth2 dynamic registration endpoint", "definition": "The OAuth2 dynamic registration endpoint for this FHIR server, if supported.", "min": 0, "max": "1", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ], "isModifier": false, "isSummary": false }, { "id": "Extension.extension:register.id", "path": "Extension.extension.id", "representation": [ "xmlAttr" ], "short": "xml:id (or equivalent in JSON)", "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ], "isModifier": false, "isSummary": false, "mapping": [ { "identity": "rim", "map": "n/a" } ] }, { "id": "Extension.extension:register.extension", "path": "Extension.extension.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "short": "Extension", "definition": "An Extension", "min": 0, "max": "0", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ], "isModifier": false, "isSummary": false }, { "id": "Extension.extension:register.url", "path": "Extension.extension.url", "representation": [ "xmlAttr" ], "short": "identifies the meaning of the extension", "definition": "Source of the definition for the extension code - a logical name or a URL.", "comment": "The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.", "min": 1, "max": "1", "base": { "path": "Extension.url", "min": 1, "max": "1" }, "type": [ { "code": "uri" } ], "fixedUri": "register", "isModifier": false, "isSummary": false, "mapping": [ { "identity": "rim", "map": "N/A" } ] }, { "id": "Extension.extension:register.valueUri", "path": "Extension.extension.valueUri", "short": "Value of extension", "definition": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).", "min": 0, "max": "1", "base": { "path": "Extension.value[x]", "min": 0, "max": "1" }, "type": [ { "code": "uri" } ], "isModifier": false, "isSummary": false, "mapping": [ { "identity": "rim", "map": "N/A" } ] }, { "id": "Extension.extension:manage", "path": "Extension.extension", "sliceName": "manage", "short": "User-facing authorization management entry point", "definition": "The user-facing authorization management workflow entry point for this FHIR server.", "min": 0, "max": "1", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ], "isModifier": false, "isSummary": false }, { "id": "Extension.extension:manage.id", "path": "Extension.extension.id", "representation": [ "xmlAttr" ], "short": "xml:id (or equivalent in JSON)", "definition": "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.", "min": 0, "max": "1", "base": { "path": "Element.id", "min": 0, "max": "1" }, "type": [ { "code": "string" } ], "isModifier": false, "isSummary": false, "mapping": [ { "identity": "rim", "map": "n/a" } ] }, { "id": "Extension.extension:manage.extension", "path": "Extension.extension.extension", "slicing": { "discriminator": [ { "type": "value", "path": "url" } ], "description": "Extensions are always sliced by (at least) url", "rules": "open" }, "short": "Extension", "definition": "An Extension", "min": 0, "max": "0", "base": { "path": "Element.extension", "min": 0, "max": "*" }, "type": [ { "code": "Extension" } ], "isModifier": false, "isSummary": false }, { "id": "Extension.extension:manage.url", "path": "Extension.extension.url", "representation": [ "xmlAttr" ], "short": "identifies the meaning of the extension", "definition": "Source of the definition for the extension code - a logical name or a URL.", "comment": "The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.", "min": 1, "max": "1", "base": { "path": "Extension.url", "min": 1, "max": "1" }, "type": [ { "code": "uri" } ], "fixedUri": "manage", "isModifier": false, "isSummary": false, "mapping": [ { "identity": "rim", "map": "N/A" } ] }, { "id": "Extension.extension:manage.valueUri", "path": "Extension.extension.valueUri", "short": "Value of extension", "definition": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).", "min": 0, "max": "1", "base": { "path": "Extension.value[x]", "min": 0, "max": "1" }, "type": [ { "code": "uri" } ], "isModifier": false, "isSummary": false, "mapping": [ { "identity": "rim", "map": "N/A" } ] }, { "id": "Extension.url", "path": "Extension.url", "representation": [ "xmlAttr" ], "short": "identifies the meaning of the extension", "definition": "Source of the definition for the extension code - a logical name or a URL.", "comment": "The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.", "min": 1, "max": "1", "base": { "path": "Extension.url", "min": 1, "max": "1" }, "type": [ { "code": "uri" } ], "fixedUri": "http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris", "isModifier": false, "isSummary": false, "mapping": [ { "identity": "rim", "map": "N/A" } ] }, { "id": "Extension.value[x]", "path": "Extension.value[x]", "short": "Value of extension", "definition": "Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).", "min": 0, "max": "0", "base": { "path": "Extension.value[x]", "min": 0, "max": "1" }, "type": [ { "code": "base64Binary" }, { "code": "boolean" }, { "code": "canonical" }, { "code": "code" }, { "code": "date" }, { "code": "dateTime" }, { "code": "decimal" }, { "code": "id" }, { "code": "instant" }, { "code": "integer" }, { "code": "markdown" }, { "code": "oid" }, { "code": "positiveInt" }, { "code": "string" }, { "code": "time" }, { "code": "unsignedInt" }, { "code": "uri" }, { "code": "url" }, { "code": "uuid" }, { "code": "Address" }, { "code": "Age" }, { "code": "Annotation" }, { "code": "Attachment" }, { "code": "CodeableConcept" }, { "code": "Coding" }, { "code": "ContactPoint" }, { "code": "Count" }, { "code": "Distance" }, { "code": "Duration" }, { "code": "HumanName" }, { "code": "Identifier" }, { "code": "Money" }, { "code": "Period" }, { "code": "Quantity" }, { "code": "Range" }, { "code": "Ratio" }, { "code": "Reference" }, { "code": "SampledData" }, { "code": "Signature" }, { "code": "Timing" }, { "code": "ParameterDefinition" }, { "code": "DataRequirement" }, { "code": "RelatedArtifact" }, { "code": "ContactDetail" }, { "code": "Contributor" }, { "code": "TriggerDefinition" }, { "code": "UsageContext" }, { "code": "Dosage" } ], "isModifier": false, "isSummary": false, "mapping": [ { "identity": "rim", "map": "N/A" } ] } ] }, "differential": { "element": [ { "id": "Extension", "path": "Extension", "short": "Automated discovery of OAuth2 endpoints", "definition": "Supports automated discovery of OAuth2 endpoints.", "min": 0, "max": "1" }, { "id": "Extension.extension:authorize", "path": "Extension.extension", "sliceName": "authorize", "short": "OAuth2 \"authorize\" endpoint", "definition": "The OAuth2 \"authorize\" endpoint for this FHIR server.", "min": 1, "max": "1", "type": [ { "code": "Extension" } ] }, { "id": "Extension.extension:authorize.extension", "path": "Extension.extension.extension", "max": "0" }, { "id": "Extension.extension:authorize.url", "path": "Extension.extension.url", "type": [ { "code": "uri" } ], "fixedUri": "authorize" }, { "id": "Extension.extension:authorize.valueUri", "path": "Extension.extension.valueUri", "type": [ { "code": "uri" } ] }, { "id": "Extension.extension:token", "path": "Extension.extension", "sliceName": "token", "short": "OAuth2 \"token\" endpoint", "definition": "The OAuth2 \"token\" endpoint for this FHIR server.", "min": 1, "max": "1", "type": [ { "code": "Extension" } ] }, { "id": "Extension.extension:token.extension", "path": "Extension.extension.extension", "max": "0" }, { "id": "Extension.extension:token.url", "path": "Extension.extension.url", "type": [ { "code": "uri" } ], "fixedUri": "token" }, { "id": "Extension.extension:token.valueUri", "path": "Extension.extension.valueUri", "type": [ { "code": "uri" } ] }, { "id": "Extension.extension:register", "path": "Extension.extension", "sliceName": "register", "short": "OAuth2 dynamic registration endpoint", "definition": "The OAuth2 dynamic registration endpoint for this FHIR server, if supported.", "min": 0, "max": "1", "type": [ { "code": "Extension" } ] }, { "id": "Extension.extension:register.extension", "path": "Extension.extension.extension", "max": "0" }, { "id": "Extension.extension:register.url", "path": "Extension.extension.url", "type": [ { "code": "uri" } ], "fixedUri": "register" }, { "id": "Extension.extension:register.valueUri", "path": "Extension.extension.valueUri", "type": [ { "code": "uri" } ] }, { "id": "Extension.extension:manage", "path": "Extension.extension", "sliceName": "manage", "short": "User-facing authorization management entry point", "definition": "The user-facing authorization management workflow entry point for this FHIR server.", "min": 0, "max": "1", "type": [ { "code": "Extension" } ] }, { "id": "Extension.extension:manage.extension", "path": "Extension.extension.extension", "max": "0" }, { "id": "Extension.extension:manage.url", "path": "Extension.extension.url", "type": [ { "code": "uri" } ], "fixedUri": "manage" }, { "id": "Extension.extension:manage.valueUri", "path": "Extension.extension.valueUri", "type": [ { "code": "uri" } ] }, { "id": "Extension.url", "path": "Extension.url", "type": [ { "code": "uri" } ], "fixedUri": "http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris" }, { "id": "Extension.value[x]", "path": "Extension.value[x]", "min": 0, "max": "0" } ] } }
Usage note: every effort has been made to ensure that the examples are correct and useful, but they are not a normative part of the specification.