@cmarket/partner-sdk 36.1.1 → 37.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (665) hide show
  1. package/README.md +12 -5
  2. package/api/oauth-api.ts +1 -1
  3. package/api/partner-api-api.ts +190 -13
  4. package/api/products-api.ts +1 -1
  5. package/api/well-known-api.ts +1 -1
  6. package/api.ts +1 -1
  7. package/base.ts +1 -1
  8. package/common.ts +1 -1
  9. package/configuration.ts +1 -1
  10. package/dist/api/oauth-api.d.ts +1 -1
  11. package/dist/api/oauth-api.js +1 -1
  12. package/dist/api/partner-api-api.d.ts +92 -13
  13. package/dist/api/partner-api-api.js +178 -13
  14. package/dist/api/products-api.d.ts +1 -1
  15. package/dist/api/products-api.js +1 -1
  16. package/dist/api/well-known-api.d.ts +1 -1
  17. package/dist/api/well-known-api.js +1 -1
  18. package/dist/api.d.ts +1 -1
  19. package/dist/api.js +1 -1
  20. package/dist/base.d.ts +1 -1
  21. package/dist/base.js +1 -1
  22. package/dist/common.d.ts +1 -1
  23. package/dist/common.js +1 -1
  24. package/dist/configuration.d.ts +1 -1
  25. package/dist/configuration.js +1 -1
  26. package/dist/esm/api/oauth-api.d.ts +1 -1
  27. package/dist/esm/api/oauth-api.js +1 -1
  28. package/dist/esm/api/partner-api-api.d.ts +92 -13
  29. package/dist/esm/api/partner-api-api.js +178 -13
  30. package/dist/esm/api/products-api.d.ts +1 -1
  31. package/dist/esm/api/products-api.js +1 -1
  32. package/dist/esm/api/well-known-api.d.ts +1 -1
  33. package/dist/esm/api/well-known-api.js +1 -1
  34. package/dist/esm/api.d.ts +1 -1
  35. package/dist/esm/api.js +1 -1
  36. package/dist/esm/base.d.ts +1 -1
  37. package/dist/esm/base.js +1 -1
  38. package/dist/esm/common.d.ts +1 -1
  39. package/dist/esm/common.js +1 -1
  40. package/dist/esm/configuration.d.ts +1 -1
  41. package/dist/esm/configuration.js +1 -1
  42. package/dist/esm/index.d.ts +1 -1
  43. package/dist/esm/index.js +1 -1
  44. package/dist/esm/models/acceptance-result-response-dto.d.ts +1 -1
  45. package/dist/esm/models/acceptance-result-response-dto.js +1 -1
  46. package/dist/esm/models/acknowledge-product-receipt200-response.d.ts +1 -1
  47. package/dist/esm/models/acknowledge-product-receipt200-response.js +1 -1
  48. package/dist/esm/models/acknowledge-products-request-dto.d.ts +1 -1
  49. package/dist/esm/models/acknowledge-products-request-dto.js +1 -1
  50. package/dist/esm/models/api-catalog-dto.d.ts +1 -1
  51. package/dist/esm/models/api-catalog-dto.js +1 -1
  52. package/dist/esm/models/api-catalog-entry-dto.d.ts +1 -1
  53. package/dist/esm/models/api-catalog-entry-dto.js +1 -1
  54. package/dist/esm/models/api-catalog-link-dto.d.ts +1 -1
  55. package/dist/esm/models/api-catalog-link-dto.js +1 -1
  56. package/dist/esm/models/authorization-server-metadata-dto.d.ts +1 -1
  57. package/dist/esm/models/authorization-server-metadata-dto.js +1 -1
  58. package/dist/esm/models/award-method-public.d.ts +1 -1
  59. package/dist/esm/models/award-method-public.js +1 -1
  60. package/dist/esm/models/award-registered-v2-response-dto.d.ts +1 -1
  61. package/dist/esm/models/award-registered-v2-response-dto.js +1 -1
  62. package/dist/esm/models/award-reverted-v2-response-dto.d.ts +1 -1
  63. package/dist/esm/models/award-reverted-v2-response-dto.js +1 -1
  64. package/dist/esm/models/bid-acceptance-dto.d.ts +1 -1
  65. package/dist/esm/models/bid-acceptance-dto.js +1 -1
  66. package/dist/esm/models/bid-attachment-input-dto.d.ts +29 -0
  67. package/dist/esm/models/bid-attachment-input-dto.js +14 -0
  68. package/dist/esm/models/bid-bond-dto.d.ts +1 -1
  69. package/dist/esm/models/bid-bond-dto.js +1 -1
  70. package/dist/esm/models/bid-cancelled-response-dto.d.ts +1 -1
  71. package/dist/esm/models/bid-cancelled-response-dto.js +1 -1
  72. package/dist/esm/models/bid-contact-dto.d.ts +1 -1
  73. package/dist/esm/models/bid-contact-dto.js +1 -1
  74. package/dist/esm/models/bid-contacts-dto.d.ts +1 -1
  75. package/dist/esm/models/bid-contacts-dto.js +1 -1
  76. package/dist/esm/models/bid-contract-document-dto.d.ts +1 -1
  77. package/dist/esm/models/bid-contract-document-dto.js +1 -1
  78. package/dist/esm/models/bid-delivery-terms-dto.d.ts +1 -1
  79. package/dist/esm/models/bid-delivery-terms-dto.js +1 -1
  80. package/dist/esm/models/bid-detail-response-dto.d.ts +1 -1
  81. package/dist/esm/models/bid-detail-response-dto.js +1 -1
  82. package/dist/esm/models/bid-document-dto.d.ts +1 -1
  83. package/dist/esm/models/bid-document-dto.js +1 -1
  84. package/dist/esm/models/bid-failed-v2-response-dto.d.ts +1 -1
  85. package/dist/esm/models/bid-failed-v2-response-dto.js +1 -1
  86. package/dist/esm/models/bid-item-dto.d.ts +1 -1
  87. package/dist/esm/models/bid-item-dto.js +1 -1
  88. package/dist/esm/models/bid-lifecycle-dto.d.ts +1 -1
  89. package/dist/esm/models/bid-lifecycle-dto.js +1 -1
  90. package/dist/esm/models/bid-manager-dto.d.ts +1 -1
  91. package/dist/esm/models/bid-manager-dto.js +1 -1
  92. package/dist/esm/models/bid-payment-terms-dto.d.ts +1 -1
  93. package/dist/esm/models/bid-payment-terms-dto.js +1 -1
  94. package/dist/esm/models/bid-product-dto.d.ts +1 -1
  95. package/dist/esm/models/bid-product-dto.js +1 -1
  96. package/dist/esm/models/bid-public-status.d.ts +1 -1
  97. package/dist/esm/models/bid-public-status.js +1 -1
  98. package/dist/esm/models/bid-registered-response-dto.d.ts +1 -1
  99. package/dist/esm/models/bid-registered-response-dto.js +1 -1
  100. package/dist/esm/models/bid-result-participant-attachment-dto.d.ts +1 -1
  101. package/dist/esm/models/bid-result-participant-attachment-dto.js +1 -1
  102. package/dist/esm/models/bid-result-participant-dto.d.ts +1 -1
  103. package/dist/esm/models/bid-result-participant-dto.js +1 -1
  104. package/dist/esm/models/bid-results-response-dto.d.ts +1 -1
  105. package/dist/esm/models/bid-results-response-dto.js +1 -1
  106. package/dist/esm/models/bid-settlement-line-item-dto.d.ts +1 -1
  107. package/dist/esm/models/bid-settlement-line-item-dto.js +1 -1
  108. package/dist/esm/models/bid-settlement-participant-dto.d.ts +1 -1
  109. package/dist/esm/models/bid-settlement-participant-dto.js +1 -1
  110. package/dist/esm/models/bid-settlement-response-dto.d.ts +1 -1
  111. package/dist/esm/models/bid-settlement-response-dto.js +1 -1
  112. package/dist/esm/models/bid-statement-response-dto.d.ts +1 -1
  113. package/dist/esm/models/bid-statement-response-dto.js +1 -1
  114. package/dist/esm/models/bid-summary-dto.d.ts +1 -1
  115. package/dist/esm/models/bid-summary-dto.js +1 -1
  116. package/dist/esm/models/bid-type-public.d.ts +1 -1
  117. package/dist/esm/models/bid-type-public.js +1 -1
  118. package/dist/esm/models/bid-updated-response-dto.d.ts +1 -1
  119. package/dist/esm/models/bid-updated-response-dto.js +1 -1
  120. package/dist/esm/models/cancel-bid-request-dto.d.ts +1 -1
  121. package/dist/esm/models/cancel-bid-request-dto.js +1 -1
  122. package/dist/esm/models/cancel-bid200-response.d.ts +1 -1
  123. package/dist/esm/models/cancel-bid200-response.js +1 -1
  124. package/dist/esm/models/card-payment-request-response-dto.d.ts +1 -1
  125. package/dist/esm/models/card-payment-request-response-dto.js +1 -1
  126. package/dist/esm/models/complete-acceptance-request-dto.d.ts +1 -1
  127. package/dist/esm/models/complete-acceptance-request-dto.js +1 -1
  128. package/dist/esm/models/complete-acceptance200-response.d.ts +1 -1
  129. package/dist/esm/models/complete-acceptance200-response.js +1 -1
  130. package/dist/esm/models/complete-invoice200-response.d.ts +1 -1
  131. package/dist/esm/models/complete-invoice200-response.js +1 -1
  132. package/dist/esm/models/complete-upload-request-dto.d.ts +17 -0
  133. package/dist/esm/models/complete-upload-request-dto.js +14 -0
  134. package/dist/esm/models/contract-restriction-confirm-input-dto.d.ts +1 -1
  135. package/dist/esm/models/contract-restriction-confirm-input-dto.js +1 -1
  136. package/dist/esm/models/create-bid-request-dto.d.ts +4 -3
  137. package/dist/esm/models/create-bid-request-dto.js +1 -1
  138. package/dist/esm/models/create-card-payment-dto.d.ts +1 -1
  139. package/dist/esm/models/create-card-payment-dto.js +1 -1
  140. package/dist/esm/models/create-card-payment-request-dto.d.ts +1 -1
  141. package/dist/esm/models/create-card-payment-request-dto.js +1 -1
  142. package/dist/esm/models/create-card-payment200-response.d.ts +1 -1
  143. package/dist/esm/models/create-card-payment200-response.js +1 -1
  144. package/dist/esm/models/create-external-contract-documents-request-dto.d.ts +1 -1
  145. package/dist/esm/models/create-external-contract-documents-request-dto.js +1 -1
  146. package/dist/esm/models/create-external-contract-documents-response-dto.d.ts +1 -1
  147. package/dist/esm/models/create-external-contract-documents-response-dto.js +1 -1
  148. package/dist/esm/models/create-file-upload-url201-response.d.ts +21 -0
  149. package/dist/esm/models/create-file-upload-url201-response.js +14 -0
  150. package/dist/esm/models/create-upload-url-request-dto.d.ts +21 -0
  151. package/dist/esm/models/create-upload-url-request-dto.js +14 -0
  152. package/dist/esm/models/delivery-date-type-public.d.ts +1 -1
  153. package/dist/esm/models/delivery-date-type-public.js +1 -1
  154. package/dist/esm/models/delivery-method-public.d.ts +1 -1
  155. package/dist/esm/models/delivery-method-public.js +1 -1
  156. package/dist/esm/models/excellent-procurement-public.d.ts +1 -1
  157. package/dist/esm/models/excellent-procurement-public.js +1 -1
  158. package/dist/esm/models/external-contract-document-item-dto.d.ts +1 -1
  159. package/dist/esm/models/external-contract-document-item-dto.js +1 -1
  160. package/dist/esm/models/external-contract-documents-response-dto.d.ts +1 -1
  161. package/dist/esm/models/external-contract-documents-response-dto.js +1 -1
  162. package/dist/esm/models/external-contract-item-dto.d.ts +1 -1
  163. package/dist/esm/models/external-contract-item-dto.js +1 -1
  164. package/dist/esm/models/external-contract-snapshot-dto.d.ts +1 -1
  165. package/dist/esm/models/external-contract-snapshot-dto.js +1 -1
  166. package/dist/esm/models/external-document-inputs-dto.d.ts +1 -1
  167. package/dist/esm/models/external-document-inputs-dto.js +1 -1
  168. package/dist/esm/models/file-meta-response-dto.d.ts +1 -1
  169. package/dist/esm/models/file-meta-response-dto.js +1 -1
  170. package/dist/esm/models/file-uploaded-response-dto.d.ts +1 -1
  171. package/dist/esm/models/file-uploaded-response-dto.js +1 -1
  172. package/dist/esm/models/generated-external-contract-document-dto.d.ts +1 -1
  173. package/dist/esm/models/generated-external-contract-document-dto.js +1 -1
  174. package/dist/esm/models/get-bid-settlement200-response.d.ts +1 -1
  175. package/dist/esm/models/get-bid-settlement200-response.js +1 -1
  176. package/dist/esm/models/get-bid-statement200-response.d.ts +1 -1
  177. package/dist/esm/models/get-bid-statement200-response.js +1 -1
  178. package/dist/esm/models/get-bid200-response.d.ts +1 -1
  179. package/dist/esm/models/get-bid200-response.js +1 -1
  180. package/dist/esm/models/get-file-meta200-response.d.ts +1 -1
  181. package/dist/esm/models/get-file-meta200-response.js +1 -1
  182. package/dist/esm/models/get-supplier-card-payable-v2200-response.d.ts +1 -1
  183. package/dist/esm/models/get-supplier-card-payable-v2200-response.js +1 -1
  184. package/dist/esm/models/green-product-public.d.ts +1 -1
  185. package/dist/esm/models/green-product-public.js +1 -1
  186. package/dist/esm/models/health-controller-check200-response.d.ts +1 -1
  187. package/dist/esm/models/health-controller-check200-response.js +1 -1
  188. package/dist/esm/models/health-response-dto.d.ts +1 -1
  189. package/dist/esm/models/health-response-dto.js +1 -1
  190. package/dist/esm/models/hierarchical-region-dto.d.ts +1 -1
  191. package/dist/esm/models/hierarchical-region-dto.js +1 -1
  192. package/dist/esm/models/index.d.ts +5 -0
  193. package/dist/esm/models/index.js +5 -0
  194. package/dist/esm/models/introspect-request-dto.d.ts +1 -1
  195. package/dist/esm/models/introspect-request-dto.js +1 -1
  196. package/dist/esm/models/introspection-response-dto.d.ts +1 -1
  197. package/dist/esm/models/introspection-response-dto.js +1 -1
  198. package/dist/esm/models/invalid-param-dto.d.ts +1 -1
  199. package/dist/esm/models/invalid-param-dto.js +1 -1
  200. package/dist/esm/models/invoice-completed-response-dto.d.ts +1 -1
  201. package/dist/esm/models/invoice-completed-response-dto.js +1 -1
  202. package/dist/esm/models/invoice-split-response-dto.d.ts +1 -1
  203. package/dist/esm/models/invoice-split-response-dto.js +1 -1
  204. package/dist/esm/models/legal-mandatory-public.d.ts +1 -1
  205. package/dist/esm/models/legal-mandatory-public.js +1 -1
  206. package/dist/esm/models/list-bid-results200-response.d.ts +1 -1
  207. package/dist/esm/models/list-bid-results200-response.js +1 -1
  208. package/dist/esm/models/list-bids-response-dto.d.ts +1 -1
  209. package/dist/esm/models/list-bids-response-dto.js +1 -1
  210. package/dist/esm/models/list-bids200-response.d.ts +1 -1
  211. package/dist/esm/models/list-bids200-response.js +1 -1
  212. package/dist/esm/models/list-products200-response.d.ts +1 -1
  213. package/dist/esm/models/list-products200-response.js +1 -1
  214. package/dist/esm/models/mark-bid-failed-request-dto.d.ts +1 -1
  215. package/dist/esm/models/mark-bid-failed-request-dto.js +1 -1
  216. package/dist/esm/models/mark-bid-failed201-response.d.ts +1 -1
  217. package/dist/esm/models/mark-bid-failed201-response.js +1 -1
  218. package/dist/esm/models/negotiation-score-dto.d.ts +1 -1
  219. package/dist/esm/models/negotiation-score-dto.js +1 -1
  220. package/dist/esm/models/negotiation-scored-v2-response-dto.d.ts +1 -1
  221. package/dist/esm/models/negotiation-scored-v2-response-dto.js +1 -1
  222. package/dist/esm/models/oauth-error-response-dto.d.ts +1 -1
  223. package/dist/esm/models/oauth-error-response-dto.js +1 -1
  224. package/dist/esm/models/payment-method-public.d.ts +1 -1
  225. package/dist/esm/models/payment-method-public.js +1 -1
  226. package/dist/esm/models/preconditions-dto.d.ts +1 -1
  227. package/dist/esm/models/preconditions-dto.js +1 -1
  228. package/dist/esm/models/problem-details-dto.d.ts +1 -1
  229. package/dist/esm/models/problem-details-dto.js +1 -1
  230. package/dist/esm/models/product-receipt-response-dto.d.ts +1 -1
  231. package/dist/esm/models/product-receipt-response-dto.js +1 -1
  232. package/dist/esm/models/product-response-dto.d.ts +1 -1
  233. package/dist/esm/models/product-response-dto.js +1 -1
  234. package/dist/esm/models/protected-resource-metadata-dto.d.ts +1 -1
  235. package/dist/esm/models/protected-resource-metadata-dto.js +1 -1
  236. package/dist/esm/models/register-award-request-dto.d.ts +1 -1
  237. package/dist/esm/models/register-award-request-dto.js +1 -1
  238. package/dist/esm/models/register-award201-response.d.ts +1 -1
  239. package/dist/esm/models/register-award201-response.js +1 -1
  240. package/dist/esm/models/register-bid201-response.d.ts +1 -1
  241. package/dist/esm/models/register-bid201-response.js +1 -1
  242. package/dist/esm/models/register-semo-contract-request-dto.d.ts +1 -1
  243. package/dist/esm/models/register-semo-contract-request-dto.js +1 -1
  244. package/dist/esm/models/request-invoice-split-request-dto.d.ts +1 -1
  245. package/dist/esm/models/request-invoice-split-request-dto.js +1 -1
  246. package/dist/esm/models/request-invoice-split200-response.d.ts +1 -1
  247. package/dist/esm/models/request-invoice-split200-response.js +1 -1
  248. package/dist/esm/models/retiree-roster-input-dto.d.ts +1 -1
  249. package/dist/esm/models/retiree-roster-input-dto.js +1 -1
  250. package/dist/esm/models/retiree-roster-row-dto.d.ts +1 -1
  251. package/dist/esm/models/retiree-roster-row-dto.js +1 -1
  252. package/dist/esm/models/revert-award-request-dto.d.ts +1 -1
  253. package/dist/esm/models/revert-award-request-dto.js +1 -1
  254. package/dist/esm/models/revert-award200-response.d.ts +1 -1
  255. package/dist/esm/models/revert-award200-response.js +1 -1
  256. package/dist/esm/models/revoke-request-dto.d.ts +1 -1
  257. package/dist/esm/models/revoke-request-dto.js +1 -1
  258. package/dist/esm/models/semo-contract-registered-response-dto.d.ts +1 -1
  259. package/dist/esm/models/semo-contract-registered-response-dto.js +1 -1
  260. package/dist/esm/models/semo-contract-taxinvoice-status-response-dto.d.ts +1 -1
  261. package/dist/esm/models/semo-contract-taxinvoice-status-response-dto.js +1 -1
  262. package/dist/esm/models/statement-document-dto.d.ts +1 -1
  263. package/dist/esm/models/statement-document-dto.js +1 -1
  264. package/dist/esm/models/statement-product-dto.d.ts +1 -1
  265. package/dist/esm/models/statement-product-dto.js +1 -1
  266. package/dist/esm/models/submit-negotiation-scores-request-dto.d.ts +1 -1
  267. package/dist/esm/models/submit-negotiation-scores-request-dto.js +1 -1
  268. package/dist/esm/models/submit-negotiation-scores201-response.d.ts +1 -1
  269. package/dist/esm/models/submit-negotiation-scores201-response.js +1 -1
  270. package/dist/esm/models/supplier-card-payable-response-dto.d.ts +1 -1
  271. package/dist/esm/models/supplier-card-payable-response-dto.js +1 -1
  272. package/dist/esm/models/supplier-tax-type.d.ts +1 -1
  273. package/dist/esm/models/supplier-tax-type.js +1 -1
  274. package/dist/esm/models/token-request-dto.d.ts +1 -1
  275. package/dist/esm/models/token-request-dto.js +1 -1
  276. package/dist/esm/models/token-response-dto.d.ts +1 -1
  277. package/dist/esm/models/token-response-dto.js +1 -1
  278. package/dist/esm/models/update-bid-request-dto.d.ts +4 -3
  279. package/dist/esm/models/update-bid-request-dto.js +1 -1
  280. package/dist/esm/models/update-bid200-response.d.ts +1 -1
  281. package/dist/esm/models/update-bid200-response.js +1 -1
  282. package/dist/esm/models/upload-file-request-dto.d.ts +1 -1
  283. package/dist/esm/models/upload-file-request-dto.js +1 -1
  284. package/dist/esm/models/upload-file201-response.d.ts +1 -1
  285. package/dist/esm/models/upload-file201-response.js +1 -1
  286. package/dist/esm/models/upload-url-created-response-dto.d.ts +29 -0
  287. package/dist/esm/models/upload-url-created-response-dto.js +14 -0
  288. package/dist/index.d.ts +1 -1
  289. package/dist/index.js +1 -1
  290. package/dist/models/acceptance-result-response-dto.d.ts +1 -1
  291. package/dist/models/acceptance-result-response-dto.js +1 -1
  292. package/dist/models/acknowledge-product-receipt200-response.d.ts +1 -1
  293. package/dist/models/acknowledge-product-receipt200-response.js +1 -1
  294. package/dist/models/acknowledge-products-request-dto.d.ts +1 -1
  295. package/dist/models/acknowledge-products-request-dto.js +1 -1
  296. package/dist/models/api-catalog-dto.d.ts +1 -1
  297. package/dist/models/api-catalog-dto.js +1 -1
  298. package/dist/models/api-catalog-entry-dto.d.ts +1 -1
  299. package/dist/models/api-catalog-entry-dto.js +1 -1
  300. package/dist/models/api-catalog-link-dto.d.ts +1 -1
  301. package/dist/models/api-catalog-link-dto.js +1 -1
  302. package/dist/models/authorization-server-metadata-dto.d.ts +1 -1
  303. package/dist/models/authorization-server-metadata-dto.js +1 -1
  304. package/dist/models/award-method-public.d.ts +1 -1
  305. package/dist/models/award-method-public.js +1 -1
  306. package/dist/models/award-registered-v2-response-dto.d.ts +1 -1
  307. package/dist/models/award-registered-v2-response-dto.js +1 -1
  308. package/dist/models/award-reverted-v2-response-dto.d.ts +1 -1
  309. package/dist/models/award-reverted-v2-response-dto.js +1 -1
  310. package/dist/models/bid-acceptance-dto.d.ts +1 -1
  311. package/dist/models/bid-acceptance-dto.js +1 -1
  312. package/dist/models/bid-attachment-input-dto.d.ts +29 -0
  313. package/dist/models/bid-attachment-input-dto.js +15 -0
  314. package/dist/models/bid-bond-dto.d.ts +1 -1
  315. package/dist/models/bid-bond-dto.js +1 -1
  316. package/dist/models/bid-cancelled-response-dto.d.ts +1 -1
  317. package/dist/models/bid-cancelled-response-dto.js +1 -1
  318. package/dist/models/bid-contact-dto.d.ts +1 -1
  319. package/dist/models/bid-contact-dto.js +1 -1
  320. package/dist/models/bid-contacts-dto.d.ts +1 -1
  321. package/dist/models/bid-contacts-dto.js +1 -1
  322. package/dist/models/bid-contract-document-dto.d.ts +1 -1
  323. package/dist/models/bid-contract-document-dto.js +1 -1
  324. package/dist/models/bid-delivery-terms-dto.d.ts +1 -1
  325. package/dist/models/bid-delivery-terms-dto.js +1 -1
  326. package/dist/models/bid-detail-response-dto.d.ts +1 -1
  327. package/dist/models/bid-detail-response-dto.js +1 -1
  328. package/dist/models/bid-document-dto.d.ts +1 -1
  329. package/dist/models/bid-document-dto.js +1 -1
  330. package/dist/models/bid-failed-v2-response-dto.d.ts +1 -1
  331. package/dist/models/bid-failed-v2-response-dto.js +1 -1
  332. package/dist/models/bid-item-dto.d.ts +1 -1
  333. package/dist/models/bid-item-dto.js +1 -1
  334. package/dist/models/bid-lifecycle-dto.d.ts +1 -1
  335. package/dist/models/bid-lifecycle-dto.js +1 -1
  336. package/dist/models/bid-manager-dto.d.ts +1 -1
  337. package/dist/models/bid-manager-dto.js +1 -1
  338. package/dist/models/bid-payment-terms-dto.d.ts +1 -1
  339. package/dist/models/bid-payment-terms-dto.js +1 -1
  340. package/dist/models/bid-product-dto.d.ts +1 -1
  341. package/dist/models/bid-product-dto.js +1 -1
  342. package/dist/models/bid-public-status.d.ts +1 -1
  343. package/dist/models/bid-public-status.js +1 -1
  344. package/dist/models/bid-registered-response-dto.d.ts +1 -1
  345. package/dist/models/bid-registered-response-dto.js +1 -1
  346. package/dist/models/bid-result-participant-attachment-dto.d.ts +1 -1
  347. package/dist/models/bid-result-participant-attachment-dto.js +1 -1
  348. package/dist/models/bid-result-participant-dto.d.ts +1 -1
  349. package/dist/models/bid-result-participant-dto.js +1 -1
  350. package/dist/models/bid-results-response-dto.d.ts +1 -1
  351. package/dist/models/bid-results-response-dto.js +1 -1
  352. package/dist/models/bid-settlement-line-item-dto.d.ts +1 -1
  353. package/dist/models/bid-settlement-line-item-dto.js +1 -1
  354. package/dist/models/bid-settlement-participant-dto.d.ts +1 -1
  355. package/dist/models/bid-settlement-participant-dto.js +1 -1
  356. package/dist/models/bid-settlement-response-dto.d.ts +1 -1
  357. package/dist/models/bid-settlement-response-dto.js +1 -1
  358. package/dist/models/bid-statement-response-dto.d.ts +1 -1
  359. package/dist/models/bid-statement-response-dto.js +1 -1
  360. package/dist/models/bid-summary-dto.d.ts +1 -1
  361. package/dist/models/bid-summary-dto.js +1 -1
  362. package/dist/models/bid-type-public.d.ts +1 -1
  363. package/dist/models/bid-type-public.js +1 -1
  364. package/dist/models/bid-updated-response-dto.d.ts +1 -1
  365. package/dist/models/bid-updated-response-dto.js +1 -1
  366. package/dist/models/cancel-bid-request-dto.d.ts +1 -1
  367. package/dist/models/cancel-bid-request-dto.js +1 -1
  368. package/dist/models/cancel-bid200-response.d.ts +1 -1
  369. package/dist/models/cancel-bid200-response.js +1 -1
  370. package/dist/models/card-payment-request-response-dto.d.ts +1 -1
  371. package/dist/models/card-payment-request-response-dto.js +1 -1
  372. package/dist/models/complete-acceptance-request-dto.d.ts +1 -1
  373. package/dist/models/complete-acceptance-request-dto.js +1 -1
  374. package/dist/models/complete-acceptance200-response.d.ts +1 -1
  375. package/dist/models/complete-acceptance200-response.js +1 -1
  376. package/dist/models/complete-invoice200-response.d.ts +1 -1
  377. package/dist/models/complete-invoice200-response.js +1 -1
  378. package/dist/models/complete-upload-request-dto.d.ts +17 -0
  379. package/dist/models/complete-upload-request-dto.js +15 -0
  380. package/dist/models/contract-restriction-confirm-input-dto.d.ts +1 -1
  381. package/dist/models/contract-restriction-confirm-input-dto.js +1 -1
  382. package/dist/models/create-bid-request-dto.d.ts +4 -3
  383. package/dist/models/create-bid-request-dto.js +1 -1
  384. package/dist/models/create-card-payment-dto.d.ts +1 -1
  385. package/dist/models/create-card-payment-dto.js +1 -1
  386. package/dist/models/create-card-payment-request-dto.d.ts +1 -1
  387. package/dist/models/create-card-payment-request-dto.js +1 -1
  388. package/dist/models/create-card-payment200-response.d.ts +1 -1
  389. package/dist/models/create-card-payment200-response.js +1 -1
  390. package/dist/models/create-external-contract-documents-request-dto.d.ts +1 -1
  391. package/dist/models/create-external-contract-documents-request-dto.js +1 -1
  392. package/dist/models/create-external-contract-documents-response-dto.d.ts +1 -1
  393. package/dist/models/create-external-contract-documents-response-dto.js +1 -1
  394. package/dist/models/create-file-upload-url201-response.d.ts +21 -0
  395. package/dist/models/create-file-upload-url201-response.js +15 -0
  396. package/dist/models/create-upload-url-request-dto.d.ts +21 -0
  397. package/dist/models/create-upload-url-request-dto.js +15 -0
  398. package/dist/models/delivery-date-type-public.d.ts +1 -1
  399. package/dist/models/delivery-date-type-public.js +1 -1
  400. package/dist/models/delivery-method-public.d.ts +1 -1
  401. package/dist/models/delivery-method-public.js +1 -1
  402. package/dist/models/excellent-procurement-public.d.ts +1 -1
  403. package/dist/models/excellent-procurement-public.js +1 -1
  404. package/dist/models/external-contract-document-item-dto.d.ts +1 -1
  405. package/dist/models/external-contract-document-item-dto.js +1 -1
  406. package/dist/models/external-contract-documents-response-dto.d.ts +1 -1
  407. package/dist/models/external-contract-documents-response-dto.js +1 -1
  408. package/dist/models/external-contract-item-dto.d.ts +1 -1
  409. package/dist/models/external-contract-item-dto.js +1 -1
  410. package/dist/models/external-contract-snapshot-dto.d.ts +1 -1
  411. package/dist/models/external-contract-snapshot-dto.js +1 -1
  412. package/dist/models/external-document-inputs-dto.d.ts +1 -1
  413. package/dist/models/external-document-inputs-dto.js +1 -1
  414. package/dist/models/file-meta-response-dto.d.ts +1 -1
  415. package/dist/models/file-meta-response-dto.js +1 -1
  416. package/dist/models/file-uploaded-response-dto.d.ts +1 -1
  417. package/dist/models/file-uploaded-response-dto.js +1 -1
  418. package/dist/models/generated-external-contract-document-dto.d.ts +1 -1
  419. package/dist/models/generated-external-contract-document-dto.js +1 -1
  420. package/dist/models/get-bid-settlement200-response.d.ts +1 -1
  421. package/dist/models/get-bid-settlement200-response.js +1 -1
  422. package/dist/models/get-bid-statement200-response.d.ts +1 -1
  423. package/dist/models/get-bid-statement200-response.js +1 -1
  424. package/dist/models/get-bid200-response.d.ts +1 -1
  425. package/dist/models/get-bid200-response.js +1 -1
  426. package/dist/models/get-file-meta200-response.d.ts +1 -1
  427. package/dist/models/get-file-meta200-response.js +1 -1
  428. package/dist/models/get-supplier-card-payable-v2200-response.d.ts +1 -1
  429. package/dist/models/get-supplier-card-payable-v2200-response.js +1 -1
  430. package/dist/models/green-product-public.d.ts +1 -1
  431. package/dist/models/green-product-public.js +1 -1
  432. package/dist/models/health-controller-check200-response.d.ts +1 -1
  433. package/dist/models/health-controller-check200-response.js +1 -1
  434. package/dist/models/health-response-dto.d.ts +1 -1
  435. package/dist/models/health-response-dto.js +1 -1
  436. package/dist/models/hierarchical-region-dto.d.ts +1 -1
  437. package/dist/models/hierarchical-region-dto.js +1 -1
  438. package/dist/models/index.d.ts +5 -0
  439. package/dist/models/index.js +5 -0
  440. package/dist/models/introspect-request-dto.d.ts +1 -1
  441. package/dist/models/introspect-request-dto.js +1 -1
  442. package/dist/models/introspection-response-dto.d.ts +1 -1
  443. package/dist/models/introspection-response-dto.js +1 -1
  444. package/dist/models/invalid-param-dto.d.ts +1 -1
  445. package/dist/models/invalid-param-dto.js +1 -1
  446. package/dist/models/invoice-completed-response-dto.d.ts +1 -1
  447. package/dist/models/invoice-completed-response-dto.js +1 -1
  448. package/dist/models/invoice-split-response-dto.d.ts +1 -1
  449. package/dist/models/invoice-split-response-dto.js +1 -1
  450. package/dist/models/legal-mandatory-public.d.ts +1 -1
  451. package/dist/models/legal-mandatory-public.js +1 -1
  452. package/dist/models/list-bid-results200-response.d.ts +1 -1
  453. package/dist/models/list-bid-results200-response.js +1 -1
  454. package/dist/models/list-bids-response-dto.d.ts +1 -1
  455. package/dist/models/list-bids-response-dto.js +1 -1
  456. package/dist/models/list-bids200-response.d.ts +1 -1
  457. package/dist/models/list-bids200-response.js +1 -1
  458. package/dist/models/list-products200-response.d.ts +1 -1
  459. package/dist/models/list-products200-response.js +1 -1
  460. package/dist/models/mark-bid-failed-request-dto.d.ts +1 -1
  461. package/dist/models/mark-bid-failed-request-dto.js +1 -1
  462. package/dist/models/mark-bid-failed201-response.d.ts +1 -1
  463. package/dist/models/mark-bid-failed201-response.js +1 -1
  464. package/dist/models/negotiation-score-dto.d.ts +1 -1
  465. package/dist/models/negotiation-score-dto.js +1 -1
  466. package/dist/models/negotiation-scored-v2-response-dto.d.ts +1 -1
  467. package/dist/models/negotiation-scored-v2-response-dto.js +1 -1
  468. package/dist/models/oauth-error-response-dto.d.ts +1 -1
  469. package/dist/models/oauth-error-response-dto.js +1 -1
  470. package/dist/models/payment-method-public.d.ts +1 -1
  471. package/dist/models/payment-method-public.js +1 -1
  472. package/dist/models/preconditions-dto.d.ts +1 -1
  473. package/dist/models/preconditions-dto.js +1 -1
  474. package/dist/models/problem-details-dto.d.ts +1 -1
  475. package/dist/models/problem-details-dto.js +1 -1
  476. package/dist/models/product-receipt-response-dto.d.ts +1 -1
  477. package/dist/models/product-receipt-response-dto.js +1 -1
  478. package/dist/models/product-response-dto.d.ts +1 -1
  479. package/dist/models/product-response-dto.js +1 -1
  480. package/dist/models/protected-resource-metadata-dto.d.ts +1 -1
  481. package/dist/models/protected-resource-metadata-dto.js +1 -1
  482. package/dist/models/register-award-request-dto.d.ts +1 -1
  483. package/dist/models/register-award-request-dto.js +1 -1
  484. package/dist/models/register-award201-response.d.ts +1 -1
  485. package/dist/models/register-award201-response.js +1 -1
  486. package/dist/models/register-bid201-response.d.ts +1 -1
  487. package/dist/models/register-bid201-response.js +1 -1
  488. package/dist/models/register-semo-contract-request-dto.d.ts +1 -1
  489. package/dist/models/register-semo-contract-request-dto.js +1 -1
  490. package/dist/models/request-invoice-split-request-dto.d.ts +1 -1
  491. package/dist/models/request-invoice-split-request-dto.js +1 -1
  492. package/dist/models/request-invoice-split200-response.d.ts +1 -1
  493. package/dist/models/request-invoice-split200-response.js +1 -1
  494. package/dist/models/retiree-roster-input-dto.d.ts +1 -1
  495. package/dist/models/retiree-roster-input-dto.js +1 -1
  496. package/dist/models/retiree-roster-row-dto.d.ts +1 -1
  497. package/dist/models/retiree-roster-row-dto.js +1 -1
  498. package/dist/models/revert-award-request-dto.d.ts +1 -1
  499. package/dist/models/revert-award-request-dto.js +1 -1
  500. package/dist/models/revert-award200-response.d.ts +1 -1
  501. package/dist/models/revert-award200-response.js +1 -1
  502. package/dist/models/revoke-request-dto.d.ts +1 -1
  503. package/dist/models/revoke-request-dto.js +1 -1
  504. package/dist/models/semo-contract-registered-response-dto.d.ts +1 -1
  505. package/dist/models/semo-contract-registered-response-dto.js +1 -1
  506. package/dist/models/semo-contract-taxinvoice-status-response-dto.d.ts +1 -1
  507. package/dist/models/semo-contract-taxinvoice-status-response-dto.js +1 -1
  508. package/dist/models/statement-document-dto.d.ts +1 -1
  509. package/dist/models/statement-document-dto.js +1 -1
  510. package/dist/models/statement-product-dto.d.ts +1 -1
  511. package/dist/models/statement-product-dto.js +1 -1
  512. package/dist/models/submit-negotiation-scores-request-dto.d.ts +1 -1
  513. package/dist/models/submit-negotiation-scores-request-dto.js +1 -1
  514. package/dist/models/submit-negotiation-scores201-response.d.ts +1 -1
  515. package/dist/models/submit-negotiation-scores201-response.js +1 -1
  516. package/dist/models/supplier-card-payable-response-dto.d.ts +1 -1
  517. package/dist/models/supplier-card-payable-response-dto.js +1 -1
  518. package/dist/models/supplier-tax-type.d.ts +1 -1
  519. package/dist/models/supplier-tax-type.js +1 -1
  520. package/dist/models/token-request-dto.d.ts +1 -1
  521. package/dist/models/token-request-dto.js +1 -1
  522. package/dist/models/token-response-dto.d.ts +1 -1
  523. package/dist/models/token-response-dto.js +1 -1
  524. package/dist/models/update-bid-request-dto.d.ts +4 -3
  525. package/dist/models/update-bid-request-dto.js +1 -1
  526. package/dist/models/update-bid200-response.d.ts +1 -1
  527. package/dist/models/update-bid200-response.js +1 -1
  528. package/dist/models/upload-file-request-dto.d.ts +1 -1
  529. package/dist/models/upload-file-request-dto.js +1 -1
  530. package/dist/models/upload-file201-response.d.ts +1 -1
  531. package/dist/models/upload-file201-response.js +1 -1
  532. package/dist/models/upload-url-created-response-dto.d.ts +29 -0
  533. package/dist/models/upload-url-created-response-dto.js +15 -0
  534. package/docs/BidAttachmentInputDto.md +26 -0
  535. package/docs/CompleteUploadRequestDto.md +20 -0
  536. package/docs/CreateBidRequestDto.md +1 -1
  537. package/docs/CreateFileUploadUrl201Response.md +22 -0
  538. package/docs/CreateUploadUrlRequestDto.md +22 -0
  539. package/docs/PartnerApiApi.md +136 -3
  540. package/docs/UpdateBidRequestDto.md +1 -1
  541. package/docs/UploadUrlCreatedResponseDto.md +26 -0
  542. package/index.ts +1 -1
  543. package/models/acceptance-result-response-dto.ts +1 -1
  544. package/models/acknowledge-product-receipt200-response.ts +1 -1
  545. package/models/acknowledge-products-request-dto.ts +1 -1
  546. package/models/api-catalog-dto.ts +1 -1
  547. package/models/api-catalog-entry-dto.ts +1 -1
  548. package/models/api-catalog-link-dto.ts +1 -1
  549. package/models/authorization-server-metadata-dto.ts +1 -1
  550. package/models/award-method-public.ts +1 -1
  551. package/models/award-registered-v2-response-dto.ts +1 -1
  552. package/models/award-reverted-v2-response-dto.ts +1 -1
  553. package/models/bid-acceptance-dto.ts +1 -1
  554. package/models/bid-attachment-input-dto.ts +35 -0
  555. package/models/bid-bond-dto.ts +1 -1
  556. package/models/bid-cancelled-response-dto.ts +1 -1
  557. package/models/bid-contact-dto.ts +1 -1
  558. package/models/bid-contacts-dto.ts +1 -1
  559. package/models/bid-contract-document-dto.ts +1 -1
  560. package/models/bid-delivery-terms-dto.ts +1 -1
  561. package/models/bid-detail-response-dto.ts +1 -1
  562. package/models/bid-document-dto.ts +1 -1
  563. package/models/bid-failed-v2-response-dto.ts +1 -1
  564. package/models/bid-item-dto.ts +1 -1
  565. package/models/bid-lifecycle-dto.ts +1 -1
  566. package/models/bid-manager-dto.ts +1 -1
  567. package/models/bid-payment-terms-dto.ts +1 -1
  568. package/models/bid-product-dto.ts +1 -1
  569. package/models/bid-public-status.ts +1 -1
  570. package/models/bid-registered-response-dto.ts +1 -1
  571. package/models/bid-result-participant-attachment-dto.ts +1 -1
  572. package/models/bid-result-participant-dto.ts +1 -1
  573. package/models/bid-results-response-dto.ts +1 -1
  574. package/models/bid-settlement-line-item-dto.ts +1 -1
  575. package/models/bid-settlement-participant-dto.ts +1 -1
  576. package/models/bid-settlement-response-dto.ts +1 -1
  577. package/models/bid-statement-response-dto.ts +1 -1
  578. package/models/bid-summary-dto.ts +1 -1
  579. package/models/bid-type-public.ts +1 -1
  580. package/models/bid-updated-response-dto.ts +1 -1
  581. package/models/cancel-bid-request-dto.ts +1 -1
  582. package/models/cancel-bid200-response.ts +1 -1
  583. package/models/card-payment-request-response-dto.ts +1 -1
  584. package/models/complete-acceptance-request-dto.ts +1 -1
  585. package/models/complete-acceptance200-response.ts +1 -1
  586. package/models/complete-invoice200-response.ts +1 -1
  587. package/models/complete-upload-request-dto.ts +23 -0
  588. package/models/contract-restriction-confirm-input-dto.ts +1 -1
  589. package/models/create-bid-request-dto.ts +6 -3
  590. package/models/create-card-payment-dto.ts +1 -1
  591. package/models/create-card-payment-request-dto.ts +1 -1
  592. package/models/create-card-payment200-response.ts +1 -1
  593. package/models/create-external-contract-documents-request-dto.ts +1 -1
  594. package/models/create-external-contract-documents-response-dto.ts +1 -1
  595. package/models/create-file-upload-url201-response.ts +27 -0
  596. package/models/create-upload-url-request-dto.ts +27 -0
  597. package/models/delivery-date-type-public.ts +1 -1
  598. package/models/delivery-method-public.ts +1 -1
  599. package/models/excellent-procurement-public.ts +1 -1
  600. package/models/external-contract-document-item-dto.ts +1 -1
  601. package/models/external-contract-documents-response-dto.ts +1 -1
  602. package/models/external-contract-item-dto.ts +1 -1
  603. package/models/external-contract-snapshot-dto.ts +1 -1
  604. package/models/external-document-inputs-dto.ts +1 -1
  605. package/models/file-meta-response-dto.ts +1 -1
  606. package/models/file-uploaded-response-dto.ts +1 -1
  607. package/models/generated-external-contract-document-dto.ts +1 -1
  608. package/models/get-bid-settlement200-response.ts +1 -1
  609. package/models/get-bid-statement200-response.ts +1 -1
  610. package/models/get-bid200-response.ts +1 -1
  611. package/models/get-file-meta200-response.ts +1 -1
  612. package/models/get-supplier-card-payable-v2200-response.ts +1 -1
  613. package/models/green-product-public.ts +1 -1
  614. package/models/health-controller-check200-response.ts +1 -1
  615. package/models/health-response-dto.ts +1 -1
  616. package/models/hierarchical-region-dto.ts +1 -1
  617. package/models/index.ts +5 -0
  618. package/models/introspect-request-dto.ts +1 -1
  619. package/models/introspection-response-dto.ts +1 -1
  620. package/models/invalid-param-dto.ts +1 -1
  621. package/models/invoice-completed-response-dto.ts +1 -1
  622. package/models/invoice-split-response-dto.ts +1 -1
  623. package/models/legal-mandatory-public.ts +1 -1
  624. package/models/list-bid-results200-response.ts +1 -1
  625. package/models/list-bids-response-dto.ts +1 -1
  626. package/models/list-bids200-response.ts +1 -1
  627. package/models/list-products200-response.ts +1 -1
  628. package/models/mark-bid-failed-request-dto.ts +1 -1
  629. package/models/mark-bid-failed201-response.ts +1 -1
  630. package/models/negotiation-score-dto.ts +1 -1
  631. package/models/negotiation-scored-v2-response-dto.ts +1 -1
  632. package/models/oauth-error-response-dto.ts +1 -1
  633. package/models/payment-method-public.ts +1 -1
  634. package/models/preconditions-dto.ts +1 -1
  635. package/models/problem-details-dto.ts +1 -1
  636. package/models/product-receipt-response-dto.ts +1 -1
  637. package/models/product-response-dto.ts +1 -1
  638. package/models/protected-resource-metadata-dto.ts +1 -1
  639. package/models/register-award-request-dto.ts +1 -1
  640. package/models/register-award201-response.ts +1 -1
  641. package/models/register-bid201-response.ts +1 -1
  642. package/models/register-semo-contract-request-dto.ts +1 -1
  643. package/models/request-invoice-split-request-dto.ts +1 -1
  644. package/models/request-invoice-split200-response.ts +1 -1
  645. package/models/retiree-roster-input-dto.ts +1 -1
  646. package/models/retiree-roster-row-dto.ts +1 -1
  647. package/models/revert-award-request-dto.ts +1 -1
  648. package/models/revert-award200-response.ts +1 -1
  649. package/models/revoke-request-dto.ts +1 -1
  650. package/models/semo-contract-registered-response-dto.ts +1 -1
  651. package/models/semo-contract-taxinvoice-status-response-dto.ts +1 -1
  652. package/models/statement-document-dto.ts +1 -1
  653. package/models/statement-product-dto.ts +1 -1
  654. package/models/submit-negotiation-scores-request-dto.ts +1 -1
  655. package/models/submit-negotiation-scores201-response.ts +1 -1
  656. package/models/supplier-card-payable-response-dto.ts +1 -1
  657. package/models/supplier-tax-type.ts +1 -1
  658. package/models/token-request-dto.ts +1 -1
  659. package/models/token-response-dto.ts +1 -1
  660. package/models/update-bid-request-dto.ts +6 -3
  661. package/models/update-bid200-response.ts +1 -1
  662. package/models/upload-file-request-dto.ts +1 -1
  663. package/models/upload-file201-response.ts +1 -1
  664. package/models/upload-url-created-response-dto.ts +35 -0
  665. package/package.json +1 -1
