Release 5 Draft Ballot

This page is part of the FHIR Specification (v4.6.0: R5 Draft Ballot). 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

Extension: oauth-uris

FHIR Infrastructure Work Group Maturity Level: 1InformativeUse Context: Any

URL for this extension:

http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris

Status: active. Extension maintained by: Health Level Seven International (FHIR Infrastructure)

Supports automated discovery of OAuth2 endpoints.

Context of Use: Use on Element ID CapabilityStatement.rest.security

Extension Content

Summary

NameFlagsCard.TypeDescription & Constraintsdoco
.. oauth-uris0..1ExtensionURL = http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris
oauth-uris: Supports automated discovery of OAuth2 endpoints.


Use on Element ID CapabilityStatement.rest.security
... authorize1..1uriThe OAuth2 "authorize" endpoint for this FHIR server.

... token1..1uriThe OAuth2 "token" endpoint for this FHIR server.

... register0..1uriThe OAuth2 dynamic registration endpoint for this FHIR server, if supported.


doco Documentation for this format

Full Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. extension0..1ExtensionURL = http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris
oauth-uris: Supports automated discovery of OAuth2 endpoints.


Use on Element ID CapabilityStatement.rest.security
... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
... extension:authorize 1..1ExtensionOAuth2 "authorize" endpoint
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"authorize"
.... value[x] 1..1uriValue of extension
... extension:token 1..1ExtensionOAuth2 "token" endpoint
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"token"
.... value[x] 1..1uriValue of extension
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"register"
.... value[x] 1..1uriValue of extension
... extension:manage 0..1ExtensionUser-facing authorization management entry point
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"manage"
.... value[x] 1..1uriValue of extension
... url 1..1uri"http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris"
... value[x] 0..0
.... valueBase64Binarybase64Binary
.... valueBooleanboolean
.... valueCanonicalcanonical(Any)
.... valueCodecode
.... valueDatedate
.... valueDateTimedateTime
.... valueDecimaldecimal
.... valueIdid
.... valueInstantinstant
.... valueIntegerinteger
.... valueInteger64integer64
.... valueMarkdownmarkdown
.... valueOidoid
.... valuePositiveIntpositiveInt
.... valueStringstring
.... valueTimetime
.... valueUnsignedIntunsignedInt
.... valueUriuri
.... valueUrlurl
.... valueUuiduuid
.... valueAddressAddress
.... valueAgeAge
.... valueAnnotationAnnotation
.... valueAttachmentAttachment
.... valueCodeableConceptCodeableConcept
.... valueCodingCoding
.... valueContactPointContactPoint
.... valueCountCount
.... valueDistanceDistance
.... valueDurationDuration
.... valueHumanNameHumanName
.... valueIdentifierIdentifier
.... valueMoneyMoney
.... valuePeriodPeriod
.... valueQuantityQuantity
.... valueRangeRange
.... valueRatioRatio
.... valueReferenceReference(Any)
.... valueSampledDataSampledData
.... valueSignatureSignature
.... valueTimingTiming
.... valueContactDetailContactDetail
.... valueContributorContributor
.... valueDataRequirementDataRequirement
.... valueExpressionExpression
.... valueParameterDefinitionParameterDefinition
.... valueRelatedArtifactRelatedArtifact
.... valueTriggerDefinitionTriggerDefinition
.... valueUsageContextUsageContext
.... valueDosageDosage
.... valueMetaMeta

doco Documentation for this format

XML Template

<!-- oauth-uris -->doco

