{
"description": "PostgreSQL materialization: the schema and object name to build, and which kind of object to build.",
"_filename": "StructureDefinition-aidboxmaterialization-pgProfile.json",
"package_name": "io.health-samurai.core.r3",
"date": null,
"derivation": "constraint",
"publisher": "Health Samurai",
"fhirVersion": "3.0.2",
"name": "PgProfile",
"abstract": false,
"type": "AidboxMaterialization",
"experimental": null,
"resourceType": "StructureDefinition",
"title": "PG Profile",
"package_version": "0.2609.0",
"extension": [ {
"url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-category",
"valueString": "sql-on-fhir"
} ],
"status": "active",
"id": "396b9ddc-3765-4db2-bd0a-02ed68a17fee",
"kind": "resource",
"url": "http://health-samurai.io/fhir/core/StructureDefinition/aidboxmaterialization-pgProfile",
"version": "0.2609.0",
"differential": {
"element": [ {
"id": "AidboxMaterialization.parameter",
"path": "AidboxMaterialization.parameter",
"slicing": {
"rules": "closed",
"discriminator": [ {
"path": "name",
"type": "pattern"
} ]
}
}, {
"id": "AidboxMaterialization.parameter:schema",
"max": "1",
"min": 1,
"path": "AidboxMaterialization.parameter",
"sliceName": "schema"
}, {
"id": "AidboxMaterialization.parameter:schema.name",
"path": "AidboxMaterialization.parameter.name",
"fixedString": "schema"
}, {
"id": "AidboxMaterialization.parameter:schema.value[x]",
"min": 1,
"path": "AidboxMaterialization.parameter.value[x]",
"type": [ {
"code": "string"
} ],
"constraint": [ {
"key": "materialization-pg-identifier",
"human": "must be a plain SQL identifier: letters, digits or underscore, not starting with a digit",
"severity": "error",
"expression": "$this.matches('^[A-Za-z_][A-Za-z0-9_]*$')"
} ]
}, {
"id": "AidboxMaterialization.parameter:schema.resource",
"max": "0",
"path": "AidboxMaterialization.parameter.resource"
}, {
"id": "AidboxMaterialization.parameter:schema.part",
"max": "0",
"path": "AidboxMaterialization.parameter.part"
}, {
"id": "AidboxMaterialization.parameter:name",
"max": "1",
"min": 1,
"path": "AidboxMaterialization.parameter",
"sliceName": "name"
}, {
"id": "AidboxMaterialization.parameter:name.name",
"path": "AidboxMaterialization.parameter.name",
"fixedString": "name"
}, {
"id": "AidboxMaterialization.parameter:name.value[x]",
"min": 1,
"path": "AidboxMaterialization.parameter.value[x]",
"type": [ {
"code": "string"
} ],
"constraint": [ {
"key": "materialization-pg-identifier",
"human": "must be a plain SQL identifier: letters, digits or underscore, not starting with a digit",
"severity": "error",
"expression": "$this.matches('^[A-Za-z_][A-Za-z0-9_]*$')"
} ]
}, {
"id": "AidboxMaterialization.parameter:name.resource",
"max": "0",
"path": "AidboxMaterialization.parameter.resource"
}, {
"id": "AidboxMaterialization.parameter:name.part",
"max": "0",
"path": "AidboxMaterialization.parameter.part"
}, {
"id": "AidboxMaterialization.parameter:materializationType",
"max": "1",
"min": 0,
"path": "AidboxMaterialization.parameter",
"sliceName": "materializationType"
}, {
"id": "AidboxMaterialization.parameter:materializationType.name",
"path": "AidboxMaterialization.parameter.name",
"fixedString": "materializationType"
}, {
"id": "AidboxMaterialization.parameter:materializationType.value[x]",
"min": 1,
"path": "AidboxMaterialization.parameter.value[x]",
"type": [ {
"code": "code"
} ],
"constraint": [ {
"key": "materialization-pg-object-type",
"human": "materializationType shall be one of: view, materialized-view",
"severity": "error",
"expression": "$this.subsetOf('view' | 'materialized-view')"
} ]
}, {
"id": "AidboxMaterialization.parameter:materializationType.resource",
"max": "0",
"path": "AidboxMaterialization.parameter.resource"
}, {
"id": "AidboxMaterialization.parameter:materializationType.part",
"max": "0",
"path": "AidboxMaterialization.parameter.part"
} ]
},
"baseDefinition": "http://health-samurai.io/fhir/core/StructureDefinition/AidboxMaterialization"
}