Partially Update a Product by ID
/product/{id}
Request
-
id(required): string
The identifier of the resource.
-
fields: string
The comma-separated properties to be provided in response.
- application/json-patch+json
- application/json
- application/merge-patch+json
- application/json-patch-query+json
array-
Array of:
object JsonPatch
The JSONPatch document as defined by RFC 6902.
object-
from: string
The string containing a JSON Pointer value.
-
op(required): string
Allowed Values:
[ "add", "remove", "replace", "move", "copy", "test" ]The operation to be performed. -
path(required): string
The JSON-Pointer.
-
value:
The value to be used within the operations.
array-
Array of:
object JsonPatch
The JSONPatch document as defined by RFC 6902.
object-
from: string
The string containing a JSON Pointer value.
-
op(required): string
Allowed Values:
[ "add", "remove", "replace", "move", "copy", "test" ]The operation to be performed. -
path(required): string
The JSON-Pointer.
-
value:
The value to be used within the operations.
-
object
allOf
Entity_MVO
THe Base entity schema for use in TMForum Open-APIs Property.
-
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
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
object-
@baseType: string
The defines the super-class when sub-classing.
-
@schemaLocation: string
The URI to a JSON-Schema file that defines additional attributes and relationships
-
@type(required): string
The definition of the sub-class extensible name, when sub-classing.
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
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @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
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
-
object
Addressable
The base schema for adressable entities.
-
object
EntityRef-allOf[2]
The entity reference schema to be use for all entityRef class.
object-
href: string
The hyperlink reference.
-
id: string
The unique identifier.
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 name of the referred entity.
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
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
-
allOf
EntityRef
-
object
Extensible
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
-
object
Characteristic_MVO-allOf[1]
The given characteristic of an object or entity through a name/value pair.
object-
characteristicRelationship: array
characteristicRelationship
-
id: string
The unique identifier of the characteristic.
-
name(required): string
The name of the characteristic
-
valueType: string
The data type of the value of the characteristic.
-
object
Extensible
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
-
object
CharacteristicRelationship_MVO-allOf[1]
The characteristic that is related to the current Characteristic.
object-
id(required): string
The unique identifier of the characteristic.
-
relationshipType(required): string
The type of relationship.
object-
version: string
The product offering version.
objectDiscriminator Values
-
object
Extensible
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @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
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @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
The base / value business entity used to represent money.
-
percentage: number
(float)
The percentage to apply to a product offering price alteration.
-
taxIncludedAmount: object
Money
The base / value business entity used to represent money.
-
taxRate: number
(float)
The tax rate.
object-
unit: string
The currency (ISO4217 norm uses 3 letters to define the currency).
-
value: number
(float)
The signed floating point number, the meaning of the sign is according to the context of the API that uses this Data type
objectDiscriminator Values
-
object
Extensible
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @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
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @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
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
-
allOf
EntityRef
object-
cycleEnd:
CycleEndRef_MVO
-
productPrice: array
productPrice
-
productRelationship: array
productRelationship
-
purchaseEnd:
PurchaseEndRef_MVO
-
quantity: integer
Specifies the service quantity when creating a purchase product.
-
tieId: string
Specifies the tie ID for tiedDiscount/tiedProduct scenarios.
-
usageEnd:
UsageEndRef_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.
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
UsageEndRef_MVO-allOf[1]
UsageEnd reference. Provides details about the usage end 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.
objectobjectDiscriminator 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...
objectobject-
object
allOf
Entity_MVO
THe Base entity schema for use in TMForum Open-APIs Property.
-
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
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
object-
@baseType: string
The defines the super-class when sub-classing.
-
@schemaLocation: string
The URI to a JSON-Schema file that defines additional attributes and relationships
-
@type(required): string
The definition of the sub-class extensible name, when sub-classing.
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
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @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
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
-
object
Addressable
The base schema for adressable entities.
-
object
EntityRef-allOf[2]
The entity reference schema to be use for all entityRef class.
object-
href: string
The hyperlink reference.
-
id: string
The unique identifier.
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 name of the referred entity.
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
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
-
allOf
EntityRef
-
object
Extensible
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
-
object
Characteristic_MVO-allOf[1]
The given characteristic of an object or entity through a name/value pair.
object-
characteristicRelationship: array
characteristicRelationship
-
id: string
The unique identifier of the characteristic.
-
name(required): string
The name of the characteristic
-
valueType: string
The data type of the value of the characteristic.
-
object
Extensible
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
-
object
CharacteristicRelationship_MVO-allOf[1]
The characteristic that is related to the current Characteristic.
object-
id(required): string
The unique identifier of the characteristic.
-
relationshipType(required): string
The type of relationship.
object-
version: string
The product offering version.
objectDiscriminator Values
-
object
Extensible
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @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
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @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
The base / value business entity used to represent money.
-
percentage: number
(float)
The percentage to apply to a product offering price alteration.
-
taxIncludedAmount: object
Money
The base / value business entity used to represent money.
-
taxRate: number
(float)
The tax rate.
object-
unit: string
The currency (ISO4217 norm uses 3 letters to define the currency).
-
value: number
(float)
The signed floating point number, the meaning of the sign is according to the context of the API that uses this Data type
objectDiscriminator Values
-
object
Extensible
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @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
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @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
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
-
allOf
EntityRef
object-
cycleEnd:
CycleEndRef_MVO
-
productPrice: array
productPrice
-
productRelationship: array
productRelationship
-
purchaseEnd:
PurchaseEndRef_MVO
-
quantity: integer
Specifies the service quantity when creating a purchase product.
-
tieId: string
Specifies the tie ID for tiedDiscount/tiedProduct scenarios.
-
usageEnd:
UsageEndRef_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.
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
UsageEndRef_MVO-allOf[1]
UsageEnd reference. Provides details about the usage end 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.
objectobjectDiscriminator 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...
objectobjectResponse
200 Response
-
object
Product
A product offering procured by a customer or other interested party playing a party role. A product is realized as one or more service(s) and / or resource(s).
-
ProductOracle
object-
@type: string
This defines the sub-class entity name when sub-classing.
-
id(required): string
Unique identifier of the product.
-
ownerAccount: object
OwnerAccount
Provides unique identifier of the owner account.
-
productCharacteristic: array
productCharacteristic
-
productTerm: array
productTerm
-
serviceAccount: object
ServiceAccount
Provides unique identifier of the service account.
-
object
Product
A product offering procured by a customer or other interested party playing a party role. A product is realized as one or more service(s) and / or resource(s).
-
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-
@baseType: string
Title:
Base TypeThe superclass of the object. -
@referredType: string
Title:
Referred TypeThe type of the object, in the target system, if baseType and type need further disambiguation. -
@schemaLocation: string
(uri)
Title:
Schema LocationA URI to a JSON schema file that defines additional attributes and relationships. -
@type: string
Title:
TypeThe subclass of the object. -
href: string
Title:
Owner Account HrefThe href of the owner account reference. -
id: string
Title:
Owner Account IDUnique identifier of the owner. -
name: string
Title:
Owner Account NameThe name of the owner account reference.
array-
Array of:
object ProductTerm
Description of a product term linked to this product. This represents a commitment with a duration.
object-
@baseType: string
Title:
Base TypeThe superclass of the object. -
@referredType: string
Title:
Referred TypeThe type of the object in the target system, if baseType and type need further disambiguation. -
@schemaLocation: string
(uri)
Title:
Schema LocationA URI to a JSON schema file that defines additional attributes and relationships. -
@type: string
Title:
TypeThe subclass of the object. -
href: string
Title:
Service Account HrefThe href of the service account reference. -
id: string
Title:
Service Account IDUnique identifier of the service. -
name: string
Title:
Service Account NameThe name of the service account reference.
-
object
Extensible
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
-
object
Characteristic-allOf[1]
The given characteristic of an object or entity through a name/value pair.
object-
@baseType: string
The defines the super-class when sub-classing.
-
@schemaLocation: string
The URI to a JSON-Schema file that defines additional attributes and relationships
-
@type(required): string
The definition of the sub-class extensible name, when sub-classing.
object-
characteristicRelationship: array
characteristicRelationship
-
id: string
The unique identifier of the characteristic.
-
name: string
The name of the characteristic.
-
valueType: string
The data type of the value of the characteristic.
-
object
Extensible
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
-
object
CharacteristicRelationship-allOf[1]
The characteristic that is related to the current Characteristic.
object-
id: string
The unique identifier of the characteristic.
-
relationshipType: string
The type of relationship.
object-
@baseType: string
This defines the super-class when sub-classing.
-
@schemaLocation: string
(uri)
A URI to a JSON-Schema file that defines additional attributes and relationships.
-
@type: string
This defines the sub-class entity name when sub-classing.
-
commitmentType: string
Commitment type of the product term.
-
description: string
Description of the product term.
-
duration: object
Quantity
The amount in a given unit.
-
name: string
Name of the product term.
object-
amount: number
(float)
Default Value:
1The numeric value in a given unit. -
units: string
The unit.
object-
cycleEnd:
CycleEndRef
-
cycleStart:
CycleStartRef
-
gracePeriod:
GracePeriodRef
-
productPrice: array
productPrice
-
productRelationship: array
productRelationship
-
purchaseEnd:
PurchaseEndRef
-
purchaseStart:
PurchaseStartRef
-
quantity: integer
Is the quantity of service while creation of a purchase product.
-
usageEnd:
UsageEndRef
-
usageStart:
UsageStartRef
-
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
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.
objectDiscriminator Values
-
object
Extensible
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @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: object
Price
Provides all amounts (tax included, duty free, tax rate), used currency and percentage to apply for Price Alteration.
-
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).
object-
priceAlteration(required): array
priceAlteration
-
priceType(required): string
Allowed Values:
[ "oneTime", "recurring" ]The price type: one-time or recurring.
object-
@type: string
This defines the sub-class entity name when sub-classing.
-
dutyFreeAmount: object
Money
The base / value business entity used to represent money.
-
percentage: number
(float)
-
taxAmount: object
Money
The base / value business entity used to represent money.
-
taxIncludedAmount: object
Money
The base / value business entity used to represent money.
array-
Array of:
object PriceAlteration
The object is an amount, usually of money, that modifies the price charged for an order item.
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-
unit: string
The currency (ISO4217 norm uses 3 letters to define the currency).
-
value: number
(float)
The signed floating point number, the meaning of the sign is according to the context of the API that uses this Data type
object-
@baseType: string
This defines the super-class when sub-classing.
-
@schemaLocation: string
(uri)
A URI to a JSON-Schema file that defines additional attributes and relationships.
-
@type: string
This defines the sub-class entity name when sub-classing.
-
description: string
A narrative that explains in detail the semantics of this order item price alteration.
-
name: string
Name of the order item price alteration.
-
price(required): object
Price
Provides all amounts (tax included, duty free, tax rate), used currency and percentage to apply for Price Alteration.
-
priceType(required): string
A category that describes the price such as recurring, one time and usage.
-
priority: integer
It is a priority level for applying this alteration among all the defined alterations on the order item price.
-
recurringChargePeriod: string
Refers to a timeline, like month, week, etc.
-
unitOfMeasure: string
Refers to a unit of measurement like minutes, GB, etc.
-
object
Extensible
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
-
object
Addressable
The base schema for adressable entities.
-
object
EntityRef-allOf[2]
The entity reference schema to be use for all entityRef class.
object-
href: string
The hyperlink reference.
-
id: string
The unique identifier.
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 name of the referred entity.
object-
version: string
The product offering price version.
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "PriceAlteration":"#/components/schemas/PriceAlterationOracle" } }
objectDiscriminator Values
-
object
PriceAlteration
The object is an amount, usually of money, that modifies the price charged for an order item.
-
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.
objectDiscriminator Values
-
object
Extensible
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @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).
object-
relationshipType(required): string
Allowed Values:
[ "bundles", "bundledBy", "tiedDiscount", "tiedProduct" ]The relationship type: bundles, bundledBy, tiedDiscount, tiedProduct.
objectobjectobjectobject202 Response
400 Response
-
object
Extensible
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
-
object
Error-allOf[1]
object-
@baseType: string
The defines the super-class when sub-classing.
-
@schemaLocation: string
The URI to a JSON-Schema file that defines additional attributes and relationships
-
@type(required): string
The definition of the sub-class extensible name, when sub-classing.
object-
code(required): string
The application relevant detail, defined in the API or a common list.
-
message: string
The details and corrective actions related to the error which can be shown to a client user.
-
reason(required): string
The explanation of the reason for the error which can be shown to a client user.
-
referenceError: string
The URI of documentation describing the error.
-
status: string
The HTTP Error code extension
401 Response
-
object
Extensible
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
-
object
Error-allOf[1]
object-
@baseType: string
The defines the super-class when sub-classing.
-
@schemaLocation: string
The URI to a JSON-Schema file that defines additional attributes and relationships
-
@type(required): string
The definition of the sub-class extensible name, when sub-classing.
object-
code(required): string
The application relevant detail, defined in the API or a common list.
-
message: string
The details and corrective actions related to the error which can be shown to a client user.
-
reason(required): string
The explanation of the reason for the error which can be shown to a client user.
-
referenceError: string
The URI of documentation describing the error.
-
status: string
The HTTP Error code extension
403 Response
-
object
Extensible
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
-
object
Error-allOf[1]
object-
@baseType: string
The defines the super-class when sub-classing.
-
@schemaLocation: string
The URI to a JSON-Schema file that defines additional attributes and relationships
-
@type(required): string
The definition of the sub-class extensible name, when sub-classing.
object-
code(required): string
The application relevant detail, defined in the API or a common list.
-
message: string
The details and corrective actions related to the error which can be shown to a client user.
-
reason(required): string
The explanation of the reason for the error which can be shown to a client user.
-
referenceError: string
The URI of documentation describing the error.
-
status: string
The HTTP Error code extension
404 Response
-
object
Extensible
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
-
object
Error-allOf[1]
object-
@baseType: string
The defines the super-class when sub-classing.
-
@schemaLocation: string
The URI to a JSON-Schema file that defines additional attributes and relationships
-
@type(required): string
The definition of the sub-class extensible name, when sub-classing.
object-
code(required): string
The application relevant detail, defined in the API or a common list.
-
message: string
The details and corrective actions related to the error which can be shown to a client user.
-
reason(required): string
The explanation of the reason for the error which can be shown to a client user.
-
referenceError: string
The URI of documentation describing the error.
-
status: string
The HTTP Error code extension
405 Response
-
object
Extensible
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
-
object
Error-allOf[1]
object-
@baseType: string
The defines the super-class when sub-classing.
-
@schemaLocation: string
The URI to a JSON-Schema file that defines additional attributes and relationships
-
@type(required): string
The definition of the sub-class extensible name, when sub-classing.
object-
code(required): string
The application relevant detail, defined in the API or a common list.
-
message: string
The details and corrective actions related to the error which can be shown to a client user.
-
reason(required): string
The explanation of the reason for the error which can be shown to a client user.
-
referenceError: string
The URI of documentation describing the error.
-
status: string
The HTTP Error code extension
409 Response
-
object
Extensible
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
-
object
Error-allOf[1]
object-
@baseType: string
The defines the super-class when sub-classing.
-
@schemaLocation: string
The URI to a JSON-Schema file that defines additional attributes and relationships
-
@type(required): string
The definition of the sub-class extensible name, when sub-classing.
object-
code(required): string
The application relevant detail, defined in the API or a common list.
-
message: string
The details and corrective actions related to the error which can be shown to a client user.
-
reason(required): string
The explanation of the reason for the error which can be shown to a client user.
-
referenceError: string
The URI of documentation describing the error.
-
status: string
The HTTP Error code extension
500 Response
-
object
Extensible
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
-
object
Error-allOf[1]
object-
@baseType: string
The defines the super-class when sub-classing.
-
@schemaLocation: string
The URI to a JSON-Schema file that defines additional attributes and relationships
-
@type(required): string
The definition of the sub-class extensible name, when sub-classing.
object-
code(required): string
The application relevant detail, defined in the API or a common list.
-
message: string
The details and corrective actions related to the error which can be shown to a client user.
-
reason(required): string
The explanation of the reason for the error which can be shown to a client user.
-
referenceError: string
The URI of documentation describing the error.
-
status: string
The HTTP Error code extension
501 Response
-
object
Extensible
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
-
object
Error-allOf[1]
object-
@baseType: string
The defines the super-class when sub-classing.
-
@schemaLocation: string
The URI to a JSON-Schema file that defines additional attributes and relationships
-
@type(required): string
The definition of the sub-class extensible name, when sub-classing.
object-
code(required): string
The application relevant detail, defined in the API or a common list.
-
message: string
The details and corrective actions related to the error which can be shown to a client user.
-
reason(required): string
The explanation of the reason for the error which can be shown to a client user.
-
referenceError: string
The URI of documentation describing the error.
-
status: string
The HTTP Error code extension
503 Response
-
object
Extensible
The Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
-
object
Error-allOf[1]
object-
@baseType: string
The defines the super-class when sub-classing.
-
@schemaLocation: string
The URI to a JSON-Schema file that defines additional attributes and relationships
-
@type(required): string
The definition of the sub-class extensible name, when sub-classing.
object-
code(required): string
The application relevant detail, defined in the API or a common list.
-
message: string
The details and corrective actions related to the error which can be shown to a client user.
-
reason(required): string
The explanation of the reason for the error which can be shown to a client user.
-
referenceError: string
The URI of documentation describing the error.
-
status: string
The HTTP Error code extension
Examples
Example 1: Updating A Product Attribute
The following 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 file to attach as the request body.
curl -X PATCH 'http://host:port/brm/productInventory/version/product/0.0.0.1+-purchased_product+192048' -d @productUpdate.json
Example of Request Body
The following is an example of the contents of the productUpdate.json file sent as the request body.
{
"@type": "Product",
"description": "Patched Test description"
}
Example of Response Body
The following is an example of the response body in JSON format.
{
"@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 2: Adding a Hierarchy After Creating A Product
The following example shows how to add a hierarchy 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 file to attach as the request body.
curl -X PATCH 'http://host:port/brm/productInventory/version/product/0.0.0.1+-purchased_product+192048' -d @productUpdate.json
Example of Request Body
The following is an example of the contents of the productUpdate.json file sent as the request body.
{
"@type": "Product",
"isBundle": true
}
Example of Response Body
The following is an example of the response body in JSON format.
{
"@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 3: Updating The Product Status
The following example shows how to update the status of 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 file to attach as the request body.
curl -X PATCH 'http://host:port/brm/productInventory/version/product/0.0.0.1+-purchased_product+192048' -d @productUpdate.json
Example of Request Body
The following is an example of the contents of the productUpdate.json file sent as the request body.
{
"@type": "Product",
"status": "cancelled"
}
Example of Response Body
The following is an example of the response body in JSON format.
{
"@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 4: Update A Product Price
The following example shows how to update the price of a product with an overriding amount by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the file to attach as the request body.
curl -X PATCH 'http://host:port/brm/productInventory/version/product/0.0.0.1+-purchased_product+191459' -d @productUpdate.json
Example of Request Body
The following is an example of the contents of the productUpdate.json file sent as the request body.
{
"@type": "Product",
"productPrice": [
{
"@type": "ProductPrice",
"priceType": "oneTime",
"priceAlteration": [
{
"@type": "PriceAlteration",
"priceType": "AmountOverride",
"price": {
"dutyFreeAmount": {
"unit": "USD",
"value": 17.99
},
"@type": "Price"
}
}
]
}
]
}
Example of Response Body
The following is an example of the response body in JSON format.
{
"@type": "Product",
"terminationDate": "2020-01-01T08:00:00.00Z",
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"productPrice": [
{
"@type": "ProductPrice",
"priceType": "oneTime",
"priceAlteration": [
{
"@type": "PriceAlteration",
"priceType": "AmountOverride",
"price": {
"dutyFreeAmount": {
"unit": "USD",
"value": "17.99"
},
"@type": "Price"
}
}
]
}
],
"id": "0.0.0.1+-purchased_product+191459",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+191459",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+187327",
"name": "John ",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+190947",
"@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": "OotbNewServiceAliasMSISDNPriceOverride_0001",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "IMEI",
"valueType": "string",
"value": "OotbNewServiceAliasIMEIPriceOverride_0001",
"@type": "StringCharacteristic"
}
],
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"startDate": "2018-01-03T08:00:00.00Z"
}
Example 5: Updating A Flattened Service Alias
The following example shows how to update a flattened service alias by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the file to attach as the request body.
curl -X PATCH 'http://host:port/brm/productInventory/version/product/0.0.0.1+-purchased_product+189002' -d @productUpdate.json
Example of Request Body
The following is an example of the contents of the productUpdate.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"
}
]
}
Example of Response Body
The following is an example of the response body in JSON format.
{
"@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 6: Updating A Product Relationship
The following example shows how to update product relationship by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the file to attach as the request body.
curl -X PATCH 'http://host:port/brm/productInventory/version/product/0.0.0.1+-purchased_product+178275' -d @productUpdate.json
Example of Request Body
The following is an example of the contents of the productUpdate.json file sent as the request body.
{
"@type": "Product",
"productRelationship": {
"id": "0.0.0.1+-purchased_product+179696",
"relationshipType": "bundles"
}
}
Example of Response Body
The following is an example of the response body in JSON format.
{
"isBundle": true,
"name": "Voice Over IP12",
"productRelationship": {
"id": "0.0.0.1+-purchased_product+179696",
"relationshipType": "bundles"
},
"@type": "Product",
"product": [
{
"isBundle": false,
"name": "Voice Over IP12",
"productRelationship": {
"id": "0.0.0.1+-purchased_product+178275",
"relationshipType": "bundledBy"
},
"@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": "OotbNewServiceLoginIpKartikesBillInfo_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",
"name": "Junior Walter",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-ip+179952",
"@type": "RealizingService"
}
],
"startDate": "2018-01-03T08:00:00.00Z",
"usageEnd": {
"unit": "absolute",
"amount": 0
}
}
],
"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"
},
{
"id": "",
"name": "MSISDN",
"valueType": "string",
"value": "OotbBaseServiceAliasMSISDNBundles_0001",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "IMEI",
"valueType": "string",
"value": "OotbBaseServiceAliasIMEIBundles_0001",
"@type": "StringCharacteristic"
}
],
"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",
"name": "Junior Walter",
"@type": "BillingAccount"
},
"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
}
}
Example 7: Adding a New ProductPrice Array (JSON Patch)
Note:
To generate JSON Patch payloads ensure the content type is in the format application/json-patch+json or application/json-patch-query+json .The following example shows how to add a new productPrice array by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the file to attach as the request body.
curl -X PATCH 'http://host:port/brm/productInventory/version/product/0.0.0.1+-purchased_product+196190' -d @productUpdate.json
Example of Request Body
The following is an example of the contents of the productUpdate.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"
}
}
]
}
}
]
Example of Response Body
The following is an example of the response body in JSON format.
{
"@type": "Product",
"terminationDate": "2020-01-01T08:00:00.00Z",
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"productPrice": [
{
"@type": "ProductPrice",
"priceType": "recurring",
"priceAlteration": [
{
"@type": "PriceAlteration",
"priceType": "AmountOverride",
"price": {
"dutyFreeAmount": {
"unit": "USD",
"value": "15.99"
},
"@type": "Price"
}
}
]
}
],
"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"
}
Example 8: Replacing a Product Price Array with A Specific priceType (JSON Patch)
Note:
To generate JSON Patch payloads ensure the content type is in the format application/json-patch+json or application/json-patch-query+json .The following example shows how to replace a product price array with a specific priceType by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the file to attach as the request body.
curl -X PATCH 'http://host:port/brm/productInventory/version/product/0.0.0.1+-purchased_product+196190' -d @productUpdate.json
Example of Request Body
The following is an example of the contents of the productUpdate.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"
}
}
]
}
}
]
Example of Response Body
The following is an example of the response body in JSON format.
{
"@type": "Product",
"terminationDate": "2020-01-01T08:00:00.00Z",
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"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"
}
}
]
}
],
"id": "PurchasedProduct_0001",
"href": "http://host:port/brm/productInventory/v5/product/PurchasedProduct_0001",
"status": "active",
"billingAccount": {
"id": "billing-account-post-1",
"name": "John ",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "ServiceId_0001t",
"@type": "RealizingService"
}
],
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"isBundle": false,
"name": "Voice Over IP12",
"description": "Test description",
"productOffering": {
"id": "Product 1a - Internet Access",
"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": "ServiceLoginIp_0001",
"@type": "StringCharacteristic"
}
],
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"startDate": "2018-01-01T08:00:00.00Z"
}
Example 9: Removing a Product Price Array with a Specific priceType (JSON Patch)
Note:
To generate JSON Patch payloads ensure the content type is in the format application/json-patch+json or application/json-patch-query+json .The following example shows how to remove a product price array with a specific priceType by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the file to attach as the request body.
curl -X PATCH 'http://host:port/brm/productInventory/version/product/PurchasedProduct_0001' -d @productUpdate.json
Example of Request Body
The following is an example of the contents of the productUpdate.json file sent as the request body.
[
{
"op": "remove",
"path": "$.productPrice[?(@.priceType=='oneTime')]"
}
]
Example of Response Body
The following is an example of the response body in JSON format.
{
"@type": "Product",
"terminationDate": "2020-01-01T08:00:00.00Z",
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"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"
}
}
]
}
],
"id": "PurchasedProduct_0001",
"href": "http://host:port/brm/productInventory/v5/product/PurchasedProduct_0001",
"status": "active",
"billingAccount": {
"id": "billing-account-post-1",
"name": "John ",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "ServiceId_0001t",
"@type": "RealizingService"
}
],
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"isBundle": false,
"name": "Voice Over IP12",
"description": "Test description",
"productOffering": {
"id": "Product 1a - Internet Access",
"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": "ServiceLoginIp_0001",
"@type": "StringCharacteristic"
}
],
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"startDate": "2018-01-01T08:00:00.00Z"
}
Example 10: Adding a New Service Alias Name to a Product Characteristic (JSON Patch)
Note:
To generate JSON Patch payloads ensure the content type is in the format application/json-patch+json or application/json-patch-query+json .The following example shows how to add a new service alias name to a product characteristic by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the file to attach as the request body.
curl -X PATCH 'http://host:port/brm/productInventory/version/product/0.0.0.1+-purchased_product+191027' -d @productUpdate.json
Example of Request Body
The following is an example of the contents of the productUpdate.json file sent as the request body.
[
{
"op": "add",
"path": "$.productCharacteristic[?(@.name=='ServiceAlias' && @.id=='ootbServiceAliasId_0004' && @.valueType=='array')].value",
"value": {
"name": "jsonPatchNewServiceAlias_0004"
}
}
]
Example of Response Body
The following is an example of the response body in JSON format.
{
"@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"
},
{
"name": "jsonPatchNewServiceAlias_0004"
}
],
"@type": "ArrayCharacteristic"
}
],
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"startDate": "2018-01-01T08:00:00.00Z"
}
Example 11: Removing a Service Alias Name in a Product Characteristic (JSON Patch)
Note:
To generate JSON Patch payloads ensure the content type is in the format application/json-patch+json or application/json-patch-query+json .The following example shows how to remove a service alias name in a product characteristic by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the file to attach as the request body.
curl -X PATCH 'http://host:port/brm/productInventory/version/product/0.0.0.1+-purchased_product+191027' -d @productUpdate.json
Example of Request Body
The following is an example of the contents of the productUpdate.json file sent as the request body.
[
{
"op": "remove",
"path": "$.productCharacteristic[?(@.name=='ServiceAlias' && @.id=='ootbServiceAliasId_0004' && @.valueType=='array')].value[?(@.name=='jsonPatchNewServiceAlias_0004')].name"
}
]
Example of Response Body
The following is an example of the response body in JSON format.
{
"@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 12: Adding a Tied Discount Relationship (JSON Patch)
Note:
To generate JSON Patch payloads ensure the content type is in the format application/json-patch+json or application/json-patch-query+json .The following example shows how to add a tied discount relationship by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the file to attach as the request body.
curl -X PATCH 'http://host:port/brm/productInventory/version/product/0.0.0.1+-purchase_product+983210' -d @productUpdate.json
Example of Request Body
The following is an example of the contents of the productUpdate.json file sent as the request body.
[
{
"op": "add",
"path": "$.productRelationship",
"value": {
"id": "0.0.0.1+-purchased_discount+191322",
"relationshipType": "tiedDiscount"
}
}
]
Example of Response Body
The following is an example of the response body in JSON format.
{
"productRelationship": {
"id": "0.0.0.1+-purchased_discount+191322",
"relationshipType": "tiedDiscount"
},
"@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"
}
Example 13: Adding a Tied Product Relationship (JSON Patch)
Note:
To generate JSON Patch payloads ensure the content type is in the format application/json-patch+json or application/json-patch-query+json .The following example shows how to add a tied product relationship by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the file to attach as the request body.
curl -X PATCH 'http://host:port/brm/productInventory/version/product/0.0.0.1+-purchased_product+983210' -d @productUpdate.json
Example of Request Body
The following is an example of the contents of the productUpdate.json file sent as the request body.
[
{
"op": "add",
"path": "$.productRelationship",
"value": {
"id": "0.0.0.1+-purchased_product+189579",
"relationshipType": "tiedProduct"
}
}
]
Example of Response Body
The following is an example of the response body in JSON format.
{
"productRelationship": {
"id": "0.0.0.1+-purchased_product+189579",
"relationshipType": "tiedProduct"
},
"@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"
}
Example 14: Removing a Tied Product or Discount (JSON Patch)
Note:
To generate JSON Patch payloads ensure the content type is in the format application/json-patch+json or application/json-patch-query+json .The following example shows how to remove a tied product or discount in a 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 file to attach as the request body.
curl -X PATCH 'http://host:port/brm/productInventory/version/product/0.0.0.1+-purchased_discount+983210' -d @productUpdate.json
Example of Request Body
The following is an example of the contents of the productUpdate.json file sent as the request body.
[
{
"op": "remove",
"path": "$.productRelationship[?(@.id=='0.0.0.1+-purchased_discount+191016' && @.relationshipType=='tiedDiscount')]"
}
]
Example of Response Body
The following is an example of the response body in JSON format.
{
"@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"
}
Example 15: PATCH Request With Query Parameters
The following example shows how to submit a PATCH request with query parameters on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the file to attach as the request body.
curl -X PATCH 'http://host:port/brm/productInventory/version/product/0.0.0.1+-purchased_product+174512?fields=description,billingAccount,productCharacteristic' -d @productUpdate.json
Example of Request Body
The following is an example of the contents of the productUpdate.json file sent as the request body.
{
"@type": "Product",
"description": "Patched description"
}
Example of Response Body
The following is an example of the response body in JSON format.
{
"@type": "Product",
"id": "0.0.0.1+-purchased_product+174512",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+174512",
"billingAccount": {
"id": "0.0.0.1+-account+173169",
"name": "Junior Walter",
"@type": "BillingAccount"
},
"description": "Patched description",
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "MSISDN",
"valueType": "string",
"value": "QueryParamMSISDN_0004",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "IMEI",
"valueType": "string",
"value": "QueryParamIMEI_0004",
"@type": "StringCharacteristic"
}
]
}