@cmarket/partner-sdk 48.0.0 β†’ 49.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 (898) hide show
  1. package/README.md +5 -87
  2. package/api/oauth-api.ts +1 -1
  3. package/api/partner-api-api.ts +22 -952
  4. package/api/products-api.ts +1 -1
  5. package/api/well-known-api.ts +1 -1
  6. package/api.ts +1 -2
  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 +1 -426
  13. package/dist/api/partner-api-api.js +7 -868
  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 -2
  19. package/dist/api.js +1 -2
  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 +1 -426
  29. package/dist/esm/api/partner-api-api.js +6 -867
  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 -2
  35. package/dist/esm/api.js +1 -2
  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/avalues-input-dto.d.ts +1 -1
  59. package/dist/esm/models/avalues-input-dto.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/bid-attachment-input-dto.d.ts +1 -1
  63. package/dist/esm/models/bid-attachment-input-dto.js +1 -1
  64. package/dist/esm/models/bid-bond-dto.d.ts +1 -1
  65. package/dist/esm/models/bid-bond-dto.js +1 -1
  66. package/dist/esm/models/bid-document-dto.d.ts +1 -1
  67. package/dist/esm/models/bid-document-dto.js +1 -1
  68. package/dist/esm/models/bid-failed-v2-response-dto.d.ts +1 -1
  69. package/dist/esm/models/bid-failed-v2-response-dto.js +1 -1
  70. package/dist/esm/models/bid-item-dto.d.ts +1 -1
  71. package/dist/esm/models/bid-item-dto.js +1 -1
  72. package/dist/esm/models/bid-manager-dto.d.ts +1 -1
  73. package/dist/esm/models/bid-manager-dto.js +1 -1
  74. package/dist/esm/models/bid-public-status.d.ts +4 -1
  75. package/dist/esm/models/bid-public-status.js +4 -1
  76. package/dist/esm/models/bid-registered-response-dto.d.ts +1 -1
  77. package/dist/esm/models/bid-registered-response-dto.js +1 -1
  78. package/dist/esm/models/bid-result-participant-attachment-dto.d.ts +1 -1
  79. package/dist/esm/models/bid-result-participant-attachment-dto.js +1 -1
  80. package/dist/esm/models/bid-result-participant-dto.d.ts +1 -1
  81. package/dist/esm/models/bid-result-participant-dto.js +1 -1
  82. package/dist/esm/models/bid-results-response-dto.d.ts +1 -1
  83. package/dist/esm/models/bid-results-response-dto.js +1 -1
  84. package/dist/esm/models/bid-statement-response-dto.d.ts +1 -1
  85. package/dist/esm/models/bid-statement-response-dto.js +1 -1
  86. package/dist/esm/models/card-payment-request-response-dto.d.ts +1 -1
  87. package/dist/esm/models/card-payment-request-response-dto.js +1 -1
  88. package/dist/esm/models/complete-acceptance-request-dto.d.ts +1 -1
  89. package/dist/esm/models/complete-acceptance-request-dto.js +1 -1
  90. package/dist/esm/models/complete-acceptance200-response.d.ts +1 -1
  91. package/dist/esm/models/complete-acceptance200-response.js +1 -1
  92. package/dist/esm/models/contract-restriction-confirm-input-dto.d.ts +1 -1
  93. package/dist/esm/models/contract-restriction-confirm-input-dto.js +1 -1
  94. package/dist/esm/models/create-bid-request-dto.d.ts +1 -1
  95. package/dist/esm/models/create-bid-request-dto.js +1 -1
  96. package/dist/esm/models/create-card-payment-dto.d.ts +1 -1
  97. package/dist/esm/models/create-card-payment-dto.js +1 -1
  98. package/dist/esm/models/create-card-payment-request-dto.d.ts +1 -1
  99. package/dist/esm/models/create-card-payment-request-dto.js +1 -1
  100. package/dist/esm/models/create-card-payment200-response.d.ts +1 -1
  101. package/dist/esm/models/create-card-payment200-response.js +1 -1
  102. package/dist/esm/models/create-external-contract-documents-request-dto.d.ts +1 -1
  103. package/dist/esm/models/create-external-contract-documents-request-dto.js +1 -1
  104. package/dist/esm/models/create-external-contract-documents-response-dto.d.ts +1 -1
  105. package/dist/esm/models/create-external-contract-documents-response-dto.js +1 -1
  106. package/dist/esm/models/excellent-procurement-public.d.ts +1 -1
  107. package/dist/esm/models/excellent-procurement-public.js +1 -1
  108. package/dist/esm/models/external-contract-document-item-dto.d.ts +1 -1
  109. package/dist/esm/models/external-contract-document-item-dto.js +1 -1
  110. package/dist/esm/models/external-contract-documents-response-dto.d.ts +1 -1
  111. package/dist/esm/models/external-contract-documents-response-dto.js +1 -1
  112. package/dist/esm/models/external-contract-item-dto.d.ts +1 -1
  113. package/dist/esm/models/external-contract-item-dto.js +1 -1
  114. package/dist/esm/models/external-contract-snapshot-dto.d.ts +1 -1
  115. package/dist/esm/models/external-contract-snapshot-dto.js +1 -1
  116. package/dist/esm/models/external-document-inputs-dto.d.ts +1 -1
  117. package/dist/esm/models/external-document-inputs-dto.js +1 -1
  118. package/dist/esm/models/file-uploaded-response-dto.d.ts +1 -1
  119. package/dist/esm/models/file-uploaded-response-dto.js +1 -1
  120. package/dist/esm/models/generated-external-contract-document-dto.d.ts +1 -1
  121. package/dist/esm/models/generated-external-contract-document-dto.js +1 -1
  122. package/dist/esm/models/get-bid-statement200-response.d.ts +1 -1
  123. package/dist/esm/models/get-bid-statement200-response.js +1 -1
  124. package/dist/esm/models/get-supplier-card-payable-v2200-response.d.ts +1 -1
  125. package/dist/esm/models/get-supplier-card-payable-v2200-response.js +1 -1
  126. package/dist/esm/models/green-product-public.d.ts +1 -1
  127. package/dist/esm/models/green-product-public.js +1 -1
  128. package/dist/esm/models/health-controller-check200-response.d.ts +1 -1
  129. package/dist/esm/models/health-controller-check200-response.js +1 -1
  130. package/dist/esm/models/health-response-dto.d.ts +1 -1
  131. package/dist/esm/models/health-response-dto.js +1 -1
  132. package/dist/esm/models/hierarchical-region-dto.d.ts +1 -1
  133. package/dist/esm/models/hierarchical-region-dto.js +1 -1
  134. package/dist/esm/models/index.d.ts +1 -71
  135. package/dist/esm/models/index.js +1 -71
  136. package/dist/esm/models/introspect-request-dto.d.ts +1 -1
  137. package/dist/esm/models/introspect-request-dto.js +1 -1
  138. package/dist/esm/models/introspection-response-dto.d.ts +1 -1
  139. package/dist/esm/models/introspection-response-dto.js +1 -1
  140. package/dist/esm/models/invalid-param-dto.d.ts +1 -1
  141. package/dist/esm/models/invalid-param-dto.js +1 -1
  142. package/dist/esm/models/invoice-split-response-dto.d.ts +1 -1
  143. package/dist/esm/models/invoice-split-response-dto.js +1 -1
  144. package/dist/esm/models/legal-mandatory-public.d.ts +1 -1
  145. package/dist/esm/models/legal-mandatory-public.js +1 -1
  146. package/dist/esm/models/{list-bids200-response-meta.d.ts β†’ list-bid-results200-response-meta.d.ts} +2 -2
  147. package/dist/esm/models/{bid-attachment-dto.js β†’ list-bid-results200-response-meta.js} +1 -1
  148. package/dist/esm/models/list-bid-results200-response.d.ts +3 -3
  149. package/dist/esm/models/list-bid-results200-response.js +1 -1
  150. package/dist/esm/models/list-products200-response.d.ts +3 -3
  151. package/dist/esm/models/list-products200-response.js +1 -1
  152. package/dist/esm/models/mark-bid-failed-request-dto.d.ts +1 -1
  153. package/dist/esm/models/mark-bid-failed-request-dto.js +1 -1
  154. package/dist/esm/models/mark-bid-failed201-response.d.ts +1 -1
  155. package/dist/esm/models/mark-bid-failed201-response.js +1 -1
  156. package/dist/esm/models/nominated-supplier-dto.d.ts +1 -1
  157. package/dist/esm/models/nominated-supplier-dto.js +1 -1
  158. package/dist/esm/models/oauth-error-response-dto.d.ts +1 -1
  159. package/dist/esm/models/oauth-error-response-dto.js +1 -1
  160. package/dist/esm/models/preconditions-dto.d.ts +1 -1
  161. package/dist/esm/models/preconditions-dto.js +1 -1
  162. package/dist/esm/models/problem-details-dto.d.ts +1 -1
  163. package/dist/esm/models/problem-details-dto.js +1 -1
  164. package/dist/esm/models/product-receipt-response-dto.d.ts +1 -1
  165. package/dist/esm/models/product-receipt-response-dto.js +1 -1
  166. package/dist/esm/models/product-response-dto.d.ts +1 -1
  167. package/dist/esm/models/product-response-dto.js +1 -1
  168. package/dist/esm/models/protected-resource-metadata-dto.d.ts +1 -1
  169. package/dist/esm/models/protected-resource-metadata-dto.js +1 -1
  170. package/dist/esm/models/qualification-review-input-dto.d.ts +1 -1
  171. package/dist/esm/models/qualification-review-input-dto.js +1 -1
  172. package/dist/esm/models/register-award-request-dto.d.ts +1 -1
  173. package/dist/esm/models/register-award-request-dto.js +1 -1
  174. package/dist/esm/models/register-award201-response.d.ts +1 -1
  175. package/dist/esm/models/register-award201-response.js +1 -1
  176. package/dist/esm/models/register-bid201-response.d.ts +1 -1
  177. package/dist/esm/models/register-bid201-response.js +1 -1
  178. package/dist/esm/models/register-semo-contract-request-dto.d.ts +1 -1
  179. package/dist/esm/models/register-semo-contract-request-dto.js +1 -1
  180. package/dist/esm/models/request-invoice-split-request-dto.d.ts +1 -1
  181. package/dist/esm/models/request-invoice-split-request-dto.js +1 -1
  182. package/dist/esm/models/request-invoice-split200-response.d.ts +1 -1
  183. package/dist/esm/models/request-invoice-split200-response.js +1 -1
  184. package/dist/esm/models/retiree-roster-input-dto.d.ts +1 -1
  185. package/dist/esm/models/retiree-roster-input-dto.js +1 -1
  186. package/dist/esm/models/retiree-roster-row-dto.d.ts +1 -1
  187. package/dist/esm/models/retiree-roster-row-dto.js +1 -1
  188. package/dist/esm/models/revoke-request-dto.d.ts +1 -1
  189. package/dist/esm/models/revoke-request-dto.js +1 -1
  190. package/dist/esm/models/semo-contract-registered-response-dto.d.ts +1 -1
  191. package/dist/esm/models/semo-contract-registered-response-dto.js +1 -1
  192. package/dist/esm/models/semo-contract-taxinvoice-status-response-dto.d.ts +1 -1
  193. package/dist/esm/models/semo-contract-taxinvoice-status-response-dto.js +1 -1
  194. package/dist/esm/models/site-briefing-input-dto.d.ts +1 -1
  195. package/dist/esm/models/site-briefing-input-dto.js +1 -1
  196. package/dist/esm/models/statement-document-dto.d.ts +1 -1
  197. package/dist/esm/models/statement-document-dto.js +1 -1
  198. package/dist/esm/models/statement-product-dto.d.ts +1 -1
  199. package/dist/esm/models/statement-product-dto.js +1 -1
  200. package/dist/esm/models/supplier-card-payable-response-dto.d.ts +1 -1
  201. package/dist/esm/models/supplier-card-payable-response-dto.js +1 -1
  202. package/dist/esm/models/token-request-dto.d.ts +1 -1
  203. package/dist/esm/models/token-request-dto.js +1 -1
  204. package/dist/esm/models/token-response-dto.d.ts +1 -1
  205. package/dist/esm/models/token-response-dto.js +1 -1
  206. package/dist/esm/models/upload-file-request-dto.d.ts +1 -1
  207. package/dist/esm/models/upload-file-request-dto.js +1 -1
  208. package/dist/esm/models/upload-file201-response.d.ts +1 -1
  209. package/dist/esm/models/upload-file201-response.js +1 -1
  210. package/dist/esm/models/userinfo-response-dto.d.ts +1 -1
  211. package/dist/esm/models/userinfo-response-dto.js +1 -1
  212. package/dist/index.d.ts +1 -1
  213. package/dist/index.js +1 -1
  214. package/dist/models/acceptance-result-response-dto.d.ts +1 -1
  215. package/dist/models/acceptance-result-response-dto.js +1 -1
  216. package/dist/models/acknowledge-product-receipt200-response.d.ts +1 -1
  217. package/dist/models/acknowledge-product-receipt200-response.js +1 -1
  218. package/dist/models/acknowledge-products-request-dto.d.ts +1 -1
  219. package/dist/models/acknowledge-products-request-dto.js +1 -1
  220. package/dist/models/api-catalog-dto.d.ts +1 -1
  221. package/dist/models/api-catalog-dto.js +1 -1
  222. package/dist/models/api-catalog-entry-dto.d.ts +1 -1
  223. package/dist/models/api-catalog-entry-dto.js +1 -1
  224. package/dist/models/api-catalog-link-dto.d.ts +1 -1
  225. package/dist/models/api-catalog-link-dto.js +1 -1
  226. package/dist/models/authorization-server-metadata-dto.d.ts +1 -1
  227. package/dist/models/authorization-server-metadata-dto.js +1 -1
  228. package/dist/models/avalues-input-dto.d.ts +1 -1
  229. package/dist/models/avalues-input-dto.js +1 -1
  230. package/dist/models/award-registered-v2-response-dto.d.ts +1 -1
  231. package/dist/models/award-registered-v2-response-dto.js +1 -1
  232. package/dist/models/bid-attachment-input-dto.d.ts +1 -1
  233. package/dist/models/bid-attachment-input-dto.js +1 -1
  234. package/dist/models/bid-bond-dto.d.ts +1 -1
  235. package/dist/models/bid-bond-dto.js +1 -1
  236. package/dist/models/bid-document-dto.d.ts +1 -1
  237. package/dist/models/bid-document-dto.js +1 -1
  238. package/dist/models/bid-failed-v2-response-dto.d.ts +1 -1
  239. package/dist/models/bid-failed-v2-response-dto.js +1 -1
  240. package/dist/models/bid-item-dto.d.ts +1 -1
  241. package/dist/models/bid-item-dto.js +1 -1
  242. package/dist/models/bid-manager-dto.d.ts +1 -1
  243. package/dist/models/bid-manager-dto.js +1 -1
  244. package/dist/models/bid-public-status.d.ts +4 -1
  245. package/dist/models/bid-public-status.js +4 -1
  246. package/dist/models/bid-registered-response-dto.d.ts +1 -1
  247. package/dist/models/bid-registered-response-dto.js +1 -1
  248. package/dist/models/bid-result-participant-attachment-dto.d.ts +1 -1
  249. package/dist/models/bid-result-participant-attachment-dto.js +1 -1
  250. package/dist/models/bid-result-participant-dto.d.ts +1 -1
  251. package/dist/models/bid-result-participant-dto.js +1 -1
  252. package/dist/models/bid-results-response-dto.d.ts +1 -1
  253. package/dist/models/bid-results-response-dto.js +1 -1
  254. package/dist/models/bid-statement-response-dto.d.ts +1 -1
  255. package/dist/models/bid-statement-response-dto.js +1 -1
  256. package/dist/models/card-payment-request-response-dto.d.ts +1 -1
  257. package/dist/models/card-payment-request-response-dto.js +1 -1
  258. package/dist/models/complete-acceptance-request-dto.d.ts +1 -1
  259. package/dist/models/complete-acceptance-request-dto.js +1 -1
  260. package/dist/models/complete-acceptance200-response.d.ts +1 -1
  261. package/dist/models/complete-acceptance200-response.js +1 -1
  262. package/dist/models/contract-restriction-confirm-input-dto.d.ts +1 -1
  263. package/dist/models/contract-restriction-confirm-input-dto.js +1 -1
  264. package/dist/models/create-bid-request-dto.d.ts +1 -1
  265. package/dist/models/create-bid-request-dto.js +1 -1
  266. package/dist/models/create-card-payment-dto.d.ts +1 -1
  267. package/dist/models/create-card-payment-dto.js +1 -1
  268. package/dist/models/create-card-payment-request-dto.d.ts +1 -1
  269. package/dist/models/create-card-payment-request-dto.js +1 -1
  270. package/dist/models/create-card-payment200-response.d.ts +1 -1
  271. package/dist/models/create-card-payment200-response.js +1 -1
  272. package/dist/models/create-external-contract-documents-request-dto.d.ts +1 -1
  273. package/dist/models/create-external-contract-documents-request-dto.js +1 -1
  274. package/dist/models/create-external-contract-documents-response-dto.d.ts +1 -1
  275. package/dist/models/create-external-contract-documents-response-dto.js +1 -1
  276. package/dist/models/excellent-procurement-public.d.ts +1 -1
  277. package/dist/models/excellent-procurement-public.js +1 -1
  278. package/dist/models/external-contract-document-item-dto.d.ts +1 -1
  279. package/dist/models/external-contract-document-item-dto.js +1 -1
  280. package/dist/models/external-contract-documents-response-dto.d.ts +1 -1
  281. package/dist/models/external-contract-documents-response-dto.js +1 -1
  282. package/dist/models/external-contract-item-dto.d.ts +1 -1
  283. package/dist/models/external-contract-item-dto.js +1 -1
  284. package/dist/models/external-contract-snapshot-dto.d.ts +1 -1
  285. package/dist/models/external-contract-snapshot-dto.js +1 -1
  286. package/dist/models/external-document-inputs-dto.d.ts +1 -1
  287. package/dist/models/external-document-inputs-dto.js +1 -1
  288. package/dist/models/file-uploaded-response-dto.d.ts +1 -1
  289. package/dist/models/file-uploaded-response-dto.js +1 -1
  290. package/dist/models/generated-external-contract-document-dto.d.ts +1 -1
  291. package/dist/models/generated-external-contract-document-dto.js +1 -1
  292. package/dist/models/get-bid-statement200-response.d.ts +1 -1
  293. package/dist/models/get-bid-statement200-response.js +1 -1
  294. package/dist/models/get-supplier-card-payable-v2200-response.d.ts +1 -1
  295. package/dist/models/get-supplier-card-payable-v2200-response.js +1 -1
  296. package/dist/models/green-product-public.d.ts +1 -1
  297. package/dist/models/green-product-public.js +1 -1
  298. package/dist/models/health-controller-check200-response.d.ts +1 -1
  299. package/dist/models/health-controller-check200-response.js +1 -1
  300. package/dist/models/health-response-dto.d.ts +1 -1
  301. package/dist/models/health-response-dto.js +1 -1
  302. package/dist/models/hierarchical-region-dto.d.ts +1 -1
  303. package/dist/models/hierarchical-region-dto.js +1 -1
  304. package/dist/models/index.d.ts +1 -71
  305. package/dist/models/index.js +1 -71
  306. package/dist/models/introspect-request-dto.d.ts +1 -1
  307. package/dist/models/introspect-request-dto.js +1 -1
  308. package/dist/models/introspection-response-dto.d.ts +1 -1
  309. package/dist/models/introspection-response-dto.js +1 -1
  310. package/dist/models/invalid-param-dto.d.ts +1 -1
  311. package/dist/models/invalid-param-dto.js +1 -1
  312. package/dist/models/invoice-split-response-dto.d.ts +1 -1
  313. package/dist/models/invoice-split-response-dto.js +1 -1
  314. package/dist/models/legal-mandatory-public.d.ts +1 -1
  315. package/dist/models/legal-mandatory-public.js +1 -1
  316. package/dist/models/{list-bids200-response-meta.d.ts β†’ list-bid-results200-response-meta.d.ts} +2 -2
  317. package/dist/models/{bid-acceptance-dto.js β†’ list-bid-results200-response-meta.js} +1 -1
  318. package/dist/models/list-bid-results200-response.d.ts +3 -3
  319. package/dist/models/list-bid-results200-response.js +1 -1
  320. package/dist/models/list-products200-response.d.ts +3 -3
  321. package/dist/models/list-products200-response.js +1 -1
  322. package/dist/models/mark-bid-failed-request-dto.d.ts +1 -1
  323. package/dist/models/mark-bid-failed-request-dto.js +1 -1
  324. package/dist/models/mark-bid-failed201-response.d.ts +1 -1
  325. package/dist/models/mark-bid-failed201-response.js +1 -1
  326. package/dist/models/nominated-supplier-dto.d.ts +1 -1
  327. package/dist/models/nominated-supplier-dto.js +1 -1
  328. package/dist/models/oauth-error-response-dto.d.ts +1 -1
  329. package/dist/models/oauth-error-response-dto.js +1 -1
  330. package/dist/models/preconditions-dto.d.ts +1 -1
  331. package/dist/models/preconditions-dto.js +1 -1
  332. package/dist/models/problem-details-dto.d.ts +1 -1
  333. package/dist/models/problem-details-dto.js +1 -1
  334. package/dist/models/product-receipt-response-dto.d.ts +1 -1
  335. package/dist/models/product-receipt-response-dto.js +1 -1
  336. package/dist/models/product-response-dto.d.ts +1 -1
  337. package/dist/models/product-response-dto.js +1 -1
  338. package/dist/models/protected-resource-metadata-dto.d.ts +1 -1
  339. package/dist/models/protected-resource-metadata-dto.js +1 -1
  340. package/dist/models/qualification-review-input-dto.d.ts +1 -1
  341. package/dist/models/qualification-review-input-dto.js +1 -1
  342. package/dist/models/register-award-request-dto.d.ts +1 -1
  343. package/dist/models/register-award-request-dto.js +1 -1
  344. package/dist/models/register-award201-response.d.ts +1 -1
  345. package/dist/models/register-award201-response.js +1 -1
  346. package/dist/models/register-bid201-response.d.ts +1 -1
  347. package/dist/models/register-bid201-response.js +1 -1
  348. package/dist/models/register-semo-contract-request-dto.d.ts +1 -1
  349. package/dist/models/register-semo-contract-request-dto.js +1 -1
  350. package/dist/models/request-invoice-split-request-dto.d.ts +1 -1
  351. package/dist/models/request-invoice-split-request-dto.js +1 -1
  352. package/dist/models/request-invoice-split200-response.d.ts +1 -1
  353. package/dist/models/request-invoice-split200-response.js +1 -1
  354. package/dist/models/retiree-roster-input-dto.d.ts +1 -1
  355. package/dist/models/retiree-roster-input-dto.js +1 -1
  356. package/dist/models/retiree-roster-row-dto.d.ts +1 -1
  357. package/dist/models/retiree-roster-row-dto.js +1 -1
  358. package/dist/models/revoke-request-dto.d.ts +1 -1
  359. package/dist/models/revoke-request-dto.js +1 -1
  360. package/dist/models/semo-contract-registered-response-dto.d.ts +1 -1
  361. package/dist/models/semo-contract-registered-response-dto.js +1 -1
  362. package/dist/models/semo-contract-taxinvoice-status-response-dto.d.ts +1 -1
  363. package/dist/models/semo-contract-taxinvoice-status-response-dto.js +1 -1
  364. package/dist/models/site-briefing-input-dto.d.ts +1 -1
  365. package/dist/models/site-briefing-input-dto.js +1 -1
  366. package/dist/models/statement-document-dto.d.ts +1 -1
  367. package/dist/models/statement-document-dto.js +1 -1
  368. package/dist/models/statement-product-dto.d.ts +1 -1
  369. package/dist/models/statement-product-dto.js +1 -1
  370. package/dist/models/supplier-card-payable-response-dto.d.ts +1 -1
  371. package/dist/models/supplier-card-payable-response-dto.js +1 -1
  372. package/dist/models/token-request-dto.d.ts +1 -1
  373. package/dist/models/token-request-dto.js +1 -1
  374. package/dist/models/token-response-dto.d.ts +1 -1
  375. package/dist/models/token-response-dto.js +1 -1
  376. package/dist/models/upload-file-request-dto.d.ts +1 -1
  377. package/dist/models/upload-file-request-dto.js +1 -1
  378. package/dist/models/upload-file201-response.d.ts +1 -1
  379. package/dist/models/upload-file201-response.js +1 -1
  380. package/dist/models/userinfo-response-dto.d.ts +1 -1
  381. package/dist/models/userinfo-response-dto.js +1 -1
  382. package/docs/BidPublicStatus.md +1 -0
  383. package/docs/ListBidResults200Response.md +1 -1
  384. package/docs/{ListBids200ResponseMeta.md β†’ ListBidResults200ResponseMeta.md} +3 -3
  385. package/docs/ListProducts200Response.md +1 -1
  386. package/docs/PartnerApiApi.md +15 -695
  387. package/index.ts +1 -1
  388. package/models/acceptance-result-response-dto.ts +1 -1
  389. package/models/acknowledge-product-receipt200-response.ts +1 -1
  390. package/models/acknowledge-products-request-dto.ts +1 -1
  391. package/models/api-catalog-dto.ts +1 -1
  392. package/models/api-catalog-entry-dto.ts +1 -1
  393. package/models/api-catalog-link-dto.ts +1 -1
  394. package/models/authorization-server-metadata-dto.ts +1 -1
  395. package/models/avalues-input-dto.ts +1 -1
  396. package/models/award-registered-v2-response-dto.ts +1 -1
  397. package/models/bid-attachment-input-dto.ts +1 -1
  398. package/models/bid-bond-dto.ts +1 -1
  399. package/models/bid-document-dto.ts +1 -1
  400. package/models/bid-failed-v2-response-dto.ts +1 -1
  401. package/models/bid-item-dto.ts +1 -1
  402. package/models/bid-manager-dto.ts +1 -1
  403. package/models/bid-public-status.ts +4 -1
  404. package/models/bid-registered-response-dto.ts +1 -1
  405. package/models/bid-result-participant-attachment-dto.ts +1 -1
  406. package/models/bid-result-participant-dto.ts +1 -1
  407. package/models/bid-results-response-dto.ts +1 -1
  408. package/models/bid-statement-response-dto.ts +1 -1
  409. package/models/card-payment-request-response-dto.ts +1 -1
  410. package/models/complete-acceptance-request-dto.ts +1 -1
  411. package/models/complete-acceptance200-response.ts +1 -1
  412. package/models/contract-restriction-confirm-input-dto.ts +1 -1
  413. package/models/create-bid-request-dto.ts +1 -1
  414. package/models/create-card-payment-dto.ts +1 -1
  415. package/models/create-card-payment-request-dto.ts +1 -1
  416. package/models/create-card-payment200-response.ts +1 -1
  417. package/models/create-external-contract-documents-request-dto.ts +1 -1
  418. package/models/create-external-contract-documents-response-dto.ts +1 -1
  419. package/models/excellent-procurement-public.ts +1 -1
  420. package/models/external-contract-document-item-dto.ts +1 -1
  421. package/models/external-contract-documents-response-dto.ts +1 -1
  422. package/models/external-contract-item-dto.ts +1 -1
  423. package/models/external-contract-snapshot-dto.ts +1 -1
  424. package/models/external-document-inputs-dto.ts +1 -1
  425. package/models/file-uploaded-response-dto.ts +1 -1
  426. package/models/generated-external-contract-document-dto.ts +1 -1
  427. package/models/get-bid-statement200-response.ts +1 -1
  428. package/models/get-supplier-card-payable-v2200-response.ts +1 -1
  429. package/models/green-product-public.ts +1 -1
  430. package/models/health-controller-check200-response.ts +1 -1
  431. package/models/health-response-dto.ts +1 -1
  432. package/models/hierarchical-region-dto.ts +1 -1
  433. package/models/index.ts +1 -71
  434. package/models/introspect-request-dto.ts +1 -1
  435. package/models/introspection-response-dto.ts +1 -1
  436. package/models/invalid-param-dto.ts +1 -1
  437. package/models/invoice-split-response-dto.ts +1 -1
  438. package/models/legal-mandatory-public.ts +1 -1
  439. package/models/{list-bids200-response-meta.ts β†’ list-bid-results200-response-meta.ts} +2 -2
  440. package/models/list-bid-results200-response.ts +3 -3
  441. package/models/list-products200-response.ts +3 -3
  442. package/models/mark-bid-failed-request-dto.ts +1 -1
  443. package/models/mark-bid-failed201-response.ts +1 -1
  444. package/models/nominated-supplier-dto.ts +1 -1
  445. package/models/oauth-error-response-dto.ts +1 -1
  446. package/models/preconditions-dto.ts +1 -1
  447. package/models/problem-details-dto.ts +1 -1
  448. package/models/product-receipt-response-dto.ts +1 -1
  449. package/models/product-response-dto.ts +1 -1
  450. package/models/protected-resource-metadata-dto.ts +1 -1
  451. package/models/qualification-review-input-dto.ts +1 -1
  452. package/models/register-award-request-dto.ts +1 -1
  453. package/models/register-award201-response.ts +1 -1
  454. package/models/register-bid201-response.ts +1 -1
  455. package/models/register-semo-contract-request-dto.ts +1 -1
  456. package/models/request-invoice-split-request-dto.ts +1 -1
  457. package/models/request-invoice-split200-response.ts +1 -1
  458. package/models/retiree-roster-input-dto.ts +1 -1
  459. package/models/retiree-roster-row-dto.ts +1 -1
  460. package/models/revoke-request-dto.ts +1 -1
  461. package/models/semo-contract-registered-response-dto.ts +1 -1
  462. package/models/semo-contract-taxinvoice-status-response-dto.ts +1 -1
  463. package/models/site-briefing-input-dto.ts +1 -1
  464. package/models/statement-document-dto.ts +1 -1
  465. package/models/statement-product-dto.ts +1 -1
  466. package/models/supplier-card-payable-response-dto.ts +1 -1
  467. package/models/token-request-dto.ts +1 -1
  468. package/models/token-response-dto.ts +1 -1
  469. package/models/upload-file-request-dto.ts +1 -1
  470. package/models/upload-file201-response.ts +1 -1
  471. package/models/userinfo-response-dto.ts +1 -1
  472. package/package.json +1 -1
  473. package/api/embed-api.ts +0 -133
  474. package/dist/api/embed-api.d.ts +0 -68
  475. package/dist/api/embed-api.js +0 -133
  476. package/dist/esm/api/embed-api.d.ts +0 -68
  477. package/dist/esm/api/embed-api.js +0 -126
  478. package/dist/esm/models/award-method-public.d.ts +0 -25
  479. package/dist/esm/models/award-method-public.js +0 -26
  480. package/dist/esm/models/award-reverted-v2-response-dto.d.ts +0 -25
  481. package/dist/esm/models/award-reverted-v2-response-dto.js +0 -16
  482. package/dist/esm/models/bid-acceptance-dto.d.ts +0 -29
  483. package/dist/esm/models/bid-acceptance-dto.js +0 -14
  484. package/dist/esm/models/bid-attachment-dto.d.ts +0 -29
  485. package/dist/esm/models/bid-avalues-dto.d.ts +0 -41
  486. package/dist/esm/models/bid-avalues-dto.js +0 -14
  487. package/dist/esm/models/bid-award-method-detail-dto.d.ts +0 -26
  488. package/dist/esm/models/bid-award-method-detail-dto.js +0 -14
  489. package/dist/esm/models/bid-cancellation-dto.d.ts +0 -17
  490. package/dist/esm/models/bid-cancellation-dto.js +0 -14
  491. package/dist/esm/models/bid-cancelled-response-dto.d.ts +0 -25
  492. package/dist/esm/models/bid-cancelled-response-dto.js +0 -16
  493. package/dist/esm/models/bid-category-public.d.ts +0 -21
  494. package/dist/esm/models/bid-category-public.js +0 -22
  495. package/dist/esm/models/bid-contact-dto.d.ts +0 -33
  496. package/dist/esm/models/bid-contact-dto.js +0 -14
  497. package/dist/esm/models/bid-contacts-dto.d.ts +0 -22
  498. package/dist/esm/models/bid-contacts-dto.js +0 -14
  499. package/dist/esm/models/bid-contract-document-dto.d.ts +0 -60
  500. package/dist/esm/models/bid-contract-document-dto.js +0 -19
  501. package/dist/esm/models/bid-delivery-terms-dto.d.ts +0 -35
  502. package/dist/esm/models/bid-delivery-terms-dto.js +0 -14
  503. package/dist/esm/models/bid-detail-response-dto.d.ts +0 -211
  504. package/dist/esm/models/bid-detail-response-dto.js +0 -14
  505. package/dist/esm/models/bid-license-requirement-dto.d.ts +0 -26
  506. package/dist/esm/models/bid-license-requirement-dto.js +0 -14
  507. package/dist/esm/models/bid-lifecycle-dto.d.ts +0 -33
  508. package/dist/esm/models/bid-lifecycle-dto.js +0 -14
  509. package/dist/esm/models/bid-must-read-notice-dto.d.ts +0 -21
  510. package/dist/esm/models/bid-must-read-notice-dto.js +0 -14
  511. package/dist/esm/models/bid-payment-terms-dto.d.ts +0 -22
  512. package/dist/esm/models/bid-payment-terms-dto.js +0 -14
  513. package/dist/esm/models/bid-preliminary-price-dto.d.ts +0 -38
  514. package/dist/esm/models/bid-preliminary-price-dto.js +0 -14
  515. package/dist/esm/models/bid-preliminary-price-slot-dto.d.ts +0 -25
  516. package/dist/esm/models/bid-preliminary-price-slot-dto.js +0 -14
  517. package/dist/esm/models/bid-product-dto.d.ts +0 -55
  518. package/dist/esm/models/bid-product-dto.js +0 -14
  519. package/dist/esm/models/bid-qualification-review-dto.d.ts +0 -35
  520. package/dist/esm/models/bid-qualification-review-dto.js +0 -14
  521. package/dist/esm/models/bid-region-dto.d.ts +0 -21
  522. package/dist/esm/models/bid-region-dto.js +0 -14
  523. package/dist/esm/models/bid-region-restriction-dto.d.ts +0 -22
  524. package/dist/esm/models/bid-region-restriction-dto.js +0 -14
  525. package/dist/esm/models/bid-related-bid-dto.d.ts +0 -22
  526. package/dist/esm/models/bid-related-bid-dto.js +0 -14
  527. package/dist/esm/models/bid-required-document-dto.d.ts +0 -25
  528. package/dist/esm/models/bid-required-document-dto.js +0 -14
  529. package/dist/esm/models/bid-settlement-line-item-dto.d.ts +0 -49
  530. package/dist/esm/models/bid-settlement-line-item-dto.js +0 -14
  531. package/dist/esm/models/bid-settlement-participant-dto.d.ts +0 -91
  532. package/dist/esm/models/bid-settlement-participant-dto.js +0 -14
  533. package/dist/esm/models/bid-settlement-response-dto.d.ts +0 -22
  534. package/dist/esm/models/bid-settlement-response-dto.js +0 -14
  535. package/dist/esm/models/bid-site-briefing-dto.d.ts +0 -21
  536. package/dist/esm/models/bid-site-briefing-dto.js +0 -14
  537. package/dist/esm/models/bid-summary-dto.d.ts +0 -94
  538. package/dist/esm/models/bid-summary-dto.js +0 -14
  539. package/dist/esm/models/bid-type-public.d.ts +0 -19
  540. package/dist/esm/models/bid-type-public.js +0 -20
  541. package/dist/esm/models/bid-updated-response-dto.d.ts +0 -17
  542. package/dist/esm/models/bid-updated-response-dto.js +0 -14
  543. package/dist/esm/models/bidding-style-public.d.ts +0 -19
  544. package/dist/esm/models/bidding-style-public.js +0 -20
  545. package/dist/esm/models/cancel-bid-request-dto.d.ts +0 -17
  546. package/dist/esm/models/cancel-bid-request-dto.js +0 -14
  547. package/dist/esm/models/cancel-bid200-response.d.ts +0 -15
  548. package/dist/esm/models/cancel-bid200-response.js +0 -14
  549. package/dist/esm/models/complete-invoice200-response.d.ts +0 -15
  550. package/dist/esm/models/complete-invoice200-response.js +0 -14
  551. package/dist/esm/models/complete-upload-request-dto.d.ts +0 -17
  552. package/dist/esm/models/complete-upload-request-dto.js +0 -14
  553. package/dist/esm/models/create-embed-launch201-response.d.ts +0 -15
  554. package/dist/esm/models/create-embed-launch201-response.js +0 -14
  555. package/dist/esm/models/create-file-upload-url201-response.d.ts +0 -15
  556. package/dist/esm/models/create-file-upload-url201-response.js +0 -14
  557. package/dist/esm/models/create-upload-url-request-dto.d.ts +0 -21
  558. package/dist/esm/models/create-upload-url-request-dto.js +0 -14
  559. package/dist/esm/models/delivery-date-type-public.d.ts +0 -20
  560. package/dist/esm/models/delivery-date-type-public.js +0 -21
  561. package/dist/esm/models/delivery-method-public.d.ts +0 -20
  562. package/dist/esm/models/delivery-method-public.js +0 -21
  563. package/dist/esm/models/embed-bid-prefill-dto.d.ts +0 -75
  564. package/dist/esm/models/embed-bid-prefill-dto.js +0 -23
  565. package/dist/esm/models/embed-bid-prefill-item-dto.d.ts +0 -33
  566. package/dist/esm/models/embed-bid-prefill-item-dto.js +0 -14
  567. package/dist/esm/models/embed-bid-prefill-manager-dto.d.ts +0 -29
  568. package/dist/esm/models/embed-bid-prefill-manager-dto.js +0 -14
  569. package/dist/esm/models/embed-launch-request-dto.d.ts +0 -56
  570. package/dist/esm/models/embed-launch-request-dto.js +0 -29
  571. package/dist/esm/models/embed-launch-response-dto.d.ts +0 -21
  572. package/dist/esm/models/embed-launch-response-dto.js +0 -14
  573. package/dist/esm/models/get-bid-settlement200-response.d.ts +0 -15
  574. package/dist/esm/models/get-bid-settlement200-response.js +0 -14
  575. package/dist/esm/models/get-bid200-response.d.ts +0 -15
  576. package/dist/esm/models/get-bid200-response.js +0 -14
  577. package/dist/esm/models/handover-type-public.d.ts +0 -19
  578. package/dist/esm/models/handover-type-public.js +0 -20
  579. package/dist/esm/models/invoice-completed-response-dto.d.ts +0 -17
  580. package/dist/esm/models/invoice-completed-response-dto.js +0 -14
  581. package/dist/esm/models/license-combination-mode.d.ts +0 -19
  582. package/dist/esm/models/license-combination-mode.js +0 -20
  583. package/dist/esm/models/list-bids200-response-meta.js +0 -14
  584. package/dist/esm/models/list-bids200-response.d.ts +0 -17
  585. package/dist/esm/models/list-bids200-response.js +0 -14
  586. package/dist/esm/models/list-suppliers200-response.d.ts +0 -17
  587. package/dist/esm/models/list-suppliers200-response.js +0 -14
  588. package/dist/esm/models/payment-method-public.d.ts +0 -19
  589. package/dist/esm/models/payment-method-public.js +0 -20
  590. package/dist/esm/models/preliminary-price-region-public.d.ts +0 -20
  591. package/dist/esm/models/preliminary-price-region-public.js +0 -21
  592. package/dist/esm/models/price-score-type-public.d.ts +0 -20
  593. package/dist/esm/models/price-score-type-public.js +0 -21
  594. package/dist/esm/models/pricing-type-public.d.ts +0 -19
  595. package/dist/esm/models/pricing-type-public.js +0 -20
  596. package/dist/esm/models/regulation-type-public.d.ts +0 -19
  597. package/dist/esm/models/regulation-type-public.js +0 -20
  598. package/dist/esm/models/related-bid-relation.d.ts +0 -20
  599. package/dist/esm/models/related-bid-relation.js +0 -21
  600. package/dist/esm/models/revert-award-request-dto.d.ts +0 -17
  601. package/dist/esm/models/revert-award-request-dto.js +0 -14
  602. package/dist/esm/models/revert-award200-response.d.ts +0 -15
  603. package/dist/esm/models/revert-award200-response.js +0 -14
  604. package/dist/esm/models/supplier-response-dto.d.ts +0 -33
  605. package/dist/esm/models/supplier-response-dto.js +0 -14
  606. package/dist/esm/models/supplier-tax-type.d.ts +0 -19
  607. package/dist/esm/models/supplier-tax-type.js +0 -20
  608. package/dist/esm/models/taxation-type-public.d.ts +0 -20
  609. package/dist/esm/models/taxation-type-public.js +0 -21
  610. package/dist/esm/models/two-stage-phase-public.d.ts +0 -19
  611. package/dist/esm/models/two-stage-phase-public.js +0 -20
  612. package/dist/esm/models/update-bid-request-dto.d.ts +0 -343
  613. package/dist/esm/models/update-bid-request-dto.js +0 -105
  614. package/dist/esm/models/update-bid200-response.d.ts +0 -15
  615. package/dist/esm/models/update-bid200-response.js +0 -14
  616. package/dist/esm/models/upload-url-created-response-dto.d.ts +0 -29
  617. package/dist/esm/models/upload-url-created-response-dto.js +0 -14
  618. package/dist/models/award-method-public.d.ts +0 -25
  619. package/dist/models/award-method-public.js +0 -29
  620. package/dist/models/award-reverted-v2-response-dto.d.ts +0 -25
  621. package/dist/models/award-reverted-v2-response-dto.js +0 -19
  622. package/dist/models/bid-acceptance-dto.d.ts +0 -29
  623. package/dist/models/bid-attachment-dto.d.ts +0 -29
  624. package/dist/models/bid-attachment-dto.js +0 -15
  625. package/dist/models/bid-avalues-dto.d.ts +0 -41
  626. package/dist/models/bid-avalues-dto.js +0 -15
  627. package/dist/models/bid-award-method-detail-dto.d.ts +0 -26
  628. package/dist/models/bid-award-method-detail-dto.js +0 -15
  629. package/dist/models/bid-cancellation-dto.d.ts +0 -17
  630. package/dist/models/bid-cancellation-dto.js +0 -15
  631. package/dist/models/bid-cancelled-response-dto.d.ts +0 -25
  632. package/dist/models/bid-cancelled-response-dto.js +0 -19
  633. package/dist/models/bid-category-public.d.ts +0 -21
  634. package/dist/models/bid-category-public.js +0 -25
  635. package/dist/models/bid-contact-dto.d.ts +0 -33
  636. package/dist/models/bid-contact-dto.js +0 -15
  637. package/dist/models/bid-contacts-dto.d.ts +0 -22
  638. package/dist/models/bid-contacts-dto.js +0 -15
  639. package/dist/models/bid-contract-document-dto.d.ts +0 -60
  640. package/dist/models/bid-contract-document-dto.js +0 -22
  641. package/dist/models/bid-delivery-terms-dto.d.ts +0 -35
  642. package/dist/models/bid-delivery-terms-dto.js +0 -15
  643. package/dist/models/bid-detail-response-dto.d.ts +0 -211
  644. package/dist/models/bid-detail-response-dto.js +0 -15
  645. package/dist/models/bid-license-requirement-dto.d.ts +0 -26
  646. package/dist/models/bid-license-requirement-dto.js +0 -15
  647. package/dist/models/bid-lifecycle-dto.d.ts +0 -33
  648. package/dist/models/bid-lifecycle-dto.js +0 -15
  649. package/dist/models/bid-must-read-notice-dto.d.ts +0 -21
  650. package/dist/models/bid-must-read-notice-dto.js +0 -15
  651. package/dist/models/bid-payment-terms-dto.d.ts +0 -22
  652. package/dist/models/bid-payment-terms-dto.js +0 -15
  653. package/dist/models/bid-preliminary-price-dto.d.ts +0 -38
  654. package/dist/models/bid-preliminary-price-dto.js +0 -15
  655. package/dist/models/bid-preliminary-price-slot-dto.d.ts +0 -25
  656. package/dist/models/bid-preliminary-price-slot-dto.js +0 -15
  657. package/dist/models/bid-product-dto.d.ts +0 -55
  658. package/dist/models/bid-product-dto.js +0 -15
  659. package/dist/models/bid-qualification-review-dto.d.ts +0 -35
  660. package/dist/models/bid-qualification-review-dto.js +0 -15
  661. package/dist/models/bid-region-dto.d.ts +0 -21
  662. package/dist/models/bid-region-dto.js +0 -15
  663. package/dist/models/bid-region-restriction-dto.d.ts +0 -22
  664. package/dist/models/bid-region-restriction-dto.js +0 -15
  665. package/dist/models/bid-related-bid-dto.d.ts +0 -22
  666. package/dist/models/bid-related-bid-dto.js +0 -15
  667. package/dist/models/bid-required-document-dto.d.ts +0 -25
  668. package/dist/models/bid-required-document-dto.js +0 -15
  669. package/dist/models/bid-settlement-line-item-dto.d.ts +0 -49
  670. package/dist/models/bid-settlement-line-item-dto.js +0 -15
  671. package/dist/models/bid-settlement-participant-dto.d.ts +0 -91
  672. package/dist/models/bid-settlement-participant-dto.js +0 -15
  673. package/dist/models/bid-settlement-response-dto.d.ts +0 -22
  674. package/dist/models/bid-settlement-response-dto.js +0 -15
  675. package/dist/models/bid-site-briefing-dto.d.ts +0 -21
  676. package/dist/models/bid-site-briefing-dto.js +0 -15
  677. package/dist/models/bid-summary-dto.d.ts +0 -94
  678. package/dist/models/bid-summary-dto.js +0 -15
  679. package/dist/models/bid-type-public.d.ts +0 -19
  680. package/dist/models/bid-type-public.js +0 -23
  681. package/dist/models/bid-updated-response-dto.d.ts +0 -17
  682. package/dist/models/bid-updated-response-dto.js +0 -15
  683. package/dist/models/bidding-style-public.d.ts +0 -19
  684. package/dist/models/bidding-style-public.js +0 -23
  685. package/dist/models/cancel-bid-request-dto.d.ts +0 -17
  686. package/dist/models/cancel-bid-request-dto.js +0 -15
  687. package/dist/models/cancel-bid200-response.d.ts +0 -15
  688. package/dist/models/cancel-bid200-response.js +0 -15
  689. package/dist/models/complete-invoice200-response.d.ts +0 -15
  690. package/dist/models/complete-invoice200-response.js +0 -15
  691. package/dist/models/complete-upload-request-dto.d.ts +0 -17
  692. package/dist/models/complete-upload-request-dto.js +0 -15
  693. package/dist/models/create-embed-launch201-response.d.ts +0 -15
  694. package/dist/models/create-embed-launch201-response.js +0 -15
  695. package/dist/models/create-file-upload-url201-response.d.ts +0 -15
  696. package/dist/models/create-file-upload-url201-response.js +0 -15
  697. package/dist/models/create-upload-url-request-dto.d.ts +0 -21
  698. package/dist/models/create-upload-url-request-dto.js +0 -15
  699. package/dist/models/delivery-date-type-public.d.ts +0 -20
  700. package/dist/models/delivery-date-type-public.js +0 -24
  701. package/dist/models/delivery-method-public.d.ts +0 -20
  702. package/dist/models/delivery-method-public.js +0 -24
  703. package/dist/models/embed-bid-prefill-dto.d.ts +0 -75
  704. package/dist/models/embed-bid-prefill-dto.js +0 -26
  705. package/dist/models/embed-bid-prefill-item-dto.d.ts +0 -33
  706. package/dist/models/embed-bid-prefill-item-dto.js +0 -15
  707. package/dist/models/embed-bid-prefill-manager-dto.d.ts +0 -29
  708. package/dist/models/embed-bid-prefill-manager-dto.js +0 -15
  709. package/dist/models/embed-launch-request-dto.d.ts +0 -56
  710. package/dist/models/embed-launch-request-dto.js +0 -32
  711. package/dist/models/embed-launch-response-dto.d.ts +0 -21
  712. package/dist/models/embed-launch-response-dto.js +0 -15
  713. package/dist/models/get-bid-settlement200-response.d.ts +0 -15
  714. package/dist/models/get-bid-settlement200-response.js +0 -15
  715. package/dist/models/get-bid200-response.d.ts +0 -15
  716. package/dist/models/get-bid200-response.js +0 -15
  717. package/dist/models/handover-type-public.d.ts +0 -19
  718. package/dist/models/handover-type-public.js +0 -23
  719. package/dist/models/invoice-completed-response-dto.d.ts +0 -17
  720. package/dist/models/invoice-completed-response-dto.js +0 -15
  721. package/dist/models/license-combination-mode.d.ts +0 -19
  722. package/dist/models/license-combination-mode.js +0 -23
  723. package/dist/models/list-bids200-response-meta.js +0 -15
  724. package/dist/models/list-bids200-response.d.ts +0 -17
  725. package/dist/models/list-bids200-response.js +0 -15
  726. package/dist/models/list-suppliers200-response.d.ts +0 -17
  727. package/dist/models/list-suppliers200-response.js +0 -15
  728. package/dist/models/payment-method-public.d.ts +0 -19
  729. package/dist/models/payment-method-public.js +0 -23
  730. package/dist/models/preliminary-price-region-public.d.ts +0 -20
  731. package/dist/models/preliminary-price-region-public.js +0 -24
  732. package/dist/models/price-score-type-public.d.ts +0 -20
  733. package/dist/models/price-score-type-public.js +0 -24
  734. package/dist/models/pricing-type-public.d.ts +0 -19
  735. package/dist/models/pricing-type-public.js +0 -23
  736. package/dist/models/regulation-type-public.d.ts +0 -19
  737. package/dist/models/regulation-type-public.js +0 -23
  738. package/dist/models/related-bid-relation.d.ts +0 -20
  739. package/dist/models/related-bid-relation.js +0 -24
  740. package/dist/models/revert-award-request-dto.d.ts +0 -17
  741. package/dist/models/revert-award-request-dto.js +0 -15
  742. package/dist/models/revert-award200-response.d.ts +0 -15
  743. package/dist/models/revert-award200-response.js +0 -15
  744. package/dist/models/supplier-response-dto.d.ts +0 -33
  745. package/dist/models/supplier-response-dto.js +0 -15
  746. package/dist/models/supplier-tax-type.d.ts +0 -19
  747. package/dist/models/supplier-tax-type.js +0 -23
  748. package/dist/models/taxation-type-public.d.ts +0 -20
  749. package/dist/models/taxation-type-public.js +0 -24
  750. package/dist/models/two-stage-phase-public.d.ts +0 -19
  751. package/dist/models/two-stage-phase-public.js +0 -23
  752. package/dist/models/update-bid-request-dto.d.ts +0 -343
  753. package/dist/models/update-bid-request-dto.js +0 -108
  754. package/dist/models/update-bid200-response.d.ts +0 -15
  755. package/dist/models/update-bid200-response.js +0 -15
  756. package/dist/models/upload-url-created-response-dto.d.ts +0 -29
  757. package/dist/models/upload-url-created-response-dto.js +0 -15
  758. package/docs/AwardMethodPublic.md +0 -23
  759. package/docs/AwardRevertedV2ResponseDto.md +0 -22
  760. package/docs/BidAValuesDto.md +0 -32
  761. package/docs/BidAcceptanceDto.md +0 -26
  762. package/docs/BidAttachmentDto.md +0 -26
  763. package/docs/BidAwardMethodDetailDto.md +0 -24
  764. package/docs/BidCancellationDto.md +0 -20
  765. package/docs/BidCancelledResponseDto.md +0 -22
  766. package/docs/BidCategoryPublic.md +0 -15
  767. package/docs/BidContactDto.md +0 -28
  768. package/docs/BidContactsDto.md +0 -22
  769. package/docs/BidContractDocumentDto.md +0 -38
  770. package/docs/BidDeliveryTermsDto.md +0 -28
  771. package/docs/BidDetailResponseDto.md +0 -104
  772. package/docs/BidLicenseRequirementDto.md +0 -24
  773. package/docs/BidLifecycleDto.md +0 -28
  774. package/docs/BidMustReadNoticeDto.md +0 -22
  775. package/docs/BidPaymentTermsDto.md +0 -22
  776. package/docs/BidPreliminaryPriceDto.md +0 -30
  777. package/docs/BidPreliminaryPriceSlotDto.md +0 -24
  778. package/docs/BidProductDto.md +0 -38
  779. package/docs/BidQualificationReviewDto.md +0 -28
  780. package/docs/BidRegionDto.md +0 -22
  781. package/docs/BidRegionRestrictionDto.md +0 -22
  782. package/docs/BidRelatedBidDto.md +0 -22
  783. package/docs/BidRequiredDocumentDto.md +0 -24
  784. package/docs/BidSettlementLineItemDto.md +0 -36
  785. package/docs/BidSettlementParticipantDto.md +0 -56
  786. package/docs/BidSettlementResponseDto.md +0 -22
  787. package/docs/BidSiteBriefingDto.md +0 -22
  788. package/docs/BidSummaryDto.md +0 -54
  789. package/docs/BidTypePublic.md +0 -11
  790. package/docs/BidUpdatedResponseDto.md +0 -20
  791. package/docs/BiddingStylePublic.md +0 -11
  792. package/docs/CancelBid200Response.md +0 -20
  793. package/docs/CancelBidRequestDto.md +0 -20
  794. package/docs/CompleteInvoice200Response.md +0 -20
  795. package/docs/CompleteUploadRequestDto.md +0 -20
  796. package/docs/CreateEmbedLaunch201Response.md +0 -20
  797. package/docs/CreateFileUploadUrl201Response.md +0 -20
  798. package/docs/CreateUploadUrlRequestDto.md +0 -22
  799. package/docs/DeliveryDateTypePublic.md +0 -13
  800. package/docs/DeliveryMethodPublic.md +0 -13
  801. package/docs/EmbedApi.md +0 -68
  802. package/docs/EmbedBidPrefillDto.md +0 -42
  803. package/docs/EmbedBidPrefillItemDto.md +0 -28
  804. package/docs/EmbedBidPrefillManagerDto.md +0 -26
  805. package/docs/EmbedLaunchRequestDto.md +0 -30
  806. package/docs/EmbedLaunchResponseDto.md +0 -22
  807. package/docs/GetBid200Response.md +0 -20
  808. package/docs/GetBidSettlement200Response.md +0 -20
  809. package/docs/HandoverTypePublic.md +0 -11
  810. package/docs/InvoiceCompletedResponseDto.md +0 -20
  811. package/docs/LicenseCombinationMode.md +0 -11
  812. package/docs/ListBids200Response.md +0 -22
  813. package/docs/ListSuppliers200Response.md +0 -22
  814. package/docs/PaymentMethodPublic.md +0 -11
  815. package/docs/PreliminaryPriceRegionPublic.md +0 -13
  816. package/docs/PriceScoreTypePublic.md +0 -13
  817. package/docs/PricingTypePublic.md +0 -11
  818. package/docs/RegulationTypePublic.md +0 -11
  819. package/docs/RelatedBidRelation.md +0 -13
  820. package/docs/RevertAward200Response.md +0 -20
  821. package/docs/RevertAwardRequestDto.md +0 -20
  822. package/docs/SupplierResponseDto.md +0 -28
  823. package/docs/SupplierTaxType.md +0 -11
  824. package/docs/TaxationTypePublic.md +0 -13
  825. package/docs/TwoStagePhasePublic.md +0 -11
  826. package/docs/UpdateBid200Response.md +0 -20
  827. package/docs/UpdateBidRequestDto.md +0 -124
  828. package/docs/UploadUrlCreatedResponseDto.md +0 -26
  829. package/models/award-method-public.ts +0 -35
  830. package/models/award-reverted-v2-response-dto.ts +0 -34
  831. package/models/bid-acceptance-dto.ts +0 -35
  832. package/models/bid-attachment-dto.ts +0 -35
  833. package/models/bid-avalues-dto.ts +0 -47
  834. package/models/bid-award-method-detail-dto.ts +0 -36
  835. package/models/bid-cancellation-dto.ts +0 -23
  836. package/models/bid-cancelled-response-dto.ts +0 -34
  837. package/models/bid-category-public.ts +0 -31
  838. package/models/bid-contact-dto.ts +0 -39
  839. package/models/bid-contacts-dto.ts +0 -30
  840. package/models/bid-contract-document-dto.ts +0 -69
  841. package/models/bid-delivery-terms-dto.ts +0 -47
  842. package/models/bid-detail-response-dto.ts +0 -271
  843. package/models/bid-license-requirement-dto.ts +0 -36
  844. package/models/bid-lifecycle-dto.ts +0 -39
  845. package/models/bid-must-read-notice-dto.ts +0 -27
  846. package/models/bid-payment-terms-dto.ts +0 -32
  847. package/models/bid-preliminary-price-dto.ts +0 -46
  848. package/models/bid-preliminary-price-slot-dto.ts +0 -31
  849. package/models/bid-product-dto.ts +0 -67
  850. package/models/bid-qualification-review-dto.ts +0 -47
  851. package/models/bid-region-dto.ts +0 -27
  852. package/models/bid-region-restriction-dto.ts +0 -30
  853. package/models/bid-related-bid-dto.ts +0 -32
  854. package/models/bid-required-document-dto.ts +0 -31
  855. package/models/bid-settlement-line-item-dto.ts +0 -55
  856. package/models/bid-settlement-participant-dto.ts +0 -103
  857. package/models/bid-settlement-response-dto.ts +0 -30
  858. package/models/bid-site-briefing-dto.ts +0 -27
  859. package/models/bid-summary-dto.ts +0 -120
  860. package/models/bid-type-public.ts +0 -29
  861. package/models/bid-updated-response-dto.ts +0 -23
  862. package/models/bidding-style-public.ts +0 -29
  863. package/models/cancel-bid-request-dto.ts +0 -23
  864. package/models/cancel-bid200-response.ts +0 -23
  865. package/models/complete-invoice200-response.ts +0 -23
  866. package/models/complete-upload-request-dto.ts +0 -23
  867. package/models/create-embed-launch201-response.ts +0 -23
  868. package/models/create-file-upload-url201-response.ts +0 -23
  869. package/models/create-upload-url-request-dto.ts +0 -27
  870. package/models/delivery-date-type-public.ts +0 -30
  871. package/models/delivery-method-public.ts +0 -30
  872. package/models/embed-bid-prefill-dto.ts +0 -89
  873. package/models/embed-bid-prefill-item-dto.ts +0 -39
  874. package/models/embed-bid-prefill-manager-dto.ts +0 -35
  875. package/models/embed-launch-request-dto.ts +0 -68
  876. package/models/embed-launch-response-dto.ts +0 -27
  877. package/models/get-bid-settlement200-response.ts +0 -23
  878. package/models/get-bid200-response.ts +0 -23
  879. package/models/handover-type-public.ts +0 -29
  880. package/models/invoice-completed-response-dto.ts +0 -23
  881. package/models/license-combination-mode.ts +0 -29
  882. package/models/list-bids200-response.ts +0 -27
  883. package/models/list-suppliers200-response.ts +0 -27
  884. package/models/payment-method-public.ts +0 -29
  885. package/models/preliminary-price-region-public.ts +0 -30
  886. package/models/price-score-type-public.ts +0 -30
  887. package/models/pricing-type-public.ts +0 -29
  888. package/models/regulation-type-public.ts +0 -29
  889. package/models/related-bid-relation.ts +0 -30
  890. package/models/revert-award-request-dto.ts +0 -23
  891. package/models/revert-award200-response.ts +0 -23
  892. package/models/supplier-response-dto.ts +0 -39
  893. package/models/supplier-tax-type.ts +0 -29
  894. package/models/taxation-type-public.ts +0 -30
  895. package/models/two-stage-phase-public.ts +0 -29
  896. package/models/update-bid-request-dto.ts +0 -386
  897. package/models/update-bid200-response.ts +0 -23
  898. package/models/upload-url-created-response-dto.ts +0 -35