package/README.md CHANGED
@@ -13,7 +13,7 @@ CMARKET V6 Partner API 의 공식 클라이언트 SDK — 외부 ERP 가 입찰
13
13
  TypeScript / Node (npm):
14
14
 
15
15
  ```bash
16
- npm install @cmarket/partner-sdk@36.1.1
16
+ npm install @cmarket/partner-sdk@37.0.0
17
17
  ```
18
18
 
19
19
  Java (Maven):
@@ -22,7 +22,7 @@ Java (Maven):
22
22
  <dependency>
23
23
  <groupId>net.c-market</groupId>
24
24
  <artifactId>partner-sdk</artifactId>
25
- <version>36.1.1</version>
25
+ <version>37.0.0</version>
26
26
  </dependency>
27
27
  ```
28
28
 
@@ -375,7 +375,7 @@ CMARKET 운영팀에 등록해야 합니다(미등록 origin 은 iframe 로드
375
375
 
376
376
  ---
377
377
 
378
- ## @cmarket/partner-sdk@36.1.1
378
+ ## @cmarket/partner-sdk@37.0.0
379
379
 
380
380
  This generator creates TypeScript/JavaScript client that utilizes [axios](https://github.com/axios/axios). The generated Node module can be used in the following environments:
381
381
 
@@ -413,7 +413,7 @@ navigate to the folder of your consuming project and run one of the following co
413
413
  _published:_
414
414
 
415
415
  ```
