description: Input parameters for the $create-api operation. package_name: io.health-samurai.core.r6 derivation: constraint name: CreateApiProfile type: Parameters elements: parameter: index: 0 slicing: rules: closed discriminator: - {path: name, type: value} min: 1 slices: resourceType: match: {name: resourceType} schema: _required: true index: 1 elements: name: pattern: {type: String, value: resourceType} index: 2 value: choices: [valueString] index: 4 valueString: {type: string, choiceOf: value, index: 5} resource: {index: 6} part: {index: 7} required: [valueString, value] storageId: match: {name: storageId} schema: _required: true index: 8 elements: name: pattern: {type: String, value: storageId} index: 9 value: choices: [valueString] index: 11 valueString: {type: string, choiceOf: value, index: 12} resource: {index: 13} part: {index: 14} required: [valueString, value] apiTemplate: match: {name: apiTemplate} schema: _required: true index: 15 elements: name: pattern: {type: String, value: apiTemplate} index: 16 value: pattern: {type: String, value: pre-2604} choices: [valueString] index: 18 valueString: type: string pattern: {type: String, value: pre-2604} choiceOf: value index: 19 resource: {index: 20} part: {index: 21} required: [valueString, value] apiId: match: {name: apiId} schema: index: 22 elements: name: pattern: {type: String, value: apiId} index: 23 value: choices: [valueString] index: 25 valueString: {type: string, choiceOf: value, index: 26} resource: {index: 27} part: {index: 28} required: [valueString, value] ifNoneExist: match: {name: ifNoneExist} schema: index: 29 elements: name: pattern: {type: String, value: ifNoneExist} index: 30 value: choices: [valueBoolean] index: 32 valueBoolean: {type: boolean, choiceOf: value, index: 33} resource: {index: 34} part: {index: 35} required: [value, valueBoolean] dataOffloadToExternalStorage: match: {name: dataOffloadToExternalStorage} schema: constraint: 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()} 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())} 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())} index: 36 elements: name: pattern: {type: String, value: dataOffloadToExternalStorage} index: 37 value: choices: [] index: 39 resource: {index: 40} part: array: true min: 2 index: 41 slicing: rules: closed discriminator: - {path: name, type: value} min: 2 slices: storageProvider: match: {name: storageProvider} schema: _required: true index: 42 elements: name: pattern: {type: String, value: storageProvider} index: 43 value: choices: [valueCode] index: 45 valueCode: {type: code, choiceOf: value, index: 46} resource: {index: 47} part: {index: 48} required: [valueCode, value] azureContainer: match: {name: azureContainer} schema: index: 49 elements: name: pattern: {type: String, value: azureContainer} index: 50 value: choices: [valueReference] index: 52 valueReference: type: Reference choiceOf: value refers: ['http://health-samurai.io/fhir/core/StructureDefinition/AzureContainer'] index: 53 resource: {index: 54} part: {index: 55} required: [valueReference, value] awsAccount: match: {name: awsAccount} schema: index: 56 elements: name: pattern: {type: String, value: awsAccount} index: 57 value: choices: [valueReference] index: 59 valueReference: type: Reference choiceOf: value refers: ['http://health-samurai.io/fhir/core/StructureDefinition/AwsAccount'] index: 60 resource: {index: 61} part: {index: 62} required: [valueReference, value] awsBucket: match: {name: awsBucket} schema: index: 63 elements: name: pattern: {type: String, value: awsBucket} index: 64 value: choices: [valueString] index: 66 valueString: {type: string, choiceOf: value, index: 67} resource: {index: 68} part: {index: 69} required: [valueString, value] gcpServiceAccount: match: {name: gcpServiceAccount} schema: index: 70 elements: name: pattern: {type: String, value: gcpServiceAccount} index: 71 value: choices: [valueReference] index: 73 valueReference: type: Reference choiceOf: value refers: ['http://health-samurai.io/fhir/core/StructureDefinition/GcpServiceAccount'] index: 74 resource: {index: 75} part: {index: 76} required: [valueReference, value] gcpBucket: match: {name: gcpBucket} schema: index: 77 elements: name: pattern: {type: String, value: gcpBucket} index: 78 value: choices: [valueString] index: 80 valueString: {type: string, choiceOf: value, index: 81} resource: {index: 82} part: {index: 83} required: [valueString, value] blobNamePrefix: match: {name: blobNamePrefix} schema: index: 84 elements: name: pattern: {type: String, value: blobNamePrefix} index: 85 value: constraint: 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_-]+)*$'')'} choices: [valueString] index: 87 valueString: type: string constraint: 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_-]+)*$'')'} choiceOf: value index: 88 resource: {index: 89} part: {index: 90} required: [valueString, value] fhirpathToBase64BinaryElement: match: {name: fhirpathToBase64BinaryElement} schema: array: true min: 1 _required: true index: 91 elements: name: pattern: {type: String, value: fhirpathToBase64BinaryElement} index: 92 value: choices: [valueString] index: 94 valueString: {type: string, choiceOf: value, index: 95} resource: {index: 96} part: {index: 97} required: [valueString, value] package_version: 0.2608.0 class: profile kind: resource url: http://health-samurai.io/fhir/core/StructureDefinition/parameters-createApiProfile base: http://hl7.org/fhir/StructureDefinition/Parameters version: 0.2608.0 required: [parameter]