@@ -1,126 +0,0 @@
1
- /* tslint:disable */
2
- /* eslint-disable */
3
- /**
4
- * CMARKET V6 Partner API
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\": … }`μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `data`κ°€ 배열이고 `meta`κ°€ 항상 ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€** β€” `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 λ¦¬μ†ŒμŠ€ μ‘λ‹΅μ—λŠ” `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 ν™•μž₯, κ°’ μ—†μŒ). - `code`: μ‘°λ‹¬ν”Œλž«νΌμ΄ μš”μ²­μ„ κ±°λΆ€ν•œ **μ‚¬μœ  μ½”λ“œ**(`…/upstream-*` 응닡에 ν•¨κ»˜ μ˜΅λ‹ˆλ‹€). `type`은 μƒνƒœ μˆ˜μ€€μ΄κ³  `detail`은 κ³ μ • 문ꡬ라, 무엇을 고쳐야 ν•˜λŠ”μ§€λŠ” 이 값이 μ•Œλ € μ€λ‹ˆλ‹€ β€” 예: `BID_INVALID_BID_DATE_RANGE`(마감이 μ‹œμž‘λ³΄λ‹€ 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 μ‘°λ‹¬λ²ˆν˜Έμ˜ 곡고가 μ§„ν–‰ 쀑). μ•ˆμ • μ‹λ³„μžμ΄λ―€λ‘œ λ¬Έμžμ—΄λ‘œ 뢄기해도 λ©λ‹ˆλ‹€. `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
- *
7
- * The version of the OpenAPI document: 48.0.0
8
- * Contact: semo.io.kr@gmail.com
9
- *
10
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
- * https://openapi-generator.tech
12
- * Do not edit the class manually.
13
- */
14
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
- return new (P || (P = Promise))(function (resolve, reject) {
17
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
- step((generator = generator.apply(thisArg, _arguments || [])).next());
21
- });
22
- };
23
- import globalAxios from 'axios';
24
- // Some imports not used depending on template conditions
25
- // @ts-ignore
26
- import { DUMMY_BASE_URL, assertParamExists, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from '../common';
27
- // @ts-ignore
28
- import { BASE_PATH, BaseAPI, operationServerMap } from '../base';
29
- /**
30
- * EmbedApi - axios parameter creator
31
- */
32
- export const EmbedApiAxiosParamCreator = function (configuration) {
33
- return {
34
- /**
35
- * λ°œμ£ΌκΈ°κ΄€ λ‹΄λ‹Ήμž(`memberId`)용 1νšŒμ„± `launchUrl`을 λ°œκΈ‰ν•©λ‹ˆλ‹€(TTL 60초). 이 μ£Όμ†Œλ‘œ CMARKET 화면이 ERP μ‚¬μš©μžμ—κ²Œ 둜그인 없이 μ—΄λ¦½λ‹ˆλ‹€. μŠ€μ½”ν”„ `embed:launch`. - 응닡은 `launchUrl` ν•˜λ‚˜μž…λ‹ˆλ‹€. iframe `src`에 κ±Έκ±°λ‚˜ μƒˆ νƒ­μœΌλ‘œ μ—½λ‹ˆλ‹€. μ„€μΉ˜ν•  μŠ€ν¬λ¦½νŠΈλ„ SDK도 μ—†μŠ΅λ‹ˆλ‹€. - **iframe(ꢌμž₯)**: λ°œκΈ‰ μš”μ²­μ— `parentOrigin`을 ν•¨κ»˜ 보내면 등둝 μ™„λ£ŒΒ·μ·¨μ†ŒΒ·κ³΅κ³ μ„ νƒΒ·κ³΅κ³ λ°μ΄ν„°Β·μ„Έμ…˜λ§Œλ£Œλ₯Ό κ·Έ origin으둜 `postMessage` ν†΅μ§€ν•©λ‹ˆλ‹€. ν—ˆμš© origin을 λ¨Όμ € 등둝해야 ν•˜λ©°, 미등둝이면 이 μš”μ²­μ΄ 400μž…λ‹ˆλ‹€. λ‹€λ§Œ 개발 κΈ°κΈ°(`http://localhost:*`, `127.0.0.1`, `[::1]`)λŠ” 등둝 없이 ν—ˆμš©ν•˜λ―€λ‘œ 연동 착수 λ‹¨κ³„μ—μ„œ 별도 μš”μ²­μ΄ ν•„μš” μ—†μŠ΅λ‹ˆλ‹€. - `memberId` 검증은 **API ν‚€μ˜ λŒ€ν–‰ λ²”μœ„ 확인뿐**μž…λ‹ˆλ‹€(λ²”μœ„ 밖이면 403) β€” 같은 κΈ°κ΄€ λ‹΄λ‹ΉμžλŠ” μ „λΆ€ ν†΅κ³Όν•˜λ―€λ‘œ, λΈŒλΌμš°μ €κ°€ μ§€μ •ν•œ 값을 κ·ΈλŒ€λ‘œ λ„˜κΈ°λ©΄ λ™λ£Œ λͺ…μ˜λ‘œ 화면이 μ—΄λ¦½λ‹ˆλ‹€. - **곡고 데이터 톡지(`cmarket:bid-data`)**: 두 μžλ¦¬μ—μ„œ λ‚˜μ˜΅λ‹ˆλ‹€ β€” β‘  곡고등둝을 마친 직후(등둝 β†’ `cmarket:bid-data` β†’ `cmarket:success` μˆœμ„œ, 별도 λ²„νŠΌ λΆˆμš”) β‘‘ 곡고상세 ν™”λ©΄ 맨 μ•„λž˜μ˜ \"μˆ˜μ‹ ν•˜κΈ°\" λ²„νŠΌ. 본문은 `GET /v2/bids/{bidRef}` 응닡과 μ™„μ „νžˆ κ°™μ•„μ„œ, RESTλ₯Ό μ—°λ™ν•˜μ§€ μ•Šμ€ 기관도 μž„λ² λ“œλ§ŒμœΌλ‘œ 자체 λŒ€μž₯을 μ±„μ›λ‹ˆλ‹€. - **μƒˆ νƒ­**: `parentOrigin` 없이 λ°œκΈ‰ν•©λ‹ˆλ‹€ β€” origin 등둝이 ν•„μš” μ—†λŠ” λŒ€μ‹  톡지가 μ—†μ–΄ κ²°κ³ΌλŠ” 쑰회 API둜 ν™•μΈν•©λ‹ˆλ‹€. - ν—ˆμš© λͺ©λ‘ λ°– `screen`Β·`components`λŠ” 400μž…λ‹ˆλ‹€. - **ν™”λ©΄λ§ˆλ‹€ ν•„μš”ν•œ 값이 λ‹€λ¦…λ‹ˆλ‹€** β€” `bid-detail`Β·`payment`λŠ” `targetBidId` 없이 λ°œκΈ‰ν•˜λ©΄ 400μž…λ‹ˆλ‹€(μž„λ² λ“œ κ·Έλ£Ή μ„€λͺ…μ˜ μš”κ±΄ ν‘œ μ°Έμ‘°). μ•„λž˜ μ˜ˆμ‹œ 셋이 κ·ΈλŒ€λ‘œ λΆ™μ—¬ μ“Έ 수 μžˆλŠ” μ΅œμ†Œ μš”μ²­μž…λ‹ˆλ‹€.
36
- * @summary μž„λ² λ“œ launch λ°œκΈ‰
37
- * @param {EmbedLaunchRequestDto} embedLaunchRequestDto
38
- * @param {*} [options] Override http request option.
39
- * @throws {RequiredError}
40
- */
41
- createEmbedLaunch: (embedLaunchRequestDto_1, ...args_1) => __awaiter(this, [embedLaunchRequestDto_1, ...args_1], void 0, function* (embedLaunchRequestDto, options = {}) {
42
- // verify required parameter 'embedLaunchRequestDto' is not null or undefined
43
- assertParamExists('createEmbedLaunch', 'embedLaunchRequestDto', embedLaunchRequestDto);
44
- const localVarPath = `/v2/embed/launch`;
45
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
46
- const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
47
- let baseOptions;
48
- if (configuration) {
49
- baseOptions = configuration.baseOptions;
50
- }
51
- const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
52
- const localVarHeaderParameter = {};
53
- const localVarQueryParameter = {};
54
- // authentication partner-oauth2 required
55
- // oauth required
56
- yield setOAuthToObject(localVarHeaderParameter, "partner-oauth2", ["embed:launch"], configuration);
57
- localVarHeaderParameter['Content-Type'] = 'application/json';
58
- localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
59
- setSearchParams(localVarUrlObj, localVarQueryParameter);
60
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
61
- localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
62
- localVarRequestOptions.data = serializeDataIfNeeded(embedLaunchRequestDto, localVarRequestOptions, configuration);
63
- return {
64
- url: toPathString(localVarUrlObj),
65
- options: localVarRequestOptions,
66
- };
67
- }),
68
- };
69
- };
70
- /**
71
- * EmbedApi - functional programming interface
72
- */
73
- export const EmbedApiFp = function (configuration) {
74
- const localVarAxiosParamCreator = EmbedApiAxiosParamCreator(configuration);
75
- return {
76
- /**
77
- * λ°œμ£ΌκΈ°κ΄€ λ‹΄λ‹Ήμž(`memberId`)용 1νšŒμ„± `launchUrl`을 λ°œκΈ‰ν•©λ‹ˆλ‹€(TTL 60초). 이 μ£Όμ†Œλ‘œ CMARKET 화면이 ERP μ‚¬μš©μžμ—κ²Œ 둜그인 없이 μ—΄λ¦½λ‹ˆλ‹€. μŠ€μ½”ν”„ `embed:launch`. - 응닡은 `launchUrl` ν•˜λ‚˜μž…λ‹ˆλ‹€. iframe `src`에 κ±Έκ±°λ‚˜ μƒˆ νƒ­μœΌλ‘œ μ—½λ‹ˆλ‹€. μ„€μΉ˜ν•  μŠ€ν¬λ¦½νŠΈλ„ SDK도 μ—†μŠ΅λ‹ˆλ‹€. - **iframe(ꢌμž₯)**: λ°œκΈ‰ μš”μ²­μ— `parentOrigin`을 ν•¨κ»˜ 보내면 등둝 μ™„λ£ŒΒ·μ·¨μ†ŒΒ·κ³΅κ³ μ„ νƒΒ·κ³΅κ³ λ°μ΄ν„°Β·μ„Έμ…˜λ§Œλ£Œλ₯Ό κ·Έ origin으둜 `postMessage` ν†΅μ§€ν•©λ‹ˆλ‹€. ν—ˆμš© origin을 λ¨Όμ € 등둝해야 ν•˜λ©°, 미등둝이면 이 μš”μ²­μ΄ 400μž…λ‹ˆλ‹€. λ‹€λ§Œ 개발 κΈ°κΈ°(`http://localhost:*`, `127.0.0.1`, `[::1]`)λŠ” 등둝 없이 ν—ˆμš©ν•˜λ―€λ‘œ 연동 착수 λ‹¨κ³„μ—μ„œ 별도 μš”μ²­μ΄ ν•„μš” μ—†μŠ΅λ‹ˆλ‹€. - `memberId` 검증은 **API ν‚€μ˜ λŒ€ν–‰ λ²”μœ„ 확인뿐**μž…λ‹ˆλ‹€(λ²”μœ„ 밖이면 403) β€” 같은 κΈ°κ΄€ λ‹΄λ‹ΉμžλŠ” μ „λΆ€ ν†΅κ³Όν•˜λ―€λ‘œ, λΈŒλΌμš°μ €κ°€ μ§€μ •ν•œ 값을 κ·ΈλŒ€λ‘œ λ„˜κΈ°λ©΄ λ™λ£Œ λͺ…μ˜λ‘œ 화면이 μ—΄λ¦½λ‹ˆλ‹€. - **곡고 데이터 톡지(`cmarket:bid-data`)**: 두 μžλ¦¬μ—μ„œ λ‚˜μ˜΅λ‹ˆλ‹€ β€” β‘  곡고등둝을 마친 직후(등둝 β†’ `cmarket:bid-data` β†’ `cmarket:success` μˆœμ„œ, 별도 λ²„νŠΌ λΆˆμš”) β‘‘ 곡고상세 ν™”λ©΄ 맨 μ•„λž˜μ˜ \"μˆ˜μ‹ ν•˜κΈ°\" λ²„νŠΌ. 본문은 `GET /v2/bids/{bidRef}` 응닡과 μ™„μ „νžˆ κ°™μ•„μ„œ, RESTλ₯Ό μ—°λ™ν•˜μ§€ μ•Šμ€ 기관도 μž„λ² λ“œλ§ŒμœΌλ‘œ 자체 λŒ€μž₯을 μ±„μ›λ‹ˆλ‹€. - **μƒˆ νƒ­**: `parentOrigin` 없이 λ°œκΈ‰ν•©λ‹ˆλ‹€ β€” origin 등둝이 ν•„μš” μ—†λŠ” λŒ€μ‹  톡지가 μ—†μ–΄ κ²°κ³ΌλŠ” 쑰회 API둜 ν™•μΈν•©λ‹ˆλ‹€. - ν—ˆμš© λͺ©λ‘ λ°– `screen`Β·`components`λŠ” 400μž…λ‹ˆλ‹€. - **ν™”λ©΄λ§ˆλ‹€ ν•„μš”ν•œ 값이 λ‹€λ¦…λ‹ˆλ‹€** β€” `bid-detail`Β·`payment`λŠ” `targetBidId` 없이 λ°œκΈ‰ν•˜λ©΄ 400μž…λ‹ˆλ‹€(μž„λ² λ“œ κ·Έλ£Ή μ„€λͺ…μ˜ μš”κ±΄ ν‘œ μ°Έμ‘°). μ•„λž˜ μ˜ˆμ‹œ 셋이 κ·ΈλŒ€λ‘œ λΆ™μ—¬ μ“Έ 수 μžˆλŠ” μ΅œμ†Œ μš”μ²­μž…λ‹ˆλ‹€.
78
- * @summary μž„λ² λ“œ launch λ°œκΈ‰
79
- * @param {EmbedLaunchRequestDto} embedLaunchRequestDto
80
- * @param {*} [options] Override http request option.
81
- * @throws {RequiredError}
82
- */
83
- createEmbedLaunch(embedLaunchRequestDto, options) {
84
- return __awaiter(this, void 0, void 0, function* () {
85
- var _a, _b, _c;
86
- const localVarAxiosArgs = yield localVarAxiosParamCreator.createEmbedLaunch(embedLaunchRequestDto, options);
87
- const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
88
- const localVarOperationServerBasePath = (_c = (_b = operationServerMap['EmbedApi.createEmbedLaunch']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
89
- return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
90
- });
91
- },
92
- };
93
- };
94
- /**
95
- * EmbedApi - factory interface
96
- */
97
- export const EmbedApiFactory = function (configuration, basePath, axios) {
98
- const localVarFp = EmbedApiFp(configuration);
99
- return {
100
- /**
101
- * λ°œμ£ΌκΈ°κ΄€ λ‹΄λ‹Ήμž(`memberId`)용 1νšŒμ„± `launchUrl`을 λ°œκΈ‰ν•©λ‹ˆλ‹€(TTL 60초). 이 μ£Όμ†Œλ‘œ CMARKET 화면이 ERP μ‚¬μš©μžμ—κ²Œ 둜그인 없이 μ—΄λ¦½λ‹ˆλ‹€. μŠ€μ½”ν”„ `embed:launch`. - 응닡은 `launchUrl` ν•˜λ‚˜μž…λ‹ˆλ‹€. iframe `src`에 κ±Έκ±°λ‚˜ μƒˆ νƒ­μœΌλ‘œ μ—½λ‹ˆλ‹€. μ„€μΉ˜ν•  μŠ€ν¬λ¦½νŠΈλ„ SDK도 μ—†μŠ΅λ‹ˆλ‹€. - **iframe(ꢌμž₯)**: λ°œκΈ‰ μš”μ²­μ— `parentOrigin`을 ν•¨κ»˜ 보내면 등둝 μ™„λ£ŒΒ·μ·¨μ†ŒΒ·κ³΅κ³ μ„ νƒΒ·κ³΅κ³ λ°μ΄ν„°Β·μ„Έμ…˜λ§Œλ£Œλ₯Ό κ·Έ origin으둜 `postMessage` ν†΅μ§€ν•©λ‹ˆλ‹€. ν—ˆμš© origin을 λ¨Όμ € 등둝해야 ν•˜λ©°, 미등둝이면 이 μš”μ²­μ΄ 400μž…λ‹ˆλ‹€. λ‹€λ§Œ 개발 κΈ°κΈ°(`http://localhost:*`, `127.0.0.1`, `[::1]`)λŠ” 등둝 없이 ν—ˆμš©ν•˜λ―€λ‘œ 연동 착수 λ‹¨κ³„μ—μ„œ 별도 μš”μ²­μ΄ ν•„μš” μ—†μŠ΅λ‹ˆλ‹€. - `memberId` 검증은 **API ν‚€μ˜ λŒ€ν–‰ λ²”μœ„ 확인뿐**μž…λ‹ˆλ‹€(λ²”μœ„ 밖이면 403) β€” 같은 κΈ°κ΄€ λ‹΄λ‹ΉμžλŠ” μ „λΆ€ ν†΅κ³Όν•˜λ―€λ‘œ, λΈŒλΌμš°μ €κ°€ μ§€μ •ν•œ 값을 κ·ΈλŒ€λ‘œ λ„˜κΈ°λ©΄ λ™λ£Œ λͺ…μ˜λ‘œ 화면이 μ—΄λ¦½λ‹ˆλ‹€. - **곡고 데이터 톡지(`cmarket:bid-data`)**: 두 μžλ¦¬μ—μ„œ λ‚˜μ˜΅λ‹ˆλ‹€ β€” β‘  곡고등둝을 마친 직후(등둝 β†’ `cmarket:bid-data` β†’ `cmarket:success` μˆœμ„œ, 별도 λ²„νŠΌ λΆˆμš”) β‘‘ 곡고상세 ν™”λ©΄ 맨 μ•„λž˜μ˜ \"μˆ˜μ‹ ν•˜κΈ°\" λ²„νŠΌ. 본문은 `GET /v2/bids/{bidRef}` 응닡과 μ™„μ „νžˆ κ°™μ•„μ„œ, RESTλ₯Ό μ—°λ™ν•˜μ§€ μ•Šμ€ 기관도 μž„λ² λ“œλ§ŒμœΌλ‘œ 자체 λŒ€μž₯을 μ±„μ›λ‹ˆλ‹€. - **μƒˆ νƒ­**: `parentOrigin` 없이 λ°œκΈ‰ν•©λ‹ˆλ‹€ β€” origin 등둝이 ν•„μš” μ—†λŠ” λŒ€μ‹  톡지가 μ—†μ–΄ κ²°κ³ΌλŠ” 쑰회 API둜 ν™•μΈν•©λ‹ˆλ‹€. - ν—ˆμš© λͺ©λ‘ λ°– `screen`Β·`components`λŠ” 400μž…λ‹ˆλ‹€. - **ν™”λ©΄λ§ˆλ‹€ ν•„μš”ν•œ 값이 λ‹€λ¦…λ‹ˆλ‹€** β€” `bid-detail`Β·`payment`λŠ” `targetBidId` 없이 λ°œκΈ‰ν•˜λ©΄ 400μž…λ‹ˆλ‹€(μž„λ² λ“œ κ·Έλ£Ή μ„€λͺ…μ˜ μš”κ±΄ ν‘œ μ°Έμ‘°). μ•„λž˜ μ˜ˆμ‹œ 셋이 κ·ΈλŒ€λ‘œ λΆ™μ—¬ μ“Έ 수 μžˆλŠ” μ΅œμ†Œ μš”μ²­μž…λ‹ˆλ‹€.
102
- * @summary μž„λ² λ“œ launch λ°œκΈ‰
103
- * @param {EmbedLaunchRequestDto} embedLaunchRequestDto
104
- * @param {*} [options] Override http request option.
105
- * @throws {RequiredError}
106
- */
107
- createEmbedLaunch(embedLaunchRequestDto, options) {
108
- return localVarFp.createEmbedLaunch(embedLaunchRequestDto, options).then((request) => request(axios, basePath));
109
- },
110
- };
111
- };
112
- /**
113
- * EmbedApi - object-oriented interface
114
- */
115
- export class EmbedApi extends BaseAPI {
116
- /**
117
- * λ°œμ£ΌκΈ°κ΄€ λ‹΄λ‹Ήμž(`memberId`)용 1νšŒμ„± `launchUrl`을 λ°œκΈ‰ν•©λ‹ˆλ‹€(TTL 60초). 이 μ£Όμ†Œλ‘œ CMARKET 화면이 ERP μ‚¬μš©μžμ—κ²Œ 둜그인 없이 μ—΄λ¦½λ‹ˆλ‹€. μŠ€μ½”ν”„ `embed:launch`. - 응닡은 `launchUrl` ν•˜λ‚˜μž…λ‹ˆλ‹€. iframe `src`에 κ±Έκ±°λ‚˜ μƒˆ νƒ­μœΌλ‘œ μ—½λ‹ˆλ‹€. μ„€μΉ˜ν•  μŠ€ν¬λ¦½νŠΈλ„ SDK도 μ—†μŠ΅λ‹ˆλ‹€. - **iframe(ꢌμž₯)**: λ°œκΈ‰ μš”μ²­μ— `parentOrigin`을 ν•¨κ»˜ 보내면 등둝 μ™„λ£ŒΒ·μ·¨μ†ŒΒ·κ³΅κ³ μ„ νƒΒ·κ³΅κ³ λ°μ΄ν„°Β·μ„Έμ…˜λ§Œλ£Œλ₯Ό κ·Έ origin으둜 `postMessage` ν†΅μ§€ν•©λ‹ˆλ‹€. ν—ˆμš© origin을 λ¨Όμ € 등둝해야 ν•˜λ©°, 미등둝이면 이 μš”μ²­μ΄ 400μž…λ‹ˆλ‹€. λ‹€λ§Œ 개발 κΈ°κΈ°(`http://localhost:*`, `127.0.0.1`, `[::1]`)λŠ” 등둝 없이 ν—ˆμš©ν•˜λ―€λ‘œ 연동 착수 λ‹¨κ³„μ—μ„œ 별도 μš”μ²­μ΄ ν•„μš” μ—†μŠ΅λ‹ˆλ‹€. - `memberId` 검증은 **API ν‚€μ˜ λŒ€ν–‰ λ²”μœ„ 확인뿐**μž…λ‹ˆλ‹€(λ²”μœ„ 밖이면 403) β€” 같은 κΈ°κ΄€ λ‹΄λ‹ΉμžλŠ” μ „λΆ€ ν†΅κ³Όν•˜λ―€λ‘œ, λΈŒλΌμš°μ €κ°€ μ§€μ •ν•œ 값을 κ·ΈλŒ€λ‘œ λ„˜κΈ°λ©΄ λ™λ£Œ λͺ…μ˜λ‘œ 화면이 μ—΄λ¦½λ‹ˆλ‹€. - **곡고 데이터 톡지(`cmarket:bid-data`)**: 두 μžλ¦¬μ—μ„œ λ‚˜μ˜΅λ‹ˆλ‹€ β€” β‘  곡고등둝을 마친 직후(등둝 β†’ `cmarket:bid-data` β†’ `cmarket:success` μˆœμ„œ, 별도 λ²„νŠΌ λΆˆμš”) β‘‘ 곡고상세 ν™”λ©΄ 맨 μ•„λž˜μ˜ \"μˆ˜μ‹ ν•˜κΈ°\" λ²„νŠΌ. 본문은 `GET /v2/bids/{bidRef}` 응닡과 μ™„μ „νžˆ κ°™μ•„μ„œ, RESTλ₯Ό μ—°λ™ν•˜μ§€ μ•Šμ€ 기관도 μž„λ² λ“œλ§ŒμœΌλ‘œ 자체 λŒ€μž₯을 μ±„μ›λ‹ˆλ‹€. - **μƒˆ νƒ­**: `parentOrigin` 없이 λ°œκΈ‰ν•©λ‹ˆλ‹€ β€” origin 등둝이 ν•„μš” μ—†λŠ” λŒ€μ‹  톡지가 μ—†μ–΄ κ²°κ³ΌλŠ” 쑰회 API둜 ν™•μΈν•©λ‹ˆλ‹€. - ν—ˆμš© λͺ©λ‘ λ°– `screen`Β·`components`λŠ” 400μž…λ‹ˆλ‹€. - **ν™”λ©΄λ§ˆλ‹€ ν•„μš”ν•œ 값이 λ‹€λ¦…λ‹ˆλ‹€** β€” `bid-detail`Β·`payment`λŠ” `targetBidId` 없이 λ°œκΈ‰ν•˜λ©΄ 400μž…λ‹ˆλ‹€(μž„λ² λ“œ κ·Έλ£Ή μ„€λͺ…μ˜ μš”κ±΄ ν‘œ μ°Έμ‘°). μ•„λž˜ μ˜ˆμ‹œ 셋이 κ·ΈλŒ€λ‘œ λΆ™μ—¬ μ“Έ 수 μžˆλŠ” μ΅œμ†Œ μš”μ²­μž…λ‹ˆλ‹€.
118
- * @summary μž„λ² λ“œ launch λ°œκΈ‰
119
- * @param {EmbedLaunchRequestDto} embedLaunchRequestDto
120
- * @param {*} [options] Override http request option.
121
- * @throws {RequiredError}
122
- */
123
- createEmbedLaunch(embedLaunchRequestDto, options) {
124
- return EmbedApiFp(this.configuration).createEmbedLaunch(embedLaunchRequestDto, options).then((request) => request(this.axios, this.basePath));
125
- }
126
- }
@@ -1,25 +0,0 @@
1
- /**
2
- * CMARKET V6 Partner API
3
- * μ™ΈλΆ€ 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\": … }`μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `data`κ°€ 배열이고 `meta`κ°€ 항상 ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€** β€” `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 λ¦¬μ†ŒμŠ€ μ‘λ‹΅μ—λŠ” `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 ν™•μž₯, κ°’ μ—†μŒ). - `code`: μ‘°λ‹¬ν”Œλž«νΌμ΄ μš”μ²­μ„ κ±°λΆ€ν•œ **μ‚¬μœ  μ½”λ“œ**(`…/upstream-*` 응닡에 ν•¨κ»˜ μ˜΅λ‹ˆλ‹€). `type`은 μƒνƒœ μˆ˜μ€€μ΄κ³  `detail`은 κ³ μ • 문ꡬ라, 무엇을 고쳐야 ν•˜λŠ”μ§€λŠ” 이 값이 μ•Œλ € μ€λ‹ˆλ‹€ β€” 예: `BID_INVALID_BID_DATE_RANGE`(마감이 μ‹œμž‘λ³΄λ‹€ 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 μ‘°λ‹¬λ²ˆν˜Έμ˜ 곡고가 μ§„ν–‰ 쀑). μ•ˆμ • μ‹λ³„μžμ΄λ―€λ‘œ λ¬Έμžμ—΄λ‘œ 뢄기해도 λ©λ‹ˆλ‹€. `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` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
4
- *
5
- * The version of the OpenAPI document: 48.0.0
6
- * Contact: semo.io.kr@gmail.com
7
- *
8
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
- * https://openapi-generator.tech
10
- * Do not edit the class manually.
11
- */
12
- /**
13
- * 낙찰방법(κ³΅κ°œκ°’). μ•„λž˜ 7μ’… λ°–μ˜ λ°©λ²•μœΌλ‘œ μ§„ν–‰λœ 곡고이면 null.
14
- */
15
- export declare const AwardMethodPublic: {
16
- readonly LowestPrice: "LOWEST_PRICE";
17
- readonly AppropriatePrice: "APPROPRIATE_PRICE";
18
- readonly HighestPrice: "HIGHEST_PRICE";
19
- readonly MaxQuantity: "MAX_QUANTITY";
20
- readonly Negotiation: "NEGOTIATION";
21
- readonly LimitedLowest: "LIMITED_LOWEST";
22
- readonly NegotiationAuto: "NEGOTIATION_AUTO";
23
- readonly QualificationReview: "QUALIFICATION_REVIEW";
24
- };
25
- export type AwardMethodPublic = typeof AwardMethodPublic[keyof typeof AwardMethodPublic];
@@ -1,26 +0,0 @@
1
- /* tslint:disable */
2
- /* eslint-disable */
3
- /**
4
- * CMARKET V6 Partner API
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\": … }`μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `data`κ°€ 배열이고 `meta`κ°€ 항상 ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€** β€” `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 λ¦¬μ†ŒμŠ€ μ‘λ‹΅μ—λŠ” `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 ν™•μž₯, κ°’ μ—†μŒ). - `code`: μ‘°λ‹¬ν”Œλž«νΌμ΄ μš”μ²­μ„ κ±°λΆ€ν•œ **μ‚¬μœ  μ½”λ“œ**(`…/upstream-*` 응닡에 ν•¨κ»˜ μ˜΅λ‹ˆλ‹€). `type`은 μƒνƒœ μˆ˜μ€€μ΄κ³  `detail`은 κ³ μ • 문ꡬ라, 무엇을 고쳐야 ν•˜λŠ”μ§€λŠ” 이 값이 μ•Œλ € μ€λ‹ˆλ‹€ β€” 예: `BID_INVALID_BID_DATE_RANGE`(마감이 μ‹œμž‘λ³΄λ‹€ 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 μ‘°λ‹¬λ²ˆν˜Έμ˜ 곡고가 μ§„ν–‰ 쀑). μ•ˆμ • μ‹λ³„μžμ΄λ―€λ‘œ λ¬Έμžμ—΄λ‘œ 뢄기해도 λ©λ‹ˆλ‹€. `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
- *
7
- * The version of the OpenAPI document: 48.0.0
8
- * Contact: semo.io.kr@gmail.com
9
- *
10
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
- * https://openapi-generator.tech
12
- * Do not edit the class manually.
13
- */
14
- /**
15
- * 낙찰방법(κ³΅κ°œκ°’). μ•„λž˜ 7μ’… λ°–μ˜ λ°©λ²•μœΌλ‘œ μ§„ν–‰λœ 곡고이면 null.
16
- */
17
- export const AwardMethodPublic = {
18
- LowestPrice: 'LOWEST_PRICE',
19
- AppropriatePrice: 'APPROPRIATE_PRICE',
20
- HighestPrice: 'HIGHEST_PRICE',
21
- MaxQuantity: 'MAX_QUANTITY',
22
- Negotiation: 'NEGOTIATION',
23
- LimitedLowest: 'LIMITED_LOWEST',
24
- NegotiationAuto: 'NEGOTIATION_AUTO',
25
- QualificationReview: 'QUALIFICATION_REVIEW',
26
- };
@@ -1,25 +0,0 @@
1
- /**
2
- * CMARKET V6 Partner API
3
- * μ™ΈλΆ€ 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\": … }`μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `data`κ°€ 배열이고 `meta`κ°€ 항상 ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€** β€” `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 λ¦¬μ†ŒμŠ€ μ‘λ‹΅μ—λŠ” `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 ν™•μž₯, κ°’ μ—†μŒ). - `code`: μ‘°λ‹¬ν”Œλž«νΌμ΄ μš”μ²­μ„ κ±°λΆ€ν•œ **μ‚¬μœ  μ½”λ“œ**(`…/upstream-*` 응닡에 ν•¨κ»˜ μ˜΅λ‹ˆλ‹€). `type`은 μƒνƒœ μˆ˜μ€€μ΄κ³  `detail`은 κ³ μ • 문ꡬ라, 무엇을 고쳐야 ν•˜λŠ”μ§€λŠ” 이 값이 μ•Œλ € μ€λ‹ˆλ‹€ β€” 예: `BID_INVALID_BID_DATE_RANGE`(마감이 μ‹œμž‘λ³΄λ‹€ 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 μ‘°λ‹¬λ²ˆν˜Έμ˜ 곡고가 μ§„ν–‰ 쀑). μ•ˆμ • μ‹λ³„μžμ΄λ―€λ‘œ λ¬Έμžμ—΄λ‘œ 뢄기해도 λ©λ‹ˆλ‹€. `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` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
4
- *
5
- * The version of the OpenAPI document: 48.0.0
6
- * Contact: semo.io.kr@gmail.com
7
- *
8
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
- * https://openapi-generator.tech
10
- * Do not edit the class manually.
11
- */
12
- export interface AwardRevertedV2ResponseDto {
13
- /**
14
- * 곡고 IDμž…λ‹ˆλ‹€(μš”μ²­ν•œ bidIdλ₯Ό κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€).
15
- */
16
- 'bidId': string;
17
- /**
18
- * 되돌린 λ’€ 곡고 μƒνƒœμž…λ‹ˆλ‹€.
19
- */
20
- 'status': AwardRevertedV2ResponseDtoStatusEnum;
21
- }
22
- export declare const AwardRevertedV2ResponseDtoStatusEnum: {
23
- readonly PendingAward: "PENDING_AWARD";
24
- };
25
- export type AwardRevertedV2ResponseDtoStatusEnum = typeof AwardRevertedV2ResponseDtoStatusEnum[keyof typeof AwardRevertedV2ResponseDtoStatusEnum];
@@ -1,16 +0,0 @@
1
- /* tslint:disable */
2
- /* eslint-disable */
3
- /**
4
- * CMARKET V6 Partner API
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\": … }`μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `data`κ°€ 배열이고 `meta`κ°€ 항상 ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€** β€” `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 λ¦¬μ†ŒμŠ€ μ‘λ‹΅μ—λŠ” `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 ν™•μž₯, κ°’ μ—†μŒ). - `code`: μ‘°λ‹¬ν”Œλž«νΌμ΄ μš”μ²­μ„ κ±°λΆ€ν•œ **μ‚¬μœ  μ½”λ“œ**(`…/upstream-*` 응닡에 ν•¨κ»˜ μ˜΅λ‹ˆλ‹€). `type`은 μƒνƒœ μˆ˜μ€€μ΄κ³  `detail`은 κ³ μ • 문ꡬ라, 무엇을 고쳐야 ν•˜λŠ”μ§€λŠ” 이 값이 μ•Œλ € μ€λ‹ˆλ‹€ β€” 예: `BID_INVALID_BID_DATE_RANGE`(마감이 μ‹œμž‘λ³΄λ‹€ 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 μ‘°λ‹¬λ²ˆν˜Έμ˜ 곡고가 μ§„ν–‰ 쀑). μ•ˆμ • μ‹λ³„μžμ΄λ―€λ‘œ λ¬Έμžμ—΄λ‘œ 뢄기해도 λ©λ‹ˆλ‹€. `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
- *
7
- * The version of the OpenAPI document: 48.0.0
8
- * Contact: semo.io.kr@gmail.com
9
- *
10
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
- * https://openapi-generator.tech
12
- * Do not edit the class manually.
13
- */
14
- export const AwardRevertedV2ResponseDtoStatusEnum = {
15
- PendingAward: 'PENDING_AWARD',
16
- };
@@ -1,29 +0,0 @@
1
- /**
2
- * CMARKET V6 Partner API
3
- * μ™ΈλΆ€ 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\": … }`μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `data`κ°€ 배열이고 `meta`κ°€ 항상 ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€** β€” `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 λ¦¬μ†ŒμŠ€ μ‘λ‹΅μ—λŠ” `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 ν™•μž₯, κ°’ μ—†μŒ). - `code`: μ‘°λ‹¬ν”Œλž«νΌμ΄ μš”μ²­μ„ κ±°λΆ€ν•œ **μ‚¬μœ  μ½”λ“œ**(`…/upstream-*` 응닡에 ν•¨κ»˜ μ˜΅λ‹ˆλ‹€). `type`은 μƒνƒœ μˆ˜μ€€μ΄κ³  `detail`은 κ³ μ • 문ꡬ라, 무엇을 고쳐야 ν•˜λŠ”μ§€λŠ” 이 값이 μ•Œλ € μ€λ‹ˆλ‹€ β€” 예: `BID_INVALID_BID_DATE_RANGE`(마감이 μ‹œμž‘λ³΄λ‹€ 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 μ‘°λ‹¬λ²ˆν˜Έμ˜ 곡고가 μ§„ν–‰ 쀑). μ•ˆμ • μ‹λ³„μžμ΄λ―€λ‘œ λ¬Έμžμ—΄λ‘œ 뢄기해도 λ©λ‹ˆλ‹€. `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` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
4
- *
5
- * The version of the OpenAPI document: 48.0.0
6
- * Contact: semo.io.kr@gmail.com
7
- *
8
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
- * https://openapi-generator.tech
10
- * Do not edit the class manually.
11
- */
12
- export interface BidAcceptanceDto {
13
- /**
14
- * λ‚™μ°°μž λ‚©ν’ˆ(결과확인) 보고 μ—¬λΆ€.
15
- */
16
- 'delivered': boolean;
17
- /**
18
- * λ°œμ£ΌκΈ°κ΄€ κ²€μˆ˜ 확인 μ—¬λΆ€.
19
- */
20
- 'confirmed': boolean;
21
- /**
22
- * κ²€μˆ˜ 확인 μ‹œκ°(ISO 8601). λ―Έκ²€μˆ˜λ©΄ null.
23
- */
24
- 'confirmedAt': string | null;
25
- /**
26
- * 계약(μŠΉλ‚™/κ²€μˆ˜) μ™„λ£Œ μ‹œκ°(ISO 8601). λ―Έμ™„λ£Œλ©΄ null.
27
- */
28
- 'contractCompletedAt': string | null;
29
- }
@@ -1,14 +0,0 @@
1
- /* tslint:disable */
2
- /* eslint-disable */
3
- /**
4
- * CMARKET V6 Partner API
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\": … }`μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `data`κ°€ 배열이고 `meta`κ°€ 항상 ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€** β€” `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 λ¦¬μ†ŒμŠ€ μ‘λ‹΅μ—λŠ” `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 ν™•μž₯, κ°’ μ—†μŒ). - `code`: μ‘°λ‹¬ν”Œλž«νΌμ΄ μš”μ²­μ„ κ±°λΆ€ν•œ **μ‚¬μœ  μ½”λ“œ**(`…/upstream-*` 응닡에 ν•¨κ»˜ μ˜΅λ‹ˆλ‹€). `type`은 μƒνƒœ μˆ˜μ€€μ΄κ³  `detail`은 κ³ μ • 문ꡬ라, 무엇을 고쳐야 ν•˜λŠ”μ§€λŠ” 이 값이 μ•Œλ € μ€λ‹ˆλ‹€ β€” 예: `BID_INVALID_BID_DATE_RANGE`(마감이 μ‹œμž‘λ³΄λ‹€ 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 μ‘°λ‹¬λ²ˆν˜Έμ˜ 곡고가 μ§„ν–‰ 쀑). μ•ˆμ • μ‹λ³„μžμ΄λ―€λ‘œ λ¬Έμžμ—΄λ‘œ 뢄기해도 λ©λ‹ˆλ‹€. `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
- *
7
- * The version of the OpenAPI document: 48.0.0
8
- * Contact: semo.io.kr@gmail.com
9
- *
10
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
- * https://openapi-generator.tech
12
- * Do not edit the class manually.
13
- */
14
- export {};
@@ -1,29 +0,0 @@
1
- /**
2
- * CMARKET V6 Partner API
3
- * μ™ΈλΆ€ 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\": … }`μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `data`κ°€ 배열이고 `meta`κ°€ 항상 ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€** β€” `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 λ¦¬μ†ŒμŠ€ μ‘λ‹΅μ—λŠ” `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 ν™•μž₯, κ°’ μ—†μŒ). - `code`: μ‘°λ‹¬ν”Œλž«νΌμ΄ μš”μ²­μ„ κ±°λΆ€ν•œ **μ‚¬μœ  μ½”λ“œ**(`…/upstream-*` 응닡에 ν•¨κ»˜ μ˜΅λ‹ˆλ‹€). `type`은 μƒνƒœ μˆ˜μ€€μ΄κ³  `detail`은 κ³ μ • 문ꡬ라, 무엇을 고쳐야 ν•˜λŠ”μ§€λŠ” 이 값이 μ•Œλ € μ€λ‹ˆλ‹€ β€” 예: `BID_INVALID_BID_DATE_RANGE`(마감이 μ‹œμž‘λ³΄λ‹€ 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 μ‘°λ‹¬λ²ˆν˜Έμ˜ 곡고가 μ§„ν–‰ 쀑). μ•ˆμ • μ‹λ³„μžμ΄λ―€λ‘œ λ¬Έμžμ—΄λ‘œ 뢄기해도 λ©λ‹ˆλ‹€. `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` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
4
- *
5
- * The version of the OpenAPI document: 48.0.0
6
- * Contact: semo.io.kr@gmail.com
7
- *
8
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
- * https://openapi-generator.tech
10
- * Do not edit the class manually.
11
- */
12
- export interface BidAttachmentDto {
13
- /**
14
- * 파일 ν‚€(32자).
15
- */
16
- 'fileKey': string;
17
- /**
18
- * 원본 파일λͺ….
19
- */
20
- 'fileName': string;
21
- /**
22
- * 파일 크기(λ°”μ΄νŠΈ). 미상이면 null.
23
- */
24
- 'fileSize': number | null;
25
- /**
26
- * λ‹€μš΄λ‘œλ“œ μ£Όμ†Œ. μš”μ²­ μ‹œμ μ— μ„œλͺ…ν•œ **1μ‹œκ°„μ§œλ¦¬** μ£Όμ†Œμ΄λ―€λ‘œ μ €μž₯ν•˜μ§€ 말고 맀번 이 μ‘λ‹΅μ—μ„œ λ‹€μ‹œ λ°›μœΌμ„Έμš”. λ°œκΈ‰ μ‹€νŒ¨ μ‹œ null.
27
- */
28
- 'downloadUrl': string | null;
29
- }
@@ -1,41 +0,0 @@
1
- /**
2
- * CMARKET V6 Partner API
3
- * μ™ΈλΆ€ 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\": … }`μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `data`κ°€ 배열이고 `meta`κ°€ 항상 ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€** β€” `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 λ¦¬μ†ŒμŠ€ μ‘λ‹΅μ—λŠ” `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 ν™•μž₯, κ°’ μ—†μŒ). - `code`: μ‘°λ‹¬ν”Œλž«νΌμ΄ μš”μ²­μ„ κ±°λΆ€ν•œ **μ‚¬μœ  μ½”λ“œ**(`…/upstream-*` 응닡에 ν•¨κ»˜ μ˜΅λ‹ˆλ‹€). `type`은 μƒνƒœ μˆ˜μ€€μ΄κ³  `detail`은 κ³ μ • 문ꡬ라, 무엇을 고쳐야 ν•˜λŠ”μ§€λŠ” 이 값이 μ•Œλ € μ€λ‹ˆλ‹€ β€” 예: `BID_INVALID_BID_DATE_RANGE`(마감이 μ‹œμž‘λ³΄λ‹€ 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 μ‘°λ‹¬λ²ˆν˜Έμ˜ 곡고가 μ§„ν–‰ 쀑). μ•ˆμ • μ‹λ³„μžμ΄λ―€λ‘œ λ¬Έμžμ—΄λ‘œ 뢄기해도 λ©λ‹ˆλ‹€. `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` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
4
- *
5
- * The version of the OpenAPI document: 48.0.0
6
- * Contact: semo.io.kr@gmail.com
7
- *
8
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
- * https://openapi-generator.tech
10
- * Do not edit the class manually.
11
- */
12
- export interface BidAValuesDto {
13
- /**
14
- * A1 κ΅­λ―Όμ—°κΈˆ.
15
- */
16
- 'nationalPension': number;
17
- /**
18
- * A2 κ±΄κ°•λ³΄ν—˜.
19
- */
20
- 'healthInsurance': number;
21
- /**
22
- * A3 ν‡΄μ§κ³΅μ œ.
23
- */
24
- 'retirementMutualAid': number;
25
- /**
26
- * A4 노인μž₯κΈ°μš”μ–‘.
27
- */
28
- 'longTermCare': number;
29
- /**
30
- * A5 μ‚°μ—…μ•ˆμ „λ³΄κ±΄κ΄€λ¦¬λΉ„.
31
- */
32
- 'industrialSafety': number;
33
- /**
34
- * A6 μ•ˆμ „κ΄€λ¦¬λΉ„.
35
- */
36
- 'safetyManagement': number;
37
- /**
38
- * A7 ν’ˆμ§ˆκ΄€λ¦¬λΉ„.
39
- */
40
- 'qualityManagement': number;
41
- }
@@ -1,14 +0,0 @@
1
- /* tslint:disable */
2
- /* eslint-disable */
3
- /**
4
- * CMARKET V6 Partner API
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\": … }`μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `data`κ°€ 배열이고 `meta`κ°€ 항상 ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€** β€” `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 λ¦¬μ†ŒμŠ€ μ‘λ‹΅μ—λŠ” `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 ν™•μž₯, κ°’ μ—†μŒ). - `code`: μ‘°λ‹¬ν”Œλž«νΌμ΄ μš”μ²­μ„ κ±°λΆ€ν•œ **μ‚¬μœ  μ½”λ“œ**(`…/upstream-*` 응닡에 ν•¨κ»˜ μ˜΅λ‹ˆλ‹€). `type`은 μƒνƒœ μˆ˜μ€€μ΄κ³  `detail`은 κ³ μ • 문ꡬ라, 무엇을 고쳐야 ν•˜λŠ”μ§€λŠ” 이 값이 μ•Œλ € μ€λ‹ˆλ‹€ β€” 예: `BID_INVALID_BID_DATE_RANGE`(마감이 μ‹œμž‘λ³΄λ‹€ 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 μ‘°λ‹¬λ²ˆν˜Έμ˜ 곡고가 μ§„ν–‰ 쀑). μ•ˆμ • μ‹λ³„μžμ΄λ―€λ‘œ λ¬Έμžμ—΄λ‘œ 뢄기해도 λ©λ‹ˆλ‹€. `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
- *
7
- * The version of the OpenAPI document: 48.0.0
8
- * Contact: semo.io.kr@gmail.com
9
- *
10
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
- * https://openapi-generator.tech
12
- * Do not edit the class manually.
13
- */
14
- export {};
@@ -1,26 +0,0 @@
1
- /**
2
- * CMARKET V6 Partner API
3
- * μ™ΈλΆ€ 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\": … }`μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `data`κ°€ 배열이고 `meta`κ°€ 항상 ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€** β€” `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 λ¦¬μ†ŒμŠ€ μ‘λ‹΅μ—λŠ” `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 ν™•μž₯, κ°’ μ—†μŒ). - `code`: μ‘°λ‹¬ν”Œλž«νΌμ΄ μš”μ²­μ„ κ±°λΆ€ν•œ **μ‚¬μœ  μ½”λ“œ**(`…/upstream-*` 응닡에 ν•¨κ»˜ μ˜΅λ‹ˆλ‹€). `type`은 μƒνƒœ μˆ˜μ€€μ΄κ³  `detail`은 κ³ μ • 문ꡬ라, 무엇을 고쳐야 ν•˜λŠ”μ§€λŠ” 이 값이 μ•Œλ € μ€λ‹ˆλ‹€ β€” 예: `BID_INVALID_BID_DATE_RANGE`(마감이 μ‹œμž‘λ³΄λ‹€ 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 μ‘°λ‹¬λ²ˆν˜Έμ˜ 곡고가 μ§„ν–‰ 쀑). μ•ˆμ • μ‹λ³„μžμ΄λ―€λ‘œ λ¬Έμžμ—΄λ‘œ 뢄기해도 λ©λ‹ˆλ‹€. `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` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
4
- *
5
- * The version of the OpenAPI document: 48.0.0
6
- * Contact: semo.io.kr@gmail.com
7
- *
8
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
- * https://openapi-generator.tech
10
- * Do not edit the class manually.
11
- */
12
- import type { PreliminaryPriceRegionPublic } from './preliminary-price-region-public';
13
- export interface BidAwardMethodDetailDto {
14
- /**
15
- * λ‚™μ°°ν•˜ν•œμœ¨(%). 미섀정이면 null.
16
- */
17
- 'lowestBidPercent': number | null;
18
- /**
19
- * μ˜ˆλΉ„κ°€κ²© μ„ νƒλ²ˆν˜Έ 개수. 미섀정이면 null.
20
- */
21
- 'preliminaryPriceCount': number | null;
22
- /**
23
- * μ˜ˆλΉ„κ°€κ²© λ²”μœ„(κ³΅κ°œκ°’). 미섀정이면 null.
24
- */
25
- 'preliminaryPriceRegion': PreliminaryPriceRegionPublic | null;
26
- }
@@ -1,14 +0,0 @@
1
- /* tslint:disable */
2
- /* eslint-disable */
3
- /**
4
- * CMARKET V6 Partner API
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\": … }`μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `data`κ°€ 배열이고 `meta`κ°€ 항상 ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€** β€” `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 λ¦¬μ†ŒμŠ€ μ‘λ‹΅μ—λŠ” `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 ν™•μž₯, κ°’ μ—†μŒ). - `code`: μ‘°λ‹¬ν”Œλž«νΌμ΄ μš”μ²­μ„ κ±°λΆ€ν•œ **μ‚¬μœ  μ½”λ“œ**(`…/upstream-*` 응닡에 ν•¨κ»˜ μ˜΅λ‹ˆλ‹€). `type`은 μƒνƒœ μˆ˜μ€€μ΄κ³  `detail`은 κ³ μ • 문ꡬ라, 무엇을 고쳐야 ν•˜λŠ”μ§€λŠ” 이 값이 μ•Œλ € μ€λ‹ˆλ‹€ β€” 예: `BID_INVALID_BID_DATE_RANGE`(마감이 μ‹œμž‘λ³΄λ‹€ 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 μ‘°λ‹¬λ²ˆν˜Έμ˜ 곡고가 μ§„ν–‰ 쀑). μ•ˆμ • μ‹λ³„μžμ΄λ―€λ‘œ λ¬Έμžμ—΄λ‘œ 뢄기해도 λ©λ‹ˆλ‹€. `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
- *
7
- * The version of the OpenAPI document: 48.0.0
8
- * Contact: semo.io.kr@gmail.com
9
- *
10
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
- * https://openapi-generator.tech
12
- * Do not edit the class manually.
13
- */
14
- export {};
@@ -1,17 +0,0 @@
1
- /**
2
- * CMARKET V6 Partner API
3
- * μ™ΈλΆ€ 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\": … }`μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `data`κ°€ 배열이고 `meta`κ°€ 항상 ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€** β€” `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 λ¦¬μ†ŒμŠ€ μ‘λ‹΅μ—λŠ” `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 ν™•μž₯, κ°’ μ—†μŒ). - `code`: μ‘°λ‹¬ν”Œλž«νΌμ΄ μš”μ²­μ„ κ±°λΆ€ν•œ **μ‚¬μœ  μ½”λ“œ**(`…/upstream-*` 응닡에 ν•¨κ»˜ μ˜΅λ‹ˆλ‹€). `type`은 μƒνƒœ μˆ˜μ€€μ΄κ³  `detail`은 κ³ μ • 문ꡬ라, 무엇을 고쳐야 ν•˜λŠ”μ§€λŠ” 이 값이 μ•Œλ € μ€λ‹ˆλ‹€ β€” 예: `BID_INVALID_BID_DATE_RANGE`(마감이 μ‹œμž‘λ³΄λ‹€ 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 μ‘°λ‹¬λ²ˆν˜Έμ˜ 곡고가 μ§„ν–‰ 쀑). μ•ˆμ • μ‹λ³„μžμ΄λ―€λ‘œ λ¬Έμžμ—΄λ‘œ 뢄기해도 λ©λ‹ˆλ‹€. `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` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
4
- *
5
- * The version of the OpenAPI document: 48.0.0
6
- * Contact: semo.io.kr@gmail.com
7
- *
8
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
- * https://openapi-generator.tech
10
- * Do not edit the class manually.
11
- */
12
- export interface BidCancellationDto {
13
- /**
14
- * μ·¨μ†Œ μ‚¬μœ . λ°œμ£ΌκΈ°κ΄€μ΄ 남기지 μ•Šμ•˜μœΌλ©΄ null.
15
- */
16
- 'reason': string | null;
17
- }
@@ -1,14 +0,0 @@
1
- /* tslint:disable */
2
- /* eslint-disable */
3
- /**
4
- * CMARKET V6 Partner API
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\": … }`μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `data`κ°€ 배열이고 `meta`κ°€ 항상 ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€** β€” `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 λ¦¬μ†ŒμŠ€ μ‘λ‹΅μ—λŠ” `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 ν™•μž₯, κ°’ μ—†μŒ). - `code`: μ‘°λ‹¬ν”Œλž«νΌμ΄ μš”μ²­μ„ κ±°λΆ€ν•œ **μ‚¬μœ  μ½”λ“œ**(`…/upstream-*` 응닡에 ν•¨κ»˜ μ˜΅λ‹ˆλ‹€). `type`은 μƒνƒœ μˆ˜μ€€μ΄κ³  `detail`은 κ³ μ • 문ꡬ라, 무엇을 고쳐야 ν•˜λŠ”μ§€λŠ” 이 값이 μ•Œλ € μ€λ‹ˆλ‹€ β€” 예: `BID_INVALID_BID_DATE_RANGE`(마감이 μ‹œμž‘λ³΄λ‹€ 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 μ‘°λ‹¬λ²ˆν˜Έμ˜ 곡고가 μ§„ν–‰ 쀑). μ•ˆμ • μ‹λ³„μžμ΄λ―€λ‘œ λ¬Έμžμ—΄λ‘œ 뢄기해도 λ©λ‹ˆλ‹€. `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
- *
7
- * The version of the OpenAPI document: 48.0.0
8
- * Contact: semo.io.kr@gmail.com
9
- *
10
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
- * https://openapi-generator.tech
12
- * Do not edit the class manually.
13
- */
14
- export {};