{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/aws-healthlake/main/json-schema/CreateFHIRDatastoreRequest.json",
  "title": "CreateFHIRDatastoreRequest",
  "description": "AWS HealthLake CreateFHIRDatastoreRequest",
  "type": "object",
  "properties": {
    "DatastoreName": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-%@]*)$"
    },
    "DatastoreTypeVersion": {
      "type": "string",
      "enum": [
        "R4"
      ]
    },
    "SseConfiguration": {
      "type": "object",
      "properties": {
        "KmsEncryptionConfig": {
          "type": "object",
          "properties": {
            "CmkType": {
              "type": "string",
              "enum": [
                "CUSTOMER_MANAGED_KMS_KEY",
                "AWS_OWNED_KMS_KEY"
              ]
            },
            "KmsKeyId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 400,
              "pattern": "(arn:aws((-us-gov)|(-iso)|(-iso-b)|(-cn))?:kms:)?([a-z]{2}-[a-z]+(-[a-z]+)?-\\d:)?(\\d{12}:)?(((key/)?[a-zA-Z0-9-_]+)|(alias/[a-zA-Z0-9:/_-]+))"
            }
          },
          "required": [
            "CmkType"
          ]
        }
      },
      "required": [
        "KmsEncryptionConfig"
      ]
    },
    "PreloadDataConfig": {
      "type": "object",
      "properties": {
        "PreloadDataType": {
          "type": "string",
          "enum": [
            "SYNTHEA"
          ]
        }
      },
      "required": [
        "PreloadDataType"
      ]
    },
    "ClientToken": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "pattern": "^[a-zA-Z0-9-]+$"
    },
    "Tags": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "Key": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128,
            "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"
          },
          "Value": {
            "type": "string",
            "minLength": 0,
            "maxLength": 256,
            "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"
          }
        },
        "required": [
          "Key",
          "Value"
        ]
      }
    },
    "IdentityProviderConfiguration": {
      "type": "object",
      "properties": {
        "AuthorizationStrategy": {
          "type": "string",
          "enum": [
            "SMART_ON_FHIR_V1",
            "AWS_AUTH"
          ]
        },
        "FineGrainedAuthorizationEnabled": {
          "type": "boolean"
        },
        "Metadata": {
          "type": "string"
        },
        "IdpLambdaArn": {
          "type": "string",
          "minLength": 49,
          "maxLength": 256,
          "pattern": "arn:aws:lambda:[a-z]{2}-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9\\-_\\.]+(:(\\$LATEST|[a-zA-Z0-9\\-_]+))?"
        }
      },
      "required": [
        "AuthorizationStrategy"
      ]
    }
  },
  "required": [
    "DatastoreTypeVersion"
  ]
}