@cmarket/partner-sdk 38.0.0 โ 38.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 +28 -5
- package/api/embed-api.ts +9 -9
- package/api/oauth-api.ts +1 -1
- package/api/partner-api-api.ts +683 -1
- package/api/products-api.ts +1 -1
- package/api/well-known-api.ts +1 -1
- package/api.ts +1 -1
- package/base.ts +1 -1
- package/common.ts +1 -1
- package/configuration.ts +1 -1
- package/dist/api/embed-api.d.ts +9 -9
- package/dist/api/embed-api.js +9 -9
- package/dist/api/oauth-api.d.ts +1 -1
- package/dist/api/oauth-api.js +1 -1
- package/dist/api/partner-api-api.d.ts +305 -1
- package/dist/api/partner-api-api.js +639 -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 +1 -1
- package/dist/api.js +1 -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 +9 -9
- package/dist/esm/api/embed-api.js +9 -9
- package/dist/esm/api/oauth-api.d.ts +1 -1
- package/dist/esm/api/oauth-api.js +1 -1
- package/dist/esm/api/partner-api-api.d.ts +305 -1
- package/dist/esm/api/partner-api-api.js +639 -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 +1 -1
- package/dist/esm/api.js +1 -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/award-method-public.d.ts +1 -1
- package/dist/esm/models/award-method-public.js +1 -1
- 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/award-reverted-v2-response-dto.d.ts +1 -1
- package/dist/esm/models/award-reverted-v2-response-dto.js +1 -1
- package/dist/esm/models/bid-acceptance-dto.d.ts +1 -1
- package/dist/esm/models/bid-acceptance-dto.js +1 -1
- 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-bond-dto.d.ts +1 -1
- package/dist/esm/models/bid-bond-dto.js +1 -1
- package/dist/esm/models/bid-cancelled-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-cancelled-response-dto.js +1 -1
- package/dist/esm/models/bid-contact-dto.d.ts +1 -1
- package/dist/esm/models/bid-contact-dto.js +1 -1
- package/dist/esm/models/bid-contacts-dto.d.ts +1 -1
- package/dist/esm/models/bid-contacts-dto.js +1 -1
- package/dist/esm/models/bid-contract-document-dto.d.ts +1 -1
- package/dist/esm/models/bid-contract-document-dto.js +1 -1
- package/dist/esm/models/bid-delivery-terms-dto.d.ts +1 -1
- package/dist/esm/models/bid-delivery-terms-dto.js +1 -1
- package/dist/esm/models/bid-detail-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-detail-response-dto.js +1 -1
- 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-lifecycle-dto.d.ts +1 -1
- package/dist/esm/models/bid-lifecycle-dto.js +1 -1
- 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-payment-terms-dto.d.ts +1 -1
- package/dist/esm/models/bid-payment-terms-dto.js +1 -1
- package/dist/esm/models/bid-product-dto.d.ts +1 -1
- package/dist/esm/models/bid-product-dto.js +1 -1
- 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-registered-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-registered-response-dto.js +1 -1
- 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-settlement-line-item-dto.d.ts +1 -1
- package/dist/esm/models/bid-settlement-line-item-dto.js +1 -1
- package/dist/esm/models/bid-settlement-participant-dto.d.ts +1 -1
- package/dist/esm/models/bid-settlement-participant-dto.js +1 -1
- package/dist/esm/models/bid-settlement-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-settlement-response-dto.js +1 -1
- 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/bid-summary-dto.d.ts +1 -1
- package/dist/esm/models/bid-summary-dto.js +1 -1
- package/dist/esm/models/bid-type-public.d.ts +1 -1
- package/dist/esm/models/bid-type-public.js +1 -1
- package/dist/esm/models/bid-updated-response-dto.d.ts +1 -1
- package/dist/esm/models/bid-updated-response-dto.js +1 -1
- package/dist/esm/models/cancel-bid-request-dto.d.ts +1 -1
- package/dist/esm/models/cancel-bid-request-dto.js +1 -1
- package/dist/esm/models/cancel-bid200-response.d.ts +1 -1
- package/dist/esm/models/cancel-bid200-response.js +1 -1
- 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/complete-invoice200-response.d.ts +1 -1
- package/dist/esm/models/complete-invoice200-response.js +1 -1
- package/dist/esm/models/complete-upload-request-dto.d.ts +1 -1
- package/dist/esm/models/complete-upload-request-dto.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 +1 -1
- package/dist/esm/models/create-embed-launch201-response.js +1 -1
- 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/create-file-upload-url201-response.d.ts +1 -1
- package/dist/esm/models/create-file-upload-url201-response.js +1 -1
- package/dist/esm/models/create-upload-url-request-dto.d.ts +1 -1
- package/dist/esm/models/create-upload-url-request-dto.js +1 -1
- package/dist/esm/models/create-webhook-endpoint-request-dto.d.ts +22 -0
- package/dist/esm/models/create-webhook-endpoint-request-dto.js +14 -0
- package/dist/esm/models/create-webhook-endpoint201-response.d.ts +15 -0
- package/dist/esm/models/create-webhook-endpoint201-response.js +14 -0
- package/dist/esm/models/delivery-date-type-public.d.ts +1 -1
- package/dist/esm/models/delivery-date-type-public.js +1 -1
- package/dist/esm/models/delivery-method-public.d.ts +1 -1
- package/dist/esm/models/delivery-method-public.js +1 -1
- package/dist/esm/models/embed-launch-request-dto.d.ts +1 -1
- package/dist/esm/models/embed-launch-request-dto.js +1 -1
- package/dist/esm/models/embed-launch-response-dto.d.ts +6 -2
- package/dist/esm/models/embed-launch-response-dto.js +1 -1
- 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-meta-response-dto.d.ts +1 -1
- package/dist/esm/models/file-meta-response-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-settlement200-response.d.ts +1 -1
- package/dist/esm/models/get-bid-settlement200-response.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-bid200-response.d.ts +1 -1
- package/dist/esm/models/get-bid200-response.js +1 -1
- package/dist/esm/models/get-file-meta200-response.d.ts +1 -1
- package/dist/esm/models/get-file-meta200-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/get-webhook-endpoint200-response.d.ts +15 -0
- package/dist/esm/models/get-webhook-endpoint200-response.js +14 -0
- 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/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 +15 -0
- package/dist/esm/models/index.js +15 -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-completed-response-dto.d.ts +1 -1
- package/dist/esm/models/invoice-completed-response-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/list-bid-results200-response.d.ts +1 -1
- package/dist/esm/models/list-bid-results200-response.js +1 -1
- package/dist/esm/models/list-bids200-response-meta.d.ts +1 -1
- package/dist/esm/models/list-bids200-response-meta.js +1 -1
- package/dist/esm/models/list-bids200-response.d.ts +1 -1
- package/dist/esm/models/list-bids200-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/list-webhook-deliveries-response-dto.d.ts +22 -0
- package/dist/esm/models/list-webhook-deliveries-response-dto.js +14 -0
- package/dist/esm/models/list-webhook-deliveries200-response.d.ts +15 -0
- package/dist/esm/models/list-webhook-deliveries200-response.js +14 -0
- package/dist/esm/models/list-webhook-endpoints200-response.d.ts +17 -0
- package/dist/esm/models/list-webhook-endpoints200-response.js +14 -0
- 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/negotiation-score-dto.d.ts +1 -1
- package/dist/esm/models/negotiation-score-dto.js +1 -1
- package/dist/esm/models/negotiation-scored-v2-response-dto.d.ts +1 -1
- package/dist/esm/models/negotiation-scored-v2-response-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/partner-webhook-delivery-status.d.ts +18 -0
- package/dist/esm/models/partner-webhook-delivery-status.js +19 -0
- package/dist/esm/models/partner-webhook-endpoint-status.d.ts +19 -0
- package/dist/esm/models/partner-webhook-endpoint-status.js +20 -0
- package/dist/esm/models/partner-webhook-event-type.d.ts +22 -0
- package/dist/esm/models/partner-webhook-event-type.js +23 -0
- package/dist/esm/models/payment-method-public.d.ts +1 -1
- package/dist/esm/models/payment-method-public.js +1 -1
- package/dist/esm/models/preconditions-dto.d.ts +1 -1
- package/dist/esm/models/preconditions-dto.js +1 -1
- 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/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/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/revert-award-request-dto.d.ts +1 -1
- package/dist/esm/models/revert-award-request-dto.js +1 -1
- package/dist/esm/models/revert-award200-response.d.ts +1 -1
- package/dist/esm/models/revert-award200-response.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/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/send-webhook-test-event200-response.d.ts +15 -0
- package/dist/esm/models/send-webhook-test-event200-response.js +14 -0
- 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/submit-negotiation-scores-request-dto.d.ts +1 -1
- package/dist/esm/models/submit-negotiation-scores-request-dto.js +1 -1
- package/dist/esm/models/submit-negotiation-scores201-response.d.ts +1 -1
- package/dist/esm/models/submit-negotiation-scores201-response.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/supplier-tax-type.d.ts +1 -1
- package/dist/esm/models/supplier-tax-type.js +1 -1
- 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/update-bid-request-dto.d.ts +1 -1
- package/dist/esm/models/update-bid-request-dto.js +1 -1
- package/dist/esm/models/update-bid200-response.d.ts +1 -1
- package/dist/esm/models/update-bid200-response.js +1 -1
- package/dist/esm/models/update-webhook-endpoint-request-dto.d.ts +27 -0
- package/dist/esm/models/update-webhook-endpoint-request-dto.js +14 -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/upload-url-created-response-dto.d.ts +1 -1
- package/dist/esm/models/upload-url-created-response-dto.js +1 -1
- package/dist/esm/models/webhook-delivery-dto.d.ts +73 -0
- package/dist/esm/models/webhook-delivery-dto.js +21 -0
- package/dist/esm/models/webhook-endpoint-dto.d.ts +55 -0
- package/dist/esm/models/webhook-endpoint-dto.js +14 -0
- package/dist/esm/models/webhook-endpoint-with-secret-dto.d.ts +59 -0
- package/dist/esm/models/webhook-endpoint-with-secret-dto.js +14 -0
- package/dist/esm/models/webhook-test-result-dto.d.ts +25 -0
- package/dist/esm/models/webhook-test-result-dto.js +14 -0
- 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/award-method-public.d.ts +1 -1
- package/dist/models/award-method-public.js +1 -1
- 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/award-reverted-v2-response-dto.d.ts +1 -1
- package/dist/models/award-reverted-v2-response-dto.js +1 -1
- package/dist/models/bid-acceptance-dto.d.ts +1 -1
- package/dist/models/bid-acceptance-dto.js +1 -1
- 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-bond-dto.d.ts +1 -1
- package/dist/models/bid-bond-dto.js +1 -1
- package/dist/models/bid-cancelled-response-dto.d.ts +1 -1
- package/dist/models/bid-cancelled-response-dto.js +1 -1
- package/dist/models/bid-contact-dto.d.ts +1 -1
- package/dist/models/bid-contact-dto.js +1 -1
- package/dist/models/bid-contacts-dto.d.ts +1 -1
- package/dist/models/bid-contacts-dto.js +1 -1
- package/dist/models/bid-contract-document-dto.d.ts +1 -1
- package/dist/models/bid-contract-document-dto.js +1 -1
- package/dist/models/bid-delivery-terms-dto.d.ts +1 -1
- package/dist/models/bid-delivery-terms-dto.js +1 -1
- package/dist/models/bid-detail-response-dto.d.ts +1 -1
- package/dist/models/bid-detail-response-dto.js +1 -1
- 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-lifecycle-dto.d.ts +1 -1
- package/dist/models/bid-lifecycle-dto.js +1 -1
- package/dist/models/bid-manager-dto.d.ts +1 -1
- package/dist/models/bid-manager-dto.js +1 -1
- package/dist/models/bid-payment-terms-dto.d.ts +1 -1
- package/dist/models/bid-payment-terms-dto.js +1 -1
- package/dist/models/bid-product-dto.d.ts +1 -1
- package/dist/models/bid-product-dto.js +1 -1
- package/dist/models/bid-public-status.d.ts +1 -1
- package/dist/models/bid-public-status.js +1 -1
- 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-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-settlement-line-item-dto.d.ts +1 -1
- package/dist/models/bid-settlement-line-item-dto.js +1 -1
- package/dist/models/bid-settlement-participant-dto.d.ts +1 -1
- package/dist/models/bid-settlement-participant-dto.js +1 -1
- package/dist/models/bid-settlement-response-dto.d.ts +1 -1
- package/dist/models/bid-settlement-response-dto.js +1 -1
- package/dist/models/bid-statement-response-dto.d.ts +1 -1
- package/dist/models/bid-statement-response-dto.js +1 -1
- package/dist/models/bid-summary-dto.d.ts +1 -1
- package/dist/models/bid-summary-dto.js +1 -1
- package/dist/models/bid-type-public.d.ts +1 -1
- package/dist/models/bid-type-public.js +1 -1
- package/dist/models/bid-updated-response-dto.d.ts +1 -1
- package/dist/models/bid-updated-response-dto.js +1 -1
- package/dist/models/cancel-bid-request-dto.d.ts +1 -1
- package/dist/models/cancel-bid-request-dto.js +1 -1
- package/dist/models/cancel-bid200-response.d.ts +1 -1
- package/dist/models/cancel-bid200-response.js +1 -1
- 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/complete-invoice200-response.d.ts +1 -1
- package/dist/models/complete-invoice200-response.js +1 -1
- package/dist/models/complete-upload-request-dto.d.ts +1 -1
- package/dist/models/complete-upload-request-dto.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 +1 -1
- package/dist/models/create-embed-launch201-response.js +1 -1
- 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/create-file-upload-url201-response.d.ts +1 -1
- package/dist/models/create-file-upload-url201-response.js +1 -1
- package/dist/models/create-upload-url-request-dto.d.ts +1 -1
- package/dist/models/create-upload-url-request-dto.js +1 -1
- package/dist/models/create-webhook-endpoint-request-dto.d.ts +22 -0
- package/dist/models/create-webhook-endpoint-request-dto.js +15 -0
- package/dist/models/create-webhook-endpoint201-response.d.ts +15 -0
- package/dist/models/create-webhook-endpoint201-response.js +15 -0
- package/dist/models/delivery-date-type-public.d.ts +1 -1
- package/dist/models/delivery-date-type-public.js +1 -1
- package/dist/models/delivery-method-public.d.ts +1 -1
- package/dist/models/delivery-method-public.js +1 -1
- package/dist/models/embed-launch-request-dto.d.ts +1 -1
- package/dist/models/embed-launch-request-dto.js +1 -1
- package/dist/models/embed-launch-response-dto.d.ts +6 -2
- package/dist/models/embed-launch-response-dto.js +1 -1
- 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-meta-response-dto.d.ts +1 -1
- package/dist/models/file-meta-response-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-settlement200-response.d.ts +1 -1
- package/dist/models/get-bid-settlement200-response.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-bid200-response.d.ts +1 -1
- package/dist/models/get-bid200-response.js +1 -1
- package/dist/models/get-file-meta200-response.d.ts +1 -1
- package/dist/models/get-file-meta200-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/get-webhook-endpoint200-response.d.ts +15 -0
- package/dist/models/get-webhook-endpoint200-response.js +15 -0
- package/dist/models/green-product-public.d.ts +1 -1
- package/dist/models/green-product-public.js +1 -1
- 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 +15 -0
- package/dist/models/index.js +15 -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-completed-response-dto.d.ts +1 -1
- package/dist/models/invoice-completed-response-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/list-bid-results200-response.d.ts +1 -1
- package/dist/models/list-bid-results200-response.js +1 -1
- package/dist/models/list-bids200-response-meta.d.ts +1 -1
- package/dist/models/list-bids200-response-meta.js +1 -1
- package/dist/models/list-bids200-response.d.ts +1 -1
- package/dist/models/list-bids200-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/list-webhook-deliveries-response-dto.d.ts +22 -0
- package/dist/models/list-webhook-deliveries-response-dto.js +15 -0
- package/dist/models/list-webhook-deliveries200-response.d.ts +15 -0
- package/dist/models/list-webhook-deliveries200-response.js +15 -0
- package/dist/models/list-webhook-endpoints200-response.d.ts +17 -0
- package/dist/models/list-webhook-endpoints200-response.js +15 -0
- 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/negotiation-score-dto.d.ts +1 -1
- package/dist/models/negotiation-score-dto.js +1 -1
- package/dist/models/negotiation-scored-v2-response-dto.d.ts +1 -1
- package/dist/models/negotiation-scored-v2-response-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/partner-webhook-delivery-status.d.ts +18 -0
- package/dist/models/partner-webhook-delivery-status.js +22 -0
- package/dist/models/partner-webhook-endpoint-status.d.ts +19 -0
- package/dist/models/partner-webhook-endpoint-status.js +23 -0
- package/dist/models/partner-webhook-event-type.d.ts +22 -0
- package/dist/models/partner-webhook-event-type.js +26 -0
- package/dist/models/payment-method-public.d.ts +1 -1
- package/dist/models/payment-method-public.js +1 -1
- package/dist/models/preconditions-dto.d.ts +1 -1
- package/dist/models/preconditions-dto.js +1 -1
- 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/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/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/revert-award-request-dto.d.ts +1 -1
- package/dist/models/revert-award-request-dto.js +1 -1
- package/dist/models/revert-award200-response.d.ts +1 -1
- package/dist/models/revert-award200-response.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/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/send-webhook-test-event200-response.d.ts +15 -0
- package/dist/models/send-webhook-test-event200-response.js +15 -0
- 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/submit-negotiation-scores-request-dto.d.ts +1 -1
- package/dist/models/submit-negotiation-scores-request-dto.js +1 -1
- package/dist/models/submit-negotiation-scores201-response.d.ts +1 -1
- package/dist/models/submit-negotiation-scores201-response.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/supplier-tax-type.d.ts +1 -1
- package/dist/models/supplier-tax-type.js +1 -1
- 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/update-bid-request-dto.d.ts +1 -1
- package/dist/models/update-bid-request-dto.js +1 -1
- package/dist/models/update-bid200-response.d.ts +1 -1
- package/dist/models/update-bid200-response.js +1 -1
- package/dist/models/update-webhook-endpoint-request-dto.d.ts +27 -0
- package/dist/models/update-webhook-endpoint-request-dto.js +15 -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/upload-url-created-response-dto.d.ts +1 -1
- package/dist/models/upload-url-created-response-dto.js +1 -1
- package/dist/models/webhook-delivery-dto.d.ts +73 -0
- package/dist/models/webhook-delivery-dto.js +24 -0
- package/dist/models/webhook-endpoint-dto.d.ts +55 -0
- package/dist/models/webhook-endpoint-dto.js +15 -0
- package/dist/models/webhook-endpoint-with-secret-dto.d.ts +59 -0
- package/dist/models/webhook-endpoint-with-secret-dto.js +15 -0
- package/dist/models/webhook-test-result-dto.d.ts +25 -0
- package/dist/models/webhook-test-result-dto.js +15 -0
- package/docs/CreateWebhookEndpoint201Response.md +20 -0
- package/docs/CreateWebhookEndpointRequestDto.md +22 -0
- package/docs/EmbedApi.md +2 -2
- package/docs/EmbedLaunchResponseDto.md +3 -1
- package/docs/GetWebhookEndpoint200Response.md +20 -0
- package/docs/ListWebhookDeliveries200Response.md +20 -0
- package/docs/ListWebhookDeliveriesResponseDto.md +22 -0
- package/docs/ListWebhookEndpoints200Response.md +22 -0
- package/docs/PartnerApiApi.md +517 -0
- package/docs/PartnerWebhookDeliveryStatus.md +14 -0
- package/docs/PartnerWebhookEndpointStatus.md +11 -0
- package/docs/PartnerWebhookEventType.md +17 -0
- package/docs/SendWebhookTestEvent200Response.md +20 -0
- package/docs/UpdateWebhookEndpointRequestDto.md +24 -0
- package/docs/WebhookDeliveryDto.md +42 -0
- package/docs/WebhookEndpointDto.md +38 -0
- package/docs/WebhookEndpointWithSecretDto.md +40 -0
- package/docs/WebhookTestResultDto.md +24 -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/award-method-public.ts +1 -1
- package/models/award-registered-v2-response-dto.ts +1 -1
- package/models/award-reverted-v2-response-dto.ts +1 -1
- package/models/bid-acceptance-dto.ts +1 -1
- package/models/bid-attachment-input-dto.ts +1 -1
- package/models/bid-bond-dto.ts +1 -1
- package/models/bid-cancelled-response-dto.ts +1 -1
- package/models/bid-contact-dto.ts +1 -1
- package/models/bid-contacts-dto.ts +1 -1
- package/models/bid-contract-document-dto.ts +1 -1
- package/models/bid-delivery-terms-dto.ts +1 -1
- package/models/bid-detail-response-dto.ts +1 -1
- 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-lifecycle-dto.ts +1 -1
- package/models/bid-manager-dto.ts +1 -1
- package/models/bid-payment-terms-dto.ts +1 -1
- package/models/bid-product-dto.ts +1 -1
- package/models/bid-public-status.ts +1 -1
- package/models/bid-registered-response-dto.ts +1 -1
- 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-settlement-line-item-dto.ts +1 -1
- package/models/bid-settlement-participant-dto.ts +1 -1
- package/models/bid-settlement-response-dto.ts +1 -1
- package/models/bid-statement-response-dto.ts +1 -1
- package/models/bid-summary-dto.ts +1 -1
- package/models/bid-type-public.ts +1 -1
- package/models/bid-updated-response-dto.ts +1 -1
- package/models/cancel-bid-request-dto.ts +1 -1
- package/models/cancel-bid200-response.ts +1 -1
- 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/complete-invoice200-response.ts +1 -1
- package/models/complete-upload-request-dto.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 +1 -1
- package/models/create-external-contract-documents-request-dto.ts +1 -1
- package/models/create-external-contract-documents-response-dto.ts +1 -1
- package/models/create-file-upload-url201-response.ts +1 -1
- package/models/create-upload-url-request-dto.ts +1 -1
- package/models/create-webhook-endpoint-request-dto.ts +30 -0
- package/models/create-webhook-endpoint201-response.ts +23 -0
- package/models/delivery-date-type-public.ts +1 -1
- package/models/delivery-method-public.ts +1 -1
- package/models/embed-launch-request-dto.ts +1 -1
- package/models/embed-launch-response-dto.ts +6 -2
- 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-meta-response-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-settlement200-response.ts +1 -1
- package/models/get-bid-statement200-response.ts +1 -1
- package/models/get-bid200-response.ts +1 -1
- package/models/get-file-meta200-response.ts +1 -1
- package/models/get-supplier-card-payable-v2200-response.ts +1 -1
- package/models/get-webhook-endpoint200-response.ts +23 -0
- package/models/green-product-public.ts +1 -1
- 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 +15 -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-completed-response-dto.ts +1 -1
- package/models/invoice-split-response-dto.ts +1 -1
- package/models/legal-mandatory-public.ts +1 -1
- package/models/list-bid-results200-response.ts +1 -1
- package/models/list-bids200-response-meta.ts +1 -1
- package/models/list-bids200-response.ts +1 -1
- package/models/list-products200-response.ts +1 -1
- package/models/list-webhook-deliveries-response-dto.ts +30 -0
- package/models/list-webhook-deliveries200-response.ts +23 -0
- package/models/list-webhook-endpoints200-response.ts +27 -0
- package/models/mark-bid-failed-request-dto.ts +1 -1
- package/models/mark-bid-failed201-response.ts +1 -1
- package/models/negotiation-score-dto.ts +1 -1
- package/models/negotiation-scored-v2-response-dto.ts +1 -1
- package/models/oauth-error-response-dto.ts +1 -1
- package/models/partner-webhook-delivery-status.ts +28 -0
- package/models/partner-webhook-endpoint-status.ts +29 -0
- package/models/partner-webhook-event-type.ts +32 -0
- package/models/payment-method-public.ts +1 -1
- package/models/preconditions-dto.ts +1 -1
- 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/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/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/revert-award-request-dto.ts +1 -1
- package/models/revert-award200-response.ts +1 -1
- package/models/revoke-request-dto.ts +1 -1
- package/models/semo-contract-registered-response-dto.ts +1 -1
- package/models/semo-contract-taxinvoice-status-response-dto.ts +1 -1
- package/models/send-webhook-test-event200-response.ts +23 -0
- package/models/statement-document-dto.ts +1 -1
- package/models/statement-product-dto.ts +1 -1
- package/models/submit-negotiation-scores-request-dto.ts +1 -1
- package/models/submit-negotiation-scores201-response.ts +1 -1
- package/models/supplier-card-payable-response-dto.ts +1 -1
- package/models/supplier-tax-type.ts +1 -1
- package/models/token-request-dto.ts +1 -1
- package/models/token-response-dto.ts +1 -1
- package/models/update-bid-request-dto.ts +1 -1
- package/models/update-bid200-response.ts +1 -1
- package/models/update-webhook-endpoint-request-dto.ts +39 -0
- package/models/upload-file-request-dto.ts +1 -1
- package/models/upload-file201-response.ts +1 -1
- package/models/upload-url-created-response-dto.ts +1 -1
- package/models/webhook-delivery-dto.ts +82 -0
- package/models/webhook-endpoint-dto.ts +67 -0
- package/models/webhook-endpoint-with-secret-dto.ts +71 -0
- package/models/webhook-test-result-dto.ts +31 -0
- package/package.json +1 -1
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 ํ์ฅ, ๊ฐ ์์). `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: 38.
|
|
7
|
+
* The version of the OpenAPI document: 38.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).
|
|
@@ -50,6 +50,10 @@ import type { CreateFileUploadUrl201Response } from '../models';
|
|
|
50
50
|
// @ts-ignore
|
|
51
51
|
import type { CreateUploadUrlRequestDto } from '../models';
|
|
52
52
|
// @ts-ignore
|
|
53
|
+
import type { CreateWebhookEndpoint201Response } from '../models';
|
|
54
|
+
// @ts-ignore
|
|
55
|
+
import type { CreateWebhookEndpointRequestDto } from '../models';
|
|
56
|
+
// @ts-ignore
|
|
53
57
|
import type { ExternalContractDocumentsResponseDto } from '../models';
|
|
54
58
|
// @ts-ignore
|
|
55
59
|
import type { GetBid200Response } from '../models';
|
|
@@ -62,16 +66,24 @@ import type { GetFileMeta200Response } from '../models';
|
|
|
62
66
|
// @ts-ignore
|
|
63
67
|
import type { GetSupplierCardPayableV2200Response } from '../models';
|
|
64
68
|
// @ts-ignore
|
|
69
|
+
import type { GetWebhookEndpoint200Response } from '../models';
|
|
70
|
+
// @ts-ignore
|
|
65
71
|
import type { HealthControllerCheck200Response } from '../models';
|
|
66
72
|
// @ts-ignore
|
|
67
73
|
import type { ListBidResults200Response } from '../models';
|
|
68
74
|
// @ts-ignore
|
|
69
75
|
import type { ListBids200Response } from '../models';
|
|
70
76
|
// @ts-ignore
|
|
77
|
+
import type { ListWebhookDeliveries200Response } from '../models';
|
|
78
|
+
// @ts-ignore
|
|
79
|
+
import type { ListWebhookEndpoints200Response } from '../models';
|
|
80
|
+
// @ts-ignore
|
|
71
81
|
import type { MarkBidFailed201Response } from '../models';
|
|
72
82
|
// @ts-ignore
|
|
73
83
|
import type { MarkBidFailedRequestDto } from '../models';
|
|
74
84
|
// @ts-ignore
|
|
85
|
+
import type { PartnerWebhookDeliveryStatus } from '../models';
|
|
86
|
+
// @ts-ignore
|
|
75
87
|
import type { ProblemDetailsDto } from '../models';
|
|
76
88
|
// @ts-ignore
|
|
77
89
|
import type { RegisterAward201Response } from '../models';
|
|
@@ -94,6 +106,8 @@ import type { SemoContractRegisteredResponseDto } from '../models';
|
|
|
94
106
|
// @ts-ignore
|
|
95
107
|
import type { SemoContractTaxinvoiceStatusResponseDto } from '../models';
|
|
96
108
|
// @ts-ignore
|
|
109
|
+
import type { SendWebhookTestEvent200Response } from '../models';
|
|
110
|
+
// @ts-ignore
|
|
97
111
|
import type { SubmitNegotiationScores201Response } from '../models';
|
|
98
112
|
// @ts-ignore
|
|
99
113
|
import type { SubmitNegotiationScoresRequestDto } from '../models';
|
|
@@ -102,6 +116,8 @@ import type { UpdateBid200Response } from '../models';
|
|
|
102
116
|
// @ts-ignore
|
|
103
117
|
import type { UpdateBidRequestDto } from '../models';
|
|
104
118
|
// @ts-ignore
|
|
119
|
+
import type { UpdateWebhookEndpointRequestDto } from '../models';
|
|
120
|
+
// @ts-ignore
|
|
105
121
|
import type { UploadFile201Response } from '../models';
|
|
106
122
|
// @ts-ignore
|
|
107
123
|
import type { UploadFileRequestDto } from '../models';
|
|
@@ -436,6 +452,101 @@ export const PartnerApiApiAxiosParamCreator = function (configuration?: Configur
|
|
|
436
452
|
options: localVarRequestOptions,
|
|
437
453
|
};
|
|
438
454
|
},
|
|
455
|
+
/**
|
|
456
|
+
* ์์ ์ฃผ์์ ๊ตฌ๋
ํ ์ด๋ฒคํธ๋ฅผ ๋ฑ๋กํฉ๋๋ค. **ํธ์ถ ์์ :** ์ฐ๋ ์ด๊ธฐ 1ํ. ์์ ์ฃผ์๊ฐ ๋ฐ๋๋ฉด ์๋ก ๋ง๋ค์ง ๋ง๊ณ `PATCH` ๋ก ๊ณ ์น์ธ์ โ ๊ทธ๋์ผ ์ํฌ๋ฆฟ๊ณผ ์ ์ก ์ด๋ ฅ์ด ์ ์ง๋ฉ๋๋ค. **์๋ช
์ํฌ๋ฆฟ์ ์ด ์๋ต์์ ํ ๋ฒ๋ง ๋๊ฐ๋๋ค.** ์๋ฒ๋ ํด์๋ง ๋ณด๊ดํ๋ฏ๋ก ์กฐํ๋ก ๋ค์ ๋ฐ์ ์ ์์ต๋๋ค. ์๋ต์ `secret` ์ ์ฆ์ ์์ ํ ๊ณณ์ ๋ณด๊ดํ์ธ์. ์์ด๋ฒ๋ ธ๋ค๋ฉด ๋ณต๊ตฌ๊ฐ ์๋๋ผ `POST /v2/webhook-endpoints/{endpointId}/rotate-secret` ์ผ๋ก **์ฌ๋ฐ๊ธ**ํด์ผ ํฉ๋๋ค. **๊ฑฐ์ ๋๋ ๊ฒฝ์ฐ์ ๊ณ ์น๋ ๋ฒ:** - `400` โ `url` ์ด HTTPS ๊ฐ ์๋๊ฑฐ๋ ํ์์ด ์๋ชป๋จ, `eventTypes` ๊ฐ ๋น์๊ฑฐ๋ ๋ชฉ๋ก ๋ฐ ๊ฐ (`ping` ์ ๊ตฌ๋
๋ถ๊ฐ). ๊ฐ์ ๊ณ ์ณ ์ฌ์๋ํ์ธ์. - `400` โ `Idempotency-Key` ํค๋ ๋๋ฝ/ํ์ ์ค๋ฅ. UUID v4 ๋ฅผ ์ค์ด ๋ณด๋ด์ธ์. - `403` โ ํ ํฐ์ `webhooks:write` ์ค์ฝํ๊ฐ ์์. ํค ๋ฐ๊ธ ์ค์ ์ ๋ํ์ผ ํฉ๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ### ์๋ช
๊ฒ์ฆ (ํ์) ์๋ช
์ **[Standard Webhooks](https://www.standardwebhooks.com)** ๊ท์ฝ์ ๊ทธ๋๋ก ๋ฐ๋ฆ
๋๋ค. ์ง์ ๊ตฌํํ์ง ๋ง๊ณ ๊ฐ ์ธ์ด์ `standardwebhooks` ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฑ๋ก ์ ๋ฐ์ ์ํฌ๋ฆฟ (`whsec_โฆ`)์ ๊ทธ๋๋ก ๋๊ธฐ์ธ์ โ ๊ทธ๊ฒ์ด ์ด ํ์์ ์ฐ๋ ์ด์ ์
๋๋ค. ```java // Java Webhook webhook = new Webhook(secret); // secret = \"whsec_โฆ\" webhook.verify(rawBody, headers); // ์คํจํ๋ฉด ์์ธ ``` ```ts // Node / TypeScript import { Webhook } from \'standardwebhooks\'; new Webhook(secret).verify(rawBody, headers); ``` ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ธ ์ ์๋ค๋ฉด ๋ฐ์ก ์์ฒญ์ ์ค๋ฆฌ๋ ํค๋๋ ์
์
๋๋ค. ``` webhook-id: evt_01J8Z7Q3K9 webhook-timestamp: 1774915200 webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4= ``` 1. ์ํฌ๋ฆฟ์์ `whsec_` ์ ๋์ด๋ฅผ ๋ผ๊ณ **base64 ๋์ฝ๋**ํฉ๋๋ค โ ๊ทธ ๋ฐ์ดํธ๊ฐ HMAC ํค์
๋๋ค (์ํฌ๋ฆฟ ๋ฌธ์์ด ์์ฒด๊ฐ ์๋๋๋ค). 2. `\"${webhook-id}.${webhook-timestamp}.${๋ณธ๋ฌธ ์๋ฌธ}\"` ์ ๋ง๋ญ๋๋ค. **๋ณธ๋ฌธ์ ํ์ฑ ์ ์๋ฌธ ๋ฐ์ดํธ**์ฌ์ผ ํฉ๋๋ค โ JSON ์ ๋ค์ ์ง๋ ฌํํ๋ฉด ๊ณต๋ฐฑยทํค ์์๊ฐ ๋ฌ๋ผ์ ธ ์๋ช
์ด ๋ง์ง ์์ต๋๋ค. 3. HMAC-SHA256 ์ ๊ณ์ฐํด **base64** ๋ก ์ธ์ฝ๋ฉํ๊ณ , `webhook-signature` ์ `v1,` ๋ค ๊ฐ๊ณผ ๋น๊ตํฉ๋๋ค. ๋น๊ต๋ **์์ ์๊ฐ** ํจ์๋ฅผ ์ฐ์ธ์(Node `crypto.timingSafeEqual`, Java `MessageDigest.isEqual`). 4. `webhook-timestamp` ๊ฐ ํ์ฌ ์๊ฐ์์ **5๋ถ** ์ด์ ์ง๋ฌ์ผ๋ฉด ๊ฑฐ์ ํ์ธ์(์ฌ์ ์ก ๊ณต๊ฒฉ ๋ฐฉ์ด). `webhook-signature` ๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ **์ฌ๋ฌ ์๋ช
**์ ์ค์ ์ ์๋ ํ์์
๋๋ค(ํค ํ์ ์ฉ). ์ง๊ธ์ ํญ์ ํ๋์ง๋ง, ๊ฒ์ฆ๊ธฐ๋ ๋ชฉ๋ก์ผ๋ก ์ฝ๊ณ **ํ๋๋ผ๋ ๋ง์ผ๋ฉด ํต๊ณผ**ํ๋๋ก ์ง์ธ์. ### ์ค๋ณต ์ ๊ฑฐ `webhook-id` ํค๋๊ฐ ์ด๋ฒคํธ ์๋ณ์์
๋๋ค. **์ฌ์๋์๋ ๊ฐ์ ๊ฐ์ด ์ต๋๋ค** โ ์ด๋ฏธ ์ฒ๋ฆฌํ ๊ฐ์ด๋ฉด ๋ฌด์ํ์ธ์. ๊ฐ์ ์ด๋ฒคํธ๋ฅผ ๋ ๋ฒ ๋ฐ๋ ๊ฒ์ ์ ์ ๋์์ด๋ฉฐ, ์ค๋ณต ์ ๊ฑฐ๋ ์์ ์ธก ์ฑ
์์
๋๋ค. ํธ์๋ฅผ ์ํด `webhook-event-type` ํค๋์ ์ด๋ฒคํธ ํ์
(๋ณธ๋ฌธ `type` ๊ณผ ๊ฐ์ ๊ฐ)๋ ์ค๋ฆฝ๋๋ค โ ๋ณธ๋ฌธ์ ํ์ฑํ๊ธฐ ์ ์ ๊ด์ฌ ์๋ ํ์
์ ๋ฒ๋ฆด ์ ์์ต๋๋ค. ํ์ค์๋ ์๋ ํ์ฅ์ด๋ผ ๊ฒ์ฆ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด ํค๋๋ฅผ ๋ฌด์ํฉ๋๋ค. ### ์๋ต๊ณผ ์ฌ์๋ 2xx ๋ฅผ ๋๋ ค์ฃผ๋ฉด ์ฑ๊ณต์
๋๋ค. ๊ทธ ์ธ(๋๋ ๋ฌด์๋ต)๋ ์คํจ๋ก ๋ณด๊ณ ์ต๋ 7ํ ์ฌ์๋ํฉ๋๋ค โ ๊ฐ๊ฒฉ์ 10์ด โ 1๋ถ โ 5๋ถ โ 30๋ถ โ 2์๊ฐ โ 6์๊ฐ โ 24์๊ฐ ์
๋๋ค. ์ฒ๋ฆฌ ์๊ฐ์ด ๊ธธ๋ฉด ๋จผ์ 2xx ๋ฅผ ๋๋ ค์ฃผ๊ณ ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌํ์ธ์. ์ฐ์ ์คํจ๊ฐ 20ํ์ ๋ฟ์ผ๋ฉด ๊ตฌ๋
์ด ์๋์ผ๋ก `DISABLED` ๋ก ๋ด๋ ค๊ฐ๊ณ ๋ฐ์ก์ด ๋ฉ์ถฅ๋๋ค. ์์ ์ธก์ ๊ณ ์น ๋ค `PATCH /v2/webhook-endpoints/{endpointId}` ์ `{\"status\":\"ACTIVE\"}` ๋ก ๋์ด๋ฆฌ์ธ์. ### ๊ตฌ๋
๊ฐ๋ฅํ ์ด๋ฒคํธ `bid.closed` ยท `bid.awarded` ยท `bid.failed` ยท `bid.canceled` ยท `bid.award_reverted` `ping` ์ ์ฐ๊ฒฐ ํ์ธ ์ ์ฉ์ด๋ผ ๊ตฌ๋
ํ ์ ์์ต๋๋ค โ ํ
์คํธ ๋ฐ์ก ๊ฒฝ๋ก์์๋ง ๋๊ฐ๋๋ค. ### ๋์น ์ด๋ฒคํธ ํ์ธ `GET /v2/webhook-deliveries` ๊ฐ ๋ฐ์ก ์๋ ์ด๋ ฅ(๋ณธ๋ฌธยท์๋ต ์ํยท๋ค์ ์ฌ์๋ ์๊ฐ)์ ๋๋ ค์ค๋๋ค. ์์ ์ธก ์ฅ์ ๊ตฌ๊ฐ์ ๋ฉ์ธ ๋ ์ด ์๋ํฌ์ธํธ๋ฅผ ํด๋ง ๋์ฒด ๊ฒฝ๋ก๋ก ์ฐ์ธ์.
|
|
457
|
+
* @summary ์นํ
๊ตฌ๋
๋ฑ๋ก
|
|
458
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
459
|
+
* @param {CreateWebhookEndpointRequestDto} createWebhookEndpointRequestDto
|
|
460
|
+
* @param {*} [options] Override http request option.
|
|
461
|
+
* @throws {RequiredError}
|
|
462
|
+
*/
|
|
463
|
+
createWebhookEndpoint: async (idempotencyKey: string, createWebhookEndpointRequestDto: CreateWebhookEndpointRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
|
|
464
|
+
// verify required parameter 'idempotencyKey' is not null or undefined
|
|
465
|
+
assertParamExists('createWebhookEndpoint', 'idempotencyKey', idempotencyKey)
|
|
466
|
+
// verify required parameter 'createWebhookEndpointRequestDto' is not null or undefined
|
|
467
|
+
assertParamExists('createWebhookEndpoint', 'createWebhookEndpointRequestDto', createWebhookEndpointRequestDto)
|
|
468
|
+
const localVarPath = `/v2/webhook-endpoints`;
|
|
469
|
+
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
470
|
+
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
|
|
471
|
+
let baseOptions;
|
|
472
|
+
if (configuration) {
|
|
473
|
+
baseOptions = configuration.baseOptions;
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
|
|
477
|
+
const localVarHeaderParameter = {} as any;
|
|
478
|
+
const localVarQueryParameter = {} as any;
|
|
479
|
+
|
|
480
|
+
// authentication partner-oauth2 required
|
|
481
|
+
// oauth required
|
|
482
|
+
await setOAuthToObject(localVarHeaderParameter, "partner-oauth2", ["webhooks:write"], configuration)
|
|
483
|
+
|
|
484
|
+
localVarHeaderParameter['Content-Type'] = 'application/json';
|
|
485
|
+
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
486
|
+
|
|
487
|
+
if (idempotencyKey != null) {
|
|
488
|
+
localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
|
|
489
|
+
}
|
|
490
|
+
setSearchParams(localVarUrlObj, localVarQueryParameter);
|
|
491
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
492
|
+
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
|
|
493
|
+
localVarRequestOptions.data = serializeDataIfNeeded(createWebhookEndpointRequestDto, localVarRequestOptions, configuration)
|
|
494
|
+
|
|
495
|
+
return {
|
|
496
|
+
url: toPathString(localVarUrlObj),
|
|
497
|
+
options: localVarRequestOptions,
|
|
498
|
+
};
|
|
499
|
+
},
|
|
500
|
+
/**
|
|
501
|
+
* ๊ตฌ๋
์ ์ญ์ ํฉ๋๋ค. ์ดํ ๊ทธ ์ฃผ์๋ก๋ ์๋ฌด ์ด๋ฒคํธ๋ ๋ฐ์ก๋์ง ์์ต๋๋ค. **ํธ์ถ ์์ :** ์ฐ๋์ ์ข
๋ฃํ ๋. ์ ์๋ง ๋ฉ์ถ๋ ค๋ฉด ์ญ์ ํ์ง ๋ง๊ณ `PATCH โฆ {\"status\":\"DISABLED\"}` ๋ฅผ ์ฐ์ธ์ โ ์ํฌ๋ฆฟ๊ณผ ์ด๋ฒคํธ ๊ตฌ์ฑ์ด ๋จ์ ๊ทธ๋๋ก ๋์ด๋ฆด ์ ์์ต๋๋ค. **๋๋๋ฆด ์ ์์ต๋๋ค.** ๋ค์ ๋ฑ๋กํ๋ฉด ์ ๊ตฌ๋
์ด๊ณ ์๋ช
์ํฌ๋ฆฟ๋ ์ ๊ฐ์
๋๋ค. **`If-Match` ๊ฐ ํ์์
๋๋ค.** `GET` ์ผ๋ก ๋ฐ์ `ETag` ๋ฅผ ์ค์ด ๋ณด๋ด์ธ์. - `428` โ ํค๋ ๋๋ฝ. ์กฐํ ํ ์ฌ์๋ํ์ธ์. - `412` โ ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ต๋๋ค(๋๊ตฐ๊ฐ ์์ ํ๊ฑฐ๋ ๋ฐ์ก๊ธฐ๊ฐ ์ํ๋ฅผ ๋ด๋ ธ์ต๋๋ค). ๋ค์ ์กฐํํด ์ ๋ง ์ง์ธ ๋์์ด ๋ง๋์ง ํ์ธํ๊ณ ์ต์ `ETag` ๋ก ์ฌ์๋ํ์ธ์. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
502
|
+
* @summary ์นํ
๊ตฌ๋
์ญ์
|
|
503
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
504
|
+
* @param {string} ifMatch ์ง์ ์กฐํ ์๋ต์ `ETag` ๊ฐ. ๋๋ฝํ๋ฉด 428, ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ผ๋ฉด 412 ๋ก ๊ฑฐ์ ๋๋ฉฐ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
|
|
505
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
506
|
+
* @param {*} [options] Override http request option.
|
|
507
|
+
* @throws {RequiredError}
|
|
508
|
+
*/
|
|
509
|
+
deleteWebhookEndpoint: async (endpointId: string, ifMatch: string, idempotencyKey: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
|
|
510
|
+
// verify required parameter 'endpointId' is not null or undefined
|
|
511
|
+
assertParamExists('deleteWebhookEndpoint', 'endpointId', endpointId)
|
|
512
|
+
// verify required parameter 'ifMatch' is not null or undefined
|
|
513
|
+
assertParamExists('deleteWebhookEndpoint', 'ifMatch', ifMatch)
|
|
514
|
+
// verify required parameter 'idempotencyKey' is not null or undefined
|
|
515
|
+
assertParamExists('deleteWebhookEndpoint', 'idempotencyKey', idempotencyKey)
|
|
516
|
+
const localVarPath = `/v2/webhook-endpoints/{endpointId}`
|
|
517
|
+
.replace('{endpointId}', encodeURIComponent(String(endpointId)));
|
|
518
|
+
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
519
|
+
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
|
|
520
|
+
let baseOptions;
|
|
521
|
+
if (configuration) {
|
|
522
|
+
baseOptions = configuration.baseOptions;
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
|
|
526
|
+
const localVarHeaderParameter = {} as any;
|
|
527
|
+
const localVarQueryParameter = {} as any;
|
|
528
|
+
|
|
529
|
+
// authentication partner-oauth2 required
|
|
530
|
+
// oauth required
|
|
531
|
+
await setOAuthToObject(localVarHeaderParameter, "partner-oauth2", ["webhooks:write"], configuration)
|
|
532
|
+
|
|
533
|
+
localVarHeaderParameter['Accept'] = 'application/problem+json';
|
|
534
|
+
|
|
535
|
+
if (ifMatch != null) {
|
|
536
|
+
localVarHeaderParameter['If-Match'] = String(ifMatch);
|
|
537
|
+
}
|
|
538
|
+
if (idempotencyKey != null) {
|
|
539
|
+
localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
|
|
540
|
+
}
|
|
541
|
+
setSearchParams(localVarUrlObj, localVarQueryParameter);
|
|
542
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
543
|
+
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
|
|
544
|
+
|
|
545
|
+
return {
|
|
546
|
+
url: toPathString(localVarUrlObj),
|
|
547
|
+
options: localVarRequestOptions,
|
|
548
|
+
};
|
|
549
|
+
},
|
|
439
550
|
/**
|
|
440
551
|
* ๋ฌด์ธ์ฆ โ `fileKey` ์์ฒด๊ฐ capability ๋ค(ํค๋ฅผ ์๋ ์ชฝ์ด ๊ณง ์ ๊ทผ ๊ถํ์ ๊ฐ์ง๋ค). ํํธ๋ ์๋ต์ `fileUrl`/`fullUrl` ์ด ์ด URL ์ ๊ฐ๋ฆฌํจ๋ค. ์์ฒญ ์์ ์ ์๋ช
ํ๋ฏ๋ก URL ์ ์ ์ฅํด ๋์ด๋ ๋ง๋ฃ๋์ง ์๋๋ค. ์๋ต์ ์ค์ ์ ์ฅ์ URL ๋ก์ 302 ๋ฆฌ๋ค์ด๋ ํธ์ด๋ฉฐ ๋ฆฌ๋ค์ด๋ ํธ ํ๊น์ 1์๊ฐ ๋ค ๋ง๋ฃ๋๋ฏ๋ก 302 ์์ฒด๋ฅผ ์บ์ํ์ง ๋ง ๊ฒ(`Cache-Control: no-store`). --- **์๋ต ํํ๊ฐ ๋๊ฒฐ๋ ํ๋ฉด์
๋๋ค.** ์ด๋ฏธ ์ฐ๋ ์ค์ธ ์์คํ
์ด ์์ด ์๋ต ํ๋๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ด๋ฆ์ ๋ฐ๊พธ์ง ์์ต๋๋ค. ๋ค๋ฅธ `/v2` ์๋ํฌ์ธํธ์ ๋ฌ๋ฆฌ `{data,meta}` ๋ดํฌ๋ฅผ ์์ฐ์ง ์์ผ๋ฏ๋ก ์๋ต ๋ณธ๋ฌธ์ด ๊ณง ์ ์คํค๋ง์
๋๋ค. ์ง๊ธ ์ฐ๋ํ์
๋ ๊ณ์ ๋์ํฉ๋๋ค โ ๋ค๋ง ์ด ๊ฒฝ๋ก์ ์ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์ง๋ ์์ต๋๋ค. **๋์ฒด ๊ณํ:** ์ด๋ฏธ ์์ต๋๋ค โ `GET /v2/files/{fileKey}` ๊ฐ ํ์ผ ๋ฉํ์ `downloadUrl` ์ v2 ์๋ต ๊ท์ฝ์ผ๋ก ๋๋ ค์ค๋๋ค. ์ด ์์ URL ์ ํํธ๋ ์๋ต์ `fileUrl`/`fullUrl` ์ด ๊ฐ๋ฆฌํค๋ ์ฃผ์๋ผ ๊ณ์ ์ ์ง๋๋ฉฐ ์ค๋จ ์ผ์ ์ ์์ต๋๋ค.
|
|
441
552
|
* @summary ํ์ผ ๋ค์ด๋ก๋
|
|
@@ -702,6 +813,44 @@ export const PartnerApiApiAxiosParamCreator = function (configuration?: Configur
|
|
|
702
813
|
options: localVarRequestOptions,
|
|
703
814
|
};
|
|
704
815
|
},
|
|
816
|
+
/**
|
|
817
|
+
* ๊ตฌ๋
1๊ฑด์ ํ์ฌ ์ํ๋ฅผ ์กฐํํฉ๋๋ค. ์๋ช
์ํฌ๋ฆฟ์ ์ค๋ฆฌ์ง ์์ต๋๋ค. **์์ ยท์ญ์ ์ ์ ๋จผ์ ํธ์ถํ์ธ์.** ์๋ต ํค๋ `ETag` ๋ฅผ `If-Match` ์ ๊ทธ๋๋ก ์ค์ด์ผ `PATCH`/`DELETE` ๊ฐ ํต๊ณผํฉ๋๋ค. **`404`:** ์๋ ๊ตฌ๋
์ด๊ฑฐ๋ ๋ค๋ฅธ ํํธ๋ ํค์ ๊ตฌ๋
์
๋๋ค โ `endpointId` ๋ฅผ ํ์ธํ์ธ์. **ํ์ ์ค์ฝํ:** `webhooks:read`
|
|
818
|
+
* @summary ์นํ
๊ตฌ๋
๋จ๊ฑด ์กฐํ
|
|
819
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
820
|
+
* @param {*} [options] Override http request option.
|
|
821
|
+
* @throws {RequiredError}
|
|
822
|
+
*/
|
|
823
|
+
getWebhookEndpoint: async (endpointId: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
|
|
824
|
+
// verify required parameter 'endpointId' is not null or undefined
|
|
825
|
+
assertParamExists('getWebhookEndpoint', 'endpointId', endpointId)
|
|
826
|
+
const localVarPath = `/v2/webhook-endpoints/{endpointId}`
|
|
827
|
+
.replace('{endpointId}', encodeURIComponent(String(endpointId)));
|
|
828
|
+
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
829
|
+
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
|
|
830
|
+
let baseOptions;
|
|
831
|
+
if (configuration) {
|
|
832
|
+
baseOptions = configuration.baseOptions;
|
|
833
|
+
}
|
|
834
|
+
|
|
835
|
+
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
|
|
836
|
+
const localVarHeaderParameter = {} as any;
|
|
837
|
+
const localVarQueryParameter = {} as any;
|
|
838
|
+
|
|
839
|
+
// authentication partner-oauth2 required
|
|
840
|
+
// oauth required
|
|
841
|
+
await setOAuthToObject(localVarHeaderParameter, "partner-oauth2", ["webhooks:read"], configuration)
|
|
842
|
+
|
|
843
|
+
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
844
|
+
|
|
845
|
+
setSearchParams(localVarUrlObj, localVarQueryParameter);
|
|
846
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
847
|
+
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
|
|
848
|
+
|
|
849
|
+
return {
|
|
850
|
+
url: toPathString(localVarUrlObj),
|
|
851
|
+
options: localVarRequestOptions,
|
|
852
|
+
};
|
|
853
|
+
},
|
|
705
854
|
/**
|
|
706
855
|
* ERP ์ฐ๋ ์ง์ ํ์ ยท์ธ์ฆ endpoint ๋์ ํ์ธ์ฉ.
|
|
707
856
|
* @summary Partner API ํฌ์ค์ฒดํฌ
|
|
@@ -880,6 +1029,94 @@ export const PartnerApiApiAxiosParamCreator = function (configuration?: Configur
|
|
|
880
1029
|
options: localVarRequestOptions,
|
|
881
1030
|
};
|
|
882
1031
|
},
|
|
1032
|
+
/**
|
|
1033
|
+
* ์ด API ํค์ ์นํ
๋ฐ์ก ์๋๋ฅผ ์ต์ ์์ผ๋ก ์กฐํํฉ๋๋ค. ๋ณด๋ธ ๋ณธ๋ฌธยท์์ ์ธก ์๋ต ์ํยท ๋ค์ ์ฌ์๋ ์์ ์๊ฐ์ด ํจ๊ป ์ค๋ฆฝ๋๋ค. **ํธ์ถ ์์ :** - ์์ ์ธก ์ฅ์ ๋ก ๋์น ์ด๋ฒคํธ๋ฅผ ๋ฉ์ธ ๋. ์ด ์๋ํฌ์ธํธ๊ฐ ์นํ
์ **ํด๋ง ๋์ฒด ๊ฒฝ๋ก**์
๋๋ค โ `status=EXHAUSTED` ๋ก ๊ฑธ๋ฌ ๋ค์ ์ฒ๋ฆฌํ๋ฉด ๋ฉ๋๋ค. - \"์ด๋ฒคํธ๊ฐ ์ ์จ๋ค\" ๋ฅผ ์ง๋จํ ๋. ๋ฐ์ก ์๋ ์์ฒด๊ฐ ์๋์ง(๊ตฌ๋
ยท์ด๋ฒคํธ ํ์
๋ฌธ์ ), ์๋ํ์ง๋ง ์คํจํ๋์ง(`responseStatus`ยท`responseBodyExcerpt`)๋ฅผ ์ฌ๊ธฐ์ ๊ฐ๋ฆ
๋๋ค. **๊ฐ์ ์ด๋ฒคํธ๊ฐ ์ฌ๋ฌ ํ์ผ๋ก ๋ณด์
๋๋ค.** ์ฌ์๋๋ง๋ค ํ ํ์ด๋ฉฐ `eventId` ๊ฐ ๊ฐ๊ณ `attempt` ๋ง ์ฌ๋ผ๊ฐ๋๋ค. ์ฒ๋ฆฌ ์ฌ๋ถ๋ `eventId` ๊ธฐ์ค์ผ๋ก ํ๋จํ์ธ์. **ํ์ด์ง๋ค์ด์
:** `nextCursor` ๋ฅผ ๋ค์ ์์ฒญ์ `cursor` ๋ก ์ ๋ฌํฉ๋๋ค. null ์ด๋ฉด ๋ง์ง๋ง ํ์ด์ง์
๋๋ค. **`400`:** `status` ๊ฐ ํ์ฉ ๊ฐ ๋ฐ์ด๊ฑฐ๋ `limit` ์ด ๋ฒ์๋ฅผ ๋ฒ์ด๋ฌ์ต๋๋ค โ ๊ฐ์ ๊ณ ์ณ ์ฌ์๋ํ์ธ์. **ํ์ ์ค์ฝํ:** `webhooks:read`
|
|
1034
|
+
* @summary ์นํ
์ ์ก ์ด๋ ฅ ์กฐํ
|
|
1035
|
+
* @param {string} [endpointId] ์ด ๊ตฌ๋
์ ์ ์ก๋ง ์กฐํํฉ๋๋ค. ๋ฏธ์ง์ ์ด๋ฉด ์ด ํค์ ๋ชจ๋ ๊ตฌ๋
์ ํจ๊ป ์กฐํํฉ๋๋ค.
|
|
1036
|
+
* @param {PartnerWebhookDeliveryStatus} [status] ์ ์ก ์ํ ํํฐ. ๋ฏธ์ง์ ์ด๋ฉด ์ ๋ถ.
|
|
1037
|
+
* @param {number} [limit] ํ์ด์ง ํฌ๊ธฐ(1~200, ๊ธฐ๋ณธ 50).
|
|
1038
|
+
* @param {string} [cursor] ๋ค์ ํ์ด์ง ์ปค์(๋ถํฌ๋ช
ํ ํฐ). ์ง์ ์๋ต์ `nextCursor` ๋ฅผ ๊ทธ๋๋ก ์ ๋ฌํฉ๋๋ค. ๋ฏธ์ง์ ์ ์ฒซ ํ์ด์ง.
|
|
1039
|
+
* @param {*} [options] Override http request option.
|
|
1040
|
+
* @throws {RequiredError}
|
|
1041
|
+
*/
|
|
1042
|
+
listWebhookDeliveries: async (endpointId?: string, status?: PartnerWebhookDeliveryStatus, limit?: number, cursor?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
|
|
1043
|
+
const localVarPath = `/v2/webhook-deliveries`;
|
|
1044
|
+
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
1045
|
+
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
|
|
1046
|
+
let baseOptions;
|
|
1047
|
+
if (configuration) {
|
|
1048
|
+
baseOptions = configuration.baseOptions;
|
|
1049
|
+
}
|
|
1050
|
+
|
|
1051
|
+
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
|
|
1052
|
+
const localVarHeaderParameter = {} as any;
|
|
1053
|
+
const localVarQueryParameter = {} as any;
|
|
1054
|
+
|
|
1055
|
+
// authentication partner-oauth2 required
|
|
1056
|
+
// oauth required
|
|
1057
|
+
await setOAuthToObject(localVarHeaderParameter, "partner-oauth2", ["webhooks:read"], configuration)
|
|
1058
|
+
|
|
1059
|
+
if (endpointId !== undefined) {
|
|
1060
|
+
localVarQueryParameter['endpointId'] = endpointId;
|
|
1061
|
+
}
|
|
1062
|
+
|
|
1063
|
+
if (status !== undefined) {
|
|
1064
|
+
localVarQueryParameter['status'] = status;
|
|
1065
|
+
}
|
|
1066
|
+
|
|
1067
|
+
if (limit !== undefined) {
|
|
1068
|
+
localVarQueryParameter['limit'] = limit;
|
|
1069
|
+
}
|
|
1070
|
+
|
|
1071
|
+
if (cursor !== undefined) {
|
|
1072
|
+
localVarQueryParameter['cursor'] = cursor;
|
|
1073
|
+
}
|
|
1074
|
+
|
|
1075
|
+
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
1076
|
+
|
|
1077
|
+
setSearchParams(localVarUrlObj, localVarQueryParameter);
|
|
1078
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
1079
|
+
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
|
|
1080
|
+
|
|
1081
|
+
return {
|
|
1082
|
+
url: toPathString(localVarUrlObj),
|
|
1083
|
+
options: localVarRequestOptions,
|
|
1084
|
+
};
|
|
1085
|
+
},
|
|
1086
|
+
/**
|
|
1087
|
+
* ์ด API ํค๊ฐ ๋ฑ๋กํ ์นํ
๊ตฌ๋
์ ๋ชจ๋ ์กฐํํฉ๋๋ค. **ํธ์ถ ์์ :** ์ฐ๋ ์ํ๋ฅผ ์ ๊ฒํ ๋, ๋๋ ๋ฐ์ก์ด ๋ฉ์ถ ์ด์ (`status`ยท`consecutiveFailures`)๋ฅผ ํ์ธํ ๋. ์๋ช
์ํฌ๋ฆฟ์ ์ฌ๊ธฐ์ ์ค๋ฆฌ์ง ์์ต๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:read` ### ์๋ช
๊ฒ์ฆ (ํ์) ์๋ช
์ **[Standard Webhooks](https://www.standardwebhooks.com)** ๊ท์ฝ์ ๊ทธ๋๋ก ๋ฐ๋ฆ
๋๋ค. ์ง์ ๊ตฌํํ์ง ๋ง๊ณ ๊ฐ ์ธ์ด์ `standardwebhooks` ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฑ๋ก ์ ๋ฐ์ ์ํฌ๋ฆฟ (`whsec_โฆ`)์ ๊ทธ๋๋ก ๋๊ธฐ์ธ์ โ ๊ทธ๊ฒ์ด ์ด ํ์์ ์ฐ๋ ์ด์ ์
๋๋ค. ```java // Java Webhook webhook = new Webhook(secret); // secret = \"whsec_โฆ\" webhook.verify(rawBody, headers); // ์คํจํ๋ฉด ์์ธ ``` ```ts // Node / TypeScript import { Webhook } from \'standardwebhooks\'; new Webhook(secret).verify(rawBody, headers); ``` ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ธ ์ ์๋ค๋ฉด ๋ฐ์ก ์์ฒญ์ ์ค๋ฆฌ๋ ํค๋๋ ์
์
๋๋ค. ``` webhook-id: evt_01J8Z7Q3K9 webhook-timestamp: 1774915200 webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4= ``` 1. ์ํฌ๋ฆฟ์์ `whsec_` ์ ๋์ด๋ฅผ ๋ผ๊ณ **base64 ๋์ฝ๋**ํฉ๋๋ค โ ๊ทธ ๋ฐ์ดํธ๊ฐ HMAC ํค์
๋๋ค (์ํฌ๋ฆฟ ๋ฌธ์์ด ์์ฒด๊ฐ ์๋๋๋ค). 2. `\"${webhook-id}.${webhook-timestamp}.${๋ณธ๋ฌธ ์๋ฌธ}\"` ์ ๋ง๋ญ๋๋ค. **๋ณธ๋ฌธ์ ํ์ฑ ์ ์๋ฌธ ๋ฐ์ดํธ**์ฌ์ผ ํฉ๋๋ค โ JSON ์ ๋ค์ ์ง๋ ฌํํ๋ฉด ๊ณต๋ฐฑยทํค ์์๊ฐ ๋ฌ๋ผ์ ธ ์๋ช
์ด ๋ง์ง ์์ต๋๋ค. 3. HMAC-SHA256 ์ ๊ณ์ฐํด **base64** ๋ก ์ธ์ฝ๋ฉํ๊ณ , `webhook-signature` ์ `v1,` ๋ค ๊ฐ๊ณผ ๋น๊ตํฉ๋๋ค. ๋น๊ต๋ **์์ ์๊ฐ** ํจ์๋ฅผ ์ฐ์ธ์(Node `crypto.timingSafeEqual`, Java `MessageDigest.isEqual`). 4. `webhook-timestamp` ๊ฐ ํ์ฌ ์๊ฐ์์ **5๋ถ** ์ด์ ์ง๋ฌ์ผ๋ฉด ๊ฑฐ์ ํ์ธ์(์ฌ์ ์ก ๊ณต๊ฒฉ ๋ฐฉ์ด). `webhook-signature` ๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ **์ฌ๋ฌ ์๋ช
**์ ์ค์ ์ ์๋ ํ์์
๋๋ค(ํค ํ์ ์ฉ). ์ง๊ธ์ ํญ์ ํ๋์ง๋ง, ๊ฒ์ฆ๊ธฐ๋ ๋ชฉ๋ก์ผ๋ก ์ฝ๊ณ **ํ๋๋ผ๋ ๋ง์ผ๋ฉด ํต๊ณผ**ํ๋๋ก ์ง์ธ์. ### ์ค๋ณต ์ ๊ฑฐ `webhook-id` ํค๋๊ฐ ์ด๋ฒคํธ ์๋ณ์์
๋๋ค. **์ฌ์๋์๋ ๊ฐ์ ๊ฐ์ด ์ต๋๋ค** โ ์ด๋ฏธ ์ฒ๋ฆฌํ ๊ฐ์ด๋ฉด ๋ฌด์ํ์ธ์. ๊ฐ์ ์ด๋ฒคํธ๋ฅผ ๋ ๋ฒ ๋ฐ๋ ๊ฒ์ ์ ์ ๋์์ด๋ฉฐ, ์ค๋ณต ์ ๊ฑฐ๋ ์์ ์ธก ์ฑ
์์
๋๋ค. ํธ์๋ฅผ ์ํด `webhook-event-type` ํค๋์ ์ด๋ฒคํธ ํ์
(๋ณธ๋ฌธ `type` ๊ณผ ๊ฐ์ ๊ฐ)๋ ์ค๋ฆฝ๋๋ค โ ๋ณธ๋ฌธ์ ํ์ฑํ๊ธฐ ์ ์ ๊ด์ฌ ์๋ ํ์
์ ๋ฒ๋ฆด ์ ์์ต๋๋ค. ํ์ค์๋ ์๋ ํ์ฅ์ด๋ผ ๊ฒ์ฆ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด ํค๋๋ฅผ ๋ฌด์ํฉ๋๋ค. ### ์๋ต๊ณผ ์ฌ์๋ 2xx ๋ฅผ ๋๋ ค์ฃผ๋ฉด ์ฑ๊ณต์
๋๋ค. ๊ทธ ์ธ(๋๋ ๋ฌด์๋ต)๋ ์คํจ๋ก ๋ณด๊ณ ์ต๋ 7ํ ์ฌ์๋ํฉ๋๋ค โ ๊ฐ๊ฒฉ์ 10์ด โ 1๋ถ โ 5๋ถ โ 30๋ถ โ 2์๊ฐ โ 6์๊ฐ โ 24์๊ฐ ์
๋๋ค. ์ฒ๋ฆฌ ์๊ฐ์ด ๊ธธ๋ฉด ๋จผ์ 2xx ๋ฅผ ๋๋ ค์ฃผ๊ณ ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌํ์ธ์. ์ฐ์ ์คํจ๊ฐ 20ํ์ ๋ฟ์ผ๋ฉด ๊ตฌ๋
์ด ์๋์ผ๋ก `DISABLED` ๋ก ๋ด๋ ค๊ฐ๊ณ ๋ฐ์ก์ด ๋ฉ์ถฅ๋๋ค. ์์ ์ธก์ ๊ณ ์น ๋ค `PATCH /v2/webhook-endpoints/{endpointId}` ์ `{\"status\":\"ACTIVE\"}` ๋ก ๋์ด๋ฆฌ์ธ์. ### ๊ตฌ๋
๊ฐ๋ฅํ ์ด๋ฒคํธ `bid.closed` ยท `bid.awarded` ยท `bid.failed` ยท `bid.canceled` ยท `bid.award_reverted` `ping` ์ ์ฐ๊ฒฐ ํ์ธ ์ ์ฉ์ด๋ผ ๊ตฌ๋
ํ ์ ์์ต๋๋ค โ ํ
์คํธ ๋ฐ์ก ๊ฒฝ๋ก์์๋ง ๋๊ฐ๋๋ค. ### ๋์น ์ด๋ฒคํธ ํ์ธ `GET /v2/webhook-deliveries` ๊ฐ ๋ฐ์ก ์๋ ์ด๋ ฅ(๋ณธ๋ฌธยท์๋ต ์ํยท๋ค์ ์ฌ์๋ ์๊ฐ)์ ๋๋ ค์ค๋๋ค. ์์ ์ธก ์ฅ์ ๊ตฌ๊ฐ์ ๋ฉ์ธ ๋ ์ด ์๋ํฌ์ธํธ๋ฅผ ํด๋ง ๋์ฒด ๊ฒฝ๋ก๋ก ์ฐ์ธ์.
|
|
1088
|
+
* @summary ์นํ
๊ตฌ๋
๋ชฉ๋ก ์กฐํ
|
|
1089
|
+
* @param {*} [options] Override http request option.
|
|
1090
|
+
* @throws {RequiredError}
|
|
1091
|
+
*/
|
|
1092
|
+
listWebhookEndpoints: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
|
|
1093
|
+
const localVarPath = `/v2/webhook-endpoints`;
|
|
1094
|
+
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
1095
|
+
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
|
|
1096
|
+
let baseOptions;
|
|
1097
|
+
if (configuration) {
|
|
1098
|
+
baseOptions = configuration.baseOptions;
|
|
1099
|
+
}
|
|
1100
|
+
|
|
1101
|
+
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
|
|
1102
|
+
const localVarHeaderParameter = {} as any;
|
|
1103
|
+
const localVarQueryParameter = {} as any;
|
|
1104
|
+
|
|
1105
|
+
// authentication partner-oauth2 required
|
|
1106
|
+
// oauth required
|
|
1107
|
+
await setOAuthToObject(localVarHeaderParameter, "partner-oauth2", ["webhooks:read"], configuration)
|
|
1108
|
+
|
|
1109
|
+
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
1110
|
+
|
|
1111
|
+
setSearchParams(localVarUrlObj, localVarQueryParameter);
|
|
1112
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
1113
|
+
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
|
|
1114
|
+
|
|
1115
|
+
return {
|
|
1116
|
+
url: toPathString(localVarUrlObj),
|
|
1117
|
+
options: localVarRequestOptions,
|
|
1118
|
+
};
|
|
1119
|
+
},
|
|
883
1120
|
/**
|
|
884
1121
|
* ๊ณต๊ณ ๋ฅผ ์ ์ฐฐ ์ํ๋ก ์ ํํฉ๋๋ค. **ํธ์ถ ์์ :** ์
์ฐฐ ๋ง๊ฐ ํ ์ ์ฐฐ ์ฌ์ ๊ฐ ํ์ ๋์์ ๋. ๊ณต๊ณ ๊ฐ ์
์ฐฐ์๋ฃ(๋ง๊ฐ) ์ํ์์ ํธ์ถํฉ๋๋ค. **๋ถ์ํจ๊ณผ:** - ๊ณต๊ณ ์ํ๊ฐ ์ ์ฐฐ(FAILED)๋ก ์ ํ๋ฉ๋๋ค. - ์ ์ฐฐ์ฌ์ ์ฝ๋์ ์์ธ๊ฐ ๊ธฐ๋ก๋ฉ๋๋ค. **์ ์ฐฐ์ฌ์ ๊ฐ ๋ชฉ๋ก(failureReasonCode โ ๊ณต๊ฐ๊ฐ):** | ๊ฐ | ์๋ฏธ | |------|------| | `ABOVE_TARGET_PRICE` | ์์ ๊ฐ๊ฒฉ ์ด๊ณผ | | `DEPT_MISMATCH` | ์๊ฒฉ ๋ฏธ๋ฌ | | `NEEDS_EXPERTISE` | ์ ๋ฌธ์ฑ ํ์ | | `OTHER` | ๊ธฐํ (`failureReasonDetail` ํ์) | | `NO_PARTICIPANT` | ์ฐธ๊ฐ์ ์์ | | `SINGLE_PARTICIPANT` | ๋จ๋
์ฐธ๊ฐ | | `LESS_THAN_TWO` | 2์ธ ๋ฏธ๋ง | | `BELOW_MINIMUM` | ์ต์ ๊ฐ ๋ฏธ๋ฌ | **๋ฐ์ฃผ์ฒ:** API ํค์ ๋ฐ์ธ๋ฉ๋ ๋ฐ์ฃผ์ฒ๋ก ์๋ ์ค์ฝํ๋ฉ๋๋ค(์์ฒญ body ์ buyerId ๋ฅผ ๋ฃ์ง ์์ต๋๋ค). **ํ์ ์ค์ฝํ:** `awards:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
885
1122
|
* @summary ์ ์ฐฐ ์ฒ๋ฆฌ
|
|
@@ -1166,6 +1403,94 @@ export const PartnerApiApiAxiosParamCreator = function (configuration?: Configur
|
|
|
1166
1403
|
options: localVarRequestOptions,
|
|
1167
1404
|
};
|
|
1168
1405
|
},
|
|
1406
|
+
/**
|
|
1407
|
+
* ์๋ช
์ํฌ๋ฆฟ์ ์๋ก ๋ฐ๊ธํฉ๋๋ค. ์๋ต์ `secretVersion` ์ด 1 ์ฌ๋ผ๊ฐ๋๋ค. **ํธ์ถ ์์ :** ์ํฌ๋ฆฟ์ ๋ถ์คํ๊ฑฐ๋ ์ ์ถ์ด ์์ฌ๋ ๋, ๋๋ ์ฃผ๊ธฐ์ ๊ต์ฒด ์ ์ฑ
์ด ์์ ๋. **์ ์ํฌ๋ฆฟ์ ์ด ์๋ต์์ ํ ๋ฒ๋ง ๋๊ฐ๋๋ค.** ์กฐํ๋ก ๋ค์ ๋ฐ์ ์ ์์ต๋๋ค. **์ ์ํฌ๋ฆฟ์ ์ฆ์ ๋ฌดํจ์
๋๋ค.** ์ ์ ๊ธฐ๊ฐ์ด ์์ผ๋ฏ๋ก, ์์ ์ธก์ด ์ ๊ฐ์ ๋ฐ์ํ๊ธฐ ์ ์ ๋์ฐฉํ ์ด๋ฒคํธ๋ ์๋ช
๊ฒ์ฆ์ ์คํจํฉ๋๋ค. ๋ฐฐํฌ ์์๋ฅผ ์ด๋ ๊ฒ ์ก์ผ์ธ์ โ โ ์์ ์ธก์ด ์ ๊ฐ๊ณผ ์ ๊ฐ์ **๋ ๋ค** ๋ฐ์๋ค์ด๋๋ก ๋ฐฐํฌ โ โก ์ด ์๋ํฌ์ธํธ ํธ์ถ โ โข ์๋ต์ ์ ๊ฐ์ ๋ฐ์ โ โฃ ์ ๊ฐ ์ ๊ฑฐ. ๊ฒ์ฆ ์คํจ๋ก non-2xx ๋ฅผ ๋๋ ค์ฃผ๋ฉด ์คํจ๋ก ์ง๊ณ๋์ด 20ํ ์ฐ์ ์ ๊ตฌ๋
์ด ์ค์ง๋ฉ๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ๊ฐ์ ํค๋ก ์ฌ์ ์กํ๋ฉด **์๋ก ๋ฐ๊ธํ์ง ์๊ณ ** ์ฒ์ ๋ฐ๊ธํ ๊ฐ์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค(24์๊ฐ) โ ๋คํธ์ํฌ ์ค๋ฅ๋ก ์๋ต์ ๋์ณค์ ๋ ๊ฐ์ ํค๋ก ๋ค์ ๋ถ๋ฅด์ธ์.
|
|
1408
|
+
* @summary ์นํ
์๋ช
์ํฌ๋ฆฟ ์ฌ๋ฐ๊ธ
|
|
1409
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
1410
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
1411
|
+
* @param {*} [options] Override http request option.
|
|
1412
|
+
* @throws {RequiredError}
|
|
1413
|
+
*/
|
|
1414
|
+
rotateWebhookSecret: async (endpointId: string, idempotencyKey: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
|
|
1415
|
+
// verify required parameter 'endpointId' is not null or undefined
|
|
1416
|
+
assertParamExists('rotateWebhookSecret', 'endpointId', endpointId)
|
|
1417
|
+
// verify required parameter 'idempotencyKey' is not null or undefined
|
|
1418
|
+
assertParamExists('rotateWebhookSecret', 'idempotencyKey', idempotencyKey)
|
|
1419
|
+
const localVarPath = `/v2/webhook-endpoints/{endpointId}/rotate-secret`
|
|
1420
|
+
.replace('{endpointId}', encodeURIComponent(String(endpointId)));
|
|
1421
|
+
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
1422
|
+
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
|
|
1423
|
+
let baseOptions;
|
|
1424
|
+
if (configuration) {
|
|
1425
|
+
baseOptions = configuration.baseOptions;
|
|
1426
|
+
}
|
|
1427
|
+
|
|
1428
|
+
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
|
|
1429
|
+
const localVarHeaderParameter = {} as any;
|
|
1430
|
+
const localVarQueryParameter = {} as any;
|
|
1431
|
+
|
|
1432
|
+
// authentication partner-oauth2 required
|
|
1433
|
+
// oauth required
|
|
1434
|
+
await setOAuthToObject(localVarHeaderParameter, "partner-oauth2", ["webhooks:write"], configuration)
|
|
1435
|
+
|
|
1436
|
+
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
1437
|
+
|
|
1438
|
+
if (idempotencyKey != null) {
|
|
1439
|
+
localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
|
|
1440
|
+
}
|
|
1441
|
+
setSearchParams(localVarUrlObj, localVarQueryParameter);
|
|
1442
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
1443
|
+
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
|
|
1444
|
+
|
|
1445
|
+
return {
|
|
1446
|
+
url: toPathString(localVarUrlObj),
|
|
1447
|
+
options: localVarRequestOptions,
|
|
1448
|
+
};
|
|
1449
|
+
},
|
|
1450
|
+
/**
|
|
1451
|
+
* ๋ฑ๋ก๋ ์ฃผ์๋ก `ping` ์ด๋ฒคํธ๋ฅผ ์ฆ์ 1ํ ๋ณด๋ด๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋๋ ค์ค๋๋ค. **ํธ์ถ ์์ :** ๊ตฌ๋
์ ๋ฑ๋กํ ์งํ, ์์ ์ฃผ์๋ฅผ ๋ฐ๊พผ ์งํ, ๋ฐฉํ๋ฒฝยท์ธ์ฆ์๋ฅผ ์๋ณธ ๋ค. **์๋ต์ ๋ฐ์ก ๊ฒฐ๊ณผ์ด์ง ์์ฒญ ์คํจ๊ฐ ์๋๋๋ค.** ์์ ์ธก์ด ๋ฐ์ง ๋ชปํด๋ HTTP `200` ์ `delivered: false` ๋ก ์ต๋๋ค โ `responseStatus`(์์ ์ธก ์ํ)์ `error`(์ฐ๊ฒฐ ๊ฑฐ๋ถยทํ์์์ยท TLS ์ค๋ฅ)๋ฅผ ๋ณด๊ณ ์์ธ์ ์ขํ์ธ์. ์ด ๋ฐ์ก์๋ ์ค์ ์ด๋ฒคํธ์ **๋๊ฐ์ ์๋ช
ํค๋**๊ฐ ์ค๋ฆฌ๋ฏ๋ก ๊ฒ์ฆ ์ฝ๋๋ฅผ ๊ทธ๋๋ก ์ํํ ์ ์์ต๋๋ค. `ping` ์ ๊ตฌ๋
๋ชฉ๋ก์ ๋ฃ์ ์ ์๋ ํ์
์ด๋, ์์ ์ธก์ด ๋ชจ๋ฅด๋ `eventType` ์ ๋ง๋๋ฉด ๋ฒ๋ฆฌ๋๋ก ์ง์ฌ ์๋ค๋ฉด ์ด ํ์ธ๋ง ์คํจํ ์ ์์ต๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ๋ค์ ๋ณด๋ด๋ ค๋ฉด **์ ํค**๋ฅผ ์ฐ์ธ์ โ ๊ฐ์ ํค๋ 24์๊ฐ ๋์ ์ง์ ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค(์ฌ๋ฐ์กํ์ง ์์ต๋๋ค).
|
|
1452
|
+
* @summary ์นํ
์ฐ๊ฒฐ ํ์ธ ๋ฐ์ก
|
|
1453
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
1454
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
1455
|
+
* @param {*} [options] Override http request option.
|
|
1456
|
+
* @throws {RequiredError}
|
|
1457
|
+
*/
|
|
1458
|
+
sendWebhookTestEvent: async (endpointId: string, idempotencyKey: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
|
|
1459
|
+
// verify required parameter 'endpointId' is not null or undefined
|
|
1460
|
+
assertParamExists('sendWebhookTestEvent', 'endpointId', endpointId)
|
|
1461
|
+
// verify required parameter 'idempotencyKey' is not null or undefined
|
|
1462
|
+
assertParamExists('sendWebhookTestEvent', 'idempotencyKey', idempotencyKey)
|
|
1463
|
+
const localVarPath = `/v2/webhook-endpoints/{endpointId}/test`
|
|
1464
|
+
.replace('{endpointId}', encodeURIComponent(String(endpointId)));
|
|
1465
|
+
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
1466
|
+
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
|
|
1467
|
+
let baseOptions;
|
|
1468
|
+
if (configuration) {
|
|
1469
|
+
baseOptions = configuration.baseOptions;
|
|
1470
|
+
}
|
|
1471
|
+
|
|
1472
|
+
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
|
|
1473
|
+
const localVarHeaderParameter = {} as any;
|
|
1474
|
+
const localVarQueryParameter = {} as any;
|
|
1475
|
+
|
|
1476
|
+
// authentication partner-oauth2 required
|
|
1477
|
+
// oauth required
|
|
1478
|
+
await setOAuthToObject(localVarHeaderParameter, "partner-oauth2", ["webhooks:write"], configuration)
|
|
1479
|
+
|
|
1480
|
+
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
1481
|
+
|
|
1482
|
+
if (idempotencyKey != null) {
|
|
1483
|
+
localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
|
|
1484
|
+
}
|
|
1485
|
+
setSearchParams(localVarUrlObj, localVarQueryParameter);
|
|
1486
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
1487
|
+
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
|
|
1488
|
+
|
|
1489
|
+
return {
|
|
1490
|
+
url: toPathString(localVarUrlObj),
|
|
1491
|
+
options: localVarRequestOptions,
|
|
1492
|
+
};
|
|
1493
|
+
},
|
|
1169
1494
|
/**
|
|
1170
1495
|
* ํ์๋ฐฉ์(NEGOTIATION/NEGOTIATION_AUTO) ๊ณต๊ณ ์ ์์ฐฐ์๋ณ ์ ์๋ฅผ ์
๋ ฅํฉ๋๋ค. **ํธ์ถ ์์ :** ์
์ฐฐ ๋ง๊ฐ ํ ๋์ฐฐ(`POST /v2/bids/{bidRef}/award`) ์ . ํ์๋ฐฉ์ ๊ณต๊ณ ๋ ์ด ํ๊ฐ๋ฅผ ์๋ฃํด์ผ ๋์ฐฐ์ ์ง์
ํ ์ ์์ต๋๋ค. **๋ถ์ํจ๊ณผ:** - ์์ฐฐ์๋ณ ๊ธฐ์ ์ ์(๋ฐ ์ ํ์ ๊ฐ๊ฒฉ์ ์ override)๊ฐ ๊ธฐ๋ก๋ฉ๋๋ค. - `complete=true` ๋ฉด ํ๊ฐ์๋ฃ ๊ฒ์ดํธ๊น์ง ์ ์ฉ๋ผ ๋์ฐฐ ์ง์
์ด ๊ฐ๋ฅํด์ง๋๋ค. **๋ฐ์ฃผ์ฒ:** API ํค์ ๋ฐ์ธ๋ฉ๋ ๋ฐ์ฃผ์ฒ๋ก ์๋ ์ค์ฝํ๋ฉ๋๋ค(์์ฒญ body ์ buyerId ๋ฅผ ๋ฃ์ง ์์ต๋๋ค). **ํ์ ์ค์ฝํ:** `awards:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ๋์ผ ํค + ๋์ผ body ์ฌ์ ์ก ์ 24์๊ฐ ๋ด ์บ์ ์๋ต ๋ฐํ.
|
|
1171
1496
|
* @summary ํ์ ์ ์ํ๊ฐ
|
|
@@ -1270,6 +1595,61 @@ export const PartnerApiApiAxiosParamCreator = function (configuration?: Configur
|
|
|
1270
1595
|
options: localVarRequestOptions,
|
|
1271
1596
|
};
|
|
1272
1597
|
},
|
|
1598
|
+
/**
|
|
1599
|
+
* ์์ ์ฃผ์ยท๊ตฌ๋
์ด๋ฒคํธยท์ํ๋ฅผ ์์ ํฉ๋๋ค. ๋ณด๋ธ ํ๋๋ง ๋ฐ๋๋๋ค. **ํธ์ถ ์์ :** ์์ ์ฃผ์๊ฐ ๋ฐ๋์์ ๋, ๊ตฌ๋
์ด๋ฒคํธ๋ฅผ ๋๋ฆฌ๊ฑฐ๋ ์ค์ผ ๋, ์ฐ์ ์คํจ๋ก ์๋ ์ค์ง๋ ๊ตฌ๋
์ ๊ณ ์น ๋ค ๋์ด๋ฆด ๋(`{\"status\":\"ACTIVE\"}`). **`eventTypes` ๋ ์นํ์
๋๋ค** โ ๋ณด๋ธ ๋ชฉ๋ก์ด ๊ณง ์ ๊ตฌ๋
๋ชฉ๋ก์
๋๋ค. ํ๋๋ฅผ ๋ํ๋ ค๋ฉด ๊ธฐ์กด ๋ชฉ๋ก์ ๋ํ **์ ์ฒด**๋ฅผ ๋ณด๋ด์ธ์. **`If-Match` ๊ฐ ํ์์
๋๋ค.** ๋จผ์ `GET /v2/webhook-endpoints/{endpointId}` ๋ก ํ์ฌ `ETag` ๋ฅผ ๋ฐ์ ๊ทธ๋๋ก ์ค์ด ๋ณด๋ด์ธ์. ์ด ํค๋๊ฐ ์์ผ๋ฉด ๋ ์์ฒญ์ด ์์๊ฑฐ๋ ๋ค์๊ฑฐ๋ ํ๋ฉฐ ๋จผ์ ํ ์์ ์ ์กฐ์ฉํ ๋ฎ์ด์๋๋ค. - `428` โ ํค๋๋ฅผ ๋นผ๋จน์์ต๋๋ค. ์กฐํ ํ `ETag` ๋ฅผ ์ค์ด ์ฌ์๋ํ์ธ์. - `412` โ ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ต๋๋ค. ๋ค์ ์กฐํํด ์ต์ `ETag` ๋ก ์ฌ์๋ํ์ธ์. ์๋ฌด๊ฒ๋ ์์ ๋์ง ์์์ต๋๋ค. **์ํฌ๋ฆฟ์ ์ด ๊ฒฝ๋ก๋ก ๋ฐ๋์ง ์์ต๋๋ค** โ ์ฌ๋ฐ๊ธ์ `rotate-secret` ์
๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
1600
|
+
* @summary ์นํ
๊ตฌ๋
์์
|
|
1601
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
1602
|
+
* @param {string} ifMatch ์ง์ ์กฐํ ์๋ต์ `ETag` ๊ฐ. ๋๋ฝํ๋ฉด 428, ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ผ๋ฉด 412 ๋ก ๊ฑฐ์ ๋๋ฉฐ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
|
|
1603
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
1604
|
+
* @param {UpdateWebhookEndpointRequestDto} updateWebhookEndpointRequestDto
|
|
1605
|
+
* @param {*} [options] Override http request option.
|
|
1606
|
+
* @throws {RequiredError}
|
|
1607
|
+
*/
|
|
1608
|
+
updateWebhookEndpoint: async (endpointId: string, ifMatch: string, idempotencyKey: string, updateWebhookEndpointRequestDto: UpdateWebhookEndpointRequestDto, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
|
|
1609
|
+
// verify required parameter 'endpointId' is not null or undefined
|
|
1610
|
+
assertParamExists('updateWebhookEndpoint', 'endpointId', endpointId)
|
|
1611
|
+
// verify required parameter 'ifMatch' is not null or undefined
|
|
1612
|
+
assertParamExists('updateWebhookEndpoint', 'ifMatch', ifMatch)
|
|
1613
|
+
// verify required parameter 'idempotencyKey' is not null or undefined
|
|
1614
|
+
assertParamExists('updateWebhookEndpoint', 'idempotencyKey', idempotencyKey)
|
|
1615
|
+
// verify required parameter 'updateWebhookEndpointRequestDto' is not null or undefined
|
|
1616
|
+
assertParamExists('updateWebhookEndpoint', 'updateWebhookEndpointRequestDto', updateWebhookEndpointRequestDto)
|
|
1617
|
+
const localVarPath = `/v2/webhook-endpoints/{endpointId}`
|
|
1618
|
+
.replace('{endpointId}', encodeURIComponent(String(endpointId)));
|
|
1619
|
+
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
1620
|
+
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
|
|
1621
|
+
let baseOptions;
|
|
1622
|
+
if (configuration) {
|
|
1623
|
+
baseOptions = configuration.baseOptions;
|
|
1624
|
+
}
|
|
1625
|
+
|
|
1626
|
+
const localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options};
|
|
1627
|
+
const localVarHeaderParameter = {} as any;
|
|
1628
|
+
const localVarQueryParameter = {} as any;
|
|
1629
|
+
|
|
1630
|
+
// authentication partner-oauth2 required
|
|
1631
|
+
// oauth required
|
|
1632
|
+
await setOAuthToObject(localVarHeaderParameter, "partner-oauth2", ["webhooks:write"], configuration)
|
|
1633
|
+
|
|
1634
|
+
localVarHeaderParameter['Content-Type'] = 'application/json';
|
|
1635
|
+
localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
|
|
1636
|
+
|
|
1637
|
+
if (ifMatch != null) {
|
|
1638
|
+
localVarHeaderParameter['If-Match'] = String(ifMatch);
|
|
1639
|
+
}
|
|
1640
|
+
if (idempotencyKey != null) {
|
|
1641
|
+
localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
|
|
1642
|
+
}
|
|
1643
|
+
setSearchParams(localVarUrlObj, localVarQueryParameter);
|
|
1644
|
+
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
1645
|
+
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
|
|
1646
|
+
localVarRequestOptions.data = serializeDataIfNeeded(updateWebhookEndpointRequestDto, localVarRequestOptions, configuration)
|
|
1647
|
+
|
|
1648
|
+
return {
|
|
1649
|
+
url: toPathString(localVarUrlObj),
|
|
1650
|
+
options: localVarRequestOptions,
|
|
1651
|
+
};
|
|
1652
|
+
},
|
|
1273
1653
|
/**
|
|
1274
1654
|
* **์ฒจ๋ถ ์
๋ก๋์ ๊ธฐ๋ณธ ๊ฒฝ๋ก์
๋๋ค. 23MB ์ดํ๋ฉด ์ด ํธ์ถ ํ๋๋ก ๋๋ฉ๋๋ค.** ํ์ผ ๋ณธ๋ฌธ์ `base64` ๋๋ `url` ์ค ์ ํํ ํ๋๋ก ์ ์ถํ๋ฉด `fileKey` ๋ฅผ ๋๋ ค์ค๋๋ค. ์ด ๊ฐ์ ๊ณต๊ณ ๋ฑ๋กยท์์ ์ ์ฒจ๋ถ ํ๋์ ์ค์ผ์ธ์. **23MB ๋ฅผ ๋์ผ๋ฉด ๊ฒฝ๋ก๋ฅผ ๋ฐ๊ฟ์ผ ํฉ๋๋ค.** ์ํ์ด ์
์ผ๋ก ๊ฐ๋ฆฝ๋๋ค. | ์ ์ถ ๋ฐฉ์ | ์ํ | ํธ์ถ ์ | | --- | --- | --- | | ์ด ํธ์ถ + `base64` | **23MB** (๋ณธ๋ฌธ์ด c-market ์ ํต๊ณผํ๋ฉฐ base64 ํฝ์ฐฝ 4/3 ์ด ์นํ) | 1 | | ์ด ํธ์ถ + `url` | **30MB** (c-market ์ด ๋์ ๋ด๋ ค๋ฐ์ ํฝ์ฐฝ์ ์์ง๋ง ์๋ฒ ๊ฒฝ์ ์ฒ์ฅ์ ๊ทธ๋๋ก) | 1 | | `POST /v2/files/upload-url` ๋ก ์์ํ๋ 2๋จ๊ณ | **100MB** (๋ฐ์ดํธ๊ฐ c-market ์ ์ง๋์ง ์์) | 2 + ์คํ ๋ฆฌ์ง PUT | c-market ์ด ๋ด๋ ค๋ฐ์ ์ ์๋ https ์ฃผ์์ ํ์ผ์ ์ฌ๋ ค ๋ ์ ์๋ค๋ฉด `url` ์ด 30MB ๊น์ง๋ฅผ 1์ฝ๋ก ๋ฎ์ต๋๋ค. ๊ทธ ์ด์์ด๊ฑฐ๋ ์ฃผ์๋ฅผ ์ด ์ ์์ผ๋ฉด 2๋จ๊ณ ๊ฒฝ๋ก๋ฅผ ์ฐ์ธ์. **๊ณต๊ณ ๋ฑ๋ก์ ํ์ผ์ ํจ๊ป ์ค์ ์๋ ์์ต๋๋ค.** `POST /v2/bids` ์ `attachments` ์์์ `{ fileName, url }`ยท`{ fileName, base64 }` ๋ฅผ ๊ทธ๋๋ก ๋ฃ์ผ๋ฉด ์ด ํธ์ถ ์์ด ํ ๋ฒ์ ๋๋ฉ๋๋ค. ์ฌ๋ฌ ๊ณต๊ณ ์ ๊ฐ์ ํ์ผ์ ์ฌ์ฌ์ฉํ๊ฑฐ๋ ํฐ ํ์ผ์ ๋ค๋ฃฐ ๋๋ง `fileKey` ๋ฅผ ๋จผ์ ๋ง๋์ธ์. **ํ์ ์ค์ฝํ:** `files:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
1275
1655
|
* @summary ๊ณต๊ณ ์ฒจ๋ถํ์ผ ์
๋ก๋ (๊ธฐ๋ณธ)
|
|
@@ -1425,6 +1805,35 @@ export const PartnerApiApiFp = function(configuration?: Configuration) {
|
|
|
1425
1805
|
const localVarOperationServerBasePath = operationServerMap['PartnerApiApi.createFileUploadUrl']?.[localVarOperationServerIndex]?.url;
|
|
1426
1806
|
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1427
1807
|
},
|
|
1808
|
+
/**
|
|
1809
|
+
* ์์ ์ฃผ์์ ๊ตฌ๋
ํ ์ด๋ฒคํธ๋ฅผ ๋ฑ๋กํฉ๋๋ค. **ํธ์ถ ์์ :** ์ฐ๋ ์ด๊ธฐ 1ํ. ์์ ์ฃผ์๊ฐ ๋ฐ๋๋ฉด ์๋ก ๋ง๋ค์ง ๋ง๊ณ `PATCH` ๋ก ๊ณ ์น์ธ์ โ ๊ทธ๋์ผ ์ํฌ๋ฆฟ๊ณผ ์ ์ก ์ด๋ ฅ์ด ์ ์ง๋ฉ๋๋ค. **์๋ช
์ํฌ๋ฆฟ์ ์ด ์๋ต์์ ํ ๋ฒ๋ง ๋๊ฐ๋๋ค.** ์๋ฒ๋ ํด์๋ง ๋ณด๊ดํ๋ฏ๋ก ์กฐํ๋ก ๋ค์ ๋ฐ์ ์ ์์ต๋๋ค. ์๋ต์ `secret` ์ ์ฆ์ ์์ ํ ๊ณณ์ ๋ณด๊ดํ์ธ์. ์์ด๋ฒ๋ ธ๋ค๋ฉด ๋ณต๊ตฌ๊ฐ ์๋๋ผ `POST /v2/webhook-endpoints/{endpointId}/rotate-secret` ์ผ๋ก **์ฌ๋ฐ๊ธ**ํด์ผ ํฉ๋๋ค. **๊ฑฐ์ ๋๋ ๊ฒฝ์ฐ์ ๊ณ ์น๋ ๋ฒ:** - `400` โ `url` ์ด HTTPS ๊ฐ ์๋๊ฑฐ๋ ํ์์ด ์๋ชป๋จ, `eventTypes` ๊ฐ ๋น์๊ฑฐ๋ ๋ชฉ๋ก ๋ฐ ๊ฐ (`ping` ์ ๊ตฌ๋
๋ถ๊ฐ). ๊ฐ์ ๊ณ ์ณ ์ฌ์๋ํ์ธ์. - `400` โ `Idempotency-Key` ํค๋ ๋๋ฝ/ํ์ ์ค๋ฅ. UUID v4 ๋ฅผ ์ค์ด ๋ณด๋ด์ธ์. - `403` โ ํ ํฐ์ `webhooks:write` ์ค์ฝํ๊ฐ ์์. ํค ๋ฐ๊ธ ์ค์ ์ ๋ํ์ผ ํฉ๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ### ์๋ช
๊ฒ์ฆ (ํ์) ์๋ช
์ **[Standard Webhooks](https://www.standardwebhooks.com)** ๊ท์ฝ์ ๊ทธ๋๋ก ๋ฐ๋ฆ
๋๋ค. ์ง์ ๊ตฌํํ์ง ๋ง๊ณ ๊ฐ ์ธ์ด์ `standardwebhooks` ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฑ๋ก ์ ๋ฐ์ ์ํฌ๋ฆฟ (`whsec_โฆ`)์ ๊ทธ๋๋ก ๋๊ธฐ์ธ์ โ ๊ทธ๊ฒ์ด ์ด ํ์์ ์ฐ๋ ์ด์ ์
๋๋ค. ```java // Java Webhook webhook = new Webhook(secret); // secret = \"whsec_โฆ\" webhook.verify(rawBody, headers); // ์คํจํ๋ฉด ์์ธ ``` ```ts // Node / TypeScript import { Webhook } from \'standardwebhooks\'; new Webhook(secret).verify(rawBody, headers); ``` ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ธ ์ ์๋ค๋ฉด ๋ฐ์ก ์์ฒญ์ ์ค๋ฆฌ๋ ํค๋๋ ์
์
๋๋ค. ``` webhook-id: evt_01J8Z7Q3K9 webhook-timestamp: 1774915200 webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4= ``` 1. ์ํฌ๋ฆฟ์์ `whsec_` ์ ๋์ด๋ฅผ ๋ผ๊ณ **base64 ๋์ฝ๋**ํฉ๋๋ค โ ๊ทธ ๋ฐ์ดํธ๊ฐ HMAC ํค์
๋๋ค (์ํฌ๋ฆฟ ๋ฌธ์์ด ์์ฒด๊ฐ ์๋๋๋ค). 2. `\"${webhook-id}.${webhook-timestamp}.${๋ณธ๋ฌธ ์๋ฌธ}\"` ์ ๋ง๋ญ๋๋ค. **๋ณธ๋ฌธ์ ํ์ฑ ์ ์๋ฌธ ๋ฐ์ดํธ**์ฌ์ผ ํฉ๋๋ค โ JSON ์ ๋ค์ ์ง๋ ฌํํ๋ฉด ๊ณต๋ฐฑยทํค ์์๊ฐ ๋ฌ๋ผ์ ธ ์๋ช
์ด ๋ง์ง ์์ต๋๋ค. 3. HMAC-SHA256 ์ ๊ณ์ฐํด **base64** ๋ก ์ธ์ฝ๋ฉํ๊ณ , `webhook-signature` ์ `v1,` ๋ค ๊ฐ๊ณผ ๋น๊ตํฉ๋๋ค. ๋น๊ต๋ **์์ ์๊ฐ** ํจ์๋ฅผ ์ฐ์ธ์(Node `crypto.timingSafeEqual`, Java `MessageDigest.isEqual`). 4. `webhook-timestamp` ๊ฐ ํ์ฌ ์๊ฐ์์ **5๋ถ** ์ด์ ์ง๋ฌ์ผ๋ฉด ๊ฑฐ์ ํ์ธ์(์ฌ์ ์ก ๊ณต๊ฒฉ ๋ฐฉ์ด). `webhook-signature` ๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ **์ฌ๋ฌ ์๋ช
**์ ์ค์ ์ ์๋ ํ์์
๋๋ค(ํค ํ์ ์ฉ). ์ง๊ธ์ ํญ์ ํ๋์ง๋ง, ๊ฒ์ฆ๊ธฐ๋ ๋ชฉ๋ก์ผ๋ก ์ฝ๊ณ **ํ๋๋ผ๋ ๋ง์ผ๋ฉด ํต๊ณผ**ํ๋๋ก ์ง์ธ์. ### ์ค๋ณต ์ ๊ฑฐ `webhook-id` ํค๋๊ฐ ์ด๋ฒคํธ ์๋ณ์์
๋๋ค. **์ฌ์๋์๋ ๊ฐ์ ๊ฐ์ด ์ต๋๋ค** โ ์ด๋ฏธ ์ฒ๋ฆฌํ ๊ฐ์ด๋ฉด ๋ฌด์ํ์ธ์. ๊ฐ์ ์ด๋ฒคํธ๋ฅผ ๋ ๋ฒ ๋ฐ๋ ๊ฒ์ ์ ์ ๋์์ด๋ฉฐ, ์ค๋ณต ์ ๊ฑฐ๋ ์์ ์ธก ์ฑ
์์
๋๋ค. ํธ์๋ฅผ ์ํด `webhook-event-type` ํค๋์ ์ด๋ฒคํธ ํ์
(๋ณธ๋ฌธ `type` ๊ณผ ๊ฐ์ ๊ฐ)๋ ์ค๋ฆฝ๋๋ค โ ๋ณธ๋ฌธ์ ํ์ฑํ๊ธฐ ์ ์ ๊ด์ฌ ์๋ ํ์
์ ๋ฒ๋ฆด ์ ์์ต๋๋ค. ํ์ค์๋ ์๋ ํ์ฅ์ด๋ผ ๊ฒ์ฆ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด ํค๋๋ฅผ ๋ฌด์ํฉ๋๋ค. ### ์๋ต๊ณผ ์ฌ์๋ 2xx ๋ฅผ ๋๋ ค์ฃผ๋ฉด ์ฑ๊ณต์
๋๋ค. ๊ทธ ์ธ(๋๋ ๋ฌด์๋ต)๋ ์คํจ๋ก ๋ณด๊ณ ์ต๋ 7ํ ์ฌ์๋ํฉ๋๋ค โ ๊ฐ๊ฒฉ์ 10์ด โ 1๋ถ โ 5๋ถ โ 30๋ถ โ 2์๊ฐ โ 6์๊ฐ โ 24์๊ฐ ์
๋๋ค. ์ฒ๋ฆฌ ์๊ฐ์ด ๊ธธ๋ฉด ๋จผ์ 2xx ๋ฅผ ๋๋ ค์ฃผ๊ณ ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌํ์ธ์. ์ฐ์ ์คํจ๊ฐ 20ํ์ ๋ฟ์ผ๋ฉด ๊ตฌ๋
์ด ์๋์ผ๋ก `DISABLED` ๋ก ๋ด๋ ค๊ฐ๊ณ ๋ฐ์ก์ด ๋ฉ์ถฅ๋๋ค. ์์ ์ธก์ ๊ณ ์น ๋ค `PATCH /v2/webhook-endpoints/{endpointId}` ์ `{\"status\":\"ACTIVE\"}` ๋ก ๋์ด๋ฆฌ์ธ์. ### ๊ตฌ๋
๊ฐ๋ฅํ ์ด๋ฒคํธ `bid.closed` ยท `bid.awarded` ยท `bid.failed` ยท `bid.canceled` ยท `bid.award_reverted` `ping` ์ ์ฐ๊ฒฐ ํ์ธ ์ ์ฉ์ด๋ผ ๊ตฌ๋
ํ ์ ์์ต๋๋ค โ ํ
์คํธ ๋ฐ์ก ๊ฒฝ๋ก์์๋ง ๋๊ฐ๋๋ค. ### ๋์น ์ด๋ฒคํธ ํ์ธ `GET /v2/webhook-deliveries` ๊ฐ ๋ฐ์ก ์๋ ์ด๋ ฅ(๋ณธ๋ฌธยท์๋ต ์ํยท๋ค์ ์ฌ์๋ ์๊ฐ)์ ๋๋ ค์ค๋๋ค. ์์ ์ธก ์ฅ์ ๊ตฌ๊ฐ์ ๋ฉ์ธ ๋ ์ด ์๋ํฌ์ธํธ๋ฅผ ํด๋ง ๋์ฒด ๊ฒฝ๋ก๋ก ์ฐ์ธ์.
|
|
1810
|
+
* @summary ์นํ
๊ตฌ๋
๋ฑ๋ก
|
|
1811
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
1812
|
+
* @param {CreateWebhookEndpointRequestDto} createWebhookEndpointRequestDto
|
|
1813
|
+
* @param {*} [options] Override http request option.
|
|
1814
|
+
* @throws {RequiredError}
|
|
1815
|
+
*/
|
|
1816
|
+
async createWebhookEndpoint(idempotencyKey: string, createWebhookEndpointRequestDto: CreateWebhookEndpointRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CreateWebhookEndpoint201Response>> {
|
|
1817
|
+
const localVarAxiosArgs = await localVarAxiosParamCreator.createWebhookEndpoint(idempotencyKey, createWebhookEndpointRequestDto, options);
|
|
1818
|
+
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
|
|
1819
|
+
const localVarOperationServerBasePath = operationServerMap['PartnerApiApi.createWebhookEndpoint']?.[localVarOperationServerIndex]?.url;
|
|
1820
|
+
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1821
|
+
},
|
|
1822
|
+
/**
|
|
1823
|
+
* ๊ตฌ๋
์ ์ญ์ ํฉ๋๋ค. ์ดํ ๊ทธ ์ฃผ์๋ก๋ ์๋ฌด ์ด๋ฒคํธ๋ ๋ฐ์ก๋์ง ์์ต๋๋ค. **ํธ์ถ ์์ :** ์ฐ๋์ ์ข
๋ฃํ ๋. ์ ์๋ง ๋ฉ์ถ๋ ค๋ฉด ์ญ์ ํ์ง ๋ง๊ณ `PATCH โฆ {\"status\":\"DISABLED\"}` ๋ฅผ ์ฐ์ธ์ โ ์ํฌ๋ฆฟ๊ณผ ์ด๋ฒคํธ ๊ตฌ์ฑ์ด ๋จ์ ๊ทธ๋๋ก ๋์ด๋ฆด ์ ์์ต๋๋ค. **๋๋๋ฆด ์ ์์ต๋๋ค.** ๋ค์ ๋ฑ๋กํ๋ฉด ์ ๊ตฌ๋
์ด๊ณ ์๋ช
์ํฌ๋ฆฟ๋ ์ ๊ฐ์
๋๋ค. **`If-Match` ๊ฐ ํ์์
๋๋ค.** `GET` ์ผ๋ก ๋ฐ์ `ETag` ๋ฅผ ์ค์ด ๋ณด๋ด์ธ์. - `428` โ ํค๋ ๋๋ฝ. ์กฐํ ํ ์ฌ์๋ํ์ธ์. - `412` โ ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ต๋๋ค(๋๊ตฐ๊ฐ ์์ ํ๊ฑฐ๋ ๋ฐ์ก๊ธฐ๊ฐ ์ํ๋ฅผ ๋ด๋ ธ์ต๋๋ค). ๋ค์ ์กฐํํด ์ ๋ง ์ง์ธ ๋์์ด ๋ง๋์ง ํ์ธํ๊ณ ์ต์ `ETag` ๋ก ์ฌ์๋ํ์ธ์. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
1824
|
+
* @summary ์นํ
๊ตฌ๋
์ญ์
|
|
1825
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
1826
|
+
* @param {string} ifMatch ์ง์ ์กฐํ ์๋ต์ `ETag` ๊ฐ. ๋๋ฝํ๋ฉด 428, ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ผ๋ฉด 412 ๋ก ๊ฑฐ์ ๋๋ฉฐ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
|
|
1827
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
1828
|
+
* @param {*} [options] Override http request option.
|
|
1829
|
+
* @throws {RequiredError}
|
|
1830
|
+
*/
|
|
1831
|
+
async deleteWebhookEndpoint(endpointId: string, ifMatch: string, idempotencyKey: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
|
|
1832
|
+
const localVarAxiosArgs = await localVarAxiosParamCreator.deleteWebhookEndpoint(endpointId, ifMatch, idempotencyKey, options);
|
|
1833
|
+
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
|
|
1834
|
+
const localVarOperationServerBasePath = operationServerMap['PartnerApiApi.deleteWebhookEndpoint']?.[localVarOperationServerIndex]?.url;
|
|
1835
|
+
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1836
|
+
},
|
|
1428
1837
|
/**
|
|
1429
1838
|
* ๋ฌด์ธ์ฆ โ `fileKey` ์์ฒด๊ฐ capability ๋ค(ํค๋ฅผ ์๋ ์ชฝ์ด ๊ณง ์ ๊ทผ ๊ถํ์ ๊ฐ์ง๋ค). ํํธ๋ ์๋ต์ `fileUrl`/`fullUrl` ์ด ์ด URL ์ ๊ฐ๋ฆฌํจ๋ค. ์์ฒญ ์์ ์ ์๋ช
ํ๋ฏ๋ก URL ์ ์ ์ฅํด ๋์ด๋ ๋ง๋ฃ๋์ง ์๋๋ค. ์๋ต์ ์ค์ ์ ์ฅ์ URL ๋ก์ 302 ๋ฆฌ๋ค์ด๋ ํธ์ด๋ฉฐ ๋ฆฌ๋ค์ด๋ ํธ ํ๊น์ 1์๊ฐ ๋ค ๋ง๋ฃ๋๋ฏ๋ก 302 ์์ฒด๋ฅผ ์บ์ํ์ง ๋ง ๊ฒ(`Cache-Control: no-store`). --- **์๋ต ํํ๊ฐ ๋๊ฒฐ๋ ํ๋ฉด์
๋๋ค.** ์ด๋ฏธ ์ฐ๋ ์ค์ธ ์์คํ
์ด ์์ด ์๋ต ํ๋๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ด๋ฆ์ ๋ฐ๊พธ์ง ์์ต๋๋ค. ๋ค๋ฅธ `/v2` ์๋ํฌ์ธํธ์ ๋ฌ๋ฆฌ `{data,meta}` ๋ดํฌ๋ฅผ ์์ฐ์ง ์์ผ๋ฏ๋ก ์๋ต ๋ณธ๋ฌธ์ด ๊ณง ์ ์คํค๋ง์
๋๋ค. ์ง๊ธ ์ฐ๋ํ์
๋ ๊ณ์ ๋์ํฉ๋๋ค โ ๋ค๋ง ์ด ๊ฒฝ๋ก์ ์ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์ง๋ ์์ต๋๋ค. **๋์ฒด ๊ณํ:** ์ด๋ฏธ ์์ต๋๋ค โ `GET /v2/files/{fileKey}` ๊ฐ ํ์ผ ๋ฉํ์ `downloadUrl` ์ v2 ์๋ต ๊ท์ฝ์ผ๋ก ๋๋ ค์ค๋๋ค. ์ด ์์ URL ์ ํํธ๋ ์๋ต์ `fileUrl`/`fullUrl` ์ด ๊ฐ๋ฆฌํค๋ ์ฃผ์๋ผ ๊ณ์ ์ ์ง๋๋ฉฐ ์ค๋จ ์ผ์ ์ ์์ต๋๋ค.
|
|
1430
1839
|
* @summary ํ์ผ ๋ค์ด๋ก๋
|
|
@@ -1517,6 +1926,19 @@ export const PartnerApiApiFp = function(configuration?: Configuration) {
|
|
|
1517
1926
|
const localVarOperationServerBasePath = operationServerMap['PartnerApiApi.getSupplierCardPayableV2']?.[localVarOperationServerIndex]?.url;
|
|
1518
1927
|
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1519
1928
|
},
|
|
1929
|
+
/**
|
|
1930
|
+
* ๊ตฌ๋
1๊ฑด์ ํ์ฌ ์ํ๋ฅผ ์กฐํํฉ๋๋ค. ์๋ช
์ํฌ๋ฆฟ์ ์ค๋ฆฌ์ง ์์ต๋๋ค. **์์ ยท์ญ์ ์ ์ ๋จผ์ ํธ์ถํ์ธ์.** ์๋ต ํค๋ `ETag` ๋ฅผ `If-Match` ์ ๊ทธ๋๋ก ์ค์ด์ผ `PATCH`/`DELETE` ๊ฐ ํต๊ณผํฉ๋๋ค. **`404`:** ์๋ ๊ตฌ๋
์ด๊ฑฐ๋ ๋ค๋ฅธ ํํธ๋ ํค์ ๊ตฌ๋
์
๋๋ค โ `endpointId` ๋ฅผ ํ์ธํ์ธ์. **ํ์ ์ค์ฝํ:** `webhooks:read`
|
|
1931
|
+
* @summary ์นํ
๊ตฌ๋
๋จ๊ฑด ์กฐํ
|
|
1932
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
1933
|
+
* @param {*} [options] Override http request option.
|
|
1934
|
+
* @throws {RequiredError}
|
|
1935
|
+
*/
|
|
1936
|
+
async getWebhookEndpoint(endpointId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetWebhookEndpoint200Response>> {
|
|
1937
|
+
const localVarAxiosArgs = await localVarAxiosParamCreator.getWebhookEndpoint(endpointId, options);
|
|
1938
|
+
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
|
|
1939
|
+
const localVarOperationServerBasePath = operationServerMap['PartnerApiApi.getWebhookEndpoint']?.[localVarOperationServerIndex]?.url;
|
|
1940
|
+
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1941
|
+
},
|
|
1520
1942
|
/**
|
|
1521
1943
|
* ERP ์ฐ๋ ์ง์ ํ์ ยท์ธ์ฆ endpoint ๋์ ํ์ธ์ฉ.
|
|
1522
1944
|
* @summary Partner API ํฌ์ค์ฒดํฌ
|
|
@@ -1573,6 +1995,34 @@ export const PartnerApiApiFp = function(configuration?: Configuration) {
|
|
|
1573
1995
|
const localVarOperationServerBasePath = operationServerMap['PartnerApiApi.listExternalContractDocuments']?.[localVarOperationServerIndex]?.url;
|
|
1574
1996
|
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1575
1997
|
},
|
|
1998
|
+
/**
|
|
1999
|
+
* ์ด API ํค์ ์นํ
๋ฐ์ก ์๋๋ฅผ ์ต์ ์์ผ๋ก ์กฐํํฉ๋๋ค. ๋ณด๋ธ ๋ณธ๋ฌธยท์์ ์ธก ์๋ต ์ํยท ๋ค์ ์ฌ์๋ ์์ ์๊ฐ์ด ํจ๊ป ์ค๋ฆฝ๋๋ค. **ํธ์ถ ์์ :** - ์์ ์ธก ์ฅ์ ๋ก ๋์น ์ด๋ฒคํธ๋ฅผ ๋ฉ์ธ ๋. ์ด ์๋ํฌ์ธํธ๊ฐ ์นํ
์ **ํด๋ง ๋์ฒด ๊ฒฝ๋ก**์
๋๋ค โ `status=EXHAUSTED` ๋ก ๊ฑธ๋ฌ ๋ค์ ์ฒ๋ฆฌํ๋ฉด ๋ฉ๋๋ค. - \"์ด๋ฒคํธ๊ฐ ์ ์จ๋ค\" ๋ฅผ ์ง๋จํ ๋. ๋ฐ์ก ์๋ ์์ฒด๊ฐ ์๋์ง(๊ตฌ๋
ยท์ด๋ฒคํธ ํ์
๋ฌธ์ ), ์๋ํ์ง๋ง ์คํจํ๋์ง(`responseStatus`ยท`responseBodyExcerpt`)๋ฅผ ์ฌ๊ธฐ์ ๊ฐ๋ฆ
๋๋ค. **๊ฐ์ ์ด๋ฒคํธ๊ฐ ์ฌ๋ฌ ํ์ผ๋ก ๋ณด์
๋๋ค.** ์ฌ์๋๋ง๋ค ํ ํ์ด๋ฉฐ `eventId` ๊ฐ ๊ฐ๊ณ `attempt` ๋ง ์ฌ๋ผ๊ฐ๋๋ค. ์ฒ๋ฆฌ ์ฌ๋ถ๋ `eventId` ๊ธฐ์ค์ผ๋ก ํ๋จํ์ธ์. **ํ์ด์ง๋ค์ด์
:** `nextCursor` ๋ฅผ ๋ค์ ์์ฒญ์ `cursor` ๋ก ์ ๋ฌํฉ๋๋ค. null ์ด๋ฉด ๋ง์ง๋ง ํ์ด์ง์
๋๋ค. **`400`:** `status` ๊ฐ ํ์ฉ ๊ฐ ๋ฐ์ด๊ฑฐ๋ `limit` ์ด ๋ฒ์๋ฅผ ๋ฒ์ด๋ฌ์ต๋๋ค โ ๊ฐ์ ๊ณ ์ณ ์ฌ์๋ํ์ธ์. **ํ์ ์ค์ฝํ:** `webhooks:read`
|
|
2000
|
+
* @summary ์นํ
์ ์ก ์ด๋ ฅ ์กฐํ
|
|
2001
|
+
* @param {string} [endpointId] ์ด ๊ตฌ๋
์ ์ ์ก๋ง ์กฐํํฉ๋๋ค. ๋ฏธ์ง์ ์ด๋ฉด ์ด ํค์ ๋ชจ๋ ๊ตฌ๋
์ ํจ๊ป ์กฐํํฉ๋๋ค.
|
|
2002
|
+
* @param {PartnerWebhookDeliveryStatus} [status] ์ ์ก ์ํ ํํฐ. ๋ฏธ์ง์ ์ด๋ฉด ์ ๋ถ.
|
|
2003
|
+
* @param {number} [limit] ํ์ด์ง ํฌ๊ธฐ(1~200, ๊ธฐ๋ณธ 50).
|
|
2004
|
+
* @param {string} [cursor] ๋ค์ ํ์ด์ง ์ปค์(๋ถํฌ๋ช
ํ ํฐ). ์ง์ ์๋ต์ `nextCursor` ๋ฅผ ๊ทธ๋๋ก ์ ๋ฌํฉ๋๋ค. ๋ฏธ์ง์ ์ ์ฒซ ํ์ด์ง.
|
|
2005
|
+
* @param {*} [options] Override http request option.
|
|
2006
|
+
* @throws {RequiredError}
|
|
2007
|
+
*/
|
|
2008
|
+
async listWebhookDeliveries(endpointId?: string, status?: PartnerWebhookDeliveryStatus, limit?: number, cursor?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ListWebhookDeliveries200Response>> {
|
|
2009
|
+
const localVarAxiosArgs = await localVarAxiosParamCreator.listWebhookDeliveries(endpointId, status, limit, cursor, options);
|
|
2010
|
+
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
|
|
2011
|
+
const localVarOperationServerBasePath = operationServerMap['PartnerApiApi.listWebhookDeliveries']?.[localVarOperationServerIndex]?.url;
|
|
2012
|
+
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
2013
|
+
},
|
|
2014
|
+
/**
|
|
2015
|
+
* ์ด API ํค๊ฐ ๋ฑ๋กํ ์นํ
๊ตฌ๋
์ ๋ชจ๋ ์กฐํํฉ๋๋ค. **ํธ์ถ ์์ :** ์ฐ๋ ์ํ๋ฅผ ์ ๊ฒํ ๋, ๋๋ ๋ฐ์ก์ด ๋ฉ์ถ ์ด์ (`status`ยท`consecutiveFailures`)๋ฅผ ํ์ธํ ๋. ์๋ช
์ํฌ๋ฆฟ์ ์ฌ๊ธฐ์ ์ค๋ฆฌ์ง ์์ต๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:read` ### ์๋ช
๊ฒ์ฆ (ํ์) ์๋ช
์ **[Standard Webhooks](https://www.standardwebhooks.com)** ๊ท์ฝ์ ๊ทธ๋๋ก ๋ฐ๋ฆ
๋๋ค. ์ง์ ๊ตฌํํ์ง ๋ง๊ณ ๊ฐ ์ธ์ด์ `standardwebhooks` ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฑ๋ก ์ ๋ฐ์ ์ํฌ๋ฆฟ (`whsec_โฆ`)์ ๊ทธ๋๋ก ๋๊ธฐ์ธ์ โ ๊ทธ๊ฒ์ด ์ด ํ์์ ์ฐ๋ ์ด์ ์
๋๋ค. ```java // Java Webhook webhook = new Webhook(secret); // secret = \"whsec_โฆ\" webhook.verify(rawBody, headers); // ์คํจํ๋ฉด ์์ธ ``` ```ts // Node / TypeScript import { Webhook } from \'standardwebhooks\'; new Webhook(secret).verify(rawBody, headers); ``` ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ธ ์ ์๋ค๋ฉด ๋ฐ์ก ์์ฒญ์ ์ค๋ฆฌ๋ ํค๋๋ ์
์
๋๋ค. ``` webhook-id: evt_01J8Z7Q3K9 webhook-timestamp: 1774915200 webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4= ``` 1. ์ํฌ๋ฆฟ์์ `whsec_` ์ ๋์ด๋ฅผ ๋ผ๊ณ **base64 ๋์ฝ๋**ํฉ๋๋ค โ ๊ทธ ๋ฐ์ดํธ๊ฐ HMAC ํค์
๋๋ค (์ํฌ๋ฆฟ ๋ฌธ์์ด ์์ฒด๊ฐ ์๋๋๋ค). 2. `\"${webhook-id}.${webhook-timestamp}.${๋ณธ๋ฌธ ์๋ฌธ}\"` ์ ๋ง๋ญ๋๋ค. **๋ณธ๋ฌธ์ ํ์ฑ ์ ์๋ฌธ ๋ฐ์ดํธ**์ฌ์ผ ํฉ๋๋ค โ JSON ์ ๋ค์ ์ง๋ ฌํํ๋ฉด ๊ณต๋ฐฑยทํค ์์๊ฐ ๋ฌ๋ผ์ ธ ์๋ช
์ด ๋ง์ง ์์ต๋๋ค. 3. HMAC-SHA256 ์ ๊ณ์ฐํด **base64** ๋ก ์ธ์ฝ๋ฉํ๊ณ , `webhook-signature` ์ `v1,` ๋ค ๊ฐ๊ณผ ๋น๊ตํฉ๋๋ค. ๋น๊ต๋ **์์ ์๊ฐ** ํจ์๋ฅผ ์ฐ์ธ์(Node `crypto.timingSafeEqual`, Java `MessageDigest.isEqual`). 4. `webhook-timestamp` ๊ฐ ํ์ฌ ์๊ฐ์์ **5๋ถ** ์ด์ ์ง๋ฌ์ผ๋ฉด ๊ฑฐ์ ํ์ธ์(์ฌ์ ์ก ๊ณต๊ฒฉ ๋ฐฉ์ด). `webhook-signature` ๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ **์ฌ๋ฌ ์๋ช
**์ ์ค์ ์ ์๋ ํ์์
๋๋ค(ํค ํ์ ์ฉ). ์ง๊ธ์ ํญ์ ํ๋์ง๋ง, ๊ฒ์ฆ๊ธฐ๋ ๋ชฉ๋ก์ผ๋ก ์ฝ๊ณ **ํ๋๋ผ๋ ๋ง์ผ๋ฉด ํต๊ณผ**ํ๋๋ก ์ง์ธ์. ### ์ค๋ณต ์ ๊ฑฐ `webhook-id` ํค๋๊ฐ ์ด๋ฒคํธ ์๋ณ์์
๋๋ค. **์ฌ์๋์๋ ๊ฐ์ ๊ฐ์ด ์ต๋๋ค** โ ์ด๋ฏธ ์ฒ๋ฆฌํ ๊ฐ์ด๋ฉด ๋ฌด์ํ์ธ์. ๊ฐ์ ์ด๋ฒคํธ๋ฅผ ๋ ๋ฒ ๋ฐ๋ ๊ฒ์ ์ ์ ๋์์ด๋ฉฐ, ์ค๋ณต ์ ๊ฑฐ๋ ์์ ์ธก ์ฑ
์์
๋๋ค. ํธ์๋ฅผ ์ํด `webhook-event-type` ํค๋์ ์ด๋ฒคํธ ํ์
(๋ณธ๋ฌธ `type` ๊ณผ ๊ฐ์ ๊ฐ)๋ ์ค๋ฆฝ๋๋ค โ ๋ณธ๋ฌธ์ ํ์ฑํ๊ธฐ ์ ์ ๊ด์ฌ ์๋ ํ์
์ ๋ฒ๋ฆด ์ ์์ต๋๋ค. ํ์ค์๋ ์๋ ํ์ฅ์ด๋ผ ๊ฒ์ฆ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด ํค๋๋ฅผ ๋ฌด์ํฉ๋๋ค. ### ์๋ต๊ณผ ์ฌ์๋ 2xx ๋ฅผ ๋๋ ค์ฃผ๋ฉด ์ฑ๊ณต์
๋๋ค. ๊ทธ ์ธ(๋๋ ๋ฌด์๋ต)๋ ์คํจ๋ก ๋ณด๊ณ ์ต๋ 7ํ ์ฌ์๋ํฉ๋๋ค โ ๊ฐ๊ฒฉ์ 10์ด โ 1๋ถ โ 5๋ถ โ 30๋ถ โ 2์๊ฐ โ 6์๊ฐ โ 24์๊ฐ ์
๋๋ค. ์ฒ๋ฆฌ ์๊ฐ์ด ๊ธธ๋ฉด ๋จผ์ 2xx ๋ฅผ ๋๋ ค์ฃผ๊ณ ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌํ์ธ์. ์ฐ์ ์คํจ๊ฐ 20ํ์ ๋ฟ์ผ๋ฉด ๊ตฌ๋
์ด ์๋์ผ๋ก `DISABLED` ๋ก ๋ด๋ ค๊ฐ๊ณ ๋ฐ์ก์ด ๋ฉ์ถฅ๋๋ค. ์์ ์ธก์ ๊ณ ์น ๋ค `PATCH /v2/webhook-endpoints/{endpointId}` ์ `{\"status\":\"ACTIVE\"}` ๋ก ๋์ด๋ฆฌ์ธ์. ### ๊ตฌ๋
๊ฐ๋ฅํ ์ด๋ฒคํธ `bid.closed` ยท `bid.awarded` ยท `bid.failed` ยท `bid.canceled` ยท `bid.award_reverted` `ping` ์ ์ฐ๊ฒฐ ํ์ธ ์ ์ฉ์ด๋ผ ๊ตฌ๋
ํ ์ ์์ต๋๋ค โ ํ
์คํธ ๋ฐ์ก ๊ฒฝ๋ก์์๋ง ๋๊ฐ๋๋ค. ### ๋์น ์ด๋ฒคํธ ํ์ธ `GET /v2/webhook-deliveries` ๊ฐ ๋ฐ์ก ์๋ ์ด๋ ฅ(๋ณธ๋ฌธยท์๋ต ์ํยท๋ค์ ์ฌ์๋ ์๊ฐ)์ ๋๋ ค์ค๋๋ค. ์์ ์ธก ์ฅ์ ๊ตฌ๊ฐ์ ๋ฉ์ธ ๋ ์ด ์๋ํฌ์ธํธ๋ฅผ ํด๋ง ๋์ฒด ๊ฒฝ๋ก๋ก ์ฐ์ธ์.
|
|
2016
|
+
* @summary ์นํ
๊ตฌ๋
๋ชฉ๋ก ์กฐํ
|
|
2017
|
+
* @param {*} [options] Override http request option.
|
|
2018
|
+
* @throws {RequiredError}
|
|
2019
|
+
*/
|
|
2020
|
+
async listWebhookEndpoints(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ListWebhookEndpoints200Response>> {
|
|
2021
|
+
const localVarAxiosArgs = await localVarAxiosParamCreator.listWebhookEndpoints(options);
|
|
2022
|
+
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
|
|
2023
|
+
const localVarOperationServerBasePath = operationServerMap['PartnerApiApi.listWebhookEndpoints']?.[localVarOperationServerIndex]?.url;
|
|
2024
|
+
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
2025
|
+
},
|
|
1576
2026
|
/**
|
|
1577
2027
|
* ๊ณต๊ณ ๋ฅผ ์ ์ฐฐ ์ํ๋ก ์ ํํฉ๋๋ค. **ํธ์ถ ์์ :** ์
์ฐฐ ๋ง๊ฐ ํ ์ ์ฐฐ ์ฌ์ ๊ฐ ํ์ ๋์์ ๋. ๊ณต๊ณ ๊ฐ ์
์ฐฐ์๋ฃ(๋ง๊ฐ) ์ํ์์ ํธ์ถํฉ๋๋ค. **๋ถ์ํจ๊ณผ:** - ๊ณต๊ณ ์ํ๊ฐ ์ ์ฐฐ(FAILED)๋ก ์ ํ๋ฉ๋๋ค. - ์ ์ฐฐ์ฌ์ ์ฝ๋์ ์์ธ๊ฐ ๊ธฐ๋ก๋ฉ๋๋ค. **์ ์ฐฐ์ฌ์ ๊ฐ ๋ชฉ๋ก(failureReasonCode โ ๊ณต๊ฐ๊ฐ):** | ๊ฐ | ์๋ฏธ | |------|------| | `ABOVE_TARGET_PRICE` | ์์ ๊ฐ๊ฒฉ ์ด๊ณผ | | `DEPT_MISMATCH` | ์๊ฒฉ ๋ฏธ๋ฌ | | `NEEDS_EXPERTISE` | ์ ๋ฌธ์ฑ ํ์ | | `OTHER` | ๊ธฐํ (`failureReasonDetail` ํ์) | | `NO_PARTICIPANT` | ์ฐธ๊ฐ์ ์์ | | `SINGLE_PARTICIPANT` | ๋จ๋
์ฐธ๊ฐ | | `LESS_THAN_TWO` | 2์ธ ๋ฏธ๋ง | | `BELOW_MINIMUM` | ์ต์ ๊ฐ ๋ฏธ๋ฌ | **๋ฐ์ฃผ์ฒ:** API ํค์ ๋ฐ์ธ๋ฉ๋ ๋ฐ์ฃผ์ฒ๋ก ์๋ ์ค์ฝํ๋ฉ๋๋ค(์์ฒญ body ์ buyerId ๋ฅผ ๋ฃ์ง ์์ต๋๋ค). **ํ์ ์ค์ฝํ:** `awards:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
1578
2028
|
* @summary ์ ์ฐฐ ์ฒ๋ฆฌ
|
|
@@ -1661,6 +2111,34 @@ export const PartnerApiApiFp = function(configuration?: Configuration) {
|
|
|
1661
2111
|
const localVarOperationServerBasePath = operationServerMap['PartnerApiApi.revertAward']?.[localVarOperationServerIndex]?.url;
|
|
1662
2112
|
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1663
2113
|
},
|
|
2114
|
+
/**
|
|
2115
|
+
* ์๋ช
์ํฌ๋ฆฟ์ ์๋ก ๋ฐ๊ธํฉ๋๋ค. ์๋ต์ `secretVersion` ์ด 1 ์ฌ๋ผ๊ฐ๋๋ค. **ํธ์ถ ์์ :** ์ํฌ๋ฆฟ์ ๋ถ์คํ๊ฑฐ๋ ์ ์ถ์ด ์์ฌ๋ ๋, ๋๋ ์ฃผ๊ธฐ์ ๊ต์ฒด ์ ์ฑ
์ด ์์ ๋. **์ ์ํฌ๋ฆฟ์ ์ด ์๋ต์์ ํ ๋ฒ๋ง ๋๊ฐ๋๋ค.** ์กฐํ๋ก ๋ค์ ๋ฐ์ ์ ์์ต๋๋ค. **์ ์ํฌ๋ฆฟ์ ์ฆ์ ๋ฌดํจ์
๋๋ค.** ์ ์ ๊ธฐ๊ฐ์ด ์์ผ๋ฏ๋ก, ์์ ์ธก์ด ์ ๊ฐ์ ๋ฐ์ํ๊ธฐ ์ ์ ๋์ฐฉํ ์ด๋ฒคํธ๋ ์๋ช
๊ฒ์ฆ์ ์คํจํฉ๋๋ค. ๋ฐฐํฌ ์์๋ฅผ ์ด๋ ๊ฒ ์ก์ผ์ธ์ โ โ ์์ ์ธก์ด ์ ๊ฐ๊ณผ ์ ๊ฐ์ **๋ ๋ค** ๋ฐ์๋ค์ด๋๋ก ๋ฐฐํฌ โ โก ์ด ์๋ํฌ์ธํธ ํธ์ถ โ โข ์๋ต์ ์ ๊ฐ์ ๋ฐ์ โ โฃ ์ ๊ฐ ์ ๊ฑฐ. ๊ฒ์ฆ ์คํจ๋ก non-2xx ๋ฅผ ๋๋ ค์ฃผ๋ฉด ์คํจ๋ก ์ง๊ณ๋์ด 20ํ ์ฐ์ ์ ๊ตฌ๋
์ด ์ค์ง๋ฉ๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ๊ฐ์ ํค๋ก ์ฌ์ ์กํ๋ฉด **์๋ก ๋ฐ๊ธํ์ง ์๊ณ ** ์ฒ์ ๋ฐ๊ธํ ๊ฐ์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค(24์๊ฐ) โ ๋คํธ์ํฌ ์ค๋ฅ๋ก ์๋ต์ ๋์ณค์ ๋ ๊ฐ์ ํค๋ก ๋ค์ ๋ถ๋ฅด์ธ์.
|
|
2116
|
+
* @summary ์นํ
์๋ช
์ํฌ๋ฆฟ ์ฌ๋ฐ๊ธ
|
|
2117
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
2118
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
2119
|
+
* @param {*} [options] Override http request option.
|
|
2120
|
+
* @throws {RequiredError}
|
|
2121
|
+
*/
|
|
2122
|
+
async rotateWebhookSecret(endpointId: string, idempotencyKey: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CreateWebhookEndpoint201Response>> {
|
|
2123
|
+
const localVarAxiosArgs = await localVarAxiosParamCreator.rotateWebhookSecret(endpointId, idempotencyKey, options);
|
|
2124
|
+
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
|
|
2125
|
+
const localVarOperationServerBasePath = operationServerMap['PartnerApiApi.rotateWebhookSecret']?.[localVarOperationServerIndex]?.url;
|
|
2126
|
+
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
2127
|
+
},
|
|
2128
|
+
/**
|
|
2129
|
+
* ๋ฑ๋ก๋ ์ฃผ์๋ก `ping` ์ด๋ฒคํธ๋ฅผ ์ฆ์ 1ํ ๋ณด๋ด๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋๋ ค์ค๋๋ค. **ํธ์ถ ์์ :** ๊ตฌ๋
์ ๋ฑ๋กํ ์งํ, ์์ ์ฃผ์๋ฅผ ๋ฐ๊พผ ์งํ, ๋ฐฉํ๋ฒฝยท์ธ์ฆ์๋ฅผ ์๋ณธ ๋ค. **์๋ต์ ๋ฐ์ก ๊ฒฐ๊ณผ์ด์ง ์์ฒญ ์คํจ๊ฐ ์๋๋๋ค.** ์์ ์ธก์ด ๋ฐ์ง ๋ชปํด๋ HTTP `200` ์ `delivered: false` ๋ก ์ต๋๋ค โ `responseStatus`(์์ ์ธก ์ํ)์ `error`(์ฐ๊ฒฐ ๊ฑฐ๋ถยทํ์์์ยท TLS ์ค๋ฅ)๋ฅผ ๋ณด๊ณ ์์ธ์ ์ขํ์ธ์. ์ด ๋ฐ์ก์๋ ์ค์ ์ด๋ฒคํธ์ **๋๊ฐ์ ์๋ช
ํค๋**๊ฐ ์ค๋ฆฌ๋ฏ๋ก ๊ฒ์ฆ ์ฝ๋๋ฅผ ๊ทธ๋๋ก ์ํํ ์ ์์ต๋๋ค. `ping` ์ ๊ตฌ๋
๋ชฉ๋ก์ ๋ฃ์ ์ ์๋ ํ์
์ด๋, ์์ ์ธก์ด ๋ชจ๋ฅด๋ `eventType` ์ ๋ง๋๋ฉด ๋ฒ๋ฆฌ๋๋ก ์ง์ฌ ์๋ค๋ฉด ์ด ํ์ธ๋ง ์คํจํ ์ ์์ต๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ๋ค์ ๋ณด๋ด๋ ค๋ฉด **์ ํค**๋ฅผ ์ฐ์ธ์ โ ๊ฐ์ ํค๋ 24์๊ฐ ๋์ ์ง์ ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค(์ฌ๋ฐ์กํ์ง ์์ต๋๋ค).
|
|
2130
|
+
* @summary ์นํ
์ฐ๊ฒฐ ํ์ธ ๋ฐ์ก
|
|
2131
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
2132
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
2133
|
+
* @param {*} [options] Override http request option.
|
|
2134
|
+
* @throws {RequiredError}
|
|
2135
|
+
*/
|
|
2136
|
+
async sendWebhookTestEvent(endpointId: string, idempotencyKey: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SendWebhookTestEvent200Response>> {
|
|
2137
|
+
const localVarAxiosArgs = await localVarAxiosParamCreator.sendWebhookTestEvent(endpointId, idempotencyKey, options);
|
|
2138
|
+
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
|
|
2139
|
+
const localVarOperationServerBasePath = operationServerMap['PartnerApiApi.sendWebhookTestEvent']?.[localVarOperationServerIndex]?.url;
|
|
2140
|
+
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
2141
|
+
},
|
|
1664
2142
|
/**
|
|
1665
2143
|
* ํ์๋ฐฉ์(NEGOTIATION/NEGOTIATION_AUTO) ๊ณต๊ณ ์ ์์ฐฐ์๋ณ ์ ์๋ฅผ ์
๋ ฅํฉ๋๋ค. **ํธ์ถ ์์ :** ์
์ฐฐ ๋ง๊ฐ ํ ๋์ฐฐ(`POST /v2/bids/{bidRef}/award`) ์ . ํ์๋ฐฉ์ ๊ณต๊ณ ๋ ์ด ํ๊ฐ๋ฅผ ์๋ฃํด์ผ ๋์ฐฐ์ ์ง์
ํ ์ ์์ต๋๋ค. **๋ถ์ํจ๊ณผ:** - ์์ฐฐ์๋ณ ๊ธฐ์ ์ ์(๋ฐ ์ ํ์ ๊ฐ๊ฒฉ์ ์ override)๊ฐ ๊ธฐ๋ก๋ฉ๋๋ค. - `complete=true` ๋ฉด ํ๊ฐ์๋ฃ ๊ฒ์ดํธ๊น์ง ์ ์ฉ๋ผ ๋์ฐฐ ์ง์
์ด ๊ฐ๋ฅํด์ง๋๋ค. **๋ฐ์ฃผ์ฒ:** API ํค์ ๋ฐ์ธ๋ฉ๋ ๋ฐ์ฃผ์ฒ๋ก ์๋ ์ค์ฝํ๋ฉ๋๋ค(์์ฒญ body ์ buyerId ๋ฅผ ๋ฃ์ง ์์ต๋๋ค). **ํ์ ์ค์ฝํ:** `awards:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ๋์ผ ํค + ๋์ผ body ์ฌ์ ์ก ์ 24์๊ฐ ๋ด ์บ์ ์๋ต ๋ฐํ.
|
|
1666
2144
|
* @summary ํ์ ์ ์ํ๊ฐ
|
|
@@ -1692,6 +2170,22 @@ export const PartnerApiApiFp = function(configuration?: Configuration) {
|
|
|
1692
2170
|
const localVarOperationServerBasePath = operationServerMap['PartnerApiApi.updateBid']?.[localVarOperationServerIndex]?.url;
|
|
1693
2171
|
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
1694
2172
|
},
|
|
2173
|
+
/**
|
|
2174
|
+
* ์์ ์ฃผ์ยท๊ตฌ๋
์ด๋ฒคํธยท์ํ๋ฅผ ์์ ํฉ๋๋ค. ๋ณด๋ธ ํ๋๋ง ๋ฐ๋๋๋ค. **ํธ์ถ ์์ :** ์์ ์ฃผ์๊ฐ ๋ฐ๋์์ ๋, ๊ตฌ๋
์ด๋ฒคํธ๋ฅผ ๋๋ฆฌ๊ฑฐ๋ ์ค์ผ ๋, ์ฐ์ ์คํจ๋ก ์๋ ์ค์ง๋ ๊ตฌ๋
์ ๊ณ ์น ๋ค ๋์ด๋ฆด ๋(`{\"status\":\"ACTIVE\"}`). **`eventTypes` ๋ ์นํ์
๋๋ค** โ ๋ณด๋ธ ๋ชฉ๋ก์ด ๊ณง ์ ๊ตฌ๋
๋ชฉ๋ก์
๋๋ค. ํ๋๋ฅผ ๋ํ๋ ค๋ฉด ๊ธฐ์กด ๋ชฉ๋ก์ ๋ํ **์ ์ฒด**๋ฅผ ๋ณด๋ด์ธ์. **`If-Match` ๊ฐ ํ์์
๋๋ค.** ๋จผ์ `GET /v2/webhook-endpoints/{endpointId}` ๋ก ํ์ฌ `ETag` ๋ฅผ ๋ฐ์ ๊ทธ๋๋ก ์ค์ด ๋ณด๋ด์ธ์. ์ด ํค๋๊ฐ ์์ผ๋ฉด ๋ ์์ฒญ์ด ์์๊ฑฐ๋ ๋ค์๊ฑฐ๋ ํ๋ฉฐ ๋จผ์ ํ ์์ ์ ์กฐ์ฉํ ๋ฎ์ด์๋๋ค. - `428` โ ํค๋๋ฅผ ๋นผ๋จน์์ต๋๋ค. ์กฐํ ํ `ETag` ๋ฅผ ์ค์ด ์ฌ์๋ํ์ธ์. - `412` โ ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ต๋๋ค. ๋ค์ ์กฐํํด ์ต์ `ETag` ๋ก ์ฌ์๋ํ์ธ์. ์๋ฌด๊ฒ๋ ์์ ๋์ง ์์์ต๋๋ค. **์ํฌ๋ฆฟ์ ์ด ๊ฒฝ๋ก๋ก ๋ฐ๋์ง ์์ต๋๋ค** โ ์ฌ๋ฐ๊ธ์ `rotate-secret` ์
๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
2175
|
+
* @summary ์นํ
๊ตฌ๋
์์
|
|
2176
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
2177
|
+
* @param {string} ifMatch ์ง์ ์กฐํ ์๋ต์ `ETag` ๊ฐ. ๋๋ฝํ๋ฉด 428, ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ผ๋ฉด 412 ๋ก ๊ฑฐ์ ๋๋ฉฐ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
|
|
2178
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
2179
|
+
* @param {UpdateWebhookEndpointRequestDto} updateWebhookEndpointRequestDto
|
|
2180
|
+
* @param {*} [options] Override http request option.
|
|
2181
|
+
* @throws {RequiredError}
|
|
2182
|
+
*/
|
|
2183
|
+
async updateWebhookEndpoint(endpointId: string, ifMatch: string, idempotencyKey: string, updateWebhookEndpointRequestDto: UpdateWebhookEndpointRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetWebhookEndpoint200Response>> {
|
|
2184
|
+
const localVarAxiosArgs = await localVarAxiosParamCreator.updateWebhookEndpoint(endpointId, ifMatch, idempotencyKey, updateWebhookEndpointRequestDto, options);
|
|
2185
|
+
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
|
|
2186
|
+
const localVarOperationServerBasePath = operationServerMap['PartnerApiApi.updateWebhookEndpoint']?.[localVarOperationServerIndex]?.url;
|
|
2187
|
+
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
|
|
2188
|
+
},
|
|
1695
2189
|
/**
|
|
1696
2190
|
* **์ฒจ๋ถ ์
๋ก๋์ ๊ธฐ๋ณธ ๊ฒฝ๋ก์
๋๋ค. 23MB ์ดํ๋ฉด ์ด ํธ์ถ ํ๋๋ก ๋๋ฉ๋๋ค.** ํ์ผ ๋ณธ๋ฌธ์ `base64` ๋๋ `url` ์ค ์ ํํ ํ๋๋ก ์ ์ถํ๋ฉด `fileKey` ๋ฅผ ๋๋ ค์ค๋๋ค. ์ด ๊ฐ์ ๊ณต๊ณ ๋ฑ๋กยท์์ ์ ์ฒจ๋ถ ํ๋์ ์ค์ผ์ธ์. **23MB ๋ฅผ ๋์ผ๋ฉด ๊ฒฝ๋ก๋ฅผ ๋ฐ๊ฟ์ผ ํฉ๋๋ค.** ์ํ์ด ์
์ผ๋ก ๊ฐ๋ฆฝ๋๋ค. | ์ ์ถ ๋ฐฉ์ | ์ํ | ํธ์ถ ์ | | --- | --- | --- | | ์ด ํธ์ถ + `base64` | **23MB** (๋ณธ๋ฌธ์ด c-market ์ ํต๊ณผํ๋ฉฐ base64 ํฝ์ฐฝ 4/3 ์ด ์นํ) | 1 | | ์ด ํธ์ถ + `url` | **30MB** (c-market ์ด ๋์ ๋ด๋ ค๋ฐ์ ํฝ์ฐฝ์ ์์ง๋ง ์๋ฒ ๊ฒฝ์ ์ฒ์ฅ์ ๊ทธ๋๋ก) | 1 | | `POST /v2/files/upload-url` ๋ก ์์ํ๋ 2๋จ๊ณ | **100MB** (๋ฐ์ดํธ๊ฐ c-market ์ ์ง๋์ง ์์) | 2 + ์คํ ๋ฆฌ์ง PUT | c-market ์ด ๋ด๋ ค๋ฐ์ ์ ์๋ https ์ฃผ์์ ํ์ผ์ ์ฌ๋ ค ๋ ์ ์๋ค๋ฉด `url` ์ด 30MB ๊น์ง๋ฅผ 1์ฝ๋ก ๋ฎ์ต๋๋ค. ๊ทธ ์ด์์ด๊ฑฐ๋ ์ฃผ์๋ฅผ ์ด ์ ์์ผ๋ฉด 2๋จ๊ณ ๊ฒฝ๋ก๋ฅผ ์ฐ์ธ์. **๊ณต๊ณ ๋ฑ๋ก์ ํ์ผ์ ํจ๊ป ์ค์ ์๋ ์์ต๋๋ค.** `POST /v2/bids` ์ `attachments` ์์์ `{ fileName, url }`ยท`{ fileName, base64 }` ๋ฅผ ๊ทธ๋๋ก ๋ฃ์ผ๋ฉด ์ด ํธ์ถ ์์ด ํ ๋ฒ์ ๋๋ฉ๋๋ค. ์ฌ๋ฌ ๊ณต๊ณ ์ ๊ฐ์ ํ์ผ์ ์ฌ์ฌ์ฉํ๊ฑฐ๋ ํฐ ํ์ผ์ ๋ค๋ฃฐ ๋๋ง `fileKey` ๋ฅผ ๋จผ์ ๋ง๋์ธ์. **ํ์ ์ค์ฝํ:** `files:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
1697
2191
|
* @summary ๊ณต๊ณ ์ฒจ๋ถํ์ผ ์
๋ก๋ (๊ธฐ๋ณธ)
|
|
@@ -1795,6 +2289,29 @@ export const PartnerApiApiFactory = function (configuration?: Configuration, bas
|
|
|
1795
2289
|
createFileUploadUrl(idempotencyKey: string, createUploadUrlRequestDto: CreateUploadUrlRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<CreateFileUploadUrl201Response> {
|
|
1796
2290
|
return localVarFp.createFileUploadUrl(idempotencyKey, createUploadUrlRequestDto, options).then((request) => request(axios, basePath));
|
|
1797
2291
|
},
|
|
2292
|
+
/**
|
|
2293
|
+
* ์์ ์ฃผ์์ ๊ตฌ๋
ํ ์ด๋ฒคํธ๋ฅผ ๋ฑ๋กํฉ๋๋ค. **ํธ์ถ ์์ :** ์ฐ๋ ์ด๊ธฐ 1ํ. ์์ ์ฃผ์๊ฐ ๋ฐ๋๋ฉด ์๋ก ๋ง๋ค์ง ๋ง๊ณ `PATCH` ๋ก ๊ณ ์น์ธ์ โ ๊ทธ๋์ผ ์ํฌ๋ฆฟ๊ณผ ์ ์ก ์ด๋ ฅ์ด ์ ์ง๋ฉ๋๋ค. **์๋ช
์ํฌ๋ฆฟ์ ์ด ์๋ต์์ ํ ๋ฒ๋ง ๋๊ฐ๋๋ค.** ์๋ฒ๋ ํด์๋ง ๋ณด๊ดํ๋ฏ๋ก ์กฐํ๋ก ๋ค์ ๋ฐ์ ์ ์์ต๋๋ค. ์๋ต์ `secret` ์ ์ฆ์ ์์ ํ ๊ณณ์ ๋ณด๊ดํ์ธ์. ์์ด๋ฒ๋ ธ๋ค๋ฉด ๋ณต๊ตฌ๊ฐ ์๋๋ผ `POST /v2/webhook-endpoints/{endpointId}/rotate-secret` ์ผ๋ก **์ฌ๋ฐ๊ธ**ํด์ผ ํฉ๋๋ค. **๊ฑฐ์ ๋๋ ๊ฒฝ์ฐ์ ๊ณ ์น๋ ๋ฒ:** - `400` โ `url` ์ด HTTPS ๊ฐ ์๋๊ฑฐ๋ ํ์์ด ์๋ชป๋จ, `eventTypes` ๊ฐ ๋น์๊ฑฐ๋ ๋ชฉ๋ก ๋ฐ ๊ฐ (`ping` ์ ๊ตฌ๋
๋ถ๊ฐ). ๊ฐ์ ๊ณ ์ณ ์ฌ์๋ํ์ธ์. - `400` โ `Idempotency-Key` ํค๋ ๋๋ฝ/ํ์ ์ค๋ฅ. UUID v4 ๋ฅผ ์ค์ด ๋ณด๋ด์ธ์. - `403` โ ํ ํฐ์ `webhooks:write` ์ค์ฝํ๊ฐ ์์. ํค ๋ฐ๊ธ ์ค์ ์ ๋ํ์ผ ํฉ๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ### ์๋ช
๊ฒ์ฆ (ํ์) ์๋ช
์ **[Standard Webhooks](https://www.standardwebhooks.com)** ๊ท์ฝ์ ๊ทธ๋๋ก ๋ฐ๋ฆ
๋๋ค. ์ง์ ๊ตฌํํ์ง ๋ง๊ณ ๊ฐ ์ธ์ด์ `standardwebhooks` ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฑ๋ก ์ ๋ฐ์ ์ํฌ๋ฆฟ (`whsec_โฆ`)์ ๊ทธ๋๋ก ๋๊ธฐ์ธ์ โ ๊ทธ๊ฒ์ด ์ด ํ์์ ์ฐ๋ ์ด์ ์
๋๋ค. ```java // Java Webhook webhook = new Webhook(secret); // secret = \"whsec_โฆ\" webhook.verify(rawBody, headers); // ์คํจํ๋ฉด ์์ธ ``` ```ts // Node / TypeScript import { Webhook } from \'standardwebhooks\'; new Webhook(secret).verify(rawBody, headers); ``` ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ธ ์ ์๋ค๋ฉด ๋ฐ์ก ์์ฒญ์ ์ค๋ฆฌ๋ ํค๋๋ ์
์
๋๋ค. ``` webhook-id: evt_01J8Z7Q3K9 webhook-timestamp: 1774915200 webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4= ``` 1. ์ํฌ๋ฆฟ์์ `whsec_` ์ ๋์ด๋ฅผ ๋ผ๊ณ **base64 ๋์ฝ๋**ํฉ๋๋ค โ ๊ทธ ๋ฐ์ดํธ๊ฐ HMAC ํค์
๋๋ค (์ํฌ๋ฆฟ ๋ฌธ์์ด ์์ฒด๊ฐ ์๋๋๋ค). 2. `\"${webhook-id}.${webhook-timestamp}.${๋ณธ๋ฌธ ์๋ฌธ}\"` ์ ๋ง๋ญ๋๋ค. **๋ณธ๋ฌธ์ ํ์ฑ ์ ์๋ฌธ ๋ฐ์ดํธ**์ฌ์ผ ํฉ๋๋ค โ JSON ์ ๋ค์ ์ง๋ ฌํํ๋ฉด ๊ณต๋ฐฑยทํค ์์๊ฐ ๋ฌ๋ผ์ ธ ์๋ช
์ด ๋ง์ง ์์ต๋๋ค. 3. HMAC-SHA256 ์ ๊ณ์ฐํด **base64** ๋ก ์ธ์ฝ๋ฉํ๊ณ , `webhook-signature` ์ `v1,` ๋ค ๊ฐ๊ณผ ๋น๊ตํฉ๋๋ค. ๋น๊ต๋ **์์ ์๊ฐ** ํจ์๋ฅผ ์ฐ์ธ์(Node `crypto.timingSafeEqual`, Java `MessageDigest.isEqual`). 4. `webhook-timestamp` ๊ฐ ํ์ฌ ์๊ฐ์์ **5๋ถ** ์ด์ ์ง๋ฌ์ผ๋ฉด ๊ฑฐ์ ํ์ธ์(์ฌ์ ์ก ๊ณต๊ฒฉ ๋ฐฉ์ด). `webhook-signature` ๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ **์ฌ๋ฌ ์๋ช
**์ ์ค์ ์ ์๋ ํ์์
๋๋ค(ํค ํ์ ์ฉ). ์ง๊ธ์ ํญ์ ํ๋์ง๋ง, ๊ฒ์ฆ๊ธฐ๋ ๋ชฉ๋ก์ผ๋ก ์ฝ๊ณ **ํ๋๋ผ๋ ๋ง์ผ๋ฉด ํต๊ณผ**ํ๋๋ก ์ง์ธ์. ### ์ค๋ณต ์ ๊ฑฐ `webhook-id` ํค๋๊ฐ ์ด๋ฒคํธ ์๋ณ์์
๋๋ค. **์ฌ์๋์๋ ๊ฐ์ ๊ฐ์ด ์ต๋๋ค** โ ์ด๋ฏธ ์ฒ๋ฆฌํ ๊ฐ์ด๋ฉด ๋ฌด์ํ์ธ์. ๊ฐ์ ์ด๋ฒคํธ๋ฅผ ๋ ๋ฒ ๋ฐ๋ ๊ฒ์ ์ ์ ๋์์ด๋ฉฐ, ์ค๋ณต ์ ๊ฑฐ๋ ์์ ์ธก ์ฑ
์์
๋๋ค. ํธ์๋ฅผ ์ํด `webhook-event-type` ํค๋์ ์ด๋ฒคํธ ํ์
(๋ณธ๋ฌธ `type` ๊ณผ ๊ฐ์ ๊ฐ)๋ ์ค๋ฆฝ๋๋ค โ ๋ณธ๋ฌธ์ ํ์ฑํ๊ธฐ ์ ์ ๊ด์ฌ ์๋ ํ์
์ ๋ฒ๋ฆด ์ ์์ต๋๋ค. ํ์ค์๋ ์๋ ํ์ฅ์ด๋ผ ๊ฒ์ฆ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด ํค๋๋ฅผ ๋ฌด์ํฉ๋๋ค. ### ์๋ต๊ณผ ์ฌ์๋ 2xx ๋ฅผ ๋๋ ค์ฃผ๋ฉด ์ฑ๊ณต์
๋๋ค. ๊ทธ ์ธ(๋๋ ๋ฌด์๋ต)๋ ์คํจ๋ก ๋ณด๊ณ ์ต๋ 7ํ ์ฌ์๋ํฉ๋๋ค โ ๊ฐ๊ฒฉ์ 10์ด โ 1๋ถ โ 5๋ถ โ 30๋ถ โ 2์๊ฐ โ 6์๊ฐ โ 24์๊ฐ ์
๋๋ค. ์ฒ๋ฆฌ ์๊ฐ์ด ๊ธธ๋ฉด ๋จผ์ 2xx ๋ฅผ ๋๋ ค์ฃผ๊ณ ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌํ์ธ์. ์ฐ์ ์คํจ๊ฐ 20ํ์ ๋ฟ์ผ๋ฉด ๊ตฌ๋
์ด ์๋์ผ๋ก `DISABLED` ๋ก ๋ด๋ ค๊ฐ๊ณ ๋ฐ์ก์ด ๋ฉ์ถฅ๋๋ค. ์์ ์ธก์ ๊ณ ์น ๋ค `PATCH /v2/webhook-endpoints/{endpointId}` ์ `{\"status\":\"ACTIVE\"}` ๋ก ๋์ด๋ฆฌ์ธ์. ### ๊ตฌ๋
๊ฐ๋ฅํ ์ด๋ฒคํธ `bid.closed` ยท `bid.awarded` ยท `bid.failed` ยท `bid.canceled` ยท `bid.award_reverted` `ping` ์ ์ฐ๊ฒฐ ํ์ธ ์ ์ฉ์ด๋ผ ๊ตฌ๋
ํ ์ ์์ต๋๋ค โ ํ
์คํธ ๋ฐ์ก ๊ฒฝ๋ก์์๋ง ๋๊ฐ๋๋ค. ### ๋์น ์ด๋ฒคํธ ํ์ธ `GET /v2/webhook-deliveries` ๊ฐ ๋ฐ์ก ์๋ ์ด๋ ฅ(๋ณธ๋ฌธยท์๋ต ์ํยท๋ค์ ์ฌ์๋ ์๊ฐ)์ ๋๋ ค์ค๋๋ค. ์์ ์ธก ์ฅ์ ๊ตฌ๊ฐ์ ๋ฉ์ธ ๋ ์ด ์๋ํฌ์ธํธ๋ฅผ ํด๋ง ๋์ฒด ๊ฒฝ๋ก๋ก ์ฐ์ธ์.
|
|
2294
|
+
* @summary ์นํ
๊ตฌ๋
๋ฑ๋ก
|
|
2295
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
2296
|
+
* @param {CreateWebhookEndpointRequestDto} createWebhookEndpointRequestDto
|
|
2297
|
+
* @param {*} [options] Override http request option.
|
|
2298
|
+
* @throws {RequiredError}
|
|
2299
|
+
*/
|
|
2300
|
+
createWebhookEndpoint(idempotencyKey: string, createWebhookEndpointRequestDto: CreateWebhookEndpointRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<CreateWebhookEndpoint201Response> {
|
|
2301
|
+
return localVarFp.createWebhookEndpoint(idempotencyKey, createWebhookEndpointRequestDto, options).then((request) => request(axios, basePath));
|
|
2302
|
+
},
|
|
2303
|
+
/**
|
|
2304
|
+
* ๊ตฌ๋
์ ์ญ์ ํฉ๋๋ค. ์ดํ ๊ทธ ์ฃผ์๋ก๋ ์๋ฌด ์ด๋ฒคํธ๋ ๋ฐ์ก๋์ง ์์ต๋๋ค. **ํธ์ถ ์์ :** ์ฐ๋์ ์ข
๋ฃํ ๋. ์ ์๋ง ๋ฉ์ถ๋ ค๋ฉด ์ญ์ ํ์ง ๋ง๊ณ `PATCH โฆ {\"status\":\"DISABLED\"}` ๋ฅผ ์ฐ์ธ์ โ ์ํฌ๋ฆฟ๊ณผ ์ด๋ฒคํธ ๊ตฌ์ฑ์ด ๋จ์ ๊ทธ๋๋ก ๋์ด๋ฆด ์ ์์ต๋๋ค. **๋๋๋ฆด ์ ์์ต๋๋ค.** ๋ค์ ๋ฑ๋กํ๋ฉด ์ ๊ตฌ๋
์ด๊ณ ์๋ช
์ํฌ๋ฆฟ๋ ์ ๊ฐ์
๋๋ค. **`If-Match` ๊ฐ ํ์์
๋๋ค.** `GET` ์ผ๋ก ๋ฐ์ `ETag` ๋ฅผ ์ค์ด ๋ณด๋ด์ธ์. - `428` โ ํค๋ ๋๋ฝ. ์กฐํ ํ ์ฌ์๋ํ์ธ์. - `412` โ ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ต๋๋ค(๋๊ตฐ๊ฐ ์์ ํ๊ฑฐ๋ ๋ฐ์ก๊ธฐ๊ฐ ์ํ๋ฅผ ๋ด๋ ธ์ต๋๋ค). ๋ค์ ์กฐํํด ์ ๋ง ์ง์ธ ๋์์ด ๋ง๋์ง ํ์ธํ๊ณ ์ต์ `ETag` ๋ก ์ฌ์๋ํ์ธ์. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
2305
|
+
* @summary ์นํ
๊ตฌ๋
์ญ์
|
|
2306
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
2307
|
+
* @param {string} ifMatch ์ง์ ์กฐํ ์๋ต์ `ETag` ๊ฐ. ๋๋ฝํ๋ฉด 428, ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ผ๋ฉด 412 ๋ก ๊ฑฐ์ ๋๋ฉฐ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
|
|
2308
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
2309
|
+
* @param {*} [options] Override http request option.
|
|
2310
|
+
* @throws {RequiredError}
|
|
2311
|
+
*/
|
|
2312
|
+
deleteWebhookEndpoint(endpointId: string, ifMatch: string, idempotencyKey: string, options?: RawAxiosRequestConfig): AxiosPromise<void> {
|
|
2313
|
+
return localVarFp.deleteWebhookEndpoint(endpointId, ifMatch, idempotencyKey, options).then((request) => request(axios, basePath));
|
|
2314
|
+
},
|
|
1798
2315
|
/**
|
|
1799
2316
|
* ๋ฌด์ธ์ฆ โ `fileKey` ์์ฒด๊ฐ capability ๋ค(ํค๋ฅผ ์๋ ์ชฝ์ด ๊ณง ์ ๊ทผ ๊ถํ์ ๊ฐ์ง๋ค). ํํธ๋ ์๋ต์ `fileUrl`/`fullUrl` ์ด ์ด URL ์ ๊ฐ๋ฆฌํจ๋ค. ์์ฒญ ์์ ์ ์๋ช
ํ๋ฏ๋ก URL ์ ์ ์ฅํด ๋์ด๋ ๋ง๋ฃ๋์ง ์๋๋ค. ์๋ต์ ์ค์ ์ ์ฅ์ URL ๋ก์ 302 ๋ฆฌ๋ค์ด๋ ํธ์ด๋ฉฐ ๋ฆฌ๋ค์ด๋ ํธ ํ๊น์ 1์๊ฐ ๋ค ๋ง๋ฃ๋๋ฏ๋ก 302 ์์ฒด๋ฅผ ์บ์ํ์ง ๋ง ๊ฒ(`Cache-Control: no-store`). --- **์๋ต ํํ๊ฐ ๋๊ฒฐ๋ ํ๋ฉด์
๋๋ค.** ์ด๋ฏธ ์ฐ๋ ์ค์ธ ์์คํ
์ด ์์ด ์๋ต ํ๋๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ด๋ฆ์ ๋ฐ๊พธ์ง ์์ต๋๋ค. ๋ค๋ฅธ `/v2` ์๋ํฌ์ธํธ์ ๋ฌ๋ฆฌ `{data,meta}` ๋ดํฌ๋ฅผ ์์ฐ์ง ์์ผ๋ฏ๋ก ์๋ต ๋ณธ๋ฌธ์ด ๊ณง ์ ์คํค๋ง์
๋๋ค. ์ง๊ธ ์ฐ๋ํ์
๋ ๊ณ์ ๋์ํฉ๋๋ค โ ๋ค๋ง ์ด ๊ฒฝ๋ก์ ์ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์ง๋ ์์ต๋๋ค. **๋์ฒด ๊ณํ:** ์ด๋ฏธ ์์ต๋๋ค โ `GET /v2/files/{fileKey}` ๊ฐ ํ์ผ ๋ฉํ์ `downloadUrl` ์ v2 ์๋ต ๊ท์ฝ์ผ๋ก ๋๋ ค์ค๋๋ค. ์ด ์์ URL ์ ํํธ๋ ์๋ต์ `fileUrl`/`fullUrl` ์ด ๊ฐ๋ฆฌํค๋ ์ฃผ์๋ผ ๊ณ์ ์ ์ง๋๋ฉฐ ์ค๋จ ์ผ์ ์ ์์ต๋๋ค.
|
|
1800
2317
|
* @summary ํ์ผ ๋ค์ด๋ก๋
|
|
@@ -1866,6 +2383,16 @@ export const PartnerApiApiFactory = function (configuration?: Configuration, bas
|
|
|
1866
2383
|
getSupplierCardPayableV2(memberId: string, options?: RawAxiosRequestConfig): AxiosPromise<GetSupplierCardPayableV2200Response> {
|
|
1867
2384
|
return localVarFp.getSupplierCardPayableV2(memberId, options).then((request) => request(axios, basePath));
|
|
1868
2385
|
},
|
|
2386
|
+
/**
|
|
2387
|
+
* ๊ตฌ๋
1๊ฑด์ ํ์ฌ ์ํ๋ฅผ ์กฐํํฉ๋๋ค. ์๋ช
์ํฌ๋ฆฟ์ ์ค๋ฆฌ์ง ์์ต๋๋ค. **์์ ยท์ญ์ ์ ์ ๋จผ์ ํธ์ถํ์ธ์.** ์๋ต ํค๋ `ETag` ๋ฅผ `If-Match` ์ ๊ทธ๋๋ก ์ค์ด์ผ `PATCH`/`DELETE` ๊ฐ ํต๊ณผํฉ๋๋ค. **`404`:** ์๋ ๊ตฌ๋
์ด๊ฑฐ๋ ๋ค๋ฅธ ํํธ๋ ํค์ ๊ตฌ๋
์
๋๋ค โ `endpointId` ๋ฅผ ํ์ธํ์ธ์. **ํ์ ์ค์ฝํ:** `webhooks:read`
|
|
2388
|
+
* @summary ์นํ
๊ตฌ๋
๋จ๊ฑด ์กฐํ
|
|
2389
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
2390
|
+
* @param {*} [options] Override http request option.
|
|
2391
|
+
* @throws {RequiredError}
|
|
2392
|
+
*/
|
|
2393
|
+
getWebhookEndpoint(endpointId: string, options?: RawAxiosRequestConfig): AxiosPromise<GetWebhookEndpoint200Response> {
|
|
2394
|
+
return localVarFp.getWebhookEndpoint(endpointId, options).then((request) => request(axios, basePath));
|
|
2395
|
+
},
|
|
1869
2396
|
/**
|
|
1870
2397
|
* ERP ์ฐ๋ ์ง์ ํ์ ยท์ธ์ฆ endpoint ๋์ ํ์ธ์ฉ.
|
|
1871
2398
|
* @summary Partner API ํฌ์ค์ฒดํฌ
|
|
@@ -1910,6 +2437,28 @@ export const PartnerApiApiFactory = function (configuration?: Configuration, bas
|
|
|
1910
2437
|
listExternalContractDocuments(buyerId: string, bidType: ListExternalContractDocumentsBidTypeEnum, options?: RawAxiosRequestConfig): AxiosPromise<ExternalContractDocumentsResponseDto> {
|
|
1911
2438
|
return localVarFp.listExternalContractDocuments(buyerId, bidType, options).then((request) => request(axios, basePath));
|
|
1912
2439
|
},
|
|
2440
|
+
/**
|
|
2441
|
+
* ์ด API ํค์ ์นํ
๋ฐ์ก ์๋๋ฅผ ์ต์ ์์ผ๋ก ์กฐํํฉ๋๋ค. ๋ณด๋ธ ๋ณธ๋ฌธยท์์ ์ธก ์๋ต ์ํยท ๋ค์ ์ฌ์๋ ์์ ์๊ฐ์ด ํจ๊ป ์ค๋ฆฝ๋๋ค. **ํธ์ถ ์์ :** - ์์ ์ธก ์ฅ์ ๋ก ๋์น ์ด๋ฒคํธ๋ฅผ ๋ฉ์ธ ๋. ์ด ์๋ํฌ์ธํธ๊ฐ ์นํ
์ **ํด๋ง ๋์ฒด ๊ฒฝ๋ก**์
๋๋ค โ `status=EXHAUSTED` ๋ก ๊ฑธ๋ฌ ๋ค์ ์ฒ๋ฆฌํ๋ฉด ๋ฉ๋๋ค. - \"์ด๋ฒคํธ๊ฐ ์ ์จ๋ค\" ๋ฅผ ์ง๋จํ ๋. ๋ฐ์ก ์๋ ์์ฒด๊ฐ ์๋์ง(๊ตฌ๋
ยท์ด๋ฒคํธ ํ์
๋ฌธ์ ), ์๋ํ์ง๋ง ์คํจํ๋์ง(`responseStatus`ยท`responseBodyExcerpt`)๋ฅผ ์ฌ๊ธฐ์ ๊ฐ๋ฆ
๋๋ค. **๊ฐ์ ์ด๋ฒคํธ๊ฐ ์ฌ๋ฌ ํ์ผ๋ก ๋ณด์
๋๋ค.** ์ฌ์๋๋ง๋ค ํ ํ์ด๋ฉฐ `eventId` ๊ฐ ๊ฐ๊ณ `attempt` ๋ง ์ฌ๋ผ๊ฐ๋๋ค. ์ฒ๋ฆฌ ์ฌ๋ถ๋ `eventId` ๊ธฐ์ค์ผ๋ก ํ๋จํ์ธ์. **ํ์ด์ง๋ค์ด์
:** `nextCursor` ๋ฅผ ๋ค์ ์์ฒญ์ `cursor` ๋ก ์ ๋ฌํฉ๋๋ค. null ์ด๋ฉด ๋ง์ง๋ง ํ์ด์ง์
๋๋ค. **`400`:** `status` ๊ฐ ํ์ฉ ๊ฐ ๋ฐ์ด๊ฑฐ๋ `limit` ์ด ๋ฒ์๋ฅผ ๋ฒ์ด๋ฌ์ต๋๋ค โ ๊ฐ์ ๊ณ ์ณ ์ฌ์๋ํ์ธ์. **ํ์ ์ค์ฝํ:** `webhooks:read`
|
|
2442
|
+
* @summary ์นํ
์ ์ก ์ด๋ ฅ ์กฐํ
|
|
2443
|
+
* @param {string} [endpointId] ์ด ๊ตฌ๋
์ ์ ์ก๋ง ์กฐํํฉ๋๋ค. ๋ฏธ์ง์ ์ด๋ฉด ์ด ํค์ ๋ชจ๋ ๊ตฌ๋
์ ํจ๊ป ์กฐํํฉ๋๋ค.
|
|
2444
|
+
* @param {PartnerWebhookDeliveryStatus} [status] ์ ์ก ์ํ ํํฐ. ๋ฏธ์ง์ ์ด๋ฉด ์ ๋ถ.
|
|
2445
|
+
* @param {number} [limit] ํ์ด์ง ํฌ๊ธฐ(1~200, ๊ธฐ๋ณธ 50).
|
|
2446
|
+
* @param {string} [cursor] ๋ค์ ํ์ด์ง ์ปค์(๋ถํฌ๋ช
ํ ํฐ). ์ง์ ์๋ต์ `nextCursor` ๋ฅผ ๊ทธ๋๋ก ์ ๋ฌํฉ๋๋ค. ๋ฏธ์ง์ ์ ์ฒซ ํ์ด์ง.
|
|
2447
|
+
* @param {*} [options] Override http request option.
|
|
2448
|
+
* @throws {RequiredError}
|
|
2449
|
+
*/
|
|
2450
|
+
listWebhookDeliveries(endpointId?: string, status?: PartnerWebhookDeliveryStatus, limit?: number, cursor?: string, options?: RawAxiosRequestConfig): AxiosPromise<ListWebhookDeliveries200Response> {
|
|
2451
|
+
return localVarFp.listWebhookDeliveries(endpointId, status, limit, cursor, options).then((request) => request(axios, basePath));
|
|
2452
|
+
},
|
|
2453
|
+
/**
|
|
2454
|
+
* ์ด API ํค๊ฐ ๋ฑ๋กํ ์นํ
๊ตฌ๋
์ ๋ชจ๋ ์กฐํํฉ๋๋ค. **ํธ์ถ ์์ :** ์ฐ๋ ์ํ๋ฅผ ์ ๊ฒํ ๋, ๋๋ ๋ฐ์ก์ด ๋ฉ์ถ ์ด์ (`status`ยท`consecutiveFailures`)๋ฅผ ํ์ธํ ๋. ์๋ช
์ํฌ๋ฆฟ์ ์ฌ๊ธฐ์ ์ค๋ฆฌ์ง ์์ต๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:read` ### ์๋ช
๊ฒ์ฆ (ํ์) ์๋ช
์ **[Standard Webhooks](https://www.standardwebhooks.com)** ๊ท์ฝ์ ๊ทธ๋๋ก ๋ฐ๋ฆ
๋๋ค. ์ง์ ๊ตฌํํ์ง ๋ง๊ณ ๊ฐ ์ธ์ด์ `standardwebhooks` ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฑ๋ก ์ ๋ฐ์ ์ํฌ๋ฆฟ (`whsec_โฆ`)์ ๊ทธ๋๋ก ๋๊ธฐ์ธ์ โ ๊ทธ๊ฒ์ด ์ด ํ์์ ์ฐ๋ ์ด์ ์
๋๋ค. ```java // Java Webhook webhook = new Webhook(secret); // secret = \"whsec_โฆ\" webhook.verify(rawBody, headers); // ์คํจํ๋ฉด ์์ธ ``` ```ts // Node / TypeScript import { Webhook } from \'standardwebhooks\'; new Webhook(secret).verify(rawBody, headers); ``` ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ธ ์ ์๋ค๋ฉด ๋ฐ์ก ์์ฒญ์ ์ค๋ฆฌ๋ ํค๋๋ ์
์
๋๋ค. ``` webhook-id: evt_01J8Z7Q3K9 webhook-timestamp: 1774915200 webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4= ``` 1. ์ํฌ๋ฆฟ์์ `whsec_` ์ ๋์ด๋ฅผ ๋ผ๊ณ **base64 ๋์ฝ๋**ํฉ๋๋ค โ ๊ทธ ๋ฐ์ดํธ๊ฐ HMAC ํค์
๋๋ค (์ํฌ๋ฆฟ ๋ฌธ์์ด ์์ฒด๊ฐ ์๋๋๋ค). 2. `\"${webhook-id}.${webhook-timestamp}.${๋ณธ๋ฌธ ์๋ฌธ}\"` ์ ๋ง๋ญ๋๋ค. **๋ณธ๋ฌธ์ ํ์ฑ ์ ์๋ฌธ ๋ฐ์ดํธ**์ฌ์ผ ํฉ๋๋ค โ JSON ์ ๋ค์ ์ง๋ ฌํํ๋ฉด ๊ณต๋ฐฑยทํค ์์๊ฐ ๋ฌ๋ผ์ ธ ์๋ช
์ด ๋ง์ง ์์ต๋๋ค. 3. HMAC-SHA256 ์ ๊ณ์ฐํด **base64** ๋ก ์ธ์ฝ๋ฉํ๊ณ , `webhook-signature` ์ `v1,` ๋ค ๊ฐ๊ณผ ๋น๊ตํฉ๋๋ค. ๋น๊ต๋ **์์ ์๊ฐ** ํจ์๋ฅผ ์ฐ์ธ์(Node `crypto.timingSafeEqual`, Java `MessageDigest.isEqual`). 4. `webhook-timestamp` ๊ฐ ํ์ฌ ์๊ฐ์์ **5๋ถ** ์ด์ ์ง๋ฌ์ผ๋ฉด ๊ฑฐ์ ํ์ธ์(์ฌ์ ์ก ๊ณต๊ฒฉ ๋ฐฉ์ด). `webhook-signature` ๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ **์ฌ๋ฌ ์๋ช
**์ ์ค์ ์ ์๋ ํ์์
๋๋ค(ํค ํ์ ์ฉ). ์ง๊ธ์ ํญ์ ํ๋์ง๋ง, ๊ฒ์ฆ๊ธฐ๋ ๋ชฉ๋ก์ผ๋ก ์ฝ๊ณ **ํ๋๋ผ๋ ๋ง์ผ๋ฉด ํต๊ณผ**ํ๋๋ก ์ง์ธ์. ### ์ค๋ณต ์ ๊ฑฐ `webhook-id` ํค๋๊ฐ ์ด๋ฒคํธ ์๋ณ์์
๋๋ค. **์ฌ์๋์๋ ๊ฐ์ ๊ฐ์ด ์ต๋๋ค** โ ์ด๋ฏธ ์ฒ๋ฆฌํ ๊ฐ์ด๋ฉด ๋ฌด์ํ์ธ์. ๊ฐ์ ์ด๋ฒคํธ๋ฅผ ๋ ๋ฒ ๋ฐ๋ ๊ฒ์ ์ ์ ๋์์ด๋ฉฐ, ์ค๋ณต ์ ๊ฑฐ๋ ์์ ์ธก ์ฑ
์์
๋๋ค. ํธ์๋ฅผ ์ํด `webhook-event-type` ํค๋์ ์ด๋ฒคํธ ํ์
(๋ณธ๋ฌธ `type` ๊ณผ ๊ฐ์ ๊ฐ)๋ ์ค๋ฆฝ๋๋ค โ ๋ณธ๋ฌธ์ ํ์ฑํ๊ธฐ ์ ์ ๊ด์ฌ ์๋ ํ์
์ ๋ฒ๋ฆด ์ ์์ต๋๋ค. ํ์ค์๋ ์๋ ํ์ฅ์ด๋ผ ๊ฒ์ฆ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด ํค๋๋ฅผ ๋ฌด์ํฉ๋๋ค. ### ์๋ต๊ณผ ์ฌ์๋ 2xx ๋ฅผ ๋๋ ค์ฃผ๋ฉด ์ฑ๊ณต์
๋๋ค. ๊ทธ ์ธ(๋๋ ๋ฌด์๋ต)๋ ์คํจ๋ก ๋ณด๊ณ ์ต๋ 7ํ ์ฌ์๋ํฉ๋๋ค โ ๊ฐ๊ฒฉ์ 10์ด โ 1๋ถ โ 5๋ถ โ 30๋ถ โ 2์๊ฐ โ 6์๊ฐ โ 24์๊ฐ ์
๋๋ค. ์ฒ๋ฆฌ ์๊ฐ์ด ๊ธธ๋ฉด ๋จผ์ 2xx ๋ฅผ ๋๋ ค์ฃผ๊ณ ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌํ์ธ์. ์ฐ์ ์คํจ๊ฐ 20ํ์ ๋ฟ์ผ๋ฉด ๊ตฌ๋
์ด ์๋์ผ๋ก `DISABLED` ๋ก ๋ด๋ ค๊ฐ๊ณ ๋ฐ์ก์ด ๋ฉ์ถฅ๋๋ค. ์์ ์ธก์ ๊ณ ์น ๋ค `PATCH /v2/webhook-endpoints/{endpointId}` ์ `{\"status\":\"ACTIVE\"}` ๋ก ๋์ด๋ฆฌ์ธ์. ### ๊ตฌ๋
๊ฐ๋ฅํ ์ด๋ฒคํธ `bid.closed` ยท `bid.awarded` ยท `bid.failed` ยท `bid.canceled` ยท `bid.award_reverted` `ping` ์ ์ฐ๊ฒฐ ํ์ธ ์ ์ฉ์ด๋ผ ๊ตฌ๋
ํ ์ ์์ต๋๋ค โ ํ
์คํธ ๋ฐ์ก ๊ฒฝ๋ก์์๋ง ๋๊ฐ๋๋ค. ### ๋์น ์ด๋ฒคํธ ํ์ธ `GET /v2/webhook-deliveries` ๊ฐ ๋ฐ์ก ์๋ ์ด๋ ฅ(๋ณธ๋ฌธยท์๋ต ์ํยท๋ค์ ์ฌ์๋ ์๊ฐ)์ ๋๋ ค์ค๋๋ค. ์์ ์ธก ์ฅ์ ๊ตฌ๊ฐ์ ๋ฉ์ธ ๋ ์ด ์๋ํฌ์ธํธ๋ฅผ ํด๋ง ๋์ฒด ๊ฒฝ๋ก๋ก ์ฐ์ธ์.
|
|
2455
|
+
* @summary ์นํ
๊ตฌ๋
๋ชฉ๋ก ์กฐํ
|
|
2456
|
+
* @param {*} [options] Override http request option.
|
|
2457
|
+
* @throws {RequiredError}
|
|
2458
|
+
*/
|
|
2459
|
+
listWebhookEndpoints(options?: RawAxiosRequestConfig): AxiosPromise<ListWebhookEndpoints200Response> {
|
|
2460
|
+
return localVarFp.listWebhookEndpoints(options).then((request) => request(axios, basePath));
|
|
2461
|
+
},
|
|
1913
2462
|
/**
|
|
1914
2463
|
* ๊ณต๊ณ ๋ฅผ ์ ์ฐฐ ์ํ๋ก ์ ํํฉ๋๋ค. **ํธ์ถ ์์ :** ์
์ฐฐ ๋ง๊ฐ ํ ์ ์ฐฐ ์ฌ์ ๊ฐ ํ์ ๋์์ ๋. ๊ณต๊ณ ๊ฐ ์
์ฐฐ์๋ฃ(๋ง๊ฐ) ์ํ์์ ํธ์ถํฉ๋๋ค. **๋ถ์ํจ๊ณผ:** - ๊ณต๊ณ ์ํ๊ฐ ์ ์ฐฐ(FAILED)๋ก ์ ํ๋ฉ๋๋ค. - ์ ์ฐฐ์ฌ์ ์ฝ๋์ ์์ธ๊ฐ ๊ธฐ๋ก๋ฉ๋๋ค. **์ ์ฐฐ์ฌ์ ๊ฐ ๋ชฉ๋ก(failureReasonCode โ ๊ณต๊ฐ๊ฐ):** | ๊ฐ | ์๋ฏธ | |------|------| | `ABOVE_TARGET_PRICE` | ์์ ๊ฐ๊ฒฉ ์ด๊ณผ | | `DEPT_MISMATCH` | ์๊ฒฉ ๋ฏธ๋ฌ | | `NEEDS_EXPERTISE` | ์ ๋ฌธ์ฑ ํ์ | | `OTHER` | ๊ธฐํ (`failureReasonDetail` ํ์) | | `NO_PARTICIPANT` | ์ฐธ๊ฐ์ ์์ | | `SINGLE_PARTICIPANT` | ๋จ๋
์ฐธ๊ฐ | | `LESS_THAN_TWO` | 2์ธ ๋ฏธ๋ง | | `BELOW_MINIMUM` | ์ต์ ๊ฐ ๋ฏธ๋ฌ | **๋ฐ์ฃผ์ฒ:** API ํค์ ๋ฐ์ธ๋ฉ๋ ๋ฐ์ฃผ์ฒ๋ก ์๋ ์ค์ฝํ๋ฉ๋๋ค(์์ฒญ body ์ buyerId ๋ฅผ ๋ฃ์ง ์์ต๋๋ค). **ํ์ ์ค์ฝํ:** `awards:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
1915
2464
|
* @summary ์ ์ฐฐ ์ฒ๋ฆฌ
|
|
@@ -1980,6 +2529,28 @@ export const PartnerApiApiFactory = function (configuration?: Configuration, bas
|
|
|
1980
2529
|
revertAward(bidRef: string, idempotencyKey: string, revertAwardRequestDto: RevertAwardRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<RevertAward200Response> {
|
|
1981
2530
|
return localVarFp.revertAward(bidRef, idempotencyKey, revertAwardRequestDto, options).then((request) => request(axios, basePath));
|
|
1982
2531
|
},
|
|
2532
|
+
/**
|
|
2533
|
+
* ์๋ช
์ํฌ๋ฆฟ์ ์๋ก ๋ฐ๊ธํฉ๋๋ค. ์๋ต์ `secretVersion` ์ด 1 ์ฌ๋ผ๊ฐ๋๋ค. **ํธ์ถ ์์ :** ์ํฌ๋ฆฟ์ ๋ถ์คํ๊ฑฐ๋ ์ ์ถ์ด ์์ฌ๋ ๋, ๋๋ ์ฃผ๊ธฐ์ ๊ต์ฒด ์ ์ฑ
์ด ์์ ๋. **์ ์ํฌ๋ฆฟ์ ์ด ์๋ต์์ ํ ๋ฒ๋ง ๋๊ฐ๋๋ค.** ์กฐํ๋ก ๋ค์ ๋ฐ์ ์ ์์ต๋๋ค. **์ ์ํฌ๋ฆฟ์ ์ฆ์ ๋ฌดํจ์
๋๋ค.** ์ ์ ๊ธฐ๊ฐ์ด ์์ผ๋ฏ๋ก, ์์ ์ธก์ด ์ ๊ฐ์ ๋ฐ์ํ๊ธฐ ์ ์ ๋์ฐฉํ ์ด๋ฒคํธ๋ ์๋ช
๊ฒ์ฆ์ ์คํจํฉ๋๋ค. ๋ฐฐํฌ ์์๋ฅผ ์ด๋ ๊ฒ ์ก์ผ์ธ์ โ โ ์์ ์ธก์ด ์ ๊ฐ๊ณผ ์ ๊ฐ์ **๋ ๋ค** ๋ฐ์๋ค์ด๋๋ก ๋ฐฐํฌ โ โก ์ด ์๋ํฌ์ธํธ ํธ์ถ โ โข ์๋ต์ ์ ๊ฐ์ ๋ฐ์ โ โฃ ์ ๊ฐ ์ ๊ฑฐ. ๊ฒ์ฆ ์คํจ๋ก non-2xx ๋ฅผ ๋๋ ค์ฃผ๋ฉด ์คํจ๋ก ์ง๊ณ๋์ด 20ํ ์ฐ์ ์ ๊ตฌ๋
์ด ์ค์ง๋ฉ๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ๊ฐ์ ํค๋ก ์ฌ์ ์กํ๋ฉด **์๋ก ๋ฐ๊ธํ์ง ์๊ณ ** ์ฒ์ ๋ฐ๊ธํ ๊ฐ์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค(24์๊ฐ) โ ๋คํธ์ํฌ ์ค๋ฅ๋ก ์๋ต์ ๋์ณค์ ๋ ๊ฐ์ ํค๋ก ๋ค์ ๋ถ๋ฅด์ธ์.
|
|
2534
|
+
* @summary ์นํ
์๋ช
์ํฌ๋ฆฟ ์ฌ๋ฐ๊ธ
|
|
2535
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
2536
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
2537
|
+
* @param {*} [options] Override http request option.
|
|
2538
|
+
* @throws {RequiredError}
|
|
2539
|
+
*/
|
|
2540
|
+
rotateWebhookSecret(endpointId: string, idempotencyKey: string, options?: RawAxiosRequestConfig): AxiosPromise<CreateWebhookEndpoint201Response> {
|
|
2541
|
+
return localVarFp.rotateWebhookSecret(endpointId, idempotencyKey, options).then((request) => request(axios, basePath));
|
|
2542
|
+
},
|
|
2543
|
+
/**
|
|
2544
|
+
* ๋ฑ๋ก๋ ์ฃผ์๋ก `ping` ์ด๋ฒคํธ๋ฅผ ์ฆ์ 1ํ ๋ณด๋ด๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋๋ ค์ค๋๋ค. **ํธ์ถ ์์ :** ๊ตฌ๋
์ ๋ฑ๋กํ ์งํ, ์์ ์ฃผ์๋ฅผ ๋ฐ๊พผ ์งํ, ๋ฐฉํ๋ฒฝยท์ธ์ฆ์๋ฅผ ์๋ณธ ๋ค. **์๋ต์ ๋ฐ์ก ๊ฒฐ๊ณผ์ด์ง ์์ฒญ ์คํจ๊ฐ ์๋๋๋ค.** ์์ ์ธก์ด ๋ฐ์ง ๋ชปํด๋ HTTP `200` ์ `delivered: false` ๋ก ์ต๋๋ค โ `responseStatus`(์์ ์ธก ์ํ)์ `error`(์ฐ๊ฒฐ ๊ฑฐ๋ถยทํ์์์ยท TLS ์ค๋ฅ)๋ฅผ ๋ณด๊ณ ์์ธ์ ์ขํ์ธ์. ์ด ๋ฐ์ก์๋ ์ค์ ์ด๋ฒคํธ์ **๋๊ฐ์ ์๋ช
ํค๋**๊ฐ ์ค๋ฆฌ๋ฏ๋ก ๊ฒ์ฆ ์ฝ๋๋ฅผ ๊ทธ๋๋ก ์ํํ ์ ์์ต๋๋ค. `ping` ์ ๊ตฌ๋
๋ชฉ๋ก์ ๋ฃ์ ์ ์๋ ํ์
์ด๋, ์์ ์ธก์ด ๋ชจ๋ฅด๋ `eventType` ์ ๋ง๋๋ฉด ๋ฒ๋ฆฌ๋๋ก ์ง์ฌ ์๋ค๋ฉด ์ด ํ์ธ๋ง ์คํจํ ์ ์์ต๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ๋ค์ ๋ณด๋ด๋ ค๋ฉด **์ ํค**๋ฅผ ์ฐ์ธ์ โ ๊ฐ์ ํค๋ 24์๊ฐ ๋์ ์ง์ ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค(์ฌ๋ฐ์กํ์ง ์์ต๋๋ค).
|
|
2545
|
+
* @summary ์นํ
์ฐ๊ฒฐ ํ์ธ ๋ฐ์ก
|
|
2546
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
2547
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
2548
|
+
* @param {*} [options] Override http request option.
|
|
2549
|
+
* @throws {RequiredError}
|
|
2550
|
+
*/
|
|
2551
|
+
sendWebhookTestEvent(endpointId: string, idempotencyKey: string, options?: RawAxiosRequestConfig): AxiosPromise<SendWebhookTestEvent200Response> {
|
|
2552
|
+
return localVarFp.sendWebhookTestEvent(endpointId, idempotencyKey, options).then((request) => request(axios, basePath));
|
|
2553
|
+
},
|
|
1983
2554
|
/**
|
|
1984
2555
|
* ํ์๋ฐฉ์(NEGOTIATION/NEGOTIATION_AUTO) ๊ณต๊ณ ์ ์์ฐฐ์๋ณ ์ ์๋ฅผ ์
๋ ฅํฉ๋๋ค. **ํธ์ถ ์์ :** ์
์ฐฐ ๋ง๊ฐ ํ ๋์ฐฐ(`POST /v2/bids/{bidRef}/award`) ์ . ํ์๋ฐฉ์ ๊ณต๊ณ ๋ ์ด ํ๊ฐ๋ฅผ ์๋ฃํด์ผ ๋์ฐฐ์ ์ง์
ํ ์ ์์ต๋๋ค. **๋ถ์ํจ๊ณผ:** - ์์ฐฐ์๋ณ ๊ธฐ์ ์ ์(๋ฐ ์ ํ์ ๊ฐ๊ฒฉ์ ์ override)๊ฐ ๊ธฐ๋ก๋ฉ๋๋ค. - `complete=true` ๋ฉด ํ๊ฐ์๋ฃ ๊ฒ์ดํธ๊น์ง ์ ์ฉ๋ผ ๋์ฐฐ ์ง์
์ด ๊ฐ๋ฅํด์ง๋๋ค. **๋ฐ์ฃผ์ฒ:** API ํค์ ๋ฐ์ธ๋ฉ๋ ๋ฐ์ฃผ์ฒ๋ก ์๋ ์ค์ฝํ๋ฉ๋๋ค(์์ฒญ body ์ buyerId ๋ฅผ ๋ฃ์ง ์์ต๋๋ค). **ํ์ ์ค์ฝํ:** `awards:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ๋์ผ ํค + ๋์ผ body ์ฌ์ ์ก ์ 24์๊ฐ ๋ด ์บ์ ์๋ต ๋ฐํ.
|
|
1985
2556
|
* @summary ํ์ ์ ์ํ๊ฐ
|
|
@@ -2005,6 +2576,19 @@ export const PartnerApiApiFactory = function (configuration?: Configuration, bas
|
|
|
2005
2576
|
updateBid(bidRef: string, ifMatch: string, idempotencyKey: string, updateBidRequestDto: UpdateBidRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<UpdateBid200Response> {
|
|
2006
2577
|
return localVarFp.updateBid(bidRef, ifMatch, idempotencyKey, updateBidRequestDto, options).then((request) => request(axios, basePath));
|
|
2007
2578
|
},
|
|
2579
|
+
/**
|
|
2580
|
+
* ์์ ์ฃผ์ยท๊ตฌ๋
์ด๋ฒคํธยท์ํ๋ฅผ ์์ ํฉ๋๋ค. ๋ณด๋ธ ํ๋๋ง ๋ฐ๋๋๋ค. **ํธ์ถ ์์ :** ์์ ์ฃผ์๊ฐ ๋ฐ๋์์ ๋, ๊ตฌ๋
์ด๋ฒคํธ๋ฅผ ๋๋ฆฌ๊ฑฐ๋ ์ค์ผ ๋, ์ฐ์ ์คํจ๋ก ์๋ ์ค์ง๋ ๊ตฌ๋
์ ๊ณ ์น ๋ค ๋์ด๋ฆด ๋(`{\"status\":\"ACTIVE\"}`). **`eventTypes` ๋ ์นํ์
๋๋ค** โ ๋ณด๋ธ ๋ชฉ๋ก์ด ๊ณง ์ ๊ตฌ๋
๋ชฉ๋ก์
๋๋ค. ํ๋๋ฅผ ๋ํ๋ ค๋ฉด ๊ธฐ์กด ๋ชฉ๋ก์ ๋ํ **์ ์ฒด**๋ฅผ ๋ณด๋ด์ธ์. **`If-Match` ๊ฐ ํ์์
๋๋ค.** ๋จผ์ `GET /v2/webhook-endpoints/{endpointId}` ๋ก ํ์ฌ `ETag` ๋ฅผ ๋ฐ์ ๊ทธ๋๋ก ์ค์ด ๋ณด๋ด์ธ์. ์ด ํค๋๊ฐ ์์ผ๋ฉด ๋ ์์ฒญ์ด ์์๊ฑฐ๋ ๋ค์๊ฑฐ๋ ํ๋ฉฐ ๋จผ์ ํ ์์ ์ ์กฐ์ฉํ ๋ฎ์ด์๋๋ค. - `428` โ ํค๋๋ฅผ ๋นผ๋จน์์ต๋๋ค. ์กฐํ ํ `ETag` ๋ฅผ ์ค์ด ์ฌ์๋ํ์ธ์. - `412` โ ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ต๋๋ค. ๋ค์ ์กฐํํด ์ต์ `ETag` ๋ก ์ฌ์๋ํ์ธ์. ์๋ฌด๊ฒ๋ ์์ ๋์ง ์์์ต๋๋ค. **์ํฌ๋ฆฟ์ ์ด ๊ฒฝ๋ก๋ก ๋ฐ๋์ง ์์ต๋๋ค** โ ์ฌ๋ฐ๊ธ์ `rotate-secret` ์
๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
2581
|
+
* @summary ์นํ
๊ตฌ๋
์์
|
|
2582
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
2583
|
+
* @param {string} ifMatch ์ง์ ์กฐํ ์๋ต์ `ETag` ๊ฐ. ๋๋ฝํ๋ฉด 428, ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ผ๋ฉด 412 ๋ก ๊ฑฐ์ ๋๋ฉฐ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
|
|
2584
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
2585
|
+
* @param {UpdateWebhookEndpointRequestDto} updateWebhookEndpointRequestDto
|
|
2586
|
+
* @param {*} [options] Override http request option.
|
|
2587
|
+
* @throws {RequiredError}
|
|
2588
|
+
*/
|
|
2589
|
+
updateWebhookEndpoint(endpointId: string, ifMatch: string, idempotencyKey: string, updateWebhookEndpointRequestDto: UpdateWebhookEndpointRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<GetWebhookEndpoint200Response> {
|
|
2590
|
+
return localVarFp.updateWebhookEndpoint(endpointId, ifMatch, idempotencyKey, updateWebhookEndpointRequestDto, options).then((request) => request(axios, basePath));
|
|
2591
|
+
},
|
|
2008
2592
|
/**
|
|
2009
2593
|
* **์ฒจ๋ถ ์
๋ก๋์ ๊ธฐ๋ณธ ๊ฒฝ๋ก์
๋๋ค. 23MB ์ดํ๋ฉด ์ด ํธ์ถ ํ๋๋ก ๋๋ฉ๋๋ค.** ํ์ผ ๋ณธ๋ฌธ์ `base64` ๋๋ `url` ์ค ์ ํํ ํ๋๋ก ์ ์ถํ๋ฉด `fileKey` ๋ฅผ ๋๋ ค์ค๋๋ค. ์ด ๊ฐ์ ๊ณต๊ณ ๋ฑ๋กยท์์ ์ ์ฒจ๋ถ ํ๋์ ์ค์ผ์ธ์. **23MB ๋ฅผ ๋์ผ๋ฉด ๊ฒฝ๋ก๋ฅผ ๋ฐ๊ฟ์ผ ํฉ๋๋ค.** ์ํ์ด ์
์ผ๋ก ๊ฐ๋ฆฝ๋๋ค. | ์ ์ถ ๋ฐฉ์ | ์ํ | ํธ์ถ ์ | | --- | --- | --- | | ์ด ํธ์ถ + `base64` | **23MB** (๋ณธ๋ฌธ์ด c-market ์ ํต๊ณผํ๋ฉฐ base64 ํฝ์ฐฝ 4/3 ์ด ์นํ) | 1 | | ์ด ํธ์ถ + `url` | **30MB** (c-market ์ด ๋์ ๋ด๋ ค๋ฐ์ ํฝ์ฐฝ์ ์์ง๋ง ์๋ฒ ๊ฒฝ์ ์ฒ์ฅ์ ๊ทธ๋๋ก) | 1 | | `POST /v2/files/upload-url` ๋ก ์์ํ๋ 2๋จ๊ณ | **100MB** (๋ฐ์ดํธ๊ฐ c-market ์ ์ง๋์ง ์์) | 2 + ์คํ ๋ฆฌ์ง PUT | c-market ์ด ๋ด๋ ค๋ฐ์ ์ ์๋ https ์ฃผ์์ ํ์ผ์ ์ฌ๋ ค ๋ ์ ์๋ค๋ฉด `url` ์ด 30MB ๊น์ง๋ฅผ 1์ฝ๋ก ๋ฎ์ต๋๋ค. ๊ทธ ์ด์์ด๊ฑฐ๋ ์ฃผ์๋ฅผ ์ด ์ ์์ผ๋ฉด 2๋จ๊ณ ๊ฒฝ๋ก๋ฅผ ์ฐ์ธ์. **๊ณต๊ณ ๋ฑ๋ก์ ํ์ผ์ ํจ๊ป ์ค์ ์๋ ์์ต๋๋ค.** `POST /v2/bids` ์ `attachments` ์์์ `{ fileName, url }`ยท`{ fileName, base64 }` ๋ฅผ ๊ทธ๋๋ก ๋ฃ์ผ๋ฉด ์ด ํธ์ถ ์์ด ํ ๋ฒ์ ๋๋ฉ๋๋ค. ์ฌ๋ฌ ๊ณต๊ณ ์ ๊ฐ์ ํ์ผ์ ์ฌ์ฌ์ฉํ๊ฑฐ๋ ํฐ ํ์ผ์ ๋ค๋ฃฐ ๋๋ง `fileKey` ๋ฅผ ๋จผ์ ๋ง๋์ธ์. **ํ์ ์ค์ฝํ:** `files:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
2010
2594
|
* @summary ๊ณต๊ณ ์ฒจ๋ถํ์ผ ์
๋ก๋ (๊ธฐ๋ณธ)
|
|
@@ -2110,6 +2694,31 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2110
2694
|
return PartnerApiApiFp(this.configuration).createFileUploadUrl(idempotencyKey, createUploadUrlRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2111
2695
|
}
|
|
2112
2696
|
|
|
2697
|
+
/**
|
|
2698
|
+
* ์์ ์ฃผ์์ ๊ตฌ๋
ํ ์ด๋ฒคํธ๋ฅผ ๋ฑ๋กํฉ๋๋ค. **ํธ์ถ ์์ :** ์ฐ๋ ์ด๊ธฐ 1ํ. ์์ ์ฃผ์๊ฐ ๋ฐ๋๋ฉด ์๋ก ๋ง๋ค์ง ๋ง๊ณ `PATCH` ๋ก ๊ณ ์น์ธ์ โ ๊ทธ๋์ผ ์ํฌ๋ฆฟ๊ณผ ์ ์ก ์ด๋ ฅ์ด ์ ์ง๋ฉ๋๋ค. **์๋ช
์ํฌ๋ฆฟ์ ์ด ์๋ต์์ ํ ๋ฒ๋ง ๋๊ฐ๋๋ค.** ์๋ฒ๋ ํด์๋ง ๋ณด๊ดํ๋ฏ๋ก ์กฐํ๋ก ๋ค์ ๋ฐ์ ์ ์์ต๋๋ค. ์๋ต์ `secret` ์ ์ฆ์ ์์ ํ ๊ณณ์ ๋ณด๊ดํ์ธ์. ์์ด๋ฒ๋ ธ๋ค๋ฉด ๋ณต๊ตฌ๊ฐ ์๋๋ผ `POST /v2/webhook-endpoints/{endpointId}/rotate-secret` ์ผ๋ก **์ฌ๋ฐ๊ธ**ํด์ผ ํฉ๋๋ค. **๊ฑฐ์ ๋๋ ๊ฒฝ์ฐ์ ๊ณ ์น๋ ๋ฒ:** - `400` โ `url` ์ด HTTPS ๊ฐ ์๋๊ฑฐ๋ ํ์์ด ์๋ชป๋จ, `eventTypes` ๊ฐ ๋น์๊ฑฐ๋ ๋ชฉ๋ก ๋ฐ ๊ฐ (`ping` ์ ๊ตฌ๋
๋ถ๊ฐ). ๊ฐ์ ๊ณ ์ณ ์ฌ์๋ํ์ธ์. - `400` โ `Idempotency-Key` ํค๋ ๋๋ฝ/ํ์ ์ค๋ฅ. UUID v4 ๋ฅผ ์ค์ด ๋ณด๋ด์ธ์. - `403` โ ํ ํฐ์ `webhooks:write` ์ค์ฝํ๊ฐ ์์. ํค ๋ฐ๊ธ ์ค์ ์ ๋ํ์ผ ํฉ๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ### ์๋ช
๊ฒ์ฆ (ํ์) ์๋ช
์ **[Standard Webhooks](https://www.standardwebhooks.com)** ๊ท์ฝ์ ๊ทธ๋๋ก ๋ฐ๋ฆ
๋๋ค. ์ง์ ๊ตฌํํ์ง ๋ง๊ณ ๊ฐ ์ธ์ด์ `standardwebhooks` ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฑ๋ก ์ ๋ฐ์ ์ํฌ๋ฆฟ (`whsec_โฆ`)์ ๊ทธ๋๋ก ๋๊ธฐ์ธ์ โ ๊ทธ๊ฒ์ด ์ด ํ์์ ์ฐ๋ ์ด์ ์
๋๋ค. ```java // Java Webhook webhook = new Webhook(secret); // secret = \"whsec_โฆ\" webhook.verify(rawBody, headers); // ์คํจํ๋ฉด ์์ธ ``` ```ts // Node / TypeScript import { Webhook } from \'standardwebhooks\'; new Webhook(secret).verify(rawBody, headers); ``` ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ธ ์ ์๋ค๋ฉด ๋ฐ์ก ์์ฒญ์ ์ค๋ฆฌ๋ ํค๋๋ ์
์
๋๋ค. ``` webhook-id: evt_01J8Z7Q3K9 webhook-timestamp: 1774915200 webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4= ``` 1. ์ํฌ๋ฆฟ์์ `whsec_` ์ ๋์ด๋ฅผ ๋ผ๊ณ **base64 ๋์ฝ๋**ํฉ๋๋ค โ ๊ทธ ๋ฐ์ดํธ๊ฐ HMAC ํค์
๋๋ค (์ํฌ๋ฆฟ ๋ฌธ์์ด ์์ฒด๊ฐ ์๋๋๋ค). 2. `\"${webhook-id}.${webhook-timestamp}.${๋ณธ๋ฌธ ์๋ฌธ}\"` ์ ๋ง๋ญ๋๋ค. **๋ณธ๋ฌธ์ ํ์ฑ ์ ์๋ฌธ ๋ฐ์ดํธ**์ฌ์ผ ํฉ๋๋ค โ JSON ์ ๋ค์ ์ง๋ ฌํํ๋ฉด ๊ณต๋ฐฑยทํค ์์๊ฐ ๋ฌ๋ผ์ ธ ์๋ช
์ด ๋ง์ง ์์ต๋๋ค. 3. HMAC-SHA256 ์ ๊ณ์ฐํด **base64** ๋ก ์ธ์ฝ๋ฉํ๊ณ , `webhook-signature` ์ `v1,` ๋ค ๊ฐ๊ณผ ๋น๊ตํฉ๋๋ค. ๋น๊ต๋ **์์ ์๊ฐ** ํจ์๋ฅผ ์ฐ์ธ์(Node `crypto.timingSafeEqual`, Java `MessageDigest.isEqual`). 4. `webhook-timestamp` ๊ฐ ํ์ฌ ์๊ฐ์์ **5๋ถ** ์ด์ ์ง๋ฌ์ผ๋ฉด ๊ฑฐ์ ํ์ธ์(์ฌ์ ์ก ๊ณต๊ฒฉ ๋ฐฉ์ด). `webhook-signature` ๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ **์ฌ๋ฌ ์๋ช
**์ ์ค์ ์ ์๋ ํ์์
๋๋ค(ํค ํ์ ์ฉ). ์ง๊ธ์ ํญ์ ํ๋์ง๋ง, ๊ฒ์ฆ๊ธฐ๋ ๋ชฉ๋ก์ผ๋ก ์ฝ๊ณ **ํ๋๋ผ๋ ๋ง์ผ๋ฉด ํต๊ณผ**ํ๋๋ก ์ง์ธ์. ### ์ค๋ณต ์ ๊ฑฐ `webhook-id` ํค๋๊ฐ ์ด๋ฒคํธ ์๋ณ์์
๋๋ค. **์ฌ์๋์๋ ๊ฐ์ ๊ฐ์ด ์ต๋๋ค** โ ์ด๋ฏธ ์ฒ๋ฆฌํ ๊ฐ์ด๋ฉด ๋ฌด์ํ์ธ์. ๊ฐ์ ์ด๋ฒคํธ๋ฅผ ๋ ๋ฒ ๋ฐ๋ ๊ฒ์ ์ ์ ๋์์ด๋ฉฐ, ์ค๋ณต ์ ๊ฑฐ๋ ์์ ์ธก ์ฑ
์์
๋๋ค. ํธ์๋ฅผ ์ํด `webhook-event-type` ํค๋์ ์ด๋ฒคํธ ํ์
(๋ณธ๋ฌธ `type` ๊ณผ ๊ฐ์ ๊ฐ)๋ ์ค๋ฆฝ๋๋ค โ ๋ณธ๋ฌธ์ ํ์ฑํ๊ธฐ ์ ์ ๊ด์ฌ ์๋ ํ์
์ ๋ฒ๋ฆด ์ ์์ต๋๋ค. ํ์ค์๋ ์๋ ํ์ฅ์ด๋ผ ๊ฒ์ฆ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด ํค๋๋ฅผ ๋ฌด์ํฉ๋๋ค. ### ์๋ต๊ณผ ์ฌ์๋ 2xx ๋ฅผ ๋๋ ค์ฃผ๋ฉด ์ฑ๊ณต์
๋๋ค. ๊ทธ ์ธ(๋๋ ๋ฌด์๋ต)๋ ์คํจ๋ก ๋ณด๊ณ ์ต๋ 7ํ ์ฌ์๋ํฉ๋๋ค โ ๊ฐ๊ฒฉ์ 10์ด โ 1๋ถ โ 5๋ถ โ 30๋ถ โ 2์๊ฐ โ 6์๊ฐ โ 24์๊ฐ ์
๋๋ค. ์ฒ๋ฆฌ ์๊ฐ์ด ๊ธธ๋ฉด ๋จผ์ 2xx ๋ฅผ ๋๋ ค์ฃผ๊ณ ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌํ์ธ์. ์ฐ์ ์คํจ๊ฐ 20ํ์ ๋ฟ์ผ๋ฉด ๊ตฌ๋
์ด ์๋์ผ๋ก `DISABLED` ๋ก ๋ด๋ ค๊ฐ๊ณ ๋ฐ์ก์ด ๋ฉ์ถฅ๋๋ค. ์์ ์ธก์ ๊ณ ์น ๋ค `PATCH /v2/webhook-endpoints/{endpointId}` ์ `{\"status\":\"ACTIVE\"}` ๋ก ๋์ด๋ฆฌ์ธ์. ### ๊ตฌ๋
๊ฐ๋ฅํ ์ด๋ฒคํธ `bid.closed` ยท `bid.awarded` ยท `bid.failed` ยท `bid.canceled` ยท `bid.award_reverted` `ping` ์ ์ฐ๊ฒฐ ํ์ธ ์ ์ฉ์ด๋ผ ๊ตฌ๋
ํ ์ ์์ต๋๋ค โ ํ
์คํธ ๋ฐ์ก ๊ฒฝ๋ก์์๋ง ๋๊ฐ๋๋ค. ### ๋์น ์ด๋ฒคํธ ํ์ธ `GET /v2/webhook-deliveries` ๊ฐ ๋ฐ์ก ์๋ ์ด๋ ฅ(๋ณธ๋ฌธยท์๋ต ์ํยท๋ค์ ์ฌ์๋ ์๊ฐ)์ ๋๋ ค์ค๋๋ค. ์์ ์ธก ์ฅ์ ๊ตฌ๊ฐ์ ๋ฉ์ธ ๋ ์ด ์๋ํฌ์ธํธ๋ฅผ ํด๋ง ๋์ฒด ๊ฒฝ๋ก๋ก ์ฐ์ธ์.
|
|
2699
|
+
* @summary ์นํ
๊ตฌ๋
๋ฑ๋ก
|
|
2700
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
2701
|
+
* @param {CreateWebhookEndpointRequestDto} createWebhookEndpointRequestDto
|
|
2702
|
+
* @param {*} [options] Override http request option.
|
|
2703
|
+
* @throws {RequiredError}
|
|
2704
|
+
*/
|
|
2705
|
+
public createWebhookEndpoint(idempotencyKey: string, createWebhookEndpointRequestDto: CreateWebhookEndpointRequestDto, options?: RawAxiosRequestConfig) {
|
|
2706
|
+
return PartnerApiApiFp(this.configuration).createWebhookEndpoint(idempotencyKey, createWebhookEndpointRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2707
|
+
}
|
|
2708
|
+
|
|
2709
|
+
/**
|
|
2710
|
+
* ๊ตฌ๋
์ ์ญ์ ํฉ๋๋ค. ์ดํ ๊ทธ ์ฃผ์๋ก๋ ์๋ฌด ์ด๋ฒคํธ๋ ๋ฐ์ก๋์ง ์์ต๋๋ค. **ํธ์ถ ์์ :** ์ฐ๋์ ์ข
๋ฃํ ๋. ์ ์๋ง ๋ฉ์ถ๋ ค๋ฉด ์ญ์ ํ์ง ๋ง๊ณ `PATCH โฆ {\"status\":\"DISABLED\"}` ๋ฅผ ์ฐ์ธ์ โ ์ํฌ๋ฆฟ๊ณผ ์ด๋ฒคํธ ๊ตฌ์ฑ์ด ๋จ์ ๊ทธ๋๋ก ๋์ด๋ฆด ์ ์์ต๋๋ค. **๋๋๋ฆด ์ ์์ต๋๋ค.** ๋ค์ ๋ฑ๋กํ๋ฉด ์ ๊ตฌ๋
์ด๊ณ ์๋ช
์ํฌ๋ฆฟ๋ ์ ๊ฐ์
๋๋ค. **`If-Match` ๊ฐ ํ์์
๋๋ค.** `GET` ์ผ๋ก ๋ฐ์ `ETag` ๋ฅผ ์ค์ด ๋ณด๋ด์ธ์. - `428` โ ํค๋ ๋๋ฝ. ์กฐํ ํ ์ฌ์๋ํ์ธ์. - `412` โ ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ต๋๋ค(๋๊ตฐ๊ฐ ์์ ํ๊ฑฐ๋ ๋ฐ์ก๊ธฐ๊ฐ ์ํ๋ฅผ ๋ด๋ ธ์ต๋๋ค). ๋ค์ ์กฐํํด ์ ๋ง ์ง์ธ ๋์์ด ๋ง๋์ง ํ์ธํ๊ณ ์ต์ `ETag` ๋ก ์ฌ์๋ํ์ธ์. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
2711
|
+
* @summary ์นํ
๊ตฌ๋
์ญ์
|
|
2712
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
2713
|
+
* @param {string} ifMatch ์ง์ ์กฐํ ์๋ต์ `ETag` ๊ฐ. ๋๋ฝํ๋ฉด 428, ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ผ๋ฉด 412 ๋ก ๊ฑฐ์ ๋๋ฉฐ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
|
|
2714
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
2715
|
+
* @param {*} [options] Override http request option.
|
|
2716
|
+
* @throws {RequiredError}
|
|
2717
|
+
*/
|
|
2718
|
+
public deleteWebhookEndpoint(endpointId: string, ifMatch: string, idempotencyKey: string, options?: RawAxiosRequestConfig) {
|
|
2719
|
+
return PartnerApiApiFp(this.configuration).deleteWebhookEndpoint(endpointId, ifMatch, idempotencyKey, options).then((request) => request(this.axios, this.basePath));
|
|
2720
|
+
}
|
|
2721
|
+
|
|
2113
2722
|
/**
|
|
2114
2723
|
* ๋ฌด์ธ์ฆ โ `fileKey` ์์ฒด๊ฐ capability ๋ค(ํค๋ฅผ ์๋ ์ชฝ์ด ๊ณง ์ ๊ทผ ๊ถํ์ ๊ฐ์ง๋ค). ํํธ๋ ์๋ต์ `fileUrl`/`fullUrl` ์ด ์ด URL ์ ๊ฐ๋ฆฌํจ๋ค. ์์ฒญ ์์ ์ ์๋ช
ํ๋ฏ๋ก URL ์ ์ ์ฅํด ๋์ด๋ ๋ง๋ฃ๋์ง ์๋๋ค. ์๋ต์ ์ค์ ์ ์ฅ์ URL ๋ก์ 302 ๋ฆฌ๋ค์ด๋ ํธ์ด๋ฉฐ ๋ฆฌ๋ค์ด๋ ํธ ํ๊น์ 1์๊ฐ ๋ค ๋ง๋ฃ๋๋ฏ๋ก 302 ์์ฒด๋ฅผ ์บ์ํ์ง ๋ง ๊ฒ(`Cache-Control: no-store`). --- **์๋ต ํํ๊ฐ ๋๊ฒฐ๋ ํ๋ฉด์
๋๋ค.** ์ด๋ฏธ ์ฐ๋ ์ค์ธ ์์คํ
์ด ์์ด ์๋ต ํ๋๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ด๋ฆ์ ๋ฐ๊พธ์ง ์์ต๋๋ค. ๋ค๋ฅธ `/v2` ์๋ํฌ์ธํธ์ ๋ฌ๋ฆฌ `{data,meta}` ๋ดํฌ๋ฅผ ์์ฐ์ง ์์ผ๋ฏ๋ก ์๋ต ๋ณธ๋ฌธ์ด ๊ณง ์ ์คํค๋ง์
๋๋ค. ์ง๊ธ ์ฐ๋ํ์
๋ ๊ณ์ ๋์ํฉ๋๋ค โ ๋ค๋ง ์ด ๊ฒฝ๋ก์ ์ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์ง๋ ์์ต๋๋ค. **๋์ฒด ๊ณํ:** ์ด๋ฏธ ์์ต๋๋ค โ `GET /v2/files/{fileKey}` ๊ฐ ํ์ผ ๋ฉํ์ `downloadUrl` ์ v2 ์๋ต ๊ท์ฝ์ผ๋ก ๋๋ ค์ค๋๋ค. ์ด ์์ URL ์ ํํธ๋ ์๋ต์ `fileUrl`/`fullUrl` ์ด ๊ฐ๋ฆฌํค๋ ์ฃผ์๋ผ ๊ณ์ ์ ์ง๋๋ฉฐ ์ค๋จ ์ผ์ ์ ์์ต๋๋ค.
|
|
2115
2724
|
* @summary ํ์ผ ๋ค์ด๋ก๋
|
|
@@ -2188,6 +2797,17 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2188
2797
|
return PartnerApiApiFp(this.configuration).getSupplierCardPayableV2(memberId, options).then((request) => request(this.axios, this.basePath));
|
|
2189
2798
|
}
|
|
2190
2799
|
|
|
2800
|
+
/**
|
|
2801
|
+
* ๊ตฌ๋
1๊ฑด์ ํ์ฌ ์ํ๋ฅผ ์กฐํํฉ๋๋ค. ์๋ช
์ํฌ๋ฆฟ์ ์ค๋ฆฌ์ง ์์ต๋๋ค. **์์ ยท์ญ์ ์ ์ ๋จผ์ ํธ์ถํ์ธ์.** ์๋ต ํค๋ `ETag` ๋ฅผ `If-Match` ์ ๊ทธ๋๋ก ์ค์ด์ผ `PATCH`/`DELETE` ๊ฐ ํต๊ณผํฉ๋๋ค. **`404`:** ์๋ ๊ตฌ๋
์ด๊ฑฐ๋ ๋ค๋ฅธ ํํธ๋ ํค์ ๊ตฌ๋
์
๋๋ค โ `endpointId` ๋ฅผ ํ์ธํ์ธ์. **ํ์ ์ค์ฝํ:** `webhooks:read`
|
|
2802
|
+
* @summary ์นํ
๊ตฌ๋
๋จ๊ฑด ์กฐํ
|
|
2803
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
2804
|
+
* @param {*} [options] Override http request option.
|
|
2805
|
+
* @throws {RequiredError}
|
|
2806
|
+
*/
|
|
2807
|
+
public getWebhookEndpoint(endpointId: string, options?: RawAxiosRequestConfig) {
|
|
2808
|
+
return PartnerApiApiFp(this.configuration).getWebhookEndpoint(endpointId, options).then((request) => request(this.axios, this.basePath));
|
|
2809
|
+
}
|
|
2810
|
+
|
|
2191
2811
|
/**
|
|
2192
2812
|
* ERP ์ฐ๋ ์ง์ ํ์ ยท์ธ์ฆ endpoint ๋์ ํ์ธ์ฉ.
|
|
2193
2813
|
* @summary Partner API ํฌ์ค์ฒดํฌ
|
|
@@ -2236,6 +2856,30 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2236
2856
|
return PartnerApiApiFp(this.configuration).listExternalContractDocuments(buyerId, bidType, options).then((request) => request(this.axios, this.basePath));
|
|
2237
2857
|
}
|
|
2238
2858
|
|
|
2859
|
+
/**
|
|
2860
|
+
* ์ด API ํค์ ์นํ
๋ฐ์ก ์๋๋ฅผ ์ต์ ์์ผ๋ก ์กฐํํฉ๋๋ค. ๋ณด๋ธ ๋ณธ๋ฌธยท์์ ์ธก ์๋ต ์ํยท ๋ค์ ์ฌ์๋ ์์ ์๊ฐ์ด ํจ๊ป ์ค๋ฆฝ๋๋ค. **ํธ์ถ ์์ :** - ์์ ์ธก ์ฅ์ ๋ก ๋์น ์ด๋ฒคํธ๋ฅผ ๋ฉ์ธ ๋. ์ด ์๋ํฌ์ธํธ๊ฐ ์นํ
์ **ํด๋ง ๋์ฒด ๊ฒฝ๋ก**์
๋๋ค โ `status=EXHAUSTED` ๋ก ๊ฑธ๋ฌ ๋ค์ ์ฒ๋ฆฌํ๋ฉด ๋ฉ๋๋ค. - \"์ด๋ฒคํธ๊ฐ ์ ์จ๋ค\" ๋ฅผ ์ง๋จํ ๋. ๋ฐ์ก ์๋ ์์ฒด๊ฐ ์๋์ง(๊ตฌ๋
ยท์ด๋ฒคํธ ํ์
๋ฌธ์ ), ์๋ํ์ง๋ง ์คํจํ๋์ง(`responseStatus`ยท`responseBodyExcerpt`)๋ฅผ ์ฌ๊ธฐ์ ๊ฐ๋ฆ
๋๋ค. **๊ฐ์ ์ด๋ฒคํธ๊ฐ ์ฌ๋ฌ ํ์ผ๋ก ๋ณด์
๋๋ค.** ์ฌ์๋๋ง๋ค ํ ํ์ด๋ฉฐ `eventId` ๊ฐ ๊ฐ๊ณ `attempt` ๋ง ์ฌ๋ผ๊ฐ๋๋ค. ์ฒ๋ฆฌ ์ฌ๋ถ๋ `eventId` ๊ธฐ์ค์ผ๋ก ํ๋จํ์ธ์. **ํ์ด์ง๋ค์ด์
:** `nextCursor` ๋ฅผ ๋ค์ ์์ฒญ์ `cursor` ๋ก ์ ๋ฌํฉ๋๋ค. null ์ด๋ฉด ๋ง์ง๋ง ํ์ด์ง์
๋๋ค. **`400`:** `status` ๊ฐ ํ์ฉ ๊ฐ ๋ฐ์ด๊ฑฐ๋ `limit` ์ด ๋ฒ์๋ฅผ ๋ฒ์ด๋ฌ์ต๋๋ค โ ๊ฐ์ ๊ณ ์ณ ์ฌ์๋ํ์ธ์. **ํ์ ์ค์ฝํ:** `webhooks:read`
|
|
2861
|
+
* @summary ์นํ
์ ์ก ์ด๋ ฅ ์กฐํ
|
|
2862
|
+
* @param {string} [endpointId] ์ด ๊ตฌ๋
์ ์ ์ก๋ง ์กฐํํฉ๋๋ค. ๋ฏธ์ง์ ์ด๋ฉด ์ด ํค์ ๋ชจ๋ ๊ตฌ๋
์ ํจ๊ป ์กฐํํฉ๋๋ค.
|
|
2863
|
+
* @param {PartnerWebhookDeliveryStatus} [status] ์ ์ก ์ํ ํํฐ. ๋ฏธ์ง์ ์ด๋ฉด ์ ๋ถ.
|
|
2864
|
+
* @param {number} [limit] ํ์ด์ง ํฌ๊ธฐ(1~200, ๊ธฐ๋ณธ 50).
|
|
2865
|
+
* @param {string} [cursor] ๋ค์ ํ์ด์ง ์ปค์(๋ถํฌ๋ช
ํ ํฐ). ์ง์ ์๋ต์ `nextCursor` ๋ฅผ ๊ทธ๋๋ก ์ ๋ฌํฉ๋๋ค. ๋ฏธ์ง์ ์ ์ฒซ ํ์ด์ง.
|
|
2866
|
+
* @param {*} [options] Override http request option.
|
|
2867
|
+
* @throws {RequiredError}
|
|
2868
|
+
*/
|
|
2869
|
+
public listWebhookDeliveries(endpointId?: string, status?: PartnerWebhookDeliveryStatus, limit?: number, cursor?: string, options?: RawAxiosRequestConfig) {
|
|
2870
|
+
return PartnerApiApiFp(this.configuration).listWebhookDeliveries(endpointId, status, limit, cursor, options).then((request) => request(this.axios, this.basePath));
|
|
2871
|
+
}
|
|
2872
|
+
|
|
2873
|
+
/**
|
|
2874
|
+
* ์ด API ํค๊ฐ ๋ฑ๋กํ ์นํ
๊ตฌ๋
์ ๋ชจ๋ ์กฐํํฉ๋๋ค. **ํธ์ถ ์์ :** ์ฐ๋ ์ํ๋ฅผ ์ ๊ฒํ ๋, ๋๋ ๋ฐ์ก์ด ๋ฉ์ถ ์ด์ (`status`ยท`consecutiveFailures`)๋ฅผ ํ์ธํ ๋. ์๋ช
์ํฌ๋ฆฟ์ ์ฌ๊ธฐ์ ์ค๋ฆฌ์ง ์์ต๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:read` ### ์๋ช
๊ฒ์ฆ (ํ์) ์๋ช
์ **[Standard Webhooks](https://www.standardwebhooks.com)** ๊ท์ฝ์ ๊ทธ๋๋ก ๋ฐ๋ฆ
๋๋ค. ์ง์ ๊ตฌํํ์ง ๋ง๊ณ ๊ฐ ์ธ์ด์ `standardwebhooks` ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฑ๋ก ์ ๋ฐ์ ์ํฌ๋ฆฟ (`whsec_โฆ`)์ ๊ทธ๋๋ก ๋๊ธฐ์ธ์ โ ๊ทธ๊ฒ์ด ์ด ํ์์ ์ฐ๋ ์ด์ ์
๋๋ค. ```java // Java Webhook webhook = new Webhook(secret); // secret = \"whsec_โฆ\" webhook.verify(rawBody, headers); // ์คํจํ๋ฉด ์์ธ ``` ```ts // Node / TypeScript import { Webhook } from \'standardwebhooks\'; new Webhook(secret).verify(rawBody, headers); ``` ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ธ ์ ์๋ค๋ฉด ๋ฐ์ก ์์ฒญ์ ์ค๋ฆฌ๋ ํค๋๋ ์
์
๋๋ค. ``` webhook-id: evt_01J8Z7Q3K9 webhook-timestamp: 1774915200 webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4= ``` 1. ์ํฌ๋ฆฟ์์ `whsec_` ์ ๋์ด๋ฅผ ๋ผ๊ณ **base64 ๋์ฝ๋**ํฉ๋๋ค โ ๊ทธ ๋ฐ์ดํธ๊ฐ HMAC ํค์
๋๋ค (์ํฌ๋ฆฟ ๋ฌธ์์ด ์์ฒด๊ฐ ์๋๋๋ค). 2. `\"${webhook-id}.${webhook-timestamp}.${๋ณธ๋ฌธ ์๋ฌธ}\"` ์ ๋ง๋ญ๋๋ค. **๋ณธ๋ฌธ์ ํ์ฑ ์ ์๋ฌธ ๋ฐ์ดํธ**์ฌ์ผ ํฉ๋๋ค โ JSON ์ ๋ค์ ์ง๋ ฌํํ๋ฉด ๊ณต๋ฐฑยทํค ์์๊ฐ ๋ฌ๋ผ์ ธ ์๋ช
์ด ๋ง์ง ์์ต๋๋ค. 3. HMAC-SHA256 ์ ๊ณ์ฐํด **base64** ๋ก ์ธ์ฝ๋ฉํ๊ณ , `webhook-signature` ์ `v1,` ๋ค ๊ฐ๊ณผ ๋น๊ตํฉ๋๋ค. ๋น๊ต๋ **์์ ์๊ฐ** ํจ์๋ฅผ ์ฐ์ธ์(Node `crypto.timingSafeEqual`, Java `MessageDigest.isEqual`). 4. `webhook-timestamp` ๊ฐ ํ์ฌ ์๊ฐ์์ **5๋ถ** ์ด์ ์ง๋ฌ์ผ๋ฉด ๊ฑฐ์ ํ์ธ์(์ฌ์ ์ก ๊ณต๊ฒฉ ๋ฐฉ์ด). `webhook-signature` ๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ **์ฌ๋ฌ ์๋ช
**์ ์ค์ ์ ์๋ ํ์์
๋๋ค(ํค ํ์ ์ฉ). ์ง๊ธ์ ํญ์ ํ๋์ง๋ง, ๊ฒ์ฆ๊ธฐ๋ ๋ชฉ๋ก์ผ๋ก ์ฝ๊ณ **ํ๋๋ผ๋ ๋ง์ผ๋ฉด ํต๊ณผ**ํ๋๋ก ์ง์ธ์. ### ์ค๋ณต ์ ๊ฑฐ `webhook-id` ํค๋๊ฐ ์ด๋ฒคํธ ์๋ณ์์
๋๋ค. **์ฌ์๋์๋ ๊ฐ์ ๊ฐ์ด ์ต๋๋ค** โ ์ด๋ฏธ ์ฒ๋ฆฌํ ๊ฐ์ด๋ฉด ๋ฌด์ํ์ธ์. ๊ฐ์ ์ด๋ฒคํธ๋ฅผ ๋ ๋ฒ ๋ฐ๋ ๊ฒ์ ์ ์ ๋์์ด๋ฉฐ, ์ค๋ณต ์ ๊ฑฐ๋ ์์ ์ธก ์ฑ
์์
๋๋ค. ํธ์๋ฅผ ์ํด `webhook-event-type` ํค๋์ ์ด๋ฒคํธ ํ์
(๋ณธ๋ฌธ `type` ๊ณผ ๊ฐ์ ๊ฐ)๋ ์ค๋ฆฝ๋๋ค โ ๋ณธ๋ฌธ์ ํ์ฑํ๊ธฐ ์ ์ ๊ด์ฌ ์๋ ํ์
์ ๋ฒ๋ฆด ์ ์์ต๋๋ค. ํ์ค์๋ ์๋ ํ์ฅ์ด๋ผ ๊ฒ์ฆ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด ํค๋๋ฅผ ๋ฌด์ํฉ๋๋ค. ### ์๋ต๊ณผ ์ฌ์๋ 2xx ๋ฅผ ๋๋ ค์ฃผ๋ฉด ์ฑ๊ณต์
๋๋ค. ๊ทธ ์ธ(๋๋ ๋ฌด์๋ต)๋ ์คํจ๋ก ๋ณด๊ณ ์ต๋ 7ํ ์ฌ์๋ํฉ๋๋ค โ ๊ฐ๊ฒฉ์ 10์ด โ 1๋ถ โ 5๋ถ โ 30๋ถ โ 2์๊ฐ โ 6์๊ฐ โ 24์๊ฐ ์
๋๋ค. ์ฒ๋ฆฌ ์๊ฐ์ด ๊ธธ๋ฉด ๋จผ์ 2xx ๋ฅผ ๋๋ ค์ฃผ๊ณ ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌํ์ธ์. ์ฐ์ ์คํจ๊ฐ 20ํ์ ๋ฟ์ผ๋ฉด ๊ตฌ๋
์ด ์๋์ผ๋ก `DISABLED` ๋ก ๋ด๋ ค๊ฐ๊ณ ๋ฐ์ก์ด ๋ฉ์ถฅ๋๋ค. ์์ ์ธก์ ๊ณ ์น ๋ค `PATCH /v2/webhook-endpoints/{endpointId}` ์ `{\"status\":\"ACTIVE\"}` ๋ก ๋์ด๋ฆฌ์ธ์. ### ๊ตฌ๋
๊ฐ๋ฅํ ์ด๋ฒคํธ `bid.closed` ยท `bid.awarded` ยท `bid.failed` ยท `bid.canceled` ยท `bid.award_reverted` `ping` ์ ์ฐ๊ฒฐ ํ์ธ ์ ์ฉ์ด๋ผ ๊ตฌ๋
ํ ์ ์์ต๋๋ค โ ํ
์คํธ ๋ฐ์ก ๊ฒฝ๋ก์์๋ง ๋๊ฐ๋๋ค. ### ๋์น ์ด๋ฒคํธ ํ์ธ `GET /v2/webhook-deliveries` ๊ฐ ๋ฐ์ก ์๋ ์ด๋ ฅ(๋ณธ๋ฌธยท์๋ต ์ํยท๋ค์ ์ฌ์๋ ์๊ฐ)์ ๋๋ ค์ค๋๋ค. ์์ ์ธก ์ฅ์ ๊ตฌ๊ฐ์ ๋ฉ์ธ ๋ ์ด ์๋ํฌ์ธํธ๋ฅผ ํด๋ง ๋์ฒด ๊ฒฝ๋ก๋ก ์ฐ์ธ์.
|
|
2875
|
+
* @summary ์นํ
๊ตฌ๋
๋ชฉ๋ก ์กฐํ
|
|
2876
|
+
* @param {*} [options] Override http request option.
|
|
2877
|
+
* @throws {RequiredError}
|
|
2878
|
+
*/
|
|
2879
|
+
public listWebhookEndpoints(options?: RawAxiosRequestConfig) {
|
|
2880
|
+
return PartnerApiApiFp(this.configuration).listWebhookEndpoints(options).then((request) => request(this.axios, this.basePath));
|
|
2881
|
+
}
|
|
2882
|
+
|
|
2239
2883
|
/**
|
|
2240
2884
|
* ๊ณต๊ณ ๋ฅผ ์ ์ฐฐ ์ํ๋ก ์ ํํฉ๋๋ค. **ํธ์ถ ์์ :** ์
์ฐฐ ๋ง๊ฐ ํ ์ ์ฐฐ ์ฌ์ ๊ฐ ํ์ ๋์์ ๋. ๊ณต๊ณ ๊ฐ ์
์ฐฐ์๋ฃ(๋ง๊ฐ) ์ํ์์ ํธ์ถํฉ๋๋ค. **๋ถ์ํจ๊ณผ:** - ๊ณต๊ณ ์ํ๊ฐ ์ ์ฐฐ(FAILED)๋ก ์ ํ๋ฉ๋๋ค. - ์ ์ฐฐ์ฌ์ ์ฝ๋์ ์์ธ๊ฐ ๊ธฐ๋ก๋ฉ๋๋ค. **์ ์ฐฐ์ฌ์ ๊ฐ ๋ชฉ๋ก(failureReasonCode โ ๊ณต๊ฐ๊ฐ):** | ๊ฐ | ์๋ฏธ | |------|------| | `ABOVE_TARGET_PRICE` | ์์ ๊ฐ๊ฒฉ ์ด๊ณผ | | `DEPT_MISMATCH` | ์๊ฒฉ ๋ฏธ๋ฌ | | `NEEDS_EXPERTISE` | ์ ๋ฌธ์ฑ ํ์ | | `OTHER` | ๊ธฐํ (`failureReasonDetail` ํ์) | | `NO_PARTICIPANT` | ์ฐธ๊ฐ์ ์์ | | `SINGLE_PARTICIPANT` | ๋จ๋
์ฐธ๊ฐ | | `LESS_THAN_TWO` | 2์ธ ๋ฏธ๋ง | | `BELOW_MINIMUM` | ์ต์ ๊ฐ ๋ฏธ๋ฌ | **๋ฐ์ฃผ์ฒ:** API ํค์ ๋ฐ์ธ๋ฉ๋ ๋ฐ์ฃผ์ฒ๋ก ์๋ ์ค์ฝํ๋ฉ๋๋ค(์์ฒญ body ์ buyerId ๋ฅผ ๋ฃ์ง ์์ต๋๋ค). **ํ์ ์ค์ฝํ:** `awards:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
2241
2885
|
* @summary ์ ์ฐฐ ์ฒ๋ฆฌ
|
|
@@ -2312,6 +2956,30 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2312
2956
|
return PartnerApiApiFp(this.configuration).revertAward(bidRef, idempotencyKey, revertAwardRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2313
2957
|
}
|
|
2314
2958
|
|
|
2959
|
+
/**
|
|
2960
|
+
* ์๋ช
์ํฌ๋ฆฟ์ ์๋ก ๋ฐ๊ธํฉ๋๋ค. ์๋ต์ `secretVersion` ์ด 1 ์ฌ๋ผ๊ฐ๋๋ค. **ํธ์ถ ์์ :** ์ํฌ๋ฆฟ์ ๋ถ์คํ๊ฑฐ๋ ์ ์ถ์ด ์์ฌ๋ ๋, ๋๋ ์ฃผ๊ธฐ์ ๊ต์ฒด ์ ์ฑ
์ด ์์ ๋. **์ ์ํฌ๋ฆฟ์ ์ด ์๋ต์์ ํ ๋ฒ๋ง ๋๊ฐ๋๋ค.** ์กฐํ๋ก ๋ค์ ๋ฐ์ ์ ์์ต๋๋ค. **์ ์ํฌ๋ฆฟ์ ์ฆ์ ๋ฌดํจ์
๋๋ค.** ์ ์ ๊ธฐ๊ฐ์ด ์์ผ๋ฏ๋ก, ์์ ์ธก์ด ์ ๊ฐ์ ๋ฐ์ํ๊ธฐ ์ ์ ๋์ฐฉํ ์ด๋ฒคํธ๋ ์๋ช
๊ฒ์ฆ์ ์คํจํฉ๋๋ค. ๋ฐฐํฌ ์์๋ฅผ ์ด๋ ๊ฒ ์ก์ผ์ธ์ โ โ ์์ ์ธก์ด ์ ๊ฐ๊ณผ ์ ๊ฐ์ **๋ ๋ค** ๋ฐ์๋ค์ด๋๋ก ๋ฐฐํฌ โ โก ์ด ์๋ํฌ์ธํธ ํธ์ถ โ โข ์๋ต์ ์ ๊ฐ์ ๋ฐ์ โ โฃ ์ ๊ฐ ์ ๊ฑฐ. ๊ฒ์ฆ ์คํจ๋ก non-2xx ๋ฅผ ๋๋ ค์ฃผ๋ฉด ์คํจ๋ก ์ง๊ณ๋์ด 20ํ ์ฐ์ ์ ๊ตฌ๋
์ด ์ค์ง๋ฉ๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ๊ฐ์ ํค๋ก ์ฌ์ ์กํ๋ฉด **์๋ก ๋ฐ๊ธํ์ง ์๊ณ ** ์ฒ์ ๋ฐ๊ธํ ๊ฐ์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค(24์๊ฐ) โ ๋คํธ์ํฌ ์ค๋ฅ๋ก ์๋ต์ ๋์ณค์ ๋ ๊ฐ์ ํค๋ก ๋ค์ ๋ถ๋ฅด์ธ์.
|
|
2961
|
+
* @summary ์นํ
์๋ช
์ํฌ๋ฆฟ ์ฌ๋ฐ๊ธ
|
|
2962
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
2963
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
2964
|
+
* @param {*} [options] Override http request option.
|
|
2965
|
+
* @throws {RequiredError}
|
|
2966
|
+
*/
|
|
2967
|
+
public rotateWebhookSecret(endpointId: string, idempotencyKey: string, options?: RawAxiosRequestConfig) {
|
|
2968
|
+
return PartnerApiApiFp(this.configuration).rotateWebhookSecret(endpointId, idempotencyKey, options).then((request) => request(this.axios, this.basePath));
|
|
2969
|
+
}
|
|
2970
|
+
|
|
2971
|
+
/**
|
|
2972
|
+
* ๋ฑ๋ก๋ ์ฃผ์๋ก `ping` ์ด๋ฒคํธ๋ฅผ ์ฆ์ 1ํ ๋ณด๋ด๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋๋ ค์ค๋๋ค. **ํธ์ถ ์์ :** ๊ตฌ๋
์ ๋ฑ๋กํ ์งํ, ์์ ์ฃผ์๋ฅผ ๋ฐ๊พผ ์งํ, ๋ฐฉํ๋ฒฝยท์ธ์ฆ์๋ฅผ ์๋ณธ ๋ค. **์๋ต์ ๋ฐ์ก ๊ฒฐ๊ณผ์ด์ง ์์ฒญ ์คํจ๊ฐ ์๋๋๋ค.** ์์ ์ธก์ด ๋ฐ์ง ๋ชปํด๋ HTTP `200` ์ `delivered: false` ๋ก ์ต๋๋ค โ `responseStatus`(์์ ์ธก ์ํ)์ `error`(์ฐ๊ฒฐ ๊ฑฐ๋ถยทํ์์์ยท TLS ์ค๋ฅ)๋ฅผ ๋ณด๊ณ ์์ธ์ ์ขํ์ธ์. ์ด ๋ฐ์ก์๋ ์ค์ ์ด๋ฒคํธ์ **๋๊ฐ์ ์๋ช
ํค๋**๊ฐ ์ค๋ฆฌ๋ฏ๋ก ๊ฒ์ฆ ์ฝ๋๋ฅผ ๊ทธ๋๋ก ์ํํ ์ ์์ต๋๋ค. `ping` ์ ๊ตฌ๋
๋ชฉ๋ก์ ๋ฃ์ ์ ์๋ ํ์
์ด๋, ์์ ์ธก์ด ๋ชจ๋ฅด๋ `eventType` ์ ๋ง๋๋ฉด ๋ฒ๋ฆฌ๋๋ก ์ง์ฌ ์๋ค๋ฉด ์ด ํ์ธ๋ง ์คํจํ ์ ์์ต๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ๋ค์ ๋ณด๋ด๋ ค๋ฉด **์ ํค**๋ฅผ ์ฐ์ธ์ โ ๊ฐ์ ํค๋ 24์๊ฐ ๋์ ์ง์ ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค(์ฌ๋ฐ์กํ์ง ์์ต๋๋ค).
|
|
2973
|
+
* @summary ์นํ
์ฐ๊ฒฐ ํ์ธ ๋ฐ์ก
|
|
2974
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
2975
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
2976
|
+
* @param {*} [options] Override http request option.
|
|
2977
|
+
* @throws {RequiredError}
|
|
2978
|
+
*/
|
|
2979
|
+
public sendWebhookTestEvent(endpointId: string, idempotencyKey: string, options?: RawAxiosRequestConfig) {
|
|
2980
|
+
return PartnerApiApiFp(this.configuration).sendWebhookTestEvent(endpointId, idempotencyKey, options).then((request) => request(this.axios, this.basePath));
|
|
2981
|
+
}
|
|
2982
|
+
|
|
2315
2983
|
/**
|
|
2316
2984
|
* ํ์๋ฐฉ์(NEGOTIATION/NEGOTIATION_AUTO) ๊ณต๊ณ ์ ์์ฐฐ์๋ณ ์ ์๋ฅผ ์
๋ ฅํฉ๋๋ค. **ํธ์ถ ์์ :** ์
์ฐฐ ๋ง๊ฐ ํ ๋์ฐฐ(`POST /v2/bids/{bidRef}/award`) ์ . ํ์๋ฐฉ์ ๊ณต๊ณ ๋ ์ด ํ๊ฐ๋ฅผ ์๋ฃํด์ผ ๋์ฐฐ์ ์ง์
ํ ์ ์์ต๋๋ค. **๋ถ์ํจ๊ณผ:** - ์์ฐฐ์๋ณ ๊ธฐ์ ์ ์(๋ฐ ์ ํ์ ๊ฐ๊ฒฉ์ ์ override)๊ฐ ๊ธฐ๋ก๋ฉ๋๋ค. - `complete=true` ๋ฉด ํ๊ฐ์๋ฃ ๊ฒ์ดํธ๊น์ง ์ ์ฉ๋ผ ๋์ฐฐ ์ง์
์ด ๊ฐ๋ฅํด์ง๋๋ค. **๋ฐ์ฃผ์ฒ:** API ํค์ ๋ฐ์ธ๋ฉ๋ ๋ฐ์ฃผ์ฒ๋ก ์๋ ์ค์ฝํ๋ฉ๋๋ค(์์ฒญ body ์ buyerId ๋ฅผ ๋ฃ์ง ์์ต๋๋ค). **ํ์ ์ค์ฝํ:** `awards:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์. ๋์ผ ํค + ๋์ผ body ์ฌ์ ์ก ์ 24์๊ฐ ๋ด ์บ์ ์๋ต ๋ฐํ.
|
|
2317
2985
|
* @summary ํ์ ์ ์ํ๊ฐ
|
|
@@ -2339,6 +3007,20 @@ export class PartnerApiApi extends BaseAPI {
|
|
|
2339
3007
|
return PartnerApiApiFp(this.configuration).updateBid(bidRef, ifMatch, idempotencyKey, updateBidRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
2340
3008
|
}
|
|
2341
3009
|
|
|
3010
|
+
/**
|
|
3011
|
+
* ์์ ์ฃผ์ยท๊ตฌ๋
์ด๋ฒคํธยท์ํ๋ฅผ ์์ ํฉ๋๋ค. ๋ณด๋ธ ํ๋๋ง ๋ฐ๋๋๋ค. **ํธ์ถ ์์ :** ์์ ์ฃผ์๊ฐ ๋ฐ๋์์ ๋, ๊ตฌ๋
์ด๋ฒคํธ๋ฅผ ๋๋ฆฌ๊ฑฐ๋ ์ค์ผ ๋, ์ฐ์ ์คํจ๋ก ์๋ ์ค์ง๋ ๊ตฌ๋
์ ๊ณ ์น ๋ค ๋์ด๋ฆด ๋(`{\"status\":\"ACTIVE\"}`). **`eventTypes` ๋ ์นํ์
๋๋ค** โ ๋ณด๋ธ ๋ชฉ๋ก์ด ๊ณง ์ ๊ตฌ๋
๋ชฉ๋ก์
๋๋ค. ํ๋๋ฅผ ๋ํ๋ ค๋ฉด ๊ธฐ์กด ๋ชฉ๋ก์ ๋ํ **์ ์ฒด**๋ฅผ ๋ณด๋ด์ธ์. **`If-Match` ๊ฐ ํ์์
๋๋ค.** ๋จผ์ `GET /v2/webhook-endpoints/{endpointId}` ๋ก ํ์ฌ `ETag` ๋ฅผ ๋ฐ์ ๊ทธ๋๋ก ์ค์ด ๋ณด๋ด์ธ์. ์ด ํค๋๊ฐ ์์ผ๋ฉด ๋ ์์ฒญ์ด ์์๊ฑฐ๋ ๋ค์๊ฑฐ๋ ํ๋ฉฐ ๋จผ์ ํ ์์ ์ ์กฐ์ฉํ ๋ฎ์ด์๋๋ค. - `428` โ ํค๋๋ฅผ ๋นผ๋จน์์ต๋๋ค. ์กฐํ ํ `ETag` ๋ฅผ ์ค์ด ์ฌ์๋ํ์ธ์. - `412` โ ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ต๋๋ค. ๋ค์ ์กฐํํด ์ต์ `ETag` ๋ก ์ฌ์๋ํ์ธ์. ์๋ฌด๊ฒ๋ ์์ ๋์ง ์์์ต๋๋ค. **์ํฌ๋ฆฟ์ ์ด ๊ฒฝ๋ก๋ก ๋ฐ๋์ง ์์ต๋๋ค** โ ์ฌ๋ฐ๊ธ์ `rotate-secret` ์
๋๋ค. **ํ์ ์ค์ฝํ:** `webhooks:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
3012
|
+
* @summary ์นํ
๊ตฌ๋
์์
|
|
3013
|
+
* @param {string} endpointId ๊ตฌ๋
์๋ณ์(๋ฑ๋ก ์๋ต์ `endpointId`).
|
|
3014
|
+
* @param {string} ifMatch ์ง์ ์กฐํ ์๋ต์ `ETag` ๊ฐ. ๋๋ฝํ๋ฉด 428, ๊ทธ ์ฌ์ด ๊ตฌ๋
์ด ๋ฐ๋์์ผ๋ฉด 412 ๋ก ๊ฑฐ์ ๋๋ฉฐ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
|
|
3015
|
+
* @param {string} idempotencyKey ๋ฉฑ๋ฑ์ฑ ํค(1~255์, `[A-Za-z0-9_-]`). **์ฌ์๋ํ ๋ ์ฒ์๊ณผ ๊ฐ์ ํค๋ฅผ ๋ค์ ๋ณด๋ด์ผ** ์ค๋ณต ์์ฑ์ด ๋งํ๋๋ค โ ํ์์์ยท๋คํธ์ํฌ ์ค๋ฅ๋ก ๋ค์ ๋ถ๋ฅด๋ฉด์ ์ ํค๋ฅผ ๋ง๋ค๋ฉด ๋ณ๊ฐ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ํค๋ UUID v4 ๋ฅผ ๋ง๋ค์ด **์ฐ๋ ์์คํ
์์ฅ์ ์ ์ฅ**ํ๊ฑฐ๋, ์์ฒญ ๋ด์ฉ์์ ๊ฒฐ์ ์ ์ผ๋ก ํ์(์: `bid-create-{๊ตฌ๋งค๋ฒํธ}`)ํด ์ฌ์๋๊ฐ ๊ฐ์ ๊ฐ์ ์ฌํํ๋๋ก ํ์ธ์. ๊ฐ์ ํค + ๊ฐ์ body ๋ 24์๊ฐ ๋์ ์บ์๋ ์๋ต์ ๊ทธ๋๋ก ๋๋ ค์ค๋๋ค.
|
|
3016
|
+
* @param {UpdateWebhookEndpointRequestDto} updateWebhookEndpointRequestDto
|
|
3017
|
+
* @param {*} [options] Override http request option.
|
|
3018
|
+
* @throws {RequiredError}
|
|
3019
|
+
*/
|
|
3020
|
+
public updateWebhookEndpoint(endpointId: string, ifMatch: string, idempotencyKey: string, updateWebhookEndpointRequestDto: UpdateWebhookEndpointRequestDto, options?: RawAxiosRequestConfig) {
|
|
3021
|
+
return PartnerApiApiFp(this.configuration).updateWebhookEndpoint(endpointId, ifMatch, idempotencyKey, updateWebhookEndpointRequestDto, options).then((request) => request(this.axios, this.basePath));
|
|
3022
|
+
}
|
|
3023
|
+
|
|
2342
3024
|
/**
|
|
2343
3025
|
* **์ฒจ๋ถ ์
๋ก๋์ ๊ธฐ๋ณธ ๊ฒฝ๋ก์
๋๋ค. 23MB ์ดํ๋ฉด ์ด ํธ์ถ ํ๋๋ก ๋๋ฉ๋๋ค.** ํ์ผ ๋ณธ๋ฌธ์ `base64` ๋๋ `url` ์ค ์ ํํ ํ๋๋ก ์ ์ถํ๋ฉด `fileKey` ๋ฅผ ๋๋ ค์ค๋๋ค. ์ด ๊ฐ์ ๊ณต๊ณ ๋ฑ๋กยท์์ ์ ์ฒจ๋ถ ํ๋์ ์ค์ผ์ธ์. **23MB ๋ฅผ ๋์ผ๋ฉด ๊ฒฝ๋ก๋ฅผ ๋ฐ๊ฟ์ผ ํฉ๋๋ค.** ์ํ์ด ์
์ผ๋ก ๊ฐ๋ฆฝ๋๋ค. | ์ ์ถ ๋ฐฉ์ | ์ํ | ํธ์ถ ์ | | --- | --- | --- | | ์ด ํธ์ถ + `base64` | **23MB** (๋ณธ๋ฌธ์ด c-market ์ ํต๊ณผํ๋ฉฐ base64 ํฝ์ฐฝ 4/3 ์ด ์นํ) | 1 | | ์ด ํธ์ถ + `url` | **30MB** (c-market ์ด ๋์ ๋ด๋ ค๋ฐ์ ํฝ์ฐฝ์ ์์ง๋ง ์๋ฒ ๊ฒฝ์ ์ฒ์ฅ์ ๊ทธ๋๋ก) | 1 | | `POST /v2/files/upload-url` ๋ก ์์ํ๋ 2๋จ๊ณ | **100MB** (๋ฐ์ดํธ๊ฐ c-market ์ ์ง๋์ง ์์) | 2 + ์คํ ๋ฆฌ์ง PUT | c-market ์ด ๋ด๋ ค๋ฐ์ ์ ์๋ https ์ฃผ์์ ํ์ผ์ ์ฌ๋ ค ๋ ์ ์๋ค๋ฉด `url` ์ด 30MB ๊น์ง๋ฅผ 1์ฝ๋ก ๋ฎ์ต๋๋ค. ๊ทธ ์ด์์ด๊ฑฐ๋ ์ฃผ์๋ฅผ ์ด ์ ์์ผ๋ฉด 2๋จ๊ณ ๊ฒฝ๋ก๋ฅผ ์ฐ์ธ์. **๊ณต๊ณ ๋ฑ๋ก์ ํ์ผ์ ํจ๊ป ์ค์ ์๋ ์์ต๋๋ค.** `POST /v2/bids` ์ `attachments` ์์์ `{ fileName, url }`ยท`{ fileName, base64 }` ๋ฅผ ๊ทธ๋๋ก ๋ฃ์ผ๋ฉด ์ด ํธ์ถ ์์ด ํ ๋ฒ์ ๋๋ฉ๋๋ค. ์ฌ๋ฌ ๊ณต๊ณ ์ ๊ฐ์ ํ์ผ์ ์ฌ์ฌ์ฉํ๊ฑฐ๋ ํฐ ํ์ผ์ ๋ค๋ฃฐ ๋๋ง `fileKey` ๋ฅผ ๋จผ์ ๋ง๋์ธ์. **ํ์ ์ค์ฝํ:** `files:write` **๋ฉฑ๋ฑ์ฑ:** `Idempotency-Key` ํค๋ ํ์.
|
|
2344
3026
|
* @summary ๊ณต๊ณ ์ฒจ๋ถํ์ผ ์
๋ก๋ (๊ธฐ๋ณธ)
|