@cmarket/partner-sdk 49.0.0 → 49.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -4
- package/api/embed-api.ts +133 -0
- package/api/oauth-api.ts +74 -1
- package/api/partner-api-api.ts +1 -1
- package/api/products-api.ts +1 -1
- package/api/well-known-api.ts +1 -1
- package/api.ts +2 -1
- package/base.ts +1 -1
- package/common.ts +1 -1
- package/configuration.ts +1 -1
- package/dist/api/embed-api.d.ts +68 -0
- package/dist/api/embed-api.js +133 -0
- package/dist/api/oauth-api.d.ts +35 -1
- package/dist/api/oauth-api.js +68 -1
- package/dist/api/partner-api-api.d.ts +1 -1
- package/dist/api/partner-api-api.js +1 -1
- package/dist/api/products-api.d.ts +1 -1
- package/dist/api/products-api.js +1 -1
- package/dist/api/well-known-api.d.ts +1 -1
- package/dist/api/well-known-api.js +1 -1
- package/dist/api.d.ts +2 -1
- package/dist/api.js +2 -1
- package/dist/base.d.ts +1 -1
- package/dist/base.js +1 -1
- package/dist/common.d.ts +1 -1
- package/dist/common.js +1 -1
- package/dist/configuration.d.ts +1 -1
- package/dist/configuration.js +1 -1
- 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 +35 -1
- package/dist/esm/api/oauth-api.js +68 -1
- package/dist/esm/api/partner-api-api.d.ts +1 -1
- package/dist/esm/api/partner-api-api.js +1 -1
- package/dist/esm/api/products-api.d.ts +1 -1
- package/dist/esm/api/products-api.js +1 -1
- package/dist/esm/api/well-known-api.d.ts +1 -1
- package/dist/esm/api/well-known-api.js +1 -1
- package/dist/esm/api.d.ts +2 -1
- package/dist/esm/api.js +2 -1
- package/dist/esm/base.d.ts +1 -1
- package/dist/esm/base.js +1 -1
- package/dist/esm/common.d.ts +1 -1
- package/dist/esm/common.js +1 -1
- package/dist/esm/configuration.d.ts +1 -1
- package/dist/esm/configuration.js +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/models/acceptance-result-response-dto.d.ts +1 -1
- package/dist/esm/models/acceptance-result-response-dto.js +1 -1
- package/dist/esm/models/acknowledge-product-receipt200-response.d.ts +1 -1
- package/dist/esm/models/acknowledge-product-receipt200-response.js +1 -1
- package/dist/esm/models/acknowledge-products-request-dto.d.ts +1 -1
- package/dist/esm/models/acknowledge-products-request-dto.js +1 -1
- package/dist/esm/models/api-catalog-dto.d.ts +1 -1
- package/dist/esm/models/api-catalog-dto.js +1 -1
- package/dist/esm/models/api-catalog-entry-dto.d.ts +1 -1
- package/dist/esm/models/api-catalog-entry-dto.js +1 -1
- package/dist/esm/models/api-catalog-link-dto.d.ts +1 -1
- package/dist/esm/models/api-catalog-link-dto.js +1 -1
- package/dist/esm/models/authorization-server-metadata-dto.d.ts +1 -1
- package/dist/esm/models/authorization-server-metadata-dto.js +1 -1
- package/dist/esm/models/avalues-input-dto.d.ts +1 -1
- package/dist/esm/models/avalues-input-dto.js +1 -1
- 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 +1 -1
- package/dist/esm/models/award-registered-v2-response-dto.js +1 -1
- 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 +1 -1
- package/dist/esm/models/bid-attachment-input-dto.js +1 -1
- 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 +1 -1
- package/dist/esm/models/bid-bond-dto.js +1 -1
- 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 +1 -1
- package/dist/esm/models/bid-document-dto.js +1 -1
- package/dist/esm/models/bid-failed-v2-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-failed-v2-response-dto.js +1 -1
- package/dist/esm/models/bid-item-dto.d.ts +1 -1
- package/dist/esm/models/bid-item-dto.js +1 -1
- 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 +1 -1
- package/dist/esm/models/bid-manager-dto.js +1 -1
- 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 +1 -1
- package/dist/esm/models/bid-public-status.js +1 -1
- 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 +1 -1
- package/dist/esm/models/bid-registered-response-dto.js +1 -1
- 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 +1 -1
- package/dist/esm/models/bid-result-participant-attachment-dto.js +1 -1
- package/dist/esm/models/bid-result-participant-dto.d.ts +1 -1
- package/dist/esm/models/bid-result-participant-dto.js +1 -1
- package/dist/esm/models/bid-results-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-results-response-dto.js +1 -1
- 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 +1 -1
- package/dist/esm/models/bid-statement-response-dto.js +1 -1
- 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 +1 -1
- package/dist/esm/models/card-payment-request-response-dto.js +1 -1
- package/dist/esm/models/complete-acceptance-request-dto.d.ts +1 -1
- package/dist/esm/models/complete-acceptance-request-dto.js +1 -1
- package/dist/esm/models/complete-acceptance200-response.d.ts +1 -1
- package/dist/esm/models/complete-acceptance200-response.js +1 -1
- package/dist/esm/models/contract-restriction-confirm-input-dto.d.ts +1 -1
- package/dist/esm/models/contract-restriction-confirm-input-dto.js +1 -1
- package/dist/esm/models/create-bid-request-dto.d.ts +1 -1
- package/dist/esm/models/create-bid-request-dto.js +1 -1
- package/dist/esm/models/create-card-payment-dto.d.ts +1 -1
- package/dist/esm/models/create-card-payment-dto.js +1 -1
- package/dist/esm/models/create-card-payment-request-dto.d.ts +1 -1
- package/dist/esm/models/create-card-payment-request-dto.js +1 -1
- package/dist/esm/models/create-card-payment200-response.d.ts +1 -1
- package/dist/esm/models/create-card-payment200-response.js +1 -1
- 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 +1 -1
- package/dist/esm/models/create-external-contract-documents-request-dto.js +1 -1
- package/dist/esm/models/create-external-contract-documents-response-dto.d.ts +1 -1
- package/dist/esm/models/create-external-contract-documents-response-dto.js +1 -1
- 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 +1 -1
- package/dist/esm/models/excellent-procurement-public.js +1 -1
- package/dist/esm/models/external-contract-document-item-dto.d.ts +1 -1
- package/dist/esm/models/external-contract-document-item-dto.js +1 -1
- package/dist/esm/models/external-contract-documents-response-dto.d.ts +1 -1
- package/dist/esm/models/external-contract-documents-response-dto.js +1 -1
- package/dist/esm/models/external-contract-item-dto.d.ts +1 -1
- package/dist/esm/models/external-contract-item-dto.js +1 -1
- package/dist/esm/models/external-contract-snapshot-dto.d.ts +1 -1
- package/dist/esm/models/external-contract-snapshot-dto.js +1 -1
- package/dist/esm/models/external-document-inputs-dto.d.ts +1 -1
- package/dist/esm/models/external-document-inputs-dto.js +1 -1
- package/dist/esm/models/file-uploaded-response-dto.d.ts +1 -1
- package/dist/esm/models/file-uploaded-response-dto.js +1 -1
- package/dist/esm/models/generated-external-contract-document-dto.d.ts +1 -1
- package/dist/esm/models/generated-external-contract-document-dto.js +1 -1
- package/dist/esm/models/get-bid-statement200-response.d.ts +1 -1
- package/dist/esm/models/get-bid-statement200-response.js +1 -1
- package/dist/esm/models/get-supplier-card-payable-v2200-response.d.ts +1 -1
- package/dist/esm/models/get-supplier-card-payable-v2200-response.js +1 -1
- package/dist/esm/models/green-product-public.d.ts +1 -1
- package/dist/esm/models/green-product-public.js +1 -1
- 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 +1 -1
- package/dist/esm/models/health-controller-check200-response.js +1 -1
- package/dist/esm/models/health-response-dto.d.ts +1 -1
- package/dist/esm/models/health-response-dto.js +1 -1
- package/dist/esm/models/hierarchical-region-dto.d.ts +1 -1
- package/dist/esm/models/hierarchical-region-dto.js +1 -1
- package/dist/esm/models/index.d.ts +46 -0
- package/dist/esm/models/index.js +46 -0
- package/dist/esm/models/introspect-request-dto.d.ts +1 -1
- package/dist/esm/models/introspect-request-dto.js +1 -1
- package/dist/esm/models/introspection-response-dto.d.ts +1 -1
- package/dist/esm/models/introspection-response-dto.js +1 -1
- package/dist/esm/models/invalid-param-dto.d.ts +1 -1
- package/dist/esm/models/invalid-param-dto.js +1 -1
- package/dist/esm/models/invoice-split-response-dto.d.ts +1 -1
- package/dist/esm/models/invoice-split-response-dto.js +1 -1
- package/dist/esm/models/legal-mandatory-public.d.ts +1 -1
- package/dist/esm/models/legal-mandatory-public.js +1 -1
- 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 +1 -1
- package/dist/esm/models/list-bid-results200-response-meta.js +1 -1
- package/dist/esm/models/list-bid-results200-response.d.ts +1 -1
- package/dist/esm/models/list-bid-results200-response.js +1 -1
- package/dist/esm/models/list-products200-response.d.ts +1 -1
- package/dist/esm/models/list-products200-response.js +1 -1
- package/dist/esm/models/mark-bid-failed-request-dto.d.ts +1 -1
- package/dist/esm/models/mark-bid-failed-request-dto.js +1 -1
- package/dist/esm/models/mark-bid-failed201-response.d.ts +1 -1
- package/dist/esm/models/mark-bid-failed201-response.js +1 -1
- package/dist/esm/models/nominated-supplier-dto.d.ts +1 -1
- package/dist/esm/models/nominated-supplier-dto.js +1 -1
- package/dist/esm/models/oauth-error-response-dto.d.ts +1 -1
- package/dist/esm/models/oauth-error-response-dto.js +1 -1
- 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 +1 -1
- package/dist/esm/models/preconditions-dto.js +1 -1
- 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 +1 -1
- package/dist/esm/models/problem-details-dto.js +1 -1
- package/dist/esm/models/product-receipt-response-dto.d.ts +1 -1
- package/dist/esm/models/product-receipt-response-dto.js +1 -1
- package/dist/esm/models/product-response-dto.d.ts +1 -1
- package/dist/esm/models/product-response-dto.js +1 -1
- package/dist/esm/models/protected-resource-metadata-dto.d.ts +1 -1
- package/dist/esm/models/protected-resource-metadata-dto.js +1 -1
- package/dist/esm/models/qualification-review-input-dto.d.ts +1 -1
- package/dist/esm/models/qualification-review-input-dto.js +1 -1
- package/dist/esm/models/register-award-request-dto.d.ts +1 -1
- package/dist/esm/models/register-award-request-dto.js +1 -1
- package/dist/esm/models/register-award201-response.d.ts +1 -1
- package/dist/esm/models/register-award201-response.js +1 -1
- package/dist/esm/models/register-bid201-response.d.ts +1 -1
- package/dist/esm/models/register-bid201-response.js +1 -1
- package/dist/esm/models/register-semo-contract-request-dto.d.ts +1 -1
- package/dist/esm/models/register-semo-contract-request-dto.js +1 -1
- 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 +1 -1
- package/dist/esm/models/request-invoice-split-request-dto.js +1 -1
- package/dist/esm/models/request-invoice-split200-response.d.ts +1 -1
- package/dist/esm/models/request-invoice-split200-response.js +1 -1
- package/dist/esm/models/retiree-roster-input-dto.d.ts +1 -1
- package/dist/esm/models/retiree-roster-input-dto.js +1 -1
- package/dist/esm/models/retiree-roster-row-dto.d.ts +1 -1
- package/dist/esm/models/retiree-roster-row-dto.js +1 -1
- package/dist/esm/models/revoke-request-dto.d.ts +1 -1
- package/dist/esm/models/revoke-request-dto.js +1 -1
- package/dist/esm/models/rotate-secret-request-dto.d.ts +21 -0
- package/dist/esm/models/rotate-secret-request-dto.js +14 -0
- package/dist/esm/models/rotate-secret-response-dto.d.ts +25 -0
- package/dist/esm/models/rotate-secret-response-dto.js +14 -0
- package/dist/esm/models/semo-contract-registered-response-dto.d.ts +1 -1
- package/dist/esm/models/semo-contract-registered-response-dto.js +1 -1
- package/dist/esm/models/semo-contract-taxinvoice-status-response-dto.d.ts +1 -1
- package/dist/esm/models/semo-contract-taxinvoice-status-response-dto.js +1 -1
- package/dist/esm/models/site-briefing-input-dto.d.ts +1 -1
- package/dist/esm/models/site-briefing-input-dto.js +1 -1
- package/dist/esm/models/statement-document-dto.d.ts +1 -1
- package/dist/esm/models/statement-document-dto.js +1 -1
- package/dist/esm/models/statement-product-dto.d.ts +1 -1
- package/dist/esm/models/statement-product-dto.js +1 -1
- package/dist/esm/models/supplier-card-payable-response-dto.d.ts +1 -1
- package/dist/esm/models/supplier-card-payable-response-dto.js +1 -1
- 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 +1 -1
- package/dist/esm/models/token-request-dto.js +1 -1
- package/dist/esm/models/token-response-dto.d.ts +1 -1
- package/dist/esm/models/token-response-dto.js +1 -1
- 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 +1 -1
- package/dist/esm/models/upload-file-request-dto.js +1 -1
- package/dist/esm/models/upload-file201-response.d.ts +1 -1
- package/dist/esm/models/upload-file201-response.js +1 -1
- package/dist/esm/models/userinfo-response-dto.d.ts +1 -1
- package/dist/esm/models/userinfo-response-dto.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/models/acceptance-result-response-dto.d.ts +1 -1
- package/dist/models/acceptance-result-response-dto.js +1 -1
- package/dist/models/acknowledge-product-receipt200-response.d.ts +1 -1
- package/dist/models/acknowledge-product-receipt200-response.js +1 -1
- package/dist/models/acknowledge-products-request-dto.d.ts +1 -1
- package/dist/models/acknowledge-products-request-dto.js +1 -1
- package/dist/models/api-catalog-dto.d.ts +1 -1
- package/dist/models/api-catalog-dto.js +1 -1
- package/dist/models/api-catalog-entry-dto.d.ts +1 -1
- package/dist/models/api-catalog-entry-dto.js +1 -1
- package/dist/models/api-catalog-link-dto.d.ts +1 -1
- package/dist/models/api-catalog-link-dto.js +1 -1
- package/dist/models/authorization-server-metadata-dto.d.ts +1 -1
- package/dist/models/authorization-server-metadata-dto.js +1 -1
- package/dist/models/avalues-input-dto.d.ts +1 -1
- package/dist/models/avalues-input-dto.js +1 -1
- 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 +1 -1
- package/dist/models/award-registered-v2-response-dto.js +1 -1
- 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 +1 -1
- package/dist/models/bid-attachment-input-dto.js +1 -1
- 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 +1 -1
- package/dist/models/bid-bond-dto.js +1 -1
- 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 +1 -1
- package/dist/models/bid-document-dto.js +1 -1
- package/dist/models/bid-failed-v2-response-dto.d.ts +1 -1
- package/dist/models/bid-failed-v2-response-dto.js +1 -1
- package/dist/models/bid-item-dto.d.ts +1 -1
- package/dist/models/bid-item-dto.js +1 -1
- 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 +1 -1
- package/dist/models/bid-manager-dto.js +1 -1
- 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 +1 -1
- package/dist/models/bid-public-status.js +1 -1
- 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 +1 -1
- package/dist/models/bid-registered-response-dto.js +1 -1
- 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 +1 -1
- package/dist/models/bid-result-participant-attachment-dto.js +1 -1
- package/dist/models/bid-result-participant-dto.d.ts +1 -1
- package/dist/models/bid-result-participant-dto.js +1 -1
- package/dist/models/bid-results-response-dto.d.ts +1 -1
- package/dist/models/bid-results-response-dto.js +1 -1
- 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 +1 -1
- package/dist/models/bid-statement-response-dto.js +1 -1
- 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 +1 -1
- package/dist/models/card-payment-request-response-dto.js +1 -1
- package/dist/models/complete-acceptance-request-dto.d.ts +1 -1
- package/dist/models/complete-acceptance-request-dto.js +1 -1
- package/dist/models/complete-acceptance200-response.d.ts +1 -1
- package/dist/models/complete-acceptance200-response.js +1 -1
- package/dist/models/contract-restriction-confirm-input-dto.d.ts +1 -1
- package/dist/models/contract-restriction-confirm-input-dto.js +1 -1
- package/dist/models/create-bid-request-dto.d.ts +1 -1
- package/dist/models/create-bid-request-dto.js +1 -1
- package/dist/models/create-card-payment-dto.d.ts +1 -1
- package/dist/models/create-card-payment-dto.js +1 -1
- package/dist/models/create-card-payment-request-dto.d.ts +1 -1
- package/dist/models/create-card-payment-request-dto.js +1 -1
- package/dist/models/create-card-payment200-response.d.ts +1 -1
- package/dist/models/create-card-payment200-response.js +1 -1
- 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 +1 -1
- package/dist/models/create-external-contract-documents-request-dto.js +1 -1
- package/dist/models/create-external-contract-documents-response-dto.d.ts +1 -1
- package/dist/models/create-external-contract-documents-response-dto.js +1 -1
- 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 +1 -1
- package/dist/models/excellent-procurement-public.js +1 -1
- package/dist/models/external-contract-document-item-dto.d.ts +1 -1
- package/dist/models/external-contract-document-item-dto.js +1 -1
- package/dist/models/external-contract-documents-response-dto.d.ts +1 -1
- package/dist/models/external-contract-documents-response-dto.js +1 -1
- package/dist/models/external-contract-item-dto.d.ts +1 -1
- package/dist/models/external-contract-item-dto.js +1 -1
- package/dist/models/external-contract-snapshot-dto.d.ts +1 -1
- package/dist/models/external-contract-snapshot-dto.js +1 -1
- package/dist/models/external-document-inputs-dto.d.ts +1 -1
- package/dist/models/external-document-inputs-dto.js +1 -1
- package/dist/models/file-uploaded-response-dto.d.ts +1 -1
- package/dist/models/file-uploaded-response-dto.js +1 -1
- package/dist/models/generated-external-contract-document-dto.d.ts +1 -1
- package/dist/models/generated-external-contract-document-dto.js +1 -1
- package/dist/models/get-bid-statement200-response.d.ts +1 -1
- package/dist/models/get-bid-statement200-response.js +1 -1
- package/dist/models/get-supplier-card-payable-v2200-response.d.ts +1 -1
- package/dist/models/get-supplier-card-payable-v2200-response.js +1 -1
- package/dist/models/green-product-public.d.ts +1 -1
- package/dist/models/green-product-public.js +1 -1
- 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 +1 -1
- package/dist/models/health-controller-check200-response.js +1 -1
- package/dist/models/health-response-dto.d.ts +1 -1
- package/dist/models/health-response-dto.js +1 -1
- package/dist/models/hierarchical-region-dto.d.ts +1 -1
- package/dist/models/hierarchical-region-dto.js +1 -1
- package/dist/models/index.d.ts +46 -0
- package/dist/models/index.js +46 -0
- package/dist/models/introspect-request-dto.d.ts +1 -1
- package/dist/models/introspect-request-dto.js +1 -1
- package/dist/models/introspection-response-dto.d.ts +1 -1
- package/dist/models/introspection-response-dto.js +1 -1
- package/dist/models/invalid-param-dto.d.ts +1 -1
- package/dist/models/invalid-param-dto.js +1 -1
- package/dist/models/invoice-split-response-dto.d.ts +1 -1
- package/dist/models/invoice-split-response-dto.js +1 -1
- package/dist/models/legal-mandatory-public.d.ts +1 -1
- package/dist/models/legal-mandatory-public.js +1 -1
- 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 +1 -1
- package/dist/models/list-bid-results200-response-meta.js +1 -1
- package/dist/models/list-bid-results200-response.d.ts +1 -1
- package/dist/models/list-bid-results200-response.js +1 -1
- package/dist/models/list-products200-response.d.ts +1 -1
- package/dist/models/list-products200-response.js +1 -1
- package/dist/models/mark-bid-failed-request-dto.d.ts +1 -1
- package/dist/models/mark-bid-failed-request-dto.js +1 -1
- package/dist/models/mark-bid-failed201-response.d.ts +1 -1
- package/dist/models/mark-bid-failed201-response.js +1 -1
- package/dist/models/nominated-supplier-dto.d.ts +1 -1
- package/dist/models/nominated-supplier-dto.js +1 -1
- package/dist/models/oauth-error-response-dto.d.ts +1 -1
- package/dist/models/oauth-error-response-dto.js +1 -1
- 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 +1 -1
- package/dist/models/preconditions-dto.js +1 -1
- 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 +1 -1
- package/dist/models/problem-details-dto.js +1 -1
- package/dist/models/product-receipt-response-dto.d.ts +1 -1
- package/dist/models/product-receipt-response-dto.js +1 -1
- package/dist/models/product-response-dto.d.ts +1 -1
- package/dist/models/product-response-dto.js +1 -1
- package/dist/models/protected-resource-metadata-dto.d.ts +1 -1
- package/dist/models/protected-resource-metadata-dto.js +1 -1
- package/dist/models/qualification-review-input-dto.d.ts +1 -1
- package/dist/models/qualification-review-input-dto.js +1 -1
- package/dist/models/register-award-request-dto.d.ts +1 -1
- package/dist/models/register-award-request-dto.js +1 -1
- package/dist/models/register-award201-response.d.ts +1 -1
- package/dist/models/register-award201-response.js +1 -1
- package/dist/models/register-bid201-response.d.ts +1 -1
- package/dist/models/register-bid201-response.js +1 -1
- package/dist/models/register-semo-contract-request-dto.d.ts +1 -1
- package/dist/models/register-semo-contract-request-dto.js +1 -1
- 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 +1 -1
- package/dist/models/request-invoice-split-request-dto.js +1 -1
- package/dist/models/request-invoice-split200-response.d.ts +1 -1
- package/dist/models/request-invoice-split200-response.js +1 -1
- package/dist/models/retiree-roster-input-dto.d.ts +1 -1
- package/dist/models/retiree-roster-input-dto.js +1 -1
- package/dist/models/retiree-roster-row-dto.d.ts +1 -1
- package/dist/models/retiree-roster-row-dto.js +1 -1
- package/dist/models/revoke-request-dto.d.ts +1 -1
- package/dist/models/revoke-request-dto.js +1 -1
- package/dist/models/rotate-secret-request-dto.d.ts +21 -0
- package/dist/models/rotate-secret-request-dto.js +15 -0
- package/dist/models/rotate-secret-response-dto.d.ts +25 -0
- package/dist/models/rotate-secret-response-dto.js +15 -0
- package/dist/models/semo-contract-registered-response-dto.d.ts +1 -1
- package/dist/models/semo-contract-registered-response-dto.js +1 -1
- package/dist/models/semo-contract-taxinvoice-status-response-dto.d.ts +1 -1
- package/dist/models/semo-contract-taxinvoice-status-response-dto.js +1 -1
- package/dist/models/site-briefing-input-dto.d.ts +1 -1
- package/dist/models/site-briefing-input-dto.js +1 -1
- package/dist/models/statement-document-dto.d.ts +1 -1
- package/dist/models/statement-document-dto.js +1 -1
- package/dist/models/statement-product-dto.d.ts +1 -1
- package/dist/models/statement-product-dto.js +1 -1
- package/dist/models/supplier-card-payable-response-dto.d.ts +1 -1
- package/dist/models/supplier-card-payable-response-dto.js +1 -1
- 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 +1 -1
- package/dist/models/token-request-dto.js +1 -1
- package/dist/models/token-response-dto.d.ts +1 -1
- package/dist/models/token-response-dto.js +1 -1
- 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 +1 -1
- package/dist/models/upload-file-request-dto.js +1 -1
- package/dist/models/upload-file201-response.d.ts +1 -1
- package/dist/models/upload-file201-response.js +1 -1
- package/dist/models/userinfo-response-dto.d.ts +1 -1
- package/dist/models/userinfo-response-dto.js +1 -1
- 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/OauthApi.md +54 -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/RegulationTypePublic.md +11 -0
- package/docs/RelatedBidRelation.md +13 -0
- package/docs/RotateSecretRequestDto.md +22 -0
- package/docs/RotateSecretResponseDto.md +24 -0
- package/docs/TaxationTypePublic.md +13 -0
- package/docs/TwoStagePhasePublic.md +11 -0
- package/index.ts +1 -1
- package/models/acceptance-result-response-dto.ts +1 -1
- package/models/acknowledge-product-receipt200-response.ts +1 -1
- package/models/acknowledge-products-request-dto.ts +1 -1
- package/models/api-catalog-dto.ts +1 -1
- package/models/api-catalog-entry-dto.ts +1 -1
- package/models/api-catalog-link-dto.ts +1 -1
- package/models/authorization-server-metadata-dto.ts +1 -1
- package/models/avalues-input-dto.ts +1 -1
- package/models/award-method-public.ts +35 -0
- package/models/award-registered-v2-response-dto.ts +1 -1
- package/models/bid-acceptance-dto.ts +35 -0
- package/models/bid-attachment-dto.ts +35 -0
- package/models/bid-attachment-input-dto.ts +1 -1
- package/models/bid-avalues-dto.ts +47 -0
- package/models/bid-award-method-detail-dto.ts +36 -0
- package/models/bid-bond-dto.ts +1 -1
- 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 +1 -1
- package/models/bid-failed-v2-response-dto.ts +1 -1
- package/models/bid-item-dto.ts +1 -1
- package/models/bid-license-requirement-dto.ts +36 -0
- package/models/bid-lifecycle-dto.ts +39 -0
- package/models/bid-manager-dto.ts +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/models/bid-result-participant-dto.ts +1 -1
- package/models/bid-results-response-dto.ts +1 -1
- package/models/bid-site-briefing-dto.ts +27 -0
- package/models/bid-statement-response-dto.ts +1 -1
- package/models/bidding-style-public.ts +29 -0
- package/models/card-payment-request-response-dto.ts +1 -1
- package/models/complete-acceptance-request-dto.ts +1 -1
- package/models/complete-acceptance200-response.ts +1 -1
- package/models/contract-restriction-confirm-input-dto.ts +1 -1
- package/models/create-bid-request-dto.ts +1 -1
- package/models/create-card-payment-dto.ts +1 -1
- package/models/create-card-payment-request-dto.ts +1 -1
- package/models/create-card-payment200-response.ts +1 -1
- package/models/create-embed-launch201-response.ts +23 -0
- package/models/create-external-contract-documents-request-dto.ts +1 -1
- package/models/create-external-contract-documents-response-dto.ts +1 -1
- 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 +1 -1
- package/models/external-contract-document-item-dto.ts +1 -1
- package/models/external-contract-documents-response-dto.ts +1 -1
- package/models/external-contract-item-dto.ts +1 -1
- package/models/external-contract-snapshot-dto.ts +1 -1
- package/models/external-document-inputs-dto.ts +1 -1
- package/models/file-uploaded-response-dto.ts +1 -1
- package/models/generated-external-contract-document-dto.ts +1 -1
- package/models/get-bid-statement200-response.ts +1 -1
- package/models/get-supplier-card-payable-v2200-response.ts +1 -1
- package/models/green-product-public.ts +1 -1
- package/models/handover-type-public.ts +29 -0
- package/models/health-controller-check200-response.ts +1 -1
- package/models/health-response-dto.ts +1 -1
- package/models/hierarchical-region-dto.ts +1 -1
- package/models/index.ts +46 -0
- package/models/introspect-request-dto.ts +1 -1
- package/models/introspection-response-dto.ts +1 -1
- package/models/invalid-param-dto.ts +1 -1
- package/models/invoice-split-response-dto.ts +1 -1
- package/models/legal-mandatory-public.ts +1 -1
- package/models/license-combination-mode.ts +29 -0
- package/models/list-bid-results200-response-meta.ts +1 -1
- package/models/list-bid-results200-response.ts +1 -1
- package/models/list-products200-response.ts +1 -1
- package/models/mark-bid-failed-request-dto.ts +1 -1
- package/models/mark-bid-failed201-response.ts +1 -1
- package/models/nominated-supplier-dto.ts +1 -1
- package/models/oauth-error-response-dto.ts +1 -1
- package/models/payment-method-public.ts +29 -0
- package/models/preconditions-dto.ts +1 -1
- 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 +1 -1
- package/models/product-receipt-response-dto.ts +1 -1
- package/models/product-response-dto.ts +1 -1
- package/models/protected-resource-metadata-dto.ts +1 -1
- package/models/qualification-review-input-dto.ts +1 -1
- package/models/register-award-request-dto.ts +1 -1
- package/models/register-award201-response.ts +1 -1
- package/models/register-bid201-response.ts +1 -1
- package/models/register-semo-contract-request-dto.ts +1 -1
- package/models/regulation-type-public.ts +29 -0
- package/models/related-bid-relation.ts +30 -0
- package/models/request-invoice-split-request-dto.ts +1 -1
- package/models/request-invoice-split200-response.ts +1 -1
- package/models/retiree-roster-input-dto.ts +1 -1
- package/models/retiree-roster-row-dto.ts +1 -1
- package/models/revoke-request-dto.ts +1 -1
- package/models/rotate-secret-request-dto.ts +27 -0
- package/models/rotate-secret-response-dto.ts +31 -0
- package/models/semo-contract-registered-response-dto.ts +1 -1
- package/models/semo-contract-taxinvoice-status-response-dto.ts +1 -1
- package/models/site-briefing-input-dto.ts +1 -1
- package/models/statement-document-dto.ts +1 -1
- package/models/statement-product-dto.ts +1 -1
- package/models/supplier-card-payable-response-dto.ts +1 -1
- package/models/taxation-type-public.ts +30 -0
- package/models/token-request-dto.ts +1 -1
- package/models/token-response-dto.ts +1 -1
- package/models/two-stage-phase-public.ts +29 -0
- package/models/upload-file-request-dto.ts +1 -1
- package/models/upload-file201-response.ts +1 -1
- package/models/userinfo-response-dto.ts +1 -1
- 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.
|
|
16
|
+
npm install @cmarket/partner-sdk@49.2.0
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
Java (Maven):
|
|
@@ -22,7 +22,7 @@ Java (Maven):
|
|
|
22
22
|
<dependency>
|
|
23
23
|
<groupId>net.c-market</groupId>
|
|
24
24
|
<artifactId>partner-sdk</artifactId>
|
|
25
|
-
<version>49.
|
|
25
|
+
<version>49.2.0</version>
|
|
26
26
|
</dependency>
|
|
27
27
|
```
|
|
28
28
|
|
|
@@ -375,7 +375,7 @@ CMARKET 운영팀에 등록해야 합니다(미등록 origin 은 iframe 로드
|
|
|
375
375
|
|
|
376
376
|
---
|
|
377
377
|
|
|
378
|
-
## @cmarket/partner-sdk@49.
|
|
378
|
+
## @cmarket/partner-sdk@49.2.0
|
|
379
379
|
|
|
380
380
|
This generator creates TypeScript/JavaScript client that utilizes [axios](https://github.com/axios/axios). The generated Node module can be used in the following environments:
|
|
381
381
|
|
|
@@ -413,7 +413,7 @@ navigate to the folder of your consuming project and run one of the following co
|
|
|
413
413
|
_published:_
|
|
414
414
|
|
|
415
415
|
```
|
|
416
|
-
npm install @cmarket/partner-sdk@49.
|
|
416
|
+
npm install @cmarket/partner-sdk@49.2.0 --save
|
|
417
417
|
```
|
|
418
418
|
|
|
419
419
|
_unPublished (not recommended):_
|
|
@@ -428,8 +428,10 @@ 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)
|
|
434
|
+
*OauthApi* | [**rotateSecret**](docs/OauthApi.md#rotatesecret) | **POST** /oauth/secret | 자격증명 재발급 (client_secret 자가회전)
|
|
433
435
|
*OauthApi* | [**token**](docs/OauthApi.md#token) | **POST** /oauth/token | 액세스 토큰 발급
|
|
434
436
|
*OauthApi* | [**userinfo**](docs/OauthApi.md#userinfo) | **GET** /oauth/userinfo | 로그인 사용자 신원 조회
|
|
435
437
|
*PartnerApiApi* | [**completeAcceptance**](docs/PartnerApiApi.md#completeacceptance) | **POST** /v2/bids/{bidRef}/acceptance | 검수완료 전송
|
|
@@ -465,19 +467,45 @@ Class | Method | HTTP request | Description
|
|
|
465
467
|
- [ApiCatalogEntryDto](docs/ApiCatalogEntryDto.md)
|
|
466
468
|
- [ApiCatalogLinkDto](docs/ApiCatalogLinkDto.md)
|
|
467
469
|
- [AuthorizationServerMetadataDto](docs/AuthorizationServerMetadataDto.md)
|
|
470
|
+
- [AwardMethodPublic](docs/AwardMethodPublic.md)
|
|
468
471
|
- [AwardRegisteredV2ResponseDto](docs/AwardRegisteredV2ResponseDto.md)
|
|
472
|
+
- [BidAValuesDto](docs/BidAValuesDto.md)
|
|
473
|
+
- [BidAcceptanceDto](docs/BidAcceptanceDto.md)
|
|
474
|
+
- [BidAttachmentDto](docs/BidAttachmentDto.md)
|
|
469
475
|
- [BidAttachmentInputDto](docs/BidAttachmentInputDto.md)
|
|
476
|
+
- [BidAwardMethodDetailDto](docs/BidAwardMethodDetailDto.md)
|
|
470
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)
|
|
471
485
|
- [BidDocumentDto](docs/BidDocumentDto.md)
|
|
472
486
|
- [BidFailedV2ResponseDto](docs/BidFailedV2ResponseDto.md)
|
|
473
487
|
- [BidItemDto](docs/BidItemDto.md)
|
|
488
|
+
- [BidLicenseRequirementDto](docs/BidLicenseRequirementDto.md)
|
|
489
|
+
- [BidLifecycleDto](docs/BidLifecycleDto.md)
|
|
474
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)
|
|
475
496
|
- [BidPublicStatus](docs/BidPublicStatus.md)
|
|
497
|
+
- [BidQualificationReviewDto](docs/BidQualificationReviewDto.md)
|
|
498
|
+
- [BidRegionDto](docs/BidRegionDto.md)
|
|
499
|
+
- [BidRegionRestrictionDto](docs/BidRegionRestrictionDto.md)
|
|
476
500
|
- [BidRegisteredResponseDto](docs/BidRegisteredResponseDto.md)
|
|
501
|
+
- [BidRelatedBidDto](docs/BidRelatedBidDto.md)
|
|
502
|
+
- [BidRequiredDocumentDto](docs/BidRequiredDocumentDto.md)
|
|
477
503
|
- [BidResultParticipantAttachmentDto](docs/BidResultParticipantAttachmentDto.md)
|
|
478
504
|
- [BidResultParticipantDto](docs/BidResultParticipantDto.md)
|
|
479
505
|
- [BidResultsResponseDto](docs/BidResultsResponseDto.md)
|
|
506
|
+
- [BidSiteBriefingDto](docs/BidSiteBriefingDto.md)
|
|
480
507
|
- [BidStatementResponseDto](docs/BidStatementResponseDto.md)
|
|
508
|
+
- [BiddingStylePublic](docs/BiddingStylePublic.md)
|
|
481
509
|
- [CardPaymentRequestResponseDto](docs/CardPaymentRequestResponseDto.md)
|
|
482
510
|
- [CompleteAcceptance200Response](docs/CompleteAcceptance200Response.md)
|
|
483
511
|
- [CompleteAcceptanceRequestDto](docs/CompleteAcceptanceRequestDto.md)
|
|
@@ -486,8 +514,16 @@ Class | Method | HTTP request | Description
|
|
|
486
514
|
- [CreateCardPayment200Response](docs/CreateCardPayment200Response.md)
|
|
487
515
|
- [CreateCardPaymentDto](docs/CreateCardPaymentDto.md)
|
|
488
516
|
- [CreateCardPaymentRequestDto](docs/CreateCardPaymentRequestDto.md)
|
|
517
|
+
- [CreateEmbedLaunch201Response](docs/CreateEmbedLaunch201Response.md)
|
|
489
518
|
- [CreateExternalContractDocumentsRequestDto](docs/CreateExternalContractDocumentsRequestDto.md)
|
|
490
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)
|
|
491
527
|
- [ExcellentProcurementPublic](docs/ExcellentProcurementPublic.md)
|
|
492
528
|
- [ExternalContractDocumentItemDto](docs/ExternalContractDocumentItemDto.md)
|
|
493
529
|
- [ExternalContractDocumentsResponseDto](docs/ExternalContractDocumentsResponseDto.md)
|
|
@@ -499,6 +535,7 @@ Class | Method | HTTP request | Description
|
|
|
499
535
|
- [GetBidStatement200Response](docs/GetBidStatement200Response.md)
|
|
500
536
|
- [GetSupplierCardPayableV2200Response](docs/GetSupplierCardPayableV2200Response.md)
|
|
501
537
|
- [GreenProductPublic](docs/GreenProductPublic.md)
|
|
538
|
+
- [HandoverTypePublic](docs/HandoverTypePublic.md)
|
|
502
539
|
- [HealthControllerCheck200Response](docs/HealthControllerCheck200Response.md)
|
|
503
540
|
- [HealthResponseDto](docs/HealthResponseDto.md)
|
|
504
541
|
- [HierarchicalRegionDto](docs/HierarchicalRegionDto.md)
|
|
@@ -507,6 +544,7 @@ Class | Method | HTTP request | Description
|
|
|
507
544
|
- [InvalidParamDto](docs/InvalidParamDto.md)
|
|
508
545
|
- [InvoiceSplitResponseDto](docs/InvoiceSplitResponseDto.md)
|
|
509
546
|
- [LegalMandatoryPublic](docs/LegalMandatoryPublic.md)
|
|
547
|
+
- [LicenseCombinationMode](docs/LicenseCombinationMode.md)
|
|
510
548
|
- [ListBidResults200Response](docs/ListBidResults200Response.md)
|
|
511
549
|
- [ListBidResults200ResponseMeta](docs/ListBidResults200ResponseMeta.md)
|
|
512
550
|
- [ListProducts200Response](docs/ListProducts200Response.md)
|
|
@@ -514,7 +552,11 @@ Class | Method | HTTP request | Description
|
|
|
514
552
|
- [MarkBidFailedRequestDto](docs/MarkBidFailedRequestDto.md)
|
|
515
553
|
- [NominatedSupplierDto](docs/NominatedSupplierDto.md)
|
|
516
554
|
- [OAuthErrorResponseDto](docs/OAuthErrorResponseDto.md)
|
|
555
|
+
- [PaymentMethodPublic](docs/PaymentMethodPublic.md)
|
|
517
556
|
- [PreconditionsDto](docs/PreconditionsDto.md)
|
|
557
|
+
- [PreliminaryPriceRegionPublic](docs/PreliminaryPriceRegionPublic.md)
|
|
558
|
+
- [PriceScoreTypePublic](docs/PriceScoreTypePublic.md)
|
|
559
|
+
- [PricingTypePublic](docs/PricingTypePublic.md)
|
|
518
560
|
- [ProblemDetailsDto](docs/ProblemDetailsDto.md)
|
|
519
561
|
- [ProductReceiptResponseDto](docs/ProductReceiptResponseDto.md)
|
|
520
562
|
- [ProductResponseDto](docs/ProductResponseDto.md)
|
|
@@ -524,19 +566,25 @@ Class | Method | HTTP request | Description
|
|
|
524
566
|
- [RegisterAwardRequestDto](docs/RegisterAwardRequestDto.md)
|
|
525
567
|
- [RegisterBid201Response](docs/RegisterBid201Response.md)
|
|
526
568
|
- [RegisterSemoContractRequestDto](docs/RegisterSemoContractRequestDto.md)
|
|
569
|
+
- [RegulationTypePublic](docs/RegulationTypePublic.md)
|
|
570
|
+
- [RelatedBidRelation](docs/RelatedBidRelation.md)
|
|
527
571
|
- [RequestInvoiceSplit200Response](docs/RequestInvoiceSplit200Response.md)
|
|
528
572
|
- [RequestInvoiceSplitRequestDto](docs/RequestInvoiceSplitRequestDto.md)
|
|
529
573
|
- [RetireeRosterInputDto](docs/RetireeRosterInputDto.md)
|
|
530
574
|
- [RetireeRosterRowDto](docs/RetireeRosterRowDto.md)
|
|
531
575
|
- [RevokeRequestDto](docs/RevokeRequestDto.md)
|
|
576
|
+
- [RotateSecretRequestDto](docs/RotateSecretRequestDto.md)
|
|
577
|
+
- [RotateSecretResponseDto](docs/RotateSecretResponseDto.md)
|
|
532
578
|
- [SemoContractRegisteredResponseDto](docs/SemoContractRegisteredResponseDto.md)
|
|
533
579
|
- [SemoContractTaxinvoiceStatusResponseDto](docs/SemoContractTaxinvoiceStatusResponseDto.md)
|
|
534
580
|
- [SiteBriefingInputDto](docs/SiteBriefingInputDto.md)
|
|
535
581
|
- [StatementDocumentDto](docs/StatementDocumentDto.md)
|
|
536
582
|
- [StatementProductDto](docs/StatementProductDto.md)
|
|
537
583
|
- [SupplierCardPayableResponseDto](docs/SupplierCardPayableResponseDto.md)
|
|
584
|
+
- [TaxationTypePublic](docs/TaxationTypePublic.md)
|
|
538
585
|
- [TokenRequestDto](docs/TokenRequestDto.md)
|
|
539
586
|
- [TokenResponseDto](docs/TokenResponseDto.md)
|
|
587
|
+
- [TwoStagePhasePublic](docs/TwoStagePhasePublic.md)
|
|
540
588
|
- [UploadFile201Response](docs/UploadFile201Response.md)
|
|
541
589
|
- [UploadFileRequestDto](docs/UploadFileRequestDto.md)
|
|
542
590
|
- [UserinfoResponseDto](docs/UserinfoResponseDto.md)
|
|
@@ -567,5 +615,6 @@ Authentication schemes defined for the API:
|
|
|
567
615
|
- **products:read**: 물품 조회
|
|
568
616
|
- **products:write**: 물품 수신확인
|
|
569
617
|
- **files:write**: 파일 업로드
|
|
618
|
+
- **embed:launch**: 임베드 실행
|
|
570
619
|
- **sso:login**: SSO 로그인 클라이언트
|
|
571
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`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
|
|
6
|
+
*
|
|
7
|
+
* The version of the OpenAPI document: 49.2.0
|
|
8
|
+
* Contact: semo.io.kr@gmail.com
|
|
9
|
+
*
|
|
10
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
11
|
+
* https://openapi-generator.tech
|
|
12
|
+
* Do not edit the class manually.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
|
|
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
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 형식 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 이 형식을 쓰지 않는 엔드포인트는 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 이 형식을 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 49.
|
|
7
|
+
* The version of the OpenAPI document: 49.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -32,6 +32,10 @@ import type { ProblemDetailsDto } from '../models';
|
|
|
32
32
|
// @ts-ignore
|
|
33
33
|
import type { RevokeRequestDto } from '../models';
|
|
34
34
|
// @ts-ignore
|
|
35
|
+
import type { RotateSecretRequestDto } from '../models';
|
|
36
|
+
// @ts-ignore
|
|
37
|
+
import type { RotateSecretResponseDto } from '../models';
|
|
38
|
+
// @ts-ignore
|
|
35
39
|
import type { TokenRequestDto } from '../models';
|
|
36
40
|
// @ts-ignore
|
|
37
41
|
import type { TokenResponseDto } from '../models';
|
|
@@ -112,6 +116,41 @@ export const OauthApiAxiosParamCreator = function (configuration?: Configuration
|
|
|
112
116
|
options: localVarRequestOptions,
|
|
113
117
|
};
|
|
114
118
|
},
|
|
119
|
+
/**
|
|
120
|
+
* 지금 쓰고 있는 `client_secret`을 제시하고 새 값을 받습니다. 직전 secret은 응답의 `previous_secret_expires_at`까지 함께 통하므로 연동을 멈추지 않고 교체할 수 있습니다. 유출을 확인해 **즉시** 끊어야 한다면 회전이 아니라 씨마켓 담당자에게 키 폐기를 요청하세요.
|
|
121
|
+
* @summary 자격증명 재발급 (client_secret 자가회전)
|
|
122
|
+
* @param {RotateSecretRequestDto} rotateSecretRequestDto
|
|
123
|
+
* @param {*} [options] Override http request option.
|
|
124
|
+
* @throws {RequiredError}
|
|
125
|
+
*/
|
|
126
|
+
rotateSecret: async (rotateSecretRequestDto: RotateSecretRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
|
|
127
|
+
// verify required parameter 'rotateSecretRequestDto' is not null or undefined
|
|
128
|
+
assertParamExists('rotateSecret', 'rotateSecretRequestDto', rotateSecretRequestDto)
|
|
129
|
+
const localVarPath = `/oauth/secret`;
|
|
130
|
+
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
131
|
+
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
|
|
132
|
+
let baseOptions;
|
|
133
|
+
if (configuration) {
|
|
134
|
+
baseOptions = configuration.baseOptions;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
|
|
138
|
+
const localVarHeaderParameter = {} as any;
|
|
139
|
+
const localVarQueryParameter = {} as any;
|
|
140
|
+
|
|
141
|
+
localVarHeaderParameter['Content-Type'] = 'application/json';
|
|
142
|
+
localVarHeaderParameter['Accept'] = 'application/json';
|
|
143
|
+
|
|
144
|
+
setSearchParams(localVarUrlObj, localVarQueryParameter);
|
|
145
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
146
|
+
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
|
|
147
|
+
localVarRequestOptions.data = serializeDataIfNeeded(rotateSecretRequestDto, localVarRequestOptions, configuration)
|
|
148
|
+
|
|
149
|
+
return {
|
|
150
|
+
url: toPathString(localVarUrlObj),
|
|
151
|
+
options: localVarRequestOptions,
|
|
152
|
+
};
|
|
153
|
+
},
|
|
115
154
|
/**
|
|
116
155
|
* `client_id`·`client_secret`으로 액세스 토큰을 발급합니다(`client_credentials`, TTL 15분). 이후 모든 요청은 `Authorization: Bearer <token>` 헤더로 호출합니다.
|
|
117
156
|
* @summary 액세스 토큰 발급
|
|
@@ -212,6 +251,19 @@ export const OauthApiFp = function(configuration?: Configuration) {
|
|
|
212
251
|
const localVarOperationServerBasePath = operationServerMap['OauthApi.revoke']?.[localVarOperationServerIndex]?.url;
|
|
213
252
|
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
214
253
|
},
|
|
254
|
+
/**
|
|
255
|
+
* 지금 쓰고 있는 `client_secret`을 제시하고 새 값을 받습니다. 직전 secret은 응답의 `previous_secret_expires_at`까지 함께 통하므로 연동을 멈추지 않고 교체할 수 있습니다. 유출을 확인해 **즉시** 끊어야 한다면 회전이 아니라 씨마켓 담당자에게 키 폐기를 요청하세요.
|
|
256
|
+
* @summary 자격증명 재발급 (client_secret 자가회전)
|
|
257
|
+
* @param {RotateSecretRequestDto} rotateSecretRequestDto
|
|
258
|
+
* @param {*} [options] Override http request option.
|
|
259
|
+
* @throws {RequiredError}
|
|
260
|
+
*/
|
|
261
|
+
async rotateSecret(rotateSecretRequestDto: RotateSecretRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<RotateSecretResponseDto>> {
|
|
262
|
+
const localVarAxiosArgs = await localVarAxiosParamCreator.rotateSecret(rotateSecretRequestDto, options);
|
|
263
|
+
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
|
|
264
|
+
const localVarOperationServerBasePath = operationServerMap['OauthApi.rotateSecret']?.[localVarOperationServerIndex]?.url;
|
|
265
|
+
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
266
|
+
},
|
|
215
267
|
/**
|
|
216
268
|
* `client_id`·`client_secret`으로 액세스 토큰을 발급합니다(`client_credentials`, TTL 15분). 이후 모든 요청은 `Authorization: Bearer <token>` 헤더로 호출합니다.
|
|
217
269
|
* @summary 액세스 토큰 발급
|
|
@@ -266,6 +318,16 @@ export const OauthApiFactory = function (configuration?: Configuration, basePath
|
|
|
266
318
|
revoke(revokeRequestDto: RevokeRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<void> {
|
|
267
319
|
return localVarFp.revoke(revokeRequestDto, options).then((request) => request(axios, basePath));
|
|
268
320
|
},
|
|
321
|
+
/**
|
|
322
|
+
* 지금 쓰고 있는 `client_secret`을 제시하고 새 값을 받습니다. 직전 secret은 응답의 `previous_secret_expires_at`까지 함께 통하므로 연동을 멈추지 않고 교체할 수 있습니다. 유출을 확인해 **즉시** 끊어야 한다면 회전이 아니라 씨마켓 담당자에게 키 폐기를 요청하세요.
|
|
323
|
+
* @summary 자격증명 재발급 (client_secret 자가회전)
|
|
324
|
+
* @param {RotateSecretRequestDto} rotateSecretRequestDto
|
|
325
|
+
* @param {*} [options] Override http request option.
|
|
326
|
+
* @throws {RequiredError}
|
|
327
|
+
*/
|
|
328
|
+
rotateSecret(rotateSecretRequestDto: RotateSecretRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<RotateSecretResponseDto> {
|
|
329
|
+
return localVarFp.rotateSecret(rotateSecretRequestDto, options).then((request) => request(axios, basePath));
|
|
330
|
+
},
|
|
269
331
|
/**
|
|
270
332
|
* `client_id`·`client_secret`으로 액세스 토큰을 발급합니다(`client_credentials`, TTL 15분). 이후 모든 요청은 `Authorization: Bearer <token>` 헤더로 호출합니다.
|
|
271
333
|
* @summary 액세스 토큰 발급
|
|
@@ -314,6 +376,17 @@ export class OauthApi extends BaseAPI {
|
|
|
314
376
|
return OauthApiFp(this.configuration).revoke(revokeRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
315
377
|
}
|
|
316
378
|
|
|
379
|
+
/**
|
|
380
|
+
* 지금 쓰고 있는 `client_secret`을 제시하고 새 값을 받습니다. 직전 secret은 응답의 `previous_secret_expires_at`까지 함께 통하므로 연동을 멈추지 않고 교체할 수 있습니다. 유출을 확인해 **즉시** 끊어야 한다면 회전이 아니라 씨마켓 담당자에게 키 폐기를 요청하세요.
|
|
381
|
+
* @summary 자격증명 재발급 (client_secret 자가회전)
|
|
382
|
+
* @param {RotateSecretRequestDto} rotateSecretRequestDto
|
|
383
|
+
* @param {*} [options] Override http request option.
|
|
384
|
+
* @throws {RequiredError}
|
|
385
|
+
*/
|
|
386
|
+
public rotateSecret(rotateSecretRequestDto: RotateSecretRequestDto, options?: RawAxiosRequestConfig) {
|
|
387
|
+
return OauthApiFp(this.configuration).rotateSecret(rotateSecretRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
388
|
+
}
|
|
389
|
+
|
|
317
390
|
/**
|
|
318
391
|
* `client_id`·`client_secret`으로 액세스 토큰을 발급합니다(`client_credentials`, TTL 15분). 이후 모든 요청은 `Authorization: Bearer <token>` 헤더로 호출합니다.
|
|
319
392
|
* @summary 액세스 토큰 발급
|
package/api/partner-api-api.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 형식 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 이 형식을 쓰지 않는 엔드포인트는 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 이 형식을 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 49.
|
|
7
|
+
* The version of the OpenAPI document: 49.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
package/api/products-api.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 형식 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 이 형식을 쓰지 않는 엔드포인트는 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 이 형식을 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 49.
|
|
7
|
+
* The version of the OpenAPI document: 49.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
package/api/well-known-api.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 형식 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 이 형식을 쓰지 않는 엔드포인트는 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 이 형식을 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 49.
|
|
7
|
+
* The version of the OpenAPI document: 49.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
package/api.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 형식 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 이 형식을 쓰지 않는 엔드포인트는 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 이 형식을 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 49.
|
|
7
|
+
* The version of the OpenAPI document: 49.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
@@ -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
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 형식 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 이 형식을 쓰지 않는 엔드포인트는 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 이 형식을 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 49.
|
|
7
|
+
* The version of the OpenAPI document: 49.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
package/common.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* CMARKET V6 Partner API
|
|
5
5
|
* 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 형식 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 이 형식을 쓰지 않는 엔드포인트는 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 이 형식을 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
|
|
6
6
|
*
|
|
7
|
-
* The version of the OpenAPI document: 49.
|
|
7
|
+
* The version of the OpenAPI document: 49.2.0
|
|
8
8
|
* Contact: semo.io.kr@gmail.com
|
|
9
9
|
*
|
|
10
10
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
package/configuration.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* CMARKET V6 Partner API
|
|
4
4
|
* 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 형식 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 이 형식을 쓰지 않는 엔드포인트는 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 이 형식을 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
|
|
5
5
|
*
|
|
6
|
-
* The version of the OpenAPI document: 49.
|
|
6
|
+
* The version of the OpenAPI document: 49.2.0
|
|
7
7
|
* Contact: semo.io.kr@gmail.com
|
|
8
8
|
*
|
|
9
9
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|