<extension xmlns="http://hl7.org/fhir"
     url="http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris" >
 <-- extension sliced by value:url  in the specified orderOpen-->
 <extension url="authorize"> ?? 1..1 Extension  <!-- ?? 1..1 OAuth2 "authorize" endpoint -->
  <valueUri value="[uri]"/><!-- ?? 1..1 Value of extension -->
 </extension>
 <extension url="token"> ?? 1..1 Extension  <!-- ?? 1..1 OAuth2 "token" endpoint -->
  <valueUri value="[uri]"/><!-- ?? 1..1 Value of extension -->
 </extension>
 <extension url="register"> ?? 0..1 Extension  <!-- ?? 0..1 OAuth2 dynamic registration endpoint -->
  <valueUri value="[uri]"/><!-- ?? 1..1 Value of extension -->
 </extension>
 <extension url="manage"> ?? 0..1 Extension  <!-- ?? 0..1 User-facing authorization management entry point -->
  <valueUri value="[uri]"/><!-- ?? 1..1 Value of extension -->
 </extension>
</extension>

JSON Template

{ // oauth-uris
    "extension" : [ //  sliced by value:url  in the specified order, Open 
      { // OAuth2 "authorize" endpoint // C? R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "authorize", // R! 
        "valueUri" : "<uri>" // C? R! Value of extension
      },
      { // OAuth2 "token" endpoint // C? R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "token", // R! 
        "valueUri" : "<uri>" // C? R! Value of extension
      },
      { // OAuth2 dynamic registration endpoint // C?
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "register", // R! 
        "valueUri" : "<uri>" // C? R! Value of extension
      },
      { // User-facing authorization management entry point // C?
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "manage", // R! 
        "valueUri" : "<uri>" // C? R! Value of extension
      }
    ],
    "url" : "http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris", // R! 
// value[x]: Value of extension. One of these 51:
  }

Summary

NameFlagsCard.TypeDescription & Constraintsdoco
.. oauth-uris0..1ExtensionURL = http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris
oauth-uris: Supports automated discovery of OAuth2 endpoints.


Use on Element ID CapabilityStatement.rest.security
... authorize1..1uriThe OAuth2 "authorize" endpoint for this FHIR server.

... token1..1uriThe OAuth2 "token" endpoint for this FHIR server.

... register0..1uriThe OAuth2 dynamic registration endpoint for this FHIR server, if supported.


doco Documentation for this format

Full Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. extension0..1ExtensionURL = http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris
oauth-uris: Supports automated discovery of OAuth2 endpoints.


Use on Element ID CapabilityStatement.rest.security
... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
... extension:authorize 1..1ExtensionOAuth2 "authorize" endpoint
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"authorize"
.... value[x] 1..1uriValue of extension
... extension:token 1..1ExtensionOAuth2 "token" endpoint
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"token"
.... value[x] 1..1uriValue of extension
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"register"
.... value[x] 1..1uriValue of extension
... extension:manage 0..1ExtensionUser-facing authorization management entry point
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"manage"
.... value[x] 1..1uriValue of extension
... url 1..1uri"http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris"
... value[x] 0..0
.... valueBase64Binarybase64Binary
.... valueBooleanboolean
.... valueCanonicalcanonical(Any)
.... valueCodecode
.... valueDatedate
.... valueDateTimedateTime
.... valueDecimaldecimal
.... valueIdid
.... valueInstantinstant
.... valueIntegerinteger
.... valueInteger64integer64
.... valueMarkdownmarkdown
.... valueOidoid
.... valuePositiveIntpositiveInt
.... valueStringstring
.... valueTimetime
.... valueUnsignedIntunsignedInt
.... valueUriuri
.... valueUrlurl
.... valueUuiduuid
.... valueAddressAddress
.... valueAgeAge
.... valueAnnotationAnnotation
.... valueAttachmentAttachment
.... valueCodeableConceptCodeableConcept
.... valueCodingCoding
.... valueContactPointContactPoint
.... valueCountCount
.... valueDistanceDistance
.... valueDurationDuration
.... valueHumanNameHumanName
.... valueIdentifierIdentifier
.... valueMoneyMoney
.... valuePeriodPeriod
.... valueQuantityQuantity
.... valueRangeRange
.... valueRatioRatio
.... valueReferenceReference(Any)
.... valueSampledDataSampledData
.... valueSignatureSignature
.... valueTimingTiming
.... valueContactDetailContactDetail
.... valueContributorContributor
.... valueDataRequirementDataRequirement
.... valueExpressionExpression
.... valueParameterDefinitionParameterDefinition
.... valueRelatedArtifactRelatedArtifact
.... valueTriggerDefinitionTriggerDefinition
.... valueUsageContextUsageContext
.... valueDosageDosage
.... valueMetaMeta

