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 use 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
(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_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
(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: 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
Example of 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": "Cgbu1234#",
"@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
}
}
Example of 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": "Cgbu1234#",
"@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.
Example of 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"
}
Example of 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.
Example of 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"
}
]
}
Example of 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.
Example of 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"
}
Example of 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.
Example of 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": "Cgbu1234#",
"@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"
}
Example of 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": "Cgbu1234#",
"@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.
Example of 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"
}
Example of 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.
Example of 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"
}
Example of 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.
Example of 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",
"tieId": "tiedDiscountId_0001",
"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": "OotbBaseServiceAliasMSISDNTiedProductwithId_0001",
"@type": "StringCharacteristic"
},
{
"name": "IMEI",
"valueType": "string",
"value": "OotbBaseServiceAliasIMEITiedProductwithId_0001",
"@type": "StringCharacteristic"
}
],
"status": "active",
"id": "OotbPurchasedProductKartikesTiedProductwithId_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-03T08:00:00.00Z",
"productRelationship": {
"id": "0.0.0.1+-purchased_discount+180272",
"relationshipType": "tiedDiscount"
}
}
Example of 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.
Example of 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"
}
Example of 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"
}
}