{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2024-01-01",
    "endpointPrefix":"scn",
    "jsonVersion":"1.1",
    "protocol":"rest-json",
    "serviceFullName":"AWS Supply Chain",
    "serviceId":"SupplyChain",
    "signatureVersion":"v4",
    "signingName":"scn",
    "uid":"supplychain-2024-01-01"
  },
  "operations":{
    "CreateBillOfMaterialsImportJob":{
      "name":"CreateBillOfMaterialsImportJob",
      "http":{
        "method":"POST",
        "requestUri":"/api/configuration/instances/{instanceId}/bill-of-materials-import-jobs",
        "responseCode":200
      },
      "input":{"shape":"CreateBillOfMaterialsImportJobRequest"},
      "output":{"shape":"CreateBillOfMaterialsImportJobResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>CreateBillOfMaterialsImportJob creates an import job for the Product Bill Of Materials (BOM) entity. For information on the product_bom entity, see the AWS Supply Chain User Guide.</p> <p>The CSV file must be located in an Amazon S3 location accessible to AWS Supply Chain. It is recommended to use the same Amazon S3 bucket created during your AWS Supply Chain instance creation.</p>",
      "idempotent":true
    },
    "GetBillOfMaterialsImportJob":{
      "name":"GetBillOfMaterialsImportJob",
      "http":{
        "method":"GET",
        "requestUri":"/api/configuration/instances/{instanceId}/bill-of-materials-import-jobs/{jobId}",
        "responseCode":200
      },
      "input":{"shape":"GetBillOfMaterialsImportJobRequest"},
      "output":{"shape":"GetBillOfMaterialsImportJobResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Get status and details of a BillOfMaterialsImportJob.</p>"
    },
    "SendDataIntegrationEvent":{
      "name":"SendDataIntegrationEvent",
      "http":{
        "method":"POST",
        "requestUri":"/api-data/data-integration/instance/{instanceId}/data-integration-events",
        "responseCode":200
      },
      "input":{"shape":"SendDataIntegrationEventRequest"},
      "output":{"shape":"SendDataIntegrationEventResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Send transactional data events with real-time data for analysis or monitoring.</p>",
      "idempotent":true
    }
  },
  "shapes":{
    "AccessDeniedException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>You do not have the required privileges to perform this action.</p>",
      "error":{
        "httpStatusCode":403,
        "senderFault":true
      },
      "exception":true
    },
    "BillOfMaterialsImportJob":{
      "type":"structure",
      "required":[
        "instanceId",
        "jobId",
        "status",
        "s3uri"
      ],
      "members":{
        "instanceId":{
          "shape":"UUID",
          "documentation":"<p>The BillOfMaterialsImportJob instanceId.</p>"
        },
        "jobId":{
          "shape":"UUID",
          "documentation":"<p>The BillOfMaterialsImportJob jobId.</p>"
        },
        "status":{
          "shape":"ConfigurationJobStatus",
          "documentation":"<p>The BillOfMaterialsImportJob ConfigurationJobStatus.</p>"
        },
        "s3uri":{
          "shape":"ConfigurationS3Uri",
          "documentation":"<p>The S3 URI from which the CSV is read.</p>"
        },
        "message":{
          "shape":"String",
          "documentation":"<p>When the BillOfMaterialsImportJob has reached a terminal state, there will be a message.</p>"
        }
      },
      "documentation":"<p>The BillOfMaterialsImportJob details.</p>"
    },
    "ClientToken":{
      "type":"string",
      "documentation":"<p>Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.</p>",
      "max":126,
      "min":33
    },
    "ConfigurationJobStatus":{
      "type":"string",
      "documentation":"<p>The status of the job.</p>",
      "enum":[
        "NEW",
        "FAILED",
        "IN_PROGRESS",
        "QUEUED",
        "SUCCESS"
      ]
    },
    "ConfigurationS3Uri":{
      "type":"string",
      "min":10,
      "pattern":"[sS]3://[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]/.+"
    },
    "ConflictException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>Updating or deleting a resource can cause an inconsistent state.</p>",
      "error":{
        "httpStatusCode":409,
        "senderFault":true
      },
      "exception":true
    },
    "CreateBillOfMaterialsImportJobRequest":{
      "type":"structure",
      "required":[
        "instanceId",
        "s3uri"
      ],
      "members":{
        "instanceId":{
          "shape":"UUID",
          "documentation":"<p>The AWS Supply Chain instance identifier.</p>",
          "location":"uri",
          "locationName":"instanceId"
        },
        "s3uri":{
          "shape":"ConfigurationS3Uri",
          "documentation":"<p>The S3 URI of the CSV file to be imported. The bucket must grant permissions for AWS Supply Chain to read the file.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>An idempotency token.</p>",
          "idempotencyToken":true
        }
      },
      "documentation":"<p>The request parameters for CreateBillOfMaterialsImportJob.</p>"
    },
    "CreateBillOfMaterialsImportJobResponse":{
      "type":"structure",
      "required":["jobId"],
      "members":{
        "jobId":{
          "shape":"UUID",
          "documentation":"<p>The new BillOfMaterialsImportJob identifier.</p>"
        }
      },
      "documentation":"<p>The response parameters of CreateBillOfMaterialsImportJob.</p>"
    },
    "DataIntegrationEventData":{
      "type":"string",
      "max":1048576,
      "min":1,
      "sensitive":true
    },
    "DataIntegrationEventGroupId":{
      "type":"string",
      "max":255,
      "min":1
    },
    "DataIntegrationEventType":{
      "type":"string",
      "enum":[
        "scn.data.forecast",
        "scn.data.inventorylevel",
        "scn.data.inboundorder",
        "scn.data.inboundorderline",
        "scn.data.inboundorderlineschedule",
        "scn.data.outboundorderline",
        "scn.data.outboundshipment",
        "scn.data.processheader",
        "scn.data.processoperation",
        "scn.data.processproduct",
        "scn.data.reservation",
        "scn.data.shipment",
        "scn.data.shipmentstop",
        "scn.data.shipmentstoporder",
        "scn.data.supplyplan"
      ]
    },
    "GetBillOfMaterialsImportJobRequest":{
      "type":"structure",
      "required":[
        "instanceId",
        "jobId"
      ],
      "members":{
        "instanceId":{
          "shape":"UUID",
          "documentation":"<p>The AWS Supply Chain instance identifier.</p>",
          "location":"uri",
          "locationName":"instanceId"
        },
        "jobId":{
          "shape":"UUID",
          "documentation":"<p>The BillOfMaterialsImportJob identifier.</p>",
          "location":"uri",
          "locationName":"jobId"
        }
      },
      "documentation":"<p>The request parameters for GetBillOfMaterialsImportJob.</p>"
    },
    "GetBillOfMaterialsImportJobResponse":{
      "type":"structure",
      "required":["job"],
      "members":{
        "job":{
          "shape":"BillOfMaterialsImportJob",
          "documentation":"<p>The BillOfMaterialsImportJob.</p>"
        }
      },
      "documentation":"<p>The response parameters for GetBillOfMaterialsImportJob.</p>"
    },
    "InternalServerException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>Unexpected error during processing of request.</p>",
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true,
      "retryable":{"throttling":false}
    },
    "ResourceNotFoundException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>Request references a resource which does not exist.</p>",
      "error":{
        "httpStatusCode":404,
        "senderFault":true
      },
      "exception":true
    },
    "SendDataIntegrationEventRequest":{
      "type":"structure",
      "required":[
        "instanceId",
        "eventType",
        "data",
        "eventGroupId"
      ],
      "members":{
        "instanceId":{
          "shape":"UUID",
          "documentation":"<p>The AWS Supply Chain instance identifier.</p>",
          "location":"uri",
          "locationName":"instanceId"
        },
        "eventType":{
          "shape":"DataIntegrationEventType",
          "documentation":"<p>The data event type.</p>"
        },
        "data":{
          "shape":"DataIntegrationEventData",
          "documentation":"<p>The data payload of the event.</p>"
        },
        "eventGroupId":{
          "shape":"DataIntegrationEventGroupId",
          "documentation":"<p>Event identifier (for example, orderId for InboundOrder) used for data sharing or partitioning.</p>"
        },
        "eventTimestamp":{
          "shape":"SyntheticTimestamp_epoch_seconds",
          "documentation":"<p>The event timestamp (in epoch seconds).</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>The idempotent client token.</p>",
          "idempotencyToken":true
        }
      },
      "documentation":"<p>The request parameters for SendDataIntegrationEvent.</p>"
    },
    "SendDataIntegrationEventResponse":{
      "type":"structure",
      "required":["eventId"],
      "members":{
        "eventId":{
          "shape":"UUID",
          "documentation":"<p>The unique event identifier.</p>"
        }
      },
      "documentation":"<p>The response parameters for SendDataIntegrationEvent.</p>"
    },
    "ServiceQuotaExceededException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>Request would cause a service quota to be exceeded.</p>",
      "error":{
        "httpStatusCode":402,
        "senderFault":true
      },
      "exception":true
    },
    "String":{"type":"string"},
    "SyntheticTimestamp_epoch_seconds":{
      "type":"timestamp",
      "timestampFormat":"unixTimestamp"
    },
    "ThrottlingException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>Request was denied due to request throttling.</p>",
      "error":{
        "httpStatusCode":429,
        "senderFault":true
      },
      "exception":true,
      "retryable":{"throttling":true}
    },
    "UUID":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"
    },
    "ValidationException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The input does not satisfy the constraints specified by an AWS service.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    }
  },
  "documentation":"<p> AWS Supply Chain is a cloud-based application that works with your enterprise resource planning (ERP) and supply chain management systems. Using AWS Supply Chain, you can connect and extract your inventory, supply, and demand related data from existing ERP or supply chain systems into a single data model. </p> <p>The AWS Supply Chain API supports configuration data import for Supply Planning.</p> <p> All AWS Supply chain API operations are Amazon-authenticated and certificate-signed. They not only require the use of the AWS SDK, but also allow for the exclusive use of AWS Identity and Access Management users and roles to help facilitate access, trust, and permission policies. </p>"
}