doco Documentation for this format

XML Template

<!-- oauth-uris -->doco

<extension xmlns="http://hl7.org/fhir"
     url="http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris" >
 <-- extension sliced by value:url  in the specified orderOpen-->
 <extension url="authorize"> ?? 1..1 Extension  <!-- ?? 1..1 OAuth2 "authorize" endpoint -->
  <valueUri value="[uri]"/><!-- ?? 1..1 Value of extension -->
 </extension>
 <extension url="token"> ?? 1..1 Extension  <!-- ?? 1..1 OAuth2 "token" endpoint -->
  <valueUri value="[uri]"/><!-- ?? 1..1 Value of extension -->
 </extension>
 <extension url="register"> ?? 0..1 Extension  <!-- ?? 0..1 OAuth2 dynamic registration endpoint -->
  <valueUri value="[uri]"/><!-- ?? 1..1 Value of extension -->
 </extension>
 <extension url="manage"> ?? 0..1 Extension  <!-- ?? 0..1 User-facing authorization management entry point -->
  <valueUri value="[uri]"/><!-- ?? 1..1 Value of extension -->
 </extension>
</extension>

JSON Template

{ // oauth-uris
    "extension" : [ //  sliced by value:url  in the specified order, Open 
      { // OAuth2 "authorize" endpoint // C? R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "authorize", // R! 
        "valueUri" : "<uri>" // C? R! Value of extension
      },
      { // OAuth2 "token" endpoint // C? R! 
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "token", // R! 
        "valueUri" : "<uri>" // C? R! Value of extension
      },
      { // OAuth2 dynamic registration endpoint // C?
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "register", // R! 
        "valueUri" : "<uri>" // C? R! Value of extension
      },
      { // User-facing authorization management entry point // C?
        // from Element: extension
        "extension" : [ //  sliced by value:url  in the specified order, Open ]
        "url" : "manage", // R! 
        "valueUri" : "<uri>" // C? R! Value of extension
      }
    ],
    "url" : "http://fhir-registry.smarthealthit.org/StructureDefinition/oauth-uris", // R! 
// value[x]: Value of extension. One of these 51:
  }

 

Constraints

  • ele-1: All FHIR elements must have a @value or children (xpath: @value|f:*|h:div)
  • ext-1: Must have either extensions or value[x], not both (xpath: exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')]))
  • ele-1: On Extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension.value[x]: All FHIR elements must have a @value or children (xpath on Extension.extension.value[x]: @value|f:*|h:div)
  • ele-1: On Extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension.value[x]: All FHIR elements must have a @value or children (xpath on Extension.extension.value[x]: @value|f:*|h:div)
  • ele-1: On Extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension.value[x]: All FHIR elements must have a @value or children (xpath on Extension.extension.value[x]: @value|f:*|h:div)
  • ele-1: On Extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension.extension: All FHIR elements must have a @value or children (xpath on Extension.extension.extension: @value|f:*|h:div)
  • ext-1: On Extension.extension.extension: Must have either extensions or value[x], not both (xpath on Extension.extension.extension: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")]))
  • ele-1: On Extension.extension.value[x]: All FHIR elements must have a @value or children (xpath on Extension.extension.value[x]: @value|f:*|h:div)
  • ele-1: On Extension.value[x]: All FHIR elements must have a @value or children (xpath on Extension.value[x]: @value|f:*|h:div)