416
- npm install @cmarket/partner-sdk@36.1.1 --save
416
+ npm install @cmarket/partner-sdk@37.0.0 --save
417
417
  ```
418
418
 
419
419
  _unPublished (not recommended):_
@@ -433,9 +433,11 @@ Class | Method | HTTP request | Description
433
433
  *OauthApi* | [**token**](docs/OauthApi.md#token) | **POST** /oauth/token | OAuth 2.0 access token 발급 (client_credentials)
434
434
  *PartnerApiApi* | [**cancelBid**](docs/PartnerApiApi.md#cancelbid) | **POST** /v2/bids/{bidRef}/cancel | 공고 취소
435
435
  *PartnerApiApi* | [**completeAcceptance**](docs/PartnerApiApi.md#completeacceptance) | **POST** /v2/bids/{bidRef}/acceptance | 검수완료 전송
436
+ *PartnerApiApi* | [**completeFileUpload**](docs/PartnerApiApi.md#completefileupload) | **POST** /v2/files/{fileKey}/complete | 첨부파일 업로드 확정
436
437
  *PartnerApiApi* | [**completeInvoice**](docs/PartnerApiApi.md#completeinvoice) | **POST** /v2/bids/{bidRef}/settlement/complete | 정산 마감
437
438
  *PartnerApiApi* | [**createCardPayment**](docs/PartnerApiApi.md#createcardpayment) | **POST** /v2/card-payments | 결제창 발행
438
439
  *PartnerApiApi* | [**createExternalContractDocuments**](docs/PartnerApiApi.md#createexternalcontractdocuments) | **POST** /v2/contract-documents | 계약서류 생성
440
+ *PartnerApiApi* | [**createFileUploadUrl**](docs/PartnerApiApi.md#createfileuploadurl) | **POST** /v2/files/upload-url | 첨부파일 업로드 주소 발급 (대용량·권장)
439
441
  *PartnerApiApi* | [**downloadFile**](docs/PartnerApiApi.md#downloadfile) | **GET** /files/{fileKey} | 파일 다운로드
440
442
  *PartnerApiApi* | [**getBid**](docs/PartnerApiApi.md#getbid) | **GET** /v2/bids/{bidRef} | 공고 상세 조회
441
443
  *PartnerApiApi* | [**getBidSettlement**](docs/PartnerApiApi.md#getbidsettlement) | **GET** /v2/bids/{bidRef}/settlement | 정산 정보 조회
@@ -455,7 +457,7 @@ Class | Method | HTTP request | Description
455
457
  *PartnerApiApi* | [**revertAward**](docs/PartnerApiApi.md#revertaward) | **DELETE** /v2/bids/{bidRef}/award | 낙찰 되돌리기
456
458
  *PartnerApiApi* | [**submitNegotiationScores**](docs/PartnerApiApi.md#submitnegotiationscores) | **POST** /v2/bids/{bidRef}/negotiation-scores | 협상 점수평가
457
459
  *PartnerApiApi* | [**updateBid**](docs/PartnerApiApi.md#updatebid) | **PATCH** /v2/bids/{bidRef} | 공고 수정
458
- *PartnerApiApi* | [**uploadFile**](docs/PartnerApiApi.md#uploadfile) | **POST** /v2/files | 공고 첨부파일 업로드
460
+ *PartnerApiApi* | [**uploadFile**](docs/PartnerApiApi.md#uploadfile) | **POST** /v2/files | 공고 첨부파일 업로드 (한 번에)
459
461
  *ProductsApi* | [**acknowledgeProductReceipt**](docs/ProductsApi.md#acknowledgeproductreceipt) | **POST** /v2/products/receipts | 물품 수신확인
460
462
  *ProductsApi* | [**listProducts**](docs/ProductsApi.md#listproducts) | **GET** /v2/products | 물품 카탈로그 조회
461
463
  *WellKnownApi* | [**apiCatalog**](docs/WellKnownApi.md#apicatalog) | **GET** /.well-known/api-catalog | API 카탈로그 (api-catalog, RFC 9727)
@@ -476,6 +478,7 @@ Class | Method | HTTP request | Description
476
478
  - [AwardRegisteredV2ResponseDto](docs/AwardRegisteredV2ResponseDto.md)
477
479
  - [AwardRevertedV2ResponseDto](docs/AwardRevertedV2ResponseDto.md)
478
480
  - [BidAcceptanceDto](docs/BidAcceptanceDto.md)
481
+ - [BidAttachmentInputDto](docs/BidAttachmentInputDto.md)
479
482
  - [BidBondDto](docs/BidBondDto.md)
480
483
  - [BidCancelledResponseDto](docs/BidCancelledResponseDto.md)
481
484
  - [BidContactDto](docs/BidContactDto.md)
@@ -508,6 +511,7 @@ Class | Method | HTTP request | Description
508
511
  - [CompleteAcceptance200Response](docs/CompleteAcceptance200Response.md)
509
512
  - [CompleteAcceptanceRequestDto](docs/CompleteAcceptanceRequestDto.md)
510
513
  - [CompleteInvoice200Response](docs/CompleteInvoice200Response.md)
514
+ - [CompleteUploadRequestDto](docs/CompleteUploadRequestDto.md)
511
515
  - [ContractRestrictionConfirmInputDto](docs/ContractRestrictionConfirmInputDto.md)
512
516
  - [CreateBidRequestDto](docs/CreateBidRequestDto.md)
513
517
  - [CreateCardPayment200Response](docs/CreateCardPayment200Response.md)
@@ -515,6 +519,8 @@ Class | Method | HTTP request | Description
515
519
  - [CreateCardPaymentRequestDto](docs/CreateCardPaymentRequestDto.md)
516
520
  - [CreateExternalContractDocumentsRequestDto](docs/CreateExternalContractDocumentsRequestDto.md)
517
521
  - [CreateExternalContractDocumentsResponseDto](docs/CreateExternalContractDocumentsResponseDto.md)
522
+ - [CreateFileUploadUrl201Response](docs/CreateFileUploadUrl201Response.md)
523
+ - [CreateUploadUrlRequestDto](docs/CreateUploadUrlRequestDto.md)
518
524
  - [DeliveryDateTypePublic](docs/DeliveryDateTypePublic.md)
519
525
  - [DeliveryMethodPublic](docs/DeliveryMethodPublic.md)
520
526
  - [ExcellentProcurementPublic](docs/ExcellentProcurementPublic.md)
@@ -581,6 +587,7 @@ Class | Method | HTTP request | Description
581
587
  - [UpdateBidRequestDto](docs/UpdateBidRequestDto.md)
582
588
  - [UploadFile201Response](docs/UploadFile201Response.md)
583
589
  - [UploadFileRequestDto](docs/UploadFileRequestDto.md)
590
+ - [UploadUrlCreatedResponseDto](docs/UploadUrlCreatedResponseDto.md)
584
591
 
585
592
 
586
593
  <a id="documentation-for-authorization"></a>
package/api/oauth-api.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403` 을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403 입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주처 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 봉투 `/v2` 의 모든 2xx 본문은 `{ \"data\": … }` 입니다. 단일 리소스든 목록이든 같습니다. 목록처럼 부가 정보가 있는 응답은 `meta` 가 함께 실립니다 — 예: `{ \"data\": [...], \"meta\": { \"nextCursor\": \"…\" } }`. 부가 정보가 없으면 `meta` 키는 아예 나가지 않습니다(빈 객체를 싣지 않습니다). 봉투를 쓰지 않는 표면은 둘입니다. `/oauth/_*` 와 `/.well-known/_*` 는 각각 RFC 6749·RFC 8414·RFC 9728 이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON 이 아닙니다. 에러 응답에는 봉투를 씌우지 않습니다 — 아래 problem+json 이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2` 의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified` 를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json` 입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId` 와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId` 를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). `type` 은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1 이 허용하는 대로 이 URI 는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body 를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id` 가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug 은 **HTTP status 로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
6
6
  *
