Create a Product
/product
Request
-
fields: string
Specifies the comma-separated properties to include in the response.
- application/json
-
object
allOf
Entity_FVO
Represents a base entity schema for TM Forum Open APIs.
-
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
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Addressable_FVO
Defines a base schema for addressable entities.
object-
@baseType: string
The superclass.
-
@schemaLocation: string
The URI of a JSON Schema file that defines additional attributes and relationships.
-
@type(required): string
The subclass Extensible name.
object-
id: string
The ID.
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
Represents a base extensible schema for TM Forum Open APIs. The entity must include @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
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Addressable_FVO
Defines a base schema for addressable entities.
-
object
EntityRef_FVO-allOf[2]
Represents an entity reference schema for EntityRef classes.
object-
@referredType: string
The actual type of the target instance when needed for disambiguation.
-
href: string
The URI of the referred entity.
-
id(required): string
The identifier of the referred entity.
-
name: string
The referred entity's name.
object-
ratingType: string
Indicates if the account follows a specific payment option such as prepaid or postpaid.
objectDiscriminator Values
-
Product_FVO
-
object
ProductRef_FVO
A product reference.
-
ProductOracle_FVO
object-
object
Extensible_FVO
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
allOf
EntityRef_FVO
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Characteristic_FVO-allOf[1]
Describes a given characteristic of an object or entity through a name/value pair.
object-
@baseType: string
The superclass.
-
@schemaLocation: string
The URI of a JSON Schema file that defines additional attributes and relationships.
-
@type(required): string
The subclass Extensible name.
object-
characteristicRelationship: array
characteristicRelationship
-
id: string
The characteristic's ID.
-
name(required): string
The characteristic's name.
-
valueType: string
The characteristic value's data type.
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
CharacteristicRelationship_FVO-allOf[1]
The related characteristic.
object-
id(required): string
The characteristic's ID.
-
relationshipType(required): string
The relationship type.
object-
version: string
The product offering version.
objectDiscriminator Values
-
object
Extensible_FVO
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Discriminator: @type-allOf[1]
Describes the price and any discount awarded.
object-
description: string
A description of the product price.
-
name: string
The name of the product price.
-
price:
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "Price":"#/components/schemas/Price_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
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Discriminator: @type-allOf[1]
Provides monetary amounts (tax included, duty-free), currency, and percentages to apply to Price and PriceAlteration.
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "PriceAlteration":"#/components/schemas/PriceAlteration_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
Represents a monetary amount.
-
percentage: number
(float)
The percentage to apply to a product offering price alteration.
-
taxIncludedAmount: object
Money
Represents a monetary amount.
-
taxRate: number
(float)
The tax rate.
object-
unit: string
The currency's ISO 4217 three-letter code.
-
value: number
(double)
A signed floating-point number whose sign depends on the API context.
objectDiscriminator Values
-
object
Extensible_FVO
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Discriminator: @type-allOf[1]
An amount, usually monetary, that modifies the price charged for an order item.
object-
applicationDuration: integer
The duration for which the alteration applies to the order item price (for example: 2 months free of charge for the recurring charge).
-
description: string
Explains the semantics of this order item price alteration.
-
name: string
The order item price alteration name.
-
price(required):
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "Price":"#/components/schemas/Price_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
Represents a base extensible schema for TM Forum Open APIs. The entity must include @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
Represents a base extensible schema for TM Forum Open APIs. The entity must include @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.
-
specialRatingProfile:
SpecialRatingProfile_FVO
-
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
Extensible_FVO
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
allOf
SpecialRatingProfile
Represents a product-linked special rating profile instance for BRM service extended rating.
-
object
SpecialRatingProfile_FVO-allOf[2]
-
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.
objectobjectobject-
@type: string
Identifies the service extended rating profile type.
-
data: array
data
The rating attribute values used by rating.
-
id: string
The profile identifier.
-
label: string
The label used to identify the special rating profile in rating rules.
-
name: string
The special rating profile name.
-
referenceCount: integer
The special rating profile reference count.
-
status: string
Allowed Values:
[ "noop", "provisioning", "provisioningFailed", "active", "unprovisioning", "unprovisioningFailed", "unprovisioned", "suspending", "suspendingFailed", "suspended" ]The special rating profile provisioning status.
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
SpecialRatingProfile-allOf[1]
objectobject-
data: array
data
The rating attribute values used by rating.
-
object
SpecialRatingProfileData
A name/value entry for a product-linked special rating profile.
-
object
SpecialRatingProfileData_FVO-allOf[1]
object-
name: string
The profile data attribute name.
-
validFor: object
TimePeriod
Represents a time period with a start date, an end date, or both.
-
value: string
The profile data attribute value.
objectobject-
endDateTime: string
(date-time)
The end of the time period in IETF RFC 3339 format.Example:
1985-04-12T23:20:50.52Z -
startDateTime: string
(date-time)
The start of the time period in IETF RFC 3339 format.Example:
1985-04-12T23:20:50.52Z
objectobjectResponse
201 Response
-
object
allOf
Entity
Represents a base entity schema for TM Forum Open APIs.
-
object
Product-allOf[1]
A product offering procured by a customer or any other party playing a party role. The product is realized as one or more services or resources.
-
allOf
Product
-
object
ProductOracle-allOf[1]
A product offering procured by a customer or other interested party playing a party role. A product is realized as one or more service and/or resources.
object-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Addressable
Defines a base schema for addressable entities.
object-
@baseType: string
The superclass.
-
@schemaLocation: string
The URI of a JSON Schema file that defines additional attributes and relationships.
-
@type(required): string
The subclass Extensible name.
object-
href: string
The hyperlink reference.
-
id: string
The ID.
object-
billingAccount:
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "BillingAccountRef":"#/components/schemas/BillingAccountRef" } } -
description: string
Describes the product. You can copy it from the product offering description.
-
isBundle: boolean
Indicates whether the product is a ProductBundle (true) or a ProductComponent (false).
-
name: string
The product name; it can match the product offering name.
-
product: array
product
-
productCharacteristic: array
productCharacteristic
-
productOffering:
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductOfferingRef":"#/components/schemas/ProductOfferingRef" } } -
productPrice: array
productPrice
-
productRelationship: array
productRelationship
-
realizingService: array
realizingService
-
startDate: string
(date-time)
The date the product starts.
-
status: string
Allowed Values:
[ "created", "pendingActive", "cancelled", "active", "pendingTerminate", "terminated", "suspended", "aborted" ]The possible values for a product's status. -
terminationDate: string
(date-time)
The date the product was terminated.
objectDiscriminator Values
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
allOf
EntityRef
-
object
Discriminator: @type-allOf[2]
Refers to the billing account. The billing account describes the bill structure.
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "Product":"#/components/schemas/Product", "ProductRef":"#/components/schemas/ProductRef", "ProductOracle":"#/components/schemas/ProductOracle" } }The polymorphic attributes (@type, @schemaLocation, and @referredType) apply to the Product entity, not to the ProductRefOrValue class.
objectDiscriminator Values
-
allOf
EntityRef
-
object
Discriminator: @type-allOf[1]
Represents entities that are orderable from the catalog provider. This resource includes pricing information.
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductPrice":"#/components/schemas/ProductPrice" } }
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductRelationship":"#/components/schemas/ProductRelationship" } }
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ServiceRef":"#/components/schemas/ServiceRef" } }The service reference used by other entities.
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Addressable
Defines a base schema for addressable entities.
-
object
EntityRef-allOf[2]
Represents an entity reference schema for EntityRef classes.
object-
@referredType: string
The actual type of the target instance when needed for disambiguation.
-
href: string
The URI of the referred entity.
-
id(required): string
The identifier of the referred entity.
-
name: string
The referred entity's name.
object-
ratingType: string
Indicates if the account follows a specific payment option such as prepaid or postpaid.
objectDiscriminator Values
-
Product
-
object
ProductRef
A product reference.
-
ProductOracle
object-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
allOf
EntityRef
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Characteristic-allOf[1]
Describes a given characteristic of an object or entity through a name/value pair.
object-
characteristicRelationship: array
characteristicRelationship
-
id: string
The characteristic's ID.
-
name: string
The characteristic's name.
-
valueType: string
The characteristic value's data type.
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
CharacteristicRelationship-allOf[1]
The related characteristic.
object-
id: string
The characteristic's ID.
-
relationshipType: string
The relationship type.
object-
version: string
Version of the product offering
objectDiscriminator Values
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Discriminator: @type-allOf[1]
Describes the price and any discount awarded.
object-
description: string
A description of the product price.
-
name: string
The name of the product price.
-
price:
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "Price":"#/components/schemas/Price" } } -
priceAlteration: array
priceAlteration
-
priceType: string
Indicates whether the price is for a recurring or a non-recurring charge.
-
productOfferingPrice:
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductOfferingPriceRef":"#/components/schemas/ProductOfferingPriceRef" } } -
recurringChargePeriod: string
Indicates the period for a recurring charge (for example: month or week).
-
unitOfMeasure: string
Unit of measure if the price depends on it (for example: GB or SMS volume).
objectDiscriminator Values
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Discriminator: @type-allOf[1]
Provides monetary amounts (tax included, duty-free), currency, and percentages to apply to Price and PriceAlteration.
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "PriceAlteration":"#/components/schemas/PriceAlteration" } }
objectDiscriminator Values
-
allOf
EntityRef
-
object
Discriminator: @type-allOf[1]
An amount, usually monetary, that is asked for or allowed when a ProductOffering is bought, rented, or leased.
object-
dutyFreeAmount: object
Money
Represents a monetary amount.
-
percentage: number
(float)
The percentage to apply to a product offering price alteration.
-
taxIncludedAmount: object
Money
Represents a monetary amount.
-
taxRate: number
(float)
The tax rate.
object-
unit: string
The currency's ISO 4217 three-letter code.
-
value: number
(double)
A signed floating-point number whose sign depends on the API context.
objectDiscriminator Values
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Discriminator: @type-allOf[1]
An amount, usually monetary, that modifies the price charged for an order item.
object-
applicationDuration: integer
The duration for which the alteration applies to the order item price (for example: 2 months free of charge for the recurring charge).
-
description: string
Describes the semantics of this order item price alteration.
-
name: string
The order item price alteration name.
-
price:
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "Price":"#/components/schemas/Price" } } -
priceType: string
The price category (for example: recurring, one time, or usage).
-
priority: integer
The priority for applying this alteration among all defined alterations on the order item price.
-
productOfferingPrice:
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductOfferingPriceRef":"#/components/schemas/ProductOfferingPriceRef" } } -
recurringChargePeriod: string
Specifies the recurring charge period (for example: month or week).
-
unitOfMeasure: string
Specifies the unit of measure (for example: minutes or GB).
object-
version: string
The product offering price version.
objectDiscriminator Values
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
allOf
EntityRef
-
object
Discriminator: @type-allOf[2]
Describes the relationship between products.
object-
id: string
The related product's ID.
-
relationshipType: string
Specifies the relationship type (for example: bundledBy, bundles, tiedDiscount, or tiedProduct).
objectDiscriminator Values
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
allOf
EntityRef
object-
cycleEnd:
CycleEndRef
-
cycleEndDate: string
(date-time)
The purchased product cycle end date.
-
cycleStart:
CycleStartRef
-
cycleStartDate: string
(date-time)
The purchased product cycle start date.
-
gracePeriod:
GracePeriodRef
-
productPrice: array
productPrice
-
productRelationship: array
productRelationship
-
purchaseEnd:
PurchaseEndRef
-
purchaseEndDate: string
(date-time)
The purchased product purchase end date.
-
purchaseStart:
PurchaseStartRef
-
purchaseStartDate: string
(date-time)
The purchased product purchase start date.
-
quantity: integer
Is the quantity of service while creation of a purchase product.
-
specialRatingProfile:
specialRatingProfile
Service extended rating profile linked to the product.
-
usageEnd:
UsageEndRef
-
usageEndDate: string
(date-time)
The purchased product usage end date.
-
usageStart:
UsageStartRef
-
usageStartDate: string
(date-time)
The purchased product usage start date.
-
object
CPUDatesExtension_FVO
Contains the CPU extension dates' common properties.
-
object
CycleEndRef-allOf[1]
CycleEnd reference. A CycleEnd contains details regarding cycle end date for purchased product.
-
object
CPUDatesExtension_FVO
Contains the CPU extension dates' common properties.
-
object
CycleStartRef-allOf[1]
CycleStart reference. A CycleStart contains details regarding cycle start date for purchased product.
-
object
CPUDatesExtension_FVO
Contains the CPU extension dates' common properties.
-
object
GracePeriodRef-allOf[1]
GracePeriod reference. A GracePeriod contains details regarding grace period date for purchased product.
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductPrice":"#/components/schemas/ProductPriceOracle" } }
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductRelationship":"#/components/schemas/ProductRelationshipOracle" } }
-
object
CPUDatesExtension_FVO
Contains the CPU extension dates' common properties.
-
object
PurchaseEndRef-allOf[1]
PurchaseEnd reference. A PurchaseEnd contains details regarding purchase end date for purchased product.
-
object
CPUDatesExtension_FVO
Contains the CPU extension dates' common properties.
-
object
PurchaseStartRef-allOf[1]
PurchaseStart reference. A PurchaseStart contains details regarding purchase start date for purchased product.
-
object
allOf
SpecialRatingProfile
Represents a product-linked special rating profile instance for BRM service extended rating.
-
object
CPUDatesExtension_FVO
Contains the CPU extension dates' common properties.
-
object
UsageEndRef-allOf[1]
UsageEnd reference. A UsageEnd contains details regarding usage end date for purchased product.
-
object
CPUDatesExtension_FVO
Contains the CPU extension dates' common properties.
-
object
UsageStartRef-allOf[1]
UsageStart reference. A UsageStart contains details regarding usage start date for purchased product.
object-
amount(required): integer
Indicates the amount of time of a given unit.
-
unit(required): string
Allowed Values:
[ "seconds", "minutes", "hours", "days", "months", "acct_cycles", "first_usage", "absolute" ]Indicates the unit of time for the CPU extension date. Can be "seconds", "minutes", "hours", "days", "months", "acct_cycles", "first_usage" and "absolute".
objectobjectobjectobjectDiscriminator Values
-
object
allOf
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductPrice":"#/components/schemas/ProductPrice" } } -
object
Discriminator: @type-allOf[1]
A description of the price and discount awarded.
object-
priceAlteration(required): array
priceAlteration
-
priceType(required): string
Allowed Values:
[ "oneTime", "recurring" ]The price type: one-time or recurring.
array-
Array of:
object Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "PriceAlteration":"#/components/schemas/PriceAlterationOracle" } }
objectDiscriminator Values
-
object
allOf
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "PriceAlteration":"#/components/schemas/PriceAlteration" } } -
object
Discriminator: @type-allOf[1]
Is an amount, usually of money, that modifies the price charged for an order item.
object-
priceType: string
Allowed Values:
[ "AmountOverride", "DiscountPercentageOverride", "DiscountAmountOverride" ]A category that describes the price, such as AmountOverride, DiscountPercentageOverride, or DiscountAmountOverride.
objectDiscriminator Values
-
object
allOf
Discriminator: @type
Discriminator:
{ "propertyName":"@type", "mapping":{ "ProductRelationship":"#/components/schemas/ProductRelationship" } } -
object
Discriminator: @type-allOf[1]
Used to describe the relationship between products.
object-
relationshipType(required): string
Allowed Values:
[ "bundles", "bundledBy", "tiedDiscount", "tiedProduct" ]The relationship type: bundles, bundledBy, tiedDiscount, tiedProduct.
objectobjectobject-
@type: string
Identifies the service extended rating profile type.
-
data: array
data
The rating attribute values used by rating.
-
id: string
The profile identifier.
-
label: string
The label used to identify the special rating profile in rating rules.
-
name: string
The special rating profile name.
-
referenceCount: integer
The special rating profile reference count.
-
status: string
Allowed Values:
[ "noop", "provisioning", "provisioningFailed", "active", "unprovisioning", "unprovisioningFailed", "unprovisioned", "suspending", "suspendingFailed", "suspended" ]The special rating profile provisioning status.
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
SpecialRatingProfile-allOf[1]
objectobjectobject202 Response
400 Response
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Error-allOf[1]
object-
@baseType: string
The superclass.
-
@schemaLocation: string
The URI of a JSON Schema file that defines additional attributes and relationships.
-
@type(required): string
The subclass Extensible name.
object-
code(required): string
The application-specific error detail defined by the API or a common list.
-
message: string
Provides error details and corrective actions for a client user.
-
reason(required): string
Explains the error to a client user.
-
referenceError: string
The URI of documentation that describes the error.
-
status: string
The HTTP error code extension.
401 Response
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Error-allOf[1]
object-
@baseType: string
The superclass.
-
@schemaLocation: string
The URI of a JSON Schema file that defines additional attributes and relationships.
-
@type(required): string
The subclass Extensible name.
object-
code(required): string
The application-specific error detail defined by the API or a common list.
-
message: string
Provides error details and corrective actions for a client user.
-
reason(required): string
Explains the error to a client user.
-
referenceError: string
The URI of documentation that describes the error.
-
status: string
The HTTP error code extension.
403 Response
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Error-allOf[1]
object-
@baseType: string
The superclass.
-
@schemaLocation: string
The URI of a JSON Schema file that defines additional attributes and relationships.
-
@type(required): string
The subclass Extensible name.
object-
code(required): string
The application-specific error detail defined by the API or a common list.
-
message: string
Provides error details and corrective actions for a client user.
-
reason(required): string
Explains the error to a client user.
-
referenceError: string
The URI of documentation that describes the error.
-
status: string
The HTTP error code extension.
404 Response
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Error-allOf[1]
object-
@baseType: string
The superclass.
-
@schemaLocation: string
The URI of a JSON Schema file that defines additional attributes and relationships.
-
@type(required): string
The subclass Extensible name.
object-
code(required): string
The application-specific error detail defined by the API or a common list.
-
message: string
Provides error details and corrective actions for a client user.
-
reason(required): string
Explains the error to a client user.
-
referenceError: string
The URI of documentation that describes the error.
-
status: string
The HTTP error code extension.
405 Response
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Error-allOf[1]
object-
@baseType: string
The superclass.
-
@schemaLocation: string
The URI of a JSON Schema file that defines additional attributes and relationships.
-
@type(required): string
The subclass Extensible name.
object-
code(required): string
The application-specific error detail defined by the API or a common list.
-
message: string
Provides error details and corrective actions for a client user.
-
reason(required): string
Explains the error to a client user.
-
referenceError: string
The URI of documentation that describes the error.
-
status: string
The HTTP error code extension.
409 Response
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Error-allOf[1]
object-
@baseType: string
The superclass.
-
@schemaLocation: string
The URI of a JSON Schema file that defines additional attributes and relationships.
-
@type(required): string
The subclass Extensible name.
object-
code(required): string
The application-specific error detail defined by the API or a common list.
-
message: string
Provides error details and corrective actions for a client user.
-
reason(required): string
Explains the error to a client user.
-
referenceError: string
The URI of documentation that describes the error.
-
status: string
The HTTP error code extension.
500 Response
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Error-allOf[1]
object-
@baseType: string
The superclass.
-
@schemaLocation: string
The URI of a JSON Schema file that defines additional attributes and relationships.
-
@type(required): string
The subclass Extensible name.
object-
code(required): string
The application-specific error detail defined by the API or a common list.
-
message: string
Provides error details and corrective actions for a client user.
-
reason(required): string
Explains the error to a client user.
-
referenceError: string
The URI of documentation that describes the error.
-
status: string
The HTTP error code extension.
501 Response
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Error-allOf[1]
object-
@baseType: string
The superclass.
-
@schemaLocation: string
The URI of a JSON Schema file that defines additional attributes and relationships.
-
@type(required): string
The subclass Extensible name.
object-
code(required): string
The application-specific error detail defined by the API or a common list.
-
message: string
Provides error details and corrective actions for a client user.
-
reason(required): string
Explains the error to a client user.
-
referenceError: string
The URI of documentation that describes the error.
-
status: string
The HTTP error code extension.
503 Response
-
object
Extensible
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
-
object
Error-allOf[1]
object-
@baseType: string
The superclass.
-
@schemaLocation: string
The URI of a JSON Schema file that defines additional attributes and relationships.
-
@type(required): string
The subclass Extensible name.
object-
code(required): string
The application-specific error detail defined by the API or a common list.
-
message: string
Provides error details and corrective actions for a client user.
-
reason(required): string
Explains the error to a client user.
-
referenceError: string
The URI of documentation that describes the error.
-
status: string
The HTTP error code extension.
Examples
-
Example 2: Grouping SMS and Telephony Services into a Subscription Group
-
Example 3: Grouping SMS and Telephony Services into a Subscription Group (Custom Payload)
-
Example 6: Creating a Discount Sharing Group Owner on a Parent Account
-
Example 7: Adding an AR Child to an Existing Parent Discount Sharing Group
-
Example 8: Creating an Account Level Discount Sharing Group Without a Service
-
Example 9: Creating a Parent Discount Sharing Group with an Explicit Name
-
Example 10: Creating a Bundled Discount Sharing Group with a Community Offer
-
Example 14: Creating a Purchase Product With a Service Alias
-
Example 18: Creating a Purchase Product With An Existing Service
-
Example 21: Creating a Product with Price Tags as Product Characteristics
-
Example 22: Creating a Product with Balance Group Characteristics
-
Example 23: Creating a Product with Bill Structure Characteristics
-
Example 24: Creating a Product with Product Relationship Bundles
Example 1: Creating an ERA Service Extended Rating Product
This example shows how to create an ERA service extended rating product by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X POST 'http://hostname:port/brm/productInventory/v5/product/' -H 'Content-Type: application/json' -d @sampleRequest1.json
Request Body
The following example shows the contents of the sampleRequest1.json file sent as the request body.
{
"@type": "Product",
"isBundle": false,
"description": "DBE Product Specification instance",
"name": "Voice Over IP",
"status": "active",
"productOffering": {
"id": "0.0.0.1+-product+628979"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"@type": "ArrayCharacteristic",
"id": "ERA_PROD_DBE_p040s",
"name": "ServiceId",
"valueType": "string",
"value": "cuke4brm_productChar_array_test_prodct_ootb_p031"
}
],
"billingAccount": {
"id": "0.0.0.1+-account+734874"
},
"specialRatingProfile": {
"@type": "SpecialRatingProfile",
"name": "FRIENDS_FAMILY",
"label": "Smart Calling up to 5 Numbers",
"status": "noop",
"referenceCount": 1,
"data": [
{
"name": "dummy",
"value": "0039335686849545",
"validFor": {
"startDateTime": "2031-04-02T18:23:39Z"
}
},
{
"name": "dummy",
"value": "0039335873473632",
"validFor": {
"startDateTime": "2031-04-02T18:23:39Z",
"endDateTime": "2031-05-01T00:00:00Z"
}
}
]
}
}
Response Body
The following example shows the response body.
{
"@type": "ProductOracle",
"cycleStart": {
"unit": "absolute",
"amount": 0
},
"purchaseStart": {
"unit": "absolute",
"amount": 0
},
"terminationDate": "",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"status": "active",
"id": "0.0.0.1+-purchased_product+220637",
"href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+220637",
"billingAccount": {
"id": "0.0.0.1+-account+734874",
"name": "Junior Walter",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+232586",
"@type": "ServiceRef"
}
],
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"isBundle": false,
"name": "Voice Over IP",
"specialRatingProfile": {
"id": "0.0.0.1+-profile-serv_extrating+224539",
"data": [
{
"validFor": {
"endDateTime": "",
"startDateTime": "2031-04-02T18:23:39.00Z"
},
"name": "dummy",
"value": "0039335686849545"
},
{
"validFor": {
"endDateTime": "2031-05-01T00:00:00.00Z",
"startDateTime": "2031-04-02T18:23:39.00Z"
},
"name": "dummy",
"value": "0039335873473632"
}
],
"name": "FRIENDS_FAMILY",
"label": "Smart Calling up to 5 Numbers",
"@type": "SpecialRatingProfile",
"status": "noop"
"referenceCount": 1
},
"description": "DBE Product Specification instance",
"productOffering": {
"id": "",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "ERA_PROD_DBE_p040s",
"name": "ServiceId",
"valueType": "string",
"value": "cuke4brm_productChar_array_test_prodct_ootb_p031",
"@type": "StringCharacteristic"
}
],
"usageStart": {
"unit": "absolute",
"amount": 0
},
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"quantity": 1,
"startDate": "2018-01-01T08:00:00.00Z"
}
Example 2: Grouping SMS and Telephony Services into a Subscription Group
This example shows how to group SMS and telephony services into a single subscription group by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X POST 'http://hostname:port/brm/productInventory/v5/product/' -H 'Content-Type: application/json' -d @sampleRequest2.json
Request Body
The following example shows the contents of the sampleRequest2.json file sent as the request body.
{
"@type": "Product",
"isBundle": true,
"description": "DBE Product Specification instance",
"name": "Voice Over IP",
"status": "active",
"startDate": "2018-01-02T01:30:00Z",
"terminationDate": "2020-01-03T01:30:00Z",
"productOffering": {
"id": "0.0.0.1+-product+709347"
},
"quantity": 5,
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "parent_sub29",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm",
"@type": "StringCharacteristic"
},
{
"id": "",
"@type": "StringCharacteristic_FVO",
"valueType": "string",
"name": "Service Grouping",
"value": "Y"
}
],
"billingAccount": {
"id": "0.0.0.1+-account+734874"
},
"product": [
{
"isBundle": false,
"name": "Voice Over SMS",
"@type": "Product",
"description": "Test description",
"terminationDate": "2020-01-04T08:00:00.00Z",
"productOffering": {
"id": "0.0.0.1+-product+709357"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "child_sub_sms29",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/sms",
"@type": "StringCharacteristic"
}
],
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+734874"
},
"startDate": "2018-01-03T08:00:00.00Z"
},
{
"isBundle": false,
"name": "Voice Over GSM Telephony",
"@type": "Product",
"description": "Test description",
"terminationDate": "2020-01-04T08:00:00.00Z",
"productOffering": {
"id": "0.0.0.1+-product+709367"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "child_sub_telephony29",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
}
],
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+734874"
},
"startDate": "2018-01-03T08:00:00.00Z"
}
]
}
Response Body
The following example shows the response body.
{
"productRelationship": [
{
"id": "0.0.0.1+-purchased_product+536529",
"relationshipType": "bundles",
"@type": "ProductRelationshipOracle"
},
{
"id": "0.0.0.1+-purchased_product+536530",
"relationshipType": "bundles",
"@type": "ProductRelationshipOracle"
}
],
"@type": "ProductOracle",
"product": [
{
"productRelationship": [
{
"id": "0.0.0.1+-purchased_product+536560",
"relationshipType": "bundledBy",
"@type": "ProductRelationshipOracle"
}
],
"@type": "ProductOracle",
"terminationDate": "2020-01-02T08:00:00.00Z",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"status": "active",
"id": "0.0.0.1+-purchased_product+536529",
"href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+536529",
"billingAccount": {
"id": "0.0.0.1+-account+734874",
"name": "Junior Walter",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "",
"@type": "ServiceRef"
}
],
"isBundle": false,
"name": "Voice Over SMS",
"description": "Test description",
"productOffering": {
"name": "Standard SMS",
"id": "0.0.0.1+-product+709357",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "child_sub_sms30",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/sms",
"@type": "StringCharacteristic"
}
],
"quantity": 1,
"startDate": "2018-01-01T08:00:00.00Z"
},
{
"productRelationship": [
{
"id": "0.0.0.1+-purchased_product+536560",
"relationshipType": "bundledBy",
"@type": "ProductRelationshipOracle"
}
],
"@type": "ProductOracle",
"terminationDate": "2020-01-02T08:00:00.00Z",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"status": "active",
"id": "0.0.0.1+-purchased_product+536530",
"href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+536530",
"billingAccount": {
"id": "0.0.0.1+-account+734874",
"name": "Junior Walter",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "",
"@type": "ServiceRef"
}
],
"isBundle": false,
"name": "Voice Over GSM Telephony",
"description": "Test description",
"productOffering": {
"name": "Standard GSM Telephony",
"id": "0.0.0.1+-product+709367",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "child_sub_telephony30",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
}
],
"quantity": 1,
"startDate": "2018-01-01T08:00:00.00Z"
}
],
"terminationDate": "2020-01-03T01:30:00.00Z",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"status": "active",
"id": "0.0.0.1+-purchased_product+536560",
"href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+536560",
"billingAccount": {
"id": "0.0.0.1+-account+734874",
"name": "Junior Walter",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "",
"@type": "ServiceRef"
}
],
"isBundle": true,
"name": "Voice Over IP",
"description": "DBE Product Specification instance",
"productOffering": {
"name": "Standard GSM",
"id": "0.0.0.1+-product+709347",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "parent_sub30",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Service Grouping",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
}
],
"quantity": 5,
"startDate": "2018-01-02T01:30:00.00Z"
}
Example 3: Grouping SMS and Telephony Services into a Subscription Group (Custom Payload)
Note:
Key 'externalIdMappingEnabled' should be set to 'true' to use external Ids in custom payloadThis example shows how to group SMS and telephony services into a single subscription group using a custom payload by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X POST 'http://hostname:port/brm/productInventory/v5/product/'-H 'Content-Type: application/json' -d @sampleRequest3.json
Request Body
The following example shows the contents of the sampleRequest3.json file sent as the request body.
{
"@type": "Product",
"id": "cuke4BRM2_productName_test_new_prod_001079",
"isBundle": true,
"description": "DBE Product Specification instance",
"name": "Voice Over IP",
"status": "active",
"startDate": "2018-01-02T01:30:00Z",
"terminationDate": "2020-01-03T01:30:00Z",
"productOffering": {
"id": "Standard GSM"
},
"quantity": 5,
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "parent_sub29",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm",
"@type": "StringCharacteristic"
},
{
"id": "",
"@type": "StringCharacteristic_FVO",
"valueType": "string",
"name": "Service Grouping",
"value": "Y"
}
],
"billingAccount": {
"id": "billing-account-post-2"
},
"product": [
{
"isBundle": false,
"name": "Voice Over SMS",
"@type": "Product",
"description": "Test description",
"terminationDate": "2020-01-04T08:00:00.00Z",
"productOffering": {
"id": "Standard SMS"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "child_sub_sms29",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/sms",
"@type": "StringCharacteristic"
}
],
"status": "active",
"id": "ProductServiceFlattenedSMS1079",
"billingAccount": {
"id": "billing-account-post-2"
},
"startDate": "2018-01-03T08:00:00.00Z"
},
{
"isBundle": false,
"name": "Voice Over GSM Telephony",
"@type": "Product",
"description": "Test description",
"terminationDate": "2020-01-04T08:00:00.00Z",
"productOffering": {
"id": "Standard GSM Telephony"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "child_sub_telephony29",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
}
],
"status": "active",
"id": "ProductTelephoneyServiceFlattened1079",
"billingAccount": {
"id": "billing-account-post-2"
},
"startDate": "2018-01-03T08:00:00.00Z"
}
]
}
Response Body
The following example shows the response body.
{
"productRelationship": [
{
"id": "ProductServiceFlattenedSMS1079",
"relationshipType": "bundles",
"@type": "ProductRelationship"
},
{
"id": "ProductTelephoneyServiceFlattened1079",
"relationshipType": "bundles",
"@type": "ProductRelationship"
}
],
"@type": "Product",
"cycleStart": {
"unit": "absolute",
"amount": 0
},
"product": [
{
"productRelationship": [
{
"id": "cuke4BRM2_productName_test_new_prod_001079",
"relationshipType": "bundledBy",
"@type": "ProductRelationship"
}
],
"@type": "Product",
"cycleStart": {
"unit": "absolute",
"amount": 0
},
"purchaseStart": {
"unit": "absolute",
"amount": 0
},
"terminationDate": "2020-01-02T08:00:00.00Z",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"status": "active",
"id": "ProductServiceFlattenedSMS1079",
"href": "https://host:port/brm/productInventory/v5/product/ProductServiceFlattenedSMS1079",
"billingAccount": {
"id": "billing-account-post-2",
"name": "Douglas Rachel",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "",
"@type": "RealizingService"
}
],
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"isBundle": false,
"name": "Voice Over SMS",
"description": "Test description",
"productOffering": {
"name": "Standard SMS",
"id": "Standard SMS",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "child_sub_sms29",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/sms",
"@type": "StringCharacteristic"
}
],
"usageStart": {
"unit": "absolute",
"amount": 0
},
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"quantity": 1,
"startDate": "2018-01-01T08:00:00.00Z"
},
{
"productRelationship": [
{
"id": "cuke4BRM2_productName_test_new_prod_001079",
"relationshipType": "bundledBy",
"@type": "ProductRelationship"
}
],
"@type": "Product",
"cycleStart": {
"unit": "absolute",
"amount": 0
},
"purchaseStart": {
"unit": "absolute",
"amount": 0
},
"terminationDate": "2020-01-02T08:00:00.00Z",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"status": "active",
"id": "ProductTelephoneyServiceFlattened1079",
"href": "https://host:port/brm/productInventory/v5/product/ProductTelephoneyServiceFlattened1079",
"billingAccount": {
"id": "billing-account-post-2",
"name": "Douglas Rachel",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "",
"@type": "RealizingService"
}
],
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"isBundle": false,
"name": "Voice Over GSM Telephony",
"description": "Test description",
"productOffering": {
"name": "Standard GSM Telephony",
"id": "Standard GSM Telephony",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "child_sub_telephony29",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
}
],
"usageStart": {
"unit": "absolute",
"amount": 0
},
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"quantity": 1,
"startDate": "2018-01-01T08:00:00.00Z"
}
],
"purchaseStart": {
"unit": "absolute",
"amount": 0
},
"terminationDate": "2020-01-02T08:00:00.00Z",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"status": "active",
"id": "cuke4BRM2_productName_test_new_prod_001079",
"href": "https://host:port/brm/productInventory/v5/product/cuke4BRM2_productName_test_new_prod_001079",
"billingAccount": {
"id": "billing-account-post-2",
"name": "John ",
"@type": "BillingAccount"
},
"realizingService": [
{
"id": "",
"@type": "RealizingService"
}
],
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"isBundle": true,
"name": "Voice Over IP",
"description": "DBE Product Specification instance",
"productOffering": {
"name": "",
"id": "",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "parent_sub29",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Service Grouping",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
}
],
"usageStart": {
"unit": "absolute",
"amount": 0
},
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"quantity": 5,
"startDate": "2018-01-01T08:00:00.00Z"
}
Example 4: Creating a Child Account Service Bundle
This example shows how to create the child-account service bundle with two standard telephony child products by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X POST 'http://hostname:port/brm/productInventory/v5/product/' -H 'Content-Type: application/json' -d @sampleRequest4.json
It has the same service-grouping characteristics as the primary bundle. Its two children are standard telephony products and contain no CommunityOffer characteristic.
Request Body
The following example shows the contents of the sampleRequest4.json file sent as the request body.
{
"isBundle": true,
"name": "FP Wireless Family Secondary Line Service",
"id": "SecondaryBundle_01",
"description": "Member service bundle with two telephony children",
"status": "active",
"productOffering": {
"id": "88-1ZKN60"
},
"billingAccount": {
"id": "child_id_01"
},
"realizingService": [
{
"id": ""
}
],
"productCharacteristic": [
{
"id": "SECONDARY-SERVICE-ID",
"name": "ServiceId",
"valueType": "string",
"value": "WFSLS_296-120655776"
},
{
"name": "ServicePassword",
"valueType": "string",
"value": "CGbu_1234#"
},
{
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony"
},
{
"name": "Service Grouping",
"valueType": "string",
"value": "Y"
},
{
"name": "CommunityMember",
"valueType": "string",
"value": "Y"
}
],
"product": [
{
"isBundle": false,
"id": "SecondaryBundleFirstChild_01",
"name": "5G Premium Voice Service",
"description": "Standard GSM telephony subscription",
"status": "active",
"productOffering": {
"id": "Standard GSM Telephony"
},
"billingAccount": {
"id": "child_id_01"
}
},
{
"isBundle": false,
"id": "SecondaryBundleSecondChild_01",
"name": "Standard GSM Telephony Add-on",
"description": "Second standard GSM telephony product",
"status": "active",
"productOffering": {
"id": "Standard GSM Telephony"
},
"billingAccount": {
"id": "child_id_01"
}
}
]
}
Response Body
The following example shows the response body.
{
"productRelationship": [
{
"id": "SecondaryBundleFirstChild_01",
"relationshipType": "bundles",
"@type": "ProductRelationshipOracle"
},
{
"id": "SecondaryBundleSecondChild_01",
"relationshipType": "bundles",
"@type": "ProductRelationshipOracle"
}
],
"@type": "ProductOracle",
"cycleStart": {
"unit": "absolute",
"amount": 0
},
"product": [
{
"productRelationship": [
{
"id": "SecondaryBundle_01",
"relationshipType": "bundledBy",
"@type": "ProductRelationshipOracle"
}
],
"@type": "ProductOracle",
"cycleStart": {
"unit": "absolute",
"amount": 0
},
"purchaseStart": {
"unit": "absolute",
"amount": 0
},
"terminationDate": "",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"status": "active",
"id": "SecondaryBundleFirstChild_01",
"href": "https://host:port/brm/productInventory/v5/product/SecondaryBundleFirstChild_01",
"billingAccount": {
"id": "child_id_01",
"name": "Douglas Rachel",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "",
"@type": "ServiceRef"
}
],
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"isBundle": false,
"name": "5G Premium Voice Service",
"description": "Standard GSM telephony subscription",
"productOffering": {
"name": "Standard GSM Telephony",
"id": "Standard GSM Telephony",
"@type": "ProductOfferingRef"
},
"usageStart": {
"unit": "absolute",
"amount": 0
},
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"quantity": 1,
"startDate": "2018-01-01T08:00:00.00Z"
},
{
"productRelationship": [
{
"id": "SecondaryBundle_01",
"relationshipType": "bundledBy",
"@type": "ProductRelationshipOracle"
}
],
"@type": "ProductOracle",
"cycleStart": {
"unit": "absolute",
"amount": 0
},
"purchaseStart": {
"unit": "absolute",
"amount": 0
},
"terminationDate": "",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"status": "active",
"id": "SecondaryBundleSecondChild_01",
"href": "https://host:port/brm/productInventory/v5/product/SecondaryBundleSecondChild_01",
"billingAccount": {
"id": "child_id_01",
"name": "Douglas Rachel",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "",
"@type": "ServiceRef"
}
],
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"isBundle": false,
"name": "Standard GSM Telephony Add-on",
"description": "Second standard GSM telephony product",
"productOffering": {
"name": "Standard GSM Telephony",
"id": "Standard GSM Telephony",
"@type": "ProductOfferingRef"
},
"usageStart": {
"unit": "absolute",
"amount": 0
},
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"quantity": 1,
"startDate": "2018-01-01T08:00:00.00Z"
}
],
"purchaseStart": {
"unit": "absolute",
"amount": 0
},
"terminationDate": "",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"status": "active",
"id": "SecondaryBundle_01",
"href": "https://host:port/brm/productInventory/v5/product/SecondaryBundle_01",
"billingAccount": {
"id": "child_id_01",
"name": "child-billunit ",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "",
"@type": "ServiceRef"
}
],
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"isBundle": true,
"name": "FP Wireless Family Secondary Line Service",
"description": "Member service bundle with two telephony children",
"productOffering": {
"name": "",
"id": "",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServicePassword",
"valueType": "string",
"value": "CGbu_1234#",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Service Grouping",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "CommunityMember",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
},
{
"id": "SECONDARY-SERVICE-ID",
"name": "ServiceId",
"valueType": "string",
"value": "WFSLS_296-120655776",
"@type": "StringCharacteristic"
}
],
"usageStart": {
"unit": "absolute",
"amount": 0
},
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"quantity": 1,
"startDate": "2018-01-01T08:00:00.00Z"
}
Example 5: Creating a Parent Account Service Bundle
This example shows how to create the parent-account service bundle with two shared discount child products by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X POST 'http://hostname:port/brm/productInventory/v5/product/' -H 'Content-Type: application/json' -d @sampleRequest5.json
Service Grouping=Y and CommunityMember=Y identify it as the owner-side service bundle. Its two child products are shared discount offers, each marked CommunityOffer=Y.
Request Body
The following example shows the contents of the sampleRequest5.json file sent as the request body.
{
"isBundle": true,
"name": "FP Wireless Testing Family Primary Line Service",
"description": "Owner service bundle; contains the shared discount children",
"status": "active",
"id": "PrimaryBundle_01",
"productOffering": {
"id": "Standard GSM Telephony"
},
"billingAccount": {
"id": "parent_id_01"
},
"realizingService": [
{
"id": ""
}
],
"productCharacteristic": [
{
"id": "PRIMARY-SERVICE-ID",
"name": "ServiceId",
"valueType": "string",
"value": "WFPLS_296-120655776"
},
{
"name": "ServicePassword",
"valueType": "string",
"value": "CGbu_1234#"
},
{
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony"
},
{
"name": "Service Grouping",
"valueType": "string",
"value": "Y"
},
{
"name": "CommunityMember",
"valueType": "string",
"value": "Y"
}
],
"product": [
{
"isBundle": false,
"id": "PrimaryBundleFirstChild_01",
"name": "Shared 4000 Minutes Beta Discount",
"description": "Shared voice minutes discount",
"status": "active",
"productOffering": {
"id": "Standard GSM Discount"
},
"billingAccount": {
"id": "parent_id_01"
},
"productCharacteristic": [
{
"name": "CommunityOffer",
"valueType": "string",
"value": "Y"
}
]
},
{
"isBundle": false,
"id": "PrimaryBundleSecondChild_01",
"name": "Shared 20GB Data Beta Discount",
"description": "Shared data discount",
"status": "active",
"productOffering": {
"id": "Standard GSM Discount"
},
"billingAccount": {
"id": "parent_id_01"
},
"productCharacteristic": [
{
"name": "CommunityOffer",
"valueType": "string",
"value": "Y"
}
]
}
]
}
Response Body
The following example shows the response body.
{
"productRelationship": [
{
"id": "PrimaryBundleFirstChild_01",
"relationshipType": "bundles",
"@type": "ProductRelationshipOracle"
},
{
"id": "PrimaryBundleSecondChild_01",
"relationshipType": "bundles",
"@type": "ProductRelationshipOracle"
}
],
"@type": "ProductOracle",
"cycleStart": {
"unit": "absolute",
"amount": 0
},
"product": [
{
"productRelationship": [
{
"id": "PrimaryBundle_01",
"relationshipType": "bundledBy",
"@type": "ProductRelationshipOracle"
}
],
"@type": "ProductOracle",
"cycleStart": {
"unit": "absolute",
"amount": 0
},
"purchaseStart": {
"unit": "absolute",
"amount": 0
},
"terminationDate": "",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"status": "active",
"id": "PrimaryBundleFirstChild_01",
"href": "https://host:port/brm/productInventory/v5/product/PrimaryBundleFirstChild_01",
"billingAccount": {
"id": "parent_id_01",
"name": "Douglas Rachel",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "",
"@type": "ServiceRef"
}
],
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"isBundle": false,
"name": "Shared 4000 Minutes Beta Discount",
"description": "Shared voice minutes discount",
"productOffering": {
"name": "Standard GSM Discount",
"id": "Standard GSM Discount",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "CommunityOffer",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
}
],
"usageStart": {
"unit": "absolute",
"amount": 0
},
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"quantity": 1,
"startDate": "2018-01-01T08:00:00.00Z"
},
{
"productRelationship": [
{
"id": "PrimaryBundle_01",
"relationshipType": "bundledBy",
"@type": "ProductRelationshipOracle"
}
],
"@type": "ProductOracle",
"cycleStart": {
"unit": "absolute",
"amount": 0
},
"purchaseStart": {
"unit": "absolute",
"amount": 0
},
"terminationDate": "",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"status": "active",
"id": "PrimaryBundleSecondChild_01",
"href": "https://host:port/brm/productInventory/v5/product/PrimaryBundleSecondChild_01",
"billingAccount": {
"id": "parent_id_01",
"name": "Douglas Rachel",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "",
"@type": "ServiceRef"
}
],
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"isBundle": false,
"name": "Shared 20GB Data Beta Discount",
"description": "Shared data discount",
"productOffering": {
"name": "Standard GSM Discount",
"id": "Standard GSM Discount",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "CommunityOffer",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
}
],
"usageStart": {
"unit": "absolute",
"amount": 0
},
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"quantity": 1,
"startDate": "2018-01-01T08:00:00.00Z"
}
],
"purchaseStart": {
"unit": "absolute",
"amount": 0
},
"terminationDate": "",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"status": "active",
"id": "PrimaryBundle_01",
"href": "https://host:port/brm/productInventory/v5/product/PrimaryBundle_01",
"billingAccount": {
"id": "parent_id_01",
"name": "parent-billunit ",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "",
"@type": "ServiceRef"
}
],
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"isBundle": true,
"name": "FP Wireless Testing Family Primary Line Service",
"description": "Owner service bundle; contains the shared discount children",
"productOffering": {
"name": "",
"id": "",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "PRIMARY-SERVICE-ID",
"name": "ServiceId",
"valueType": "string",
"value": "WFPLS_296-120655776",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServicePassword",
"valueType": "string",
"value": "CGbu_1234#",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Service Grouping",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "CommunityMember",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
}
],
"usageStart": {
"unit": "absolute",
"amount": 0
},
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"quantity": 1,
"startDate": "2018-01-01T08:00:00.00Z"
}
Example 6: Creating a Discount Sharing Group Owner on a Parent Account
This example shows how to create a Discount Sharing Group owner with a parent account by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X POST 'http://hostname:port/brm/productInventory/v5/product/' -H 'Content-Type: application/json' -d @sampleRequest6.json
Request Body
The following example shows the contents of the sampleRequest6.json file sent as the request body.
{
"isBundle": true,
"name": "TC04 Owner Service",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+207737"
},
"realizingService": [
{
"id": ""
}
],
"productCharacteristic": [
{
"name": "ServiceId",
"valueType": "string",
"value": "tc04-owner-service-ob"
},
{
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony"
},
{
"name": "Service Grouping",
"valueType": "string",
"value": "Y"
},
{
"name": "Community Member",
"valueType": "string",
"value": "Y"
}
]
}
Response Body
The following example shows the response body.
{
"@type": "Product",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_product+220819",
"href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+220819",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+207737",
"name": "parent-billunit ",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+219283",
"@type": "ServiceRef"
}
],
"isBundle": true,
"name": "TC04 Owner Service",
"description": "",
"productOffering": {
"id": "0.0.0.0++0",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "tc04-owner-service-ob",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Service Grouping",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Community Member",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
}
],
"quantity": 1
}
Example 7: Adding an AR Child to an Existing Parent Discount Sharing Group
This example shows how to add an AR child to an automatic Discount Sharing Group when the parent account already has a Discount Sharing Group by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X POST 'http://hostname:port/brm/productInventory/v5/product/' -H 'Content-Type: application/json' -d @sampleRequest7.json
Request Body
The following example shows the contents of the sampleRequest7.json file sent as the request body.
{
"isBundle": true,
"name": "TC04 Automatic Member",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+211178"
},
"realizingService": [
{
"id": ""
}
],
"productCharacteristic": [
{
"name": "ServiceId",
"valueType": "string",
"value": "tc04-member-service-ob"
},
{
"name": "ServicePassword",
"valueType": "string",
"value": "CGbu_1234#"
},
{
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony"
},
{
"name": "Service Grouping",
"valueType": "string",
"value": "Y"
},
{
"name": "Community Member",
"valueType": "string",
"value": "Y"
}
]
}
Response Body
The following example shows the response body.
{
"@type": "Product",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_product+219145",
"href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+219145",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+211178",
"name": "child-billunit ",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+220657",
"@type": "ServiceRef"
}
],
"isBundle": true,
"name": "TC04 Automatic Member",
"description": "",
"productOffering": {
"id": "0.0.0.0++0",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "tc04-member-service-ob",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServicePassword",
"valueType": "string",
"value": "CGbu_1234#",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Service Grouping",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Community Member",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
}
],
"quantity": 1
}
Example 8: Creating an Account Level Discount Sharing Group Without a Service
This example shows how to create an account-level Discount Sharing Group when the purchased product has no service by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X POST 'http://hostname:port/brm/productInventory/v5/product/' -H 'Content-Type: application/json' -d @sampleRequest8.json
Request Body
The following example shows the contents of the sampleRequest8.json file sent as the request body.
{
"isBundle": true,
"name": "TC02 Account Owner",
"status": "active",
"productOffering": {
"id": "0.0.0.1+-product+64390"
},
"billingAccount": {
"id": "0.0.0.1+-account+205787"
},
"productCharacteristic": [
{
"name": "Community Member",
"valueType": "string",
"value": "Y"
}
]
}
Response Body
The following example shows the response body.
{
"@type": "Product",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_product+218120",
"href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+218120",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+205787",
"name": "parent-billunit ",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+218096",
"@type": "ServiceRef"
}
],
"isBundle": true,
"name": "TC02 Account Owner",
"description": "",
"productOffering": {
"id": "0.0.0.1+-product+64390",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "Community Member",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
}
],
"quantity": 1
}
Example 9: Creating a Parent Discount Sharing Group with an Explicit Name
This example shows how to create a parent Discount Sharing Group with an explicit group name by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X POST 'http://hostname:port/brm/productInventory/v5/product/' -H 'Content-Type: application/json' -d @sampleRequest9.json
Request Body
The following example shows the contents of the sampleRequest9.json file sent as the request body.
{
"isBundle": true,
"name": "TC05 Owner Service",
"status": "active",
"productOffering": {
"id": "0.0.0.1+-product+64390"
},
"billingAccount": {
"id": "0.0.0.1+-account+206203"
},
"realizingService": [
{
"id": ""
}
],
"productCharacteristic": [
{
"name": "ServiceId",
"valueType": "string",
"value": "tc05A-owner-service"
},
{
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony"
},
{
"name": "Service Grouping",
"valueType": "string",
"value": "Y"
},
{
"name": "Community Member",
"valueType": "string",
"value": "ExplicitGroupName"
}
]
}
Response Body
The following example shows the response body.
{
"@type": "Product",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_product+219784",
"href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+219784",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+206203",
"name": "parent-billunit ",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+220936",
"@type": "ServiceRef"
}
],
"isBundle": true,
"name": "TC05 Owner Service",
"description": "",
"productOffering": {
"id": "0.0.0.1+-product+64390",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "tc05A-owner-service",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Service Grouping",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Community Member",
"valueType": "string",
"value": "ExplicitGroupName",
"@type": "StringCharacteristic"
}
],
"quantity": 1
}
Example 10: Creating a Bundled Discount Sharing Group with a Community Offer
This example shows how to create a bundled discount Discount Sharing Group with a community offer by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X POST 'http://hostname:port/brm/productInventory/v5/product/' -H 'Content-Type: application/json' -d @sampleRequest10.json
Request Body
The following example shows the contents of the sampleRequest10.json file sent as the request body.
{
"isBundle": true,
"name": "TC07 Owner Service Bundle",
"status": "active",
"productOffering": {
"id": "0.0.0.1+-product+64390"
},
"billingAccount": {
"id": "0.0.0.1+-account+206471"
},
"realizingService": [
{
"id": ""
}
],
"productCharacteristic": [
{
"name": "ServiceId",
"valueType": "string",
"value": "tc07x-owner-service"
},
{
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony"
},
{
"name": "Service Grouping",
"valueType": "string",
"value": "Y"
},
{
"name": "Community Member",
"valueType": "string",
"value": "Y"
}
],
"product": [
{
"isBundle": false,
"name": "TC07 Shared Minutes Discount",
"status": "active",
"productOffering": {
"id": "0.0.0.1+-discount+61766"
},
"billingAccount": {
"id": "0.0.0.1+-account+206471"
},
"productCharacteristic": [
{
"name": "Community Offer",
"valueType": "string",
"value": "Y"
}
]
}
]
}
Response Body
The following example shows the response body.
{
"productRelationship": [
{
"id": "0.0.0.1+-purchased_discount+219529",
"relationshipType": "bundles",
"@type": "ProductRelationship"
}
],
"@type": "Product",
"product": [
{
"productRelationship": [
{
"id": "0.0.0.1+-purchased_product+218761",
"relationshipType": "bundledBy",
"@type": "ProductRelationship"
}
],
"@type": "Product",
"terminationDate": "",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_discount+219529",
"href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_discount+219529",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+206471",
"name": "parent-billunit ",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+220937",
"@type": "ServiceRef"
}
],
"isBundle": false,
"name": "TC07 Shared Minutes Discount",
"description": "",
"productOffering": {
"id": "0.0.0.1+-discount+61766",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "Community Offer",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
}
],
"quantity": 1,
"startDate": "2018-01-01T08:00:00.00Z"
}
],
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"id": "0.0.0.1+-purchased_product+218761",
"href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+218761",
"status": "active",
"billingAccount": {
"id": "0.0.0.1+-account+206471",
"name": "parent-billunit ",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+220937",
"@type": "ServiceRef"
}
],
"isBundle": true,
"name": "TC07 Owner Service Bundle",
"description": "",
"productOffering": {
"id": "0.0.0.1+-product+64390",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceId",
"valueType": "string",
"value": "tc07x-owner-service",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Service Grouping",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "Community Member",
"valueType": "string",
"value": "Y",
"@type": "StringCharacteristic"
}
],
"quantity": 1
}
Example 11: Creating an ERA Service Extended Rating Product (Custom Payload with External ID Enabled)
Note:
Key 'externalIdMappingEnabled' should be set to 'true' to use external Ids in custom payloadThis example shows how to create an ERA service extended rating product using a custom payload with external ID enabled by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X POST 'http://hostname:port/brm/productInventory/v5/product/' -H 'Content-Type: application/json' -d @sampleRequest11.json
Request Body
The following example shows the contents of the sampleRequest11.json file sent as the request body.
{
"@type": "Product",
"id": "ERA_PROD_DBE_p008x",
"isBundle": false,
"description": "DBE Product Specification instance",
"name": "Voice Over IP",
"status": "active",
"productOffering": {
"id": "Teen Telephony C4B0"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"@type": "StringCharacteristic",
"id": "ERA_PROD_DBE_p040s",
"name": "ServiceId",
"valueType": "string",
"value": "cuke4brm_productChar_array_test_prodct_ootb_p031"
}
],
"billingAccount": {
"id": "cuke4brm-rsm-customer-actno-new70"
},
"specialRatingProfile": {
"id": "SPECIAL_RATING_006",
"@type": "SpecialRatingProfile",
"name": "FRIENDS_FAMILY",
"label": "Smart Calling up to 5 Numbers",
"status": "noop",
"referenceCount": 1,
"data": [
{
"name": "dummy",
"value": "0039335686849545",
"validFor": {
"startDateTime": "2031-04-02T18:23:39Z"
}
},
{
"name": "dummy",
"value": "0039335873473632",
"validFor": {
"startDateTime": "2031-04-02T18:23:39Z",
"endDateTime": "2031-05-01T00:00:00Z"
}
}
]
}
}
Response Body
The following example shows the response body.
{
"@type": "ProductOracle",
"cycleStart": {
"unit": "absolute",
"amount": 0
},
"purchaseStart": {
"unit": "absolute",
"amount": 0
},
"terminationDate": "",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"status": "active",
"id": "ERA_PROD_DBE_p008x",
"href": "https://host:port/brm/productInventory/v5/product/ERA_PROD_DBE_p008x",
"billingAccount": {
"id": "cuke4brm-rsm-customer-actno-new70",
"name": "Junior Walter",
"@type": "BillingAccountRef"
},
"realizingService": [
{
"id": "",
"@type": "ServiceRef"
}
],
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"isBundle": false,
"name": "Voice Over IP",
"specialRatingProfile": {
"id": "SPECIAL_RATING_006",
"data": [
{
"validFor": {
"endDateTime": "",
"startDateTime": "2031-04-02T18:23:39.00Z"
},
"name": "dummy",
"value": "0039335686849545"
},
{
"validFor": {
"endDateTime": "2031-05-01T00:00:00.00Z",
"startDateTime": "2031-04-02T18:23:39.00Z"
},
"name": "dummy",
"value": "0039335873473632"
}
],
"name": "FRIENDS_FAMILY",
"label": "Smart Calling up to 5 Numbers",
"@type": "SpecialRatingProfile",
"status": "noop",
"referenceCount": 1
},
"description": "DBE Product Specification instance",
"productOffering": {
"id": "Teen Telephony C4B0",
"name": "Teen Telephony C4B0",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "ERA_PROD_DBE_p040s",
"name": "ServiceId",
"valueType": "string",
"value": "cuke4brm_productChar_array_test_prodct_ootb_p031",
"@type": "StringCharacteristic"
}
],
"usageStart": {
"unit": "absolute",
"amount": 0
},
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"quantity": 1,
"startDate": "2018-01-01T08:00:00.00Z"
}
Example 12: Creating an ERA Account Extended Rating Child Product (Custom Payload with External ID Enabled)
Note:
Key 'externalIdMappingEnabled' should be set to 'true' to use external Ids in custom payloadThis example shows how to create an ERA account extended rating child product using a custom payload with external ID enabled by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X POST 'http://hostname:port/brm/productInventory/v5/product/' -H 'Content-Type: application/json' -d @sampleRequest12.json
Request Body
The following example shows the contents of the sampleRequest12.json file sent as the request body.
{
"@type": "Product",
"id": "ERA_PROD_DBE_p001x",
"isBundle": false,
"description": "DBE Product Specification instance",
"name": "Voice Over IP",
"status": "active",
"productOffering": {
"id": "Account Level Product"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"@type": "StringCharacteristic",
"id": "ERA_PROD_DBE_p001s",
"name": "ServiceId",
"valueType": "string",
"value": "cuke4brm_productChar_array_test_prodct_ootb_p031"
}
],
"billingAccount": {
"id": "cuke4brm-rsm-customer-actno-new70"
},
"specialRatingProfile": {
"id": "SPECIAL_RATING_001",
"@type": "SpecialRatingProfile",
"name": "FRIENDS_FAMILY",
"data": [
{
"name": "dummy",
"value": "0039335686849545",
"validFor": {
"startDateTime": "2031-04-02T18:23:39Z"
}
},
{
"name": "dummy",
"value": "0039335873473632",
"validFor": {
"startDateTime": "2031-04-02T18:23:39Z",
"endDateTime": "2031-05-01T00:00:00Z"
}
}
]
}
}
Response Body
The following example shows the response body.
{
"@type": "Product",
"cycleStart": {
"unit": "absolute",
"amount": 0
},
"purchaseStart": {
"unit": "absolute",
"amount": 0
},
"terminationDate": "",
"gracePeriod": {
"unit": "absolute",
"amount": 0
},
"purchaseEnd": {
"unit": "absolute",
"amount": 0
},
"status": "active",
"id": "ERA_PROD_DBE_p001",
"href": "https://host:port/brm/productInventory/v5/product/ERA_PROD_DBE_p001",
"billingAccount": {
"id": "cuke4brm-rsm-customer-actno-new70",
"name": "Junior Walter",
"@type": "BillingAccountRef"
},
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"isBundle": false,
"name": "Voice Over IP",
"specialRatingProfile": {
"id": "SPECIAL_RATING_001",
"data": [
{
"validFor": {
"endDateTime": "",
"startDateTime": "2031-04-02T18:23:39.00Z"
},
"name": "dummy",
"value": "0039335686849545"
},
{
"validFor": {
"endDateTime": "2031-05-01T00:00:00.00Z",
"startDateTime": "2031-04-02T18:23:39.00Z"
},
"name": "dummy",
"value": "0039335873473632"
}
],
"name": "FRIENDS_FAMILY",
"@type": "SpecialRatingProfile",
},
"description": "DBE Product Specification instance",
"productOffering": {
"id": "",
"@type": "ProductOfferingRef"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"id": "ERA_PROD_DBE_p001s",
"name": "ServiceId",
"valueType": "string",
"value": "cuke4brm_productChar_array_test_prodct_ootb_p031",
"@type": "StringCharacteristic"
}
],
"usageStart": {
"unit": "absolute",
"amount": 0
},
"cycleEnd": {
"unit": "absolute",
"amount": 0
},
"quantity": 1,
"startDate": "2018-01-01T08:00:00.00Z"
}
Example 13: Creating a Product Purchase Object
This 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 sample request body file.
curl -X POST 'http://hostname:port/brm/productInventory/v5/product/' -H 'Content-Type: application/json' -d @sampleRequest13.json
Request Body
The following example shows the contents of the sampleRequest13.json file sent as the request body.
{
"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,
"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 response 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+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",
"@type": "BillingAccount",
"name": "John "
},
"realizingService": [
{
"id": "0.0.0.1+-service-ip+242469",
"@type": "RealizingService"
}
],
"startDate": "2018-01-01T08:00:00.00Z",
"usageEnd": {
"unit": "absolute",
"amount": 0
}
}
Example 14: Creating a Purchase Product With a Service Alias
This example shows how to create a purchase product with service aliases by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X POST 'http://hostname:port/brm/productInventory/v5/product/' -H 'Content-Type: application/json' -d @sampleRequest14.json
Request Body
The following example shows the contents of the sampleRequest14.json file sent as the request body.
{
"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",
"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 response 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"
},
{
"name": "MSISDN",
"valueType": "string",
"value": "OotbServiceAliasMSISDN_0001",
"@type": "StringCharacteristic",
"id": ""
},
{
"name": "IMEI",
"valueType": "string",
"value": "OotbServiceAliasIMEI_0001",
"@type": "StringCharacteristic",
"id": ""
}
],
"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",
"@type": "BillingAccount",
"name": "John "
},
"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 15: Creating a Bundle Purchase Product
This example shows how to create a bundle purchase product with a child product by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X POST 'http://hostname:port/brm/productInventory/v5/product/' -H 'Content-Type: application/json' -d @sampleRequest15.json
Request Body
The following example shows the contents of the sampleRequest15.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,
"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": "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": "OotbBundleWProdOffServiceAliasMSISDN_0001",
"@type": "StringCharacteristic"
},
{
"name": "IMEI",
"valueType": "string",
"value": "OotbBundleWProdOffServiceAliasIMEI_0001",
"@type": "StringCharacteristic"
}
],
"status": "active",
"quantity": 1,
"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 response body.
{
"isBundle": true,
"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",
"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+244391",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+244391",
"status": "active",
"quantity": 1,
"billingAccount": {
"id": "0.0.0.1+-account+219307",
"@type": "BillingAccount",
"name": "John "
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+242471",
"@type": "RealizingService"
}
],
"startDate": "2018-01-01T08:00:00.00Z",
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"productRelationship": {
"id": "0.0.0.1+-purchased_product+243367",
"relationshipType": "bundles"
},
"productOffering": {
"id": "0.0.0.0++0",
"@type": "ProductOffering"
},
"product": [
{
"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"
},
{
"name": "MSISDN",
"valueType": "string",
"value": "OotbBundleWProdOffServiceAliasMSISDN_0001",
"@type": "StringCharacteristic",
"id": ""
},
{
"name": "IMEI",
"valueType": "string",
"value": "OotbBundleWProdOffServiceAliasIMEI_0001",
"@type": "StringCharacteristic",
"id": ""
}
],
"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+243367",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+243367",
"status": "active",
"quantity": 1,
"billingAccount": {
"id": "0.0.0.1+-account+219307",
"@type": "BillingAccount",
"name": "John "
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+243879",
"@type": "RealizingService"
}
],
"startDate": "2018-01-01T08:00:00.00Z",
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"productRelationship": {
"id": "0.0.0.1+-purchased_product+244391",
"relationshipType": "bundledBy"
}
}
]
}
Example 16: Creating a Discount Purchase
This 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.
The -d option specifies the sample request body file.
curl -X POST 'http://hostname:port/brm/productInventory/v5/product/' -H 'Content-Type: application/json' -d @sampleRequest16.json
Request Body
The following example shows the contents of the sampleRequest16.json file sent as the request body.
{
"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,
"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 response 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+-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",
"id": ""
},
{
"name": "IMEI",
"valueType": "string",
"value": "OotbNewServiceAliasIMEIDisc_0001",
"@type": "StringCharacteristic",
"id": ""
}
],
"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",
"@type": "BillingAccount",
"name": "John "
},
"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 17: Creating a Product With CPU Date and Quantity
This example shows how to create a product with cycle, purchase, and usage dates and a quantity by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X POST 'http://hostname:port/brm/productInventory/v5/product/' -H 'Content-Type: application/json' -d @sampleRequest17.json
Request Body
The following example shows the contents of the sampleRequest17.json file sent as the request body.
{
"isBundle": true,
"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": "OotbNewServiceLoginIpCPUDates_0001",
"@type": "StringCharacteristic"
}
],
"status": "active",
"quantity": 2,
"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",
"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"
}
}
Response Body
The following example shows the response body.
{
"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",
"@type": "BillingAccount",
"name": "John "
},
"realizingService": [
{
"id": "0.0.0.1+-service-ip+245332",
"@type": "RealizingService"
}
],
"startDate": "2018-01-06T08:00:00.00Z",
"usageEnd": {
"unit": "months",
"amount": 1
}
}
Example 18: Creating a Purchase Product With An Existing Service
This example shows how to create a purchase product using an existing service by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X POST 'http://hostname:port/brm/productInventory/v5/product/' -H 'Content-Type: application/json' -d @sampleRequest18.json
Request Body
The following example shows the contents of the sampleRequest18.json file sent as the request body.
{
"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",
"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 response 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+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",
"@type": "BillingAccount",
"name": "John "
},
"realizingService": [
{
"id": "0.0.0.1+-service-ip+242469",
"@type": "RealizingService"
}
],
"startDate": "2018-01-01T08:00:00.00Z",
"usageEnd": {
"unit": "absolute",
"amount": 0
}
}
Example 19: Creating a Product Price Override
This example shows how to create a product with a price override by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X POST 'http://hostname:port/brm/productInventory/v5/product/' -H 'Content-Type: application/json' -d @sampleRequest19.json
Request Body
The following example shows the contents of the sampleRequest19.json file sent as the request body.
{
"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,
"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-03T08:00:00.00Z",
"productPrice": [
{
"@type": "ProductPrice",
"priceType": "oneTime",
"priceAlteration": [
{
"@type": "PriceAlteration",
"priceType": "AmountOverride",
"price": {
"@type": "Price",
"dutyFreeAmount": {
"value": 29.99,
"unit": "USD"
}
}
}
]
}
]
}
Response Body
The following example shows the response 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"
},
{
"name": "MSISDN",
"valueType": "string",
"value": "OotbNewServiceAliasMSISDNPriceOverride_0001",
"@type": "StringCharacteristic",
"id": ""
},
{
"name": "IMEI",
"valueType": "string",
"value": "OotbNewServiceAliasIMEIPriceOverride_0001",
"@type": "StringCharacteristic",
"id": ""
}
],
"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+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",
"@type": "BillingAccount",
"name": "John "
},
"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
},
"productPrice": [
{
"@type": "ProductPrice",
"priceType": "oneTime",
"priceAlteration": [
{
"@type": "PriceAlteration",
"priceType": "AmountOverride",
"price": {
"@type": "Price",
"dutyFreeAmount": {
"value": "29.99",
"unit": "USD"
}
}
}
]
}
]
}
Example 20: Creating a Tied Discount or Product
This example shows how to create a product tied to an existing discount by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X POST 'http://hostname:port/brm/productInventory/v5/product/' -H 'Content-Type: application/json' -d @sampleRequest20.json
Request Body
The following example shows the contents of the sampleRequest20.json file sent as the request body.
{
"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": "OotbBaseServiceAliasMSISDNTiedProductwithId_0001",
"@type": "StringCharacteristic"
},
{
"name": "IMEI",
"valueType": "string",
"value": "OotbBaseServiceAliasIMEITiedProductwithId_0001",
"@type": "StringCharacteristic"
}
],
"status": "active",
"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",
"tieId": "tiedDiscountId_0001",
"productRelationship": {
"id": "0.0.0.1+-purchased_discount+180272",
"relationshipType": "tiedDiscount"
}
}
Response Body
The following example shows the response body.
{
"isBundle": true,
"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+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",
"id": ""
},
{
"name": "IMEI",
"valueType": "string",
"value": "OotbBaseServiceAliasIMEITiedProductwithId_0001",
"@type": "StringCharacteristic",
"id": ""
}
],
"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",
"@type": "BillingAccount",
"name": "Junior Walter"
},
"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
},
"productRelationship": {
"id": "0.0.0.1+-purchased_discount+180272",
"relationshipType": "tiedDiscount"
}
}
Example 21: Creating a Product with Price Tags as Product Characteristics
This example shows how to create a product with price tags specified as product characteristics by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X POST 'http://hostname:port/brm/productInventory/v5/product/' -H 'Content-Type: application/json' -d @sampleRequest21.json
Request Body
The following example shows the contents of the sampleRequest21.json file sent as the request body.
{
"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"
},
"status": "active",
"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",
"productCharacteristic": [
{
"id": "",
"name": "ServiceLogin",
"valueType": "string",
"value": "newLoginBase_0019koke",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServicePassword",
"valueType": "string",
"value": "Cgbu1234#",
"@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
}
]
}
]
}
Response Body
The following example shows the response 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"
},
"status": "active",
"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",
"productCharacteristic": [
{
"id": "",
"name": "ServiceLogin",
"valueType": "string",
"value": "newLoginBase_0019koke",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServicePassword",
"valueType": "string",
"value": "Cgbu1234#",
"@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
}
]
}
],
"id": "0.0.0.1+-purchased_product+293101",
"href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+293101"
}
Example 22: Creating a Product with Balance Group Characteristics
This example shows how to create a product with balance group characteristics by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X POST 'http://hostname:port/brm/productInventory/v5/product/' -H 'Content-Type: application/json' -d @sampleRequest22.json
Request Body
The following example shows the contents of the sampleRequest22.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": "Cgbu1234#",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceLogin",
"valueType": "string",
"value": "OotbNewServiceLoginIpBalanceGroup_0001",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "BalanceGroup",
"valueType": "string",
"value": "0.0.0.1 /balance_group 169929",
"@type": "StringCharacteristic"
}
],
"status": "active",
"quantity": 1,
"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 response 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+41250",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/ip",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServicePassword",
"valueType": "string",
"value": "Cgbu1234#",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceLogin",
"valueType": "string",
"value": "OotbNewServiceLoginIpBalanceGroup_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",
"@type": "BillingAccount",
"name": "Junior Walter"
},
"realizingService": [
{
"id": "0.0.0.1+-service-ip+176720",
"@type": "RealizingService"
}
],
"startDate": "2018-01-03T08:00:00.00Z",
"usageEnd": {
"unit": "absolute",
"amount": 0
}
}
Example 23: Creating a Product with Bill Structure Characteristics
This example shows how to create a product with bill structure characteristics by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X POST 'http://hostname:port/brm/productInventory/v5/product/' -H 'Content-Type: application/json' -d @sampleRequest23.json
Request Body
The following example shows the contents of the sampleRequest23.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": "Cgbu1234#",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceLogin",
"valueType": "string",
"value": "OotbNewServiceLoginIpBillInfo_0001",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "BillStructure",
"valueType": "string",
"value": "0.0.0.1 /billinfo 169417",
"@type": "StringCharacteristic"
}
],
"status": "active",
"quantity": 1,
"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 response 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+41250",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/ip",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServicePassword",
"valueType": "string",
"value": "Cgbu1234#",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceLogin",
"valueType": "string",
"value": "OotbNewServiceLoginIpBillInfo_0001",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "BillStructure",
"valueType": "string",
"value": "0.0.0.1 /billinfo 169417",
"@type": "StringCharacteristic"
}
],
"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",
"@type": "BillingAccount",
"name": "Junior Walter"
},
"realizingService": [
{
"id": "0.0.0.1+-service-ip+179952",
"@type": "RealizingService"
}
],
"startDate": "2018-01-03T08:00:00.00Z",
"usageEnd": {
"unit": "absolute",
"amount": 0
}
}
Example 24: Creating a Product with Product Relationship Bundles
This example shows how to create a product that bundles an existing purchased product through a product relationship by submitting a POST request on the REST resource using cURL. For more information about cURL, see Use cURL.
The -d option specifies the sample request body file.
curl -X POST 'http://hostname:port/brm/productInventory/v5/product/' -H 'Content-Type: application/json' -d @sampleRequest24.json
Request Body
The following example shows the contents of the sampleRequest24.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",
"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 response body.
{
"isBundle": true,
"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+175112",
"@type": "ProductOffering"
},
"productCharacteristic": [
{
"id": "",
"name": "ServiceType",
"valueType": "string",
"value": "/service/telco/gsm/telephony",
"@type": "StringCharacteristic"
},
{
"name": "MSISDN",
"valueType": "string",
"value": "OotbBaseServiceAliasMSISDNBundles_0001",
"@type": "StringCharacteristic",
"id": ""
},
{
"name": "IMEI",
"valueType": "string",
"value": "OotbBaseServiceAliasIMEIBundles_0001",
"@type": "StringCharacteristic",
"id": ""
}
],
"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",
"@type": "BillingAccount",
"name": "Junior Walter"
},
"realizingService": [
{
"id": "0.0.0.1+-service-telco-gsm-telephony+179107",
"@type": "RealizingService"
}
],
"startDate": "2018-01-01T08:00:00.00Z",
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"productRelationship": {
"id": "0.0.0.1+-purchased_product+179696",
"relationshipType": "bundles"
},
"product": [
{
"isBundle": false,
"name": "Voice Over IP12",
"@type": "Product",
"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": "Cgbu1234#",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "ServiceLogin",
"valueType": "string",
"value": "OotbNewServiceLoginIpBillInfo_0001",
"@type": "StringCharacteristic"
},
{
"id": "",
"name": "BillStructure",
"valueType": "string",
"value": "0.0.0.1 /billinfo 169417",
"@type": "StringCharacteristic"
}
],
"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",
"@type": "BillingAccount",
"name": "Junior Walter"
},
"realizingService": [
{
"id": "0.0.0.1+-service-ip+179952",
"@type": "RealizingService"
}
],
"startDate": "2018-01-03T08:00:00.00Z",
"usageEnd": {
"unit": "absolute",
"amount": 0
},
"productRelationship": {
"id": "0.0.0.1+-purchased_product+178275",
"relationshipType": "bundledBy"
}
}
]
}
Example 25: 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.jsonThe -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"
}
],
"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"
}
}