{
"description": "Azure credentials used by Aidbox to access Azure services.",
"_filename": "StructureDefinition-AzureAccount.json",
"package_name": "io.health-samurai.core.r3",
"date": null,
"derivation": "specialization",
"publisher": "Health Samurai",
"fhirVersion": "3.0.2",
"name": "AzureAccount",
"abstract": false,
"type": "AzureAccount",
"experimental": null,
"resourceType": "StructureDefinition",
"title": "Azure Account",
"package_version": "0.2608.0",
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-category",
"valueString": "Integration.Cloud"
} ],
"status": "active",
"id": "4f962a8b-e907-4c35-afd8-c425b8560aa2",
"kind": "resource",
"url": "http://health-samurai.io/fhir/core/StructureDefinition/AzureAccount",
"version": "0.2608.0",
"differential": {
"element": [ {
"id": "AzureAccount",
"max": "*",
"min": 0,
"path": "AzureAccount",
"constraint": [ {
"key": "azure-account-sas-validation",
"human": "If sasType is 'userDelegation', then tenantId, clientId, and clientSecret are required. If sasType is 'account', then key is required. tenantId, clientId, and clientSecret must be set together. An AzureAccount with no credentials at all authenticates via workload identity (DefaultAzureCredential).",
"severity": "error",
"expression": "((sasType.exists() and sasType = 'userDelegation') implies (tenantId.exists() and clientId.exists() and clientSecret.exists())) and ((sasType.exists() and sasType = 'account') implies key.exists()) and ((tenantId.exists() or clientId.exists() or clientSecret.exists()) implies (tenantId.exists() and clientId.exists() and clientSecret.exists()))"
}, {
"key": "azure-account-sas-type-enum",
"human": "sasType must be either 'account' or 'userDelegation' or empty.",
"severity": "error",
"expression": "sasType.empty() or sasType = 'account' or sasType = 'userDelegation'"
} ]
}, {
"id": "AzureAccount._source",
"max": "1",
"min": 0,
"path": "AzureAccount._source",
"type": [ {
"code": "string"
} ],
"short": "System Property. DO NOT USE IT."
}, {
"id": "AzureAccount.key",
"max": "1",
"min": 0,
"path": "AzureAccount.key",
"type": [ {
"code": "string"
} ],
"short": "Azure storage account key for authentication (required for Account SAS)."
}, {
"id": "AzureAccount.sasType",
"max": "1",
"min": 0,
"path": "AzureAccount.sasType",
"type": [ {
"code": "string"
} ],
"short": "SAS type: 'account' (default) or 'userDelegation'. Available since 2508."
}, {
"id": "AzureAccount.tenantId",
"max": "1",
"min": 0,
"path": "AzureAccount.tenantId",
"type": [ {
"code": "string"
} ],
"short": "Azure AD tenant ID (required for User Delegation SAS)."
}, {
"id": "AzureAccount.clientId",
"max": "1",
"min": 0,
"path": "AzureAccount.clientId",
"type": [ {
"code": "string"
} ],
"short": "Azure AD application/client ID (required for User Delegation SAS). Available since 2508."
}, {
"id": "AzureAccount.clientSecret",
"max": "1",
"min": 0,
"path": "AzureAccount.clientSecret",
"type": [ {
"code": "string"
} ],
"short": "Azure AD client secret (required for User Delegation SAS). Available since 2508."
} ]
},
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/DomainResource"
}