{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/aws-healthlake/main/json-schema/StartFHIRImportJobRequest.json",
  "title": "StartFHIRImportJobRequest",
  "description": "AWS HealthLake StartFHIRImportJobRequest",
  "type": "object",
  "properties": {
    "JobName": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-%@]*)$"
    },
    "InputDataConfig": {
      "type": "object",
      "properties": {
        "S3Uri": {
          "type": "string",
          "maxLength": 1024,
          "pattern": "s3://[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9](/.*)?"
        }
      }
    },
    "JobOutputDataConfig": {
      "type": "object",
      "properties": {
        "S3Configuration": {
          "type": "object",
          "properties": {
            "S3Uri": {
              "type": "string",
              "maxLength": 1024,
              "pattern": "s3://[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9](/.*)?"
            },
            "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": [
            "S3Uri",
            "KmsKeyId"
          ]
        }
      }
    },
    "DatastoreId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 32,
      "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-%@]*)$"
    },
    "DataAccessRoleArn": {
      "type": "string",
      "minLength": 20,
      "maxLength": 2048,
      "pattern": "arn:aws(-[^:]+)?:iam::[0-9]{12}:role/.+"
    },
    "ClientToken": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "pattern": "^[a-zA-Z0-9-]+$"
    }
  },
  "required": [
    "InputDataConfig",
    "JobOutputDataConfig",
    "DatastoreId",
    "DataAccessRoleArn",
    "ClientToken"
  ]
}