{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/amazon-application-discovery-service/refs/heads/main/json-schema/application-discovery-service-import-task-schema.json",
  "title": "ImportTask",
  "description": "ImportTask schema from Amazon Application Discovery Service API",
  "type": "object",
  "properties": {
    "importTaskId": {
      "type": "string",
      "example": "import-task-500123",
      "description": "The unique ID for a specific import task."
    },
    "clientRequestToken": {
      "type": "string",
      "example": "client-token-500123",
      "description": "A unique token used to prevent the same import request from occurring more than once."
    },
    "name": {
      "type": "string",
      "example": "Server Inventory Import April 2026",
      "description": "A descriptive name for an import task."
    },
    "importUrl": {
      "type": "string",
      "example": "s3://my-bucket/server-inventory.csv",
      "description": "The URL for your import file that you've uploaded to Amazon S3."
    },
    "status": {
      "type": "string",
      "enum": [
        "IMPORT_IN_PROGRESS",
        "IMPORT_COMPLETE",
        "IMPORT_COMPLETE_WITH_ERRORS",
        "IMPORT_FAILED",
        "IMPORT_FAILED_SERVER_LIMIT_EXCEEDED",
        "IMPORT_FAILED_RECORD_LIMIT_EXCEEDED",
        "DELETE_IN_PROGRESS",
        "DELETE_COMPLETE",
        "DELETE_FAILED",
        "DELETE_FAILED_LIMIT_EXCEEDED",
        "INTERNAL_ERROR"
      ],
      "example": "IMPORT_COMPLETE",
      "description": "The status of the import task."
    },
    "importRequestTime": {
      "type": "string",
      "example": "2026-04-19T10:00:00Z",
      "description": "The time that the import task request was made, presented in the Unix time stamp format."
    },
    "importCompletionTime": {
      "type": "string",
      "example": "2026-04-19T10:05:00Z",
      "description": "The time that the import task request finished, presented in the Unix time stamp format."
    },
    "importDeletedTime": {
      "type": "string",
      "example": "",
      "description": "The time that the import task request was deleted, presented in the Unix time stamp format."
    },
    "serverImportSuccess": {
      "type": "integer",
      "example": 42,
      "description": "The total number of server records in the import file that were successfully imported."
    },
    "serverImportFailure": {
      "type": "integer",
      "example": 0,
      "description": "The total number of server records in the import file that failed to be imported."
    },
    "applicationImportSuccess": {
      "type": "integer",
      "example": 5,
      "description": "The total number of application records in the import file that were successfully imported."
    },
    "applicationImportFailure": {
      "type": "integer",
      "example": 0,
      "description": "The total number of application records in the import file that failed to be imported."
    },
    "errorsAndFailedEntriesZip": {
      "type": "string",
      "example": "",
      "description": "A link to a compressed archive folder (in the ZIP format) of all errors and failed entries that were detected, organized according to the type of error."
    }
  }
}