PackagesCanonicalsLogsProblems
    Packages
    io.health-samurai.core.r3@0.2608.0
    http://health-samurai.io/fhir/core/StructureDefinition/parameters-configureApiProfile
{
  "description": "Input parameters for the $configure-api operation.",
  "_filename": "StructureDefinition-parameters-configureApiProfile.json",
  "package_name": "io.health-samurai.core.r3",
  "date": null,
  "derivation": "constraint",
  "publisher": "Health Samurai",
  "fhirVersion": "3.0.2",
  "name": "ConfigureApiProfile",
  "abstract": false,
  "type": "Parameters",
  "experimental": null,
  "resourceType": "StructureDefinition",
  "title": "Configure API Profile",
  "package_version": "0.2608.0",
  "status": "active",
  "id": "c2c1f6dd-3e56-40ba-9064-02264ca62c12",
  "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"
}