7
- * The version of the OpenAPI document: 36.1.1
7
+ * The version of the OpenAPI document: 37.0.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403` 을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403 입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주처 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 봉투 `/v2` 의 모든 2xx 본문은 `{ \"data\": … }` 입니다. 단일 리소스든 목록이든 같습니다. 목록처럼 부가 정보가 있는 응답은 `meta` 가 함께 실립니다 — 예: `{ \"data\": [...], \"meta\": { \"nextCursor\": \"…\" } }`. 부가 정보가 없으면 `meta` 키는 아예 나가지 않습니다(빈 객체를 싣지 않습니다). 봉투를 쓰지 않는 표면은 둘입니다. `/oauth/_*` 와 `/.well-known/_*` 는 각각 RFC 6749·RFC 8414·RFC 9728 이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON 이 아닙니다. 에러 응답에는 봉투를 씌우지 않습니다 — 아래 problem+json 이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2` 의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified` 를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json` 입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId` 와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId` 를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). `type` 은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1 이 허용하는 대로 이 URI 는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body 를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id` 가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug 은 **HTTP status 로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
6
6
  *
7
- * The version of the OpenAPI document: 36.1.1
7
+ * The version of the OpenAPI document: 37.0.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -34,6 +34,8 @@ import type { CompleteAcceptanceRequestDto } from '../models';
34
34
  // @ts-ignore
35
35
  import type { CompleteInvoice200Response } from '../models';
36
36
  // @ts-ignore
37
+ import type { CompleteUploadRequestDto } from '../models';
38
+ // @ts-ignore
37
39
  import type { CreateBidRequestDto } from '../models';
38
40
  // @ts-ignore
39
41
  import type { CreateCardPayment200Response } from '../models';
@@ -44,6 +46,10 @@ import type { CreateExternalContractDocumentsRequestDto } from '../models';
44
46
  // @ts-ignore
45
47
  import type { CreateExternalContractDocumentsResponseDto } from '../models';
46
48
  // @ts-ignore
49
+ import type { CreateFileUploadUrl201Response } from '../models';
50
+ // @ts-ignore
51
+ import type { CreateUploadUrlRequestDto } from '../models';
52
+ // @ts-ignore
47
53
  import type { ExternalContractDocumentsResponseDto } from '../models';
48
54
  // @ts-ignore
49
55
  import type { GetBid200Response } from '../models';
@@ -202,6 +208,55 @@ export const PartnerApiApiAxiosParamCreator = function (configuration?: Configur
202
208
  options: localVarRequestOptions,
203
209
  };
204
210
  },
