@cmarket/partner-sdk 49.1.0 → 49.2.1
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.
- package/README.md +50 -4
- package/api/embed-api.ts +133 -0
- package/api/oauth-api.ts +2 -2
- package/api/partner-api-api.ts +2 -2
- package/api/products-api.ts +2 -2
- package/api/well-known-api.ts +2 -2
- package/api.ts +3 -2
- package/base.ts +2 -2
- package/common.ts +2 -2
- package/configuration.ts +2 -2
- package/dist/api/embed-api.d.ts +68 -0
- package/dist/api/embed-api.js +133 -0
- package/dist/api/oauth-api.d.ts +2 -2
- package/dist/api/oauth-api.js +2 -2
- package/dist/api/partner-api-api.d.ts +2 -2
- package/dist/api/partner-api-api.js +2 -2
- package/dist/api/products-api.d.ts +2 -2
- package/dist/api/products-api.js +2 -2
- package/dist/api/well-known-api.d.ts +2 -2
- package/dist/api/well-known-api.js +2 -2
- package/dist/api.d.ts +3 -2
- package/dist/api.js +3 -2
- package/dist/base.d.ts +2 -2
- package/dist/base.js +2 -2
- package/dist/common.d.ts +2 -2
- package/dist/common.js +2 -2
- package/dist/configuration.d.ts +2 -2
- package/dist/configuration.js +2 -2
- package/dist/esm/api/embed-api.d.ts +68 -0
- package/dist/esm/api/embed-api.js +126 -0
- package/dist/esm/api/oauth-api.d.ts +2 -2
- package/dist/esm/api/oauth-api.js +2 -2
- package/dist/esm/api/partner-api-api.d.ts +2 -2
- package/dist/esm/api/partner-api-api.js +2 -2
- package/dist/esm/api/products-api.d.ts +2 -2
- package/dist/esm/api/products-api.js +2 -2
- package/dist/esm/api/well-known-api.d.ts +2 -2
- package/dist/esm/api/well-known-api.js +2 -2
- package/dist/esm/api.d.ts +3 -2
- package/dist/esm/api.js +3 -2
- package/dist/esm/base.d.ts +2 -2
- package/dist/esm/base.js +2 -2
- package/dist/esm/common.d.ts +2 -2
- package/dist/esm/common.js +2 -2
- package/dist/esm/configuration.d.ts +2 -2
- package/dist/esm/configuration.js +2 -2
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +2 -2
- package/dist/esm/models/acceptance-result-response-dto.d.ts +2 -2
- package/dist/esm/models/acceptance-result-response-dto.js +2 -2
- package/dist/esm/models/acknowledge-product-receipt200-response.d.ts +2 -2
- package/dist/esm/models/acknowledge-product-receipt200-response.js +2 -2
- package/dist/esm/models/acknowledge-products-request-dto.d.ts +2 -2
- package/dist/esm/models/acknowledge-products-request-dto.js +2 -2
- package/dist/esm/models/api-catalog-dto.d.ts +2 -2
- package/dist/esm/models/api-catalog-dto.js +2 -2
- package/dist/esm/models/api-catalog-entry-dto.d.ts +2 -2
- package/dist/esm/models/api-catalog-entry-dto.js +2 -2
- package/dist/esm/models/api-catalog-link-dto.d.ts +2 -2
- package/dist/esm/models/api-catalog-link-dto.js +2 -2
- package/dist/esm/models/authorization-server-metadata-dto.d.ts +2 -2
- package/dist/esm/models/authorization-server-metadata-dto.js +2 -2
- package/dist/esm/models/avalues-input-dto.d.ts +2 -2
- package/dist/esm/models/avalues-input-dto.js +2 -2
- package/dist/esm/models/award-method-public.d.ts +25 -0
- package/dist/esm/models/award-method-public.js +26 -0
- package/dist/esm/models/award-registered-v2-response-dto.d.ts +2 -2
- package/dist/esm/models/award-registered-v2-response-dto.js +2 -2
- package/dist/esm/models/bid-acceptance-dto.d.ts +29 -0
- package/dist/esm/models/bid-acceptance-dto.js +14 -0
- package/dist/esm/models/bid-attachment-dto.d.ts +29 -0
- package/dist/esm/models/bid-attachment-dto.js +14 -0
- package/dist/esm/models/bid-attachment-input-dto.d.ts +2 -2
- package/dist/esm/models/bid-attachment-input-dto.js +2 -2
- package/dist/esm/models/bid-avalues-dto.d.ts +41 -0
- package/dist/esm/models/bid-avalues-dto.js +14 -0
- package/dist/esm/models/bid-award-method-detail-dto.d.ts +26 -0
- package/dist/esm/models/bid-award-method-detail-dto.js +14 -0
- package/dist/esm/models/bid-bond-dto.d.ts +2 -2
- package/dist/esm/models/bid-bond-dto.js +2 -2
- package/dist/esm/models/bid-cancellation-dto.d.ts +17 -0
- package/dist/esm/models/bid-cancellation-dto.js +14 -0
- package/dist/esm/models/bid-category-public.d.ts +21 -0
- package/dist/esm/models/bid-category-public.js +22 -0
- package/dist/esm/models/bid-contact-dto.d.ts +33 -0
- package/dist/esm/models/bid-contact-dto.js +14 -0
- package/dist/esm/models/bid-contacts-dto.d.ts +22 -0
- package/dist/esm/models/bid-contacts-dto.js +14 -0
- package/dist/esm/models/bid-contract-document-dto.d.ts +60 -0
- package/dist/esm/models/bid-contract-document-dto.js +19 -0
- package/dist/esm/models/bid-delivery-terms-dto.d.ts +35 -0
- package/dist/esm/models/bid-delivery-terms-dto.js +14 -0
- package/dist/esm/models/bid-detail-response-dto.d.ts +211 -0
- package/dist/esm/models/bid-detail-response-dto.js +14 -0
- package/dist/esm/models/bid-document-dto.d.ts +2 -2
- package/dist/esm/models/bid-document-dto.js +2 -2
- package/dist/esm/models/bid-failed-v2-response-dto.d.ts +2 -2
- package/dist/esm/models/bid-failed-v2-response-dto.js +2 -2
- package/dist/esm/models/bid-item-dto.d.ts +2 -2
- package/dist/esm/models/bid-item-dto.js +2 -2
- package/dist/esm/models/bid-license-requirement-dto.d.ts +26 -0
- package/dist/esm/models/bid-license-requirement-dto.js +14 -0
- package/dist/esm/models/bid-lifecycle-dto.d.ts +33 -0
- package/dist/esm/models/bid-lifecycle-dto.js +14 -0
- package/dist/esm/models/bid-manager-dto.d.ts +2 -2
- package/dist/esm/models/bid-manager-dto.js +2 -2
- package/dist/esm/models/bid-must-read-notice-dto.d.ts +21 -0
- package/dist/esm/models/bid-must-read-notice-dto.js +14 -0
- package/dist/esm/models/bid-payment-terms-dto.d.ts +22 -0
- package/dist/esm/models/bid-payment-terms-dto.js +14 -0
- package/dist/esm/models/bid-preliminary-price-dto.d.ts +38 -0
- package/dist/esm/models/bid-preliminary-price-dto.js +14 -0
- package/dist/esm/models/bid-preliminary-price-slot-dto.d.ts +25 -0
- package/dist/esm/models/bid-preliminary-price-slot-dto.js +14 -0
- package/dist/esm/models/bid-product-dto.d.ts +55 -0
- package/dist/esm/models/bid-product-dto.js +14 -0
- package/dist/esm/models/bid-public-status.d.ts +2 -2
- package/dist/esm/models/bid-public-status.js +2 -2
- package/dist/esm/models/bid-qualification-review-dto.d.ts +35 -0
- package/dist/esm/models/bid-qualification-review-dto.js +14 -0
- package/dist/esm/models/bid-region-dto.d.ts +21 -0
- package/dist/esm/models/bid-region-dto.js +14 -0
- package/dist/esm/models/bid-region-restriction-dto.d.ts +22 -0
- package/dist/esm/models/bid-region-restriction-dto.js +14 -0
- package/dist/esm/models/bid-registered-response-dto.d.ts +2 -2
- package/dist/esm/models/bid-registered-response-dto.js +2 -2
- package/dist/esm/models/bid-related-bid-dto.d.ts +22 -0
- package/dist/esm/models/bid-related-bid-dto.js +14 -0
- package/dist/esm/models/bid-required-document-dto.d.ts +25 -0
- package/dist/esm/models/bid-required-document-dto.js +14 -0
- package/dist/esm/models/bid-result-participant-attachment-dto.d.ts +2 -2
- package/dist/esm/models/bid-result-participant-attachment-dto.js +2 -2
- package/dist/esm/models/bid-result-participant-dto.d.ts +2 -2
- package/dist/esm/models/bid-result-participant-dto.js +2 -2
- package/dist/esm/models/bid-results-response-dto.d.ts +2 -2
- package/dist/esm/models/bid-results-response-dto.js +2 -2
- package/dist/esm/models/bid-site-briefing-dto.d.ts +21 -0
- package/dist/esm/models/bid-site-briefing-dto.js +14 -0
- package/dist/esm/models/bid-statement-response-dto.d.ts +2 -2
- package/dist/esm/models/bid-statement-response-dto.js +2 -2
- package/dist/esm/models/bidding-style-public.d.ts +19 -0
- package/dist/esm/models/bidding-style-public.js +20 -0
- package/dist/esm/models/card-payment-request-response-dto.d.ts +2 -2
- package/dist/esm/models/card-payment-request-response-dto.js +2 -2
- package/dist/esm/models/complete-acceptance-request-dto.d.ts +2 -2
- package/dist/esm/models/complete-acceptance-request-dto.js +2 -2
- package/dist/esm/models/complete-acceptance200-response.d.ts +2 -2
- package/dist/esm/models/complete-acceptance200-response.js +2 -2
- package/dist/esm/models/contract-restriction-confirm-input-dto.d.ts +2 -2
- package/dist/esm/models/contract-restriction-confirm-input-dto.js +2 -2
- package/dist/esm/models/create-bid-request-dto.d.ts +2 -2
- package/dist/esm/models/create-bid-request-dto.js +2 -2
- package/dist/esm/models/create-card-payment-dto.d.ts +2 -2
- package/dist/esm/models/create-card-payment-dto.js +2 -2
- package/dist/esm/models/create-card-payment-request-dto.d.ts +2 -2
- package/dist/esm/models/create-card-payment-request-dto.js +2 -2
- package/dist/esm/models/create-card-payment200-response.d.ts +2 -2
- package/dist/esm/models/create-card-payment200-response.js +2 -2
- package/dist/esm/models/create-embed-launch201-response.d.ts +15 -0
- package/dist/esm/models/create-embed-launch201-response.js +14 -0
- package/dist/esm/models/create-external-contract-documents-request-dto.d.ts +2 -2
- package/dist/esm/models/create-external-contract-documents-request-dto.js +2 -2
- package/dist/esm/models/create-external-contract-documents-response-dto.d.ts +2 -2
- package/dist/esm/models/create-external-contract-documents-response-dto.js +2 -2
- package/dist/esm/models/delivery-date-type-public.d.ts +20 -0
- package/dist/esm/models/delivery-date-type-public.js +21 -0
- package/dist/esm/models/delivery-method-public.d.ts +20 -0
- package/dist/esm/models/delivery-method-public.js +21 -0
- package/dist/esm/models/embed-bid-prefill-dto.d.ts +75 -0
- package/dist/esm/models/embed-bid-prefill-dto.js +23 -0
- package/dist/esm/models/embed-bid-prefill-item-dto.d.ts +33 -0
- package/dist/esm/models/embed-bid-prefill-item-dto.js +14 -0
- package/dist/esm/models/embed-bid-prefill-manager-dto.d.ts +29 -0
- package/dist/esm/models/embed-bid-prefill-manager-dto.js +14 -0
- package/dist/esm/models/embed-launch-request-dto.d.ts +56 -0
- package/dist/esm/models/embed-launch-request-dto.js +29 -0
- package/dist/esm/models/embed-launch-response-dto.d.ts +21 -0
- package/dist/esm/models/embed-launch-response-dto.js +14 -0
- package/dist/esm/models/excellent-procurement-public.d.ts +2 -2
- package/dist/esm/models/excellent-procurement-public.js +2 -2
- package/dist/esm/models/external-contract-document-item-dto.d.ts +2 -2
- package/dist/esm/models/external-contract-document-item-dto.js +2 -2
- package/dist/esm/models/external-contract-documents-response-dto.d.ts +2 -2
- package/dist/esm/models/external-contract-documents-response-dto.js +2 -2
- package/dist/esm/models/external-contract-item-dto.d.ts +2 -2
- package/dist/esm/models/external-contract-item-dto.js +2 -2
- package/dist/esm/models/external-contract-snapshot-dto.d.ts +2 -2
- package/dist/esm/models/external-contract-snapshot-dto.js +2 -2
- package/dist/esm/models/external-document-inputs-dto.d.ts +2 -2
- package/dist/esm/models/external-document-inputs-dto.js +2 -2
- package/dist/esm/models/file-uploaded-response-dto.d.ts +2 -2
- package/dist/esm/models/file-uploaded-response-dto.js +2 -2
- package/dist/esm/models/generated-external-contract-document-dto.d.ts +2 -2
- package/dist/esm/models/generated-external-contract-document-dto.js +2 -2
- package/dist/esm/models/get-bid-statement200-response.d.ts +2 -2
- package/dist/esm/models/get-bid-statement200-response.js +2 -2
- package/dist/esm/models/get-supplier-card-payable-v2200-response.d.ts +2 -2
- package/dist/esm/models/get-supplier-card-payable-v2200-response.js +2 -2
- package/dist/esm/models/green-product-public.d.ts +2 -2
- package/dist/esm/models/green-product-public.js +2 -2
- package/dist/esm/models/handover-type-public.d.ts +19 -0
- package/dist/esm/models/handover-type-public.js +20 -0
- package/dist/esm/models/health-controller-check200-response.d.ts +2 -2
- package/dist/esm/models/health-controller-check200-response.js +2 -2
- package/dist/esm/models/health-response-dto.d.ts +2 -2
- package/dist/esm/models/health-response-dto.js +2 -2
- package/dist/esm/models/hierarchical-region-dto.d.ts +2 -2
- package/dist/esm/models/hierarchical-region-dto.js +2 -2
- package/dist/esm/models/index.d.ts +44 -0
- package/dist/esm/models/index.js +44 -0
- package/dist/esm/models/introspect-request-dto.d.ts +2 -2
- package/dist/esm/models/introspect-request-dto.js +2 -2
- package/dist/esm/models/introspection-response-dto.d.ts +2 -2
- package/dist/esm/models/introspection-response-dto.js +2 -2
- package/dist/esm/models/invalid-param-dto.d.ts +2 -2
- package/dist/esm/models/invalid-param-dto.js +2 -2
- package/dist/esm/models/invoice-split-response-dto.d.ts +2 -2
- package/dist/esm/models/invoice-split-response-dto.js +2 -2
- package/dist/esm/models/legal-mandatory-public.d.ts +2 -2
- package/dist/esm/models/legal-mandatory-public.js +2 -2
- package/dist/esm/models/license-combination-mode.d.ts +19 -0
- package/dist/esm/models/license-combination-mode.js +20 -0
- package/dist/esm/models/list-bid-results200-response-meta.d.ts +2 -2
- package/dist/esm/models/list-bid-results200-response-meta.js +2 -2
- package/dist/esm/models/list-bid-results200-response.d.ts +2 -2
- package/dist/esm/models/list-bid-results200-response.js +2 -2
- package/dist/esm/models/list-products200-response.d.ts +2 -2
- package/dist/esm/models/list-products200-response.js +2 -2
- package/dist/esm/models/mark-bid-failed-request-dto.d.ts +2 -2
- package/dist/esm/models/mark-bid-failed-request-dto.js +2 -2
- package/dist/esm/models/mark-bid-failed201-response.d.ts +2 -2
- package/dist/esm/models/mark-bid-failed201-response.js +2 -2
- package/dist/esm/models/nominated-supplier-dto.d.ts +2 -2
- package/dist/esm/models/nominated-supplier-dto.js +2 -2
- package/dist/esm/models/oauth-error-response-dto.d.ts +2 -2
- package/dist/esm/models/oauth-error-response-dto.js +2 -2
- package/dist/esm/models/payment-method-public.d.ts +19 -0
- package/dist/esm/models/payment-method-public.js +20 -0
- package/dist/esm/models/preconditions-dto.d.ts +2 -2
- package/dist/esm/models/preconditions-dto.js +2 -2
- package/dist/esm/models/preliminary-price-region-public.d.ts +20 -0
- package/dist/esm/models/preliminary-price-region-public.js +21 -0
- package/dist/esm/models/price-score-type-public.d.ts +20 -0
- package/dist/esm/models/price-score-type-public.js +21 -0
- package/dist/esm/models/pricing-type-public.d.ts +19 -0
- package/dist/esm/models/pricing-type-public.js +20 -0
- package/dist/esm/models/problem-details-dto.d.ts +4 -4
- package/dist/esm/models/problem-details-dto.js +2 -2
- package/dist/esm/models/product-receipt-response-dto.d.ts +2 -2
- package/dist/esm/models/product-receipt-response-dto.js +2 -2
- package/dist/esm/models/product-response-dto.d.ts +2 -2
- package/dist/esm/models/product-response-dto.js +2 -2
- package/dist/esm/models/protected-resource-metadata-dto.d.ts +2 -2
- package/dist/esm/models/protected-resource-metadata-dto.js +2 -2
- package/dist/esm/models/qualification-review-input-dto.d.ts +2 -2
- package/dist/esm/models/qualification-review-input-dto.js +2 -2
- package/dist/esm/models/register-award-request-dto.d.ts +2 -2
- package/dist/esm/models/register-award-request-dto.js +2 -2
- package/dist/esm/models/register-award201-response.d.ts +2 -2
- package/dist/esm/models/register-award201-response.js +2 -2
- package/dist/esm/models/register-bid201-response.d.ts +2 -2
- package/dist/esm/models/register-bid201-response.js +2 -2
- package/dist/esm/models/register-semo-contract-request-dto.d.ts +2 -2
- package/dist/esm/models/register-semo-contract-request-dto.js +2 -2
- package/dist/esm/models/regulation-type-public.d.ts +19 -0
- package/dist/esm/models/regulation-type-public.js +20 -0
- package/dist/esm/models/related-bid-relation.d.ts +20 -0
- package/dist/esm/models/related-bid-relation.js +21 -0
- package/dist/esm/models/request-invoice-split-request-dto.d.ts +2 -2
- package/dist/esm/models/request-invoice-split-request-dto.js +2 -2
- package/dist/esm/models/request-invoice-split200-response.d.ts +2 -2
- package/dist/esm/models/request-invoice-split200-response.js +2 -2
- package/dist/esm/models/retiree-roster-input-dto.d.ts +2 -2
- package/dist/esm/models/retiree-roster-input-dto.js +2 -2
- package/dist/esm/models/retiree-roster-row-dto.d.ts +2 -2
- package/dist/esm/models/retiree-roster-row-dto.js +2 -2
- package/dist/esm/models/revoke-request-dto.d.ts +2 -2
- package/dist/esm/models/revoke-request-dto.js +2 -2
- package/dist/esm/models/rotate-secret-request-dto.d.ts +2 -2
- package/dist/esm/models/rotate-secret-request-dto.js +2 -2
- package/dist/esm/models/rotate-secret-response-dto.d.ts +2 -2
- package/dist/esm/models/rotate-secret-response-dto.js +2 -2
- package/dist/esm/models/semo-contract-registered-response-dto.d.ts +2 -2
- package/dist/esm/models/semo-contract-registered-response-dto.js +2 -2
- package/dist/esm/models/semo-contract-taxinvoice-status-response-dto.d.ts +2 -2
- package/dist/esm/models/semo-contract-taxinvoice-status-response-dto.js +2 -2
- package/dist/esm/models/site-briefing-input-dto.d.ts +2 -2
- package/dist/esm/models/site-briefing-input-dto.js +2 -2
- package/dist/esm/models/statement-document-dto.d.ts +2 -2
- package/dist/esm/models/statement-document-dto.js +2 -2
- package/dist/esm/models/statement-product-dto.d.ts +2 -2
- package/dist/esm/models/statement-product-dto.js +2 -2
- package/dist/esm/models/supplier-card-payable-response-dto.d.ts +2 -2
- package/dist/esm/models/supplier-card-payable-response-dto.js +2 -2
- package/dist/esm/models/taxation-type-public.d.ts +20 -0
- package/dist/esm/models/taxation-type-public.js +21 -0
- package/dist/esm/models/token-request-dto.d.ts +2 -2
- package/dist/esm/models/token-request-dto.js +2 -2
- package/dist/esm/models/token-response-dto.d.ts +2 -2
- package/dist/esm/models/token-response-dto.js +2 -2
- package/dist/esm/models/two-stage-phase-public.d.ts +19 -0
- package/dist/esm/models/two-stage-phase-public.js +20 -0
- package/dist/esm/models/upload-file-request-dto.d.ts +2 -2
- package/dist/esm/models/upload-file-request-dto.js +2 -2
- package/dist/esm/models/upload-file201-response.d.ts +2 -2
- package/dist/esm/models/upload-file201-response.js +2 -2
- package/dist/esm/models/userinfo-response-dto.d.ts +2 -2
- package/dist/esm/models/userinfo-response-dto.js +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/models/acceptance-result-response-dto.d.ts +2 -2
- package/dist/models/acceptance-result-response-dto.js +2 -2
- package/dist/models/acknowledge-product-receipt200-response.d.ts +2 -2
- package/dist/models/acknowledge-product-receipt200-response.js +2 -2
- package/dist/models/acknowledge-products-request-dto.d.ts +2 -2
- package/dist/models/acknowledge-products-request-dto.js +2 -2
- package/dist/models/api-catalog-dto.d.ts +2 -2
- package/dist/models/api-catalog-dto.js +2 -2
- package/dist/models/api-catalog-entry-dto.d.ts +2 -2
- package/dist/models/api-catalog-entry-dto.js +2 -2
- package/dist/models/api-catalog-link-dto.d.ts +2 -2
- package/dist/models/api-catalog-link-dto.js +2 -2
- package/dist/models/authorization-server-metadata-dto.d.ts +2 -2
- package/dist/models/authorization-server-metadata-dto.js +2 -2
- package/dist/models/avalues-input-dto.d.ts +2 -2
- package/dist/models/avalues-input-dto.js +2 -2
- package/dist/models/award-method-public.d.ts +25 -0
- package/dist/models/award-method-public.js +29 -0
- package/dist/models/award-registered-v2-response-dto.d.ts +2 -2
- package/dist/models/award-registered-v2-response-dto.js +2 -2
- package/dist/models/bid-acceptance-dto.d.ts +29 -0
- package/dist/models/bid-acceptance-dto.js +15 -0
- package/dist/models/bid-attachment-dto.d.ts +29 -0
- package/dist/models/bid-attachment-dto.js +15 -0
- package/dist/models/bid-attachment-input-dto.d.ts +2 -2
- package/dist/models/bid-attachment-input-dto.js +2 -2
- package/dist/models/bid-avalues-dto.d.ts +41 -0
- package/dist/models/bid-avalues-dto.js +15 -0
- package/dist/models/bid-award-method-detail-dto.d.ts +26 -0
- package/dist/models/bid-award-method-detail-dto.js +15 -0
- package/dist/models/bid-bond-dto.d.ts +2 -2
- package/dist/models/bid-bond-dto.js +2 -2
- package/dist/models/bid-cancellation-dto.d.ts +17 -0
- package/dist/models/bid-cancellation-dto.js +15 -0
- package/dist/models/bid-category-public.d.ts +21 -0
- package/dist/models/bid-category-public.js +25 -0
- package/dist/models/bid-contact-dto.d.ts +33 -0
- package/dist/models/bid-contact-dto.js +15 -0
- package/dist/models/bid-contacts-dto.d.ts +22 -0
- package/dist/models/bid-contacts-dto.js +15 -0
- package/dist/models/bid-contract-document-dto.d.ts +60 -0
- package/dist/models/bid-contract-document-dto.js +22 -0
- package/dist/models/bid-delivery-terms-dto.d.ts +35 -0
- package/dist/models/bid-delivery-terms-dto.js +15 -0
- package/dist/models/bid-detail-response-dto.d.ts +211 -0
- package/dist/models/bid-detail-response-dto.js +15 -0
- package/dist/models/bid-document-dto.d.ts +2 -2
- package/dist/models/bid-document-dto.js +2 -2
- package/dist/models/bid-failed-v2-response-dto.d.ts +2 -2
- package/dist/models/bid-failed-v2-response-dto.js +2 -2
- package/dist/models/bid-item-dto.d.ts +2 -2
- package/dist/models/bid-item-dto.js +2 -2
- package/dist/models/bid-license-requirement-dto.d.ts +26 -0
- package/dist/models/bid-license-requirement-dto.js +15 -0
- package/dist/models/bid-lifecycle-dto.d.ts +33 -0
- package/dist/models/bid-lifecycle-dto.js +15 -0
- package/dist/models/bid-manager-dto.d.ts +2 -2
- package/dist/models/bid-manager-dto.js +2 -2
- package/dist/models/bid-must-read-notice-dto.d.ts +21 -0
- package/dist/models/bid-must-read-notice-dto.js +15 -0
- package/dist/models/bid-payment-terms-dto.d.ts +22 -0
- package/dist/models/bid-payment-terms-dto.js +15 -0
- package/dist/models/bid-preliminary-price-dto.d.ts +38 -0
- package/dist/models/bid-preliminary-price-dto.js +15 -0
- package/dist/models/bid-preliminary-price-slot-dto.d.ts +25 -0
- package/dist/models/bid-preliminary-price-slot-dto.js +15 -0
- package/dist/models/bid-product-dto.d.ts +55 -0
- package/dist/models/bid-product-dto.js +15 -0
- package/dist/models/bid-public-status.d.ts +2 -2
- package/dist/models/bid-public-status.js +2 -2
- package/dist/models/bid-qualification-review-dto.d.ts +35 -0
- package/dist/models/bid-qualification-review-dto.js +15 -0
- package/dist/models/bid-region-dto.d.ts +21 -0
- package/dist/models/bid-region-dto.js +15 -0
- package/dist/models/bid-region-restriction-dto.d.ts +22 -0
- package/dist/models/bid-region-restriction-dto.js +15 -0
- package/dist/models/bid-registered-response-dto.d.ts +2 -2
- package/dist/models/bid-registered-response-dto.js +2 -2
- package/dist/models/bid-related-bid-dto.d.ts +22 -0
- package/dist/models/bid-related-bid-dto.js +15 -0
- package/dist/models/bid-required-document-dto.d.ts +25 -0
- package/dist/models/bid-required-document-dto.js +15 -0
- package/dist/models/bid-result-participant-attachment-dto.d.ts +2 -2
- package/dist/models/bid-result-participant-attachment-dto.js +2 -2
- package/dist/models/bid-result-participant-dto.d.ts +2 -2
- package/dist/models/bid-result-participant-dto.js +2 -2
- package/dist/models/bid-results-response-dto.d.ts +2 -2
- package/dist/models/bid-results-response-dto.js +2 -2
- package/dist/models/bid-site-briefing-dto.d.ts +21 -0
- package/dist/models/bid-site-briefing-dto.js +15 -0
- package/dist/models/bid-statement-response-dto.d.ts +2 -2
- package/dist/models/bid-statement-response-dto.js +2 -2
- package/dist/models/bidding-style-public.d.ts +19 -0
- package/dist/models/bidding-style-public.js +23 -0
- package/dist/models/card-payment-request-response-dto.d.ts +2 -2
- package/dist/models/card-payment-request-response-dto.js +2 -2
- package/dist/models/complete-acceptance-request-dto.d.ts +2 -2
- package/dist/models/complete-acceptance-request-dto.js +2 -2
- package/dist/models/complete-acceptance200-response.d.ts +2 -2
- package/dist/models/complete-acceptance200-response.js +2 -2
- package/dist/models/contract-restriction-confirm-input-dto.d.ts +2 -2
- package/dist/models/contract-restriction-confirm-input-dto.js +2 -2
- package/dist/models/create-bid-request-dto.d.ts +2 -2
- package/dist/models/create-bid-request-dto.js +2 -2
- package/dist/models/create-card-payment-dto.d.ts +2 -2
- package/dist/models/create-card-payment-dto.js +2 -2
- package/dist/models/create-card-payment-request-dto.d.ts +2 -2
- package/dist/models/create-card-payment-request-dto.js +2 -2
- package/dist/models/create-card-payment200-response.d.ts +2 -2
- package/dist/models/create-card-payment200-response.js +2 -2
- package/dist/models/create-embed-launch201-response.d.ts +15 -0
- package/dist/models/create-embed-launch201-response.js +15 -0
- package/dist/models/create-external-contract-documents-request-dto.d.ts +2 -2
- package/dist/models/create-external-contract-documents-request-dto.js +2 -2
- package/dist/models/create-external-contract-documents-response-dto.d.ts +2 -2
- package/dist/models/create-external-contract-documents-response-dto.js +2 -2
- package/dist/models/delivery-date-type-public.d.ts +20 -0
- package/dist/models/delivery-date-type-public.js +24 -0
- package/dist/models/delivery-method-public.d.ts +20 -0
- package/dist/models/delivery-method-public.js +24 -0
- package/dist/models/embed-bid-prefill-dto.d.ts +75 -0
- package/dist/models/embed-bid-prefill-dto.js +26 -0
- package/dist/models/embed-bid-prefill-item-dto.d.ts +33 -0
- package/dist/models/embed-bid-prefill-item-dto.js +15 -0
- package/dist/models/embed-bid-prefill-manager-dto.d.ts +29 -0
- package/dist/models/embed-bid-prefill-manager-dto.js +15 -0
- package/dist/models/embed-launch-request-dto.d.ts +56 -0
- package/dist/models/embed-launch-request-dto.js +32 -0
- package/dist/models/embed-launch-response-dto.d.ts +21 -0
- package/dist/models/embed-launch-response-dto.js +15 -0
- package/dist/models/excellent-procurement-public.d.ts +2 -2
- package/dist/models/excellent-procurement-public.js +2 -2
- package/dist/models/external-contract-document-item-dto.d.ts +2 -2
- package/dist/models/external-contract-document-item-dto.js +2 -2
- package/dist/models/external-contract-documents-response-dto.d.ts +2 -2
- package/dist/models/external-contract-documents-response-dto.js +2 -2
- package/dist/models/external-contract-item-dto.d.ts +2 -2
- package/dist/models/external-contract-item-dto.js +2 -2
- package/dist/models/external-contract-snapshot-dto.d.ts +2 -2
- package/dist/models/external-contract-snapshot-dto.js +2 -2
- package/dist/models/external-document-inputs-dto.d.ts +2 -2
- package/dist/models/external-document-inputs-dto.js +2 -2
- package/dist/models/file-uploaded-response-dto.d.ts +2 -2
- package/dist/models/file-uploaded-response-dto.js +2 -2
- package/dist/models/generated-external-contract-document-dto.d.ts +2 -2
- package/dist/models/generated-external-contract-document-dto.js +2 -2
- package/dist/models/get-bid-statement200-response.d.ts +2 -2
- package/dist/models/get-bid-statement200-response.js +2 -2
- package/dist/models/get-supplier-card-payable-v2200-response.d.ts +2 -2
- package/dist/models/get-supplier-card-payable-v2200-response.js +2 -2
- package/dist/models/green-product-public.d.ts +2 -2
- package/dist/models/green-product-public.js +2 -2
- package/dist/models/handover-type-public.d.ts +19 -0
- package/dist/models/handover-type-public.js +23 -0
- package/dist/models/health-controller-check200-response.d.ts +2 -2
- package/dist/models/health-controller-check200-response.js +2 -2
- package/dist/models/health-response-dto.d.ts +2 -2
- package/dist/models/health-response-dto.js +2 -2
- package/dist/models/hierarchical-region-dto.d.ts +2 -2
- package/dist/models/hierarchical-region-dto.js +2 -2
- package/dist/models/index.d.ts +44 -0
- package/dist/models/index.js +44 -0
- package/dist/models/introspect-request-dto.d.ts +2 -2
- package/dist/models/introspect-request-dto.js +2 -2
- package/dist/models/introspection-response-dto.d.ts +2 -2
- package/dist/models/introspection-response-dto.js +2 -2
- package/dist/models/invalid-param-dto.d.ts +2 -2
- package/dist/models/invalid-param-dto.js +2 -2
- package/dist/models/invoice-split-response-dto.d.ts +2 -2
- package/dist/models/invoice-split-response-dto.js +2 -2
- package/dist/models/legal-mandatory-public.d.ts +2 -2
- package/dist/models/legal-mandatory-public.js +2 -2
- package/dist/models/license-combination-mode.d.ts +19 -0
- package/dist/models/license-combination-mode.js +23 -0
- package/dist/models/list-bid-results200-response-meta.d.ts +2 -2
- package/dist/models/list-bid-results200-response-meta.js +2 -2
- package/dist/models/list-bid-results200-response.d.ts +2 -2
- package/dist/models/list-bid-results200-response.js +2 -2
- package/dist/models/list-products200-response.d.ts +2 -2
- package/dist/models/list-products200-response.js +2 -2
- package/dist/models/mark-bid-failed-request-dto.d.ts +2 -2
- package/dist/models/mark-bid-failed-request-dto.js +2 -2
- package/dist/models/mark-bid-failed201-response.d.ts +2 -2
- package/dist/models/mark-bid-failed201-response.js +2 -2
- package/dist/models/nominated-supplier-dto.d.ts +2 -2
- package/dist/models/nominated-supplier-dto.js +2 -2
- package/dist/models/oauth-error-response-dto.d.ts +2 -2
- package/dist/models/oauth-error-response-dto.js +2 -2
- package/dist/models/payment-method-public.d.ts +19 -0
- package/dist/models/payment-method-public.js +23 -0
- package/dist/models/preconditions-dto.d.ts +2 -2
- package/dist/models/preconditions-dto.js +2 -2
- package/dist/models/preliminary-price-region-public.d.ts +20 -0
- package/dist/models/preliminary-price-region-public.js +24 -0
- package/dist/models/price-score-type-public.d.ts +20 -0
- package/dist/models/price-score-type-public.js +24 -0
- package/dist/models/pricing-type-public.d.ts +19 -0
- package/dist/models/pricing-type-public.js +23 -0
- package/dist/models/problem-details-dto.d.ts +4 -4
- package/dist/models/problem-details-dto.js +2 -2
- package/dist/models/product-receipt-response-dto.d.ts +2 -2
- package/dist/models/product-receipt-response-dto.js +2 -2
- package/dist/models/product-response-dto.d.ts +2 -2
- package/dist/models/product-response-dto.js +2 -2
- package/dist/models/protected-resource-metadata-dto.d.ts +2 -2
- package/dist/models/protected-resource-metadata-dto.js +2 -2
- package/dist/models/qualification-review-input-dto.d.ts +2 -2
- package/dist/models/qualification-review-input-dto.js +2 -2
- package/dist/models/register-award-request-dto.d.ts +2 -2
- package/dist/models/register-award-request-dto.js +2 -2
- package/dist/models/register-award201-response.d.ts +2 -2
- package/dist/models/register-award201-response.js +2 -2
- package/dist/models/register-bid201-response.d.ts +2 -2
- package/dist/models/register-bid201-response.js +2 -2
- package/dist/models/register-semo-contract-request-dto.d.ts +2 -2
- package/dist/models/register-semo-contract-request-dto.js +2 -2
- package/dist/models/regulation-type-public.d.ts +19 -0
- package/dist/models/regulation-type-public.js +23 -0
- package/dist/models/related-bid-relation.d.ts +20 -0
- package/dist/models/related-bid-relation.js +24 -0
- package/dist/models/request-invoice-split-request-dto.d.ts +2 -2
- package/dist/models/request-invoice-split-request-dto.js +2 -2
- package/dist/models/request-invoice-split200-response.d.ts +2 -2
- package/dist/models/request-invoice-split200-response.js +2 -2
- package/dist/models/retiree-roster-input-dto.d.ts +2 -2
- package/dist/models/retiree-roster-input-dto.js +2 -2
- package/dist/models/retiree-roster-row-dto.d.ts +2 -2
- package/dist/models/retiree-roster-row-dto.js +2 -2
- package/dist/models/revoke-request-dto.d.ts +2 -2
- package/dist/models/revoke-request-dto.js +2 -2
- package/dist/models/rotate-secret-request-dto.d.ts +2 -2
- package/dist/models/rotate-secret-request-dto.js +2 -2
- package/dist/models/rotate-secret-response-dto.d.ts +2 -2
- package/dist/models/rotate-secret-response-dto.js +2 -2
- package/dist/models/semo-contract-registered-response-dto.d.ts +2 -2
- package/dist/models/semo-contract-registered-response-dto.js +2 -2
- package/dist/models/semo-contract-taxinvoice-status-response-dto.d.ts +2 -2
- package/dist/models/semo-contract-taxinvoice-status-response-dto.js +2 -2
- package/dist/models/site-briefing-input-dto.d.ts +2 -2
- package/dist/models/site-briefing-input-dto.js +2 -2
- package/dist/models/statement-document-dto.d.ts +2 -2
- package/dist/models/statement-document-dto.js +2 -2
- package/dist/models/statement-product-dto.d.ts +2 -2
- package/dist/models/statement-product-dto.js +2 -2
- package/dist/models/supplier-card-payable-response-dto.d.ts +2 -2
- package/dist/models/supplier-card-payable-response-dto.js +2 -2
- package/dist/models/taxation-type-public.d.ts +20 -0
- package/dist/models/taxation-type-public.js +24 -0
- package/dist/models/token-request-dto.d.ts +2 -2
- package/dist/models/token-request-dto.js +2 -2
- package/dist/models/token-response-dto.d.ts +2 -2
- package/dist/models/token-response-dto.js +2 -2
- package/dist/models/two-stage-phase-public.d.ts +19 -0
- package/dist/models/two-stage-phase-public.js +23 -0
- package/dist/models/upload-file-request-dto.d.ts +2 -2
- package/dist/models/upload-file-request-dto.js +2 -2
- package/dist/models/upload-file201-response.d.ts +2 -2
- package/dist/models/upload-file201-response.js +2 -2
- package/dist/models/userinfo-response-dto.d.ts +2 -2
- package/dist/models/userinfo-response-dto.js +2 -2
- package/docs/AwardMethodPublic.md +23 -0
- package/docs/BidAValuesDto.md +32 -0
- package/docs/BidAcceptanceDto.md +26 -0
- package/docs/BidAttachmentDto.md +26 -0
- package/docs/BidAwardMethodDetailDto.md +24 -0
- package/docs/BidCancellationDto.md +20 -0
- package/docs/BidCategoryPublic.md +15 -0
- package/docs/BidContactDto.md +28 -0
- package/docs/BidContactsDto.md +22 -0
- package/docs/BidContractDocumentDto.md +38 -0
- package/docs/BidDeliveryTermsDto.md +28 -0
- package/docs/BidDetailResponseDto.md +104 -0
- package/docs/BidLicenseRequirementDto.md +24 -0
- package/docs/BidLifecycleDto.md +28 -0
- package/docs/BidMustReadNoticeDto.md +22 -0
- package/docs/BidPaymentTermsDto.md +22 -0
- package/docs/BidPreliminaryPriceDto.md +30 -0
- package/docs/BidPreliminaryPriceSlotDto.md +24 -0
- package/docs/BidProductDto.md +38 -0
- package/docs/BidQualificationReviewDto.md +28 -0
- package/docs/BidRegionDto.md +22 -0
- package/docs/BidRegionRestrictionDto.md +22 -0
- package/docs/BidRelatedBidDto.md +22 -0
- package/docs/BidRequiredDocumentDto.md +24 -0
- package/docs/BidSiteBriefingDto.md +22 -0
- package/docs/BiddingStylePublic.md +11 -0
- package/docs/CreateEmbedLaunch201Response.md +20 -0
- package/docs/DeliveryDateTypePublic.md +13 -0
- package/docs/DeliveryMethodPublic.md +13 -0
- package/docs/EmbedApi.md +68 -0
- package/docs/EmbedBidPrefillDto.md +42 -0
- package/docs/EmbedBidPrefillItemDto.md +28 -0
- package/docs/EmbedBidPrefillManagerDto.md +26 -0
- package/docs/EmbedLaunchRequestDto.md +30 -0
- package/docs/EmbedLaunchResponseDto.md +22 -0
- package/docs/HandoverTypePublic.md +11 -0
- package/docs/LicenseCombinationMode.md +11 -0
- package/docs/PaymentMethodPublic.md +11 -0
- package/docs/PreliminaryPriceRegionPublic.md +13 -0
- package/docs/PriceScoreTypePublic.md +13 -0
- package/docs/PricingTypePublic.md +11 -0
- package/docs/ProblemDetailsDto.md +2 -2
- package/docs/RegulationTypePublic.md +11 -0
- package/docs/RelatedBidRelation.md +13 -0
- package/docs/TaxationTypePublic.md +13 -0
- package/docs/TwoStagePhasePublic.md +11 -0
- package/index.ts +2 -2
- package/models/acceptance-result-response-dto.ts +2 -2
- package/models/acknowledge-product-receipt200-response.ts +2 -2
- package/models/acknowledge-products-request-dto.ts +2 -2
- package/models/api-catalog-dto.ts +2 -2
- package/models/api-catalog-entry-dto.ts +2 -2
- package/models/api-catalog-link-dto.ts +2 -2
- package/models/authorization-server-metadata-dto.ts +2 -2
- package/models/avalues-input-dto.ts +2 -2
- package/models/award-method-public.ts +35 -0
- package/models/award-registered-v2-response-dto.ts +2 -2
- package/models/bid-acceptance-dto.ts +35 -0
- package/models/bid-attachment-dto.ts +35 -0
- package/models/bid-attachment-input-dto.ts +2 -2
- package/models/bid-avalues-dto.ts +47 -0
- package/models/bid-award-method-detail-dto.ts +36 -0
- package/models/bid-bond-dto.ts +2 -2
- package/models/bid-cancellation-dto.ts +23 -0
- package/models/bid-category-public.ts +31 -0
- package/models/bid-contact-dto.ts +39 -0
- package/models/bid-contacts-dto.ts +30 -0
- package/models/bid-contract-document-dto.ts +69 -0
- package/models/bid-delivery-terms-dto.ts +47 -0
- package/models/bid-detail-response-dto.ts +271 -0
- package/models/bid-document-dto.ts +2 -2
- package/models/bid-failed-v2-response-dto.ts +2 -2
- package/models/bid-item-dto.ts +2 -2
- package/models/bid-license-requirement-dto.ts +36 -0
- package/models/bid-lifecycle-dto.ts +39 -0
- package/models/bid-manager-dto.ts +2 -2
- package/models/bid-must-read-notice-dto.ts +27 -0
- package/models/bid-payment-terms-dto.ts +32 -0
- package/models/bid-preliminary-price-dto.ts +46 -0
- package/models/bid-preliminary-price-slot-dto.ts +31 -0
- package/models/bid-product-dto.ts +67 -0
- package/models/bid-public-status.ts +2 -2
- package/models/bid-qualification-review-dto.ts +47 -0
- package/models/bid-region-dto.ts +27 -0
- package/models/bid-region-restriction-dto.ts +30 -0
- package/models/bid-registered-response-dto.ts +2 -2
- package/models/bid-related-bid-dto.ts +32 -0
- package/models/bid-required-document-dto.ts +31 -0
- package/models/bid-result-participant-attachment-dto.ts +2 -2
- package/models/bid-result-participant-dto.ts +2 -2
- package/models/bid-results-response-dto.ts +2 -2
- package/models/bid-site-briefing-dto.ts +27 -0
- package/models/bid-statement-response-dto.ts +2 -2
- package/models/bidding-style-public.ts +29 -0
- package/models/card-payment-request-response-dto.ts +2 -2
- package/models/complete-acceptance-request-dto.ts +2 -2
- package/models/complete-acceptance200-response.ts +2 -2
- package/models/contract-restriction-confirm-input-dto.ts +2 -2
- package/models/create-bid-request-dto.ts +2 -2
- package/models/create-card-payment-dto.ts +2 -2
- package/models/create-card-payment-request-dto.ts +2 -2
- package/models/create-card-payment200-response.ts +2 -2
- package/models/create-embed-launch201-response.ts +23 -0
- package/models/create-external-contract-documents-request-dto.ts +2 -2
- package/models/create-external-contract-documents-response-dto.ts +2 -2
- package/models/delivery-date-type-public.ts +30 -0
- package/models/delivery-method-public.ts +30 -0
- package/models/embed-bid-prefill-dto.ts +89 -0
- package/models/embed-bid-prefill-item-dto.ts +39 -0
- package/models/embed-bid-prefill-manager-dto.ts +35 -0
- package/models/embed-launch-request-dto.ts +68 -0
- package/models/embed-launch-response-dto.ts +27 -0
- package/models/excellent-procurement-public.ts +2 -2
- package/models/external-contract-document-item-dto.ts +2 -2
- package/models/external-contract-documents-response-dto.ts +2 -2
- package/models/external-contract-item-dto.ts +2 -2
- package/models/external-contract-snapshot-dto.ts +2 -2
- package/models/external-document-inputs-dto.ts +2 -2
- package/models/file-uploaded-response-dto.ts +2 -2
- package/models/generated-external-contract-document-dto.ts +2 -2
- package/models/get-bid-statement200-response.ts +2 -2
- package/models/get-supplier-card-payable-v2200-response.ts +2 -2
- package/models/green-product-public.ts +2 -2
- package/models/handover-type-public.ts +29 -0
- package/models/health-controller-check200-response.ts +2 -2
- package/models/health-response-dto.ts +2 -2
- package/models/hierarchical-region-dto.ts +2 -2
- package/models/index.ts +44 -0
- package/models/introspect-request-dto.ts +2 -2
- package/models/introspection-response-dto.ts +2 -2
- package/models/invalid-param-dto.ts +2 -2
- package/models/invoice-split-response-dto.ts +2 -2
- package/models/legal-mandatory-public.ts +2 -2
- package/models/license-combination-mode.ts +29 -0
- package/models/list-bid-results200-response-meta.ts +2 -2
- package/models/list-bid-results200-response.ts +2 -2
- package/models/list-products200-response.ts +2 -2
- package/models/mark-bid-failed-request-dto.ts +2 -2
- package/models/mark-bid-failed201-response.ts +2 -2
- package/models/nominated-supplier-dto.ts +2 -2
- package/models/oauth-error-response-dto.ts +2 -2
- package/models/payment-method-public.ts +29 -0
- package/models/preconditions-dto.ts +2 -2
- package/models/preliminary-price-region-public.ts +30 -0
- package/models/price-score-type-public.ts +30 -0
- package/models/pricing-type-public.ts +29 -0
- package/models/problem-details-dto.ts +4 -4
- package/models/product-receipt-response-dto.ts +2 -2
- package/models/product-response-dto.ts +2 -2
- package/models/protected-resource-metadata-dto.ts +2 -2
- package/models/qualification-review-input-dto.ts +2 -2
- package/models/register-award-request-dto.ts +2 -2
- package/models/register-award201-response.ts +2 -2
- package/models/register-bid201-response.ts +2 -2
- package/models/register-semo-contract-request-dto.ts +2 -2
- package/models/regulation-type-public.ts +29 -0
- package/models/related-bid-relation.ts +30 -0
- package/models/request-invoice-split-request-dto.ts +2 -2
- package/models/request-invoice-split200-response.ts +2 -2
- package/models/retiree-roster-input-dto.ts +2 -2
- package/models/retiree-roster-row-dto.ts +2 -2
- package/models/revoke-request-dto.ts +2 -2
- package/models/rotate-secret-request-dto.ts +2 -2
- package/models/rotate-secret-response-dto.ts +2 -2
- package/models/semo-contract-registered-response-dto.ts +2 -2
- package/models/semo-contract-taxinvoice-status-response-dto.ts +2 -2
- package/models/site-briefing-input-dto.ts +2 -2
- package/models/statement-document-dto.ts +2 -2
- package/models/statement-product-dto.ts +2 -2
- package/models/supplier-card-payable-response-dto.ts +2 -2
- package/models/taxation-type-public.ts +30 -0
- package/models/token-request-dto.ts +2 -2
- package/models/token-response-dto.ts +2 -2
- package/models/two-stage-phase-public.ts +29 -0
- package/models/upload-file-request-dto.ts +2 -2
- package/models/upload-file201-response.ts +2 -2
- package/models/userinfo-response-dto.ts +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@ CMARKET V6 Partner API 의 공식 클라이언트 SDK — 외부 ERP 가 입찰
|
|
|
13
13
|
TypeScript / Node (npm):
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
|
-
npm install @cmarket/partner-sdk@49.1
|
|
16
|
+
npm install @cmarket/partner-sdk@49.2.1
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
Java (Maven):
|
|
@@ -22,7 +22,7 @@ Java (Maven):
|
|
|
22
22
|
<dependency>
|
|
23
23
|
<groupId>net.c-market</groupId>
|
|
24
24
|
<artifactId>partner-sdk</artifactId>
|
|
25
|
-
<version>49.1
|
|
25
|
+
<version>49.2.1</version>
|
|
26
26
|
</dependency>
|
|
27
27
|
```
|
|
28
28
|
|
|
@@ -375,7 +375,7 @@ CMARKET 운영팀에 등록해야 합니다(미등록 origin 은 iframe 로드
|
|
|
375
375
|
|
|
376
376
|
---
|
|
377
377
|
|
|
378
|
-
## @cmarket/partner-sdk@49.1
|
|
378
|
+
## @cmarket/partner-sdk@49.2.1
|
|
379
379
|
|
|
380
380
|
This generator creates TypeScript/JavaScript client that utilizes [axios](https://github.com/axios/axios). The generated Node module can be used in the following environments:
|
|
381
381
|
|
|
@@ -413,7 +413,7 @@ navigate to the folder of your consuming project and run one of the following co
|
|
|
413
413
|
_published:_
|
|
414
414
|
|
|
415
415
|
```
|
|
416
|
-
npm install @cmarket/partner-sdk@49.1
|
|
416
|
+
npm install @cmarket/partner-sdk@49.2.1 --save
|
|
417
417
|
```
|
|
418
418
|
|
|
419
419
|
_unPublished (not recommended):_
|
|
@@ -428,6 +428,7 @@ All URIs are relative to *https://partner-api.c-market.net*
|
|
|
428
428
|
|
|
429
429
|
Class | Method | HTTP request | Description
|
|
430
430
|
------------ | ------------- | ------------- | -------------
|
|
431
|
+
*EmbedApi* | [**createEmbedLaunch**](docs/EmbedApi.md#createembedlaunch) | **POST** /v2/embed/launch | 임베드 launch 발급
|
|
431
432
|
*OauthApi* | [**introspect**](docs/OauthApi.md#introspect) | **POST** /oauth/introspect | OAuth 2.0 토큰 검사 (Token Introspection, RFC 7662)
|
|
432
433
|
*OauthApi* | [**revoke**](docs/OauthApi.md#revoke) | **POST** /oauth/revoke | OAuth 2.0 토큰 폐기 (Token Revocation, RFC 7009)
|
|
433
434
|
*OauthApi* | [**rotateSecret**](docs/OauthApi.md#rotatesecret) | **POST** /oauth/secret | 자격증명 재발급 (client_secret 자가회전)
|
|
@@ -466,19 +467,45 @@ Class | Method | HTTP request | Description
|
|
|
466
467
|
- [ApiCatalogEntryDto](docs/ApiCatalogEntryDto.md)
|
|
467
468
|
- [ApiCatalogLinkDto](docs/ApiCatalogLinkDto.md)
|
|
468
469
|
- [AuthorizationServerMetadataDto](docs/AuthorizationServerMetadataDto.md)
|
|
470
|
+
- [AwardMethodPublic](docs/AwardMethodPublic.md)
|
|
469
471
|
- [AwardRegisteredV2ResponseDto](docs/AwardRegisteredV2ResponseDto.md)
|
|
472
|
+
- [BidAValuesDto](docs/BidAValuesDto.md)
|
|
473
|
+
- [BidAcceptanceDto](docs/BidAcceptanceDto.md)
|
|
474
|
+
- [BidAttachmentDto](docs/BidAttachmentDto.md)
|
|
470
475
|
- [BidAttachmentInputDto](docs/BidAttachmentInputDto.md)
|
|
476
|
+
- [BidAwardMethodDetailDto](docs/BidAwardMethodDetailDto.md)
|
|
471
477
|
- [BidBondDto](docs/BidBondDto.md)
|
|
478
|
+
- [BidCancellationDto](docs/BidCancellationDto.md)
|
|
479
|
+
- [BidCategoryPublic](docs/BidCategoryPublic.md)
|
|
480
|
+
- [BidContactDto](docs/BidContactDto.md)
|
|
481
|
+
- [BidContactsDto](docs/BidContactsDto.md)
|
|
482
|
+
- [BidContractDocumentDto](docs/BidContractDocumentDto.md)
|
|
483
|
+
- [BidDeliveryTermsDto](docs/BidDeliveryTermsDto.md)
|
|
484
|
+
- [BidDetailResponseDto](docs/BidDetailResponseDto.md)
|
|
472
485
|
- [BidDocumentDto](docs/BidDocumentDto.md)
|
|
473
486
|
- [BidFailedV2ResponseDto](docs/BidFailedV2ResponseDto.md)
|
|
474
487
|
- [BidItemDto](docs/BidItemDto.md)
|
|
488
|
+
- [BidLicenseRequirementDto](docs/BidLicenseRequirementDto.md)
|
|
489
|
+
- [BidLifecycleDto](docs/BidLifecycleDto.md)
|
|
475
490
|
- [BidManagerDto](docs/BidManagerDto.md)
|
|
491
|
+
- [BidMustReadNoticeDto](docs/BidMustReadNoticeDto.md)
|
|
492
|
+
- [BidPaymentTermsDto](docs/BidPaymentTermsDto.md)
|
|
493
|
+
- [BidPreliminaryPriceDto](docs/BidPreliminaryPriceDto.md)
|
|
494
|
+
- [BidPreliminaryPriceSlotDto](docs/BidPreliminaryPriceSlotDto.md)
|
|
495
|
+
- [BidProductDto](docs/BidProductDto.md)
|
|
476
496
|
- [BidPublicStatus](docs/BidPublicStatus.md)
|
|
497
|
+
- [BidQualificationReviewDto](docs/BidQualificationReviewDto.md)
|
|
498
|
+
- [BidRegionDto](docs/BidRegionDto.md)
|
|
499
|
+
- [BidRegionRestrictionDto](docs/BidRegionRestrictionDto.md)
|
|
477
500
|
- [BidRegisteredResponseDto](docs/BidRegisteredResponseDto.md)
|
|
501
|
+
- [BidRelatedBidDto](docs/BidRelatedBidDto.md)
|
|
502
|
+
- [BidRequiredDocumentDto](docs/BidRequiredDocumentDto.md)
|
|
478
503
|
- [BidResultParticipantAttachmentDto](docs/BidResultParticipantAttachmentDto.md)
|
|
479
504
|
- [BidResultParticipantDto](docs/BidResultParticipantDto.md)
|
|
480
505
|
- [BidResultsResponseDto](docs/BidResultsResponseDto.md)
|
|
506
|
+
- [BidSiteBriefingDto](docs/BidSiteBriefingDto.md)
|
|
481
507
|
- [BidStatementResponseDto](docs/BidStatementResponseDto.md)
|
|
508
|
+
- [BiddingStylePublic](docs/BiddingStylePublic.md)
|
|
482
509
|
- [CardPaymentRequestResponseDto](docs/CardPaymentRequestResponseDto.md)
|
|
483
510
|
- [CompleteAcceptance200Response](docs/CompleteAcceptance200Response.md)
|
|
484
511
|
- [CompleteAcceptanceRequestDto](docs/CompleteAcceptanceRequestDto.md)
|
|
@@ -487,8 +514,16 @@ Class | Method | HTTP request | Description
|
|
|
487
514
|
- [CreateCardPayment200Response](docs/CreateCardPayment200Response.md)
|
|
488
515
|
- [CreateCardPaymentDto](docs/CreateCardPaymentDto.md)
|
|
489
516
|
- [CreateCardPaymentRequestDto](docs/CreateCardPaymentRequestDto.md)
|
|
517
|
+
- [CreateEmbedLaunch201Response](docs/CreateEmbedLaunch201Response.md)
|
|
490
518
|
- [CreateExternalContractDocumentsRequestDto](docs/CreateExternalContractDocumentsRequestDto.md)
|
|
491
519
|
- [CreateExternalContractDocumentsResponseDto](docs/CreateExternalContractDocumentsResponseDto.md)
|
|
520
|
+
- [DeliveryDateTypePublic](docs/DeliveryDateTypePublic.md)
|
|
521
|
+
- [DeliveryMethodPublic](docs/DeliveryMethodPublic.md)
|
|
522
|
+
- [EmbedBidPrefillDto](docs/EmbedBidPrefillDto.md)
|
|
523
|
+
- [EmbedBidPrefillItemDto](docs/EmbedBidPrefillItemDto.md)
|
|
524
|
+
- [EmbedBidPrefillManagerDto](docs/EmbedBidPrefillManagerDto.md)
|
|
525
|
+
- [EmbedLaunchRequestDto](docs/EmbedLaunchRequestDto.md)
|
|
526
|
+
- [EmbedLaunchResponseDto](docs/EmbedLaunchResponseDto.md)
|
|
492
527
|
- [ExcellentProcurementPublic](docs/ExcellentProcurementPublic.md)
|
|
493
528
|
- [ExternalContractDocumentItemDto](docs/ExternalContractDocumentItemDto.md)
|
|
494
529
|
- [ExternalContractDocumentsResponseDto](docs/ExternalContractDocumentsResponseDto.md)
|
|
@@ -500,6 +535,7 @@ Class | Method | HTTP request | Description
|
|
|
500
535
|
- [GetBidStatement200Response](docs/GetBidStatement200Response.md)
|
|
501
536
|
- [GetSupplierCardPayableV2200Response](docs/GetSupplierCardPayableV2200Response.md)
|
|
502
537
|
- [GreenProductPublic](docs/GreenProductPublic.md)
|
|
538
|
+
- [HandoverTypePublic](docs/HandoverTypePublic.md)
|
|
503
539
|
- [HealthControllerCheck200Response](docs/HealthControllerCheck200Response.md)
|
|
504
540
|
- [HealthResponseDto](docs/HealthResponseDto.md)
|
|
505
541
|
- [HierarchicalRegionDto](docs/HierarchicalRegionDto.md)
|
|
@@ -508,6 +544,7 @@ Class | Method | HTTP request | Description
|
|
|
508
544
|
- [InvalidParamDto](docs/InvalidParamDto.md)
|
|
509
545
|
- [InvoiceSplitResponseDto](docs/InvoiceSplitResponseDto.md)
|
|
510
546
|
- [LegalMandatoryPublic](docs/LegalMandatoryPublic.md)
|
|
547
|
+
- [LicenseCombinationMode](docs/LicenseCombinationMode.md)
|
|
511
548
|
- [ListBidResults200Response](docs/ListBidResults200Response.md)
|
|
512
549
|
- [ListBidResults200ResponseMeta](docs/ListBidResults200ResponseMeta.md)
|
|
513
550
|
- [ListProducts200Response](docs/ListProducts200Response.md)
|
|
@@ -515,7 +552,11 @@ Class | Method | HTTP request | Description
|
|
|
515
552
|
- [MarkBidFailedRequestDto](docs/MarkBidFailedRequestDto.md)
|
|
516
553
|
- [NominatedSupplierDto](docs/NominatedSupplierDto.md)
|
|
517
554
|
- [OAuthErrorResponseDto](docs/OAuthErrorResponseDto.md)
|
|
555
|
+
- [PaymentMethodPublic](docs/PaymentMethodPublic.md)
|
|
518
556
|
- [PreconditionsDto](docs/PreconditionsDto.md)
|
|
557
|
+
- [PreliminaryPriceRegionPublic](docs/PreliminaryPriceRegionPublic.md)
|
|
558
|
+
- [PriceScoreTypePublic](docs/PriceScoreTypePublic.md)
|
|
559
|
+
- [PricingTypePublic](docs/PricingTypePublic.md)
|
|
519
560
|
- [ProblemDetailsDto](docs/ProblemDetailsDto.md)
|
|
520
561
|
- [ProductReceiptResponseDto](docs/ProductReceiptResponseDto.md)
|
|
521
562
|
- [ProductResponseDto](docs/ProductResponseDto.md)
|
|
@@ -525,6 +566,8 @@ Class | Method | HTTP request | Description
|
|
|
525
566
|
- [RegisterAwardRequestDto](docs/RegisterAwardRequestDto.md)
|
|
526
567
|
- [RegisterBid201Response](docs/RegisterBid201Response.md)
|
|
527
568
|
- [RegisterSemoContractRequestDto](docs/RegisterSemoContractRequestDto.md)
|
|
569
|
+
- [RegulationTypePublic](docs/RegulationTypePublic.md)
|
|
570
|
+
- [RelatedBidRelation](docs/RelatedBidRelation.md)
|
|
528
571
|
- [RequestInvoiceSplit200Response](docs/RequestInvoiceSplit200Response.md)
|
|
529
572
|
- [RequestInvoiceSplitRequestDto](docs/RequestInvoiceSplitRequestDto.md)
|
|
530
573
|
- [RetireeRosterInputDto](docs/RetireeRosterInputDto.md)
|
|
@@ -538,8 +581,10 @@ Class | Method | HTTP request | Description
|
|
|
538
581
|
- [StatementDocumentDto](docs/StatementDocumentDto.md)
|
|
539
582
|
- [StatementProductDto](docs/StatementProductDto.md)
|
|
540
583
|
- [SupplierCardPayableResponseDto](docs/SupplierCardPayableResponseDto.md)
|
|
584
|
+
- [TaxationTypePublic](docs/TaxationTypePublic.md)
|
|
541
585
|
- [TokenRequestDto](docs/TokenRequestDto.md)
|
|
542
586
|
- [TokenResponseDto](docs/TokenResponseDto.md)
|
|
587
|
+
- [TwoStagePhasePublic](docs/TwoStagePhasePublic.md)
|
|
543
588
|
- [UploadFile201Response](docs/UploadFile201Response.md)
|
|
544
589
|
- [UploadFileRequestDto](docs/UploadFileRequestDto.md)
|
|
545
590
|
- [UserinfoResponseDto](docs/UserinfoResponseDto.md)
|
|
@@ -570,5 +615,6 @@ Authentication schemes defined for the API:
|
|
|
570
615
|
- **products:read**: 물품 조회
|
|
571
616
|
- **products:write**: 물품 수신확인
|
|
572
617
|
- **files:write**: 파일 업로드
|
|
618
|
+
- **embed:launch**: 임베드 실행
|
|
573
619
|
- **sso:login**: SSO 로그인 클라이언트
|
|
574
620
|
|
package/api/embed-api.ts
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
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`입니다. **축이 여러 개라 어느 것을 읽어야 하는지 한 곳에서 정리합니다.** - **분기**는 `status` → `type` → `code` 순서로 좁혀 가세요. 앞의 둘만으로 충분한 연동이 대부분이고, `code`는 같은 status·type 안에서 사유를 가릅니다. - **표시·로그**는 `title`과 `detail`을 쓰세요. 사람이 읽는 문장이며 예고 없이 다듬습니다 — **문자열 비교로 분기하지 마세요**. - **재시도**는 `Retry-After` 헤더가 있으면 그 값을, 없으면 `retryable`을, 그것도 없으면 `status`를 따르세요. - **문의**할 때는 `traceId`를 첨부하세요. - `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: 49.2.1
|
|
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
|
+
|
|
16
|
+
import type { Configuration } from '../configuration';
|
|
17
|
+
import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios';
|
|
18
|
+
import globalAxios from 'axios';
|
|
19
|
+
// Some imports not used depending on template conditions
|
|
20
|
+
// @ts-ignore
|
|
21
|
+
import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction, replaceWithSerializableTypeIfNeeded } from '../common';
|
|
22
|
+
// @ts-ignore
|
|
23
|
+
import { BASE_PATH, COLLECTION_FORMATS, type RequestArgs, BaseAPI, RequiredError, operationServerMap } from '../base';
|
|
24
|
+
// @ts-ignore
|
|
25
|
+
import type { CreateEmbedLaunch201Response } from '../models';
|
|
26
|
+
// @ts-ignore
|
|
27
|
+
import type { EmbedLaunchRequestDto } from '../models';
|
|
28
|
+
// @ts-ignore
|
|
29
|
+
import type { ProblemDetailsDto } from '../models';
|
|
30
|
+
/**
|
|
31
|
+
* EmbedApi - axios parameter creator
|
|
32
|
+
*/
|
|
33
|
+
export const EmbedApiAxiosParamCreator = function (configuration?: Configuration) {
|
|
34
|
+
return {
|
|
35
|
+
/**
|
|
36
|
+
* 발주기관 담당자(`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입니다(임베드 그룹 설명의 요건 표 참조). 아래 예시 셋이 그대로 붙여 쓸 수 있는 최소 요청입니다.
|
|
37
|
+
* @summary 임베드 launch 발급
|
|
38
|
+
* @param {EmbedLaunchRequestDto} embedLaunchRequestDto
|
|
39
|
+
* @param {*} [options] Override http request option.
|
|
40
|
+
* @throws {RequiredError}
|
|
41
|
+
*/
|
|
42
|
+
createEmbedLaunch: async (embedLaunchRequestDto: EmbedLaunchRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
|
|
43
|
+
// verify required parameter 'embedLaunchRequestDto' is not null or undefined
|
|
44
|
+
assertParamExists('createEmbedLaunch', 'embedLaunchRequestDto', embedLaunchRequestDto)
|
|
45
|
+
const localVarPath = `/v2/embed/launch`;
|
|
46
|
+
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
47
|
+
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
|
|
48
|
+
let baseOptions;
|
|
49
|
+
if (configuration) {
|
|
50
|
+
baseOptions = configuration.baseOptions;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
|
|
54
|
+
const localVarHeaderParameter = {} as any;
|
|
55
|
+
const localVarQueryParameter = {} as any;
|
|
56
|
+
|
|
57
|
+
// authentication partner-oauth2 required
|
|
58
|
+
// oauth required
|
|
59
|
+
await setOAuthToObject(localVarHeaderParameter, "partner-oauth2", ["embed:launch"], configuration)
|
|
60
|
+
|
|
61
|
+
localVarHeaderParameter['Content-Type'] = 'application/json';
|
|
62
|
+
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
63
|
+
|
|
64
|
+
setSearchParams(localVarUrlObj, localVarQueryParameter);
|
|
65
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
66
|
+
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
|
|
67
|
+
localVarRequestOptions.data = serializeDataIfNeeded(embedLaunchRequestDto, localVarRequestOptions, configuration)
|
|
68
|
+
|
|
69
|
+
return {
|
|
70
|
+
url: toPathString(localVarUrlObj),
|
|
71
|
+
options: localVarRequestOptions,
|
|
72
|
+
};
|
|
73
|
+
},
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* EmbedApi - functional programming interface
|
|
79
|
+
*/
|
|
80
|
+
export const EmbedApiFp = function(configuration?: Configuration) {
|
|
81
|
+
const localVarAxiosParamCreator = EmbedApiAxiosParamCreator(configuration)
|
|
82
|
+
return {
|
|
83
|
+
/**
|
|
84
|
+
* 발주기관 담당자(`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입니다(임베드 그룹 설명의 요건 표 참조). 아래 예시 셋이 그대로 붙여 쓸 수 있는 최소 요청입니다.
|
|
85
|
+
* @summary 임베드 launch 발급
|
|
86
|
+
* @param {EmbedLaunchRequestDto} embedLaunchRequestDto
|
|
87
|
+
* @param {*} [options] Override http request option.
|
|
88
|
+
* @throws {RequiredError}
|
|
89
|
+
*/
|
|
90
|
+
async createEmbedLaunch(embedLaunchRequestDto: EmbedLaunchRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CreateEmbedLaunch201Response>> {
|
|
91
|
+
const localVarAxiosArgs = await localVarAxiosParamCreator.createEmbedLaunch(embedLaunchRequestDto, options);
|
|
92
|
+
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
|
|
93
|
+
const localVarOperationServerBasePath = operationServerMap['EmbedApi.createEmbedLaunch']?.[localVarOperationServerIndex]?.url;
|
|
94
|
+
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
95
|
+
},
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* EmbedApi - factory interface
|
|
101
|
+
*/
|
|
102
|
+
export const EmbedApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
|
|
103
|
+
const localVarFp = EmbedApiFp(configuration)
|
|
104
|
+
return {
|
|
105
|
+
/**
|
|
106
|
+
* 발주기관 담당자(`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입니다(임베드 그룹 설명의 요건 표 참조). 아래 예시 셋이 그대로 붙여 쓸 수 있는 최소 요청입니다.
|
|
107
|
+
* @summary 임베드 launch 발급
|
|
108
|
+
* @param {EmbedLaunchRequestDto} embedLaunchRequestDto
|
|
109
|
+
* @param {*} [options] Override http request option.
|
|
110
|
+
* @throws {RequiredError}
|
|
111
|
+
*/
|
|
112
|
+
createEmbedLaunch(embedLaunchRequestDto: EmbedLaunchRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<CreateEmbedLaunch201Response> {
|
|
113
|
+
return localVarFp.createEmbedLaunch(embedLaunchRequestDto, options).then((request) => request(axios, basePath));
|
|
114
|
+
},
|
|
115
|
+
};
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* EmbedApi - object-oriented interface
|
|
120
|
+
*/
|
|
121
|
+
export class EmbedApi extends BaseAPI {
|
|
122
|
+
/**
|
|
123
|
+
* 발주기관 담당자(`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입니다(임베드 그룹 설명의 요건 표 참조). 아래 예시 셋이 그대로 붙여 쓸 수 있는 최소 요청입니다.
|
|
124
|
+
* @summary 임베드 launch 발급
|
|
125
|
+
* @param {EmbedLaunchRequestDto} embedLaunchRequestDto
|
|
126
|
+
* @param {*} [options] Override http request option.
|
|
127
|
+
* @throws {RequiredError}
|
|
128
|
+
*/
|
|
129
|
+
public createEmbedLaunch(embedLaunchRequestDto: EmbedLaunchRequestDto, options?: RawAxiosRequestConfig) {
|
|
130
|
+
return EmbedApiFp(this.configuration).createEmbedLaunch(embedLaunchRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
package/api/oauth-api.ts
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
/**
|
|
4
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`입니다.
|
|
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`입니다. **축이 여러 개라 어느 것을 읽어야 하는지 한 곳에서 정리합니다.** - **분기**는 `status` → `type` → `code` 순서로 좁혀 가세요. 앞의 둘만으로 충분한 연동이 대부분이고, `code`는 같은 status·type 안에서 사유를 가릅니다. - **표시·로그**는 `title`과 `detail`을 쓰세요. 사람이 읽는 문장이며 예고 없이 다듬습니다 — **문자열 비교로 분기하지 마세요**. - **재시도**는 `Retry-After` 헤더가 있으면 그 값을, 없으면 `retryable`을, 그것도 없으면 `status`를 따르세요. - **문의**할 때는 `traceId`를 첨부하세요. - `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
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 49.1
|
|
7
|
+
* The version of the OpenAPI document: 49.2.1
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
package/api/partner-api-api.ts
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
/**
|
|
4
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`입니다.
|
|
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`입니다. **축이 여러 개라 어느 것을 읽어야 하는지 한 곳에서 정리합니다.** - **분기**는 `status` → `type` → `code` 순서로 좁혀 가세요. 앞의 둘만으로 충분한 연동이 대부분이고, `code`는 같은 status·type 안에서 사유를 가릅니다. - **표시·로그**는 `title`과 `detail`을 쓰세요. 사람이 읽는 문장이며 예고 없이 다듬습니다 — **문자열 비교로 분기하지 마세요**. - **재시도**는 `Retry-After` 헤더가 있으면 그 값을, 없으면 `retryable`을, 그것도 없으면 `status`를 따르세요. - **문의**할 때는 `traceId`를 첨부하세요. - `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
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 49.1
|
|
7
|
+
* The version of the OpenAPI document: 49.2.1
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
package/api/products-api.ts
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
/**
|
|
4
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`입니다.
|
|
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`입니다. **축이 여러 개라 어느 것을 읽어야 하는지 한 곳에서 정리합니다.** - **분기**는 `status` → `type` → `code` 순서로 좁혀 가세요. 앞의 둘만으로 충분한 연동이 대부분이고, `code`는 같은 status·type 안에서 사유를 가릅니다. - **표시·로그**는 `title`과 `detail`을 쓰세요. 사람이 읽는 문장이며 예고 없이 다듬습니다 — **문자열 비교로 분기하지 마세요**. - **재시도**는 `Retry-After` 헤더가 있으면 그 값을, 없으면 `retryable`을, 그것도 없으면 `status`를 따르세요. - **문의**할 때는 `traceId`를 첨부하세요. - `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
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 49.1
|
|
7
|
+
* The version of the OpenAPI document: 49.2.1
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
package/api/well-known-api.ts
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
/**
|
|
4
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`입니다.
|
|
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`입니다. **축이 여러 개라 어느 것을 읽어야 하는지 한 곳에서 정리합니다.** - **분기**는 `status` → `type` → `code` 순서로 좁혀 가세요. 앞의 둘만으로 충분한 연동이 대부분이고, `code`는 같은 status·type 안에서 사유를 가릅니다. - **표시·로그**는 `title`과 `detail`을 쓰세요. 사람이 읽는 문장이며 예고 없이 다듬습니다 — **문자열 비교로 분기하지 마세요**. - **재시도**는 `Retry-After` 헤더가 있으면 그 값을, 없으면 `retryable`을, 그것도 없으면 `status`를 따르세요. - **문의**할 때는 `traceId`를 첨부하세요. - `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
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 49.1
|
|
7
|
+
* The version of the OpenAPI document: 49.2.1
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
package/api.ts
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
/**
|
|
4
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`입니다.
|
|
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`입니다. **축이 여러 개라 어느 것을 읽어야 하는지 한 곳에서 정리합니다.** - **분기**는 `status` → `type` → `code` 순서로 좁혀 가세요. 앞의 둘만으로 충분한 연동이 대부분이고, `code`는 같은 status·type 안에서 사유를 가릅니다. - **표시·로그**는 `title`과 `detail`을 쓰세요. 사람이 읽는 문장이며 예고 없이 다듬습니다 — **문자열 비교로 분기하지 마세요**. - **재시도**는 `Retry-After` 헤더가 있으면 그 값을, 없으면 `retryable`을, 그것도 없으면 `status`를 따르세요. - **문의**할 때는 `traceId`를 첨부하세요. - `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
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 49.1
|
|
7
|
+
* The version of the OpenAPI document: 49.2.1
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
17
|
+
export * from './api/embed-api';
|
|
17
18
|
export * from './api/oauth-api';
|
|
18
19
|
export * from './api/partner-api-api';
|
|
19
20
|
export * from './api/products-api';
|
package/base.ts
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
/**
|
|
4
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`입니다.
|
|
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`입니다. **축이 여러 개라 어느 것을 읽어야 하는지 한 곳에서 정리합니다.** - **분기**는 `status` → `type` → `code` 순서로 좁혀 가세요. 앞의 둘만으로 충분한 연동이 대부분이고, `code`는 같은 status·type 안에서 사유를 가릅니다. - **표시·로그**는 `title`과 `detail`을 쓰세요. 사람이 읽는 문장이며 예고 없이 다듬습니다 — **문자열 비교로 분기하지 마세요**. - **재시도**는 `Retry-After` 헤더가 있으면 그 값을, 없으면 `retryable`을, 그것도 없으면 `status`를 따르세요. - **문의**할 때는 `traceId`를 첨부하세요. - `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
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 49.1
|
|
7
|
+
* The version of the OpenAPI document: 49.2.1
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
package/common.ts
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
/**
|
|
4
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`입니다.
|
|
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`입니다. **축이 여러 개라 어느 것을 읽어야 하는지 한 곳에서 정리합니다.** - **분기**는 `status` → `type` → `code` 순서로 좁혀 가세요. 앞의 둘만으로 충분한 연동이 대부분이고, `code`는 같은 status·type 안에서 사유를 가릅니다. - **표시·로그**는 `title`과 `detail`을 쓰세요. 사람이 읽는 문장이며 예고 없이 다듬습니다 — **문자열 비교로 분기하지 마세요**. - **재시도**는 `Retry-After` 헤더가 있으면 그 값을, 없으면 `retryable`을, 그것도 없으면 `status`를 따르세요. - **문의**할 때는 `traceId`를 첨부하세요. - `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
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 49.1
|
|
7
|
+
* The version of the OpenAPI document: 49.2.1
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|