Applies a catalog snapshot to the current tenant. With dryRun set to `true` the whole import runs and is then rolled back, so the response reports what would happen — including skips caused by real constraint checks — without persisting.
const url = 'https://example.com/api/v1/provision/admin/catalog/import?dryRun=false&conflictMode=CreateOrUpdate';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"formatVersion":"example","exportedAt":"2026-04-15T12:00:00Z","sourceTenantId":"example","scope":["example"],"counts":{"additionalProperty":1},"references":{"additionalProperty":{"kind":"Product","naturalKey":{"productCode":"example","productVersion":"example","featureCode":"example","metricName":"example","code":"example","name":"example","version":"example","scope":"example"},"presence":"Explicit","referencedBy":["example"]}},"warnings":[{"code":"example","key":"example","message":"example"}],"tags":[{"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","scope":"Product","name":"example","color":"example"}],"products":[{"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","status":"Draft","providerId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","name":"example","description":"example","productCode":"example","productVersion":"example","expirationDate":"2026-04-15T12:00:00Z","externalId":"example","tags":["example"],"features":[{"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","featureCatalogId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","featureCode":"example","moduleName":"example","name":"example","description":"example","usageMetric":"example","units":"example","featureType":"Boolean","enumOptions":[{"value":"example","description":"example"}],"value":"example","isEnabled":true,"includeInLicenseToken":true,"isAvailableDuringTrialPeriod":true,"isAvailableDuringGracePeriod":true,"isPaidFeature":true,"canModifyValueOnEntitlement":true,"meterAggregationType":"CumulativeCounter","visibility":"Public","sortOrder":1,"isDeleted":true,"creationTimeStamp":"2026-04-15T12:00:00Z","lastUpdateTimeStamp":"2026-04-15T12:00:00Z","revisionNumber":1}],"monitoredAssets":[{"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","entitlementId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","productId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","metricName":"example","name":"example","description":"example","unit":"example","category":"example","tags":["example"],"numberFormat":"example","metricType":"CumulativeCounter","meteredUsageId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","meteredUsage":{"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","suspendedUntilAt":"2026-04-15T12:00:00Z","lastReportedOverageSeverityStatus":"None","usageTiers":[{"startUsage":1,"startPercentage":1,"endUsage":1,"endPercentage":1,"baseCredits":1,"creditsPerUnitOfConsumption":1,"name":"example","quotaUsageLevel":"None","quotaUsagePolicy":"None","fundingBalanceMetric":"example"}],"consumptionPeriod":"example","periodAnchor":"Calendar","accumulationMethod":"Sliced"},"balanceUsageId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","balanceUsage":{"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","name":"example","description":"example","creditsUsed":1,"totalCredits":1,"cumulativeCreditsUsed":1,"unfundedCredits":1,"lastUnfundedAt":"2026-04-15T12:00:00Z","unit":"example","numberFormat":"example","lastDeposit":"2026-04-15T12:00:00Z","usageQuota":[{"endUsage":1,"name":"example","quotaUsageLevel":"None"}],"suspendedUntilAt":"2026-04-15T12:00:00Z","overageSeverityStatus":"None","initialCreditAmount":1,"isUnlimitedCredits":true,"autoBalanceCronSchedule":"example","lastAutoBalanceDate":"2026-04-15T12:00:00Z","shouldAutoBalanceTransferCurrentCredits":true,"maxAutoBalanceCreditTransferAmount":1,"autoBalanceCreditAmount":1},"allowedBackDatingTolerance":"example"}],"metrics":[{"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","productId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","metricName":"example","name":"example","description":"example","metricType":"CumulativeCounter","unit":"example","category":"example","numberFormat":"example"}],"propertyValues":{"additionalProperty":{"key":"example","value":"example","metadata":[{"key":"example","value":"example"}],"visibility":"Private"}},"isDeleted":true,"createdAt":"2026-04-15T12:00:00Z","updatedAt":"2026-04-15T12:00:00Z","revisionNumber":1,"isLocked":true,"applicationScopes":["example"],"parentProductId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","referencedBy":{"entitlements":1,"offers":1,"suites":1,"planSets":1,"features":{"products":1,"entitlements":1,"offers":1,"planSets":1,"addOns":1,"ratingCampaigns":1}}}],"featureCatalog":[{"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","productId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","featureCode":"example","name":"example","units":"example","metricName":"example","featureType":"Boolean","lifecycleStatus":"Draft","visibility":"Public","meterAggregationType":"CumulativeCounter","valueScore":1,"enumOptions":[{"value":"example","description":"example"}],"tags":["example"],"isDeleted":true,"creationTimeStamp":"2026-04-15T12:00:00Z","lastUpdateTimeStamp":"2026-04-15T12:00:00Z","revisionNumber":1,"referencedBy":{"products":1,"entitlements":1,"offers":1,"planSets":1,"addOns":1,"ratingCampaigns":1}}],"monitoredAssets":[{"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","entitlementId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","productId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","metricName":"example","name":"example","description":"example","unit":"example","category":"example","tags":["example"],"numberFormat":"example","metricType":"CumulativeCounter","meteredUsageId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","meteredUsage":{"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","suspendedUntilAt":"2026-04-15T12:00:00Z","lastReportedOverageSeverityStatus":"None","usageTiers":[{"startUsage":1,"startPercentage":1,"endUsage":1,"endPercentage":1,"baseCredits":1,"creditsPerUnitOfConsumption":1,"name":"example","quotaUsageLevel":"None","quotaUsagePolicy":"None","fundingBalanceMetric":"example"}],"consumptionPeriod":"example","periodAnchor":"Calendar","accumulationMethod":"Sliced"},"balanceUsageId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","balanceUsage":{"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","name":"example","description":"example","creditsUsed":1,"totalCredits":1,"cumulativeCreditsUsed":1,"unfundedCredits":1,"lastUnfundedAt":"2026-04-15T12:00:00Z","unit":"example","numberFormat":"example","lastDeposit":"2026-04-15T12:00:00Z","usageQuota":[{"endUsage":1,"name":"example","quotaUsageLevel":"None"}],"suspendedUntilAt":"2026-04-15T12:00:00Z","overageSeverityStatus":"None","initialCreditAmount":1,"isUnlimitedCredits":true,"autoBalanceCronSchedule":"example","lastAutoBalanceDate":"2026-04-15T12:00:00Z","shouldAutoBalanceTransferCurrentCredits":true,"maxAutoBalanceCreditTransferAmount":1,"autoBalanceCreditAmount":1},"allowedBackDatingTolerance":"example"}],"suites":[{"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","code":"example","name":"example","description":"example","members":[{"productId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","productCode":"example","productName":"example","sortOrder":1}],"isImplicit":true}],"plans":[{"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","suiteId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","name":"example","description":"example","status":"Draft","revisionDate":"2026-04-15T12:00:00Z","plans":[{"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","name":"example","description":"example","sortOrder":1,"pricingMode":"Absolute","monthlyPrice":1,"currency":"example","relativeWeight":1,"lineItems":[{"productId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","included":true,"featureValues":[{"featureCode":"example","metricName":"example","featureName":"example","units":"example","enforcementType":"SingleValue","value":"example","usageTiers":[{"startUsage":1,"startPercentage":1,"endUsage":1,"endPercentage":1,"baseCredits":1,"creditsPerUnitOfConsumption":1,"name":"example","quotaUsageLevel":"None","quotaUsagePolicy":"None","fundingBalanceMetric":"example"}]}]}]}]}],"addOns":[{"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","suiteId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","code":"example","name":"example","description":"example","status":"Draft","features":[{"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","productId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","featureCode":"example","name":"example","units":"example","metricName":"example","featureType":"Boolean","lifecycleStatus":"Draft","visibility":"Public","meterAggregationType":"CumulativeCounter","valueScore":1,"enumOptions":[{"value":"example","description":"example"}],"tags":["example"],"isDeleted":true,"creationTimeStamp":"2026-04-15T12:00:00Z","lastUpdateTimeStamp":"2026-04-15T12:00:00Z","revisionNumber":1,"referencedBy":{"products":1,"entitlements":1,"offers":1,"planSets":1,"addOns":1,"ratingCampaigns":1}}],"featureValues":[{"featureCode":"example","value":"example","usageTiers":[{"startUsage":1,"startPercentage":1,"endUsage":1,"endPercentage":1,"baseCredits":1,"creditsPerUnitOfConsumption":1,"name":"example","quotaUsageLevel":"None","quotaUsagePolicy":"None","fundingBalanceMetric":"example"}],"planTargets":["example"],"operation":"Replace"}],"referencedBy":{"entitlements":1,"offers":1}}],"entitlementOffers":[{"licenseTermsUrl":"example","description":"example","name":"example","version":"example","customerContactEmail":"example","customerContactName":"example","status":"Draft","subscriptionStatus":"Pending","licenseKey":"example","notValidBeforeDateTime":"2026-04-15T12:00:00Z","expirationDateTime":"2026-04-15T12:00:00Z","isEntitlementTrial":true,"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","isOffer":true,"issueOnUserRegistration":true,"allowAnonymousTry":true,"consumersMayGrantCredits":true,"isAnonymousTry":true,"isPlatformOffer":true,"convertedToEntitlementId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","anonymousTryIssuedAt":"2026-04-15T12:00:00Z","anonymousTryPurgeDueAt":"2026-04-15T12:00:00Z","sourceOfferId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","originOfferId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","products":[{"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","status":"Draft","providerId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","name":"example","description":"example","productCode":"example","productVersion":"example","expirationDate":"2026-04-15T12:00:00Z","externalId":"example","tags":["example"],"features":[{"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","featureCatalogId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","featureCode":"example","moduleName":"example","name":"example","description":"example","usageMetric":"example","units":"example","featureType":"Boolean","enumOptions":[{"value":"example","description":"example"}],"value":"example","isEnabled":true,"includeInLicenseToken":true,"isAvailableDuringTrialPeriod":true,"isAvailableDuringGracePeriod":true,"isPaidFeature":true,"canModifyValueOnEntitlement":true,"meterAggregationType":"CumulativeCounter","visibility":"Public","sortOrder":1,"isDeleted":true,"creationTimeStamp":"2026-04-15T12:00:00Z","lastUpdateTimeStamp":"2026-04-15T12:00:00Z","revisionNumber":1}],"monitoredAssets":[{"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","entitlementId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","productId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","metricName":"example","name":"example","description":"example","unit":"example","category":"example","tags":["example"],"numberFormat":"example","metricType":"CumulativeCounter","meteredUsageId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","meteredUsage":{"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","suspendedUntilAt":"2026-04-15T12:00:00Z","lastReportedOverageSeverityStatus":"None","usageTiers":[{"startUsage":1,"startPercentage":1,"endUsage":1,"endPercentage":1,"baseCredits":1,"creditsPerUnitOfConsumption":1,"name":"example","quotaUsageLevel":"None","quotaUsagePolicy":"None","fundingBalanceMetric":"example"}],"consumptionPeriod":"example","periodAnchor":"Calendar","accumulationMethod":"Sliced"},"balanceUsageId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","balanceUsage":{"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","name":"example","description":"example","creditsUsed":1,"totalCredits":1,"cumulativeCreditsUsed":1,"unfundedCredits":1,"lastUnfundedAt":"2026-04-15T12:00:00Z","unit":"example","numberFormat":"example","lastDeposit":"2026-04-15T12:00:00Z","usageQuota":[{"endUsage":1,"name":"example","quotaUsageLevel":"None"}],"suspendedUntilAt":"2026-04-15T12:00:00Z","overageSeverityStatus":"None","initialCreditAmount":1,"isUnlimitedCredits":true,"autoBalanceCronSchedule":"example","lastAutoBalanceDate":"2026-04-15T12:00:00Z","shouldAutoBalanceTransferCurrentCredits":true,"maxAutoBalanceCreditTransferAmount":1,"autoBalanceCreditAmount":1},"allowedBackDatingTolerance":"example"}],"metrics":[{"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","productId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","metricName":"example","name":"example","description":"example","metricType":"CumulativeCounter","unit":"example","category":"example","numberFormat":"example"}],"propertyValues":{"additionalProperty":{"key":"example","value":"example","metadata":[{"key":"example","value":"example"}],"visibility":"Private"}},"isDeleted":true,"createdAt":"2026-04-15T12:00:00Z","updatedAt":"2026-04-15T12:00:00Z","revisionNumber":1,"isLocked":true,"applicationScopes":["example"],"parentProductId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","referencedBy":{"entitlements":1,"offers":1,"suites":1,"planSets":1,"features":{"products":1,"entitlements":1,"offers":1,"planSets":1,"addOns":1,"ratingCampaigns":1}}}],"features":[{"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","featureCode":"example","productId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","moduleName":"example","name":"example","description":"example","value":"example","isEnabled":true,"isAvailableDuringTrialPeriod":true,"isAvailableDuringGracePeriod":true,"isPaidFeature":true,"canModifyValueOnEntitlement":true,"includeInLicenseToken":true,"meteredAssetId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","featureExpiration":"2026-04-15T12:00:00Z","catalogLifecycleStatus":"Draft"}],"createdAt":"2026-04-15T12:00:00Z","updatedAt":"2026-04-15T12:00:00Z","customerId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","activationPolicy":{"requiredAuthenticationLevel":"Default","requireNewUserVerification":true,"requireProductCode":true,"requireActivationWorkflow":true,"requireOrganizationGroupMember":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","allowedIpCidr":["example"],"requirePreConfiguredDeviceIdentification":true,"requiredDeviceIdentificationSignatureLength":1},"keyIssuancePolicy":{"enabled":true,"template":"example","alphabet":"CrockfordBase32","customAlphabet":"example","caseStyle":"Upper","checksum":"None","sequenceScope":"Entitlement","sequenceStart":1,"collisionRetryLimit":1,"normalizeStripSeparators":true,"normalizeCaseInsensitive":true,"normalizeMapConfusables":true,"sequenceCurrent":1},"claimBasedActivation":{"leaseTime":"example","gracePeriod":"example","numberOfSeats":1,"isFloatingLicense":true,"allowOffLineUse":true,"fingerprintingMethod":"example","componentMatchingStrategy":"MatchAll"},"timeRestrictedActivationPolicy":{"notValidBeforeTimestamp":"2026-04-15T12:00:00Z","notValidAfterTimestamp":"2026-04-15T12:00:00Z","activationPeriod":"example","allowedHours":{"allowedDays":["Sunday"],"dailyWindowStart":"example","dailyWindowEnd":"example","timeZoneId":"example"}},"trialActivationPolicy":{"trialPeriod":"example","cannotActivateBeforeTimestamp":"2026-04-15T12:00:00Z","notValidAfterTimestamp":"2026-04-15T12:00:00Z","trialEndsAt":"2026-04-15T12:00:00Z","trialPeriodStartsAfterFirstActivation":true,"trialPlanSetId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","trialPlanName":"example"},"subscriptionPolicy":{"renewPeriod":"example","renewInterval":1,"cannotActivateBeforeTimestamp":"2026-04-15T12:00:00Z","notValidAfterTimestamp":"2026-04-15T12:00:00Z","isSubscriptionActive":true,"subscriptionPeriodsLeft":1,"softEnforcement":true,"nextRenewalTimeStamp":"2026-04-15T12:00:00Z"},"anonymousTryPolicy":{"lifetime":"example","purgeAfter":"example","tryCode":"example","tryPlanName":"example","issuanceBudget":{"window":"example","perWindow":1,"perIpHashPerWindow":1,"maxLiveClones":1}},"orderId":"example","reference":"example","externalReference":"example","customerExternalReference":"example","metadata":{"additionalProperty":"example"},"billing":{"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","entitlementId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","provider":"example","mode":"ProviderManaged","modeReason":"example","method":"Unspecified","interval":"Unspecified","amount":1,"currency":"example","providerCustomerReference":"example","providerSubscriptionReference":"example","billingReference":"example","notes":"example","contactName":"example","contactEmail":"example","contactPhone":"example","addressLine1":"example","addressLine2":"example","postalCode":"example","city":"example","stateOrProvince":"example","countryCode":"example","details":{"additionalProperty":"example"},"state":"Unknown","stateObservedAt":"2026-04-15T12:00:00Z","currentPeriodEnd":"2026-04-15T12:00:00Z","pastDueSince":"2026-04-15T12:00:00Z","lapsedPendingSince":"2026-04-15T12:00:00Z","lapsedAt":"2026-04-15T12:00:00Z","createdAt":"2026-04-15T12:00:00Z","updatedAt":"2026-04-15T12:00:00Z"},"assignedPlanSetId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","assignedPlanName":"example","governingSuiteId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","temporaryOverride":{"planSetId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","planName":"example","validFromUtc":"2026-04-15T12:00:00Z","validUntilUtc":"2026-04-15T12:00:00Z","reason":"example","campaignId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","sourceOfferId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","previousPlanSetId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","previousPlanName":"example"},"promotion":{"planSetId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","planName":"example","startsAt":"2026-04-15T12:00:00Z","endsAt":"2026-04-15T12:00:00Z","campaignId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","reason":"example"},"tags":["example"],"applicationScopes":["example"],"effectiveApplicationScopes":["example"],"planAssignmentHistory":[{"changedAt":"2026-04-15T12:00:00Z","previousPlanSetId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","previousPlanName":"example","newPlanSetId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","newPlanName":"example","source":"example"}],"referencedBy":{"entitlements":1,"ratingCampaigns":1,"activeLicenses":1},"transferCount":1}],"ratingCampaigns":[{"id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","name":"example","description":"example","isEnabled":true,"startsAt":"2026-04-15T12:00:00Z","endsAt":"2026-04-15T12:00:00Z","isRunning":true,"targets":[{"featureCatalogId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","featureCode":"example","featureName":"example","question":"example","priority":1}],"offers":[{"offerId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","name":"example","version":"example"}],"creationTimeStamp":"2026-04-15T12:00:00Z","lastUpdateTimeStamp":"2026-04-15T12:00:00Z","revisionNumber":1}]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url 'https://example.com/api/v1/provision/admin/catalog/import?dryRun=false&conflictMode=CreateOrUpdate' \ --header 'Content-Type: application/json' \ --data '{ "formatVersion": "example", "exportedAt": "2026-04-15T12:00:00Z", "sourceTenantId": "example", "scope": [ "example" ], "counts": { "additionalProperty": 1 }, "references": { "additionalProperty": { "kind": "Product", "naturalKey": { "productCode": "example", "productVersion": "example", "featureCode": "example", "metricName": "example", "code": "example", "name": "example", "version": "example", "scope": "example" }, "presence": "Explicit", "referencedBy": [ "example" ] } }, "warnings": [ { "code": "example", "key": "example", "message": "example" } ], "tags": [ { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "scope": "Product", "name": "example", "color": "example" } ], "products": [ { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "status": "Draft", "providerId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "name": "example", "description": "example", "productCode": "example", "productVersion": "example", "expirationDate": "2026-04-15T12:00:00Z", "externalId": "example", "tags": [ "example" ], "features": [ { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "featureCatalogId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "featureCode": "example", "moduleName": "example", "name": "example", "description": "example", "usageMetric": "example", "units": "example", "featureType": "Boolean", "enumOptions": [ { "value": "example", "description": "example" } ], "value": "example", "isEnabled": true, "includeInLicenseToken": true, "isAvailableDuringTrialPeriod": true, "isAvailableDuringGracePeriod": true, "isPaidFeature": true, "canModifyValueOnEntitlement": true, "meterAggregationType": "CumulativeCounter", "visibility": "Public", "sortOrder": 1, "isDeleted": true, "creationTimeStamp": "2026-04-15T12:00:00Z", "lastUpdateTimeStamp": "2026-04-15T12:00:00Z", "revisionNumber": 1 } ], "monitoredAssets": [ { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "entitlementId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "productId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "metricName": "example", "name": "example", "description": "example", "unit": "example", "category": "example", "tags": [ "example" ], "numberFormat": "example", "metricType": "CumulativeCounter", "meteredUsageId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "meteredUsage": { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "suspendedUntilAt": "2026-04-15T12:00:00Z", "lastReportedOverageSeverityStatus": "None", "usageTiers": [ { "startUsage": 1, "startPercentage": 1, "endUsage": 1, "endPercentage": 1, "baseCredits": 1, "creditsPerUnitOfConsumption": 1, "name": "example", "quotaUsageLevel": "None", "quotaUsagePolicy": "None", "fundingBalanceMetric": "example" } ], "consumptionPeriod": "example", "periodAnchor": "Calendar", "accumulationMethod": "Sliced" }, "balanceUsageId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "balanceUsage": { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "name": "example", "description": "example", "creditsUsed": 1, "totalCredits": 1, "cumulativeCreditsUsed": 1, "unfundedCredits": 1, "lastUnfundedAt": "2026-04-15T12:00:00Z", "unit": "example", "numberFormat": "example", "lastDeposit": "2026-04-15T12:00:00Z", "usageQuota": [ { "endUsage": 1, "name": "example", "quotaUsageLevel": "None" } ], "suspendedUntilAt": "2026-04-15T12:00:00Z", "overageSeverityStatus": "None", "initialCreditAmount": 1, "isUnlimitedCredits": true, "autoBalanceCronSchedule": "example", "lastAutoBalanceDate": "2026-04-15T12:00:00Z", "shouldAutoBalanceTransferCurrentCredits": true, "maxAutoBalanceCreditTransferAmount": 1, "autoBalanceCreditAmount": 1 }, "allowedBackDatingTolerance": "example" } ], "metrics": [ { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "productId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "metricName": "example", "name": "example", "description": "example", "metricType": "CumulativeCounter", "unit": "example", "category": "example", "numberFormat": "example" } ], "propertyValues": { "additionalProperty": { "key": "example", "value": "example", "metadata": [ { "key": "example", "value": "example" } ], "visibility": "Private" } }, "isDeleted": true, "createdAt": "2026-04-15T12:00:00Z", "updatedAt": "2026-04-15T12:00:00Z", "revisionNumber": 1, "isLocked": true, "applicationScopes": [ "example" ], "parentProductId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "referencedBy": { "entitlements": 1, "offers": 1, "suites": 1, "planSets": 1, "features": { "products": 1, "entitlements": 1, "offers": 1, "planSets": 1, "addOns": 1, "ratingCampaigns": 1 } } } ], "featureCatalog": [ { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "productId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "featureCode": "example", "name": "example", "units": "example", "metricName": "example", "featureType": "Boolean", "lifecycleStatus": "Draft", "visibility": "Public", "meterAggregationType": "CumulativeCounter", "valueScore": 1, "enumOptions": [ { "value": "example", "description": "example" } ], "tags": [ "example" ], "isDeleted": true, "creationTimeStamp": "2026-04-15T12:00:00Z", "lastUpdateTimeStamp": "2026-04-15T12:00:00Z", "revisionNumber": 1, "referencedBy": { "products": 1, "entitlements": 1, "offers": 1, "planSets": 1, "addOns": 1, "ratingCampaigns": 1 } } ], "monitoredAssets": [ { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "entitlementId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "productId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "metricName": "example", "name": "example", "description": "example", "unit": "example", "category": "example", "tags": [ "example" ], "numberFormat": "example", "metricType": "CumulativeCounter", "meteredUsageId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "meteredUsage": { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "suspendedUntilAt": "2026-04-15T12:00:00Z", "lastReportedOverageSeverityStatus": "None", "usageTiers": [ { "startUsage": 1, "startPercentage": 1, "endUsage": 1, "endPercentage": 1, "baseCredits": 1, "creditsPerUnitOfConsumption": 1, "name": "example", "quotaUsageLevel": "None", "quotaUsagePolicy": "None", "fundingBalanceMetric": "example" } ], "consumptionPeriod": "example", "periodAnchor": "Calendar", "accumulationMethod": "Sliced" }, "balanceUsageId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "balanceUsage": { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "name": "example", "description": "example", "creditsUsed": 1, "totalCredits": 1, "cumulativeCreditsUsed": 1, "unfundedCredits": 1, "lastUnfundedAt": "2026-04-15T12:00:00Z", "unit": "example", "numberFormat": "example", "lastDeposit": "2026-04-15T12:00:00Z", "usageQuota": [ { "endUsage": 1, "name": "example", "quotaUsageLevel": "None" } ], "suspendedUntilAt": "2026-04-15T12:00:00Z", "overageSeverityStatus": "None", "initialCreditAmount": 1, "isUnlimitedCredits": true, "autoBalanceCronSchedule": "example", "lastAutoBalanceDate": "2026-04-15T12:00:00Z", "shouldAutoBalanceTransferCurrentCredits": true, "maxAutoBalanceCreditTransferAmount": 1, "autoBalanceCreditAmount": 1 }, "allowedBackDatingTolerance": "example" } ], "suites": [ { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "code": "example", "name": "example", "description": "example", "members": [ { "productId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "productCode": "example", "productName": "example", "sortOrder": 1 } ], "isImplicit": true } ], "plans": [ { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "suiteId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "name": "example", "description": "example", "status": "Draft", "revisionDate": "2026-04-15T12:00:00Z", "plans": [ { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "name": "example", "description": "example", "sortOrder": 1, "pricingMode": "Absolute", "monthlyPrice": 1, "currency": "example", "relativeWeight": 1, "lineItems": [ { "productId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "included": true, "featureValues": [ { "featureCode": "example", "metricName": "example", "featureName": "example", "units": "example", "enforcementType": "SingleValue", "value": "example", "usageTiers": [ { "startUsage": 1, "startPercentage": 1, "endUsage": 1, "endPercentage": 1, "baseCredits": 1, "creditsPerUnitOfConsumption": 1, "name": "example", "quotaUsageLevel": "None", "quotaUsagePolicy": "None", "fundingBalanceMetric": "example" } ] } ] } ] } ] } ], "addOns": [ { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "suiteId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "code": "example", "name": "example", "description": "example", "status": "Draft", "features": [ { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "productId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "featureCode": "example", "name": "example", "units": "example", "metricName": "example", "featureType": "Boolean", "lifecycleStatus": "Draft", "visibility": "Public", "meterAggregationType": "CumulativeCounter", "valueScore": 1, "enumOptions": [ { "value": "example", "description": "example" } ], "tags": [ "example" ], "isDeleted": true, "creationTimeStamp": "2026-04-15T12:00:00Z", "lastUpdateTimeStamp": "2026-04-15T12:00:00Z", "revisionNumber": 1, "referencedBy": { "products": 1, "entitlements": 1, "offers": 1, "planSets": 1, "addOns": 1, "ratingCampaigns": 1 } } ], "featureValues": [ { "featureCode": "example", "value": "example", "usageTiers": [ { "startUsage": 1, "startPercentage": 1, "endUsage": 1, "endPercentage": 1, "baseCredits": 1, "creditsPerUnitOfConsumption": 1, "name": "example", "quotaUsageLevel": "None", "quotaUsagePolicy": "None", "fundingBalanceMetric": "example" } ], "planTargets": [ "example" ], "operation": "Replace" } ], "referencedBy": { "entitlements": 1, "offers": 1 } } ], "entitlementOffers": [ { "licenseTermsUrl": "example", "description": "example", "name": "example", "version": "example", "customerContactEmail": "example", "customerContactName": "example", "status": "Draft", "subscriptionStatus": "Pending", "licenseKey": "example", "notValidBeforeDateTime": "2026-04-15T12:00:00Z", "expirationDateTime": "2026-04-15T12:00:00Z", "isEntitlementTrial": true, "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "isOffer": true, "issueOnUserRegistration": true, "allowAnonymousTry": true, "consumersMayGrantCredits": true, "isAnonymousTry": true, "isPlatformOffer": true, "convertedToEntitlementId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "anonymousTryIssuedAt": "2026-04-15T12:00:00Z", "anonymousTryPurgeDueAt": "2026-04-15T12:00:00Z", "sourceOfferId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "originOfferId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "products": [ { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "status": "Draft", "providerId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "name": "example", "description": "example", "productCode": "example", "productVersion": "example", "expirationDate": "2026-04-15T12:00:00Z", "externalId": "example", "tags": [ "example" ], "features": [ { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "featureCatalogId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "featureCode": "example", "moduleName": "example", "name": "example", "description": "example", "usageMetric": "example", "units": "example", "featureType": "Boolean", "enumOptions": [ { "value": "example", "description": "example" } ], "value": "example", "isEnabled": true, "includeInLicenseToken": true, "isAvailableDuringTrialPeriod": true, "isAvailableDuringGracePeriod": true, "isPaidFeature": true, "canModifyValueOnEntitlement": true, "meterAggregationType": "CumulativeCounter", "visibility": "Public", "sortOrder": 1, "isDeleted": true, "creationTimeStamp": "2026-04-15T12:00:00Z", "lastUpdateTimeStamp": "2026-04-15T12:00:00Z", "revisionNumber": 1 } ], "monitoredAssets": [ { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "entitlementId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "productId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "metricName": "example", "name": "example", "description": "example", "unit": "example", "category": "example", "tags": [ "example" ], "numberFormat": "example", "metricType": "CumulativeCounter", "meteredUsageId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "meteredUsage": { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "suspendedUntilAt": "2026-04-15T12:00:00Z", "lastReportedOverageSeverityStatus": "None", "usageTiers": [ { "startUsage": 1, "startPercentage": 1, "endUsage": 1, "endPercentage": 1, "baseCredits": 1, "creditsPerUnitOfConsumption": 1, "name": "example", "quotaUsageLevel": "None", "quotaUsagePolicy": "None", "fundingBalanceMetric": "example" } ], "consumptionPeriod": "example", "periodAnchor": "Calendar", "accumulationMethod": "Sliced" }, "balanceUsageId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "balanceUsage": { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "name": "example", "description": "example", "creditsUsed": 1, "totalCredits": 1, "cumulativeCreditsUsed": 1, "unfundedCredits": 1, "lastUnfundedAt": "2026-04-15T12:00:00Z", "unit": "example", "numberFormat": "example", "lastDeposit": "2026-04-15T12:00:00Z", "usageQuota": [ { "endUsage": 1, "name": "example", "quotaUsageLevel": "None" } ], "suspendedUntilAt": "2026-04-15T12:00:00Z", "overageSeverityStatus": "None", "initialCreditAmount": 1, "isUnlimitedCredits": true, "autoBalanceCronSchedule": "example", "lastAutoBalanceDate": "2026-04-15T12:00:00Z", "shouldAutoBalanceTransferCurrentCredits": true, "maxAutoBalanceCreditTransferAmount": 1, "autoBalanceCreditAmount": 1 }, "allowedBackDatingTolerance": "example" } ], "metrics": [ { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "productId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "metricName": "example", "name": "example", "description": "example", "metricType": "CumulativeCounter", "unit": "example", "category": "example", "numberFormat": "example" } ], "propertyValues": { "additionalProperty": { "key": "example", "value": "example", "metadata": [ { "key": "example", "value": "example" } ], "visibility": "Private" } }, "isDeleted": true, "createdAt": "2026-04-15T12:00:00Z", "updatedAt": "2026-04-15T12:00:00Z", "revisionNumber": 1, "isLocked": true, "applicationScopes": [ "example" ], "parentProductId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "referencedBy": { "entitlements": 1, "offers": 1, "suites": 1, "planSets": 1, "features": { "products": 1, "entitlements": 1, "offers": 1, "planSets": 1, "addOns": 1, "ratingCampaigns": 1 } } } ], "features": [ { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "featureCode": "example", "productId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "moduleName": "example", "name": "example", "description": "example", "value": "example", "isEnabled": true, "isAvailableDuringTrialPeriod": true, "isAvailableDuringGracePeriod": true, "isPaidFeature": true, "canModifyValueOnEntitlement": true, "includeInLicenseToken": true, "meteredAssetId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "featureExpiration": "2026-04-15T12:00:00Z", "catalogLifecycleStatus": "Draft" } ], "createdAt": "2026-04-15T12:00:00Z", "updatedAt": "2026-04-15T12:00:00Z", "customerId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "activationPolicy": { "requiredAuthenticationLevel": "Default", "requireNewUserVerification": true, "requireProductCode": true, "requireActivationWorkflow": true, "requireOrganizationGroupMember": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "allowedIpCidr": [ "example" ], "requirePreConfiguredDeviceIdentification": true, "requiredDeviceIdentificationSignatureLength": 1 }, "keyIssuancePolicy": { "enabled": true, "template": "example", "alphabet": "CrockfordBase32", "customAlphabet": "example", "caseStyle": "Upper", "checksum": "None", "sequenceScope": "Entitlement", "sequenceStart": 1, "collisionRetryLimit": 1, "normalizeStripSeparators": true, "normalizeCaseInsensitive": true, "normalizeMapConfusables": true, "sequenceCurrent": 1 }, "claimBasedActivation": { "leaseTime": "example", "gracePeriod": "example", "numberOfSeats": 1, "isFloatingLicense": true, "allowOffLineUse": true, "fingerprintingMethod": "example", "componentMatchingStrategy": "MatchAll" }, "timeRestrictedActivationPolicy": { "notValidBeforeTimestamp": "2026-04-15T12:00:00Z", "notValidAfterTimestamp": "2026-04-15T12:00:00Z", "activationPeriod": "example", "allowedHours": { "allowedDays": [ "Sunday" ], "dailyWindowStart": "example", "dailyWindowEnd": "example", "timeZoneId": "example" } }, "trialActivationPolicy": { "trialPeriod": "example", "cannotActivateBeforeTimestamp": "2026-04-15T12:00:00Z", "notValidAfterTimestamp": "2026-04-15T12:00:00Z", "trialEndsAt": "2026-04-15T12:00:00Z", "trialPeriodStartsAfterFirstActivation": true, "trialPlanSetId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "trialPlanName": "example" }, "subscriptionPolicy": { "renewPeriod": "example", "renewInterval": 1, "cannotActivateBeforeTimestamp": "2026-04-15T12:00:00Z", "notValidAfterTimestamp": "2026-04-15T12:00:00Z", "isSubscriptionActive": true, "subscriptionPeriodsLeft": 1, "softEnforcement": true, "nextRenewalTimeStamp": "2026-04-15T12:00:00Z" }, "anonymousTryPolicy": { "lifetime": "example", "purgeAfter": "example", "tryCode": "example", "tryPlanName": "example", "issuanceBudget": { "window": "example", "perWindow": 1, "perIpHashPerWindow": 1, "maxLiveClones": 1 } }, "orderId": "example", "reference": "example", "externalReference": "example", "customerExternalReference": "example", "metadata": { "additionalProperty": "example" }, "billing": { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "entitlementId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "provider": "example", "mode": "ProviderManaged", "modeReason": "example", "method": "Unspecified", "interval": "Unspecified", "amount": 1, "currency": "example", "providerCustomerReference": "example", "providerSubscriptionReference": "example", "billingReference": "example", "notes": "example", "contactName": "example", "contactEmail": "example", "contactPhone": "example", "addressLine1": "example", "addressLine2": "example", "postalCode": "example", "city": "example", "stateOrProvince": "example", "countryCode": "example", "details": { "additionalProperty": "example" }, "state": "Unknown", "stateObservedAt": "2026-04-15T12:00:00Z", "currentPeriodEnd": "2026-04-15T12:00:00Z", "pastDueSince": "2026-04-15T12:00:00Z", "lapsedPendingSince": "2026-04-15T12:00:00Z", "lapsedAt": "2026-04-15T12:00:00Z", "createdAt": "2026-04-15T12:00:00Z", "updatedAt": "2026-04-15T12:00:00Z" }, "assignedPlanSetId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "assignedPlanName": "example", "governingSuiteId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "temporaryOverride": { "planSetId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "planName": "example", "validFromUtc": "2026-04-15T12:00:00Z", "validUntilUtc": "2026-04-15T12:00:00Z", "reason": "example", "campaignId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "sourceOfferId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "previousPlanSetId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "previousPlanName": "example" }, "promotion": { "planSetId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "planName": "example", "startsAt": "2026-04-15T12:00:00Z", "endsAt": "2026-04-15T12:00:00Z", "campaignId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "reason": "example" }, "tags": [ "example" ], "applicationScopes": [ "example" ], "effectiveApplicationScopes": [ "example" ], "planAssignmentHistory": [ { "changedAt": "2026-04-15T12:00:00Z", "previousPlanSetId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "previousPlanName": "example", "newPlanSetId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "newPlanName": "example", "source": "example" } ], "referencedBy": { "entitlements": 1, "ratingCampaigns": 1, "activeLicenses": 1 }, "transferCount": 1 } ], "ratingCampaigns": [ { "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "name": "example", "description": "example", "isEnabled": true, "startsAt": "2026-04-15T12:00:00Z", "endsAt": "2026-04-15T12:00:00Z", "isRunning": true, "targets": [ { "featureCatalogId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "featureCode": "example", "featureName": "example", "question": "example", "priority": 1 } ], "offers": [ { "offerId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "name": "example", "version": "example" } ], "creationTimeStamp": "2026-04-15T12:00:00Z", "lastUpdateTimeStamp": "2026-04-15T12:00:00Z", "revisionNumber": 1 } ] }'Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Preview only; roll back instead of committing.
How the importer treats an item that already exists in the target tenant.
How to treat items that already exist: CreateOrUpdate (default), CreateOnly,
or UpdateOnly.
Request Bodyrequired
Section titled “Request Bodyrequired”The snapshot to apply.
Portable snapshot of a tenant's catalog. Versioned by string CatalogExportEnvelopeDto.FormatVersion; the major
component gates import compatibility.
Entities reference each other by their source-tenant Guid. Those Guids are meaningless in
another tenant, so every one of them is resolvable through Dictionary<Guid, CatalogReferenceDto> CatalogExportEnvelopeDto.References.
object
Schema version of this envelope. See CatalogFormatVersions.
When the snapshot was taken.
Identifier of the tenant the snapshot was taken from.
Which sections are populated in this snapshot.
Item count per section, keyed by CatalogScopes constant.
object
Source-tenant Guid to portable key, for every cross-section reference in the snapshot.
object
Maps one source-tenant Guid to a portable key. Every cross-section Guid the snapshot contains has an entry, including ones whose target is present — so an importer has exactly one resolution path rather than a Guid path and a key path that disagree.
object
The kind of entity the Guid identifies.
How to find the same entity in another tenant.
object
Owning product code — set for products and for everything scoped to a product.
Owning product version.
Feature code, for feature catalog entries.
Metric name, for monitored assets.
Add-on code.
Name, for plan sets, rating campaigns and entitlement offers.
Version, for entitlement offers.
Vocabulary, for tags. Part of the key rather than a detail: the same name in two scopes is two different tags, so a key without it matches the wrong registry entry.
Whether the entity was selected, pulled in, or is referenced but absent.
Human-readable provenance — the edges that reached this entity, e.g.
add-on "Fleet add-on" → plan set. Empty when it was selected directly.
Non-fatal problems encountered while building the snapshot.
Something the export could not express cleanly. Warnings never block an export.
object
Stable machine-readable code, e.g. ambiguous-natural-key.
The affected entity’s key, when the warning is about one entity.
What the caller should know.
The tag registry. Carries the entries the snapshot’s items quote by name, plus — on a whole-section export — the ones nothing is tagged with, which have no other way to travel.
One entry of the tenant’s tag registry, as a snapshot carries it.
object
Source-tenant registry id. Carried like every other section’s id, so a picker can select one.
The vocabulary this tag belongs to. Half of the tag’s identity: the same name in two vocabularies is two different tags.
Display name. Matched case-insensitively against the target’s registry.
Chip colour as a #rrggbb hex triplet, or null for the default chip colour.
Products. Nested MonitoredAssets are echoed for readability only — the
List<MonitoredAssetDto>? CatalogExportEnvelopeDto.MonitoredAssets section is the authoritative carrier and an importer must
take assets from there, or a shared asset is created twice.
Admin read model of a catalog product: identity (code + version), lifecycle status, features, monitored assets, metrics, and custom properties.
object
Indicates the current product status in its lifecycle.
Unique identifier of the provider associated with this product.
Public-facing name of the product used for display purposes.
Description of the product as displayed in the customer portal.
Unique internal code of the product. Must be unique in combination with string ProductDto.ProductVersion.
Version of the product visible to the end user. Not SemVer: one to four dot-separated numbers (e.g. “1”, “1.2”, “1.2.3.4”), or empty. Prerelease and build suffixes are rejected.
Expiration date, after which the product is no longer available for deployment. Null if no expiration is set.
Optional external identifier, such as a CMS or ERP ID.
Tag names applied to this product, from the tenant’s TagScopeDto.Product vocabulary. Vendor-facing catalog organization only — tags never reach an entitlement snapshot, a license token, or the end-user portal.
Collection of features that define additional functionalities of the product.
A feature as defined on a product: default value, enablement, trial/grace availability, license-token inclusion, and metering configuration. Entitlements inherit these defaults.
object
Data type of a feature’s value; determines how Value strings are interpreted and enforced.
One allowed value of an Enumeration-typed feature.
object
When true, the feature is withheld for the duration of a trial even if enabled.
Who can see a feature.
Where the feature appears among the product’s features. The vendor sets it; every list of a product’s features is ordered by it, so the screens agree with each other.
Assets associated with the product for usage monitoring.
A usage-tracked metric on a product or entitlement. Depending on how it is charged, either AssetMeteredUsageDto? MonitoredAssetDto.MeteredUsage (tiered, period-based metering) or AssetBalanceUsageDto? MonitoredAssetDto.BalanceUsage (prepaid credit balance) is attached.
object
How reported usage values are interpreted and aggregated by the monitoring pipeline.
Admin view of tiered, period-based metering on a monitored asset: the usage tiers, the consumption period they reset on, and how usage accumulates across tiers.
object
Consumption is suspended until this time (e.g. after an overage); null when not suspended.
Severity of consumption relative to the configured usage tiers.
Represents a tier of usage with associated credits and severity status.
object
Gets or sets the start usage for the tier.
Tier start as a percentage of the feature value (percentage-based enforcement).
Gets or sets the end usage for the tier. Nullable.
Tier end as a percentage of the feature value (percentage-based enforcement).
Gets or sets the flat fee credits for the tier.
Gets or sets the credits per unit of consumption for the tier.
Gets or sets the name of the usage tier.
Gets or sets the overage severity status for the tier.
Defines the enforcement behavior applied by the resource controller or interceptor when a specific usage tier threshold is reached. Ordered from least to most restrictive.
Metric name of the credit balance, on the same entitlement, that pays for consumption in this tier. Only meaningful on a tier whose policy is AllowWithOverage: name a balance and every unit past the tier’s start is priced and charged to it on commit, refusing the commit when it cannot be paid for; leave it empty and the overage is allowed and merely reported.
The consumption period the tiers reset on: minute, hour, day,
week, month or year. Blank or unrecognised means the quota never
resets — a lifetime allowance.
Where each window starts. Defaults to PeriodAnchor.Calendar, which is how every meter behaved before this existed.
How periodic consumption is attributed across usage tiers for charging.
Admin view of a prepaid credit balance on a monitored asset: credits available, consumed, quota thresholds, and the automatic re-balance (top-up) schedule.
object
Consumed credits since last deposit. Remaining credits are calculated as TotalCredits - CreditsUsed.
Total available credits.
The total of all credits used over time.
Consumption this balance was asked to pay for and could not: usage the vendor is owed and has not been paid for. Cumulative, and not reduced by a later top-up.
When this balance last failed to cover consumption that had already happened.
A named quota threshold on a credit balance and the severity level it maps to.
object
Remaining-balance threshold for this band: the band applies while the credit balance is below this value, and when several bands match the lowest threshold wins. A matching band at Critical severity blocks further deductions.
Severity of consumption relative to the configured quotas.
Consumption is suspended until this time (e.g. after an overage); null when not suspended.
Severity of consumption relative to the configured quotas.
The credits available when the entitlement is created.
Indicates if the resource has unlimited credits.
Cron schedule for automatic credit balance. The cron syntax consists of five fields separated by spaces:
- Minute (0-59)
- Hour (0-23)
- Day of the Month (1-31)
- Month (1-12 or Jan-Dec)
- Day of the Week (0-6 or Sun-Sat) Special characters:
-
- (asterisk): Represents any value for the field.
- , (comma): Separates multiple values.
-
- (hyphen): Specifies a range of values.
- / (slash): Specifies increments. Example: “0 0 * * *” means “at midnight every day.”
Date and time of the last automatic credit balance.
Indicates if the current credits should be transferred.
Maximum amount of credits that can be transferred automatically.
Amount of credits to balance automatically.
How far in the past a reported usage value’s timestamp may lie and still be accepted.
Lightweight metric definitions for this product.
A lightweight metric definition on a product: the machine name clients report usage under, plus display metadata (name, unit, category, number format).
object
Machine identifier clients report usage under (as opposed to the display string ProductMetricDto.Name).
How reported usage values are interpreted and aggregated by the monitoring pipeline.
Display format hint, e.g. "0" or "0.0".
Custom properties for storing additional information associated with the product.
object
A custom key/value property (e.g. on a product) with optional metadata entries.
object
A key/value metadata entry attached to a PropertyValueDto.
object
Whether a custom property is sent to the application with its license.
Indicates if the product is locked for editing. Locked products cannot be modified.
List of application scopes that are authorized to use this product. Application scopes define which application types or deployment targets can activate this product. If null or empty, any application can use this product (no scope restrictions).
Parent product ID if this product belongs to an inherited version lineage.
What still actively refers to this product. A product is deleted only while it is Draft or archived and nothing active refers to it. Null where the read does not compute it, such as a catalog export or a product embedded in an entitlement.
object
Customer entitlements that carry the product.
Offers that carry the product.
Suites the product is a member of. The suite created behind a product’s own plan sets is not counted here; its plan sets are.
Plan sets scoped to a suite the product is a member of.
What still actively refers to the family’s catalog features, on the family’s last live version only. Deleting that version deletes the features with it, so whatever still uses them keeps the product, as it would keep each feature from its own delete. Each referrer counts once, however many of the features it names, and the product itself is not counted, so their Products count is 0. Null on any other version, and on a product that is neither Draft nor archived, whose delete is refused on its status alone.
object
Products that carry the feature.
Customer entitlements whose features include the code.
Offers whose features include the code.
Plan sets with a plan that sets a value for the code.
Add-ons that grant the feature.
Rating campaigns that ask about the feature.
Feature catalog entries. Carries the fields a product feature’s bare Guid cannot.
A feature definition in a product’s feature catalog: the canonical source for a feature code’s type, allowed values, metering, and visibility. Whether end users are asked to rate a feature is configured separately, per campaign — see RatingCampaignDto.
object
Metric name a Metered feature reports usage under.
Data type of a feature’s value; determines how Value strings are interpreted and enforced.
Lifecycle state of a feature catalog entry.
Who can see a feature.
Relative, unitless value weight used by value-delivered analytics. Null means the feature is not valued yet and contributes nothing. Weights are applied when a report is generated, so changing one re-values history — intended behaviour for a relative measure.
One allowed value of an Enumeration-typed feature.
object
Tag names applied to this entry, from the tenant’s TagScopeDto.FeatureCatalog vocabulary.
What still actively refers to the entry, and so keeps it from being deleted. Null where the read does not compute it.
object
Products that carry the feature.
Customer entitlements whose features include the code.
Offers whose features include the code.
Plan sets with a plan that sets a value for the code.
Add-ons that grant the feature.
Rating campaigns that ask about the feature.
Product-level monitored asset templates, each appearing exactly once.
A usage-tracked metric on a product or entitlement. Depending on how it is charged, either AssetMeteredUsageDto? MonitoredAssetDto.MeteredUsage (tiered, period-based metering) or AssetBalanceUsageDto? MonitoredAssetDto.BalanceUsage (prepaid credit balance) is attached.
object
How reported usage values are interpreted and aggregated by the monitoring pipeline.
Admin view of tiered, period-based metering on a monitored asset: the usage tiers, the consumption period they reset on, and how usage accumulates across tiers.
object
Consumption is suspended until this time (e.g. after an overage); null when not suspended.
Severity of consumption relative to the configured usage tiers.
Represents a tier of usage with associated credits and severity status.
object
Gets or sets the start usage for the tier.
Tier start as a percentage of the feature value (percentage-based enforcement).
Gets or sets the end usage for the tier. Nullable.
Tier end as a percentage of the feature value (percentage-based enforcement).
Gets or sets the flat fee credits for the tier.
Gets or sets the credits per unit of consumption for the tier.
Gets or sets the name of the usage tier.
Gets or sets the overage severity status for the tier.
Defines the enforcement behavior applied by the resource controller or interceptor when a specific usage tier threshold is reached. Ordered from least to most restrictive.
Metric name of the credit balance, on the same entitlement, that pays for consumption in this tier. Only meaningful on a tier whose policy is AllowWithOverage: name a balance and every unit past the tier’s start is priced and charged to it on commit, refusing the commit when it cannot be paid for; leave it empty and the overage is allowed and merely reported.
The consumption period the tiers reset on: minute, hour, day,
week, month or year. Blank or unrecognised means the quota never
resets — a lifetime allowance.
Where each window starts. Defaults to PeriodAnchor.Calendar, which is how every meter behaved before this existed.
How periodic consumption is attributed across usage tiers for charging.
Admin view of a prepaid credit balance on a monitored asset: credits available, consumed, quota thresholds, and the automatic re-balance (top-up) schedule.
object
Consumed credits since last deposit. Remaining credits are calculated as TotalCredits - CreditsUsed.
Total available credits.
The total of all credits used over time.
Consumption this balance was asked to pay for and could not: usage the vendor is owed and has not been paid for. Cumulative, and not reduced by a later top-up.
When this balance last failed to cover consumption that had already happened.
A named quota threshold on a credit balance and the severity level it maps to.
object
Remaining-balance threshold for this band: the band applies while the credit balance is below this value, and when several bands match the lowest threshold wins. A matching band at Critical severity blocks further deductions.
Severity of consumption relative to the configured quotas.
Consumption is suspended until this time (e.g. after an overage); null when not suspended.
Severity of consumption relative to the configured quotas.
The credits available when the entitlement is created.
Indicates if the resource has unlimited credits.
Cron schedule for automatic credit balance. The cron syntax consists of five fields separated by spaces:
- Minute (0-59)
- Hour (0-23)
- Day of the Month (1-31)
- Month (1-12 or Jan-Dec)
- Day of the Week (0-6 or Sun-Sat) Special characters:
-
- (asterisk): Represents any value for the field.
- , (comma): Separates multiple values.
-
- (hyphen): Specifies a range of values.
- / (slash): Specifies increments. Example: “0 0 * * *” means “at midnight every day.”
Date and time of the last automatic credit balance.
Indicates if the current credits should be transferred.
Maximum amount of credits that can be transferred automatically.
Amount of credits to balance automatically.
How far in the past a reported usage value’s timestamp may lie and still be accepted.
Suites in the snapshot. Emitted before plans — a plan set needs its suite.
A suite: an ordered set of member products sold together, and the owner of the usage plan sets (tiers) that configure them.
object
One member product of a suite, in sell order.
object
True for the suite auto-created behind a product the first time it is priced, rather than
one an operator built. Listing excludes these by default; pass includeImplicit to
see them. Becomes false permanently once a second product joins.
Usage plan sets in the snapshot.
A named collection of usage plans (e.g. “My SaaS Plans”).
object
The suite this plan set belongs to. A single-product plan set belongs to that product’s implicit suite-of-one. Which member each tier configures is on the plan’s line items — the set itself names no product.
Lifecycle state of a usage plan set.
A usage plan such as “basic”, “standard”, or “professional”.
object
Whether the plan states its worth in money or in relative units. Every plan in one set
shares a mode — a set is one price list — and a plan carries only its own mode’s fields:
an Absolute plan is refused a RelativeWeight, a Relative plan is refused a
MonthlyPrice or Currency. So nothing ever has to pick a winner
between two answers to “what is this plan worth”.
What the plan charges per month, when PricingMode is
Absolute. Three states: null = not priced yet (missing data —
never treated as free), 0 = free/trial, positive = paid. Revenue reporting excludes
null-priced plans and reports them separately.
ISO 4217 code (e.g. “EUR”). Required when MonthlyPrice is positive, ignored otherwise.
What the plan is worth relative to its siblings, when PricingMode is
Relative — an unbounded weight, not a percentage, so
“Enterprise is 10x Basic” stays expressible and adding a plan never re-keys the others.
Reporting turns weights into a share of the total, so the shares add up on their own.
Three states mirroring MonthlyPrice: null = not weighted yet (never treated
as zero), 0 = carries no weight, positive = counts.
One entry per suite member the tier speaks about.
How one tier lands on one suite member: whether the tier includes that product at all, and — when included — the feature values it stamps for it.
object
The suite member this line item configures. Required on every line item except when creating a plan set for a suite of one, where the server stamps the sole member.
Defines a feature value override for a specific plan tier. Value is stored as string to support bool, enum, string, and json field values.
object
The metric name this feature’s meter is keyed by — the identity every usage read and
usage report must quote. It is NOT the feature code: codes are uppercase
(MIRAGE.IMAGE.RENDERS), metric names are lowercase (mirage.image.renders),
and the meter is resolved by an exact, case-sensitive match. Passing the code where the
metric name belongs silently finds nothing.
The feature’s display name from its catalog entry, for rendering. Server-populated on read alongside string? UsagePlanFeatureValueDto.MetricName and ignored on write; null when the code resolves to no catalog entry.
What the value is counted in (GB, seats, calls), from the feature’s catalog entry. Server-populated on read alongside string? UsagePlanFeatureValueDto.FeatureName and ignored on write; null when the catalog names none.
How a plan enforces a feature’s value.
Represents a tier of usage with associated credits and severity status.
object
Gets or sets the start usage for the tier.
Tier start as a percentage of the feature value (percentage-based enforcement).
Gets or sets the end usage for the tier. Nullable.
Tier end as a percentage of the feature value (percentage-based enforcement).
Gets or sets the flat fee credits for the tier.
Gets or sets the credits per unit of consumption for the tier.
Gets or sets the name of the usage tier.
Gets or sets the overage severity status for the tier.
Defines the enforcement behavior applied by the resource controller or interceptor when a specific usage tier threshold is reached. Ordered from least to most restrictive.
Metric name of the credit balance, on the same entitlement, that pays for consumption in this tier. Only meaningful on a tier whose policy is AllowWithOverage: name a balance and every unit past the tier’s start is priced and charged to it on commit, refusing the commit when it cannot be paid for; leave it empty and the overage is allowed and merely reported.
Add-ons.
An add-on: a named set of feature adjustments, scoped to a suite, that can be granted to entitlements on top of their plan. Scoped to the suite rather than one of its plan-set revisions — revisions fork, the suite is what persists.
object
Lifecycle state of an add-on.
A feature definition in a product’s feature catalog: the canonical source for a feature code’s type, allowed values, metering, and visibility. Whether end users are asked to rate a feature is configured separately, per campaign — see RatingCampaignDto.
object
Metric name a Metered feature reports usage under.
Data type of a feature’s value; determines how Value strings are interpreted and enforced.
Lifecycle state of a feature catalog entry.
Who can see a feature.
Relative, unitless value weight used by value-delivered analytics. Null means the feature is not valued yet and contributes nothing. Weights are applied when a report is generated, so changing one re-values history — intended behaviour for a relative measure.
One allowed value of an Enumeration-typed feature.
object
Tag names applied to this entry, from the tenant’s TagScopeDto.FeatureCatalog vocabulary.
What still actively refers to the entry, and so keeps it from being deleted. Null where the read does not compute it.
object
Products that carry the feature.
Customer entitlements whose features include the code.
Offers whose features include the code.
Plan sets with a plan that sets a value for the code.
Add-ons that grant the feature.
Rating campaigns that ask about the feature.
One feature adjustment an add-on applies, and how it combines with the plan value.
object
Operand for the operation, as a string interpreted per the feature’s data type; unused for Tiered.
Usage tiers applied when AddOnFeatureValueOperationDto AddOnFeatureValueDto.Operation is Tiered.
Represents a tier of usage with associated credits and severity status.
object
Gets or sets the start usage for the tier.
Tier start as a percentage of the feature value (percentage-based enforcement).
Gets or sets the end usage for the tier. Nullable.
Tier end as a percentage of the feature value (percentage-based enforcement).
Gets or sets the flat fee credits for the tier.
Gets or sets the credits per unit of consumption for the tier.
Gets or sets the name of the usage tier.
Gets or sets the overage severity status for the tier.
Defines the enforcement behavior applied by the resource controller or interceptor when a specific usage tier threshold is reached. Ordered from least to most restrictive.
Metric name of the credit balance, on the same entitlement, that pays for consumption in this tier. Only meaningful on a tier whose policy is AllowWithOverage: name a balance and every unit past the tier’s start is priced and charged to it on commit, refusing the commit when it cannot be paid for; leave it empty and the overage is allowed and merely reported.
Plan names this adjustment applies to; empty applies it to every plan.
How an add-on’s feature value combines with the plan-provided value.
What refers to the add-on. Only a Draft add-on nothing refers to can be deleted; any other is archived. Null where the read does not compute it, such as a catalog export.
object
Customer entitlements granted the add-on, including grants since revoked or expired.
Offers that carry a grant of the add-on.
Entitlements marked as offers (IsOffer = true).
The central admin read model for an entitlement: a customer’s grant to use one or more products, carrying lifecycle state, activation/trial/subscription policies, features, plan assignment, and external billing references.
object
Link to the license terms (EULA); empty when there are none. On an offer it is copied onto every entitlement ordered from it; on an entitlement it is sent to the application at every issue and refresh and shown to the customer.
Admin-controlled lifecycle state of an entitlement.
Consumer-facing subscription/lifecycle status, derived server-side from EntitlementLifecycleStatus EntitlementDto.Status, expiration dates, and trial / pause state.
Read-only convenience flag; true when TrialActivationPolicyDto? EntitlementDto.TrialActivationPolicy is set.
On offers: visitors can use the application without an account, on a short-lived license issued per device.
On offers: entitlements issued from the offer may deposit credits into their own balance through the consumer credit-grant route. On an entitlement: the value it was issued with.
Read-only; true when this entitlement is held by a device rather than a person — an anonymous try license. Derived from the assignment, never stored.
Read-only; true on the platform operator’s offer that every new tenant’s platform license is ordered from. It can’t be disabled or archived. Derived, never stored.
On a try license whose device later signed up: the license they were issued. Nothing else carries over — the try license’s usage is purged with it.
Read-only; on a try license, when it was issued to its device. Null on everything else.
Read-only; on a try license, when the platform deletes it — its expiry plus the grace it was issued with, as the purge applies it. Null on everything else, and on a try license that carries no expiry.
Set when this entitlement was auto-issued for a self-service user; carries the source offer’s id.
The offer this entitlement was made from: recorded when it is ordered from an offer — an order, a sign-up, a billing provider’s subscription, a try — and by an admin for one made before that. Null when it was not made from an offer, and always on an offer.
Admin read model of a catalog product: identity (code + version), lifecycle status, features, monitored assets, metrics, and custom properties.
object
Indicates the current product status in its lifecycle.
Unique identifier of the provider associated with this product.
Public-facing name of the product used for display purposes.
Description of the product as displayed in the customer portal.
Unique internal code of the product. Must be unique in combination with string ProductDto.ProductVersion.
Version of the product visible to the end user. Not SemVer: one to four dot-separated numbers (e.g. “1”, “1.2”, “1.2.3.4”), or empty. Prerelease and build suffixes are rejected.
Expiration date, after which the product is no longer available for deployment. Null if no expiration is set.
Optional external identifier, such as a CMS or ERP ID.
Tag names applied to this product, from the tenant’s TagScopeDto.Product vocabulary. Vendor-facing catalog organization only — tags never reach an entitlement snapshot, a license token, or the end-user portal.
Collection of features that define additional functionalities of the product.
A feature as defined on a product: default value, enablement, trial/grace availability, license-token inclusion, and metering configuration. Entitlements inherit these defaults.
object
Data type of a feature’s value; determines how Value strings are interpreted and enforced.
One allowed value of an Enumeration-typed feature.
object
When true, the feature is withheld for the duration of a trial even if enabled.
Who can see a feature.
Where the feature appears among the product’s features. The vendor sets it; every list of a product’s features is ordered by it, so the screens agree with each other.
Assets associated with the product for usage monitoring.
A usage-tracked metric on a product or entitlement. Depending on how it is charged, either AssetMeteredUsageDto? MonitoredAssetDto.MeteredUsage (tiered, period-based metering) or AssetBalanceUsageDto? MonitoredAssetDto.BalanceUsage (prepaid credit balance) is attached.
object
How reported usage values are interpreted and aggregated by the monitoring pipeline.
Admin view of tiered, period-based metering on a monitored asset: the usage tiers, the consumption period they reset on, and how usage accumulates across tiers.
object
Consumption is suspended until this time (e.g. after an overage); null when not suspended.
Severity of consumption relative to the configured usage tiers.
Represents a tier of usage with associated credits and severity status.
object
Gets or sets the start usage for the tier.
Tier start as a percentage of the feature value (percentage-based enforcement).
Gets or sets the end usage for the tier. Nullable.
Tier end as a percentage of the feature value (percentage-based enforcement).
Gets or sets the flat fee credits for the tier.
Gets or sets the credits per unit of consumption for the tier.
Gets or sets the name of the usage tier.
Gets or sets the overage severity status for the tier.
Defines the enforcement behavior applied by the resource controller or interceptor when a specific usage tier threshold is reached. Ordered from least to most restrictive.
Metric name of the credit balance, on the same entitlement, that pays for consumption in this tier. Only meaningful on a tier whose policy is AllowWithOverage: name a balance and every unit past the tier’s start is priced and charged to it on commit, refusing the commit when it cannot be paid for; leave it empty and the overage is allowed and merely reported.
The consumption period the tiers reset on: minute, hour, day,
week, month or year. Blank or unrecognised means the quota never
resets — a lifetime allowance.
Where each window starts. Defaults to PeriodAnchor.Calendar, which is how every meter behaved before this existed.
How periodic consumption is attributed across usage tiers for charging.
Admin view of a prepaid credit balance on a monitored asset: credits available, consumed, quota thresholds, and the automatic re-balance (top-up) schedule.
object
Consumed credits since last deposit. Remaining credits are calculated as TotalCredits - CreditsUsed.
Total available credits.
The total of all credits used over time.
Consumption this balance was asked to pay for and could not: usage the vendor is owed and has not been paid for. Cumulative, and not reduced by a later top-up.
When this balance last failed to cover consumption that had already happened.
A named quota threshold on a credit balance and the severity level it maps to.
object
Remaining-balance threshold for this band: the band applies while the credit balance is below this value, and when several bands match the lowest threshold wins. A matching band at Critical severity blocks further deductions.
Severity of consumption relative to the configured quotas.
Consumption is suspended until this time (e.g. after an overage); null when not suspended.
Severity of consumption relative to the configured quotas.
The credits available when the entitlement is created.
Indicates if the resource has unlimited credits.
Cron schedule for automatic credit balance. The cron syntax consists of five fields separated by spaces:
- Minute (0-59)
- Hour (0-23)
- Day of the Month (1-31)
- Month (1-12 or Jan-Dec)
- Day of the Week (0-6 or Sun-Sat) Special characters:
-
- (asterisk): Represents any value for the field.
- , (comma): Separates multiple values.
-
- (hyphen): Specifies a range of values.
- / (slash): Specifies increments. Example: “0 0 * * *” means “at midnight every day.”
Date and time of the last automatic credit balance.
Indicates if the current credits should be transferred.
Maximum amount of credits that can be transferred automatically.
Amount of credits to balance automatically.
How far in the past a reported usage value’s timestamp may lie and still be accepted.
Lightweight metric definitions for this product.
A lightweight metric definition on a product: the machine name clients report usage under, plus display metadata (name, unit, category, number format).
object
Machine identifier clients report usage under (as opposed to the display string ProductMetricDto.Name).
How reported usage values are interpreted and aggregated by the monitoring pipeline.
Display format hint, e.g. "0" or "0.0".
Custom properties for storing additional information associated with the product.
object
A custom key/value property (e.g. on a product) with optional metadata entries.
object
A key/value metadata entry attached to a PropertyValueDto.
object
Whether a custom property is sent to the application with its license.
Indicates if the product is locked for editing. Locked products cannot be modified.
List of application scopes that are authorized to use this product. Application scopes define which application types or deployment targets can activate this product. If null or empty, any application can use this product (no scope restrictions).
Parent product ID if this product belongs to an inherited version lineage.
What still actively refers to this product. A product is deleted only while it is Draft or archived and nothing active refers to it. Null where the read does not compute it, such as a catalog export or a product embedded in an entitlement.
object
Customer entitlements that carry the product.
Offers that carry the product.
Suites the product is a member of. The suite created behind a product’s own plan sets is not counted here; its plan sets are.
Plan sets scoped to a suite the product is a member of.
What still actively refers to the family’s catalog features, on the family’s last live version only. Deleting that version deletes the features with it, so whatever still uses them keeps the product, as it would keep each feature from its own delete. Each referrer counts once, however many of the features it names, and the product itself is not counted, so their Products count is 0. Null on any other version, and on a product that is neither Draft nor archived, whose delete is refused on its status alone.
object
Products that carry the feature.
Customer entitlements whose features include the code.
Offers whose features include the code.
Plan sets with a plan that sets a value for the code.
Add-ons that grant the feature.
Rating campaigns that ask about the feature.
A feature as granted on a specific entitlement: the product feature definition plus the entitlement-level value, enablement, and expiration overrides.
object
When true, the feature is withheld for the duration of a trial even if enabled.
True when the product allows this feature’s value to be overridden per entitlement.
Read-only. Whether the feature is written into the signed license, copied from the product feature when the product was attached. False keeps it out of the token while it is still listed as included on the activation response and the customer’s pages.
Monitored asset backing a metered feature; Guid.Empty when the feature is not metered.
When this individual feature stops being available; null follows the entitlement’s expiration.
Activation-time requirements on an entitlement: the authentication level a user must meet, code/workflow requirements, network restrictions, and device-identification rules. Carried on ActivationPolicyDto? EntitlementDto.ActivationPolicy.
object
Authentication level a user must meet before a license activation is permitted. Used on activation policies and activation workflows.
Organization group the activating user must belong to; Guid.Empty means no group restriction.
Activation is permitted only from these CIDR ranges, IPv4 or IPv6 (empty = unrestricted).
When true, only devices whose identification was registered in advance can activate.
Configured length requirement for the device-identification signature (fingerprint). Stored with the policy and returned on reads; the activation pipeline does not currently enforce it.
Shape of the activation codes issued for this entitlement; null means the platform default random code.
object
When false the platform default random code is issued and string KeyIssuancePolicyDto.Template is ignored.
Template the code is rendered from, e.g. ACME-{DATE:yyMM}-{SEQ:6}-{RAND:4}{CHK}.
Character set {RAND} draws from.
Characters {RAND} draws from when KeyAlphabet KeyIssuancePolicyDto.Alphabet is KeyAlphabet.Custom.
Casing applied to the rendered code.
Check-character algorithm used by the {CHK} token.
Counter the {SEQ} token draws from.
First value the counter issues.
How many times generation re-rolls the random segment after a uniqueness collision before the
item fails. Templates whose only variable part is {SEQ} have nothing to re-roll, so they
depend on the counter only ever moving forward.
Ignore separators (spaces and dashes) in a submitted code before lookup.
Match a submitted code without regard to case.
Fold characters the alphabet excludes onto the ones it keeps before lookup, so a user who types O for 0 or I for 1 still resolves. Only defined for alphabets that omit the confusable pair.
Value the counter will issue next. Populated when one entitlement is read by id (a list page leaves it null); ignored on writes. A snapshot taken while other requests may be reserving blocks, so treat it as advisory rather than a count.
Defines allocation and usage policy for a license: seat limits, lease/grace periods, pooling (floating), offline activation and fingerprinting method.
object
Duration a seat remains leased before renewal is required.
Extra allowed time after lease expiration before the license is considered invalid.
Maximum number of device activations (seats) allowed.
Indicates if seats are drawn from a shared pool (floating license).
Allows offline activation: when false, the server refuses to issue an offline activation response for this license. Online activation is not affected.
Identifier for the device fingerprinting method used.
Strictness of fingerprint-component matching during activation lookup.
Defaults to ComponentMatchingStrategy.MatchAll (exact-equality).
All four strategies are accepted. The tolerant ones (MatchAny, MatchTwo,
MatchMost) take effect when the client supplies per-component fingerprint
hashes (an SDK node-id provider implementing IComponentNodeIdProvider);
activations without components fall back to exact-fingerprint matching.
Constrains license activation to a time window on an entitlement. Null bounds leave that side of the window open.
object
How long the license stays valid after the first activation, to the end of the UTC day on which that runs out (TimeSpan.Zero means no such limit); the resulting expiry is capped at NotValidAfterTimestamp.
Optional recurring window (days of the week plus a daily open/close time) during which activation is permitted; null means no recurring restriction.
object
Days activation is permitted on. Null or empty means every day.
Time of day the window opens, in string? ActivationHoursScheduleDto.TimeZoneId. Set with TimeSpan? ActivationHoursScheduleDto.DailyWindowEnd or not at all.
Time of day the window closes, exclusive. Equal to the start is rejected — omit both for a whole-day window.
IANA (or Windows) time-zone id the window is expressed in; null means UTC.
Data transfer object for trial activation policy settings.
object
The duration of the trial period. Thirty days unless set; the server refuses a zero or negative period, since a trial that ends the moment it starts issues no trial license at all.
Optional timestamp before which the trial cannot be activated.
Optional timestamp after which the trial is no longer valid.
The calculated timestamp when the trial ends.
If true, the trial period starts after the first license activation otherwise the trial starts now.
Optional plan set id containing the trial plan to auto-apply at first trial activation. If omitted, entitlement.AssignedPlanSetId is used.
Optional trial plan name to auto-apply at first trial activation.
Recurring-renewal policy on an entitlement: how often it renews, how many periods remain, and the outer validity bounds.
object
Calendar unit of one renewal period (e.g. "month"); combined with int SubscriptionPolicyDto.RenewInterval.
Number of string SubscriptionPolicyDto.RenewPeriod units per renewal (e.g. 3 with “month” renews quarterly).
Renewal periods remaining before the subscription lapses (capped at int SubscriptionPolicyDto.MaxSubscriptionPeriods).
Stored with the policy and returned on reads; license validation does not currently act on this flag.
On offers: the terms anonymous try licenses are issued under. On a try license: the terms it was issued under, so a later edit to the offer never moves its expiry.
object
How long a try license lasts, measured from the moment it is issued. Never extended by use: a window that moved on every visit would let one visit a day keep a license alive forever. Capped at 7 days — anything longer is an account-based trial.
How long an expired try license is kept before it is deleted, together with the device identifier it holds. One whose device signed up is deleted at the next sweep instead.
The public code an application presents to start a try. Separate from the offer’s own license key, so it can be rotated without disturbing anything else.
The plan try licenses are issued on. Leave empty to use the offer’s own plan.
What this offer will hand out before it stops.
object
The period the two counts below are measured over.
Try licenses this offer may issue within one window.
Try licenses one caller address may be issued within one window.
Unexpired try licenses this offer may hold at once.
The vendor’s own reference to the external record this entitlement came from, as
scheme:kind:id (e.g. sfdc:LicenseGrant__c:…). A billing provider’s subscription is
not an origin: its ids live on EntitlementBillingDto? EntitlementDto.Billing.
The vendor’s own reference to the owning customer/account in that external system; the billing provider’s customer id lives on EntitlementBillingDto? EntitlementDto.Billing.
Opaque connector provenance / pass-through (mirrors Stripe metadata).
object
The billing record (on an offer: the billing template), or null when none has been recorded.
Read here; written through PUT entitlements/{id}/billing.
object
One of BillingProviders, or a value a connector registered.
Who drives the entitlement’s plan. A member this client does not know reads as BillingModeDto.Unknown.
Why an operator manages the plan by hand; set with BillingModeDto.OperatorManaged.
How money is collected for the entitlement. A member this client does not know reads as BillingMethodDto.Unknown.
How often the entitlement bills. A member this client does not know reads as BillingIntervalDto.Unknown.
Informational: what the vendor recorded for their own overview. Never used to charge, never checked against plan prices.
ISO 4217 code of decimal? EntitlementBillingDto.Amount.
The provider’s own customer id (cus_…); written by Provision from the subscription event.
The provider’s own subscription id (sub_…); unique per tenant and provider, written by Provision.
The customer’s purchase order number or cost centre — what must appear on the invoice.
ISO 3166-1 alpha-2.
Provider-specific key-values, keys prefixed by provider (stripe.price_lookup_key).
object
Where the provider’s subscription stands, as Provision last recorded it from the subscription event. The connector holds the live picture; this is the copy the entitlement list filters on.
Start of the open past-due episode, when a payment failed and none has succeeded since.
When a lapse was recorded that could not be applied yet because another plan override stands.
When the payment lapse was applied to the plan; null once a payment or an operator lifts it.
The suite the plan, trial, temporary override and add-ons belong to. Attached products outside it ride along as add-ons at the values stamped on them, and still contribute their features to the license. Null only while nothing has established governance yet — the first plan-shaped assignment or an explicit suite attach.
A time-boxed plan override on an entitlement. While the validity window is active the override plan applies instead of the assigned plan; the previous plan fields allow restoring it when the override lapses.
object
Campaign the override runs under, when it was applied as part of one.
The offer whose promotion this override is; null for any other override, such as a trial or a lapsed payment.
On an offer, its promotion: set with SetOfferPromotionAsync. Null on an entitlement, which gets an
offer’s promotion as its TemporaryPlanOverrideDto EntitlementDto.TemporaryOverride.
object
The campaign it runs under; each entitlement given it counts as a plan-override touch of the campaign.
Recorded as the reason of each temporary override it becomes.
Tag names applied to this entitlement, from the tenant’s TagScopeDto.Entitlement vocabulary. Offers share that vocabulary and keep their tags across save-as-offer and order-from-offer. Vendor-facing organization only — tags never reach an entitlement snapshot, a license token, or the end-user portal.
Application scopes set directly on the entitlement; empty means no entitlement-level restriction.
Resolved scopes actually enforced at activation, combining entitlement- and product-level scopes.
One entry in an entitlement’s plan-assignment history.
object
What triggered the change (e.g. manual admin action or an approved consumer plan-change request).
What still keeps the entitlement or offer from being deleted. Null where the read does not compute it.
object
On an offer: the entitlements made from it that are not disabled, archived or deleted. Always 0 on an entitlement.
On an offer: the rating campaigns limited to its customers that are switched on and have not ended. Always 0 on an entitlement.
On an entitlement: its activations that still hold a license, being neither revoked nor past their lease or validity. Always 0 on an offer.
How many devices the vendor has reset on this entitlement so it could move to another machine.
Rating campaigns with their targets.
A rating campaign: a transient ask (“how is export working out this quarter?”) layered over the permanent feature catalog. A user is prompted about a targeted feature only while the campaign is running, only if they are entitled to that feature, and, when the campaign names offers, only if their entitlement was made from one of them.
object
True when the campaign is enabled and the current time is inside its window.
A campaign target as returned by the admin API, denormalized with the feature’s display fields.
object
Question shown for this feature; null or empty falls back to the generic prompt.
Lower is asked first. Null means no set order — reached by recent usage only.
The offers whose customers are asked. Empty asks every customer.
An offer whose customers a campaign asks, with the offer’s name and version.
object
The offer. A customer is one of its customers when their entitlement was made from it.
The offer’s name; null when the offer no longer exists.
The offer’s version.
Portable snapshot of a tenant's catalog. Versioned by string CatalogExportEnvelopeDto.FormatVersion; the major
component gates import compatibility.
Entities reference each other by their source-tenant Guid. Those Guids are meaningless in
another tenant, so every one of them is resolvable through Dictionary<Guid, CatalogReferenceDto> CatalogExportEnvelopeDto.References.
object
Schema version of this envelope. See CatalogFormatVersions.
When the snapshot was taken.
Identifier of the tenant the snapshot was taken from.
Which sections are populated in this snapshot.
Item count per section, keyed by CatalogScopes constant.
object
Source-tenant Guid to portable key, for every cross-section reference in the snapshot.
object
Maps one source-tenant Guid to a portable key. Every cross-section Guid the snapshot contains has an entry, including ones whose target is present — so an importer has exactly one resolution path rather than a Guid path and a key path that disagree.
object
The kind of entity the Guid identifies.
How to find the same entity in another tenant.
object
Owning product code — set for products and for everything scoped to a product.
Owning product version.
Feature code, for feature catalog entries.
Metric name, for monitored assets.
Add-on code.
Name, for plan sets, rating campaigns and entitlement offers.
Version, for entitlement offers.
Vocabulary, for tags. Part of the key rather than a detail: the same name in two scopes is two different tags, so a key without it matches the wrong registry entry.
Whether the entity was selected, pulled in, or is referenced but absent.
Human-readable provenance — the edges that reached this entity, e.g.
add-on "Fleet add-on" → plan set. Empty when it was selected directly.
Non-fatal problems encountered while building the snapshot.
Something the export could not express cleanly. Warnings never block an export.
object
Stable machine-readable code, e.g. ambiguous-natural-key.
The affected entity’s key, when the warning is about one entity.
What the caller should know.
The tag registry. Carries the entries the snapshot’s items quote by name, plus — on a whole-section export — the ones nothing is tagged with, which have no other way to travel.
One entry of the tenant’s tag registry, as a snapshot carries it.
object
Source-tenant registry id. Carried like every other section’s id, so a picker can select one.
The vocabulary this tag belongs to. Half of the tag’s identity: the same name in two vocabularies is two different tags.
Display name. Matched case-insensitively against the target’s registry.
Chip colour as a #rrggbb hex triplet, or null for the default chip colour.
Products. Nested MonitoredAssets are echoed for readability only — the
List<MonitoredAssetDto>? CatalogExportEnvelopeDto.MonitoredAssets section is the authoritative carrier and an importer must
take assets from there, or a shared asset is created twice.
Admin read model of a catalog product: identity (code + version), lifecycle status, features, monitored assets, metrics, and custom properties.
object
Indicates the current product status in its lifecycle.
Unique identifier of the provider associated with this product.
Public-facing name of the product used for display purposes.
Description of the product as displayed in the customer portal.
Unique internal code of the product. Must be unique in combination with string ProductDto.ProductVersion.
Version of the product visible to the end user. Not SemVer: one to four dot-separated numbers (e.g. “1”, “1.2”, “1.2.3.4”), or empty. Prerelease and build suffixes are rejected.
Expiration date, after which the product is no longer available for deployment. Null if no expiration is set.
Optional external identifier, such as a CMS or ERP ID.
Tag names applied to this product, from the tenant’s TagScopeDto.Product vocabulary. Vendor-facing catalog organization only — tags never reach an entitlement snapshot, a license token, or the end-user portal.
Collection of features that define additional functionalities of the product.
A feature as defined on a product: default value, enablement, trial/grace availability, license-token inclusion, and metering configuration. Entitlements inherit these defaults.
object
Data type of a feature’s value; determines how Value strings are interpreted and enforced.
One allowed value of an Enumeration-typed feature.
object
When true, the feature is withheld for the duration of a trial even if enabled.
Who can see a feature.
Where the feature appears among the product’s features. The vendor sets it; every list of a product’s features is ordered by it, so the screens agree with each other.
Assets associated with the product for usage monitoring.
A usage-tracked metric on a product or entitlement. Depending on how it is charged, either AssetMeteredUsageDto? MonitoredAssetDto.MeteredUsage (tiered, period-based metering) or AssetBalanceUsageDto? MonitoredAssetDto.BalanceUsage (prepaid credit balance) is attached.
object
How reported usage values are interpreted and aggregated by the monitoring pipeline.
Admin view of tiered, period-based metering on a monitored asset: the usage tiers, the consumption period they reset on, and how usage accumulates across tiers.
object
Consumption is suspended until this time (e.g. after an overage); null when not suspended.
Severity of consumption relative to the configured usage tiers.
Represents a tier of usage with associated credits and severity status.
object
Gets or sets the start usage for the tier.
Tier start as a percentage of the feature value (percentage-based enforcement).
Gets or sets the end usage for the tier. Nullable.
Tier end as a percentage of the feature value (percentage-based enforcement).
Gets or sets the flat fee credits for the tier.
Gets or sets the credits per unit of consumption for the tier.
Gets or sets the name of the usage tier.
Gets or sets the overage severity status for the tier.
Defines the enforcement behavior applied by the resource controller or interceptor when a specific usage tier threshold is reached. Ordered from least to most restrictive.
Metric name of the credit balance, on the same entitlement, that pays for consumption in this tier. Only meaningful on a tier whose policy is AllowWithOverage: name a balance and every unit past the tier’s start is priced and charged to it on commit, refusing the commit when it cannot be paid for; leave it empty and the overage is allowed and merely reported.
The consumption period the tiers reset on: minute, hour, day,
week, month or year. Blank or unrecognised means the quota never
resets — a lifetime allowance.
Where each window starts. Defaults to PeriodAnchor.Calendar, which is how every meter behaved before this existed.
How periodic consumption is attributed across usage tiers for charging.
Admin view of a prepaid credit balance on a monitored asset: credits available, consumed, quota thresholds, and the automatic re-balance (top-up) schedule.
object
Consumed credits since last deposit. Remaining credits are calculated as TotalCredits - CreditsUsed.
Total available credits.
The total of all credits used over time.
Consumption this balance was asked to pay for and could not: usage the vendor is owed and has not been paid for. Cumulative, and not reduced by a later top-up.
When this balance last failed to cover consumption that had already happened.
A named quota threshold on a credit balance and the severity level it maps to.
object
Remaining-balance threshold for this band: the band applies while the credit balance is below this value, and when several bands match the lowest threshold wins. A matching band at Critical severity blocks further deductions.
Severity of consumption relative to the configured quotas.
Consumption is suspended until this time (e.g. after an overage); null when not suspended.
Severity of consumption relative to the configured quotas.
The credits available when the entitlement is created.
Indicates if the resource has unlimited credits.
Cron schedule for automatic credit balance. The cron syntax consists of five fields separated by spaces:
- Minute (0-59)
- Hour (0-23)
- Day of the Month (1-31)
- Month (1-12 or Jan-Dec)
- Day of the Week (0-6 or Sun-Sat) Special characters:
-
- (asterisk): Represents any value for the field.
- , (comma): Separates multiple values.
-
- (hyphen): Specifies a range of values.
- / (slash): Specifies increments. Example: “0 0 * * *” means “at midnight every day.”
Date and time of the last automatic credit balance.
Indicates if the current credits should be transferred.
Maximum amount of credits that can be transferred automatically.
Amount of credits to balance automatically.
How far in the past a reported usage value’s timestamp may lie and still be accepted.
Lightweight metric definitions for this product.
A lightweight metric definition on a product: the machine name clients report usage under, plus display metadata (name, unit, category, number format).
object
Machine identifier clients report usage under (as opposed to the display string ProductMetricDto.Name).
How reported usage values are interpreted and aggregated by the monitoring pipeline.
Display format hint, e.g. "0" or "0.0".
Custom properties for storing additional information associated with the product.
object
A custom key/value property (e.g. on a product) with optional metadata entries.
object
A key/value metadata entry attached to a PropertyValueDto.
object
Whether a custom property is sent to the application with its license.
Indicates if the product is locked for editing. Locked products cannot be modified.
List of application scopes that are authorized to use this product. Application scopes define which application types or deployment targets can activate this product. If null or empty, any application can use this product (no scope restrictions).
Parent product ID if this product belongs to an inherited version lineage.
What still actively refers to this product. A product is deleted only while it is Draft or archived and nothing active refers to it. Null where the read does not compute it, such as a catalog export or a product embedded in an entitlement.
object
Customer entitlements that carry the product.
Offers that carry the product.
Suites the product is a member of. The suite created behind a product’s own plan sets is not counted here; its plan sets are.
Plan sets scoped to a suite the product is a member of.
What still actively refers to the family’s catalog features, on the family’s last live version only. Deleting that version deletes the features with it, so whatever still uses them keeps the product, as it would keep each feature from its own delete. Each referrer counts once, however many of the features it names, and the product itself is not counted, so their Products count is 0. Null on any other version, and on a product that is neither Draft nor archived, whose delete is refused on its status alone.
object
Products that carry the feature.
Customer entitlements whose features include the code.
Offers whose features include the code.
Plan sets with a plan that sets a value for the code.
Add-ons that grant the feature.
Rating campaigns that ask about the feature.
Feature catalog entries. Carries the fields a product feature’s bare Guid cannot.
A feature definition in a product’s feature catalog: the canonical source for a feature code’s type, allowed values, metering, and visibility. Whether end users are asked to rate a feature is configured separately, per campaign — see RatingCampaignDto.
object
Metric name a Metered feature reports usage under.
Data type of a feature’s value; determines how Value strings are interpreted and enforced.
Lifecycle state of a feature catalog entry.
Who can see a feature.
Relative, unitless value weight used by value-delivered analytics. Null means the feature is not valued yet and contributes nothing. Weights are applied when a report is generated, so changing one re-values history — intended behaviour for a relative measure.
One allowed value of an Enumeration-typed feature.
object
Tag names applied to this entry, from the tenant’s TagScopeDto.FeatureCatalog vocabulary.
What still actively refers to the entry, and so keeps it from being deleted. Null where the read does not compute it.
object
Products that carry the feature.
Customer entitlements whose features include the code.
Offers whose features include the code.
Plan sets with a plan that sets a value for the code.
Add-ons that grant the feature.
Rating campaigns that ask about the feature.
Product-level monitored asset templates, each appearing exactly once.
A usage-tracked metric on a product or entitlement. Depending on how it is charged, either AssetMeteredUsageDto? MonitoredAssetDto.MeteredUsage (tiered, period-based metering) or AssetBalanceUsageDto? MonitoredAssetDto.BalanceUsage (prepaid credit balance) is attached.
object
How reported usage values are interpreted and aggregated by the monitoring pipeline.
Admin view of tiered, period-based metering on a monitored asset: the usage tiers, the consumption period they reset on, and how usage accumulates across tiers.
object
Consumption is suspended until this time (e.g. after an overage); null when not suspended.
Severity of consumption relative to the configured usage tiers.
Represents a tier of usage with associated credits and severity status.
object
Gets or sets the start usage for the tier.
Tier start as a percentage of the feature value (percentage-based enforcement).
Gets or sets the end usage for the tier. Nullable.
Tier end as a percentage of the feature value (percentage-based enforcement).
Gets or sets the flat fee credits for the tier.
Gets or sets the credits per unit of consumption for the tier.
Gets or sets the name of the usage tier.
Gets or sets the overage severity status for the tier.
Defines the enforcement behavior applied by the resource controller or interceptor when a specific usage tier threshold is reached. Ordered from least to most restrictive.
Metric name of the credit balance, on the same entitlement, that pays for consumption in this tier. Only meaningful on a tier whose policy is AllowWithOverage: name a balance and every unit past the tier’s start is priced and charged to it on commit, refusing the commit when it cannot be paid for; leave it empty and the overage is allowed and merely reported.
The consumption period the tiers reset on: minute, hour, day,
week, month or year. Blank or unrecognised means the quota never
resets — a lifetime allowance.
Where each window starts. Defaults to PeriodAnchor.Calendar, which is how every meter behaved before this existed.
How periodic consumption is attributed across usage tiers for charging.
Admin view of a prepaid credit balance on a monitored asset: credits available, consumed, quota thresholds, and the automatic re-balance (top-up) schedule.
object
Consumed credits since last deposit. Remaining credits are calculated as TotalCredits - CreditsUsed.
Total available credits.
The total of all credits used over time.
Consumption this balance was asked to pay for and could not: usage the vendor is owed and has not been paid for. Cumulative, and not reduced by a later top-up.
When this balance last failed to cover consumption that had already happened.
A named quota threshold on a credit balance and the severity level it maps to.
object
Remaining-balance threshold for this band: the band applies while the credit balance is below this value, and when several bands match the lowest threshold wins. A matching band at Critical severity blocks further deductions.
Severity of consumption relative to the configured quotas.
Consumption is suspended until this time (e.g. after an overage); null when not suspended.
Severity of consumption relative to the configured quotas.
The credits available when the entitlement is created.
Indicates if the resource has unlimited credits.
Cron schedule for automatic credit balance. The cron syntax consists of five fields separated by spaces:
- Minute (0-59)
- Hour (0-23)
- Day of the Month (1-31)
- Month (1-12 or Jan-Dec)
- Day of the Week (0-6 or Sun-Sat) Special characters:
-
- (asterisk): Represents any value for the field.
- , (comma): Separates multiple values.
-
- (hyphen): Specifies a range of values.
- / (slash): Specifies increments. Example: “0 0 * * *” means “at midnight every day.”
Date and time of the last automatic credit balance.
Indicates if the current credits should be transferred.
Maximum amount of credits that can be transferred automatically.
Amount of credits to balance automatically.
How far in the past a reported usage value’s timestamp may lie and still be accepted.
Suites in the snapshot. Emitted before plans — a plan set needs its suite.
A suite: an ordered set of member products sold together, and the owner of the usage plan sets (tiers) that configure them.
object
One member product of a suite, in sell order.
object
True for the suite auto-created behind a product the first time it is priced, rather than
one an operator built. Listing excludes these by default; pass includeImplicit to
see them. Becomes false permanently once a second product joins.
Usage plan sets in the snapshot.
A named collection of usage plans (e.g. “My SaaS Plans”).
object
The suite this plan set belongs to. A single-product plan set belongs to that product’s implicit suite-of-one. Which member each tier configures is on the plan’s line items — the set itself names no product.
Lifecycle state of a usage plan set.
A usage plan such as “basic”, “standard”, or “professional”.
object
Whether the plan states its worth in money or in relative units. Every plan in one set
shares a mode — a set is one price list — and a plan carries only its own mode’s fields:
an Absolute plan is refused a RelativeWeight, a Relative plan is refused a
MonthlyPrice or Currency. So nothing ever has to pick a winner
between two answers to “what is this plan worth”.
What the plan charges per month, when PricingMode is
Absolute. Three states: null = not priced yet (missing data —
never treated as free), 0 = free/trial, positive = paid. Revenue reporting excludes
null-priced plans and reports them separately.
ISO 4217 code (e.g. “EUR”). Required when MonthlyPrice is positive, ignored otherwise.
What the plan is worth relative to its siblings, when PricingMode is
Relative — an unbounded weight, not a percentage, so
“Enterprise is 10x Basic” stays expressible and adding a plan never re-keys the others.
Reporting turns weights into a share of the total, so the shares add up on their own.
Three states mirroring MonthlyPrice: null = not weighted yet (never treated
as zero), 0 = carries no weight, positive = counts.
One entry per suite member the tier speaks about.
How one tier lands on one suite member: whether the tier includes that product at all, and — when included — the feature values it stamps for it.
object
The suite member this line item configures. Required on every line item except when creating a plan set for a suite of one, where the server stamps the sole member.
Defines a feature value override for a specific plan tier. Value is stored as string to support bool, enum, string, and json field values.
object
The metric name this feature’s meter is keyed by — the identity every usage read and
usage report must quote. It is NOT the feature code: codes are uppercase
(MIRAGE.IMAGE.RENDERS), metric names are lowercase (mirage.image.renders),
and the meter is resolved by an exact, case-sensitive match. Passing the code where the
metric name belongs silently finds nothing.
The feature’s display name from its catalog entry, for rendering. Server-populated on read alongside string? UsagePlanFeatureValueDto.MetricName and ignored on write; null when the code resolves to no catalog entry.
What the value is counted in (GB, seats, calls), from the feature’s catalog entry. Server-populated on read alongside string? UsagePlanFeatureValueDto.FeatureName and ignored on write; null when the catalog names none.
How a plan enforces a feature’s value.
Represents a tier of usage with associated credits and severity status.
object
Gets or sets the start usage for the tier.
Tier start as a percentage of the feature value (percentage-based enforcement).
Gets or sets the end usage for the tier. Nullable.
Tier end as a percentage of the feature value (percentage-based enforcement).
Gets or sets the flat fee credits for the tier.
Gets or sets the credits per unit of consumption for the tier.
Gets or sets the name of the usage tier.
Gets or sets the overage severity status for the tier.
Defines the enforcement behavior applied by the resource controller or interceptor when a specific usage tier threshold is reached. Ordered from least to most restrictive.
Metric name of the credit balance, on the same entitlement, that pays for consumption in this tier. Only meaningful on a tier whose policy is AllowWithOverage: name a balance and every unit past the tier’s start is priced and charged to it on commit, refusing the commit when it cannot be paid for; leave it empty and the overage is allowed and merely reported.
Add-ons.
An add-on: a named set of feature adjustments, scoped to a suite, that can be granted to entitlements on top of their plan. Scoped to the suite rather than one of its plan-set revisions — revisions fork, the suite is what persists.
object
Lifecycle state of an add-on.
A feature definition in a product’s feature catalog: the canonical source for a feature code’s type, allowed values, metering, and visibility. Whether end users are asked to rate a feature is configured separately, per campaign — see RatingCampaignDto.
object
Metric name a Metered feature reports usage under.
Data type of a feature’s value; determines how Value strings are interpreted and enforced.
Lifecycle state of a feature catalog entry.
Who can see a feature.
Relative, unitless value weight used by value-delivered analytics. Null means the feature is not valued yet and contributes nothing. Weights are applied when a report is generated, so changing one re-values history — intended behaviour for a relative measure.
One allowed value of an Enumeration-typed feature.
object
Tag names applied to this entry, from the tenant’s TagScopeDto.FeatureCatalog vocabulary.
What still actively refers to the entry, and so keeps it from being deleted. Null where the read does not compute it.
object
Products that carry the feature.
Customer entitlements whose features include the code.
Offers whose features include the code.
Plan sets with a plan that sets a value for the code.
Add-ons that grant the feature.
Rating campaigns that ask about the feature.
One feature adjustment an add-on applies, and how it combines with the plan value.
object
Operand for the operation, as a string interpreted per the feature’s data type; unused for Tiered.
Usage tiers applied when AddOnFeatureValueOperationDto AddOnFeatureValueDto.Operation is Tiered.
Represents a tier of usage with associated credits and severity status.
object
Gets or sets the start usage for the tier.
Tier start as a percentage of the feature value (percentage-based enforcement).
Gets or sets the end usage for the tier. Nullable.
Tier end as a percentage of the feature value (percentage-based enforcement).
Gets or sets the flat fee credits for the tier.
Gets or sets the credits per unit of consumption for the tier.
Gets or sets the name of the usage tier.
Gets or sets the overage severity status for the tier.
Defines the enforcement behavior applied by the resource controller or interceptor when a specific usage tier threshold is reached. Ordered from least to most restrictive.
Metric name of the credit balance, on the same entitlement, that pays for consumption in this tier. Only meaningful on a tier whose policy is AllowWithOverage: name a balance and every unit past the tier’s start is priced and charged to it on commit, refusing the commit when it cannot be paid for; leave it empty and the overage is allowed and merely reported.
Plan names this adjustment applies to; empty applies it to every plan.
How an add-on’s feature value combines with the plan-provided value.
What refers to the add-on. Only a Draft add-on nothing refers to can be deleted; any other is archived. Null where the read does not compute it, such as a catalog export.
object
Customer entitlements granted the add-on, including grants since revoked or expired.
Offers that carry a grant of the add-on.
Entitlements marked as offers (IsOffer = true).
The central admin read model for an entitlement: a customer’s grant to use one or more products, carrying lifecycle state, activation/trial/subscription policies, features, plan assignment, and external billing references.
object
Link to the license terms (EULA); empty when there are none. On an offer it is copied onto every entitlement ordered from it; on an entitlement it is sent to the application at every issue and refresh and shown to the customer.
Admin-controlled lifecycle state of an entitlement.
Consumer-facing subscription/lifecycle status, derived server-side from EntitlementLifecycleStatus EntitlementDto.Status, expiration dates, and trial / pause state.
Read-only convenience flag; true when TrialActivationPolicyDto? EntitlementDto.TrialActivationPolicy is set.
On offers: visitors can use the application without an account, on a short-lived license issued per device.
On offers: entitlements issued from the offer may deposit credits into their own balance through the consumer credit-grant route. On an entitlement: the value it was issued with.
Read-only; true when this entitlement is held by a device rather than a person — an anonymous try license. Derived from the assignment, never stored.
Read-only; true on the platform operator’s offer that every new tenant’s platform license is ordered from. It can’t be disabled or archived. Derived, never stored.
On a try license whose device later signed up: the license they were issued. Nothing else carries over — the try license’s usage is purged with it.
Read-only; on a try license, when it was issued to its device. Null on everything else.
Read-only; on a try license, when the platform deletes it — its expiry plus the grace it was issued with, as the purge applies it. Null on everything else, and on a try license that carries no expiry.
Set when this entitlement was auto-issued for a self-service user; carries the source offer’s id.
The offer this entitlement was made from: recorded when it is ordered from an offer — an order, a sign-up, a billing provider’s subscription, a try — and by an admin for one made before that. Null when it was not made from an offer, and always on an offer.
Admin read model of a catalog product: identity (code + version), lifecycle status, features, monitored assets, metrics, and custom properties.
object
Indicates the current product status in its lifecycle.
Unique identifier of the provider associated with this product.
Public-facing name of the product used for display purposes.
Description of the product as displayed in the customer portal.
Unique internal code of the product. Must be unique in combination with string ProductDto.ProductVersion.
Version of the product visible to the end user. Not SemVer: one to four dot-separated numbers (e.g. “1”, “1.2”, “1.2.3.4”), or empty. Prerelease and build suffixes are rejected.
Expiration date, after which the product is no longer available for deployment. Null if no expiration is set.
Optional external identifier, such as a CMS or ERP ID.
Tag names applied to this product, from the tenant’s TagScopeDto.Product vocabulary. Vendor-facing catalog organization only — tags never reach an entitlement snapshot, a license token, or the end-user portal.
Collection of features that define additional functionalities of the product.
A feature as defined on a product: default value, enablement, trial/grace availability, license-token inclusion, and metering configuration. Entitlements inherit these defaults.
object
Data type of a feature’s value; determines how Value strings are interpreted and enforced.
One allowed value of an Enumeration-typed feature.
object
When true, the feature is withheld for the duration of a trial even if enabled.
Who can see a feature.
Where the feature appears among the product’s features. The vendor sets it; every list of a product’s features is ordered by it, so the screens agree with each other.
Assets associated with the product for usage monitoring.
A usage-tracked metric on a product or entitlement. Depending on how it is charged, either AssetMeteredUsageDto? MonitoredAssetDto.MeteredUsage (tiered, period-based metering) or AssetBalanceUsageDto? MonitoredAssetDto.BalanceUsage (prepaid credit balance) is attached.
object
How reported usage values are interpreted and aggregated by the monitoring pipeline.
Admin view of tiered, period-based metering on a monitored asset: the usage tiers, the consumption period they reset on, and how usage accumulates across tiers.
object
Consumption is suspended until this time (e.g. after an overage); null when not suspended.
Severity of consumption relative to the configured usage tiers.
Represents a tier of usage with associated credits and severity status.
object
Gets or sets the start usage for the tier.
Tier start as a percentage of the feature value (percentage-based enforcement).
Gets or sets the end usage for the tier. Nullable.
Tier end as a percentage of the feature value (percentage-based enforcement).
Gets or sets the flat fee credits for the tier.
Gets or sets the credits per unit of consumption for the tier.
Gets or sets the name of the usage tier.
Gets or sets the overage severity status for the tier.
Defines the enforcement behavior applied by the resource controller or interceptor when a specific usage tier threshold is reached. Ordered from least to most restrictive.
Metric name of the credit balance, on the same entitlement, that pays for consumption in this tier. Only meaningful on a tier whose policy is AllowWithOverage: name a balance and every unit past the tier’s start is priced and charged to it on commit, refusing the commit when it cannot be paid for; leave it empty and the overage is allowed and merely reported.
The consumption period the tiers reset on: minute, hour, day,
week, month or year. Blank or unrecognised means the quota never
resets — a lifetime allowance.
Where each window starts. Defaults to PeriodAnchor.Calendar, which is how every meter behaved before this existed.
How periodic consumption is attributed across usage tiers for charging.
Admin view of a prepaid credit balance on a monitored asset: credits available, consumed, quota thresholds, and the automatic re-balance (top-up) schedule.
object
Consumed credits since last deposit. Remaining credits are calculated as TotalCredits - CreditsUsed.
Total available credits.
The total of all credits used over time.
Consumption this balance was asked to pay for and could not: usage the vendor is owed and has not been paid for. Cumulative, and not reduced by a later top-up.
When this balance last failed to cover consumption that had already happened.
A named quota threshold on a credit balance and the severity level it maps to.
object
Remaining-balance threshold for this band: the band applies while the credit balance is below this value, and when several bands match the lowest threshold wins. A matching band at Critical severity blocks further deductions.
Severity of consumption relative to the configured quotas.
Consumption is suspended until this time (e.g. after an overage); null when not suspended.
Severity of consumption relative to the configured quotas.
The credits available when the entitlement is created.
Indicates if the resource has unlimited credits.
Cron schedule for automatic credit balance. The cron syntax consists of five fields separated by spaces:
- Minute (0-59)
- Hour (0-23)
- Day of the Month (1-31)
- Month (1-12 or Jan-Dec)
- Day of the Week (0-6 or Sun-Sat) Special characters:
-
- (asterisk): Represents any value for the field.
- , (comma): Separates multiple values.
-
- (hyphen): Specifies a range of values.
- / (slash): Specifies increments. Example: “0 0 * * *” means “at midnight every day.”
Date and time of the last automatic credit balance.
Indicates if the current credits should be transferred.
Maximum amount of credits that can be transferred automatically.
Amount of credits to balance automatically.
How far in the past a reported usage value’s timestamp may lie and still be accepted.
Lightweight metric definitions for this product.
A lightweight metric definition on a product: the machine name clients report usage under, plus display metadata (name, unit, category, number format).
object
Machine identifier clients report usage under (as opposed to the display string ProductMetricDto.Name).
How reported usage values are interpreted and aggregated by the monitoring pipeline.
Display format hint, e.g. "0" or "0.0".
Custom properties for storing additional information associated with the product.
object
A custom key/value property (e.g. on a product) with optional metadata entries.
object
A key/value metadata entry attached to a PropertyValueDto.
object
Whether a custom property is sent to the application with its license.
Indicates if the product is locked for editing. Locked products cannot be modified.
List of application scopes that are authorized to use this product. Application scopes define which application types or deployment targets can activate this product. If null or empty, any application can use this product (no scope restrictions).
Parent product ID if this product belongs to an inherited version lineage.
What still actively refers to this product. A product is deleted only while it is Draft or archived and nothing active refers to it. Null where the read does not compute it, such as a catalog export or a product embedded in an entitlement.
object
Customer entitlements that carry the product.
Offers that carry the product.
Suites the product is a member of. The suite created behind a product’s own plan sets is not counted here; its plan sets are.
Plan sets scoped to a suite the product is a member of.
What still actively refers to the family’s catalog features, on the family’s last live version only. Deleting that version deletes the features with it, so whatever still uses them keeps the product, as it would keep each feature from its own delete. Each referrer counts once, however many of the features it names, and the product itself is not counted, so their Products count is 0. Null on any other version, and on a product that is neither Draft nor archived, whose delete is refused on its status alone.
object
Products that carry the feature.
Customer entitlements whose features include the code.
Offers whose features include the code.
Plan sets with a plan that sets a value for the code.
Add-ons that grant the feature.
Rating campaigns that ask about the feature.
A feature as granted on a specific entitlement: the product feature definition plus the entitlement-level value, enablement, and expiration overrides.
object
When true, the feature is withheld for the duration of a trial even if enabled.
True when the product allows this feature’s value to be overridden per entitlement.
Read-only. Whether the feature is written into the signed license, copied from the product feature when the product was attached. False keeps it out of the token while it is still listed as included on the activation response and the customer’s pages.
Monitored asset backing a metered feature; Guid.Empty when the feature is not metered.
When this individual feature stops being available; null follows the entitlement’s expiration.
Activation-time requirements on an entitlement: the authentication level a user must meet, code/workflow requirements, network restrictions, and device-identification rules. Carried on ActivationPolicyDto? EntitlementDto.ActivationPolicy.
object
Authentication level a user must meet before a license activation is permitted. Used on activation policies and activation workflows.
Organization group the activating user must belong to; Guid.Empty means no group restriction.
Activation is permitted only from these CIDR ranges, IPv4 or IPv6 (empty = unrestricted).
When true, only devices whose identification was registered in advance can activate.
Configured length requirement for the device-identification signature (fingerprint). Stored with the policy and returned on reads; the activation pipeline does not currently enforce it.
Shape of the activation codes issued for this entitlement; null means the platform default random code.
object
When false the platform default random code is issued and string KeyIssuancePolicyDto.Template is ignored.
Template the code is rendered from, e.g. ACME-{DATE:yyMM}-{SEQ:6}-{RAND:4}{CHK}.
Character set {RAND} draws from.
Characters {RAND} draws from when KeyAlphabet KeyIssuancePolicyDto.Alphabet is KeyAlphabet.Custom.
Casing applied to the rendered code.
Check-character algorithm used by the {CHK} token.
Counter the {SEQ} token draws from.
First value the counter issues.
How many times generation re-rolls the random segment after a uniqueness collision before the
item fails. Templates whose only variable part is {SEQ} have nothing to re-roll, so they
depend on the counter only ever moving forward.
Ignore separators (spaces and dashes) in a submitted code before lookup.
Match a submitted code without regard to case.
Fold characters the alphabet excludes onto the ones it keeps before lookup, so a user who types O for 0 or I for 1 still resolves. Only defined for alphabets that omit the confusable pair.
Value the counter will issue next. Populated when one entitlement is read by id (a list page leaves it null); ignored on writes. A snapshot taken while other requests may be reserving blocks, so treat it as advisory rather than a count.
Defines allocation and usage policy for a license: seat limits, lease/grace periods, pooling (floating), offline activation and fingerprinting method.
object
Duration a seat remains leased before renewal is required.
Extra allowed time after lease expiration before the license is considered invalid.
Maximum number of device activations (seats) allowed.
Indicates if seats are drawn from a shared pool (floating license).
Allows offline activation: when false, the server refuses to issue an offline activation response for this license. Online activation is not affected.
Identifier for the device fingerprinting method used.
Strictness of fingerprint-component matching during activation lookup.
Defaults to ComponentMatchingStrategy.MatchAll (exact-equality).
All four strategies are accepted. The tolerant ones (MatchAny, MatchTwo,
MatchMost) take effect when the client supplies per-component fingerprint
hashes (an SDK node-id provider implementing IComponentNodeIdProvider);
activations without components fall back to exact-fingerprint matching.
Constrains license activation to a time window on an entitlement. Null bounds leave that side of the window open.
object
How long the license stays valid after the first activation, to the end of the UTC day on which that runs out (TimeSpan.Zero means no such limit); the resulting expiry is capped at NotValidAfterTimestamp.
Optional recurring window (days of the week plus a daily open/close time) during which activation is permitted; null means no recurring restriction.
object
Days activation is permitted on. Null or empty means every day.
Time of day the window opens, in string? ActivationHoursScheduleDto.TimeZoneId. Set with TimeSpan? ActivationHoursScheduleDto.DailyWindowEnd or not at all.
Time of day the window closes, exclusive. Equal to the start is rejected — omit both for a whole-day window.
IANA (or Windows) time-zone id the window is expressed in; null means UTC.
Data transfer object for trial activation policy settings.
object
The duration of the trial period. Thirty days unless set; the server refuses a zero or negative period, since a trial that ends the moment it starts issues no trial license at all.
Optional timestamp before which the trial cannot be activated.
Optional timestamp after which the trial is no longer valid.
The calculated timestamp when the trial ends.
If true, the trial period starts after the first license activation otherwise the trial starts now.
Optional plan set id containing the trial plan to auto-apply at first trial activation. If omitted, entitlement.AssignedPlanSetId is used.
Optional trial plan name to auto-apply at first trial activation.
Recurring-renewal policy on an entitlement: how often it renews, how many periods remain, and the outer validity bounds.
object
Calendar unit of one renewal period (e.g. "month"); combined with int SubscriptionPolicyDto.RenewInterval.
Number of string SubscriptionPolicyDto.RenewPeriod units per renewal (e.g. 3 with “month” renews quarterly).
Renewal periods remaining before the subscription lapses (capped at int SubscriptionPolicyDto.MaxSubscriptionPeriods).
Stored with the policy and returned on reads; license validation does not currently act on this flag.
On offers: the terms anonymous try licenses are issued under. On a try license: the terms it was issued under, so a later edit to the offer never moves its expiry.
object
How long a try license lasts, measured from the moment it is issued. Never extended by use: a window that moved on every visit would let one visit a day keep a license alive forever. Capped at 7 days — anything longer is an account-based trial.
How long an expired try license is kept before it is deleted, together with the device identifier it holds. One whose device signed up is deleted at the next sweep instead.
The public code an application presents to start a try. Separate from the offer’s own license key, so it can be rotated without disturbing anything else.
The plan try licenses are issued on. Leave empty to use the offer’s own plan.
What this offer will hand out before it stops.
object
The period the two counts below are measured over.
Try licenses this offer may issue within one window.
Try licenses one caller address may be issued within one window.
Unexpired try licenses this offer may hold at once.
The vendor’s own reference to the external record this entitlement came from, as
scheme:kind:id (e.g. sfdc:LicenseGrant__c:…). A billing provider’s subscription is
not an origin: its ids live on EntitlementBillingDto? EntitlementDto.Billing.
The vendor’s own reference to the owning customer/account in that external system; the billing provider’s customer id lives on EntitlementBillingDto? EntitlementDto.Billing.
Opaque connector provenance / pass-through (mirrors Stripe metadata).
object
The billing record (on an offer: the billing template), or null when none has been recorded.
Read here; written through PUT entitlements/{id}/billing.
object
One of BillingProviders, or a value a connector registered.
Who drives the entitlement’s plan. A member this client does not know reads as BillingModeDto.Unknown.
Why an operator manages the plan by hand; set with BillingModeDto.OperatorManaged.
How money is collected for the entitlement. A member this client does not know reads as BillingMethodDto.Unknown.
How often the entitlement bills. A member this client does not know reads as BillingIntervalDto.Unknown.
Informational: what the vendor recorded for their own overview. Never used to charge, never checked against plan prices.
ISO 4217 code of decimal? EntitlementBillingDto.Amount.
The provider’s own customer id (cus_…); written by Provision from the subscription event.
The provider’s own subscription id (sub_…); unique per tenant and provider, written by Provision.
The customer’s purchase order number or cost centre — what must appear on the invoice.
ISO 3166-1 alpha-2.
Provider-specific key-values, keys prefixed by provider (stripe.price_lookup_key).
object
Where the provider’s subscription stands, as Provision last recorded it from the subscription event. The connector holds the live picture; this is the copy the entitlement list filters on.
Start of the open past-due episode, when a payment failed and none has succeeded since.
When a lapse was recorded that could not be applied yet because another plan override stands.
When the payment lapse was applied to the plan; null once a payment or an operator lifts it.
The suite the plan, trial, temporary override and add-ons belong to. Attached products outside it ride along as add-ons at the values stamped on them, and still contribute their features to the license. Null only while nothing has established governance yet — the first plan-shaped assignment or an explicit suite attach.
A time-boxed plan override on an entitlement. While the validity window is active the override plan applies instead of the assigned plan; the previous plan fields allow restoring it when the override lapses.
object
Campaign the override runs under, when it was applied as part of one.
The offer whose promotion this override is; null for any other override, such as a trial or a lapsed payment.
On an offer, its promotion: set with SetOfferPromotionAsync. Null on an entitlement, which gets an
offer’s promotion as its TemporaryPlanOverrideDto EntitlementDto.TemporaryOverride.
object
The campaign it runs under; each entitlement given it counts as a plan-override touch of the campaign.
Recorded as the reason of each temporary override it becomes.
Tag names applied to this entitlement, from the tenant’s TagScopeDto.Entitlement vocabulary. Offers share that vocabulary and keep their tags across save-as-offer and order-from-offer. Vendor-facing organization only — tags never reach an entitlement snapshot, a license token, or the end-user portal.
Application scopes set directly on the entitlement; empty means no entitlement-level restriction.
Resolved scopes actually enforced at activation, combining entitlement- and product-level scopes.
One entry in an entitlement’s plan-assignment history.
object
What triggered the change (e.g. manual admin action or an approved consumer plan-change request).
What still keeps the entitlement or offer from being deleted. Null where the read does not compute it.
object
On an offer: the entitlements made from it that are not disabled, archived or deleted. Always 0 on an entitlement.
On an offer: the rating campaigns limited to its customers that are switched on and have not ended. Always 0 on an entitlement.
On an entitlement: its activations that still hold a license, being neither revoked nor past their lease or validity. Always 0 on an offer.
How many devices the vendor has reset on this entitlement so it could move to another machine.
Rating campaigns with their targets.
A rating campaign: a transient ask (“how is export working out this quarter?”) layered over the permanent feature catalog. A user is prompted about a targeted feature only while the campaign is running, only if they are entitled to that feature, and, when the campaign names offers, only if their entitlement was made from one of them.
object
True when the campaign is enabled and the current time is inside its window.
A campaign target as returned by the admin API, denormalized with the feature’s display fields.
object
Question shown for this feature; null or empty falls back to the generic prompt.
Lower is asked first. Null means no set order — reached by recent usage only.
The offers whose customers are asked. Empty asks every customer.
An offer whose customers a campaign asks, with the offer’s name and version.
object
The offer. A customer is one of its customers when their entitlement was made from it.
The offer’s name; null when the offer no longer exists.
The offer’s version.
Responses
Section titled “Responses”OK
Outcome of a catalog import. With dryRun = true the same counts and item statuses are
returned but the transaction is rolled back, so the skip reasons still reflect real unique
index and foreign key checks.
object
Whether the run was a preview.
How existing rows were treated.
The FormatVersion of the envelope that was applied.
One entry per section the importer processed, in the order it processed them.
Per-section import tally (created/updated/skipped counts) with one status entry per item.
object
Business keys present in this environment that the file does not mention. Informational: an import never removes anything, and a granular file legitimately covers only part of a section — so this is context for the reviewer, not a list of pending deletions. Populated only when bool CatalogImportOptionsDto.IncludeComparison is set.
Which section this tally is for — a CatalogScopes constant.
Items that did not exist in the target tenant and were created.
Items that matched an existing row and were updated.
Items that were not applied. Every one carries a string? CatalogImportItemStatus.Reason.
Items carried through with a metric name no monitored asset could be created for.
One entry per item in the section.
Outcome for one item in a catalog import.
object
Stable business key the entity was matched by — code@version for products,
code for add-ons, name for plan sets and rating campaigns. This is the
same key accepted by Dictionary<string, List<string>> CatalogImportOptionsDto.Keys, so a preview can be
turned into a selective apply without translation.
The item’s id in the source envelope, for correlating a status back to the uploaded file.
What happened to the item.
Why, in human-readable form. Always set for Skipped; set on Created or
Updated when the item was applied with a warning — a metric name no monitored
asset can be created for — or when the update was partial: an existing product’s features and
monitored assets are not overwritten, and that has to be said rather than implied.
Field-by-field comparison for an item that would be updated. Populated only when bool CatalogImportOptionsDto.IncludeComparison is set.
One field an import would write, with the value already there beside the incoming one. Recorded as the importer assigns the field, so the comparison lists exactly the fields that can change and cannot drift from what an apply would do.
object
Property name as the operator would recognise it.
Rendered value in this environment before the import.
Rendered value the file would write.
Whether the two differ. False means the file restates a value already set.
The products section. Superseded by List<CatalogImportSectionResult> CatalogImportResultDto.Sections, which covers every section; this points at the same instance and is kept because removing it would break callers compiled against 1.x.
object
Business keys present in this environment that the file does not mention. Informational: an import never removes anything, and a granular file legitimately covers only part of a section — so this is context for the reviewer, not a list of pending deletions. Populated only when bool CatalogImportOptionsDto.IncludeComparison is set.
Which section this tally is for — a CatalogScopes constant.
Items that did not exist in the target tenant and were created.
Items that matched an existing row and were updated.
Items that were not applied. Every one carries a string? CatalogImportItemStatus.Reason.
Items carried through with a metric name no monitored asset could be created for.
One entry per item in the section.
Outcome for one item in a catalog import.
object
Stable business key the entity was matched by — code@version for products,
code for add-ons, name for plan sets and rating campaigns. This is the
same key accepted by Dictionary<string, List<string>> CatalogImportOptionsDto.Keys, so a preview can be
turned into a selective apply without translation.
The item’s id in the source envelope, for correlating a status back to the uploaded file.
What happened to the item.
Why, in human-readable form. Always set for Skipped; set on Created or
Updated when the item was applied with a warning — a metric name no monitored
asset can be created for — or when the update was partial: an existing product’s features and
monitored assets are not overwritten, and that has to be said rather than implied.
Field-by-field comparison for an item that would be updated. Populated only when bool CatalogImportOptionsDto.IncludeComparison is set.
One field an import would write, with the value already there beside the incoming one. Recorded as the importer assigns the field, so the comparison lists exactly the fields that can change and cannot drift from what an apply would do.
object
Property name as the operator would recognise it.
Rendered value in this environment before the import.
Rendered value the file would write.
Whether the two differ. False means the file restates a value already set.
Example
{ "conflictMode": "CreateOrUpdate", "sections": [ { "items": [ { "action": "Created" } ] } ], "products": { "items": [ { "action": "Created" } ] }}Bad Request
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}Unauthorized
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}