{
"activateLicense" => {
method: "POST",
path: "/api/v1/license/activate",
auth: "license",
summary: "Activate a license for a hardware or container binding",
success: { 200 => "json" }
},
"assignLicenseFeature" => {
method: "POST",
path: "/api/v1/licenses/{id}/features",
auth: "bearer",
summary: "Assign or update a feature on a license",
success: { 200 => "json" }
},
"blacklistLicenseDevice" => {
method: "POST",
path: "/api/v1/licenses/{id}/devices/{device_id}/blacklist",
auth: "bearer",
summary: "Blacklist a managed device and block future reuse",
success: { 200 => "json" }
},
"checkLicense" => {
method: "POST",
path: "/api/v1/license/check",
auth: "license",
summary: "Check current entitlements without mutating validation timestamps",
success: { 200 => "json" }
},
"checkinFloatingLicense" => {
method: "POST",
path: "/api/v1/license/floating/checkin",
auth: "license",
summary: "Check in a floating lease token",
success: { 200 => "json" }
},
"checkoutFloatingLicense" => {
method: "POST",
path: "/api/v1/license/floating/checkout",
auth: "license",
summary: "Check out a floating lease for a hardware or container binding",
success: { 200 => "json" }
},
"consumeLicense" => {
method: "POST",
path: "/api/v1/license/consume",
auth: "license",
summary: "Consume metered feature usage for an active bound license",
success: { 200 => "json" }
},
"createAPIKey" => {
method: "POST",
path: "/api/v1/api-keys",
auth: "bearer",
summary: "Create a management API key",
success: { 201 => "json" }
},
"createCustomer" => {
method: "POST",
path: "/api/v1/customers",
auth: "bearer",
summary: "Create a customer",
success: { 201 => "json" }
},
"createFeature" => {
method: "POST",
path: "/api/v1/products/{id}/features",
auth: "bearer",
summary: "Create a feature for a product",
success: { 201 => "json" }
},
"createLicense" => {
method: "POST",
path: "/api/v1/licenses",
auth: "bearer",
summary: "Create a license",
success: { 201 => "json" }
},
"createOrder" => {
method: "POST",
path: "/api/v1/products/{id}/orders",
auth: "bearer",
summary: "Create an order record for a product",
success: { 201 => "json" }
},
"createPolicy" => {
method: "POST",
path: "/api/v1/products/{id}/policies",
auth: "bearer",
summary: "Create a policy for a product",
success: { 201 => "json" }
},
"createProduct" => {
method: "POST",
path: "/api/v1/products",
auth: "bearer",
summary: "Create a product",
success: { 201 => "json" }
},
"createProductCustomFieldDefinition" => {
method: "POST",
path: "/api/v1/products/{id}/custom-fields",
auth: "bearer",
summary: "Create a product custom field definition",
success: { 201 => "json" }
},
"createProductVersion" => {
method: "POST",
path: "/api/v1/products/{id}/versions",
auth: "bearer",
summary: "Create a product version",
success: { 201 => "json" }
},
"createReportExport" => {
method: "POST",
path: "/api/v1/reports/exports",
auth: "bearer",
summary: "Create a frozen report export",
success: { 201 => "json" }
},
"createSubscription" => {
method: "POST",
path: "/api/v1/products/{id}/subscriptions",
auth: "bearer",
summary: "Create a subscription record for a product",
success: { 201 => "json" }
},
"createWebhookEndpoint" => {
method: "POST",
path: "/api/v1/webhooks",
auth: "bearer",
summary: "Create a webhook endpoint",
success: { 201 => "json" }
},
"deactivateLicense" => {
method: "POST",
path: "/api/v1/license/deactivate",
auth: "license",
summary: "Deactivate a bound license device",
success: { 200 => "json" }
},
"deleteCustomer" => {
method: "DELETE",
path: "/api/v1/customers/{id}",
auth: "bearer",
summary: "Delete a customer",
success: { 204 => "empty" }
},
"deletePolicy" => {
method: "DELETE",
path: "/api/v1/policies/{id}",
auth: "bearer",
summary: "Delete a policy",
success: { 204 => "empty" }
},
"deleteProduct" => {
method: "DELETE",
path: "/api/v1/products/{id}",
auth: "bearer",
summary: "Delete a product",
success: { 204 => "empty" }
},
"deleteProductCustomFieldDefinition" => {
method: "DELETE",
path: "/api/v1/products/{id}/custom-fields/{field_id}",
auth: "bearer",
summary: "Delete a product custom field definition",
success: { 204 => "empty" }
},
"deleteWebhookEndpoint" => {
method: "DELETE",
path: "/api/v1/webhooks/{id}",
auth: "bearer",
summary: "Delete a webhook endpoint",
success: { 204 => "empty" }
},
"downloadReportExport" => {
method: "GET",
path: "/api/v1/reports/exports/{id}/download",
auth: "bearer",
summary: "Download a frozen report export snapshot",
success: { 200 => "bytes" }
},
"getCustomer" => {
method: "GET",
path: "/api/v1/customers/{id}",
auth: "bearer",
summary: "Get a customer",
success: { 200 => "json" }
},
"getCustomerSummary" => {
method: "GET",
path: "/api/v1/reports/customer-summary",
auth: "bearer",
summary: "Get customer-level reporting summary",
success: { 200 => "json" }
},
"getFeature" => {
method: "GET",
path: "/api/v1/features/{id}",
auth: "bearer",
summary: "Get a feature",
success: { 200 => "json" }
},
"getLicense" => {
method: "GET",
path: "/api/v1/licenses/{id}",
auth: "bearer",
summary: "Get a license",
success: { 200 => "json" }
},
"getLicenseAuditReport" => {
method: "GET",
path: "/api/v1/reports/license-audit",
auth: "bearer",
summary: "Get a license audit report",
success: { 200 => "json" }
},
"getLicenseDevice" => {
method: "GET",
path: "/api/v1/licenses/{id}/devices/{device_id}",
auth: "bearer",
summary: "Get a device for a license",
success: { 200 => "json" }
},
"getMetrics" => {
method: "GET",
path: "/metrics",
auth: "none",
summary: "Prometheus metrics",
success: { 200 => "text" }
},
"getOpsSummary" => {
method: "GET",
path: "/api/v1/ops/summary",
auth: "bearer",
summary: "Get operational summary cards",
success: { 200 => "json" }
},
"getOrder" => {
method: "GET",
path: "/api/v1/orders/{id}",
auth: "bearer",
summary: "Get an order record",
success: { 200 => "json" }
},
"getPolicy" => {
method: "GET",
path: "/api/v1/policies/{id}",
auth: "bearer",
summary: "Get a policy",
success: { 200 => "json" }
},
"getProduct" => {
method: "GET",
path: "/api/v1/products/{id}",
auth: "bearer",
summary: "Get a product",
success: { 200 => "json" }
},
"getProductCustomFieldDefinition" => {
method: "GET",
path: "/api/v1/products/{id}/custom-fields/{field_id}",
auth: "bearer",
summary: "Get a product custom field definition",
success: { 200 => "json" }
},
"getReportExport" => {
method: "GET",
path: "/api/v1/reports/exports/{id}",
auth: "bearer",
summary: "Get report export metadata",
success: { 200 => "json" }
},
"getSubscription" => {
method: "GET",
path: "/api/v1/subscriptions/{id}",
auth: "bearer",
summary: "Get a subscription record",
success: { 200 => "json" }
},
"getSubscriptionSettlement" => {
method: "GET",
path: "/api/v1/reports/subscription-settlement",
auth: "bearer",
summary: "Get subscription or order settlement summary",
success: { 200 => "json" }
},
"getUsageSummary" => {
method: "GET",
path: "/api/v1/reports/usage-summary",
auth: "bearer",
summary: "Get grouped usage totals",
success: { 200 => "json" }
},
"getWebhookEndpoint" => {
method: "GET",
path: "/api/v1/webhooks/{id}",
auth: "bearer",
summary: "Get a webhook endpoint",
success: { 200 => "json" }
},
"getWebhookHealth" => {
method: "GET",
path: "/api/v1/ops/webhook-health",
auth: "bearer",
summary: "Get webhook queue and failure health",
success: { 200 => "json" }
},
"health" => {
method: "GET",
path: "/health",
auth: "none",
summary: "Hosted-safe liveness probe",
success: { 200 => "json" }
},
"healthz" => {
method: "GET",
path: "/healthz",
auth: "none",
summary: "Liveness probe",
success: { 200 => "json" }
},
"heartbeatFloatingLicense" => {
method: "POST",
path: "/api/v1/license/floating/heartbeat",
auth: "license",
summary: "Extend a floating lease before it expires",
success: { 200 => "json" }
},
"issueOfflineLicense" => {
method: "POST",
path: "/api/v1/license/offline",
auth: "license",
summary: "Issue an encrypted offline license envelope for a bound device",
success: { 200 => "json" }
},
"listAPIKeys" => {
method: "GET",
path: "/api/v1/api-keys",
auth: "bearer",
summary: "List management API keys",
success: { 200 => "json" }
},
"listActivities" => {
method: "GET",
path: "/api/v1/activities",
auth: "bearer",
summary: "List normalized reporting activities",
success: { 200 => "json" }
},
"listCustomerCustomFieldValues" => {
method: "GET",
path: "/api/v1/customers/{id}/custom-fields",
auth: "bearer",
summary: "List customer custom field values",
success: { 200 => "json" }
},
"listCustomers" => {
method: "GET",
path: "/api/v1/customers",
auth: "bearer",
summary: "List customers",
success: { 200 => "json" }
},
"listEvents" => {
method: "GET",
path: "/api/v1/events",
auth: "bearer",
summary: "List audit-backed event records",
success: { 200 => "json" }
},
"listFeaturesByProduct" => {
method: "GET",
path: "/api/v1/products/{id}/features",
auth: "bearer",
summary: "List features for a product",
success: { 200 => "json" }
},
"listLicenseCustomFieldValues" => {
method: "GET",
path: "/api/v1/licenses/{id}/custom-fields",
auth: "bearer",
summary: "List license custom field values",
success: { 200 => "json" }
},
"listLicenseDevices" => {
method: "GET",
path: "/api/v1/licenses/{id}/devices",
auth: "bearer",
summary: "List devices for a license",
success: { 200 => "json" }
},
"listLicenseFeatures" => {
method: "GET",
path: "/api/v1/licenses/{id}/features",
auth: "bearer",
summary: "List assigned features for a license",
success: { 200 => "json" }
},
"listLicenses" => {
method: "GET",
path: "/api/v1/licenses",
auth: "bearer",
summary: "List licenses",
success: { 200 => "json" }
},
"listPoliciesByProduct" => {
method: "GET",
path: "/api/v1/products/{id}/policies",
auth: "bearer",
summary: "List policies for a product",
success: { 200 => "json" }
},
"listProductCustomFieldDefinitions" => {
method: "GET",
path: "/api/v1/products/{id}/custom-fields",
auth: "bearer",
summary: "List product custom field definitions",
success: { 200 => "json" }
},
"listProductOrders" => {
method: "GET",
path: "/api/v1/products/{id}/orders",
auth: "bearer",
summary: "List orders for a product",
success: { 200 => "json" }
},
"listProductSubscriptions" => {
method: "GET",
path: "/api/v1/products/{id}/subscriptions",
auth: "bearer",
summary: "List subscriptions for a product",
success: { 200 => "json" }
},
"listProductVersions" => {
method: "GET",
path: "/api/v1/products/{id}/versions",
auth: "bearer",
summary: "List product versions",
success: { 200 => "json" }
},
"listProducts" => {
method: "GET",
path: "/api/v1/products",
auth: "bearer",
summary: "List products",
success: { 200 => "json" }
},
"listPublicKeys" => {
method: "GET",
path: "/api/v1/system/public-keys",
auth: "none",
summary: "List public signing keys",
success: { 200 => "json" }
},
"listRuntimeErrorGroups" => {
method: "GET",
path: "/api/v1/ops/runtime-errors",
auth: "bearer",
summary: "List grouped runtime error counts",
success: { 200 => "json" }
},
"listUsageLedger" => {
method: "GET",
path: "/api/v1/reports/usage-ledger",
auth: "bearer",
summary: "List row-level usage ledger entries",
success: { 200 => "json" }
},
"listWebhookEndpoints" => {
method: "GET",
path: "/api/v1/webhooks",
auth: "bearer",
summary: "List webhook endpoints",
success: { 200 => "json" }
},
"readyz" => {
method: "GET",
path: "/readyz",
auth: "none",
summary: "Readiness probe",
success: { 200 => "json", 503 => "json" }
},
"reinstateLicense" => {
method: "POST",
path: "/api/v1/licenses/{id}/reinstate",
auth: "bearer",
summary: "Reinstate a suspended license",
success: { 200 => "json" }
},
"removeLicenseFeature" => {
method: "DELETE",
path: "/api/v1/licenses/{id}/features/{feature_id}",
auth: "bearer",
summary: "Remove a feature assignment from a license",
success: { 204 => "empty" }
},
"renewLicense" => {
method: "POST",
path: "/api/v1/licenses/{id}/renew",
auth: "bearer",
summary: "Renew or extend a renewable license",
success: { 200 => "json" }
},
"resetLicenseDevice" => {
method: "POST",
path: "/api/v1/licenses/{id}/devices/{device_id}/reset",
auth: "bearer",
summary: "Reset a managed device and clear its active state",
success: { 200 => "json" }
},
"resetLicenseUsage" => {
method: "POST",
path: "/api/v1/licenses/{id}/usage/reset",
auth: "bearer",
summary: "Reset or top up metered feature usage",
success: { 200 => "json" }
},
"revokeLicense" => {
method: "POST",
path: "/api/v1/licenses/{id}/revoke",
auth: "bearer",
summary: "Revoke a license and clear active seats",
success: { 200 => "json" }
},
"suspendLicense" => {
method: "POST",
path: "/api/v1/licenses/{id}/suspend",
auth: "bearer",
summary: "Suspend a license",
success: { 200 => "json" }
},
"transferLicense" => {
method: "POST",
path: "/api/v1/licenses/{id}/transfer",
auth: "bearer",
summary: "Transfer a license to another assignee",
success: { 200 => "json" }
},
"updateCustomer" => {
method: "PATCH",
path: "/api/v1/customers/{id}",
auth: "bearer",
summary: "Update a customer",
success: { 200 => "json" }
},
"updateOrder" => {
method: "PATCH",
path: "/api/v1/orders/{id}",
auth: "bearer",
summary: "Update an order record",
success: { 200 => "json" }
},
"updatePolicy" => {
method: "PATCH",
path: "/api/v1/policies/{id}",
auth: "bearer",
summary: "Update a policy",
success: { 200 => "json" }
},
"updateProduct" => {
method: "PATCH",
path: "/api/v1/products/{id}",
auth: "bearer",
summary: "Update a product",
success: { 200 => "json" }
},
"updateProductCustomFieldDefinition" => {
method: "PATCH",
path: "/api/v1/products/{id}/custom-fields/{field_id}",
auth: "bearer",
summary: "Update a product custom field definition",
success: { 200 => "json" }
},
"updateSubscription" => {
method: "PATCH",
path: "/api/v1/subscriptions/{id}",
auth: "bearer",
summary: "Update a subscription record",
success: { 200 => "json" }
},
"updateWebhookEndpoint" => {
method: "PATCH",
path: "/api/v1/webhooks/{id}",
auth: "bearer",
summary: "Update a webhook endpoint",
success: { 200 => "json" }
},
"upsertCustomerCustomFieldValue" => {
method: "PUT",
path: "/api/v1/customers/{id}/custom-fields/{field_id}",
auth: "bearer",
summary: "Upsert a customer custom field value",
success: { 200 => "json", 204 => "empty" }
},
"upsertLicenseCustomFieldValue" => {
method: "PUT",
path: "/api/v1/licenses/{id}/custom-fields/{field_id}",
auth: "bearer",
summary: "Upsert a license custom field value",
success: { 200 => "json", 204 => "empty" }
},
"validateLicense" => {
method: "POST",
path: "/api/v1/license/validate",
auth: "license",
summary: "Validate a bound license and refresh validation timestamps",
success: { 200 => "json" }
},
}.freeze
{
"assignLicenseFeature" => {
method: "POST",
path: "/api/v1/licenses/{id}/features",
scopes: ["license:write"].freeze
},
"blacklistLicenseDevice" => {
method: "POST",
path: "/api/v1/licenses/{id}/devices/{device_id}/blacklist",
scopes: ["device:write"].freeze
},
"createAPIKey" => {
method: "POST",
path: "/api/v1/api-keys",
scopes: ["admin"].freeze
},
"createCustomer" => {
method: "POST",
path: "/api/v1/customers",
scopes: ["admin"].freeze
},
"createFeature" => {
method: "POST",
path: "/api/v1/products/{id}/features",
scopes: ["product:write"].freeze
},
"createLicense" => {
method: "POST",
path: "/api/v1/licenses",
scopes: ["license:write"].freeze
},
"createOrder" => {
method: "POST",
path: "/api/v1/products/{id}/orders",
scopes: ["product:write"].freeze
},
"createPolicy" => {
method: "POST",
path: "/api/v1/products/{id}/policies",
scopes: ["product:write"].freeze
},
"createProduct" => {
method: "POST",
path: "/api/v1/products",
scopes: ["product:write"].freeze
},
"createProductCustomFieldDefinition" => {
method: "POST",
path: "/api/v1/products/{id}/custom-fields",
scopes: ["product:write"].freeze
},
"createProductVersion" => {
method: "POST",
path: "/api/v1/products/{id}/versions",
scopes: ["product:write"].freeze
},
"createReportExport" => {
method: "POST",
path: "/api/v1/reports/exports",
scopes: ["report:export"].freeze
},
"createSubscription" => {
method: "POST",
path: "/api/v1/products/{id}/subscriptions",
scopes: ["product:write"].freeze
},
"createWebhookEndpoint" => {
method: "POST",
path: "/api/v1/webhooks",
scopes: ["webhook:write"].freeze
},
"deleteCustomer" => {
method: "DELETE",
path: "/api/v1/customers/{id}",
scopes: ["admin"].freeze
},
"deletePolicy" => {
method: "DELETE",
path: "/api/v1/policies/{id}",
scopes: ["product:write"].freeze
},
"deleteProduct" => {
method: "DELETE",
path: "/api/v1/products/{id}",
scopes: ["product:write"].freeze
},
"deleteProductCustomFieldDefinition" => {
method: "DELETE",
path: "/api/v1/products/{id}/custom-fields/{field_id}",
scopes: ["product:write"].freeze
},
"deleteWebhookEndpoint" => {
method: "DELETE",
path: "/api/v1/webhooks/{id}",
scopes: ["webhook:write"].freeze
},
"downloadReportExport" => {
method: "GET",
path: "/api/v1/reports/exports/{id}/download",
scopes: ["report:export"].freeze
},
"getCustomer" => {
method: "GET",
path: "/api/v1/customers/{id}",
scopes: ["admin"].freeze
},
"getCustomerSummary" => {
method: "GET",
path: "/api/v1/reports/customer-summary",
scopes: ["report:read"].freeze
},
"getFeature" => {
method: "GET",
path: "/api/v1/features/{id}",
scopes: ["product:read"].freeze
},
"getLicense" => {
method: "GET",
path: "/api/v1/licenses/{id}",
scopes: ["license:read"].freeze
},
"getLicenseAuditReport" => {
method: "GET",
path: "/api/v1/reports/license-audit",
scopes: ["report:read"].freeze
},
"getLicenseDevice" => {
method: "GET",
path: "/api/v1/licenses/{id}/devices/{device_id}",
scopes: ["license:read"].freeze
},
"getOpsSummary" => {
method: "GET",
path: "/api/v1/ops/summary",
scopes: ["ops:read"].freeze
},
"getOrder" => {
method: "GET",
path: "/api/v1/orders/{id}",
scopes: ["product:read"].freeze
},
"getPolicy" => {
method: "GET",
path: "/api/v1/policies/{id}",
scopes: ["product:read"].freeze
},
"getProduct" => {
method: "GET",
path: "/api/v1/products/{id}",
scopes: ["product:read"].freeze
},
"getProductCustomFieldDefinition" => {
method: "GET",
path: "/api/v1/products/{id}/custom-fields/{field_id}",
scopes: ["product:read"].freeze
},
"getReportExport" => {
method: "GET",
path: "/api/v1/reports/exports/{id}",
scopes: ["report:export"].freeze
},
"getSubscription" => {
method: "GET",
path: "/api/v1/subscriptions/{id}",
scopes: ["product:read"].freeze
},
"getSubscriptionSettlement" => {
method: "GET",
path: "/api/v1/reports/subscription-settlement",
scopes: ["report:read"].freeze
},
"getUsageSummary" => {
method: "GET",
path: "/api/v1/reports/usage-summary",
scopes: ["report:read"].freeze
},
"getWebhookEndpoint" => {
method: "GET",
path: "/api/v1/webhooks/{id}",
scopes: ["webhook:write"].freeze
},
"getWebhookHealth" => {
method: "GET",
path: "/api/v1/ops/webhook-health",
scopes: ["ops:read"].freeze
},
"listAPIKeys" => {
method: "GET",
path: "/api/v1/api-keys",
scopes: ["admin"].freeze
},
"listActivities" => {
method: "GET",
path: "/api/v1/activities",
scopes: ["report:read"].freeze
},
"listCustomerCustomFieldValues" => {
method: "GET",
path: "/api/v1/customers/{id}/custom-fields",
scopes: ["admin"].freeze
},
"listCustomers" => {
method: "GET",
path: "/api/v1/customers",
scopes: ["admin"].freeze
},
"listEvents" => {
method: "GET",
path: "/api/v1/events",
scopes: ["event:read"].freeze
},
"listFeaturesByProduct" => {
method: "GET",
path: "/api/v1/products/{id}/features",
scopes: ["product:read"].freeze
},
"listLicenseCustomFieldValues" => {
method: "GET",
path: "/api/v1/licenses/{id}/custom-fields",
scopes: ["license:read"].freeze
},
"listLicenseDevices" => {
method: "GET",
path: "/api/v1/licenses/{id}/devices",
scopes: ["license:read"].freeze
},
"listLicenseFeatures" => {
method: "GET",
path: "/api/v1/licenses/{id}/features",
scopes: ["license:read"].freeze
},
"listLicenses" => {
method: "GET",
path: "/api/v1/licenses",
scopes: ["license:read"].freeze
},
"listPoliciesByProduct" => {
method: "GET",
path: "/api/v1/products/{id}/policies",
scopes: ["product:read"].freeze
},
"listProductCustomFieldDefinitions" => {
method: "GET",
path: "/api/v1/products/{id}/custom-fields",
scopes: ["product:read"].freeze
},
"listProductOrders" => {
method: "GET",
path: "/api/v1/products/{id}/orders",
scopes: ["product:read"].freeze
},
"listProductSubscriptions" => {
method: "GET",
path: "/api/v1/products/{id}/subscriptions",
scopes: ["product:read"].freeze
},
"listProductVersions" => {
method: "GET",
path: "/api/v1/products/{id}/versions",
scopes: ["product:read"].freeze
},
"listProducts" => {
method: "GET",
path: "/api/v1/products",
scopes: ["product:read"].freeze
},
"listRuntimeErrorGroups" => {
method: "GET",
path: "/api/v1/ops/runtime-errors",
scopes: ["ops:read"].freeze
},
"listUsageLedger" => {
method: "GET",
path: "/api/v1/reports/usage-ledger",
scopes: ["report:read"].freeze
},
"listWebhookEndpoints" => {
method: "GET",
path: "/api/v1/webhooks",
scopes: ["webhook:write"].freeze
},
"reinstateLicense" => {
method: "POST",
path: "/api/v1/licenses/{id}/reinstate",
scopes: ["license:write"].freeze
},
"removeLicenseFeature" => {
method: "DELETE",
path: "/api/v1/licenses/{id}/features/{feature_id}",
scopes: ["license:write"].freeze
},
"renewLicense" => {
method: "POST",
path: "/api/v1/licenses/{id}/renew",
scopes: ["license:write"].freeze
},
"resetLicenseDevice" => {
method: "POST",
path: "/api/v1/licenses/{id}/devices/{device_id}/reset",
scopes: ["device:write"].freeze
},
"resetLicenseUsage" => {
method: "POST",
path: "/api/v1/licenses/{id}/usage/reset",
scopes: ["license:write"].freeze
},
"revokeLicense" => {
method: "POST",
path: "/api/v1/licenses/{id}/revoke",
scopes: ["license:write"].freeze
},
"suspendLicense" => {
method: "POST",
path: "/api/v1/licenses/{id}/suspend",
scopes: ["license:write"].freeze
},
"transferLicense" => {
method: "POST",
path: "/api/v1/licenses/{id}/transfer",
scopes: ["license:write"].freeze
},
"updateCustomer" => {
method: "PATCH",
path: "/api/v1/customers/{id}",
scopes: ["admin"].freeze
},
"updateOrder" => {
method: "PATCH",
path: "/api/v1/orders/{id}",
scopes: ["product:write"].freeze
},
"updatePolicy" => {
method: "PATCH",
path: "/api/v1/policies/{id}",
scopes: ["product:write"].freeze
},
"updateProduct" => {
method: "PATCH",
path: "/api/v1/products/{id}",
scopes: ["product:write"].freeze
},
"updateProductCustomFieldDefinition" => {
method: "PATCH",
path: "/api/v1/products/{id}/custom-fields/{field_id}",
scopes: ["product:write"].freeze
},
"updateSubscription" => {
method: "PATCH",
path: "/api/v1/subscriptions/{id}",
scopes: ["product:write"].freeze
},
"updateWebhookEndpoint" => {
method: "PATCH",
path: "/api/v1/webhooks/{id}",
scopes: ["webhook:write"].freeze
},
"upsertCustomerCustomFieldValue" => {
method: "PUT",
path: "/api/v1/customers/{id}/custom-fields/{field_id}",
scopes: ["admin"].freeze
},
"upsertLicenseCustomFieldValue" => {
method: "PUT",
path: "/api/v1/licenses/{id}/custom-fields/{field_id}",
scopes: ["license:write"].freeze
},
}.freeze