Partially Update Configuration Objects
/pdc/config
You must pass the type query parameter set to the type of configuration object to update. The request payload must include the attributes you want to update and one of the following attributes:
- name: The configuration object's name.
- internalId: The unique ID (UUID) internally generated by Pricing Design Center when the pricing configuration was committed. You must include this attribute to update the name of the configuration object.
Request
-
type(required): string
The configuration object's type.
Valid pricing configuration objects: ZONE_RESULT_CONFIGURATION, VALUE_MAP, STANDARD_ZONE_MODEL, GEO_ZONE_MODEL, BALANCE_ELEMENT, RUM_CONFIGURATION, HOLIDAY_CALENDAR, ATTRIBUTE_SPEC_MAP, BUSINESS_PROFILE, ITEM_TYPE_SELECTOR, CUSTOM_ANALYZER_RULE, POLICY_SPECIFICATION, DYNAMIC_QUOTA_SELECTOR, POLICY_LABEL, DELIVERABLE, PSCTEMPLATE, TAX_CODE, TAX_EXEMPTION_CODE, or PRICE_TAG_CONFIG.
- application/json
object-
attributeSpecMaps: array
attributeSpecMaps
-
balanceElements: array
balanceElements
-
businessProfiles: array
businessProfiles
-
customAnalyzerRules: array
customAnalyzerRules
-
deliverables: array
deliverables
-
dynamicQuotaSelectors: array
dynamicQuotaSelectors
-
geoZoneModel: array
geoZoneModel
-
holidayCalendar: array
holidayCalendar
-
itemTypeSelectors: array
itemTypeSelectors
-
policyLabels: array
policyLabels
-
policySpecifications: array
policySpecifications
-
priceTagConfigs: array
priceTagConfigs
-
productSpecCharacteristicTemplates: array
productSpecCharacteristicTemplates
-
rumConfigurations: array
rumConfigurations
-
standardZoneModel: array
standardZoneModel
-
taxCodes: array
taxCodes
-
taxExemptionCodes: array
taxExemptionCodes
-
valueMap: array
valueMap
-
zoneResultConfiguration: array
zoneResultConfiguration
object-
leftOperand: object
ARumExpressionJXB
-
operation: string
Allowed Values:
[ "ADD", "DIVIDE", "MULTIPLY", "SUBTRACT" ] -
rightOperand: object
ARumExpressionJXB
object-
code: string
-
consumptionRule: string
Allowed Values:
[ "EARLIEST_EXPIRATION", "EARLIEST_EXPIRATION_EARLIEST_START", "EARLIEST_EXPIRATION_LATEST_START", "EARLIEST_START", "EARLIEST_START_EARLIEST_EXPIRATION", "EARLIEST_START_LATEST_EXPIRATION", "LATEST_EXPIRATION", "LATEST_EXPIRATION_EARLIEST_START", "LATEST_EXPIRATION_LATEST_START", "LATEST_START", "LATEST_START_EARLIEST_EXPIRATION", "LATEST_START_LATEST_EXPIRATION", "NONE" ]Specify the order in which sub-balances of a balance element are consumed. -
counter: boolean
-
description: string
-
expiryNotification: boolean
-
externalID: string
-
foldable: boolean
-
internalId: string
-
name: string
-
newName: string
-
numericCode: integer
(int64)
-
obsolete: boolean
-
priceListName: string
-
roundingRules: array
roundingRules
-
symbol: string
-
transientElement: boolean
object-
applyToChildEvents: boolean
-
eventName: string
-
precision: integer
-
processingStage: string
Allowed Values:
[ "ALTERATION", "AR", "CHARGING", "TAXATION" ] -
roundingMode: string
Allowed Values:
[ "DOWN", "DOWN_ALT", "EVEN", "FLOOR", "FLOOR_ALT", "NEAREST", "UP" ]Specifies how a RUM quantity is rounded. -
toleranceMax: number
(double)
-
toleranceMin: number
(double)
-
tolerancePercentage: number
(double)
object-
leftOperand: object
CustomRuleExpressionJXB
-
operator: string
Allowed Values:
[ "AND", "EQUAL_TO", "GREATER_THAN", "GREATER_THAN_EQUAL", "INTERSECT", "IN_LIST", "LESS_THAN", "LESS_THAN_EQUAL", "NOT", "NOT_EQUAL_TO", "OR", "REGEX" ] -
rightOperand: object
CustomRuleExpressionJXB
-
seperator: string
object-
lhsFieldIdentifier: object
FieldIdentifierJXB
-
operator: string
Allowed Values:
[ "AND", "EQUAL_TO", "GREATER_THAN", "GREATER_THAN_EQUAL", "INTERSECT", "IN_LIST", "LESS_THAN", "LESS_THAN_EQUAL", "NOT", "NOT_EQUAL_TO", "OR", "REGEX" ] -
rhsFieldIdentifier: object
FieldIdentifierJXB
-
seperator: string
object-
lhsFieldKind: string
Allowed Values:
[ "CUSTOMER_SPEC_FIELD", "EVENT_SPEC_FIELD", "PRODUCT_SPEC_FIELD", "PROFILE_SPEC_FIELD" ] -
lhsFieldName: string
-
operator: string
Allowed Values:
[ "AND", "EQUAL_TO", "GREATER_THAN", "GREATER_THAN_EQUAL", "INTERSECT", "IN_LIST", "LESS_THAN", "LESS_THAN_EQUAL", "NOT", "NOT_EQUAL_TO", "OR", "REGEX" ] -
rhsFieldKind: string
Allowed Values:
[ "CUSTOMER_SPEC_FIELD", "EVENT_SPEC_FIELD", "PRODUCT_SPEC_FIELD", "PROFILE_SPEC_FIELD" ] -
rhsFieldName: string
-
seperator: string
object-
fieldKind: string
Allowed Values:
[ "CUSTOMER_SPEC_FIELD", "EVENT_SPEC_FIELD", "PRODUCT_SPEC_FIELD", "PROFILE_SPEC_FIELD" ] -
fieldName: string
-
fieldValue: string
-
operator: string
Allowed Values:
[ "AND", "EQUAL_TO", "GREATER_THAN", "GREATER_THAN_EQUAL", "INTERSECT", "IN_LIST", "LESS_THAN", "LESS_THAN_EQUAL", "NOT", "NOT_EQUAL_TO", "OR", "REGEX" ] -
seperator: string
object-
fieldSelector: object
FieldSelectorJXB
-
qualifier: string
Allowed Values:
[ "ORIGINATING", "TERMINATING" ]
object-
conditionFieldKind: string
Allowed Values:
[ "CUSTOMER_SPEC_FIELD", "EVENT_SPEC_FIELD", "PRODUCT_SPEC_FIELD", "PROFILE_SPEC_FIELD" ] -
conditionFieldName: string
-
operator: string
Allowed Values:
[ "AND", "EQUAL_TO", "GREATER_THAN", "GREATER_THAN_EQUAL", "INTERSECT", "IN_LIST", "LESS_THAN", "LESS_THAN_EQUAL", "NOT", "NOT_EQUAL_TO", "OR", "REGEX" ] -
selectorFieldKind: string
Allowed Values:
[ "CUSTOMER_SPEC_FIELD", "EVENT_SPEC_FIELD", "PRODUCT_SPEC_FIELD", "PROFILE_SPEC_FIELD" ] -
selectorFieldName: string
object-
deliverableType: string
Allowed Values:
[ "PRODUCT", "SERVICE" ] -
description: string
-
entitlement: object
EntitlementJXB
-
externalID: string
-
internalId: string
-
name: string
-
newName: string
-
obsolete: boolean
-
permittedName: string
-
permittedType: string
Allowed Values:
[ "CUSTOMER", "PRODUCT" ] -
priceListName: string
-
productType: string
Allowed Values:
[ "ADMINISTRATIVE", "PHYSICAL_GOODS" ] -
revenueBasisItem: object
RevenueBasisItemJXB
-
revenueGlid: string
object-
allowanceValidityMode: string
Allowed Values:
[ "ALWAYS", "CURRENT_BILLING", "CURRENT_RECURRING", "MULTIPLE_BILLING", "MULTIPLE_RECURRING", "NEXT_BILLING" ] -
allowanceValidityPeriod: integer
-
allowanceValue: number
(double)
-
description: string
-
entitlementType: string
Allowed Values:
[ "ALLOWANCE_ONE_TIME", "ALLOWANCE_RECURRING", "FEATURE" ] -
featureValue: string
-
name: string
-
resourceBalElemNumCode: integer
(int64)
-
revenueBasisItem: object
RevenueBasisItemJXB
-
subscriptionCycle: string
Allowed Values:
[ "ANNUAL", "BIMONTHLY", "MONTHLY", "QUARTERLY", "SEMI_ANNUAL" ]
object-
amount: number
(double)
-
currencyBalElemNumCode: integer
(int64)
-
milestoneType: string
Allowed Values:
[ "FUTURE", "IMMEDIATE" ] -
quantity: number
(double)
-
scalable: boolean
-
timeUnit: string
Allowed Values:
[ "DAY", "MONTH", "YEAR" ] -
timeValue: integer
-
type: string
Allowed Values:
[ "RATE_BASED", "VALUE_BASED" ]
object-
key: string
-
unit: string
Allowed Values:
[ "BYTES", "DAYS", "GBYTES", "HOURS", "KBYTES", "MBYTES", "MINUTES", "NONE", "SECONDS" ] -
value: number
(double)
object-
dynamicQuotaBinaryExpression: object
DynamicQuotaBinaryExpressionJXB
-
operator: string
Allowed Values:
[ "EQUAL_TO", "GREATER_THAN", "GREATER_THAN_EQUAL", "LESS_THAN", "LESS_THAN_EQUAL", "NOT_EQUAL_TO" ] -
value: number
(double)
object-
dynamicQuotaBinaryOperator: string
Allowed Values:
[ "ADD", "DIVIDE", "MULTIPLY", "SUBTRACT" ] -
leftOperand: object
DynamicQuotaBinaryOperandExpressionJXB
-
rightOperand: object
DynamicQuotaBinaryOperandExpressionJXB
object-
fieldKind: string
Allowed Values:
[ "CUSTOMER_SPEC_FIELD", "EVENT_SPEC_FIELD", "PRODUCT_SPEC_FIELD", "PROFILE_SPEC_FIELD" ] -
fieldName: string
-
fieldValue: string
-
operator: string
Allowed Values:
[ "CONTAINS", "EQUAL_TO", "GREATER_THAN", "GREATER_THAN_EQUAL", "IN_LIST", "LESS_THAN", "LESS_THAN_EQUAL", "NOT_EQUAL_TO" ] -
separator: string
object-
dynamicQuotaBinaryExpression: object
DynamicQuotaBinaryExpressionJXB
-
dynamicQuotaNumberExpression: object
DynamicQuotaNumberExpressionJXB
-
fieldName: string
-
unit: string
Allowed Values:
[ "BYTES", "DAYS", "GBYTES", "HOURS", "KBYTES", "MBYTES", "MINUTES", "NONE", "SECONDS" ]
object-
day: integer
(int32)
-
month: string
Allowed Values:
[ "APR", "AUG", "DEC", "FEB", "JAN", "JUL", "JUN", "MAR", "MAY", "NOV", "OCT", "SEP" ] -
name: string
-
year: integer
(int32)
object-
applicableToAllBalImpact: boolean
-
applicableToAllChildEvents: boolean
-
applicableToAllChildServices: boolean
-
applicableToName: string
-
description: string
-
eventSpecName: string
-
externalID: string
-
internalId: string
-
itemGroup: string
-
itemSpec: array
itemSpec
-
name: string
-
newName: string
-
obsolete: boolean
-
priceListName: string
-
rule: array
rule
object-
aggregationType: string
Allowed Values:
[ "CUMULATIVE_NONPRECREATE", "CUMULATIVE_PRECREATE", "INDIVIDUAL_NONPRECREATE" ] -
category: string
-
default: boolean
-
description: string
-
externalID: string
-
internalId: string
-
name: string
-
newName: string
-
obsolete: boolean
-
priceListName: string
-
type: string
object-
fieldKind: string
Allowed Values:
[ "CHARGING_RESULT_SPEC", "CUSTOMER_SPEC_FIELD", "EVENT_SPEC_FIELD", "PRODUCT_SPEC_FIELD", "PROFILE_SPEC_FIELD" ] -
fieldName: string
-
fieldValue: string
-
operation: string
Allowed Values:
[ "EQUAL_TO", "GREATER_THAN", "GREATER_THAN_EQUAL", "IN_LIST", "LESS_THAN", "LESS_THAN_EQUAL", "NOT_EQUAL_TO", "REGEX" ] -
separator: string
object-
balanceElementNumCode: string
-
CounterRanges: array
CounterRanges
-
label: string
-
unit: string
Allowed Values:
[ "BYTE", "DAY", "GIGABYTE", "HOUR", "KILOBYTE", "MEGABYTE", "MINUTE", "MONTH", "NONE", "SECOND" ]Measures the RUM quantity.
object-
permittedNames: array
permittedNames
-
resourceId: integer
(int64)
-
resourceUnitType: string
Allowed Values:
[ "BYTE", "KILOBYTE", "MEGABYTE", "GIGABYTE", "DAY", "HOUR", "MINUTE", "SECOND", "AMOUNT_USED", "FIXED_CHARGE", "ANY" ] -
ruleType: string
Allowed Values:
[ "ANY", "LIST", "RANGE" ] -
ruleValue: string
object-
description: string
-
externalID: string
-
internalId: string
-
name: string
-
newName: string
-
obsolete: boolean
-
priceListName: string
-
pricingObjectType: string
Allowed Values:
[ "ALL", "ALTERATION_EXCLUSION", "ALTERATION_OFFERING", "ALTERATION_RATE_PLAN", "ALTERATION_RATE_PLAN_SELECTOR", "APN_MAP", "BEST_PRICING", "BUNDLED_PRODUCT_OFFERING", "BUNDLE_DEPENDENCY", "BUNDLE_TRANSITION", "CHARGE_OFFERING", "CHARGE_RATE_PLAN", "CHARGE_RATE_PLAN_SELECTOR", "CHARGE_SELECTOR_SPEC", "DISTRIBUTION_OFFERING", "DISTRIBUTION_RATE_PLAN", "GENERIC_SELECTOR", "HOLIDAY_CALENDAR", "NONE", "PACKAGE_EXCLUSION", "PACKAGE_LIST", "PACKAGE_OBJ", "PACKAGE_TRANSITION", "PRICE_MODEL", "PRICE_MODEL_SELECTOR", "REPLACEMENT_POP_MODEL", "ROLLOVER_RATE_PLAN", "SUBSCRIPTION_TERMS", "SUBSCRIPTION_TERMS_AUTO_RENEW", "TAX_EXEMPTION_SELECTOR", "TAX_SELECTOR", "TIME_MODEL", "TRIGGER_SPEC", "USC_MAP" ] -
productSpecCharacteristics: array
productSpecCharacteristics
array-
Array of:
object ProductSpecCharacteristicJXB
Key-value pair for defining special characteristics in a product.
object-
name(required): string
Title:
product spec char nameName of the special characteristic. -
value(required): array
product spec char values
Title:
product spec char valuesList of special characteristics added for a given name.
arrayproduct spec char valuesobject-
description: string
-
externalID: string
-
internalId: string
-
name: string
-
newName: string
-
obsolete: boolean
-
priceListName: string
-
rumCode: string
-
rumRounding: string
Allowed Values:
[ "HALF_DOWN", "HALF_UP", "NONE", "ROUND_DOWN", "ROUND_UP" ] -
rumType: string
Allowed Values:
[ "CONDITIONAL", "PARTIAL", "WHOLE" ] -
unit: string
Allowed Values:
[ "BYTE", "DAY", "GIGABYTE", "HOUR", "KILOBYTE", "MEGABYTE", "MINUTE", "MONTH", "NONE", "SECOND" ]Measures the RUM quantity.
object-
code: string
-
description: string
-
externalID: string
-
glIdName: string
-
internalId: string
-
name: string
-
newName: string
-
obsolete: boolean
-
priceListName: string
-
taxCodeValidityPeriods: array
taxCodeValidityPeriods
-
taxPackageType: string
Allowed Values:
[ "CUSTOM", "VERTEX_COMMTAX_21", "VERTEX_QUANTUM" ]
object-
description: string
-
percent: number
(double)
-
salesIndicator: string
Allowed Values:
[ "RESALE", "SALE" ] -
taxJurisdictionLevel: string
Allowed Values:
[ "CITY", "COUNTY", "FEDERAL", "LOCATION", "STATE" ] -
taxJurisdictions: array
taxJurisdictions
-
taxRuleType: string
Allowed Values:
[ "INCLUSIVE", "NCS", "NCT", "STANDARD", "TAX" ] -
transSubType_ServiceCode: integer
-
transType_CategoryCode_Rate: integer
object-
jurisdiction: string
Allowed Values:
[ "CITY", "COUNTY", "FEDERAL", "LOCATION", "STATE" ] -
percent: number
(double)
-
validFrom: string
-
validTo: string
object-
description: string
-
externalID: string
-
internalId: string
-
name: string
-
newName: string
-
obsolete: boolean
-
priceListName: string
-
result: string
-
resultType: string
Allowed Values:
[ "BASE_RESULT", "DERIVED_RESULT" ]
Response
200 Response
400 Response
500 Response
Examples
This example shows how to partially update a RUM configuration by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
curl -X PATCH 'http://hostname:port/pdc/config?type=RUM_CONFIGURATION'
where:
-
hostname is the URL for the PDC REST server.
-
port is the port for the PDC REST server.
Example of the Request Body
The following example shows the contents of the request body in JSON format.
{
"rumConfigurations": [
{
"name": "OnetimeNew",
"internalId": "9ff78162-df10-4f21-8971-588499a51d44",
"priceListName": "Default",
"obsolete": false,
"unit": "NONE"
}
]
}
If successful, the response code 200 is returned in the response body.
Note:
PDC PATCH API is based on and implemented as per JSON merge PATCH RFC 7396 specification. Any limitation to the standard, applies to PDC PATCH API. For example, if the PATCH payload is an array (or anything other than an object) the result will always be the PATCH.
PDC configuration objects, like balanceElements, have roundingRules, which is an array; attributeSpecMaps has the eventRUMSpec array that defines the association of events and RUMs with a service. When you include a new value in the array payload to PATCH an object from the External Product Catalog, it replaces any existing or enriched events already associated with that config object.
To retain an existing configuration, the External Product Catalog must first retrieve the object and include all required configurations, i.e., all roundingRules for balanceElements and all eventRUMSpecs for attributeSpecMaps (both existing and enriched), in the array when you republish the offer to PDC.
This behavior applies to all attributes modeled as arrays. For attributes that are not arrays, enriched values are preserved if they are not included in the payload sent from the External Product Catalog.