Create a Product
/product
Request
-
fields: string
The comma-separated properties to be provided in response.
- application/json
-
object
allOf
Entity_FVO
The Base entity schema for use in TMForum Open-APIs Property.
-
object
Product_FVO-allOf[1]
A product offering procured by a customer or a party playing a party role. A product is realized as one or more services and resources.
-
allOf
Product_FVO
-
object
ProductOracle_FVO-allOf[1]
Provides extended fields for the product schema.
object-
object
Extensible_FVO
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_FVO
The base schema for adressable entities.
object-
@baseType: string
The definition of 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-
id: string
The unique identifier.
object-
billingAccount(required):
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "BillingAccountRef":"#/components/schemas/BillingAccountRef_FVO" } } -
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_FVO" } } -
productPrice: array
productPrice
-
productRelationship: array
productRelationship
-
realizingService: array
realizingService
-
startDate: string
(date-time)
The date the product starts.
-
status(required): 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_FVO
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_FVO
-
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_FVO", "ProductRef":"#/components/schemas/ProductRef_FVO", "ProductOracle":"#/components/schemas/ProductOracle_FVO" } }The polymorphic attributes (@type, @schemaLocation, and @referredType) apply to the Product entity, not to the ProductRefOrValue class.
objectDiscriminator Values
-
allOf
EntityRef_FVO
-
object
Discriminator: @type-allOf[1]
ProductOffering reference. A product offering represents entities that are orderable from the provider of the catalog, this resource includes pricing information.
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductPrice":"#/components/schemas/ProductPrice_FVO" } }
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductRelationship":"#/components/schemas/ProductRelationship_FVO" } }
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ServiceRef":"#/components/schemas/ServiceRef_FVO" } }The service reference used by other entities.
-
object
Extensible_FVO
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_FVO
The base schema for adressable entities.
-
object
EntityRef_FVO-allOf[2]
The entity reference schema to be used for all entityRef class.
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_FVO
-
object
ProductRef_FVO
A product reference.
-
ProductOracle_FVO
object-
object
Extensible_FVO
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_FVO
-
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_FVO-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(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_FVO-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_FVO
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:
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "Price":"#/components/schemas/Price_FVO" } } -
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_FVO" } } -
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_FVO
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_FVO" } }
objectDiscriminator Values
-
allOf
EntityRef_FVO
-
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
(double)
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_FVO
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_FVO" } } -
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_FVO" } } -
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_FVO
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_FVO
-
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_FVO
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_FVO
object-
cycleEnd:
CycleEndRef_FVO
-
cycleStart:
CycleStartRef_FVO
-
gracePeriod:
GracePeriodRef_FVO
-
productPrice: array
productPrice
-
productRelationship: array
productRelationship
-
purchaseEnd:
PurchaseEndRef_FVO
-
purchaseStart:
PurchaseStartRef_FVO
-
quantity: integer
Specifies the service quantity when creating a purchase product.
-
tieId: string
Specifies the tie ID for tiedDiscount/tiedProduct scenarios.
-
usageEnd:
UsageEndRef_FVO
-
usageStart:
UsageStartRef_FVO
-
object
CPUDatesExtension_FVO
Contains the CPU extension dates' common properties.
-
object
CycleEndRef_FVO-allOf[1]
CycleEnd reference. Provides details about the cycle end date for a purchased product
-
object
CPUDatesExtension_FVO
Contains the CPU extension dates' common properties.
-
object
CycleStartRef_FVO-allOf[1]
CycleStart reference. Provides details about the cycle start date for a purchased product.
-
object
CPUDatesExtension_FVO
Contains the CPU extension dates' common properties.
-
object
GracePeriodRef_FVO-allOf[1]
GracePeriod reference. Provides details about the grace period date for a purchased product.
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductPrice":"#/components/schemas/ProductPriceOracle_FVO" } }
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductRelationship":"#/components/schemas/ProductRelationshipOracle_FVO" } }
-
object
CPUDatesExtension_FVO
Contains the CPU extension dates' common properties.
-
object
PurchaseEndRef_FVO-allOf[1]
PurchaseEnd reference. Provides details about the purchase end date for a purchased product.
-
object
CPUDatesExtension_FVO
Contains the CPU extension dates' common properties.
-
object
PurchaseStartRef_FVO-allOf[1]
PurchaseStart reference. Provides details about the purchase start date for a purchased product.
-
object
CPUDatesExtension_FVO
Contains the CPU extension dates' common properties.
-
object
UsageEndRef_FVO-allOf[1]
UsageEnd reference. Provides details about the usage end date for a purchased product.
-
object
CPUDatesExtension_FVO
Contains the CPU extension dates' common properties.
-
object
UsageStartRef_FVO-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. 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_FVO" } } -
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_FVO" } }
objectDiscriminator Values
-
object
allOf
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "PriceAlteration":"#/components/schemas/PriceAlteration_FVO" } } -
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_FVO" } } -
object
Discriminator: @type-allOf[1]
Used to describe the relationship between the products.
object-
id(required): string
Id of the related product
-
relationshipType(required): string
Allowed Values:
[ "bundles", "bundledBy", "tiedDiscount", "tiedProduct" ]The relationship type: bundles, bundledBy, tiedDiscount, tiedProduct.
objectobjectobjectobjectResponse
201 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
(double)
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
(double)
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 used 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 6: Creating a Purchase Product With An Existing Service
-
Example 10: Creating a Product with Price Tags as Product Characteristics
-
Example 11: Creating a Product with Balance Group Characteristics
-
Example 12: Creating a Product with Bill Structure Characteristics
-
Example 13: Creating a Product with Product Relationship Bundles
Example 1: Creating a Product Purchase Object
The following example shows how to create a product purchase object by submitting a POST 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 POST 'http://host:port/brm/productInventory/version/product' -d @productCreate.json
Request Body
The following is an example of the contents of the productCreate.json file sent as the request body.
{
"isBundle": false,
"name": "Voice Over IP12",
"@type": "Product",
"description": "Test description",
"terminationDate": "2020-01-01T08:00:00.00Z",
"productOffering": {
"name": "Product 1a - Internet Access",
"id": "0.0.0.1+-product+48958",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/ip",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServicePassword",
"valueType": "string",
"value": "password",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceLogin",
"valueType": "string",
"value": "OotbServiceLoginIp_0001",
"@type": "StringCharacteristic"
}
],
"status": "active",
"quantity": 1,
"id": "OotbPurchasedProduct_0001",
"billingAccount": {
"id": "0.0.0.1+-account+219307",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-ip+0",
"@type": "RealizingService"
}
],
"startDate": "2018-01-01T08:00:00.00Z",
"usageEnd": {
"unit": "absolute",
"amount": 0
}
}
Response Body
The following example shows the contents of the response body in JSON format.
{
"isBundle": false,
"name": "Voice Over IP12",
"@type": "Product",
"cycleStart": {
"unit": "absolute",
"amount": 0
},
"purchaseStart": {
"unit": "absolute",
"amount": 0
},
"description": "Test description",
"terminationDate": "2020-01-01T08:00:00.00Z",
"productOffering": {
"id": "0.0.0.1+-product+48958",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/ip",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServicePassword",
"valueType": "string",
"value": "password",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceLogin",
"valueType": "string",
"value": "OotbServiceLoginIp_0001",
"@type": "StringCharacteristic"
}
],
"usageStart": {
"unit": "absolute",
"amount": 0
},
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_product+241829",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+241829",
"status": "active",
"quantity": 1,
"billingAccount": {
"id": "0.0.0.1+-account+219307",
"name": "John ",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-ip+242469",
"@type": "RealizingService"
}
],
"startDate": "2018-01-01T08:00:00.00Z",
"usageEnd": {
"unit": "absolute",
"amount": 0
}
}
Example 2: Creating a Purchase Product With a Service Alias
The following example shows how to create a purchase product with a service alias by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
curl -X POST 'http://host:port/brm/productInventory/version/product' -d @productCreate.json
The -d option specifies the file to attach as the request body.
Request Body
The following is an example of the contents of the productCreate.json file sent as the request body.
{
"isBundle": false,
"name": "Voice Over IP12",
"@type": "Product",
"description": "Test description",
"terminationDate": "2020-01-01T08:00:00.00Z",
"productOffering": {
"name": "Teen Telephony C4B0",
"id": "0.0.0.1+-product+193461",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"name": "MSISDN",
"valueType": "string",
"value": "OotbServiceAliasMSISDN_0001",
"@type": "StringCharacteristic"
},
{
"name": "IMEI",
"valueType": "string",
"value": "OotbServiceAliasIMEI_0001",
"@type": "StringCharacteristic"
}
],
"status": "active",
"id": "OotbPurchasedProductTelcoWSerAlias_0001",
"billingAccount": {
"id": "0.0.0.1+-account+219307",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+0",
"@type": "RealizingService"
}
],
"startDate": "2018-01-01T08:00:00.00Z"
}
Response Body
The following example shows the contents of the response body in JSON format.
{
"isBundle": false,
"name": "Voice Over IP12",
"@type": "Product",
"cycleStart": {
"unit": "absolute",
"amount": 0
},
"purchaseStart": {
"unit": "absolute",
"amount": 0
},
"description": "Test description",
"terminationDate": "2020-01-01T08:00:00.00Z",
"productOffering": {
"id": "0.0.0.1+-product+193461",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "MSISDN",
"valueType": "string",
"value": "OotbServiceAliasMSISDN_0001",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "IMEI",
"valueType": "string",
"value": "OotbServiceAliasIMEI_0001",
"@type": "StringCharacteristic"
}
],
"usageStart": {
"unit": "absolute",
"amount": 0
},
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_product+243092",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+243092",
"status": "active",
"quantity": 1,
"billingAccount": {
"id": "0.0.0.1+-account+219307",
"name": "John ",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+243348",
"@type": "RealizingService"
}
],
"startDate": "2018-01-01T08:00:00.00Z",
"usageEnd": {
"unit": "absolute",
"amount": 0
}
}
Example 3: Creating a Bundle Purchase Product
The following example shows how to create a bundle purchase product with a productBundle at the top level by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
curl -X POST 'http://host:port/brm/productInventory/version/product' -d @productCreate.json
The -d option specifies the file to attach as the request body.
Request Body
The following is an example of the contents of the productCreate.json file sent as the request body.
{
"isBundle": true,
"name": "Voice Over IP12",
"@type": "Product",
"description": "Test description",
"terminationDate": "2020-01-01T08:00:00.00Z",
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
}
],
"status": "active",
"quantity": 1,
"id": "OotbPurchasedProductKartikesBaseWoProdOffDisc_0001",
"billingAccount": {
"id": "0.0.0.1+-account+219307",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+0",
"@type": "RealizingService"
}
],
"startDate": "2018-01-01T08:00:00.00Z",
"product": [
{
"isBundle": false,
"name": "Voice Over IP12",
"@type": "Product",
"description": "Test description",
"terminationDate": "2020-01-01T08:00:00.00Z",
"productOffering": {
"name": "Discount-product",
"id": "0.0.0.1+-discount+197972",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"name": "MSISDN",
"valueType": "string",
"value": "OotbBundleWProdOffServiceAliasMSISDNDisc_0001",
"@type": "StringCharacteristic"
},
{
"name": "IMEI",
"valueType": "string",
"value": "OotbBundleWProdOffServiceAliasIMEIDisc_0001",
"@type": "StringCharacteristic"
}
],
"status": "active",
"id": "OotbPurchasedProductKartikesBundleWProdOffDisc_0001",
"billingAccount": {
"id": "0.0.0.1+-account+219307",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+0",
"@type": "RealizingService"
}
],
"startDate": "2018-01-01T08:00:00.00Z"
}
]
}
Response Body
The following example shows the contents of the response body in JSON format.
{
"isBundle": true,
"name": "Voice Over IP12",
"productRelationship": {
"id": "0.0.0.1+-purchased_discount+243943",
"relationshipType": "bundles"
},
"@type": "Product",
"cycleStart": {
"unit": "absolute",
"amount": 0
},
"product": [
{
"isBundle": false,
"name": "Voice Over IP12",
"productRelationship": {
"id": "0.0.0.1+-purchased_product+241895",
"relationshipType": "bundledBy"
},
"@type": "Product",
"cycleStart": {
"unit": "absolute",
"amount": 0
},
"purchaseStart": {
"unit": "absolute",
"amount": 0
},
"description": "Test description",
"terminationDate": "2020-01-01T08:00:00.00Z",
"productOffering": {
"id": "0.0.0.1+-discount+197972",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "MSISDN",
"valueType": "string",
"value": "OotbBundleWProdOffServiceAliasMSISDNDisc_0001",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "IMEI",
"valueType": "string",
"value": "OotbBundleWProdOffServiceAliasIMEIDisc_0001",
"@type": "StringCharacteristic"
}
],
"usageStart": {
"unit": "absolute",
"amount": 0
},
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_discount+243943",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_discount+243943",
"status": "active",
"quantity": 1,
"billingAccount": {
"id": "0.0.0.1+-account+219307",
"name": "John ",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+242535",
"@type": "RealizingService"
}
],
"startDate": "2018-01-01T08:00:00.00Z",
"usageEnd": {
"unit": "absolute",
"amount": 0
}
}
],
"purchaseStart": {
"unit": "absolute",
"amount": 0
},
"description": "Test description",
"terminationDate": "2020-01-01T08:00:00.00Z",
"productOffering": {
"id": "0.0.0.0++0",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
}
],
"usageStart": {
"unit": "absolute",
"amount": 0
},
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_product+241895",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+241895",
"status": "active",
"quantity": 1,
"billingAccount": {
"id": "0.0.0.1+-account+219307",
"name": "John ",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+245351",
"@type": "RealizingService"
}
],
"startDate": "2018-01-01T08:00:00.00Z",
"usageEnd": {
"unit": "absolute",
"amount": 0
}
}
Example 4: Creating a Discount Purchase
The following example shows how to create a discount purchase by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
curl -X POST 'http://host:port/brm/productInventory/version/product' -d @discountCreate.json
The -d option specifies the file to attach as the request body.
Request Body
The following is an example of the contents of the discountCreate.json file sent as the request body.
{
"isBundle": false,
"name": "Voice Over IP12",
"@type": "Product",
"description": "Test description",
"terminationDate": "2020-01-01T08:00:00.00Z",
"productOffering": {
"name": "Discount-product",
"id": "0.0.0.1+-discount+197972",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"name": "MSISDN",
"valueType": "string",
"value": "OotbNewServiceAliasMSISDNDisc_0001",
"@type": "StringCharacteristic"
},
{
"name": "IMEI",
"valueType": "string",
"value": "OotbNewServiceAliasIMEIDisc_0001",
"@type": "StringCharacteristic"
}
],
"status": "active",
"quantity": 1,
"id": "OotbPurchasedProductsTelcoWSerAliasDisc_0001",
"billingAccount": {
"id": "0.0.0.1+-account+219307",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+0",
"@type": "RealizingService"
}
],
"startDate": "2018-01-01T08:00:00.00Z"
}
Response Body
The following example shows the contents of the response body in JSON format.
{
"isBundle": false,
"name": "Voice Over IP12",
"@type": "Product",
"cycleStart": {
"unit": "absolute",
"amount": 0
},
"purchaseStart": {
"unit": "absolute",
"amount": 0
},
"description": "Test description",
"terminationDate": "2020-01-01T08:00:00.00Z",
"productOffering": {
"id": "0.0.0.1+-discount+197972",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "MSISDN",
"valueType": "string",
"value": "OotbNewServiceAliasMSISDNDisc_0001",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "IMEI",
"valueType": "string",
"value": "OotbNewServiceAliasIMEIDisc_0001",
"@type": "StringCharacteristic"
}
],
"usageStart": {
"unit": "absolute",
"amount": 0
},
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_discount+242199",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_discount+242199",
"status": "active",
"quantity": 1,
"billingAccount": {
"id": "0.0.0.1+-account+219307",
"name": "John ",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+241687",
"@type": "RealizingService"
}
],
"startDate": "2018-01-01T08:00:00.00Z",
"usageEnd": {
"unit": "absolute",
"amount": 0
}
}
Example 5: Creating a Product With CPU Date and Quantity
The following example shows how to create a product with CPU date and quantity by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
curl -X POST 'http://host:port/brm/productInventory/version/product' -d @productCreate.json
The -d option specifies the file to attach as the request body.
Request Body
The following is an example of the contents of the productCreate.json file sent as the request body.
{
"isBundle": true,
"name": "Voice Over IP12",
"@type": "Product",
"quantity": 2,
"cycleStart": {
"amount": 5,
"unit": "days"
},
"usageStart": {
"amount": 5,
"unit": "days"
},
"purchaseStart": {
"amount": 5,
"unit": "days"
},
"cycleEnd": {
"amount": 1,
"unit": "months"
},
"usageEnd": {
"amount": 1,
"unit": "months"
},
"purchaseEnd": {
"amount": 1,
"unit": "months"
},
"gracePeriod": {
"amount": 1,
"unit": "days"
},
"description": "Test description",
"terminationDate": "2020-01-01T08:00:00.00Z",
"productOffering": {
"name": "Product 1a - Internet Access",
"id": "0.0.0.1+-product+48958",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/ip",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServicePassword",
"valueType": "string",
"value": "password",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceLogin",
"valueType": "string",
"value": "OotbNewServiceLoginIpCPUDates_0001",
"@type": "StringCharacteristic"
}
],
"status": "active",
"id": "OotbPurchasedProductCPUDates_0001",
"billingAccount": {
"id": "0.0.0.1+-account+219307",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-ip+0",
"@type": "RealizingService"
}
],
"startDate": "2018-01-01T08:00:00.00Z"
}
Response Body
The following example shows the contents of the response body in JSON format.
{
"isBundle": true,
"name": "Voice Over IP12",
"@type": "Product",
"cycleStart": {
"unit": "days",
"amount": 5
},
"purchaseStart": {
"unit": "days",
"amount": 5
},
"description": "Test description",
"terminationDate": "2018-02-06T08:00:00.00Z",
"productOffering": {
"id": "0.0.0.1+-product+48958",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/ip",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServicePassword",
"valueType": "string",
"value": "password",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceLogin",
"valueType": "string",
"value": "OotbNewServiceLoginIpCPUDates_0001",
"@type": "StringCharacteristic"
}
],
"usageStart": {
"unit": "days",
"amount": 5
},
"gracePeriod": {
"unit": "days",
"amount": 1
},
"purchaseEnd": {
"unit": "months",
"amount": 1
},
"cycleEnd": {
"unit": "months",
"amount": 1
},
"id": "0.0.0.1+-purchased_product+245076",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+245076",
"status": "active",
"quantity": 2,
"billingAccount": {
"id": "0.0.0.1+-account+219307",
"name": "John ",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-ip+245332",
"@type": "RealizingService"
}
],
"startDate": "2018-01-06T08:00:00.00Z",
"usageEnd": {
"unit": "months",
"amount": 1
}
}
Example 6: Creating a Purchase Product With An Existing Service
The following example shows how to create a purchase product with an existing service by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
curl -X POST 'http://host:port/brm/productInventory/version/product' -d @productCreate.json
The -d option specifies the file to attach as the request body.
Request Body
The following is an example of the contents of the productCreate.json file sent as the request body.
{
"isBundle": false,
"name": "Voice Over IP12",
"@type": "Product",
"description": "Test description",
"terminationDate": "2020-01-01T08:00:00.00Z",
"productOffering": {
"name": "Product 1a - Internet Access",
"id": "0.0.0.1+-product+48958",
"@type": "ProductOffering"
},
"status": "active",
"id": "OotbPurchasedProductKartikesExisting_0001",
"billingAccount": {
"id": "0.0.0.1+-account+219307",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-ip+242469",
"@type": "RealizingService"
}
],
"startDate": "2018-01-01T08:00:00.00Z"
}
Response Body
The following example shows the contents of the response body in JSON format.
{
"isBundle": false,
"name": "Voice Over IP12",
"@type": "Product",
"cycleStart": {
"unit": "absolute",
"amount": 0
},
"purchaseStart": {
"unit": "absolute",
"amount": 0
},
"description": "Test description",
"terminationDate": "2020-01-01T08:00:00.00Z",
"productOffering": {
"id": "0.0.0.1+-product+48958",
"@type": "ProductOffering"
},
"usageStart": {
"unit": "absolute",
"amount": 0
},
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_product+248342",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+248342",
"status": "active",
"quantity": 1,
"billingAccount": {
"id": "0.0.0.1+-account+219307",
"name": "John ",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-ip+242469",
"@type": "RealizingService"
}
],
"startDate": "2018-01-01T08:00:00.00Z",
"usageEnd": {
"unit": "absolute",
"amount": 0
}
}
Example 7: Creating a Product Price Override
The following example shows how to create a product priceOverride with a product by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
curl -X POST 'http://host:port/brm/productInventory/version/product' -d @productCreate.json
The -d option specifies the file to attach as the request body.
Request Body
The following is an example of the contents of the productCreate.json file sent as the request body.
{
"isBundle": false,
"name": "Voice Over IP12",
"@type": "Product",
"description": "Test description",
"terminationDate": "2020-01-01T08:00:00.00Z",
"productOffering": {
"name": "Teen Telephony C4B0",
"id": "0.0.0.1+-product+193461",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"name": "MSISDN",
"valueType": "string",
"value": "OotbNewServiceAliasMSISDNPriceOverride_0001",
"@type": "StringCharacteristic"
},
{
"name": "IMEI",
"valueType": "string",
"value": "OotbNewServiceAliasIMEIPriceOverride_0001",
"@type": "StringCharacteristic"
}
],
"status": "active",
"quantity": 1,
"id": "OotbPurchasedProductPriceOverride_0001",
"billingAccount": {
"id": "0.0.0.1+-account+219307",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+0",
"@type": "RealizingService"
}
],
"productPrice": [
{
"@type": "ProductPrice",
"priceType": "oneTime",
"priceAlteration": [
{
"@type": "PriceAlteration",
"priceType": "AmountOverride",
"price": {
"@type": "Price",
"dutyFreeAmount": {
"value": 29.99,
"unit": "USD"
}
}
}
]
}
],
"startDate": "2018-01-03T08:00:00.00Z"
}
Response Body
The following example shows the contents of the response body in JSON format.
{
"isBundle": false,
"name": "Voice Over IP12",
"@type": "Product",
"cycleStart": {
"unit": "absolute",
"amount": 0
},
"purchaseStart": {
"unit": "absolute",
"amount": 0
},
"description": "Test description",
"terminationDate": "2020-01-01T08:00:00.00Z",
"productOffering": {
"id": "0.0.0.1+-product+193461",
"@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"
}
],
"usageStart": {
"unit": "absolute",
"amount": 0
},
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"productPrice": [
{
"@type": "ProductPrice",
"priceType": "oneTime",
"priceAlteration": [
{
"@type": "PriceAlteration",
"priceType": "AmountOverride",
"price": {
"dutyFreeAmount": {
"unit": "USD",
"value": "29.99"
},
"@type": "Price"
}
}
]
}
],
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_product+249732",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+249732",
"status": "active",
"quantity": 1,
"billingAccount": {
"id": "0.0.0.1+-account+219307",
"name": "John ",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+249220",
"@type": "RealizingService"
}
],
"startDate": "2018-01-03T08:00:00.00Z",
"usageEnd": {
"unit": "absolute",
"amount": 0
}
}
Example 8: Creating a Tied Discount or Product
The following example shows how to create a tied discount or product with a tie ID by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
curl -X POST 'http://host:port/brm/productInventory/version/product' -d @productCreate.json
The -d option specifies the file to attach as the request body.
Request Body
The following is an example of the contents of the productCreate.json file sent as the request body.
{
"isBundle": false,
"name": "Voice Over IP12",
"@type": "Product",
"cycleStart": {
"unit": "absolute",
"amount": 0
},
"purchaseStart": {
"unit": "absolute",
"amount": 0
},
"description": "Test description",
"terminationDate": "2020-01-01T08:00:00.00Z",
"productOffering": {
"id": "0.0.0.1+-product+193461",
"@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"
}
],
"usageStart": {
"unit": "absolute",
"amount": 0
},
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"productPrice": [
{
"@type": "ProductPrice",
"priceType": "oneTime",
"priceAlteration": [
{
"@type": "PriceAlteration",
"priceType": "AmountOverride",
"price": {
"dutyFreeAmount": {
"unit": "USD",
"value": "29.99"
},
"@type": "Price"
}
}
]
}
],
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_product+249732",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+249732",
"status": "active",
"quantity": 1,
"billingAccount": {
"id": "0.0.0.1+-account+219307",
"name": "John ",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+249220",
"@type": "RealizingService"
}
],
"startDate": "2018-01-03T08:00:00.00Z",
"usageEnd": {
"unit": "absolute",
"amount": 0
}
}
Response Body
The following example shows the contents of the response body in JSON format.
{
"isBundle": true,
"name": "Voice Over IP12",
"productRelationship": {
"id": "0.0.0.1+-purchased_discount+180272",
"relationshipType": "tiedDiscount"
},
"@type": "Product",
"cycleStart": {
"unit": "absolute",
"amount": 0
},
"purchaseStart": {
"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": "OotbBaseServiceAliasMSISDNTiedProductwithId_0001",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "IMEI",
"valueType": "string",
"value": "OotbBaseServiceAliasIMEITiedProductwithId_0001",
"@type": "StringCharacteristic"
}
],
"usageStart": {
"unit": "absolute",
"amount": 0
},
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_product+179144",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+179144",
"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+176584",
"@type": "RealizingService"
}
],
"startDate": "2018-01-03T08:00:00.00Z",
"usageEnd": {
"unit": "absolute",
"amount": 0
}
}
Example 9: POST Request With Query Parameters
The following example shows how to submit a POST request with query parameters on the REST resource using cURL. For more information about cURL, see Use cURL.
curl -X POST 'http://host:port/brm/productInventory/version/product?fields=name,billingAccount,productCharacteristic' -d @productCreate.json
The -d option specifies the file to attach as the request body.
Request Body
The following is an example of the contents of the productCreate.json file sent as the request body.
{
"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+173233",
"@type": "ProductOffering"
},
"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"
}
],
"id": "QueryParamId_0004",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+173169",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+0",
"@type": "RealizingService"
}
],
"startDate": "2018-01-03T08:00:00.00Z"
}
Response Body
The following example shows the contents of the response body in JSON format.
{
"name": "Voice Over IP12",
"@type": "Product",
"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"
}
],
"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"
}
}
Example 10: Creating a Product with Price Tags as Product Characteristics
The following example shows how to submit a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
curl -X POST 'http://host:port/brm/productInventory/version/product' -d @productCreate.json
The -d option specifies the file to attach as the request body.
Request Body
The following is an example of the contents of the productCreate.json file sent as the request body.
{
"isBundle": false,
"name": "Voice Over IP ",
"@type": "Product",
"description": "Test description",
"terminationDate": "2024-01-04T08:00:00.00Z",
"productOffering": {
"name": "Product 1a - Internet Access",
"id": "0.0.0.1+-product+43220",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceLogin",
"valueType": "string",
"value": "newLoginBase_0019",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServicePassword",
"valueType": "string",
"value": "password",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/ip",
"@type": "StringCharacteristic"
},
{
"id": "PriceTags_0019",
"name": "PriceOverride",
"valueType": "array",
"value": [
{
"priceType": "Recurring",
"recurringChargePeriodLength": 1,
"recurringChargePeriodType": "MONTH",
"startDate": "2023-01-07T00:00:00.000Z",
"endDate": "2023-01-07T00:00:00.000Z",
"name": "PRICE1",
"amount": 12
},
{
"priceType": "One Time",
"startDate": "2023-01-07T00:00:00.000Z",
"endDate": "2023-01-07T00:00:00.000Z",
"name": "ONE Time PRICE1",
"percentage": 12
}
]
}
],
"status": "active",
"id": "ProductIpServiceFlattened_0019",
"billingAccount": {
"name": "Junior Walter",
"id": "0.0.0.1+-account+90210",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-ip+0",
"@type": "RealizingService"
}
],
"startDate": "2020-01-01T08:00:00.00Z"
}
Response Body
The following example shows the contents of the response body in JSON format.
{
"isBundle": false,
"name": "Voice Over IP ",
"@type": "Product",
"description": "Test description",
"terminationDate": "2024-01-04T08:00:00.00Z",
"productOffering": {
"name": "Product 1a - Internet Access",
"id": "0.0.0.1+-product+43220",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceLogin",
"valueType": "string",
"value": "newLoginBase_0019",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServicePassword",
"valueType": "string",
"value": "password",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/ip",
"@type": "StringCharacteristic"
},
{
"id": "PriceTags_0019",
"name": "PriceOverride",
"valueType": "array",
"value": [
{
"priceType": "Recurring",
"recurringChargePeriodLength": 1,
"recurringChargePeriodType": "MONTH",
"startDate": "2023-01-07T00:00:00.000Z",
"endDate": "2023-01-07T00:00:00.000Z",
"name": "PRICE1",
"amount": 12
},
{
"priceType": "One Time",
"startDate": "2023-01-07T00:00:00.000Z",
"endDate": "2023-01-07T00:00:00.000Z",
"name": "ONE Time PRICE1",
"percentage": 12
}
]
}
],
"status": "active",
"id": "0.0.0.1+-purchased_product+293101",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+293101",
"billingAccount": {
"name": "Junior Walter",
"id": "0.0.0.1+-account+90210",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-ip+181921",
"@type": "RealizingService"
}
],
"startDate": "2020-01-01T08:00:00.00Z"
}
Example 11: Creating a Product with Balance Group Characteristics
The following example shows how to submit a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
curl -X POST 'http://host:port/brm/productInventory/version/product' -d @productCreate.json
The -d option specifies the file to attach as the request body.
Request Body
The following is an example of the contents of the productCreate.json file sent as the request body.
{
"isBundle": false,
"name": "Voice Over IP12",
"@type": "Product",
"description": "Test description",
"terminationDate": "2020-01-01T08:00:00.00Z",
"productOffering": {
"name": "Product 1a - Internet Access",
"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": "password",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceLogin",
"valueType": "string",
"value": "OotbNewServiceLoginIpKartikesBalanceGroup_0001",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "BalanceGroup",
"valueType": "string",
"value": "0.0.0.1 /balance_group 169929",
"@type": "StringCharacteristic"
}
],
"status": "active",
"quantity": 1,
"id": "OotbPurchasedProductKartikesBalanceGroup_0001",
"billingAccount": {
"id": "0.0.0.1+-account+170441",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-ip+0",
"@type": "RealizingService"
}
],
"startDate": "2018-01-03T08:00:00.00Z"
}
Response Body
The following example shows the contents of the response body in JSON format.
{
"isBundle": false,
"name": "Voice Over IP12",
"@type": "Product",
"cycleStart": {
"unit": "absolute",
"amount": 0
},
"purchaseStart": {
"unit": "absolute",
"amount": 0
},
"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": "password",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceLogin",
"valueType": "string",
"value": "OotbNewServiceLoginIpKartikesBalanceGroup_0001",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "BalanceGroup",
"valueType": "string",
"value": "0.0.0.1 /balance_group 169929",
"@type": "StringCharacteristic"
}
],
"usageStart": {
"unit": "absolute",
"amount": 0
},
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_product+176464",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+176464",
"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+176720",
"@type": "RealizingService"
}
],
"startDate": "2018-01-03T08:00:00.00Z",
"usageEnd": {
"unit": "absolute",
"amount": 0
}
}
Example 12: Creating a Product with Bill Structure Characteristics
The following example shows how to submit a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
curl -X POST 'http://host:port/brm/productInventory/version/product' -d @productCreate.json
The -d option specifies the file to attach as the request body.
Request Body
The following is an example of the contents of the productCreate.json file sent as the request body.
{
"isBundle": false,
"name": "Voice Over IP12",
"@type": "Product",
"description": "Test description",
"terminationDate": "2020-01-01T08:00:00.00Z",
"productOffering": {
"name": "Product 1a - Internet Access",
"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": "password",
"@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"
}
],
"status": "active",
"quantity": 1,
"id": "OotbPurchasedProductKartikesBillInfo_0001",
"billingAccount": {
"id": "0.0.0.1+-account+170441",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-ip+0",
"@type": "RealizingService"
}
],
"startDate": "2018-01-03T08:00:00.00Z"
}
Response Body
The following example shows the contents of the response body in JSON format.
{
"isBundle": false,
"name": "Voice Over IP12",
"@type": "Product",
"cycleStart": {
"unit": "absolute",
"amount": 0
},
"purchaseStart": {
"unit": "absolute",
"amount": 0
},
"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": "password",
"@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"
}
],
"usageStart": {
"unit": "absolute",
"amount": 0
},
"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
}
}
Example 13: Creating a Product with Product Relationship Bundles
The following example shows how to submit a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
curl -X POST 'http://host:port/brm/productInventory/version/product' -d @productCreate.json
The -d option specifies the file to attach as the request body.
Request Body
The following is an example of the contents of the productCreate.json file sent as the request body.
{
"isBundle": true,
"name": "Voice Over IP12",
"@type": "Product",
"description": "Test description",
"terminationDate": "2020-01-01T08:00:00.00Z",
"productOffering": {
"name": "Teen Telephony C4B0",
"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"
},
{
"name": "IMEI",
"valueType": "string",
"value": "OotbBaseServiceAliasIMEIBundles_0001",
"@type": "StringCharacteristic"
}
],
"status": "active",
"id": "OotbPurchasedProductKartikesBaseBundles_0001",
"billingAccount": {
"id": "0.0.0.1+-account+170441",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+0",
"@type": "RealizingService"
}
],
"startDate": "2018-01-01T08:00:00.00Z",
"productRelationship": {
"id": "0.0.0.1+-purchased_product+179696",
"relationshipType": "bundles"
}
}
Response Body
The following example shows the contents 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",
"cycleStart": {
"unit": "absolute",
"amount": 0
},
"product": [
{
"isBundle": false,
"name": "Voice Over IP12",
"productRelationship": {
"id": "0.0.0.1+-purchased_product+178275",
"relationshipType": "bundledBy"
},
"@type": "Product",
"cycleStart": {
"unit": "absolute",
"amount": 0
},
"purchaseStart": {
"unit": "absolute",
"amount": 0
},
"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": "password",
"@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"
}
],
"usageStart": {
"unit": "absolute",
"amount": 0
},
"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
}
}
],
"purchaseStart": {
"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"
}
],
"usageStart": {
"unit": "absolute",
"amount": 0
},
"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
}
}