{
"description": "Input parameters for the $configure-api operation.",
"_filename": "StructureDefinition-parameters-configureApiProfile.json",
"package_name": "io.health-samurai.core.r4b",
"date": null,
"derivation": "constraint",
"publisher": "Health Samurai",
"fhirVersion": "4.3.0",
"name": "ConfigureApiProfile",
"abstract": false,
"type": "Parameters",
"experimental": null,
"resourceType": "StructureDefinition",
"title": "Configure API Profile",
"package_version": "0.2608.0",
"status": "active",
"id": "9f074e2a-f81e-474b-b8c4-081bbe5f3bc4",
"kind": "resource",
"url": "http://health-samurai.io/fhir/core/StructureDefinition/parameters-configureApiProfile",
"version": "0.2608.0",
"differential": {
"element": [ {
"id": "Parameters",
"path": "Parameters"
}, {
"id": "Parameters.parameter",
"min": 1,
"path": "Parameters.parameter",
"slicing": {
"rules": "closed",
"discriminator": [ {
"path": "name",
"type": "value"
} ]
}
}, {
"id": "Parameters.parameter:resourceType",
"max": "1",
"min": 1,
"path": "Parameters.parameter",
"sliceName": "resourceType"
}, {
"id": "Parameters.parameter:resourceType.name",
"path": "Parameters.parameter.name",
"fixedString": "resourceType"
}, {
"id": "Parameters.parameter:resourceType.value[x]",
"min": 1,
"path": "Parameters.parameter.value[x]",
"type": [ {
"code": "string"
} ]
}, {
"id": "Parameters.parameter:resourceType.resource",
"max": "0",
"path": "Parameters.parameter.resource"
}, {
"id": "Parameters.parameter:resourceType.part",
"max": "0",
"path": "Parameters.parameter.part"
}, {
"id": "Parameters.parameter:storageId",
"max": "1",
"min": 1,
"path": "Parameters.parameter",
"sliceName": "storageId"
}, {
"id": "Parameters.parameter:storageId.name",
"path": "Parameters.parameter.name",
"fixedString": "storageId"
}, {
"id": "Parameters.parameter:storageId.value[x]",
"min": 1,
"path": "Parameters.parameter.value[x]",
"type": [ {
"code": "string"
} ]
}, {
"id": "Parameters.parameter:storageId.resource",
"max": "0",
"path": "Parameters.parameter.resource"
}, {
"id": "Parameters.parameter:storageId.part",
"max": "0",
"path": "Parameters.parameter.part"
}, {
"id": "Parameters.parameter:apiTemplate",
"max": "1",
"min": 1,
"path": "Parameters.parameter",
"sliceName": "apiTemplate"
}, {
"id": "Parameters.parameter:apiTemplate.name",
"path": "Parameters.parameter.name",
"fixedString": "apiTemplate"
}, {
"id": "Parameters.parameter:apiTemplate.value[x]",
"min": 1,
"path": "Parameters.parameter.value[x]",
"type": [ {
"code": "string"
} ],
"fixedString": "pre-2604"
}, {
"id": "Parameters.parameter:apiTemplate.resource",
"max": "0",
"path": "Parameters.parameter.resource"
}, {
"id": "Parameters.parameter:apiTemplate.part",
"max": "0",
"path": "Parameters.parameter.part"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage",
"max": "1",
"min": 0,
"path": "Parameters.parameter",
"sliceName": "dataOffloadToExternalStorage",
"constraint": [ {
"key": "mount-data-offload-azure-container",
"human": "azureContainer is required when storageProvider is 'azure'",
"severity": "error",
"expression": "part.where(name = 'storageProvider' and value = 'azure').exists() implies part.where(name = 'azureContainer').exists()"
}, {
"key": "mount-data-offload-aws-account",
"human": "awsAccount and awsBucket are required when storageProvider is 'aws'",
"severity": "error",
"expression": "part.where(name = 'storageProvider' and value = 'aws').exists() implies (part.where(name = 'awsAccount').exists() and part.where(name = 'awsBucket').exists())"
}, {
"key": "mount-data-offload-gcp-account",
"human": "gcpServiceAccount and gcpBucket are required when storageProvider is 'gcp'",
"severity": "error",
"expression": "part.where(name = 'storageProvider' and value = 'gcp').exists() implies (part.where(name = 'gcpServiceAccount').exists() and part.where(name = 'gcpBucket').exists())"
} ]
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.name",
"path": "Parameters.parameter.name",
"fixedString": "dataOffloadToExternalStorage"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.value[x]",
"max": "0",
"path": "Parameters.parameter.value[x]"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.resource",
"max": "0",
"path": "Parameters.parameter.resource"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part",
"max": "*",
"min": 2,
"path": "Parameters.parameter.part",
"slicing": {
"rules": "closed",
"discriminator": [ {
"path": "name",
"type": "value"
} ]
}
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:storageProvider",
"max": "1",
"min": 1,
"path": "Parameters.parameter.part",
"sliceName": "storageProvider"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:storageProvider.name",
"path": "Parameters.parameter.part.name",
"fixedString": "storageProvider"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:storageProvider.value[x]",
"min": 1,
"path": "Parameters.parameter.part.value[x]",
"type": [ {
"code": "code"
} ]
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:storageProvider.resource",
"max": "0",
"path": "Parameters.parameter.part.resource"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:storageProvider.part",
"max": "0",
"path": "Parameters.parameter.part.part"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:azureContainer",
"max": "1",
"min": 0,
"path": "Parameters.parameter.part",
"sliceName": "azureContainer"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:azureContainer.name",
"path": "Parameters.parameter.part.name",
"fixedString": "azureContainer"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:azureContainer.value[x]",
"min": 1,
"path": "Parameters.parameter.part.value[x]",
"type": [ {
"code": "Reference",
"targetProfile": [ "http://health-samurai.io/fhir/core/StructureDefinition/AzureContainer" ]
} ]
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:azureContainer.resource",
"max": "0",
"path": "Parameters.parameter.part.resource"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:azureContainer.part",
"max": "0",
"path": "Parameters.parameter.part.part"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:awsAccount",
"max": "1",
"min": 0,
"path": "Parameters.parameter.part",
"sliceName": "awsAccount"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:awsAccount.name",
"path": "Parameters.parameter.part.name",
"fixedString": "awsAccount"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:awsAccount.value[x]",
"min": 1,
"path": "Parameters.parameter.part.value[x]",
"type": [ {
"code": "Reference",
"targetProfile": [ "http://health-samurai.io/fhir/core/StructureDefinition/AwsAccount" ]
} ]
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:awsAccount.resource",
"max": "0",
"path": "Parameters.parameter.part.resource"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:awsAccount.part",
"max": "0",
"path": "Parameters.parameter.part.part"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:awsBucket",
"max": "1",
"min": 0,
"path": "Parameters.parameter.part",
"sliceName": "awsBucket"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:awsBucket.name",
"path": "Parameters.parameter.part.name",
"fixedString": "awsBucket"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:awsBucket.value[x]",
"min": 1,
"path": "Parameters.parameter.part.value[x]",
"type": [ {
"code": "string"
} ]
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:awsBucket.resource",
"max": "0",
"path": "Parameters.parameter.part.resource"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:awsBucket.part",
"max": "0",
"path": "Parameters.parameter.part.part"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:gcpServiceAccount",
"max": "1",
"min": 0,
"path": "Parameters.parameter.part",
"sliceName": "gcpServiceAccount"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:gcpServiceAccount.name",
"path": "Parameters.parameter.part.name",
"fixedString": "gcpServiceAccount"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:gcpServiceAccount.value[x]",
"min": 1,
"path": "Parameters.parameter.part.value[x]",
"type": [ {
"code": "Reference",
"targetProfile": [ "http://health-samurai.io/fhir/core/StructureDefinition/GcpServiceAccount" ]
} ]
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:gcpServiceAccount.resource",
"max": "0",
"path": "Parameters.parameter.part.resource"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:gcpServiceAccount.part",
"max": "0",
"path": "Parameters.parameter.part.part"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:gcpBucket",
"max": "1",
"min": 0,
"path": "Parameters.parameter.part",
"sliceName": "gcpBucket"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:gcpBucket.name",
"path": "Parameters.parameter.part.name",
"fixedString": "gcpBucket"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:gcpBucket.value[x]",
"min": 1,
"path": "Parameters.parameter.part.value[x]",
"type": [ {
"code": "string"
} ]
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:gcpBucket.resource",
"max": "0",
"path": "Parameters.parameter.part.resource"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:gcpBucket.part",
"max": "0",
"path": "Parameters.parameter.part.part"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:blobNamePrefix",
"max": "1",
"min": 0,
"path": "Parameters.parameter.part",
"sliceName": "blobNamePrefix"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:blobNamePrefix.name",
"path": "Parameters.parameter.part.name",
"fixedString": "blobNamePrefix"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:blobNamePrefix.value[x]",
"min": 1,
"path": "Parameters.parameter.part.value[x]",
"type": [ {
"code": "string"
} ],
"constraint": [ {
"key": "mount-data-offload-prefix-format",
"human": "blobNamePrefix must be 1-256 characters: one or more '/'-separated segments of letters, digits, '_' or '-' (e.g. 'env-1/tenant_a/blobs'); it must not start or end with '/' or contain empty segments",
"severity": "error",
"expression": "$this.length() <= 256 and $this.matches('^[A-Za-z0-9_-]+(/[A-Za-z0-9_-]+)*$')"
} ]
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:blobNamePrefix.resource",
"max": "0",
"path": "Parameters.parameter.part.resource"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:blobNamePrefix.part",
"max": "0",
"path": "Parameters.parameter.part.part"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:fhirpathToBase64BinaryElement",
"max": "*",
"min": 1,
"path": "Parameters.parameter.part",
"sliceName": "fhirpathToBase64BinaryElement"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:fhirpathToBase64BinaryElement.name",
"path": "Parameters.parameter.part.name",
"fixedString": "fhirpathToBase64BinaryElement"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:fhirpathToBase64BinaryElement.value[x]",
"min": 1,
"path": "Parameters.parameter.part.value[x]",
"type": [ {
"code": "string"
} ]
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:fhirpathToBase64BinaryElement.resource",
"max": "0",
"path": "Parameters.parameter.part.resource"
}, {
"id": "Parameters.parameter:dataOffloadToExternalStorage.part:fhirpathToBase64BinaryElement.part",
"max": "0",
"path": "Parameters.parameter.part.part"
}, {
"id": "Parameters.parameter:apiId",
"max": "1",
"min": 1,
"path": "Parameters.parameter",
"sliceName": "apiId"
}, {
"id": "Parameters.parameter:apiId.name",
"path": "Parameters.parameter.name",
"fixedString": "apiId"
}, {
"id": "Parameters.parameter:apiId.value[x]",
"min": 1,
"path": "Parameters.parameter.value[x]",
"type": [ {
"code": "string"
} ]
}, {
"id": "Parameters.parameter:apiId.resource",
"max": "0",
"path": "Parameters.parameter.resource"
}, {
"id": "Parameters.parameter:apiId.part",
"max": "0",
"path": "Parameters.parameter.part"
} ]
},
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/Parameters"
}