211
+ /**
212
+ * `uploadUrl` 로의 `PUT` 이 끝난 뒤 호출합니다. 올라온 파일을 실측해 등록하고, 그 시점부터 `fileKey` 를 공고 첨부로 쓸 수 있습니다. **확정 전 `fileKey` 는 첨부로 쓸 수 없습니다** — 공고 등록이 400 으로 거절됩니다. **신고한 크기가 아니라 실제 파일을 봅니다.** 발급 요청의 `fileSize` 와 다르면 실제 크기가 기록되고, 정책 상한을 넘으면 여기서 거절됩니다. **같은 `fileKey` 로 여러 번 호출해도 안전합니다**(멱등). **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
213
+ * @summary 첨부파일 업로드 확정
214
+ * @param {string} fileKey 발급 응답의 fileKey(영문 대소문자·숫자 32자).
215
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
216
+ * @param {CompleteUploadRequestDto} completeUploadRequestDto
217
+ * @param {*} [options] Override http request option.
218
+ * @throws {RequiredError}
219
+ */
220
+ completeFileUpload: async (fileKey: string, idempotencyKey: string, completeUploadRequestDto: CompleteUploadRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
221
+ // verify required parameter 'fileKey' is not null or undefined
222
+ assertParamExists('completeFileUpload', 'fileKey', fileKey)
223
+ // verify required parameter 'idempotencyKey' is not null or undefined
224
+ assertParamExists('completeFileUpload', 'idempotencyKey', idempotencyKey)
225
+ // verify required parameter 'completeUploadRequestDto' is not null or undefined
226
+ assertParamExists('completeFileUpload', 'completeUploadRequestDto', completeUploadRequestDto)
227
+ const localVarPath = `/v2/files/{fileKey}/complete`
228
+ .replace('{fileKey}', encodeURIComponent(String(fileKey)));
229
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
230
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
231
+ let baseOptions;
232
+ if (configuration) {
233
+ baseOptions = configuration.baseOptions;
234
+ }
235
+
236
+ const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
237
+ const localVarHeaderParameter = {} as any;
238
+ const localVarQueryParameter = {} as any;
239
+
240
+ // authentication partner-oauth2 required
241
+ // oauth required
242
+ await setOAuthToObject(localVarHeaderParameter, "partner-oauth2", ["files:write"], configuration)
243
+
244
+ localVarHeaderParameter['Content-Type'] = 'application/json';
245
+ localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
246
+
247
+ if (idempotencyKey != null) {
248
+ localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
249
+ }
250
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
251
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
252
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
253
+ localVarRequestOptions.data = serializeDataIfNeeded(completeUploadRequestDto, localVarRequestOptions, configuration)
254
+
255
+ return {
256
+ url: toPathString(localVarUrlObj),
257
+ options: localVarRequestOptions,
258
+ };
259
+ },
205
260
  /**
206
261
  * 공급사로부터 계산서를 수령한 뒤, 계약을 완료처리 상태로 강제 전환합니다. **호출 시점:** 낙찰·계약 완료 후 공급사 계산서를 오프라인으로 수령했을 때. **부수효과:** - 결제완료·계산서 발급 상태가 기록되고 발급일자가 현재 시각으로 설정됩니다. **소유권:** 공고는 요청 파트너 키가 소유한 발주처 명의여야 합니다(타 발주처 공고 → 403). **이미 완료:** 이미 완료처리된 공고 재호출 → 409. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
207
262
  * @summary 정산 마감
@@ -336,6 +391,51 @@ export const PartnerApiApiAxiosParamCreator = function (configuration?: Configur
336
391
  options: localVarRequestOptions,
337
392
  };
338
393
  },
394
+ /**
395
+ * 파일 본문을 스토리지로 **직접** 올리기 위한 1회용 서명 URL 을 발급합니다. 3단계로 씁니다. 1. 이 호출로 `fileKey` 와 `uploadUrl` 을 받습니다. 2. `uploadUrl` 에 파일 본문을 `PUT` 합니다 — 응답의 `contentType` 을 `Content-Type` 헤더에 그대로 실으세요. 이 요청은 c-market 을 거치지 않습니다. 3. `POST /v2/files/{fileKey}/complete` 로 확정합니다. **`POST /v2/files` 와 언제 갈리나:** 작은 첨부는 `POST /v2/files` 한 번이 간단합니다. 다만 그 경로는 본문이 c-market 을 통과하므로 base64 팽창(4/3)까지 얹혀 원본 23MB 부근이 천장입니다. 이 경로는 바이트가 지나가지 않아 **100MB** 까지 올라갑니다. **`uploadUrl` 은 1회용입니다.** 덮어쓰기가 막혀 있고 `expiresIn` 초 뒤 만료됩니다 — 저장해 두고 재사용하지 마시고, 만료됐다면 이 호출부터 다시 하세요. **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
396
+ * @summary 첨부파일 업로드 주소 발급 (대용량·권장)
397
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
398
+ * @param {CreateUploadUrlRequestDto} createUploadUrlRequestDto
399
+ * @param {*} [options] Override http request option.
400
+ * @throws {RequiredError}
401
+ */
402
+ createFileUploadUrl: async (idempotencyKey: string, createUploadUrlRequestDto: CreateUploadUrlRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
403
+ // verify required parameter 'idempotencyKey' is not null or undefined
404
+ assertParamExists('createFileUploadUrl', 'idempotencyKey', idempotencyKey)
405
+ // verify required parameter 'createUploadUrlRequestDto' is not null or undefined
406
+ assertParamExists('createFileUploadUrl', 'createUploadUrlRequestDto', createUploadUrlRequestDto)
407
+ const localVarPath = `/v2/files/upload-url`;
408
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
409
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
410
+ let baseOptions;
411
+ if (configuration) {
412
+ baseOptions = configuration.baseOptions;
413
+ }
414
+
415
+ const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
416
+ const localVarHeaderParameter = {} as any;
417
+ const localVarQueryParameter = {} as any;
418
+
419
+ // authentication partner-oauth2 required
420
+ // oauth required
421
+ await setOAuthToObject(localVarHeaderParameter, "partner-oauth2", ["files:write"], configuration)
422
+
423
+ localVarHeaderParameter['Content-Type'] = 'application/json';
424
+ localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
425
+
426
+ if (idempotencyKey != null) {
427
+ localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
428
+ }
429
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
430
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
431
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
432
+ localVarRequestOptions.data = serializeDataIfNeeded(createUploadUrlRequestDto, localVarRequestOptions, configuration)
433
+
434
+ return {
435
+ url: toPathString(localVarUrlObj),
436
+ options: localVarRequestOptions,
437
+ };
438
+ },
339
439
  /**
340
440
  * 무인증 — `fileKey` 자체가 capability 다(키를 아는 쪽이 곧 접근 권한을 가진다). 파트너 응답의 `fileUrl`/`fullUrl` 이 이 URL 을 가리킨다. 요청 시점에 서명하므로 URL 을 저장해 두어도 만료되지 않는다. 응답은 실제 저장소 URL 로의 302 리다이렉트이며 리다이렉트 타깃은 1시간 뒤 만료되므로 302 자체를 캐시하지 말 것(`Cache-Control: no-store`). --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 이미 있습니다 — `GET /v2/files/{fileKey}` 가 파일 메타와 `downloadUrl` 을 v2 응답 규약으로 돌려줍니다. 이 안정 URL 은 파트너 응답의 `fileUrl`/`fullUrl` 이 가리키는 주소라 계속 유지되며 중단 일정은 없습니다.
341
441
  * @summary 파일 다운로드
@@ -489,7 +589,7 @@ export const PartnerApiApiAxiosParamCreator = function (configuration?: Configur
489
589
  };
490
590
  },
491
591
  /**
492
- * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **구 경로:** 버전 없는 `GET /files/{fileKey}` 만료 없는 안정 주소이고 파트너 응답의 `fileUrl`/`fullUrl` 이 그 값을 가리킵니다. 인증도 스코프도 없는 표면이라 신규 연동은 엔드포인트를 쓰세요. 경로는 당분간 유지됩니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
592
+ * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **대부분은 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 엔드포인트는 주소를 들고 있지 않고 `fileKey` 아는 경우(예: 업로드 직후 크기 확인)를 위한 것입니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
493
593
  * @summary 파일 정보 조회
494
594
  * @param {string} fileKey 파일 키 — 업로드 응답의 fileKey(영문 대소문자·숫자 32자).
495
595
  * @param {*} [options] Override http request option.
@@ -1171,8 +1271,8 @@ export const PartnerApiApiAxiosParamCreator = function (configuration?: Configur
1171
1271
  };
1172
1272
  },
1173
1273
  /**
1174
- * 파일 본문을 base64 또는 url 중 정확히 하나로 제출하면 `fileKey` 를 돌려줍니다. 이 값을 공고 등록·수정의 첨부 필드에 그대로 실으세요. 스코프 `files:write` + `Idempotency-Key` 헤더가 필요합니다.
1175
- * @summary 공고 첨부파일 업로드
1274
+ * 파일 본문을 `base64` 또는 `url` 중 정확히 하나로 제출하면 `fileKey` 를 돌려줍니다. 이 값을 공고 등록·수정의 첨부 필드에 실으세요. **크기 상한이 다른 경로가 하나 더 있습니다.** 이 경로는 본문이 c-market 을 통과하므로 base64 팽창(4/3)까지 얹혀 **원본 23MB 부근**이 천장입니다(`url` 로 제출하면 c-market 이 대신 내려받으므로 그 제약은 없습니다). 더 큰 파일은 `POST /v2/files/upload-url` 로 서명 URL 을 받아 스토리지에 직접 올리세요 — **100MB** 까지 됩니다. **공고 등록에 파일을 함께 실을 수도 있습니다.** `POST /v2/bids` 의 `attachments` 원소에 `{ fileName, url }`·`{ fileName, base64 }` 를 그대로 넣으면 호출 없이 한 번에 끝납니다. 여러 공고에 같은 파일을 재사용하거나 큰 파일을 다룰 때만 `fileKey` 를 먼저 만드세요. **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1275
+ * @summary 공고 첨부파일 업로드 (한 번에)
1176
1276
  * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1177
1277
  * @param {UploadFileRequestDto} uploadFileRequestDto
1178
1278
  * @param {*} [options] Override http request option.
@@ -1254,6 +1354,21 @@ export const PartnerApiApiFp = function(configuration?: Configuration) {
1254
1354
  const localVarOperationServerBasePath = operationServerMap['PartnerApiApi.completeAcceptance']?.[localVarOperationServerIndex]?.url;
1255
1355
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1256
1356
  },
1357
+ /**
1358
+ * `uploadUrl` 로의 `PUT` 이 끝난 뒤 호출합니다. 올라온 파일을 실측해 등록하고, 그 시점부터 `fileKey` 를 공고 첨부로 쓸 수 있습니다. **확정 전 `fileKey` 는 첨부로 쓸 수 없습니다** — 공고 등록이 400 으로 거절됩니다. **신고한 크기가 아니라 실제 파일을 봅니다.** 발급 요청의 `fileSize` 와 다르면 실제 크기가 기록되고, 정책 상한을 넘으면 여기서 거절됩니다. **같은 `fileKey` 로 여러 번 호출해도 안전합니다**(멱등). **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1359
+ * @summary 첨부파일 업로드 확정
1360
+ * @param {string} fileKey 발급 응답의 fileKey(영문 대소문자·숫자 32자).
1361
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1362
+ * @param {CompleteUploadRequestDto} completeUploadRequestDto
1363
+ * @param {*} [options] Override http request option.
1364
+ * @throws {RequiredError}
1365
+ */
1366
+ async completeFileUpload(fileKey: string, idempotencyKey: string, completeUploadRequestDto: CompleteUploadRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<UploadFile201Response>> {
1367
+ const localVarAxiosArgs = await localVarAxiosParamCreator.completeFileUpload(fileKey, idempotencyKey, completeUploadRequestDto, options);
1368
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
1369
+ const localVarOperationServerBasePath = operationServerMap['PartnerApiApi.completeFileUpload']?.[localVarOperationServerIndex]?.url;
1370
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1371
+ },
1257
1372
  /**
1258
1373
  * 공급사로부터 계산서를 수령한 뒤, 계약을 완료처리 상태로 강제 전환합니다. **호출 시점:** 낙찰·계약 완료 후 공급사 계산서를 오프라인으로 수령했을 때. **부수효과:** - 결제완료·계산서 발급 상태가 기록되고 발급일자가 현재 시각으로 설정됩니다. **소유권:** 공고는 요청 파트너 키가 소유한 발주처 명의여야 합니다(타 발주처 공고 → 403). **이미 완료:** 이미 완료처리된 공고 재호출 → 409. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1259
1374
  * @summary 정산 마감
@@ -1296,6 +1411,20 @@ export const PartnerApiApiFp = function(configuration?: Configuration) {
1296
1411
  const localVarOperationServerBasePath = operationServerMap['PartnerApiApi.createExternalContractDocuments']?.[localVarOperationServerIndex]?.url;
1297
1412
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1298
1413
  },
1414
+ /**
1415
+ * 파일 본문을 스토리지로 **직접** 올리기 위한 1회용 서명 URL 을 발급합니다. 3단계로 씁니다. 1. 이 호출로 `fileKey` 와 `uploadUrl` 을 받습니다. 2. `uploadUrl` 에 파일 본문을 `PUT` 합니다 — 응답의 `contentType` 을 `Content-Type` 헤더에 그대로 실으세요. 이 요청은 c-market 을 거치지 않습니다. 3. `POST /v2/files/{fileKey}/complete` 로 확정합니다. **`POST /v2/files` 와 언제 갈리나:** 작은 첨부는 `POST /v2/files` 한 번이 간단합니다. 다만 그 경로는 본문이 c-market 을 통과하므로 base64 팽창(4/3)까지 얹혀 원본 23MB 부근이 천장입니다. 이 경로는 바이트가 지나가지 않아 **100MB** 까지 올라갑니다. **`uploadUrl` 은 1회용입니다.** 덮어쓰기가 막혀 있고 `expiresIn` 초 뒤 만료됩니다 — 저장해 두고 재사용하지 마시고, 만료됐다면 이 호출부터 다시 하세요. **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1416
+ * @summary 첨부파일 업로드 주소 발급 (대용량·권장)
1417
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1418
+ * @param {CreateUploadUrlRequestDto} createUploadUrlRequestDto
1419
+ * @param {*} [options] Override http request option.
1420
+ * @throws {RequiredError}
1421
+ */
1422
+ async createFileUploadUrl(idempotencyKey: string, createUploadUrlRequestDto: CreateUploadUrlRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CreateFileUploadUrl201Response>> {
1423
+ const localVarAxiosArgs = await localVarAxiosParamCreator.createFileUploadUrl(idempotencyKey, createUploadUrlRequestDto, options);
1424
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
1425
+ const localVarOperationServerBasePath = operationServerMap['PartnerApiApi.createFileUploadUrl']?.[localVarOperationServerIndex]?.url;
1426
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1427
+ },
1299
1428
  /**
1300
1429
  * 무인증 — `fileKey` 자체가 capability 다(키를 아는 쪽이 곧 접근 권한을 가진다). 파트너 응답의 `fileUrl`/`fullUrl` 이 이 URL 을 가리킨다. 요청 시점에 서명하므로 URL 을 저장해 두어도 만료되지 않는다. 응답은 실제 저장소 URL 로의 302 리다이렉트이며 리다이렉트 타깃은 1시간 뒤 만료되므로 302 자체를 캐시하지 말 것(`Cache-Control: no-store`). --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 이미 있습니다 — `GET /v2/files/{fileKey}` 가 파일 메타와 `downloadUrl` 을 v2 응답 규약으로 돌려줍니다. 이 안정 URL 은 파트너 응답의 `fileUrl`/`fullUrl` 이 가리키는 주소라 계속 유지되며 중단 일정은 없습니다.
1301
1430
  * @summary 파일 다운로드
@@ -1350,7 +1479,7 @@ export const PartnerApiApiFp = function(configuration?: Configuration) {
1350
1479
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1351
1480
  },
1352
1481
  /**
1353
- * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **구 경로:** 버전 없는 `GET /files/{fileKey}` 만료 없는 안정 주소이고 파트너 응답의 `fileUrl`/`fullUrl` 이 그 값을 가리킵니다. 인증도 스코프도 없는 표면이라 신규 연동은 엔드포인트를 쓰세요. 경로는 당분간 유지됩니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
1482
+ * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **대부분은 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 엔드포인트는 주소를 들고 있지 않고 `fileKey` 아는 경우(예: 업로드 직후 크기 확인)를 위한 것입니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
1354
1483
  * @summary 파일 정보 조회
1355
1484
  * @param {string} fileKey 파일 키 — 업로드 응답의 fileKey(영문 대소문자·숫자 32자).
1356
1485
  * @param {*} [options] Override http request option.
@@ -1564,8 +1693,8 @@ export const PartnerApiApiFp = function(configuration?: Configuration) {
1564
1693
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1565
1694
  },
1566
1695
  /**
1567
- * 파일 본문을 base64 또는 url 중 정확히 하나로 제출하면 `fileKey` 를 돌려줍니다. 이 값을 공고 등록·수정의 첨부 필드에 그대로 실으세요. 스코프 `files:write` + `Idempotency-Key` 헤더가 필요합니다.
1568
- * @summary 공고 첨부파일 업로드
1696
+ * 파일 본문을 `base64` 또는 `url` 중 정확히 하나로 제출하면 `fileKey` 를 돌려줍니다. 이 값을 공고 등록·수정의 첨부 필드에 실으세요. **크기 상한이 다른 경로가 하나 더 있습니다.** 이 경로는 본문이 c-market 을 통과하므로 base64 팽창(4/3)까지 얹혀 **원본 23MB 부근**이 천장입니다(`url` 로 제출하면 c-market 이 대신 내려받으므로 그 제약은 없습니다). 더 큰 파일은 `POST /v2/files/upload-url` 로 서명 URL 을 받아 스토리지에 직접 올리세요 — **100MB** 까지 됩니다. **공고 등록에 파일을 함께 실을 수도 있습니다.** `POST /v2/bids` 의 `attachments` 원소에 `{ fileName, url }`·`{ fileName, base64 }` 를 그대로 넣으면 호출 없이 한 번에 끝납니다. 여러 공고에 같은 파일을 재사용하거나 큰 파일을 다룰 때만 `fileKey` 를 먼저 만드세요. **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1697
+ * @summary 공고 첨부파일 업로드 (한 번에)
1569
1698
  * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1570
1699
  * @param {UploadFileRequestDto} uploadFileRequestDto
1571
1700
  * @param {*} [options] Override http request option.
@@ -1610,6 +1739,18 @@ export const PartnerApiApiFactory = function (configuration?: Configuration, bas
1610
1739
  completeAcceptance(bidRef: string, idempotencyKey: string, completeAcceptanceRequestDto: CompleteAcceptanceRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<CompleteAcceptance200Response> {
1611
1740
  return localVarFp.completeAcceptance(bidRef, idempotencyKey, completeAcceptanceRequestDto, options).then((request) => request(axios, basePath));
1612
1741
  },
1742
+ /**
1743
+ * `uploadUrl` 로의 `PUT` 이 끝난 뒤 호출합니다. 올라온 파일을 실측해 등록하고, 그 시점부터 `fileKey` 를 공고 첨부로 쓸 수 있습니다. **확정 전 `fileKey` 는 첨부로 쓸 수 없습니다** — 공고 등록이 400 으로 거절됩니다. **신고한 크기가 아니라 실제 파일을 봅니다.** 발급 요청의 `fileSize` 와 다르면 실제 크기가 기록되고, 정책 상한을 넘으면 여기서 거절됩니다. **같은 `fileKey` 로 여러 번 호출해도 안전합니다**(멱등). **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1744
+ * @summary 첨부파일 업로드 확정
1745
+ * @param {string} fileKey 발급 응답의 fileKey(영문 대소문자·숫자 32자).
1746
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1747
+ * @param {CompleteUploadRequestDto} completeUploadRequestDto
1748
+ * @param {*} [options] Override http request option.
1749
+ * @throws {RequiredError}
1750
+ */
1751
+ completeFileUpload(fileKey: string, idempotencyKey: string, completeUploadRequestDto: CompleteUploadRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<UploadFile201Response> {
1752
+ return localVarFp.completeFileUpload(fileKey, idempotencyKey, completeUploadRequestDto, options).then((request) => request(axios, basePath));
1753
+ },
1613
1754
  /**
1614
1755
  * 공급사로부터 계산서를 수령한 뒤, 계약을 완료처리 상태로 강제 전환합니다. **호출 시점:** 낙찰·계약 완료 후 공급사 계산서를 오프라인으로 수령했을 때. **부수효과:** - 결제완료·계산서 발급 상태가 기록되고 발급일자가 현재 시각으로 설정됩니다. **소유권:** 공고는 요청 파트너 키가 소유한 발주처 명의여야 합니다(타 발주처 공고 → 403). **이미 완료:** 이미 완료처리된 공고 재호출 → 409. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1615
1756
  * @summary 정산 마감
@@ -1643,6 +1784,17 @@ export const PartnerApiApiFactory = function (configuration?: Configuration, bas
1643
1784
  createExternalContractDocuments(idempotencyKey: string, createExternalContractDocumentsRequestDto: CreateExternalContractDocumentsRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<CreateExternalContractDocumentsResponseDto> {
1644
1785
  return localVarFp.createExternalContractDocuments(idempotencyKey, createExternalContractDocumentsRequestDto, options).then((request) => request(axios, basePath));
1645
1786
  },
1787
+ /**
1788
+ * 파일 본문을 스토리지로 **직접** 올리기 위한 1회용 서명 URL 을 발급합니다. 3단계로 씁니다. 1. 이 호출로 `fileKey` 와 `uploadUrl` 을 받습니다. 2. `uploadUrl` 에 파일 본문을 `PUT` 합니다 — 응답의 `contentType` 을 `Content-Type` 헤더에 그대로 실으세요. 이 요청은 c-market 을 거치지 않습니다. 3. `POST /v2/files/{fileKey}/complete` 로 확정합니다. **`POST /v2/files` 와 언제 갈리나:** 작은 첨부는 `POST /v2/files` 한 번이 간단합니다. 다만 그 경로는 본문이 c-market 을 통과하므로 base64 팽창(4/3)까지 얹혀 원본 23MB 부근이 천장입니다. 이 경로는 바이트가 지나가지 않아 **100MB** 까지 올라갑니다. **`uploadUrl` 은 1회용입니다.** 덮어쓰기가 막혀 있고 `expiresIn` 초 뒤 만료됩니다 — 저장해 두고 재사용하지 마시고, 만료됐다면 이 호출부터 다시 하세요. **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1789
+ * @summary 첨부파일 업로드 주소 발급 (대용량·권장)
1790
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1791
+ * @param {CreateUploadUrlRequestDto} createUploadUrlRequestDto
1792
+ * @param {*} [options] Override http request option.
1793
+ * @throws {RequiredError}
1794
+ */
1795
+ createFileUploadUrl(idempotencyKey: string, createUploadUrlRequestDto: CreateUploadUrlRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<CreateFileUploadUrl201Response> {
1796
+ return localVarFp.createFileUploadUrl(idempotencyKey, createUploadUrlRequestDto, options).then((request) => request(axios, basePath));
1797
+ },
1646
1798
  /**
1647
1799
  * 무인증 — `fileKey` 자체가 capability 다(키를 아는 쪽이 곧 접근 권한을 가진다). 파트너 응답의 `fileUrl`/`fullUrl` 이 이 URL 을 가리킨다. 요청 시점에 서명하므로 URL 을 저장해 두어도 만료되지 않는다. 응답은 실제 저장소 URL 로의 302 리다이렉트이며 리다이렉트 타깃은 1시간 뒤 만료되므로 302 자체를 캐시하지 말 것(`Cache-Control: no-store`). --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 이미 있습니다 — `GET /v2/files/{fileKey}` 가 파일 메타와 `downloadUrl` 을 v2 응답 규약으로 돌려줍니다. 이 안정 URL 은 파트너 응답의 `fileUrl`/`fullUrl` 이 가리키는 주소라 계속 유지되며 중단 일정은 없습니다.
1648
1800
  * @summary 파일 다운로드
@@ -1685,7 +1837,7 @@ export const PartnerApiApiFactory = function (configuration?: Configuration, bas
1685
1837
  return localVarFp.getBidStatement(bidRef, paperCode, options).then((request) => request(axios, basePath));
1686
1838
  },
1687
1839
  /**
1688
- * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **구 경로:** 버전 없는 `GET /files/{fileKey}` 만료 없는 안정 주소이고 파트너 응답의 `fileUrl`/`fullUrl` 이 그 값을 가리킵니다. 인증도 스코프도 없는 표면이라 신규 연동은 엔드포인트를 쓰세요. 경로는 당분간 유지됩니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
1840
+ * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **대부분은 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 엔드포인트는 주소를 들고 있지 않고 `fileKey` 아는 경우(예: 업로드 직후 크기 확인)를 위한 것입니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
1689
1841
  * @summary 파일 정보 조회
1690
1842
  * @param {string} fileKey 파일 키 — 업로드 응답의 fileKey(영문 대소문자·숫자 32자).
1691
1843
  * @param {*} [options] Override http request option.
@@ -1854,8 +2006,8 @@ export const PartnerApiApiFactory = function (configuration?: Configuration, bas
1854
2006
  return localVarFp.updateBid(bidRef, ifMatch, idempotencyKey, updateBidRequestDto, options).then((request) => request(axios, basePath));
1855
2007
  },
1856
2008
  /**
1857
- * 파일 본문을 base64 또는 url 중 정확히 하나로 제출하면 `fileKey` 를 돌려줍니다. 이 값을 공고 등록·수정의 첨부 필드에 그대로 실으세요. 스코프 `files:write` + `Idempotency-Key` 헤더가 필요합니다.
1858
- * @summary 공고 첨부파일 업로드
2009
+ * 파일 본문을 `base64` 또는 `url` 중 정확히 하나로 제출하면 `fileKey` 를 돌려줍니다. 이 값을 공고 등록·수정의 첨부 필드에 실으세요. **크기 상한이 다른 경로가 하나 더 있습니다.** 이 경로는 본문이 c-market 을 통과하므로 base64 팽창(4/3)까지 얹혀 **원본 23MB 부근**이 천장입니다(`url` 로 제출하면 c-market 이 대신 내려받으므로 그 제약은 없습니다). 더 큰 파일은 `POST /v2/files/upload-url` 로 서명 URL 을 받아 스토리지에 직접 올리세요 — **100MB** 까지 됩니다. **공고 등록에 파일을 함께 실을 수도 있습니다.** `POST /v2/bids` 의 `attachments` 원소에 `{ fileName, url }`·`{ fileName, base64 }` 를 그대로 넣으면 호출 없이 한 번에 끝납니다. 여러 공고에 같은 파일을 재사용하거나 큰 파일을 다룰 때만 `fileKey` 를 먼저 만드세요. **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
2010
+ * @summary 공고 첨부파일 업로드 (한 번에)
1859
2011
  * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1860
2012
  * @param {UploadFileRequestDto} uploadFileRequestDto
1861
2013
  * @param {*} [options] Override http request option.
@@ -1897,6 +2049,19 @@ export class PartnerApiApi extends BaseAPI {
1897
2049
  return PartnerApiApiFp(this.configuration).completeAcceptance(bidRef, idempotencyKey, completeAcceptanceRequestDto, options).then((request) => request(this.axios, this.basePath));
1898
2050
  }
1899
2051
 
2052
+ /**
2053
+ * `uploadUrl` 로의 `PUT` 이 끝난 뒤 호출합니다. 올라온 파일을 실측해 등록하고, 그 시점부터 `fileKey` 를 공고 첨부로 쓸 수 있습니다. **확정 전 `fileKey` 는 첨부로 쓸 수 없습니다** — 공고 등록이 400 으로 거절됩니다. **신고한 크기가 아니라 실제 파일을 봅니다.** 발급 요청의 `fileSize` 와 다르면 실제 크기가 기록되고, 정책 상한을 넘으면 여기서 거절됩니다. **같은 `fileKey` 로 여러 번 호출해도 안전합니다**(멱등). **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
2054
+ * @summary 첨부파일 업로드 확정
2055
+ * @param {string} fileKey 발급 응답의 fileKey(영문 대소문자·숫자 32자).
2056
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
2057
+ * @param {CompleteUploadRequestDto} completeUploadRequestDto
2058
+ * @param {*} [options] Override http request option.
2059
+ * @throws {RequiredError}
2060
+ */
2061
+ public completeFileUpload(fileKey: string, idempotencyKey: string, completeUploadRequestDto: CompleteUploadRequestDto, options?: RawAxiosRequestConfig) {
2062
+ return PartnerApiApiFp(this.configuration).completeFileUpload(fileKey, idempotencyKey, completeUploadRequestDto, options).then((request) => request(this.axios, this.basePath));
2063
+ }
2064
+
1900
2065
  /**
1901
2066
  * 공급사로부터 계산서를 수령한 뒤, 계약을 완료처리 상태로 강제 전환합니다. **호출 시점:** 낙찰·계약 완료 후 공급사 계산서를 오프라인으로 수령했을 때. **부수효과:** - 결제완료·계산서 발급 상태가 기록되고 발급일자가 현재 시각으로 설정됩니다. **소유권:** 공고는 요청 파트너 키가 소유한 발주처 명의여야 합니다(타 발주처 공고 → 403). **이미 완료:** 이미 완료처리된 공고 재호출 → 409. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1902
2067
  * @summary 정산 마감
@@ -1933,6 +2098,18 @@ export class PartnerApiApi extends BaseAPI {
1933
2098
  return PartnerApiApiFp(this.configuration).createExternalContractDocuments(idempotencyKey, createExternalContractDocumentsRequestDto, options).then((request) => request(this.axios, this.basePath));
1934
2099
  }
1935
2100
 
2101
+ /**
2102
+ * 파일 본문을 스토리지로 **직접** 올리기 위한 1회용 서명 URL 을 발급합니다. 3단계로 씁니다. 1. 이 호출로 `fileKey` 와 `uploadUrl` 을 받습니다. 2. `uploadUrl` 에 파일 본문을 `PUT` 합니다 — 응답의 `contentType` 을 `Content-Type` 헤더에 그대로 실으세요. 이 요청은 c-market 을 거치지 않습니다. 3. `POST /v2/files/{fileKey}/complete` 로 확정합니다. **`POST /v2/files` 와 언제 갈리나:** 작은 첨부는 `POST /v2/files` 한 번이 간단합니다. 다만 그 경로는 본문이 c-market 을 통과하므로 base64 팽창(4/3)까지 얹혀 원본 23MB 부근이 천장입니다. 이 경로는 바이트가 지나가지 않아 **100MB** 까지 올라갑니다. **`uploadUrl` 은 1회용입니다.** 덮어쓰기가 막혀 있고 `expiresIn` 초 뒤 만료됩니다 — 저장해 두고 재사용하지 마시고, 만료됐다면 이 호출부터 다시 하세요. **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
2103
+ * @summary 첨부파일 업로드 주소 발급 (대용량·권장)
2104
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
2105
+ * @param {CreateUploadUrlRequestDto} createUploadUrlRequestDto
2106
+ * @param {*} [options] Override http request option.
2107
+ * @throws {RequiredError}
2108
+ */
2109
+ public createFileUploadUrl(idempotencyKey: string, createUploadUrlRequestDto: CreateUploadUrlRequestDto, options?: RawAxiosRequestConfig) {
2110
+ return PartnerApiApiFp(this.configuration).createFileUploadUrl(idempotencyKey, createUploadUrlRequestDto, options).then((request) => request(this.axios, this.basePath));
2111
+ }
2112
+
1936
2113
  /**
1937
2114
  * 무인증 — `fileKey` 자체가 capability 다(키를 아는 쪽이 곧 접근 권한을 가진다). 파트너 응답의 `fileUrl`/`fullUrl` 이 이 URL 을 가리킨다. 요청 시점에 서명하므로 URL 을 저장해 두어도 만료되지 않는다. 응답은 실제 저장소 URL 로의 302 리다이렉트이며 리다이렉트 타깃은 1시간 뒤 만료되므로 302 자체를 캐시하지 말 것(`Cache-Control: no-store`). --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 이미 있습니다 — `GET /v2/files/{fileKey}` 가 파일 메타와 `downloadUrl` 을 v2 응답 규약으로 돌려줍니다. 이 안정 URL 은 파트너 응답의 `fileUrl`/`fullUrl` 이 가리키는 주소라 계속 유지되며 중단 일정은 없습니다.
1938
2115
  * @summary 파일 다운로드
@@ -1979,7 +2156,7 @@ export class PartnerApiApi extends BaseAPI {
1979
2156
  }
1980
2157
 
1981
2158
  /**
1982
- * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **구 경로:** 버전 없는 `GET /files/{fileKey}` 만료 없는 안정 주소이고 파트너 응답의 `fileUrl`/`fullUrl` 이 그 값을 가리킵니다. 인증도 스코프도 없는 표면이라 신규 연동은 엔드포인트를 쓰세요. 경로는 당분간 유지됩니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
2159
+ * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **대부분은 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 엔드포인트는 주소를 들고 있지 않고 `fileKey` 아는 경우(예: 업로드 직후 크기 확인)를 위한 것입니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
1983
2160
  * @summary 파일 정보 조회
1984
2161
  * @param {string} fileKey 파일 키 — 업로드 응답의 fileKey(영문 대소문자·숫자 32자).
1985
2162
  * @param {*} [options] Override http request option.
@@ -2163,8 +2340,8 @@ export class PartnerApiApi extends BaseAPI {
2163
2340
  }
2164
2341
 
2165
2342
  /**
2166
- * 파일 본문을 base64 또는 url 중 정확히 하나로 제출하면 `fileKey` 를 돌려줍니다. 이 값을 공고 등록·수정의 첨부 필드에 그대로 실으세요. 스코프 `files:write` + `Idempotency-Key` 헤더가 필요합니다.
2167
- * @summary 공고 첨부파일 업로드
2343
+ * 파일 본문을 `base64` 또는 `url` 중 정확히 하나로 제출하면 `fileKey` 를 돌려줍니다. 이 값을 공고 등록·수정의 첨부 필드에 실으세요. **크기 상한이 다른 경로가 하나 더 있습니다.** 이 경로는 본문이 c-market 을 통과하므로 base64 팽창(4/3)까지 얹혀 **원본 23MB 부근**이 천장입니다(`url` 로 제출하면 c-market 이 대신 내려받으므로 그 제약은 없습니다). 더 큰 파일은 `POST /v2/files/upload-url` 로 서명 URL 을 받아 스토리지에 직접 올리세요 — **100MB** 까지 됩니다. **공고 등록에 파일을 함께 실을 수도 있습니다.** `POST /v2/bids` 의 `attachments` 원소에 `{ fileName, url }`·`{ fileName, base64 }` 를 그대로 넣으면 호출 없이 한 번에 끝납니다. 여러 공고에 같은 파일을 재사용하거나 큰 파일을 다룰 때만 `fileKey` 를 먼저 만드세요. **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
2344
+ * @summary 공고 첨부파일 업로드 (한 번에)
2168
2345
  * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
2169
2346
  * @param {UploadFileRequestDto} uploadFileRequestDto
2170
2347
  * @param {*} [options] Override http request option.
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403` 을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403 입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주처 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 봉투 `/v2` 의 모든 2xx 본문은 `{ \"data\": … }` 입니다. 단일 리소스든 목록이든 같습니다. 목록처럼 부가 정보가 있는 응답은 `meta` 가 함께 실립니다 — 예: `{ \"data\": [...], \"meta\": { \"nextCursor\": \"…\" } }`. 부가 정보가 없으면 `meta` 키는 아예 나가지 않습니다(빈 객체를 싣지 않습니다). 봉투를 쓰지 않는 표면은 둘입니다. `/oauth/_*` 와 `/.well-known/_*` 는 각각 RFC 6749·RFC 8414·RFC 9728 이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON 이 아닙니다. 에러 응답에는 봉투를 씌우지 않습니다 — 아래 problem+json 이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2` 의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified` 를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json` 입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId` 와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId` 를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). `type` 은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1 이 허용하는 대로 이 URI 는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body 를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id` 가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug 은 **HTTP status 로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
6
6
  *
7
- * The version of the OpenAPI document: 36.1.1
7
+ * The version of the OpenAPI document: 37.0.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403` 을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403 입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주처 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 봉투 `/v2` 의 모든 2xx 본문은 `{ \"data\": … }` 입니다. 단일 리소스든 목록이든 같습니다. 목록처럼 부가 정보가 있는 응답은 `meta` 가 함께 실립니다 — 예: `{ \"data\": [...], \"meta\": { \"nextCursor\": \"…\" } }`. 부가 정보가 없으면 `meta` 키는 아예 나가지 않습니다(빈 객체를 싣지 않습니다). 봉투를 쓰지 않는 표면은 둘입니다. `/oauth/_*` 와 `/.well-known/_*` 는 각각 RFC 6749·RFC 8414·RFC 9728 이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON 이 아닙니다. 에러 응답에는 봉투를 씌우지 않습니다 — 아래 problem+json 이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2` 의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified` 를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json` 입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId` 와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId` 를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). `type` 은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1 이 허용하는 대로 이 URI 는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body 를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id` 가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug 은 **HTTP status 로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
6
6
  *
7
- * The version of the OpenAPI document: 36.1.1
7
+ * The version of the OpenAPI document: 37.0.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/api.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403` 을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403 입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주처 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 봉투 `/v2` 의 모든 2xx 본문은 `{ \"data\": … }` 입니다. 단일 리소스든 목록이든 같습니다. 목록처럼 부가 정보가 있는 응답은 `meta` 가 함께 실립니다 — 예: `{ \"data\": [...], \"meta\": { \"nextCursor\": \"…\" } }`. 부가 정보가 없으면 `meta` 키는 아예 나가지 않습니다(빈 객체를 싣지 않습니다). 봉투를 쓰지 않는 표면은 둘입니다. `/oauth/_*` 와 `/.well-known/_*` 는 각각 RFC 6749·RFC 8414·RFC 9728 이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON 이 아닙니다. 에러 응답에는 봉투를 씌우지 않습니다 — 아래 problem+json 이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2` 의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified` 를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json` 입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId` 와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId` 를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). `type` 은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1 이 허용하는 대로 이 URI 는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body 를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id` 가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug 은 **HTTP status 로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
6
6
  *
7
- * The version of the OpenAPI document: 36.1.1
7
+ * The version of the OpenAPI document: 37.0.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/base.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403` 을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403 입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주처 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 봉투 `/v2` 의 모든 2xx 본문은 `{ \"data\": … }` 입니다. 단일 리소스든 목록이든 같습니다. 목록처럼 부가 정보가 있는 응답은 `meta` 가 함께 실립니다 — 예: `{ \"data\": [...], \"meta\": { \"nextCursor\": \"…\" } }`. 부가 정보가 없으면 `meta` 키는 아예 나가지 않습니다(빈 객체를 싣지 않습니다). 봉투를 쓰지 않는 표면은 둘입니다. `/oauth/_*` 와 `/.well-known/_*` 는 각각 RFC 6749·RFC 8414·RFC 9728 이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON 이 아닙니다. 에러 응답에는 봉투를 씌우지 않습니다 — 아래 problem+json 이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2` 의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified` 를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json` 입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId` 와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId` 를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). `type` 은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1 이 허용하는 대로 이 URI 는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body 를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id` 가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug 은 **HTTP status 로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
6
6
  *
7
- * The version of the OpenAPI document: 36.1.1
7
+ * The version of the OpenAPI document: 37.0.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).