Partially Update a Product by ID
/product/{id}
Request
-
id(required): string
The resource's ID.
-
fields: string
Specifies the comma-separated properties to include in the response.
- application/json-patch+json
- application/json
- application/merge-patch+json
- application/json-patch-query+json
array-
Array of:
object JsonPatch
A JSON Patch document as defined by RFC 6902.
object-
from: string
A string that contains a JSON Pointer value.
-
op(required): string
Allowed Values:
[ "add", "remove", "replace", "move", "copy", "test" ]The operation to perform. -
path(required): string
A JSON Pointer.
-
value:
The value to use in the operation.
array-
Array of:
object JsonPatch
A JSON Patch document as defined by RFC 6902.
object-
from: string
A string that contains a JSON Pointer value.
-
op(required): string
Allowed Values:
[ "add", "remove", "replace", "move", "copy", "test" ]The operation to perform. -
path(required): string
A JSON Pointer.
-
value:
The value to use in the operation.
-
object
allOf
Entity_MVO
Represents a base entity schema for TM Forum Open APIs.
-
object
Product_MVO-allOf[1]
A product offering procured by a customer or any other party playing a party role. A product is realized as one or more services and resources.
-
allOf
Product_MVO
-
object
ProductOracle_MVO-allOf[1]
Provides extended fields for the product schema.
object-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
object-
@baseType: string
The superclass.
-
@schemaLocation: string
The URI of a JSON Schema file that defines additional attributes and relationships.
-
@type(required): string
The subclass Extensible name.
object-
billingAccount:
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "BillingAccountRef":"#/components/schemas/BillingAccountRef_MVO" } } -
description: string
Describes the product. You can copy it from the product offering description.
-
isBundle: boolean
If true, the product is a ProductBundle which is an instantiation of a BundledProductOffering. If false, the product is a ProductComponent, which is an instantiation of a SimpleProductOffering.
-
name: string
The name of the product. It could be the same as the name of the product offering.
-
product: array
product
-
productCharacteristic: array
productCharacteristic
-
productOffering:
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductOfferingRef":"#/components/schemas/ProductOfferingRef_MVO" } } -
productPrice: array
productPrice
-
productRelationship: array
productRelationship
-
realizingService: array
realizingService
-
startDate: string
(date-time)
The date the product starts.
-
status: string
Allowed Values:
[ "created", "pendingActive", "cancelled", "active", "pendingTerminate", "terminated", "suspended", "aborted" ]The possible values for a product's status. -
terminationDate: string
(date-time)
The date the product was terminated.
objectDiscriminator Values
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
allOf
EntityRef
-
object
Discriminator: @type-allOf[2]
Refers to the billing account. The billing account describes the bill structure.
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "Product":"#/components/schemas/Product_MVO", "ProductRef":"#/components/schemas/ProductRef_MVO", "ProductOracle":"#/components/schemas/ProductOracle_MVO" } }The polymorphic attributes (@type, @schemaLocation, and @referredType) apply to the Product entity, not to the ProductRefOrValue class.
objectDiscriminator Values
-
allOf
EntityRef
-
object
Discriminator: @type-allOf[1]
Represents entities that are orderable from the catalog provider. This resource includes pricing information.
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductPrice":"#/components/schemas/ProductPrice_MVO" } }
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductRelationship":"#/components/schemas/ProductRelationship_MVO" } }
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ServiceRef":"#/components/schemas/ServiceRef_MVO" } }The service reference used by other entities.
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Addressable
Defines a base schema for addressable entities.
-
object
EntityRef-allOf[2]
Represents an entity reference schema for EntityRef classes.
object-
href: string
The hyperlink reference.
-
id: string
The ID.
object-
@referredType: string
The actual type of the target instance when needed for disambiguation.
-
href: string
The URI of the referred entity.
-
id(required): string
The identifier of the referred entity.
-
name: string
The referred entity's name.
object-
ratingType: string
Indicates if the account follows a specific payment option such as prepaid or postpaid.
objectDiscriminator Values
-
Product_MVO
-
object
ProductRef_MVO
A product reference.
-
ProductOracle_MVO
object-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
allOf
EntityRef
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Characteristic_MVO-allOf[1]
Describes a given characteristic of an object or entity through a name/value pair.
object-
characteristicRelationship: array
characteristicRelationship
-
id: string
The characteristic's ID.
-
name(required): string
The characteristic's name.
-
valueType: string
The characteristic value's data type.
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
CharacteristicRelationship_MVO-allOf[1]
The related characteristic.
object-
id(required): string
The characteristic's ID.
-
relationshipType(required): string
The relationship type.
object-
version: string
The product offering version.
objectDiscriminator Values
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Discriminator: @type-allOf[1]
A description of the price and discount awarded.
object-
description: string
The description of the product price.
-
name: string
The name of the product price.
-
price:
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "Price":"#/components/schemas/Price_MVO" } } -
priceAlteration: array
priceAlteration
-
priceType: string
Indicates whether the price is for a recurring or a non-recurring charge.
-
productOfferingPrice:
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductOfferingPriceRef":"#/components/schemas/ProductOfferingPriceRef_MVO" } } -
recurringChargePeriod: string
Indicates the period for a recurring charge (for example: month or week).
-
unitOfMeasure: string
Unit of measure if the price depends on it (for example: GB or SMS volume).
objectDiscriminator Values
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Discriminator: @type-allOf[1]
Provides monetary amounts (tax included, duty-free), currency, and percentages to apply to Price and PriceAlteration.
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "PriceAlteration":"#/components/schemas/PriceAlteration_MVO" } }
objectDiscriminator Values
-
allOf
EntityRef
-
object
Discriminator: @type-allOf[1]
An amount, usually monetary, that is asked for or allowed when a ProductOffering is bought, rented, or leased.
object-
dutyFreeAmount: object
Money
Represents a monetary amount.
-
percentage: number
(float)
The percentage to apply to a product offering price alteration.
-
taxIncludedAmount: object
Money
Represents a monetary amount.
-
taxRate: number
(float)
The tax rate.
object-
unit: string
The currency's ISO 4217 three-letter code.
-
value: number
(double)
A signed floating-point number whose sign depends on the API context.
objectDiscriminator Values
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Discriminator: @type-allOf[1]
An amount, usually monetary, that modifies the price charged for an order item.
object-
applicationDuration: integer
The duration for which the alteration applies to the order item price (for example: 2 months free of charge for the recurring charge).
-
description: string
Explains the semantics of this order item price alteration.
-
name: string
The order item price alteration name.
-
price(required):
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "Price":"#/components/schemas/Price_MVO" } } -
priceType(required): string
The price category (for example: recurring, one time, or usage).
-
priority: integer
The priority for applying this alteration among all defined alterations on the order item price.
-
productOfferingPrice:
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductOfferingPriceRef":"#/components/schemas/ProductOfferingPriceRef_MVO" } } -
recurringChargePeriod: string
Specifies the recurring charge period (for example: month or week).
-
unitOfMeasure: string
Specifies the unit of measure (for example: minutes or GB).
object-
version: string
The product offering price version.
objectDiscriminator Values
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
allOf
EntityRef
-
object
Discriminator: @type-allOf[2]
Describes relationships between products.
object-
id: string
The related product's ID.
-
relationshipType: string
Specifies the relationship type (for example: bundledBy, bundles, tiedDiscount, or tiedProduct).
objectDiscriminator Values
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
allOf
EntityRef
object-
cycleEnd:
CycleEndRef_MVO
-
cycleStart:
CycleStartRef_MVO
-
productPrice: array
productPrice
-
productRelationship: array
productRelationship
-
purchaseEnd:
PurchaseEndRef_MVO
-
purchaseStart:
PurchaseStartRef_MVO
-
quantity: integer
Specifies the service quantity when creating a purchase product.
-
specialRatingProfile:
SpecialRatingProfile_MVO
Mutable fields for a product-linked special rating profile.
-
tieId: string
Specifies the tie ID for tiedDiscount/tiedProduct scenarios.
-
usageEnd:
UsageEndRef_MVO
-
usageStart:
UsageStartRef_MVO
-
object
CPUDatesExtension_MVO
Contains common properties for all CPU extension date.
-
object
CycleEndRef_MVO-allOf[1]
CycleEnd reference. Provides details about the cycle end date for a purchased product.
-
object
CPUDatesExtension_MVO
Contains common properties for all CPU extension date.
-
object
CycleStartRef_MVO-allOf[1]
CycleStart reference. Provides details about the cycle start date for a purchased product.
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductPrice":"#/components/schemas/ProductPriceOracle_MVO" } }
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductRelationship":"#/components/schemas/ProductRelationshipOracle_MVO" } }
-
object
CPUDatesExtension_MVO
Contains common properties for all CPU extension date.
-
object
PurchaseEndRef_MVO-allOf[1]
PurchaseEnd reference. A PurchaseEnd contains details regarding purchase end date for purchased product.
-
object
CPUDatesExtension_MVO
Contains common properties for all CPU extension date.
-
object
PurchaseStartRef_MVO-allOf[1]
PurchaseStart reference. Provides details about the purchase start date for a purchased product.
object-
@type: string
Identifies the service extended rating profile type.
-
data: array
data
The rating attribute values used by rating.
-
id: string
The profile identifier.
-
label: string
The label used to identify the special rating profile in rating rules.
-
name: string
The special rating profile name.
-
referenceCount: integer
The special rating profile reference count.
-
status: string
Allowed Values:
[ "noop", "provisioning", "provisioningFailed", "active", "unprovisioning", "unprovisioningFailed", "unprovisioned", "suspending", "suspendingFailed", "suspended" ]The special rating profile provisioning status.
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
SpecialRatingProfile_MVO-allOf[1]
-
object
CPUDatesExtension_MVO
Contains common properties for all CPU extension date.
-
object
UsageEndRef_MVO-allOf[1]
UsageEnd reference. Provides details about the usage end date for a purchased product.
-
object
CPUDatesExtension_MVO
Contains common properties for all CPU extension date.
-
object
UsageStartRef_MVO-allOf[1]
UsageStart reference. Provides details about the usage start date for a purchased product.
object-
amount(required): integer
Indicates the amount of time of a given unit.
-
unit(required): string
Allowed Values:
[ "seconds", "minutes", "hours", "days", "months", "acct_cycles", "first_usage", "absolute" ]Indicates the unit of time for the CPU extension date: seconds, minutes, hours, days, months, acct_cycles, first_usage, or absolute.
objectobjectobjectDiscriminator Values
-
object
allOf
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductPrice":"#/components/schemas/ProductPrice_MVO" } } -
object
Discriminator: @type-allOf[1]
A description of the price and discount awarded.
object-
priceAlteration: array
priceAlteration
-
priceType(required): string
Allowed Values:
[ "oneTime", "recurring" ]The price type: one-time or recurring.
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "PriceAlteration":"#/components/schemas/PriceAlterationOracle_MVO" } }
objectDiscriminator Values
-
object
allOf
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "PriceAlteration":"#/components/schemas/PriceAlteration_MVO" } } -
object
Discriminator: @type-allOf[1]
Is an amount, usually of money, that modifies the price charged for an order item.
object-
priceType: string
Allowed Values:
[ "AmountOverride", "DiscountPercentageOverride", "DiscountAmountOverride" ]A category that describes the price, such as AmountOverride, DiscountPercentageOverride, or DiscountAmountOverride.
objectDiscriminator Values
-
object
allOf
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductRelationship":"#/components/schemas/ProductRelationship_MVO" } } -
object
Discriminator: @type-allOf[1]
Used to describe relationship between product.
object-
id(required): string
Id of the related product
-
relationshipType(required): string
Allowed Values:
[ "bundles", "bundledBy", "tiedDiscount", "tiedProduct" ]Relationship type as relies on, bundles, etc...
objectobjectarray-
Array of:
object SpecialRatingProfileData
A name/value entry for a product-linked special rating profile.
objectobject-
name: string
The profile data attribute name.
-
validFor: object
TimePeriod
Represents a time period with a start date, an end date, or both.
-
value: string
The profile data attribute value.
object-
endDateTime: string
(date-time)
The end of the time period in IETF RFC 3339 format.Example:
1985-04-12T23:20:50.52Z -
startDateTime: string
(date-time)
The start of the time period in IETF RFC 3339 format.Example:
1985-04-12T23:20:50.52Z
objectobject-
object
allOf
Entity_MVO
Represents a base entity schema for TM Forum Open APIs.
-
object
Product_MVO-allOf[1]
A product offering procured by a customer or any other party playing a party role. A product is realized as one or more services and resources.
-
allOf
Product_MVO
-
object
ProductOracle_MVO-allOf[1]
Provides extended fields for the product schema.
object-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
object-
@baseType: string
The superclass.
-
@schemaLocation: string
The URI of a JSON Schema file that defines additional attributes and relationships.
-
@type(required): string
The subclass Extensible name.
object-
billingAccount:
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "BillingAccountRef":"#/components/schemas/BillingAccountRef_MVO" } } -
description: string
Describes the product. You can copy it from the product offering description.
-
isBundle: boolean
If true, the product is a ProductBundle which is an instantiation of a BundledProductOffering. If false, the product is a ProductComponent, which is an instantiation of a SimpleProductOffering.
-
name: string
The name of the product. It could be the same as the name of the product offering.
-
product: array
product
-
productCharacteristic: array
productCharacteristic
-
productOffering:
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductOfferingRef":"#/components/schemas/ProductOfferingRef_MVO" } } -
productPrice: array
productPrice
-
productRelationship: array
productRelationship
-
realizingService: array
realizingService
-
startDate: string
(date-time)
The date the product starts.
-
status: string
Allowed Values:
[ "created", "pendingActive", "cancelled", "active", "pendingTerminate", "terminated", "suspended", "aborted" ]The possible values for a product's status. -
terminationDate: string
(date-time)
The date the product was terminated.
objectDiscriminator Values
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
allOf
EntityRef
-
object
Discriminator: @type-allOf[2]
Refers to the billing account. The billing account describes the bill structure.
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "Product":"#/components/schemas/Product_MVO", "ProductRef":"#/components/schemas/ProductRef_MVO", "ProductOracle":"#/components/schemas/ProductOracle_MVO" } }The polymorphic attributes (@type, @schemaLocation, and @referredType) apply to the Product entity, not to the ProductRefOrValue class.
objectDiscriminator Values
-
allOf
EntityRef
-
object
Discriminator: @type-allOf[1]
Represents entities that are orderable from the catalog provider. This resource includes pricing information.
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductPrice":"#/components/schemas/ProductPrice_MVO" } }
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductRelationship":"#/components/schemas/ProductRelationship_MVO" } }
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ServiceRef":"#/components/schemas/ServiceRef_MVO" } }The service reference used by other entities.
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Addressable
Defines a base schema for addressable entities.
-
object
EntityRef-allOf[2]
Represents an entity reference schema for EntityRef classes.
object-
href: string
The hyperlink reference.
-
id: string
The ID.
object-
@referredType: string
The actual type of the target instance when needed for disambiguation.
-
href: string
The URI of the referred entity.
-
id(required): string
The identifier of the referred entity.
-
name: string
The referred entity's name.
object-
ratingType: string
Indicates if the account follows a specific payment option such as prepaid or postpaid.
objectDiscriminator Values
-
Product_MVO
-
object
ProductRef_MVO
A product reference.
-
ProductOracle_MVO
object-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
allOf
EntityRef
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Characteristic_MVO-allOf[1]
Describes a given characteristic of an object or entity through a name/value pair.
object-
characteristicRelationship: array
characteristicRelationship
-
id: string
The characteristic's ID.
-
name(required): string
The characteristic's name.
-
valueType: string
The characteristic value's data type.
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
CharacteristicRelationship_MVO-allOf[1]
The related characteristic.
object-
id(required): string
The characteristic's ID.
-
relationshipType(required): string
The relationship type.
object-
version: string
The product offering version.
objectDiscriminator Values
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Discriminator: @type-allOf[1]
A description of the price and discount awarded.
object-
description: string
The description of the product price.
-
name: string
The name of the product price.
-
price:
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "Price":"#/components/schemas/Price_MVO" } } -
priceAlteration: array
priceAlteration
-
priceType: string
Indicates whether the price is for a recurring or a non-recurring charge.
-
productOfferingPrice:
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductOfferingPriceRef":"#/components/schemas/ProductOfferingPriceRef_MVO" } } -
recurringChargePeriod: string
Indicates the period for a recurring charge (for example: month or week).
-
unitOfMeasure: string
Unit of measure if the price depends on it (for example: GB or SMS volume).
objectDiscriminator Values
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Discriminator: @type-allOf[1]
Provides monetary amounts (tax included, duty-free), currency, and percentages to apply to Price and PriceAlteration.
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "PriceAlteration":"#/components/schemas/PriceAlteration_MVO" } }
objectDiscriminator Values
-
allOf
EntityRef
-
object
Discriminator: @type-allOf[1]
An amount, usually monetary, that is asked for or allowed when a ProductOffering is bought, rented, or leased.
object-
dutyFreeAmount: object
Money
Represents a monetary amount.
-
percentage: number
(float)
The percentage to apply to a product offering price alteration.
-
taxIncludedAmount: object
Money
Represents a monetary amount.
-
taxRate: number
(float)
The tax rate.
object-
unit: string
The currency's ISO 4217 three-letter code.
-
value: number
(double)
A signed floating-point number whose sign depends on the API context.
objectDiscriminator Values
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Discriminator: @type-allOf[1]
An amount, usually monetary, that modifies the price charged for an order item.
object-
applicationDuration: integer
The duration for which the alteration applies to the order item price (for example: 2 months free of charge for the recurring charge).
-
description: string
Explains the semantics of this order item price alteration.
-
name: string
The order item price alteration name.
-
price(required):
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "Price":"#/components/schemas/Price_MVO" } } -
priceType(required): string
The price category (for example: recurring, one time, or usage).
-
priority: integer
The priority for applying this alteration among all defined alterations on the order item price.
-
productOfferingPrice:
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductOfferingPriceRef":"#/components/schemas/ProductOfferingPriceRef_MVO" } } -
recurringChargePeriod: string
Specifies the recurring charge period (for example: month or week).
-
unitOfMeasure: string
Specifies the unit of measure (for example: minutes or GB).
object-
version: string
The product offering price version.
objectDiscriminator Values
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
allOf
EntityRef
-
object
Discriminator: @type-allOf[2]
Describes relationships between products.
object-
id: string
The related product's ID.
-
relationshipType: string
Specifies the relationship type (for example: bundledBy, bundles, tiedDiscount, or tiedProduct).
objectDiscriminator Values
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
allOf
EntityRef
object-
cycleEnd:
CycleEndRef_MVO
-
cycleStart:
CycleStartRef_MVO
-
productPrice: array
productPrice
-
productRelationship: array
productRelationship
-
purchaseEnd:
PurchaseEndRef_MVO
-
purchaseStart:
PurchaseStartRef_MVO
-
quantity: integer
Specifies the service quantity when creating a purchase product.
-
specialRatingProfile:
SpecialRatingProfile_MVO
Mutable fields for a product-linked special rating profile.
-
tieId: string
Specifies the tie ID for tiedDiscount/tiedProduct scenarios.
-
usageEnd:
UsageEndRef_MVO
-
usageStart:
UsageStartRef_MVO
-
object
CPUDatesExtension_MVO
Contains common properties for all CPU extension date.
-
object
CycleEndRef_MVO-allOf[1]
CycleEnd reference. Provides details about the cycle end date for a purchased product.
-
object
CPUDatesExtension_MVO
Contains common properties for all CPU extension date.
-
object
CycleStartRef_MVO-allOf[1]
CycleStart reference. Provides details about the cycle start date for a purchased product.
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductPrice":"#/components/schemas/ProductPriceOracle_MVO" } }
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductRelationship":"#/components/schemas/ProductRelationshipOracle_MVO" } }
-
object
CPUDatesExtension_MVO
Contains common properties for all CPU extension date.
-
object
PurchaseEndRef_MVO-allOf[1]
PurchaseEnd reference. A PurchaseEnd contains details regarding purchase end date for purchased product.
-
object
CPUDatesExtension_MVO
Contains common properties for all CPU extension date.
-
object
PurchaseStartRef_MVO-allOf[1]
PurchaseStart reference. Provides details about the purchase start date for a purchased product.
object-
@type: string
Identifies the service extended rating profile type.
-
data: array
data
The rating attribute values used by rating.
-
id: string
The profile identifier.
-
label: string
The label used to identify the special rating profile in rating rules.
-
name: string
The special rating profile name.
-
referenceCount: integer
The special rating profile reference count.
-
status: string
Allowed Values:
[ "noop", "provisioning", "provisioningFailed", "active", "unprovisioning", "unprovisioningFailed", "unprovisioned", "suspending", "suspendingFailed", "suspended" ]The special rating profile provisioning status.
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
SpecialRatingProfile_MVO-allOf[1]
-
object
CPUDatesExtension_MVO
Contains common properties for all CPU extension date.
-
object
UsageEndRef_MVO-allOf[1]
UsageEnd reference. Provides details about the usage end date for a purchased product.
-
object
CPUDatesExtension_MVO
Contains common properties for all CPU extension date.
-
object
UsageStartRef_MVO-allOf[1]
UsageStart reference. Provides details about the usage start date for a purchased product.
object-
amount(required): integer
Indicates the amount of time of a given unit.
-
unit(required): string
Allowed Values:
[ "seconds", "minutes", "hours", "days", "months", "acct_cycles", "first_usage", "absolute" ]Indicates the unit of time for the CPU extension date: seconds, minutes, hours, days, months, acct_cycles, first_usage, or absolute.
objectobjectobjectDiscriminator Values
-
object
allOf
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductPrice":"#/components/schemas/ProductPrice_MVO" } } -
object
Discriminator: @type-allOf[1]
A description of the price and discount awarded.
object-
priceAlteration: array
priceAlteration
-
priceType(required): string
Allowed Values:
[ "oneTime", "recurring" ]The price type: one-time or recurring.
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "PriceAlteration":"#/components/schemas/PriceAlterationOracle_MVO" } }
objectDiscriminator Values
-
object
allOf
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "PriceAlteration":"#/components/schemas/PriceAlteration_MVO" } } -
object
Discriminator: @type-allOf[1]
Is an amount, usually of money, that modifies the price charged for an order item.
object-
priceType: string
Allowed Values:
[ "AmountOverride", "DiscountPercentageOverride", "DiscountAmountOverride" ]A category that describes the price, such as AmountOverride, DiscountPercentageOverride, or DiscountAmountOverride.
objectDiscriminator Values
-
object
allOf
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductRelationship":"#/components/schemas/ProductRelationship_MVO" } } -
object
Discriminator: @type-allOf[1]
Used to describe relationship between product.
object-
id(required): string
Id of the related product
-
relationshipType(required): string
Allowed Values:
[ "bundles", "bundledBy", "tiedDiscount", "tiedProduct" ]Relationship type as relies on, bundles, etc...
objectobjectarray-
Array of:
object SpecialRatingProfileData
A name/value entry for a product-linked special rating profile.
objectobject-
name: string
The profile data attribute name.
-
validFor: object
TimePeriod
Represents a time period with a start date, an end date, or both.
-
value: string
The profile data attribute value.
object-
endDateTime: string
(date-time)
The end of the time period in IETF RFC 3339 format.Example:
1985-04-12T23:20:50.52Z -
startDateTime: string
(date-time)
The start of the time period in IETF RFC 3339 format.Example:
1985-04-12T23:20:50.52Z
objectobjectResponse
200 Response
-
object
allOf
Entity
Represents a base entity schema for TM Forum Open APIs.
-
object
Product-allOf[1]
A product offering procured by a customer or any other party playing a party role. The product is realized as one or more services or resources.
-
allOf
Product
-
object
ProductOracle-allOf[1]
A product offering procured by a customer or other interested party playing a party role. A product is realized as one or more service and/or resources.
object-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Addressable
Defines a base schema for addressable entities.
object-
@baseType: string
The superclass.
-
@schemaLocation: string
The URI of a JSON Schema file that defines additional attributes and relationships.
-
@type(required): string
The subclass Extensible name.
object-
href: string
The hyperlink reference.
-
id: string
The ID.
object-
billingAccount:
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "BillingAccountRef":"#/components/schemas/BillingAccountRef" } } -
description: string
Describes the product. You can copy it from the product offering description.
-
isBundle: boolean
Indicates whether the product is a ProductBundle (true) or a ProductComponent (false).
-
name: string
The product name; it can match the product offering name.
-
product: array
product
-
productCharacteristic: array
productCharacteristic
-
productOffering:
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductOfferingRef":"#/components/schemas/ProductOfferingRef" } } -
productPrice: array
productPrice
-
productRelationship: array
productRelationship
-
realizingService: array
realizingService
-
startDate: string
(date-time)
The date the product starts.
-
status: string
Allowed Values:
[ "created", "pendingActive", "cancelled", "active", "pendingTerminate", "terminated", "suspended", "aborted" ]The possible values for a product's status. -
terminationDate: string
(date-time)
The date the product was terminated.
objectDiscriminator Values
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
allOf
EntityRef
-
object
Discriminator: @type-allOf[2]
Refers to the billing account. The billing account describes the bill structure.
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "Product":"#/components/schemas/Product", "ProductRef":"#/components/schemas/ProductRef", "ProductOracle":"#/components/schemas/ProductOracle" } }The polymorphic attributes (@type, @schemaLocation, and @referredType) apply to the Product entity, not to the ProductRefOrValue class.
objectDiscriminator Values
-
allOf
EntityRef
-
object
Discriminator: @type-allOf[1]
Represents entities that are orderable from the catalog provider. This resource includes pricing information.
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductPrice":"#/components/schemas/ProductPrice" } }
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductRelationship":"#/components/schemas/ProductRelationship" } }
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ServiceRef":"#/components/schemas/ServiceRef" } }The service reference used by other entities.
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Addressable
Defines a base schema for addressable entities.
-
object
EntityRef-allOf[2]
Represents an entity reference schema for EntityRef classes.
object-
@referredType: string
The actual type of the target instance when needed for disambiguation.
-
href: string
The URI of the referred entity.
-
id(required): string
The identifier of the referred entity.
-
name: string
The referred entity's name.
object-
ratingType: string
Indicates if the account follows a specific payment option such as prepaid or postpaid.
objectDiscriminator Values
-
Product
-
object
ProductRef
A product reference.
-
ProductOracle
object-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
allOf
EntityRef
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Characteristic-allOf[1]
Describes a given characteristic of an object or entity through a name/value pair.
object-
characteristicRelationship: array
characteristicRelationship
-
id: string
The characteristic's ID.
-
name: string
The characteristic's name.
-
valueType: string
The characteristic value's data type.
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
CharacteristicRelationship-allOf[1]
The related characteristic.
object-
id: string
The characteristic's ID.
-
relationshipType: string
The relationship type.
object-
version: string
Version of the product offering
objectDiscriminator Values
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Discriminator: @type-allOf[1]
Describes the price and any discount awarded.
object-
description: string
A description of the product price.
-
name: string
The name of the product price.
-
price:
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "Price":"#/components/schemas/Price" } } -
priceAlteration: array
priceAlteration
-
priceType: string
Indicates whether the price is for a recurring or a non-recurring charge.
-
productOfferingPrice:
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductOfferingPriceRef":"#/components/schemas/ProductOfferingPriceRef" } } -
recurringChargePeriod: string
Indicates the period for a recurring charge (for example: month or week).
-
unitOfMeasure: string
Unit of measure if the price depends on it (for example: GB or SMS volume).
objectDiscriminator Values
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Discriminator: @type-allOf[1]
Provides monetary amounts (tax included, duty-free), currency, and percentages to apply to Price and PriceAlteration.
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "PriceAlteration":"#/components/schemas/PriceAlteration" } }
objectDiscriminator Values
-
allOf
EntityRef
-
object
Discriminator: @type-allOf[1]
An amount, usually monetary, that is asked for or allowed when a ProductOffering is bought, rented, or leased.
object-
dutyFreeAmount: object
Money
Represents a monetary amount.
-
percentage: number
(float)
The percentage to apply to a product offering price alteration.
-
taxIncludedAmount: object
Money
Represents a monetary amount.
-
taxRate: number
(float)
The tax rate.
object-
unit: string
The currency's ISO 4217 three-letter code.
-
value: number
(double)
A signed floating-point number whose sign depends on the API context.
objectDiscriminator Values
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Discriminator: @type-allOf[1]
An amount, usually monetary, that modifies the price charged for an order item.
object-
applicationDuration: integer
The duration for which the alteration applies to the order item price (for example: 2 months free of charge for the recurring charge).
-
description: string
Describes the semantics of this order item price alteration.
-
name: string
The order item price alteration name.
-
price:
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "Price":"#/components/schemas/Price" } } -
priceType: string
The price category (for example: recurring, one time, or usage).
-
priority: integer
The priority for applying this alteration among all defined alterations on the order item price.
-
productOfferingPrice:
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductOfferingPriceRef":"#/components/schemas/ProductOfferingPriceRef" } } -
recurringChargePeriod: string
Specifies the recurring charge period (for example: month or week).
-
unitOfMeasure: string
Specifies the unit of measure (for example: minutes or GB).
object-
version: string
The product offering price version.
objectDiscriminator Values
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
allOf
EntityRef
-
object
Discriminator: @type-allOf[2]
Describes the relationship between products.
object-
id: string
The related product's ID.
-
relationshipType: string
Specifies the relationship type (for example: bundledBy, bundles, tiedDiscount, or tiedProduct).
objectDiscriminator Values
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
allOf
EntityRef
object-
cycleEnd:
CycleEndRef
-
cycleEndDate: string
(date-time)
The purchased product cycle end date.
-
cycleStart:
CycleStartRef
-
cycleStartDate: string
(date-time)
The purchased product cycle start date.
-
gracePeriod:
GracePeriodRef
-
productPrice: array
productPrice
-
productRelationship: array
productRelationship
-
purchaseEnd:
PurchaseEndRef
-
purchaseEndDate: string
(date-time)
The purchased product purchase end date.
-
purchaseStart:
PurchaseStartRef
-
purchaseStartDate: string
(date-time)
The purchased product purchase start date.
-
quantity: integer
Is the quantity of service while creation of a purchase product.
-
specialRatingProfile:
specialRatingProfile
Service extended rating profile linked to the product.
-
usageEnd:
UsageEndRef
-
usageEndDate: string
(date-time)
The purchased product usage end date.
-
usageStart:
UsageStartRef
-
usageStartDate: string
(date-time)
The purchased product usage start date.
-
object
CPUDatesExtension_FVO
Contains the CPU extension dates' common properties.
-
object
CycleEndRef-allOf[1]
CycleEnd reference. A CycleEnd contains details regarding cycle end date for purchased product.
-
object
CPUDatesExtension_FVO
Contains the CPU extension dates' common properties.
-
object
CycleStartRef-allOf[1]
CycleStart reference. A CycleStart contains details regarding cycle start date for purchased product.
-
object
CPUDatesExtension_FVO
Contains the CPU extension dates' common properties.
-
object
GracePeriodRef-allOf[1]
GracePeriod reference. A GracePeriod contains details regarding grace period date for purchased product.
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductPrice":"#/components/schemas/ProductPriceOracle" } }
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductRelationship":"#/components/schemas/ProductRelationshipOracle" } }
-
object
CPUDatesExtension_FVO
Contains the CPU extension dates' common properties.
-
object
PurchaseEndRef-allOf[1]
PurchaseEnd reference. A PurchaseEnd contains details regarding purchase end date for purchased product.
-
object
CPUDatesExtension_FVO
Contains the CPU extension dates' common properties.
-
object
PurchaseStartRef-allOf[1]
PurchaseStart reference. A PurchaseStart contains details regarding purchase start date for purchased product.
-
object
allOf
SpecialRatingProfile
Represents a product-linked special rating profile instance for BRM service extended rating.
-
object
CPUDatesExtension_FVO
Contains the CPU extension dates' common properties.
-
object
UsageEndRef-allOf[1]
UsageEnd reference. A UsageEnd contains details regarding usage end date for purchased product.
-
object
CPUDatesExtension_FVO
Contains the CPU extension dates' common properties.
-
object
UsageStartRef-allOf[1]
UsageStart reference. A UsageStart contains details regarding usage start date for purchased product.
object-
amount(required): integer
Indicates the amount of time of a given unit.
-
unit(required): string
Allowed Values:
[ "seconds", "minutes", "hours", "days", "months", "acct_cycles", "first_usage", "absolute" ]Indicates the unit of time for the CPU extension date. Can be "seconds", "minutes", "hours", "days", "months", "acct_cycles", "first_usage" and "absolute".
objectobjectobjectobjectDiscriminator Values
-
object
allOf
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductPrice":"#/components/schemas/ProductPrice" } } -
object
Discriminator: @type-allOf[1]
A description of the price and discount awarded.
object-
priceAlteration(required): array
priceAlteration
-
priceType(required): string
Allowed Values:
[ "oneTime", "recurring" ]The price type: one-time or recurring.
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "PriceAlteration":"#/components/schemas/PriceAlterationOracle" } }
objectDiscriminator Values
-
object
allOf
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "PriceAlteration":"#/components/schemas/PriceAlteration" } } -
object
Discriminator: @type-allOf[1]
Is an amount, usually of money, that modifies the price charged for an order item.
object-
priceType: string
Allowed Values:
[ "AmountOverride", "DiscountPercentageOverride", "DiscountAmountOverride" ]A category that describes the price, such as AmountOverride, DiscountPercentageOverride, or DiscountAmountOverride.
objectDiscriminator Values
-
object
allOf
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductRelationship":"#/components/schemas/ProductRelationship" } } -
object
Discriminator: @type-allOf[1]
Used to describe the relationship between products.
object-
relationshipType(required): string
Allowed Values:
[ "bundles", "bundledBy", "tiedDiscount", "tiedProduct" ]The relationship type: bundles, bundledBy, tiedDiscount, tiedProduct.
objectobjectobject-
@type: string
Identifies the service extended rating profile type.
-
data: array
data
The rating attribute values used by rating.
-
id: string
The profile identifier.
-
label: string
The label used to identify the special rating profile in rating rules.
-
name: string
The special rating profile name.
-
referenceCount: integer
The special rating profile reference count.
-
status: string
Allowed Values:
[ "noop", "provisioning", "provisioningFailed", "active", "unprovisioning", "unprovisioningFailed", "unprovisioned", "suspending", "suspendingFailed", "suspended" ]The special rating profile provisioning status.
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
SpecialRatingProfile-allOf[1]
objectobjectobject202 Response
400 Response
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Error-allOf[1]
object-
@baseType: string
The superclass.
-
@schemaLocation: string
The URI of a JSON Schema file that defines additional attributes and relationships.
-
@type(required): string
The subclass Extensible name.
object-
code(required): string
The application-specific error detail defined by the API or a common list.
-
message: string
Provides error details and corrective actions for a client user.
-
reason(required): string
Explains the error to a client user.
-
referenceError: string
The URI of documentation that describes the error.
-
status: string
The HTTP error code extension.
401 Response
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Error-allOf[1]
object-
@baseType: string
The superclass.
-
@schemaLocation: string
The URI of a JSON Schema file that defines additional attributes and relationships.
-
@type(required): string
The subclass Extensible name.
object-
code(required): string
The application-specific error detail defined by the API or a common list.
-
message: string
Provides error details and corrective actions for a client user.
-
reason(required): string
Explains the error to a client user.
-
referenceError: string
The URI of documentation that describes the error.
-
status: string
The HTTP error code extension.
403 Response
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Error-allOf[1]
object-
@baseType: string
The superclass.
-
@schemaLocation: string
The URI of a JSON Schema file that defines additional attributes and relationships.
-
@type(required): string
The subclass Extensible name.
object-
code(required): string
The application-specific error detail defined by the API or a common list.
-
message: string
Provides error details and corrective actions for a client user.
-
reason(required): string
Explains the error to a client user.
-
referenceError: string
The URI of documentation that describes the error.
-
status: string
The HTTP error code extension.
404 Response
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Error-allOf[1]
object-
@baseType: string
The superclass.
-
@schemaLocation: string
The URI of a JSON Schema file that defines additional attributes and relationships.
-
@type(required): string
The subclass Extensible name.
object-
code(required): string
The application-specific error detail defined by the API or a common list.
-
message: string
Provides error details and corrective actions for a client user.
-
reason(required): string
Explains the error to a client user.
-
referenceError: string
The URI of documentation that describes the error.
-
status: string
The HTTP error code extension.
405 Response
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Error-allOf[1]
object-
@baseType: string
The superclass.
-
@schemaLocation: string
The URI of a JSON Schema file that defines additional attributes and relationships.
-
@type(required): string
The subclass Extensible name.
object-
code(required): string
The application-specific error detail defined by the API or a common list.
-
message: string
Provides error details and corrective actions for a client user.
-
reason(required): string
Explains the error to a client user.
-
referenceError: string
The URI of documentation that describes the error.
-
status: string
The HTTP error code extension.
409 Response
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Error-allOf[1]
object-
@baseType: string
The superclass.
-
@schemaLocation: string
The URI of a JSON Schema file that defines additional attributes and relationships.
-
@type(required): string
The subclass Extensible name.
object-
code(required): string
The application-specific error detail defined by the API or a common list.
-
message: string
Provides error details and corrective actions for a client user.
-
reason(required): string
Explains the error to a client user.
-
referenceError: string
The URI of documentation that describes the error.
-
status: string
The HTTP error code extension.
500 Response
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Error-allOf[1]
object-
@baseType: string
The superclass.
-
@schemaLocation: string
The URI of a JSON Schema file that defines additional attributes and relationships.
-
@type(required): string
The subclass Extensible name.
object-
code(required): string
The application-specific error detail defined by the API or a common list.
-
message: string
Provides error details and corrective actions for a client user.
-
reason(required): string
Explains the error to a client user.
-
referenceError: string
The URI of documentation that describes the error.
-
status: string
The HTTP error code extension.
501 Response
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Error-allOf[1]
object-
@baseType: string
The superclass.
-
@schemaLocation: string
The URI of a JSON Schema file that defines additional attributes and relationships.
-
@type(required): string
The subclass Extensible name.
object-
code(required): string
The application-specific error detail defined by the API or a common list.
-
message: string
Provides error details and corrective actions for a client user.
-
reason(required): string
Explains the error to a client user.
-
referenceError: string
The URI of documentation that describes the error.
-
status: string
The HTTP error code extension.
503 Response
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Error-allOf[1]
object-
@baseType: string
The superclass.
-
@schemaLocation: string
The URI of a JSON Schema file that defines additional attributes and relationships.
-
@type(required): string
The subclass Extensible name.
object-
code(required): string
The application-specific error detail defined by the API or a common list.
-
message: string
Provides error details and corrective actions for a client user.
-
reason(required): string
Explains the error to a client user.
-
referenceError: string
The URI of documentation that describes the error.
-
status: string
The HTTP error code extension.
Examples
-
Example 1: Enabling Service Grouping for Parent and Child Products
-
Example 2: Replacing Services in a Service Group Using Product Relationships
-
Example 3: Enabling Service Grouping for Parent and Child Products (Custom Payload)
-
Example 4: Replacing Services in a Service Group Using Product Relationships (Custom Payload)
-
Example 5: Creating a Discount Sharing Group (Community Member N to Y)
-
Example 7: Removing a Generated Discount Sharing Group Without a Community Offer
-
Example 10: Replacing Community Member or Community Offer Characteristics (JSON Patch)
-
Example 11: Removing Community Member or Community Offer Characteristics (JSON Patch)
-
Example 12: Adding Community Member or Community Offer Characteristics (JSON Patch)
-
Example 14: Updating an ERA Special Rating Profile (Custom Payload)
-
Example 15: Replacing a Value in an ERA Special Rating Profile (Custom Payload; JSON Patch)
-
Example 23: Replacing a Product Price Array with A Specific priceType (JSON Patch)
-
Example 24: Removing a Product Price Array with a Specific priceType (JSON Patch)
-
Example 25: Adding a New Service Alias Name to a Product Characteristic (JSON Patch)
-
Example 26: Removing a Service Alias Name in a Product Characteristic (JSON Patch)
-
Example 27: Adding a Tied Discount Relationship (JSON Patch)
-
Example 29: Removing a Tied Product or Discount (JSON Patch)
Example 1: Enabling Service Grouping for Parent and Child Products
This example shows how to enable service grouping for a hierarchy of parent and child products by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+536560' -H 'Content-Type: application/json' -d @sampleRequest1.json
Request Body
The following example shows the contents of the sampleRequest1.json file sent as the request body.
{
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "parent_sub30",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Service Grouping",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic_FVO"
}
]
}
Response Body
The following example shows the response body.
{
"productRelationship": [
{
"id": "0.0.0.1+-purchased_product+536529",
"relationshipType": "bundles",
"@type": "ProductRelationshipOracle"
},
{
"id": "0.0.0.1+-purchased_product+536530",
"relationshipType": "bundles",
"@type": "ProductRelationshipOracle"
}
],
"@type": "ProductOracle",
"product": [
{
"productRelationship": [
{
"id": "0.0.0.1+-purchased_product+536560",
"relationshipType": "bundledBy",
"@type": "ProductRelationshipOracle"
}
],
"@type": "ProductOracle",
"terminationDate": "2020-01-02T08:00:00.00Z",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"status": "active",
"id": "0.0.0.1+-purchased_product+536529",
"href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+536529",
"billingAccount": {
"id": "0.0.0.1+-account+734874",
"name": "Junior Walter",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "",
"@type": "ServiceRef"
}
],
"isBundle": false,
"name": "Voice Over SMS",
"description": "Test description",
"productOffering": {
"name": "Standard SMS",
"id": "0.0.0.1+-product+709357",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "child_sub_sms30",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/sms",
"@type": "StringCharacteristic"
}
],
"quantity": 1,
"startDate": "2018-01-01T08:00:00.00Z"
},
{
"productRelationship": [
{
"id": "0.0.0.1+-purchased_product+536560",
"relationshipType": "bundledBy",
"@type": "ProductRelationshipOracle"
}
],
"@type": "ProductOracle",
"terminationDate": "2020-01-02T08:00:00.00Z",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"status": "active",
"id": "0.0.0.1+-purchased_product+536530",
"href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+536530",
"billingAccount": {
"id": "0.0.0.1+-account+734874",
"name": "Junior Walter",
"@type": "BillingAccountRef"
},
"isBundle": false,
"name": "Voice Over GSM Telephony",
"description": "Test description",
"productOffering": {
"name": "Standard GSM Telephony",
"id": "0.0.0.1+-product+709367",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "child_sub_telephony30",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
}
],
"quantity": 1,
"startDate": "2018-01-01T08:00:00.00Z"
}
],
"terminationDate": "2020-01-03T01:30:00.00Z",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"status": "active",
"id": "0.0.0.1+-purchased_product+536560",
"href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+536560",
"billingAccount": {
"id": "0.0.0.1+-account+734874",
"name": "Junior Walter",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "",
"@type": "ServiceRef"
}
],
"isBundle": true,
"name": "Voice Over IP",
"description": "DBE Product Specification instance",
"productOffering": {
"name": "Standard GSM",
"id": "0.0.0.1+-product+709347",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "parent_sub30",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Service Grouping",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
}
],
"quantity": 5,
"startDate": "2018-01-02T01:30:00.00Z"
}
Example 2: Replacing Services in a Service Group Using Product Relationships
This example shows how to replace services in an existing service group using product relationships by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+536560' -H 'Content-Type: application/json' -d @sampleRequest2.json
Request Body
The following example shows the contents of the sampleRequest2.json file sent as the request body.
{
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "parent_sub31",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Service Grouping",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic_FVO"
}
],
"productRelationship": [
{
"id": "0.0.0.1+-purchased_product+536529",
"relationshipType": "bundles",
"@type": "ProductRelationshipOracle"
},
{
"id": "0.0.0.1+-purchased_product+536530",
"relationshipType": "bundles",
"@type": "ProductRelationshipOracle"
}
]
}
Response Body
The following example shows the response body.
{
"productRelationship": [
{
"id": "0.0.0.1+-purchased_product+536529",
"relationshipType": "bundles",
"@type": "ProductRelationshipOracle"
},
{
"id": "0.0.0.1+-purchased_product+536530",
"relationshipType": "bundles",
"@type": "ProductRelationshipOracle"
}
],
"@type": "ProductOracle",
"product": [
{
"productRelationship": [
{
"id": "0.0.0.1+-purchased_product+536560",
"relationshipType": "bundledBy",
"@type": "ProductRelationshipOracle"
}
],
"@type": "ProductOracle",
"terminationDate": "2020-01-02T08:00:00.00Z",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"status": "active",
"id": "0.0.0.1+-purchased_product+536529",
"href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+536529",
"billingAccount": {
"id": "0.0.0.1+-account+734874",
"name": "Junior Walter",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "",
"@type": "ServiceRef"
}
],
"isBundle": false,
"name": "Voice Over SMS",
"description": "Test description",
"productOffering": {
"name": "Standard SMS",
"id": "0.0.0.1+-product+709357",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "child_sub_sms30",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/sms",
"@type": "StringCharacteristic"
}
],
"quantity": 1,
"startDate": "2018-01-01T08:00:00.00Z"
},
{
"productRelationship": [
{
"id": "0.0.0.1+-purchased_product+536560",
"relationshipType": "bundledBy",
"@type": "ProductRelationshipOracle"
}
],
"@type": "ProductOracle",
"terminationDate": "2020-01-02T08:00:00.00Z",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"status": "active",
"id": "0.0.0.1+-purchased_product+536530",
"href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+536530",
"billingAccount": {
"id": "0.0.0.1+-account+734874",
"name": "Junior Walter",
"@type": "BillingAccountRef"
},
"isBundle": false,
"name": "Voice Over GSM Telephony",
"description": "Test description",
"productOffering": {
"name": "Standard GSM Telephony",
"id": "0.0.0.1+-product+709367",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "child_sub_telephony30",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
}
],
"quantity": 1,
"startDate": "2018-01-01T08:00:00.00Z"
}
],
"terminationDate": "2020-01-03T01:30:00.00Z",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"status": "active",
"id": "0.0.0.1+-purchased_product+536560",
"href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+536560",
"billingAccount": {
"id": "0.0.0.1+-account+734874",
"name": "Junior Walter",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "",
"@type": "ServiceRef"
}
],
"isBundle": true,
"name": "Voice Over IP",
"description": "DBE Product Specification instance",
"productOffering": {
"name": "Standard GSM",
"id": "0.0.0.1+-product+709347",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "parent_sub30",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Service Grouping",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
}
],
"quantity": 5,
"startDate": "2018-01-02T01:30:00.00Z"
}
Example 3: Enabling Service Grouping for Parent and Child Products (Custom Payload)
Note:
Key 'externalIdMappingEnabled' should be set to 'true' to use external Ids in custom payloadThis example shows how to enable service grouping for a hierarchy of parent and child products using a custom payload by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/cuke4BRM2_productName_test_new_prod_001080' -H 'Content-Type: application/json' -d @sampleRequest3.json
Request Body
The following example shows the contents of the sampleRequest3.json file sent as the request body.
{
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "parent_sub30",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Service Grouping",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic_FVO"
}
]
}
Response Body
The following example shows the response body.
{
"productRelationship": [
{
"id": "ProductServiceFlattenedSMS1080",
"relationshipType": "bundles",
"@type": "ProductRelationshipOracle"
},
{
"id": "ProductTelephoneyServiceFlattened1080",
"relationshipType": "bundles",
"@type": "ProductRelationshipOracle"
}
],
"@type": "ProductOracle",
"product": [
{
"productRelationship": [
{
"id": "cuke4BRM2_productName_test_new_prod_001080",
"relationshipType": "bundledBy",
"@type": "ProductRelationshipOracle"
}
],
"@type": "ProductOracle",
"terminationDate": "2020-01-02T08:00:00.00Z",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"status": "active",
"id": "ProductServiceFlattenedSMS1080",
"href": "https://host:port/brm/productInventory/v5/product/ProductServiceFlattenedSMS1080",
"billingAccount": {
"id": "cuke4brm-rsm-customer-actno-new71",
"name": "Junior Walter",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "",
"@type": "ServiceRef"
}
],
"isBundle": false,
"name": "Voice Over SMS",
"description": "Test description",
"productOffering": {
"name": "Standard SMS",
"id": "Standard SMS",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "child_sub_sms30",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/sms",
"@type": "StringCharacteristic"
}
],
"quantity": 1,
"startDate": "2018-01-01T08:00:00.00Z"
},
{
"productRelationship": [
{
"id": "cuke4BRM2_productName_test_new_prod_001080",
"relationshipType": "bundledBy",
"@type": "ProductRelationshipOracle"
}
],
"@type": "ProductOracle",
"terminationDate": "2020-01-02T08:00:00.00Z",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"status": "active",
"id": "ProductTelephoneyServiceFlattened1080",
"href": "https://host:port/brm/productInventory/v5/product/ProductTelephoneyServiceFlattened1080",
"billingAccount": {
"id": "cuke4brm-rsm-customer-actno-new71",
"name": "Junior Walter",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "",
"@type": "ServiceRef"
}
],
"isBundle": false,
"name": "Voice Over GSM Telephony",
"description": "Test description",
"productOffering": {
"name": "Standard GSM Telephony",
"id": "Standard GSM Telephony",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "child_sub_telephony30",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
}
],
"quantity": 1,
"startDate": "2018-01-01T08:00:00.00Z"
}
],
"terminationDate": "2020-01-03T01:30:00.00Z",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"status": "active",
"id": "cuke4BRM2_productName_test_new_prod_001080",
"href": "https://host:port/brm/productInventory/v5/product/cuke4BRM2_productName_test_new_prod_001080",
"billingAccount": {
"id": "cuke4brm-rsm-customer-actno-new71",
"name": "Junior Walter",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "",
"@type": "ServiceRef"
}
],
"isBundle": true,
"name": "Voice Over IP",
"description": "DBE Product Specification instance",
"productOffering": {
"name": "",
"id": "",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "parent_sub30",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Service Grouping",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
}
],
"quantity": 5,
"startDate": "2018-01-02T01:30:00.00Z"
}
Example 4: Replacing Services in a Service Group Using Product Relationships (Custom Payload)
Note:
Key 'externalIdMappingEnabled' should be set to 'true' to use external Ids in custom payloadThis example shows how to replace services in an existing service group using product relationships and a custom payload by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/cuke4BRM2_productName_test_new_prod_001081' -H 'Content-Type: application/json' -d @sampleRequest4.json
Request Body
The following example shows the contents of the sampleRequest4.json file sent as the request body.
{
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "parent_sub31",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Service Grouping",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic_FVO"
}
],
"productRelationship": [
{
"id": "ProductServiceFlattenedSMS1081",
"relationshipType": "bundles",
"@type": "ProductRelationshipOracle"
},
{
"id": "ProductTelephoneyServiceFlattened1081",
"relationshipType": "bundles",
"@type": "ProductRelationshipOracle"
}
]
}
Response Body
The following example shows the response body.
{
"productRelationship": [
{
"id": "ProductServiceFlattenedSMS1081",
"relationshipType": "bundles",
"@type": "ProductRelationshipOracle"
},
{
"id": "ProductTelephoneyServiceFlattened1081",
"relationshipType": "bundles",
"@type": "ProductRelationshipOracle"
}
],
"@type": "ProductOracle",
"product": [
{
"productRelationship": [
{
"id": "cuke4BRM2_productName_test_new_prod_001081",
"relationshipType": "bundledBy",
"@type": "ProductRelationshipOracle"
}
],
"@type": "ProductOracle",
"terminationDate": "2020-01-02T08:00:00.00Z",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"status": "active",
"id": "ProductServiceFlattenedSMS1080",
"href": "https://host:port/brm/productInventory/v5/product/ProductServiceFlattenedSMS1080",
"billingAccount": {
"id": "cuke4brm-rsm-customer-actno-new71",
"name": "Junior Walter",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "",
"@type": "ServiceRef"
}
],
"isBundle": false,
"name": "Voice Over SMS",
"description": "Test description",
"productOffering": {
"name": "Standard SMS",
"id": "Standard SMS",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "child_sub_sms31",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/sms",
"@type": "StringCharacteristic"
}
],
"quantity": 1,
"startDate": "2018-01-01T08:00:00.00Z"
},
{
"productRelationship": [
{
"id": "cuke4BRM2_productName_test_new_prod_001081",
"relationshipType": "bundledBy",
"@type": "ProductRelationshipOracle"
}
],
"@type": "ProductOracle",
"terminationDate": "2020-01-02T08:00:00.00Z",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"status": "active",
"id": "ProductTelephoneyServiceFlattened1080",
"href": "https://host:port/brm/productInventory/v5/product/ProductTelephoneyServiceFlattened1080",
"billingAccount": {
"id": "cuke4brm-rsm-customer-actno-new71",
"name": "Junior Walter",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "",
"@type": "ServiceRef"
}
],
"isBundle": false,
"name": "Voice Over GSM Telephony",
"description": "Test description",
"productOffering": {
"name": "Standard GSM Telephony",
"id": "Standard GSM Telephony",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "child_sub_telephony31",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
}
],
"quantity": 1,
"startDate": "2018-01-01T08:00:00.00Z"
}
],
"terminationDate": "2020-01-03T01:30:00.00Z",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"status": "active",
"id": "cuke4BRM2_productName_test_new_prod_001081",
"href": "https://host:port/brm/productInventory/v5/product/cuke4BRM2_productName_test_new_prod_001080",
"billingAccount": {
"id": "cuke4brm-rsm-customer-actno-new71",
"name": "Junior Walter",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "",
"@type": "ServiceRef"
}
],
"isBundle": true,
"name": "Voice Over IP",
"description": "DBE Product Specification instance",
"productOffering": {
"name": "",
"id": "",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "parent_sub31",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Service Grouping",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
}
],
"quantity": 5,
"startDate": "2018-01-02T01:30:00.00Z"
}
Example 5: Creating a Discount Sharing Group (Community Member N to Y)
This example shows how to generate a Discount Sharing Group by changing Community Member from N to Y by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+227645' -H 'Content-Type: application/json' -d @sampleRequest5.json
Request Body
The following example shows the contents of the sampleRequest5.json file sent as the request body.
{
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "tc03-service",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Service Grouping",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
},
{
"name": "Community Member",
"valueType": "string",
"value": "Y"
}
]
}
Response Body
The following example shows the response body.
{
"@type": "Product",
"id": "0.0.0.1+-purchased_product+227645",
"href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+227645",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+224482",
"name": "parent-billunit ",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+228413",
"@type": "ServiceRef"
}
],
"isBundle": true,
"name": "TC03 No Discount Sharing Group",
"description": "",
"productOffering": {
"id": "0.0.0.1+-product+64390",
"name": "Standard GSM Telephony",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "tc03-service",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Service Grouping",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Community Member",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
}
],
"quantity": 1
}
Example 6: Renaming a Discount Sharing Group
This example shows how to change a Discount Sharing Group group name by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+227645' -H 'Content-Type: application/json' -d @sampleRequest6.json
Request Body
The following example shows the contents of the sampleRequest6.json file sent as the request body.
{
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "tc03-service",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Service Grouping",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
},
{
"name": "Community Member",
"valueType": "string",
"value": "Discount Sharing GroupNameTC03"
}
]
}
Response Body
The following example shows the response body.
{
"@type": "Product",
"id": "0.0.0.1+-purchased_product+227645",
"href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+227645",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+224482",
"name": "parent-billunit ",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+228413",
"@type": "ServiceRef"
}
],
"isBundle": true,
"name": "TC03 No Discount Sharing Group",
"description": "",
"productOffering": {
"id": "0.0.0.1+-product+64390",
"name": "Standard GSM Telephony",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "tc03-service",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Community Member",
"valueType": "string",
"value": "Discount Sharing GroupNameTC03",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Service Grouping",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
}
],
"quantity": 1
}
Example 7: Removing a Generated Discount Sharing Group Without a Community Offer
This example shows how to delete a generated Discount Sharing Group by patching product characteristics without Community Offer by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+227645' -H 'Content-Type: application/json' -d @sampleRequest7.json
Request Body
The following example shows the contents of the sampleRequest7.json file sent as the request body.
{
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "tc03-service",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Service Grouping",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
}
]
}
Response Body
The following example shows the response body.
{
"@type": "Product",
"id": "0.0.0.1+-purchased_product+227645",
"href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+227645",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+224482",
"name": "parent-billunit ",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+228413",
"@type": "ServiceRef"
}
],
"isBundle": true,
"name": "TC03 No Discount Sharing Group",
"description": "",
"productOffering": {
"id": "0.0.0.1+-product+64390",
"name": "Standard GSM Telephony",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "tc03-service",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Service Grouping",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
}
],
"quantity": 1
}
Example 8: Updating a Community Offer
This example shows how to update Community Offer to Discount Sharing Group07Name by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_discount+222546' -H 'Content-Type: application/json' -d @sampleRequest8.json
Request Body
The following example shows the contents of the sampleRequest8.json file sent as the request body.
{
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "tc07z-member-service",
"@type": "StringCharacteristic"
},
{
"name": "Community Offer",
"valueType": "string",
"value": "Discount Sharing Group07Name"
}
]
}
Response Body
The following example shows the response body.
{
"productRelationship": [
{
"id": "0.0.0.1+-purchased_product+224850",
"relationshipType": "bundledBy",
"@type": "ProductRelationship"
}
],
"@type": "Product",
"id": "0.0.0.1+-purchased_discount+222546",
"href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_discount+222546",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+206471",
"name": "parent-billunit ",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+221266",
"@type": "ServiceRef"
}
],
"isBundle": false,
"name": "TC07 Shared Minutes Discount",
"description": "",
"productOffering": {
"id": "0.0.0.1+-discount+61766",
"name": "Standard GSM Discount",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "tc07z-member-service",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Community Offer",
"valueType": "string",
"value": "Discount Sharing Group07Name",
"@type": "StringCharacteristic"
}
],
"quantity": 1
}
Example 9: Removing a Discount from a Community Offer
This example shows how to remove a discount from a community offer by setting Community Offer to N by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_discount+222546' -H 'Content-Type: application/json' -d @sampleRequest9.json
Request Body
The following example shows the contents of the sampleRequest9.json file sent as the request body.
{
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "tc07z-member-service",
"@type": "StringCharacteristic"
},
{
"name": "Community Offer",
"valueType": "string",
"value": "N"
}
]
}
Response Body
The following example shows the response body.
{
"productRelationship": [
{
"id": "0.0.0.1+-purchased_product+224850",
"relationshipType": "bundledBy",
"@type": "ProductRelationship"
}
],
"@type": "Product",
"id": "0.0.0.1+-purchased_discount+222546",
"href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_discount+222546",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+206471",
"name": "parent-billunit ",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+221266",
"@type": "ServiceRef"
}
],
"isBundle": false,
"name": "TC07 Shared Minutes Discount",
"description": "",
"productOffering": {
"id": "0.0.0.1+-discount+61766",
"name": "Standard GSM Discount",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "tc07z-member-service",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Community Offer",
"valueType": "string",
"value": "N",
"@type": "StringCharacteristic"
}
],
"quantity": 1
}
Example 10: Replacing Community Member or Community Offer Characteristics (JSON Patch)
Note:
To generate JSON PATCH payloads, set the content type to application/json-patch+json or application/json-patch-query+json.This example shows how to replace a Community Member characteristic from N to Y using JSON Patch by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+227645' -H 'Content-Type: application/json-patch-query+json' -d @sampleRequest10.json
Request Body
The following example shows the contents of the sampleRequest10.json file sent as the request body.
[
{
"op": "replace",
"path": "$.productCharacteristic[?(@.name=='Community Member' && @.value=='N' && @.valueType=='string')]",
"value": {
"name": "Community Member",
"valueType": "string",
"value": "Y"
}
}
]
Response Body
The following example shows the response body.
{
"@type": "Product",
"id": "0.0.0.1+-purchased_product+227645",
"href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+227645",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+224482",
"name": "parent-billunit ",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+228413",
"@type": "ServiceRef"
}
],
"isBundle": true,
"name": "TC03 No Discount Sharing Group",
"description": "",
"productOffering": {
"id": "0.0.0.1+-product+64390",
"name": "Standard GSM Telephony",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "tc03-service",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Community Member",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Service Grouping",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
}
],
"quantity": 1
}
Example 11: Removing Community Member or Community Offer Characteristics (JSON Patch)
Note:
To generate JSON PATCH payloads, set the content type to application/json-patch+json or application/json-patch-query+json.This example shows how to remove a Community Offer characteristic using JSON Patch by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_discount+222546' -H 'Content-Type: application/json-patch-query+json' -d @sampleRequest11.json
Request Body
The following example shows the contents of the sampleRequest11.json file sent as the request body.
[
{
"op": "remove",
"path": "$.productCharacteristic[?(@.name=='Community Offer' && @.value=='N' && @.valueType=='string')]"
}
]
Response Body
The following example shows the response body.
{
"productRelationship": [
{
"id": "0.0.0.1+-purchased_product+224850",
"relationshipType": "bundledBy",
"@type": "ProductRelationship"
}
],
"@type": "Product",
"id": "0.0.0.1+-purchased_discount+222546",
"href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_discount+222546",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+206471",
"name": "parent-billunit ",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+221266",
"@type": "ServiceRef"
}
],
"isBundle": false,
"name": "TC07 Shared Minutes Discount",
"description": "",
"productOffering": {
"id": "0.0.0.1+-discount+61766",
"name": "Standard GSM Discount",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "tc07z-member-service",
"@type": "StringCharacteristic"
}
],
"quantity": 1
}
Example 12: Adding Community Member or Community Offer Characteristics (JSON Patch)
Note:
To generate JSON PATCH payloads, set the content type to application/json-patch+json or application/json-patch-query+json.This example shows how to add a Community Member characteristic using JSON Patch by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+217329' -H 'Content-Type: application/json-patch-query+json' -d @sampleRequest12.json
Request Body
The following example shows the contents of the sampleRequest12.json file sent as the request body.
[
{
"op": "add",
"path": "$.productCharacteristic",
"value": {
"name": "Community Member",
"valueType": "string",
"value": "Y"
}
}
]
Response Body
The following example shows the response body.
{
"@type": "Product",
"id": "0.0.0.1+-purchased_product+217329",
"href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+217329",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+207737",
"name": "parent-billunit ",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+218481",
"@type": "ServiceRef"
}
],
"isBundle": true,
"name": "TC04 Owner Service",
"description": "",
"productOffering": {
"id": "0.0.0.0++0",
"name": "",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "tc04-owner-service-ob",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Service Grouping",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Community Member",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
}
],
"quantity": 1
}
Example 13: Updating CPU Dates
This example shows how to update CPU dates and quantity by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+190602' -H 'Content-Type: application/json' -d @sampleRequest13.json
Request Body
The following example shows the contents of the sampleRequest13.json file sent as the request body.
{
"@type": "Product",
"quantity": 2,
"cycleStart": {
"amount": 10,
"unit": "days"
},
"usageStart": {
"amount": 10,
"unit": "days"
},
"purchaseStart": {
"amount": 10,
"unit": "days"
},
"cycleEnd": {
"amount": 2,
"unit": "months"
},
"usageEnd": {
"amount": 2,
"unit": "months"
},
"purchaseEnd": {
"amount": 2,
"unit": "months"
}
}
Response Body
The following example shows the response body.
{
"@type": "Product",
"cycleStart": {
"unit": "days",
"amount": 10
},
"purchaseStart": {
"unit": "days",
"amount": 10
},
"purchaseEnd": {
"unit": "months",
"amount": 2
},
"id": "0.0.0.1+-purchased_product+190602",
"href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+219251",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+211178",
"name": "child-billunit ",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "0.0.0.1+-service-ip+220083",
"@type": "ServiceRef"
}
],
"usageEnd": {
"unit": "months",
"amount": 2
},
"isBundle": true,
"name": "Voice Over IP12",
"description": "Test description",
"productOffering": {
"id": "0.0.0.1+-product+47039",
"name": "Product 1a - Internet Access",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/ip",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServicePassword",
"valueType": "string",
"value": "Cgbu1234#",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceLogin",
"valueType": "string",
"value": "OotbNewServiceLoginIpCPUDates_0001",
"@type": "StringCharacteristic"
}
],
"usageStart": {
"unit": "days",
"amount": 10
},
"cycleEnd": {
"unit": "months",
"amount": 2
},
"quantity": 2
}
Example 14: Updating an ERA Special Rating Profile (Custom Payload)
Note:
Key 'externalIdMappingEnabled' should be set to 'true' to use external Ids in custom payloadThis example shows how to update an existing ERA special rating profile using a custom payload by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/ERA_PROD_DBE_p040_notification' -H 'Content-Type: application/json' -d @sampleRequest14.json
Request Body
The following example shows the contents of the sampleRequest14.json file sent as the request body.
{
"@type": "Product",
"specialRatingProfile": {
"@type": "SpecialRatingProfile",
"name": "FRIENDS_FAMILY",
"label": "DBE priority contacts",
"status": "active",
"referenceCount": 1,
"data": [
{
"name": "dummy",
"value": "120842301897231",
"validFor": {
"startDateTime": "2026-04-02T18:23:39Z",
"endDateTime": "2026-07-27T12:10:19Z"
}
}
]
}
}
Response Body
The following example shows the response body.
{
"isBundle": false,
"productOffering": {
"id": ""
},
"@type": "Product",
"specialRatingProfile": {
"id": "ExistingSpecialRatingProfile",
"@type": "SpecialRatingProfile",
"name": "FRIENDS_FAMILY",
"label": "DBE priority contacts",
"status": "active",
"referenceCount": 1,
"data": [
{
"name": "dummy",
"value": "120842301897231",
"validFor": {
"startDateTime": "2026-04-02T18:23:39Z",
"endDateTime": "2026-07-27T12:10:19Z"
}
}
]
},
"productCharacteristic": [
{
"@type": "StringCharacteristic",
"valueType": "string",
"name": "ServiceId",
"id": "ERA_PROD_DBE_p0040notifications_eraNoBundleService",
"value": "cuke4brm_productChar_array_test_40notification_eraNoBundleService"
},
{
"id": "PC_BundledChild_TeenTelephony_044_1fdfasfs",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
}
],
"name": "Voice Over IP",
"description": "DBE Product Specification instance",
"id": "ERA_PROD_DBE_p040_notification",
"billingAccount": {
"id": "cuke4brm-rsm-customer-actno-new70"
},
"realizingService": [
{
"id": "one_product_characteristic2_notification"
}
],
"status": "active"
}
Example 15: Replacing a Value in an ERA Special Rating Profile (Custom Payload; JSON Patch)
Note:
To generate JSON PATCH payloads, set the content type to application/json-patch+json or application/json-patch-query+json.Note:
Key 'externalIdMappingEnabled' should be set to 'true' to use external Ids in custom payloadThis example shows how to replace a value in an ERA special rating profile using a custom JSON Patch payload by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/SRP_JSON_DBE_REPLACE_001' -H 'Content-Type: application/json-patch-query+json' -d @sampleRequest15.json
Request Body
The following example shows the contents of the sampleRequest15.json file sent as the request body.
[
{
"op": "replace",
"path": "$.specialRatingProfile.data[?(@.name=='dummy3' && @.value=='120842301897233')]",
"value": {
"name": "dummy1",
"value": "120842301897237"
}
}
]
Response Body
The following example shows the response body.
{
"@type": "Product",
"terminationDate": "2020-01-01T08:00:00.00Z",
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"id": "SRP_JSON_DBE_REPLACE_001",
"href": "http://host:port/brm/productInventory/v5/product/SRP_JSON_DBE_REPLACE_001",
"status": "active",
"billingAccount": {
"id": "billing-account-srp-001",
"name": "John ",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "service-srp-001",
"@type": "RealizingService"
}
],
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"specialRatingProfile": {
"id": "SRP_DBE_001",
"@type": "SpecialRatingProfile",
"name": "FRIENDS_FAMILY",
"label": "DBE priority contacts",
"status": "active",
"referenceCount": 1,
"data": [
{
"name": "dummy",
"value": "120842301897231",
"validFor": {
"startDateTime": "2026-04-02T18:23:39Z"
}
},
{
"name": "dummy1",
"value": "120842301897237",
"validFor": {
"startDateTime": "2026-04-02T18:23:39Z"
}
}
]
},
"isBundle": false,
"name": "Voice Over IP12",
"description": "Test description",
"productOffering": {
"id": "Discount-Product",
"name": "Discount-Product",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "MSISDN",
"valueType": "string",
"value": "ERA_PATCHABLE",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "IMEI",
"valueType": "string",
"value": "ERA_PATCHABLE2",
"@type": "StringCharacteristic"
}
],
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"startDate": "2018-01-03T08:00:00.00Z"
}
Example 16: Updating A Product Attribute
This example shows how to update a product attribute by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+192048' -H 'Content-Type: application/json' -d @sampleRequest16.json
Request Body
The following example shows the contents of the sampleRequest16.json file sent as the request body.
{
"@type": "Product",
"description": "Patched Test description"
}
Response Body
The following example shows the response body.
{
"@type": "Product",
"terminationDate": "2020-01-01T08:00:00.00Z",
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_product+192048",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+192048",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+187327",
"name": "John ",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-ip+191536",
"@type": "RealizingService"
}
],
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"isBundle": false,
"name": "Voice Over IP12",
"description": "Patched Test description",
"productOffering": {
"id": "0.0.0.1+-product+41250",
"name": "Product 1a - Internet Access",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/ip",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServicePassword",
"valueType": "string",
"value": "Cgbu1234#",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceLogin",
"valueType": "string",
"value": "OotbServiceLoginIp_0001",
"@type": "StringCharacteristic"
}
],
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"startDate": "2018-01-01T08:00:00.00Z"
}
Example 17: Adding a Hierarchy After Creating A Product
This example shows how to set the isBundle attribute after creating a product by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+192048' -H 'Content-Type: application/json' -d @sampleRequest17.json
Request Body
The following example shows the contents of the sampleRequest17.json file sent as the request body.
{
"@type": "Product",
"isBundle": true
}
Response Body
The following example shows the response body.
{
"@type": "Product",
"terminationDate": "2020-01-01T08:00:00.00Z",
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_product+192048",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+192048",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+187327",
"name": "John ",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-ip+191536",
"@type": "RealizingService"
}
],
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"isBundle": true,
"name": "Voice Over IP12",
"description": "Patched Test description",
"productOffering": {
"id": "0.0.0.1+-product+41250",
"name": "Product 1a - Internet Access",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/ip",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServicePassword",
"valueType": "string",
"value": "Cgbu1234#",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceLogin",
"valueType": "string",
"value": "OotbServiceLoginIp_0001",
"@type": "StringCharacteristic"
}
],
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"startDate": "2018-01-01T08:00:00.00Z"
}
Example 18: Updating The Product Status
This example shows how to update the product status to cancelled by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+192048' -H 'Content-Type: application/json' -d @sampleRequest18.json
Request Body
The following example shows the contents of the sampleRequest18.json file sent as the request body.
{
"@type": "Product",
"status": "cancelled"
}
Response Body
The following example shows the response body.
{
"@type": "Product",
"terminationDate": "2018-01-01T08:00:00.00Z",
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_product+192048",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+192048",
"status": "cancelled",
"billingAccount": {
"id": "0.0.0.1+-account+187327",
"name": "John ",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-ip+191536",
"@type": "RealizingService"
}
],
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"isBundle": false,
"name": "Voice Over IP12",
"description": "Patched Test description",
"productOffering": {
"id": "0.0.0.1+-product+41250",
"name": "Product 1a - Internet Access",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/ip",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServicePassword",
"valueType": "string",
"value": "Cgbu1234#",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceLogin",
"valueType": "string",
"value": "OotbServiceLoginIp_0001",
"@type": "StringCharacteristic"
}
],
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"startDate": "2018-01-01T08:00:00.00Z"
}
Example 19: Update A Product Price
This example shows how to update a product price using a discount percentage override by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+194414' -H 'Content-Type: application/json' -d @sampleRequest19.json
Request Body
The following example shows the contents of the sampleRequest19.json file sent as the request body.
{
"@type": "Product",
"productPrice": [
{
"@type": "ProductPrice",
"priceType": "recurring",
"priceAlteration": [
{
"@type": "PriceAlteration",
"priceType": "DiscountPercentageOverride",
"price": {
"percentage": 32.0
}
}
]
}
]
}
Response Body
The following example shows the response body.
{
"@type": "Product",
"terminationDate": "2020-01-01T08:00:00.00Z",
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_product+194414",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+194414",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+187327",
"name": "John ",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+193902",
"@type": "RealizingService"
}
],
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"isBundle": false,
"name": "Voice Over IP12",
"description": "Test description",
"productOffering": {
"id": "0.0.0.1+-product+173523",
"name": "Teen Telephony C4B0",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "MSISDN",
"valueType": "string",
"value": "OotbNewServiceAliasMSISDNDiscountPercentageOverride_0001",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "IMEI",
"valueType": "string",
"value": "OotbNewServiceAliasIMEIDiscountPercentageOverride_0001",
"@type": "StringCharacteristic"
}
],
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"startDate": "2018-01-03T08:00:00.00Z",
"productPrice": [
{
"@type": "ProductPrice",
"priceType": "recurring",
"priceAlteration": [
{
"@type": "PriceAlteration",
"priceType": "DiscountPercentageOverride",
"price": {
"percentage": "32.0"
}
}
]
}
]
}
Example 20: Updating A Flattened Service Alias
This example shows how to update flattened service aliases in product characteristics by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+189002' -H 'Content-Type: application/json' -d @sampleRequest20.json
Request Body
The following example shows the contents of the sampleRequest20.json file sent as the request body.
{
"@type": "Product",
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "MSISDN",
"valueType": "string",
"value": "ServiceAliasMSISDN_0001patch",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "IMEI",
"valueType": "string",
"value": "ServiceAliasIMEI_0001patch",
"@type": "StringCharacteristic"
}
]
}
Response Body
The following example shows the response body.
{
"@type": "Product",
"terminationDate": "2020-01-01T08:00:00.00Z",
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_product+189002",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+189002",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+187327",
"name": "John ",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+188490",
"@type": "RealizingService"
}
],
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"isBundle": false,
"name": "Voice Over IP12",
"description": "Test description",
"productOffering": {
"id": "0.0.0.1+-product+173523",
"name": "Teen Telephony C4B0",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "MSISDN",
"valueType": "string",
"value": "ServiceAliasMSISDN_0001patch",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "IMEI",
"valueType": "string",
"value": "ServiceAliasIMEI_0001patch",
"@type": "StringCharacteristic"
}
],
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"startDate": "2018-01-01T08:00:00.00Z"
}
Example 21: Updating A Product Relationship
This example shows how to update a product relationship to bundle an existing purchased product by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+178275' -H 'Content-Type: application/json' -d @sampleRequest21.json
Request Body
The following example shows the contents of the sampleRequest21.json file sent as the request body.
{
"@type": "Product",
"productRelationship": {
"id": "0.0.0.1+-purchased_product+179696",
"relationshipType": "bundles"
}
}
Response Body
The following example shows the response body.
{
"isBundle": true,
"name": "Voice Over IP12",
"@type": "Product",
"description": "Test description",
"terminationDate": "2020-01-01T08:00:00.00Z",
"productOffering": {
"id": "0.0.0.1+-product+175112",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"name": "MSISDN",
"valueType": "string",
"value": "OotbBaseServiceAliasMSISDNBundles_0001",
"@type": "StringCharacteristic",
"id": ""
},
{
"name": "IMEI",
"valueType": "string",
"value": "OotbBaseServiceAliasIMEIBundles_0001",
"@type": "StringCharacteristic",
"id": ""
}
],
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_product+178275",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+178275",
"status": "active",
"quantity": 1,
"billingAccount": {
"id": "0.0.0.1+-account+170441",
"@type": "BillingAccount",
"name": "Junior Walter"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+179107",
"@type": "RealizingService"
}
],
"startDate": "2018-01-01T08:00:00.00Z",
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"productRelationship": {
"id": "0.0.0.1+-purchased_product+179696",
"relationshipType": "bundles"
},
"product": [
{
"isBundle": false,
"name": "Voice Over IP12",
"@type": "Product",
"description": "Test description",
"terminationDate": "2020-01-01T08:00:00.00Z",
"productOffering": {
"id": "0.0.0.1+-product+41250",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/ip",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServicePassword",
"valueType": "string",
"value": "Cgbu1234#",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceLogin",
"valueType": "string",
"value": "OotbNewServiceLoginIpBillInfo_0001",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "BillStructure",
"valueType": "string",
"value": "0.0.0.1 /billinfo 169417",
"@type": "StringCharacteristic"
}
],
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_product+179696",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+179696",
"status": "active",
"quantity": 1,
"billingAccount": {
"id": "0.0.0.1+-account+170441",
"@type": "BillingAccount",
"name": "Junior Walter"
},
"realizingService": [
{
"id": "0.0.0.1+-service-ip+179952",
"@type": "RealizingService"
}
],
"startDate": "2018-01-03T08:00:00.00Z",
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"productRelationship": {
"id": "0.0.0.1+-purchased_product+178275",
"relationshipType": "bundledBy"
}
}
]
}
Example 22: Adding a New ProductPrice Array (JSON Patch)
Note:
To generate JSON PATCH payloads, set the content type to application/json-patch+json or application/json-patch-query+json.This example shows how to add a productPrice array using JSON Patch by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+196190' -H 'Content-Type: application/json-patch-query+json' -d @sampleRequest22.json
Request Body
The following example shows the contents of the sampleRequest22.json file sent as the request body.
[
{
"op": "add",
"path": "$.productPrice",
"value": {
"@type": "ProductPrice",
"priceType": "recurring",
"priceAlteration": [
{
"@type": "PriceAlteration",
"priceType": "AmountOverride",
"price": {
"dutyFreeAmount": {
"unit": "USD",
"value": 15.99
},
"@type": "Price"
}
}
]
}
}
]
Response Body
The following example shows the response body.
{
"@type": "Product",
"terminationDate": "2020-01-01T08:00:00.00Z",
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_product+196190",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+196190",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+187327",
"name": "John ",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-ip+195678",
"@type": "RealizingService"
}
],
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"isBundle": false,
"name": "Voice Over IP12",
"description": "Test description",
"productOffering": {
"id": "0.0.0.1+-product+41250",
"name": "Product 1a - Internet Access",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/ip",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServicePassword",
"valueType": "string",
"value": "Cgbu1234#",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceLogin",
"valueType": "string",
"value": "OotbServiceLoginIp_0004",
"@type": "StringCharacteristic"
}
],
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"startDate": "2018-01-01T08:00:00.00Z",
"productPrice": [
{
"@type": "ProductPrice",
"priceType": "recurring",
"priceAlteration": [
{
"@type": "PriceAlteration",
"priceType": "AmountOverride",
"price": {
"dutyFreeAmount": {
"unit": "USD",
"value": "15.99"
},
"@type": "Price"
}
}
]
}
]
}
Example 23: Replacing a Product Price Array with A Specific priceType (JSON Patch)
Note:
To generate JSON PATCH payloads, set the content type to application/json-patch+json or application/json-patch-query+json.This example shows how to replace product prices with a specific priceType using JSON Patch by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+196190' -H 'Content-Type: application/json-patch-query+json' -d @sampleRequest23.json
Request Body
The following example shows the contents of the sampleRequest23.json file sent as the request body.
[
{
"op": "replace",
"path": "$.productPrice[?(@.priceType=='recurring')]",
"value": {
"@type": "ProductPrice",
"priceType": "recurring",
"priceAlteration": [
{
"@type": "PriceAlteration",
"priceType": "AmountOverride",
"price": {
"dutyFreeAmount": {
"unit": "USD",
"value": "15.99"
},
"@type": "Price"
}
},
{
"@type": "PriceAlteration",
"priceType": "DiscountPercentageOverride",
"price": {
"percentage": 60.0,
"@type": "Price"
}
}
]
}
}
]
Response Body
The following example shows the response body.
{
"@type": "Product",
"terminationDate": "2020-01-01T08:00:00.00Z",
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_product+196190",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+196190",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+187327",
"name": "John ",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-ip+195678",
"@type": "RealizingService"
}
],
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"isBundle": false,
"name": "Voice Over IP12",
"description": "Test description",
"productOffering": {
"id": "0.0.0.1+-product+41250",
"name": "Product 1a - Internet Access",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/ip",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServicePassword",
"valueType": "string",
"value": "Cgbu1234#",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceLogin",
"valueType": "string",
"value": "OotbServiceLoginIp_0004",
"@type": "StringCharacteristic"
}
],
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"startDate": "2018-01-01T08:00:00.00Z",
"productPrice": [
{
"@type": "ProductPrice",
"priceType": "oneTime",
"priceAlteration": [
{
"@type": "PriceAlteration",
"priceType": "AmountOverride",
"price": {
"dutyFreeAmount": {
"unit": "USD",
"value": "15.99"
},
"@type": "Price"
}
}
]
},
{
"@type": "ProductPrice",
"priceType": "recurring",
"priceAlteration": [
{
"@type": "PriceAlteration",
"priceType": "AmountOverride",
"price": {
"dutyFreeAmount": {
"unit": "USD",
"value": "15.99"
},
"@type": "Price"
}
},
{
"@type": "PriceAlteration",
"priceType": "DiscountPercentageOverride",
"price": {
"percentage": "60.0"
}
}
]
}
]
}
Example 24: Removing a Product Price Array with a Specific priceType (JSON Patch)
Note:
To generate JSON PATCH payloads, set the content type to application/json-patch+json or application/json-patch-query+json.This example shows how to remove product prices with a specific priceType using JSON Patch by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+196190' -H 'Content-Type: application/json-patch-query+json' -d @sampleRequest24.json
Request Body
The following example shows the contents of the sampleRequest24.json file sent as the request body.
[
{
"op": "remove",
"path": "$.productPrice[?(@.priceType=='oneTime')]"
}
]
Response Body
The following example shows the response body.
{
"@type": "Product",
"terminationDate": "2020-01-01T08:00:00.00Z",
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_product+196190",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+196190",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+187327",
"name": "John ",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-ip+195678",
"@type": "RealizingService"
}
],
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"isBundle": false,
"name": "Voice Over IP12",
"description": "Test description",
"productOffering": {
"id": "0.0.0.1+-product+41250",
"name": "Product 1a - Internet Access",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/ip",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServicePassword",
"valueType": "string",
"value": "Cgbu1234#",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceLogin",
"valueType": "string",
"value": "OotbServiceLoginIp_0004",
"@type": "StringCharacteristic"
}
],
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"startDate": "2018-01-01T08:00:00.00Z",
"productPrice": [
{
"@type": "ProductPrice",
"priceType": "recurring",
"priceAlteration": [
{
"@type": "PriceAlteration",
"priceType": "AmountOverride",
"price": {
"dutyFreeAmount": {
"unit": "USD",
"value": "15.99"
},
"@type": "Price"
}
},
{
"@type": "PriceAlteration",
"priceType": "DiscountPercentageOverride",
"price": {
"percentage": "75.0"
}
}
]
}
]
}
Example 25: Adding a New Service Alias Name to a Product Characteristic (JSON Patch)
Note:
To generate JSON PATCH payloads, set the content type to application/json-patch+json or application/json-patch-query+json.This example shows how to add a service alias name to a product characteristic using JSON Patch by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+191027' -H 'Content-Type: application/json-patch-query+json' -d @sampleRequest25.json
Request Body
The following example shows the contents of the sampleRequest25.json file sent as the request body.
[
{
"op": "add",
"path": "$.productCharacteristic[?(@.id=='ootbServiceAliasId_0004' && @.valueType=='array')].value",
"value": {
"name": "jsonPatchServiceAlias_0004"
}
}
]
Response Body
The following example shows the response body.
{
"@type": "Product",
"terminationDate": "2020-01-01T08:00:00.00Z",
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_product+191027",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+191027",
"status": "created",
"billingAccount": {
"id": "0.0.0.1+-account+187327",
"name": "John ",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+190515",
"@type": "RealizingService"
}
],
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"isBundle": false,
"name": "Voice Over IP12",
"description": "Test description",
"productOffering": {
"id": "0.0.0.1+-product+173523",
"name": "Teen Telephony C4B0",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "ootbServiceAliasId_0004",
"name": "ServiceAlias",
"valueType": "array",
"value": [
{
"name": "OotbNewServiceAliasMSISDNNF_0004"
},
{
"name": "OotbNewServiceAliasIMEINF_0004"
},
{
"name": "jsonPatchServiceAlias_0004"
}
],
"@type": "ArrayCharacteristic"
}
],
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"startDate": "2018-01-01T08:00:00.00Z"
}
Example 26: Removing a Service Alias Name in a Product Characteristic (JSON Patch)
Note:
To generate JSON PATCH payloads, set the content type to application/json-patch+json or application/json-patch-query+json.This example shows how to remove a service alias name from a product characteristic using JSON Patch by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+191027' -H 'Content-Type: application/json-patch-query+json' -d @sampleRequest26.json
Request Body
The following example shows the contents of the sampleRequest26.json file sent as the request body.
[
{
"op": "remove",
"path": "$.productCharacteristic[?(@.name=='ServiceAlias' && @.id=='ootbServiceAliasId_0004' && @.valueType=='array')].value[?(@.name=='jsonPatchNewServiceAlias_0004')].name"
}
]
Response Body
The following example shows the response body.
{
"@type": "Product",
"terminationDate": "2020-01-01T08:00:00.00Z",
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_product+191027",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+191027",
"status": "created",
"billingAccount": {
"id": "0.0.0.1+-account+187327",
"name": "John ",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+190515",
"@type": "RealizingService"
}
],
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"isBundle": false,
"name": "Voice Over IP12",
"description": "Test description",
"productOffering": {
"id": "0.0.0.1+-product+173523",
"name": "Teen Telephony C4B0",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "ootbServiceAliasId_0004",
"name": "ServiceAlias",
"valueType": "array",
"value": [
{
"name": "OotbNewServiceAliasMSISDNNF_0004"
},
{
"name": "OotbNewServiceAliasIMEINF_0004"
},
{
"name": "jsonPatchServiceAlias_0004"
}
],
"@type": "ArrayCharacteristic"
}
],
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"startDate": "2018-01-01T08:00:00.00Z"
}
Example 27: Adding a Tied Discount Relationship (JSON Patch)
Note:
To generate JSON PATCH payloads, set the content type to application/json-patch+json or application/json-patch-query+json.This example shows how to add a tied discount relationship using JSON Patch by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+192371' -H 'Content-Type: application/json-patch-query+json' -d @sampleRequest27.json
Request Body
The following example shows the contents of the sampleRequest27.json file sent as the request body.
[
{
"op": "add",
"path": "$.productRelationship",
"value": {
"id": "0.0.0.1+-purchased_discount+191322",
"relationshipType": "tiedDiscount"
}
}
]
Response Body
The following example shows the response body.
{
"@type": "Product",
"terminationDate": "2020-01-01T08:00:00.00Z",
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_product+192371",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+192371",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+187327",
"name": "John ",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+191859",
"@type": "RealizingService"
}
],
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"isBundle": true,
"name": "Voice Over IP12",
"description": "Test description",
"productOffering": {
"id": "0.0.0.1+-product+173523",
"name": "Teen Telephony C4B0",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "MSISDN",
"valueType": "string",
"value": "OotbBaseServiceAliasMSISDNTiedProductwithId_0007",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "IMEI",
"valueType": "string",
"value": "OotbBaseServiceAliasIMEITiedProductwithId_0007",
"@type": "StringCharacteristic"
}
],
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"startDate": "2018-01-03T08:00:00.00Z",
"productRelationship": {
"id": "0.0.0.1+-purchased_discount+191322",
"relationshipType": "tiedDiscount"
}
}
Example 28: Adding a Tied Product Relationship (JSON Patch)
Note:
To generate JSON PATCH payloads, set the content type to application/json-patch+json or application/json-patch-query+json.This example shows how to add a tied product relationship using JSON Patch by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_discount+188816' -H 'Content-Type: application/json-patch-query+json' -d @sampleRequest28.json
Request Body
The following example shows the contents of the sampleRequest28.json file sent as the request body.
[
{
"op": "add",
"path": "$.productRelationship",
"value": {
"id": "0.0.0.1+-purchased_product+189579",
"relationshipType": "tiedProduct"
}
}
]
Response Body
The following example shows the response body.
{
"@type": "Product",
"terminationDate": "2020-01-01T08:00:00.00Z",
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_discount+188816",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_discount+188816",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+191389",
"name": "John ",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+189072",
"@type": "RealizingService"
}
],
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"isBundle": false,
"name": "Voice Over IP12",
"description": "Test description",
"productOffering": {
"id": "0.0.0.1+-discount+168649",
"name": "Discount-Product",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "MSISDN",
"valueType": "string",
"value": "NewServiceAliasMSISDNForTiedDiscount_0003",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "IMEI",
"valueType": "string",
"value": "NewServiceAliasIMEIForTiedDiscount_0003",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
}
],
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"startDate": "2018-01-03T08:00:00.00Z",
"productRelationship": {
"id": "0.0.0.1+-purchased_product+189579",
"relationshipType": "tiedProduct"
}
}
Example 29: Removing a Tied Product or Discount (JSON Patch)
Note:
To generate JSON PATCH payloads, set the content type to application/json-patch+json or application/json-patch-query+json.This example shows how to remove a tied product or discount relationship using JSON Patch by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+192371' -H 'Content-Type: application/json-patch-query+json' -d @sampleRequest29.json
Request Body
The following example shows the contents of the sampleRequest29.json file sent as the request body.
[
{
"op": "remove",
"path": "$.productRelationship[?(@.id=='0.0.0.1+-purchased_discount+191016' && @.relationshipType=='tiedDiscount')]"
}
]
Response Body
The following example shows the response body.
{
"@type": "Product",
"terminationDate": "2020-01-01T08:00:00.00Z",
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_product+192371",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+192371",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+187327",
"name": "John ",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+191859",
"@type": "RealizingService"
}
],
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"isBundle": true,
"name": "Voice Over IP12",
"description": "Test description",
"productOffering": {
"id": "0.0.0.1+-product+173523",
"name": "Teen Telephony C4B0",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "MSISDN",
"valueType": "string",
"value": "OotbBaseServiceAliasMSISDNTiedProductwithId_0007",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "IMEI",
"valueType": "string",
"value": "OotbBaseServiceAliasIMEITiedProductwithId_0007",
"@type": "StringCharacteristic"
}
],
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"startDate": "2018-01-03T08:00:00.00Z"
}