{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/amazon-neptune/json-schema/amazon-neptune-get-import-task-output-schema.json",
  "title": "GetImportTaskOutput",
  "x-generated": "2026-11-11",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/amazon-neptune-import-tasks-api-openapi.yml#/components/schemas/GetImportTaskOutput",
  "type": "object",
  "properties": {
    "graphId": {
      "type": "string",
      "description": "The unique identifier of the Neptune Analytics graph."
    },
    "taskId": {
      "type": "string",
      "description": "The unique identifier of the import task."
    },
    "source": {
      "type": "string",
      "description": "A URL identifying to the location of the data to be imported. This can be an Amazon S3 path, or can point to a Neptune database endpoint or snapshot"
    },
    "format": {
      "type": "string",
      "enum": [
        "CSV",
        "OPEN_CYPHER",
        "PARQUET",
        "NTRIPLES"
      ],
      "description": "Specifies the format of S3 data to be imported. Valid values are CSV, which identifies the Gremlin CSV format or OPENCYPHER, which identifies the openCypher load format."
    },
    "parquetType": {
      "type": "string",
      "enum": [
        "COLUMNAR"
      ],
      "description": "The parquet type of the import task."
    },
    "roleArn": {
      "type": "string",
      "description": "The ARN of the IAM role that will allow access to the data that is to be imported."
    },
    "status": {
      "type": "string",
      "enum": [
        "INITIALIZING",
        "EXPORTING",
        "ANALYZING_DATA",
        "IMPORTING",
        "REPROVISIONING",
        "ROLLING_BACK",
        "SUCCEEDED",
        "FAILED",
        "CANCELLING",
        "CANCELLED",
        "DELETED"
      ],
      "description": "The status of the import task: INITIALIZING – The necessary resources needed to create the graph are being prepared. ANALYZING_DATA – The data is being analyzed to determine the optimal infrastructure configuration for the new graph. RE_PROVISIONING – The data did not fit into the provisioned graph, so it is being re-provisioned with more capacity. IMPORTING – The data is being loaded. ERROR_ENCOUNTERED – An error has been encountered while trying to create the graph and import the data. ERROR_ENCOUNTERED_ROLLING_BACK – Because of the error that was encountered, the graph is being rolled back "
    },
    "importOptions": {
      "$ref": "#/$defs/ImportOptions"
    },
    "importTaskDetails": {
      "$ref": "#/$defs/ImportTaskDetails"
    },
    "attemptNumber": {
      "type": "integer",
      "description": "The number of the current attempts to execute the import task."
    },
    "statusReason": {
      "type": "string",
      "description": "The reason that the import task has this status value."
    }
  },
  "required": [
    "taskId",
    "source",
    "roleArn",
    "status"
  ],
  "$defs": {
    "ImportOptions": {
      "type": "object",
      "properties": {
        "neptune": {
          "$ref": "#/$defs/NeptuneImportOptions"
        }
      },
      "description": "Exactly one member is set."
    },
    "ImportTaskDetails": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "description": "Status of the import task."
        },
        "startTime": {
          "type": "string",
          "description": "Time at which the import task started."
        },
        "timeElapsedSeconds": {
          "type": "integer",
          "description": "Seconds elapsed since the import task started."
        },
        "progressPercentage": {
          "type": "integer",
          "description": "The percentage progress so far."
        },
        "errorCount": {
          "type": "integer",
          "description": "The number of errors encountered so far."
        },
        "errorDetails": {
          "type": "string",
          "description": "Details about the errors that have been encountered."
        },
        "statementCount": {
          "type": "integer",
          "description": "The number of statements in the import task."
        },
        "dictionaryEntryCount": {
          "type": "integer",
          "description": "The number of dictionary entries in the import task."
        }
      },
      "required": [
        "status",
        "startTime",
        "timeElapsedSeconds",
        "progressPercentage",
        "errorCount",
        "statementCount",
        "dictionaryEntryCount"
      ]
    },
    "NeptuneImportOptions": {
      "type": "object",
      "properties": {
        "s3ExportPath": {
          "type": "string",
          "description": "The path to an S3 bucket from which to import data."
        },
        "s3ExportKmsKeyId": {
          "type": "string",
          "description": "The KMS key to use to encrypt data in the S3 bucket where the graph data is exported"
        },
        "preserveDefaultVertexLabels": {
          "type": "boolean",
          "description": "Neptune Analytics supports label-less vertices and no labels are assigned unless one is explicitly provided. Neptune assigns default labels when none is explicitly provided. When importing the data into Neptune Analytics, the default vertex labels can be omitted by setting preserveDefaultVertexLabels to false. Note that if the vertex only has default labels, and has no other properties or edges, then the vertex will effectively not get imported into Neptune Analytics when preserveDefaultVertexLabels is set to false."
        },
        "preserveEdgeIds": {
          "type": "boolean",
          "description": "Neptune Analytics currently does not support user defined edge ids. The edge ids are not imported by default. They are imported if preserveEdgeIds is set to true, and ids are stored as properties on the relationships with the property name neptuneEdgeId."
        }
      },
      "required": [
        "s3ExportPath",
        "s3ExportKmsKeyId"
      ]
    }
  }
}