1{
2  "version":"2.0",
3  "metadata":{
4    "apiVersion":"2024-01-01",
5    "endpointPrefix":"scn",
6    "jsonVersion":"1.1",
7    "protocol":"rest-json",
8    "serviceFullName":"AWS Supply Chain",
9    "serviceId":"SupplyChain",
10    "signatureVersion":"v4",
11    "signingName":"scn",
12    "uid":"supplychain-2024-01-01"
13  },
14  "operations":{
15    "CreateBillOfMaterialsImportJob":{
16      "name":"CreateBillOfMaterialsImportJob",
17      "http":{
18        "method":"POST",
19        "requestUri":"/api/configuration/instances/{instanceId}/bill-of-materials-import-jobs",
20        "responseCode":200
21      },
22      "input":{"shape":"CreateBillOfMaterialsImportJobRequest"},
23      "output":{"shape":"CreateBillOfMaterialsImportJobResponse"},
24      "errors":[
25        {"shape":"ServiceQuotaExceededException"},
26        {"shape":"ThrottlingException"},
27        {"shape":"ResourceNotFoundException"},
28        {"shape":"AccessDeniedException"},
29        {"shape":"ValidationException"},
30        {"shape":"InternalServerException"},
31        {"shape":"ConflictException"}
32      ],
33      "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>",
34      "idempotent":true
35    },
36    "GetBillOfMaterialsImportJob":{
37      "name":"GetBillOfMaterialsImportJob",
38      "http":{
39        "method":"GET",
40        "requestUri":"/api/configuration/instances/{instanceId}/bill-of-materials-import-jobs/{jobId}",
41        "responseCode":200
42      },
43      "input":{"shape":"GetBillOfMaterialsImportJobRequest"},
44      "output":{"shape":"GetBillOfMaterialsImportJobResponse"},
45      "errors":[
46        {"shape":"ServiceQuotaExceededException"},
47        {"shape":"ResourceNotFoundException"},
48        {"shape":"ThrottlingException"},
49        {"shape":"AccessDeniedException"},
50        {"shape":"ValidationException"},
51        {"shape":"InternalServerException"},
52        {"shape":"ConflictException"}
53      ],
54      "documentation":"<p>Get status and details of a BillOfMaterialsImportJob.</p>"
55    }
56  },
57  "shapes":{
58    "AccessDeniedException":{
59      "type":"structure",
60      "members":{
61        "message":{"shape":"String"}
62      },
63      "documentation":"<p>You do not have the required privileges to perform this action.</p>",
64      "error":{
65        "httpStatusCode":403,
66        "senderFault":true
67      },
68      "exception":true
69    },
70    "BillOfMaterialsImportJob":{
71      "type":"structure",
72      "required":[
73        "instanceId",
74        "jobId",
75        "status",
76        "s3uri"
77      ],
78      "members":{
79        "instanceId":{
80          "shape":"UUID",
81          "documentation":"<p>The BillOfMaterialsImportJob instanceId.</p>"
82        },
83        "jobId":{
84          "shape":"UUID",
85          "documentation":"<p>The BillOfMaterialsImportJob jobId.</p>"
86        },
87        "status":{
88          "shape":"ConfigurationJobStatus",
89          "documentation":"<p>The BillOfMaterialsImportJob ConfigurationJobStatus.</p>"
90        },
91        "s3uri":{
92          "shape":"ConfigurationS3Uri",
93          "documentation":"<p>The S3 URI from which the CSV is read.</p>"
94        },
95        "message":{
96          "shape":"String",
97          "documentation":"<p>When the BillOfMaterialsImportJob has reached a terminal state, there will be a message.</p>"
98        }
99      },
100      "documentation":"<p>The BillOfMaterialsImportJob details.</p>"
101    },
102    "ClientToken":{
103      "type":"string",
104      "documentation":"<p>Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.</p>",
105      "max":126,
106      "min":33
107    },
108    "ConfigurationJobStatus":{
109      "type":"string",
110      "documentation":"<p>The status of the job.</p>",
111      "enum":[
112        "NEW",
113        "FAILED",
114        "IN_PROGRESS",
115        "QUEUED",
116        "SUCCESS"
117      ]
118    },
119    "ConfigurationS3Uri":{
120      "type":"string",
121      "min":10,
122      "pattern":"[sS]3://[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]/.+"
123    },
124    "ConflictException":{
125      "type":"structure",
126      "members":{
127        "message":{"shape":"String"}
128      },
129      "documentation":"<p>Updating or deleting a resource can cause an inconsistent state.</p>",
130      "error":{
131        "httpStatusCode":409,
132        "senderFault":true
133      },
134      "exception":true
135    },
136    "CreateBillOfMaterialsImportJobRequest":{
137      "type":"structure",
138      "required":[
139        "instanceId",
140        "s3uri"
141      ],
142      "members":{
143        "instanceId":{
144          "shape":"UUID",
145          "documentation":"<p>The AWS Supply Chain instance identifier.</p>",
146          "location":"uri",
147          "locationName":"instanceId"
148        },
149        "s3uri":{
150          "shape":"ConfigurationS3Uri",
151          "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>"
152        },
153        "clientToken":{
154          "shape":"ClientToken",
155          "documentation":"<p>An idempotency token.</p>",
156          "idempotencyToken":true
157        }
158      },
159      "documentation":"<p>The request parameters for CreateBillOfMaterialsImportJob.</p>"
160    },
161    "CreateBillOfMaterialsImportJobResponse":{
162      "type":"structure",
163      "required":["jobId"],
164      "members":{
165        "jobId":{
166          "shape":"UUID",
167          "documentation":"<p>The new BillOfMaterialsImportJob identifier.</p>"
168        }
169      },
170      "documentation":"<p>The response parameters of CreateBillOfMaterialsImportJob.</p>"
171    },
172    "GetBillOfMaterialsImportJobRequest":{
173      "type":"structure",
174      "required":[
175        "instanceId",
176        "jobId"
177      ],
178      "members":{
179        "instanceId":{
180          "shape":"UUID",
181          "documentation":"<p>The AWS Supply Chain instance identifier.</p>",
182          "location":"uri",
183          "locationName":"instanceId"
184        },
185        "jobId":{
186          "shape":"UUID",
187          "documentation":"<p>The BillOfMaterialsImportJob identifier.</p>",
188          "location":"uri",
189          "locationName":"jobId"
190        }
191      },
192      "documentation":"<p>The request parameters for GetBillOfMaterialsImportJob.</p>"
193    },
194    "GetBillOfMaterialsImportJobResponse":{
195      "type":"structure",
196      "required":["job"],
197      "members":{
198        "job":{
199          "shape":"BillOfMaterialsImportJob",
200          "documentation":"<p>The BillOfMaterialsImportJob.</p>"
201        }
202      },
203      "documentation":"<p>The response parameters for GetBillOfMaterialsImportJob.</p>"
204    },
205    "InternalServerException":{
206      "type":"structure",
207      "members":{
208        "message":{"shape":"String"}
209      },
210      "documentation":"<p>Unexpected error during processing of request.</p>",
211      "error":{"httpStatusCode":500},
212      "exception":true,
213      "fault":true,
214      "retryable":{"throttling":false}
215    },
216    "ResourceNotFoundException":{
217      "type":"structure",
218      "members":{
219        "message":{"shape":"String"}
220      },
221      "documentation":"<p>Request references a resource which does not exist.</p>",
222      "error":{
223        "httpStatusCode":404,
224        "senderFault":true
225      },
226      "exception":true
227    },
228    "ServiceQuotaExceededException":{
229      "type":"structure",
230      "members":{
231        "message":{"shape":"String"}
232      },
233      "documentation":"<p>Request would cause a service quota to be exceeded.</p>",
234      "error":{
235        "httpStatusCode":402,
236        "senderFault":true
237      },
238      "exception":true
239    },
240    "String":{"type":"string"},
241    "ThrottlingException":{
242      "type":"structure",
243      "members":{
244        "message":{"shape":"String"}
245      },
246      "documentation":"<p>Request was denied due to request throttling.</p>",
247      "error":{
248        "httpStatusCode":429,
249        "senderFault":true
250      },
251      "exception":true,
252      "retryable":{"throttling":true}
253    },
254    "UUID":{
255      "type":"string",
256      "max":36,
257      "min":36,
258      "pattern":"[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"
259    },
260    "ValidationException":{
261      "type":"structure",
262      "members":{
263        "message":{"shape":"String"}
264      },
265      "documentation":"<p>The input does not satisfy the constraints specified by an AWS service.</p>",
266      "error":{
267        "httpStatusCode":400,
268        "senderFault":true
269      },
270      "exception":true
271    }
272  },
273  "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>"
274}
275