Partially Update a Product by ID

patch

/product/{id}

Performs a partial update of the product that matches the specified ID.

Request

Path Parameters
Query Parameters
  • Specifies the comma-separated properties to include in the response.
Supported Media Types
Request Body - application/json-patch-query+json ()
Root Schema : schema
Type: array
A JSON Patch operations document as defined by RFC 6902.
Show Source
Nested Schema : JsonPatch
Type: object
A JSON Patch document as defined by RFC 6902.
Show Source
Request Body - application/json-patch+json ()
Root Schema : schema
Type: array
A JSON Patch operations document as defined by RFC 6902.
Show Source
Nested Schema : JsonPatch
Type: object
A JSON Patch document as defined by RFC 6902.
Show Source
Request Body - application/merge-patch+json ()
Root Schema : schema
Match One Schema
Show Source
Nested Schema : Product_MVO
Match All
A product offering procured by a customer or any other party playing a party role. A product is realized as one or more services and resources.
Show Source
Nested Schema : ProductOracle_MVO
Match All
Provides extended fields for the product schema.
Show Source
Nested Schema : Entity_MVO
Type: object
Represents a base entity schema for TM Forum Open APIs.
Match All
Represents a base entity schema for TM Forum Open APIs.
Show Source
  • Extensible
    Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
Nested Schema : Extensible
Type: object
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
Show Source
Nested Schema : Product_MVO-allOf[1]
Type: object
A product offering procured by a customer or any other party playing a party role. A product is realized as one or more services and resources.
Show Source
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
Refers to the billing account. The billing account describes the bill structure.
Show Source
Nested Schema : product
Type: array
Show Source
  • Discriminator: @type
    Discriminator: { "propertyName":"@type", "mapping":{ "Product":"#/components/schemas/Product_MVO", "ProductRef":"#/components/schemas/ProductRef_MVO", "ProductOracle":"#/components/schemas/ProductOracle_MVO" } }
    The polymorphic attributes (@type, @schemaLocation, and @referredType) apply to the Product entity, not to the ProductRefOrValue class.
Nested Schema : productCharacteristic
Type: array
Show Source
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
Represents entities that are orderable from the catalog provider. This resource includes pricing information.
Show Source
Nested Schema : productPrice
Type: array
Show Source
Nested Schema : productRelationship
Type: array
Show Source
Nested Schema : realizingService
Type: array
Show Source
  • Discriminator: @type
    Discriminator: { "propertyName":"@type", "mapping":{ "ServiceRef":"#/components/schemas/ServiceRef_MVO" } }
    The service reference used by other entities.
Nested Schema : EntityRef
Match All
Represents an entity reference schema for EntityRef classes.
Show Source
Nested Schema : Addressable
Type: object
Defines a base schema for addressable entities.
Show Source
Nested Schema : EntityRef-allOf[2]
Type: object
Represents an entity reference schema for EntityRef classes.
Show Source
Nested Schema : Discriminator: @type-allOf[2]
Type: object
Refers to the billing account. The billing account describes the bill structure.
Show Source
  • Indicates if the account follows a specific payment option such as prepaid or postpaid.
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

The polymorphic attributes (@type, @schemaLocation, and @referredType) apply to the Product entity, not to the ProductRefOrValue class.
Match One Schema
Show Source
Nested Schema : ProductRef_MVO
Type: object
A product reference.
Match All
A product reference.
A product reference.
Show Source
Nested Schema : Characteristic_MVO
Match All
Describes a given characteristic of an object or entity through a name/value pair.
Show Source
Nested Schema : Characteristic_MVO-allOf[1]
Type: object
Describes a given characteristic of an object or entity through a name/value pair.
Show Source
Nested Schema : characteristicRelationship
Type: array
Show Source
Nested Schema : CharacteristicRelationship_MVO
Match All
The related characteristic.
Show Source
Nested Schema : CharacteristicRelationship_MVO-allOf[1]
Type: object
The related characteristic.
Show Source
Nested Schema : Discriminator: @type-allOf[1]
Type: object
Represents entities that are orderable from the catalog provider. This resource includes pricing information.
Show Source
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
A description of the price and discount awarded.
Show Source
Nested Schema : Discriminator: @type-allOf[1]
Type: object
A description of the price and discount awarded.
Show Source
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
Provides monetary amounts (tax included, duty-free), currency, and percentages to apply to Price and PriceAlteration.
Show Source
Nested Schema : priceAlteration
Type: array
Show Source
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
An amount, usually monetary, that is asked for or allowed when a ProductOffering is bought, rented, or leased.
Show Source
Nested Schema : Discriminator: @type-allOf[1]
Type: object
Provides monetary amounts (tax included, duty-free), currency, and percentages to apply to Price and PriceAlteration.
Show Source
Nested Schema : Money
Type: object
Represents a monetary amount.
Show Source
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
An amount, usually monetary, that modifies the price charged for an order item.
Show Source
Nested Schema : Discriminator: @type-allOf[1]
Type: object
An amount, usually monetary, that modifies the price charged for an order item.
Show Source
Nested Schema : Discriminator: @type-allOf[1]
Type: object
An amount, usually monetary, that is asked for or allowed when a ProductOffering is bought, rented, or leased.
Show Source
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
Describes relationships between products.
Show Source
Nested Schema : Discriminator: @type-allOf[2]
Type: object
Describes relationships between products.
Show Source
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

The service reference used by other entities.
Match All
The service reference used by other entities.
The service reference used by other entities.
Show Source
Nested Schema : ProductOracle_MVO-allOf[1]
Type: object
Provides extended fields for the product schema.
Show Source
Nested Schema : CycleEndRef_MVO
Match All
CycleEnd reference. Provides details about the cycle end date for a purchased product.
Show Source
Nested Schema : CycleStartRef_MVO
Match All
CycleStart reference. Provides details about the cycle start date for a purchased product.
Show Source
Nested Schema : productPrice
Type: array
Show Source
Nested Schema : productRelationship
Type: array
Show Source
Nested Schema : PurchaseEndRef_MVO
Match All
PurchaseEnd reference. A PurchaseEnd contains details regarding purchase end date for purchased product.
Show Source
Nested Schema : PurchaseStartRef_MVO
Match All
PurchaseStart reference. Provides details about the purchase start date for a purchased product.
Show Source
Nested Schema : SpecialRatingProfile_MVO
Type: object
Mutable fields for a product-linked special rating profile.
Show Source
  • Identifies the service extended rating profile type.
  • data
    The rating attribute values used by rating.
  • The profile identifier.
  • The label used to identify the special rating profile in rating rules.
  • The special rating profile name.
  • The special rating profile reference count.
  • Allowed Values: [ "noop", "provisioning", "provisioningFailed", "active", "unprovisioning", "unprovisioningFailed", "unprovisioned", "suspending", "suspendingFailed", "suspended" ]
    The special rating profile provisioning status.
Match All
Mutable fields for a product-linked special rating profile.
Mutable fields for a product-linked special rating profile.
Show Source
Nested Schema : UsageEndRef_MVO
Match All
UsageEnd reference. Provides details about the usage end date for a purchased product.
Show Source
Nested Schema : UsageStartRef_MVO
Match All
UsageStart reference. Provides details about the usage start date for a purchased product.
Show Source
Nested Schema : CPUDatesExtension_MVO
Type: object
Contains common properties for all CPU extension date.
Show Source
  • Indicates the amount of time of a given unit.
  • Allowed Values: [ "seconds", "minutes", "hours", "days", "months", "acct_cycles", "first_usage", "absolute" ]
    Indicates the unit of time for the CPU extension date: seconds, minutes, hours, days, months, acct_cycles, first_usage, or absolute.
Nested Schema : CycleEndRef_MVO-allOf[1]
Type: object
CycleEnd reference. Provides details about the cycle end date for a purchased product.
Nested Schema : CycleStartRef_MVO-allOf[1]
Type: object
CycleStart reference. Provides details about the cycle start date for a purchased product.
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
A description of the price and discount awarded.
Show Source
Nested Schema : Discriminator: @type-allOf[1]
Type: object
A description of the price and discount awarded.
Show Source
Nested Schema : priceAlteration
Type: array
Show Source
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
Is an amount, usually of money, that modifies the price charged for an order item.
Show Source
Nested Schema : Discriminator: @type-allOf[1]
Type: object
Is an amount, usually of money, that modifies the price charged for an order item.
Show Source
  • Allowed Values: [ "AmountOverride", "DiscountPercentageOverride", "DiscountAmountOverride" ]
    A category that describes the price, such as AmountOverride, DiscountPercentageOverride, or DiscountAmountOverride.
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
Used to describe relationship between product.
Show Source
Nested Schema : Discriminator: @type-allOf[1]
Type: object
Used to describe relationship between product.
Show Source
Nested Schema : PurchaseEndRef_MVO-allOf[1]
Type: object
PurchaseEnd reference. A PurchaseEnd contains details regarding purchase end date for purchased product.
Nested Schema : PurchaseStartRef_MVO-allOf[1]
Type: object
PurchaseStart reference. Provides details about the purchase start date for a purchased product.
Nested Schema : data
Type: array
The rating attribute values used by rating.
Show Source
Nested Schema : SpecialRatingProfile_MVO-allOf[1]
Type: object
Nested Schema : SpecialRatingProfileData
Type: object
A name/value entry for a product-linked special rating profile.
Show Source
Nested Schema : TimePeriod
Type: object
Represents a time period with a start date, an end date, or both.
Show Source
Nested Schema : UsageEndRef_MVO-allOf[1]
Type: object
UsageEnd reference. Provides details about the usage end date for a purchased product.
Nested Schema : UsageStartRef_MVO-allOf[1]
Type: object
UsageStart reference. Provides details about the usage start date for a purchased product.
Request Body - application/json ()
Root Schema : schema
Match One Schema
Show Source
Nested Schema : Product_MVO
Match All
A product offering procured by a customer or any other party playing a party role. A product is realized as one or more services and resources.
Show Source
Nested Schema : ProductOracle_MVO
Match All
Provides extended fields for the product schema.
Show Source
Nested Schema : Entity_MVO
Type: object
Represents a base entity schema for TM Forum Open APIs.
Match All
Represents a base entity schema for TM Forum Open APIs.
Show Source
  • Extensible
    Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
Nested Schema : Extensible
Type: object
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
Show Source
Nested Schema : Product_MVO-allOf[1]
Type: object
A product offering procured by a customer or any other party playing a party role. A product is realized as one or more services and resources.
Show Source
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
Refers to the billing account. The billing account describes the bill structure.
Show Source
Nested Schema : product
Type: array
Show Source
  • Discriminator: @type
    Discriminator: { "propertyName":"@type", "mapping":{ "Product":"#/components/schemas/Product_MVO", "ProductRef":"#/components/schemas/ProductRef_MVO", "ProductOracle":"#/components/schemas/ProductOracle_MVO" } }
    The polymorphic attributes (@type, @schemaLocation, and @referredType) apply to the Product entity, not to the ProductRefOrValue class.
Nested Schema : productCharacteristic
Type: array
Show Source
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
Represents entities that are orderable from the catalog provider. This resource includes pricing information.
Show Source
Nested Schema : productPrice
Type: array
Show Source
Nested Schema : productRelationship
Type: array
Show Source
Nested Schema : realizingService
Type: array
Show Source
  • Discriminator: @type
    Discriminator: { "propertyName":"@type", "mapping":{ "ServiceRef":"#/components/schemas/ServiceRef_MVO" } }
    The service reference used by other entities.
Nested Schema : EntityRef
Match All
Represents an entity reference schema for EntityRef classes.
Show Source
Nested Schema : Addressable
Type: object
Defines a base schema for addressable entities.
Show Source
Nested Schema : EntityRef-allOf[2]
Type: object
Represents an entity reference schema for EntityRef classes.
Show Source
Nested Schema : Discriminator: @type-allOf[2]
Type: object
Refers to the billing account. The billing account describes the bill structure.
Show Source
  • Indicates if the account follows a specific payment option such as prepaid or postpaid.
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

The polymorphic attributes (@type, @schemaLocation, and @referredType) apply to the Product entity, not to the ProductRefOrValue class.
Match One Schema
Show Source
Nested Schema : ProductRef_MVO
Type: object
A product reference.
Match All
A product reference.
A product reference.
Show Source
Nested Schema : Characteristic_MVO
Match All
Describes a given characteristic of an object or entity through a name/value pair.
Show Source
Nested Schema : Characteristic_MVO-allOf[1]
Type: object
Describes a given characteristic of an object or entity through a name/value pair.
Show Source
Nested Schema : characteristicRelationship
Type: array
Show Source
Nested Schema : CharacteristicRelationship_MVO
Match All
The related characteristic.
Show Source
Nested Schema : CharacteristicRelationship_MVO-allOf[1]
Type: object
The related characteristic.
Show Source
Nested Schema : Discriminator: @type-allOf[1]
Type: object
Represents entities that are orderable from the catalog provider. This resource includes pricing information.
Show Source
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
A description of the price and discount awarded.
Show Source
Nested Schema : Discriminator: @type-allOf[1]
Type: object
A description of the price and discount awarded.
Show Source
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
Provides monetary amounts (tax included, duty-free), currency, and percentages to apply to Price and PriceAlteration.
Show Source
Nested Schema : priceAlteration
Type: array
Show Source
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
An amount, usually monetary, that is asked for or allowed when a ProductOffering is bought, rented, or leased.
Show Source
Nested Schema : Discriminator: @type-allOf[1]
Type: object
Provides monetary amounts (tax included, duty-free), currency, and percentages to apply to Price and PriceAlteration.
Show Source
Nested Schema : Money
Type: object
Represents a monetary amount.
Show Source
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
An amount, usually monetary, that modifies the price charged for an order item.
Show Source
Nested Schema : Discriminator: @type-allOf[1]
Type: object
An amount, usually monetary, that modifies the price charged for an order item.
Show Source
Nested Schema : Discriminator: @type-allOf[1]
Type: object
An amount, usually monetary, that is asked for or allowed when a ProductOffering is bought, rented, or leased.
Show Source
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
Describes relationships between products.
Show Source
Nested Schema : Discriminator: @type-allOf[2]
Type: object
Describes relationships between products.
Show Source
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

The service reference used by other entities.
Match All
The service reference used by other entities.
The service reference used by other entities.
Show Source
Nested Schema : ProductOracle_MVO-allOf[1]
Type: object
Provides extended fields for the product schema.
Show Source
Nested Schema : CycleEndRef_MVO
Match All
CycleEnd reference. Provides details about the cycle end date for a purchased product.
Show Source
Nested Schema : CycleStartRef_MVO
Match All
CycleStart reference. Provides details about the cycle start date for a purchased product.
Show Source
Nested Schema : productPrice
Type: array
Show Source
Nested Schema : productRelationship
Type: array
Show Source
Nested Schema : PurchaseEndRef_MVO
Match All
PurchaseEnd reference. A PurchaseEnd contains details regarding purchase end date for purchased product.
Show Source
Nested Schema : PurchaseStartRef_MVO
Match All
PurchaseStart reference. Provides details about the purchase start date for a purchased product.
Show Source
Nested Schema : SpecialRatingProfile_MVO
Type: object
Mutable fields for a product-linked special rating profile.
Show Source
  • Identifies the service extended rating profile type.
  • data
    The rating attribute values used by rating.
  • The profile identifier.
  • The label used to identify the special rating profile in rating rules.
  • The special rating profile name.
  • The special rating profile reference count.
  • Allowed Values: [ "noop", "provisioning", "provisioningFailed", "active", "unprovisioning", "unprovisioningFailed", "unprovisioned", "suspending", "suspendingFailed", "suspended" ]
    The special rating profile provisioning status.
Match All
Mutable fields for a product-linked special rating profile.
Mutable fields for a product-linked special rating profile.
Show Source
Nested Schema : UsageEndRef_MVO
Match All
UsageEnd reference. Provides details about the usage end date for a purchased product.
Show Source
Nested Schema : UsageStartRef_MVO
Match All
UsageStart reference. Provides details about the usage start date for a purchased product.
Show Source
Nested Schema : CPUDatesExtension_MVO
Type: object
Contains common properties for all CPU extension date.
Show Source
  • Indicates the amount of time of a given unit.
  • Allowed Values: [ "seconds", "minutes", "hours", "days", "months", "acct_cycles", "first_usage", "absolute" ]
    Indicates the unit of time for the CPU extension date: seconds, minutes, hours, days, months, acct_cycles, first_usage, or absolute.
Nested Schema : CycleEndRef_MVO-allOf[1]
Type: object
CycleEnd reference. Provides details about the cycle end date for a purchased product.
Nested Schema : CycleStartRef_MVO-allOf[1]
Type: object
CycleStart reference. Provides details about the cycle start date for a purchased product.
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
A description of the price and discount awarded.
Show Source
Nested Schema : Discriminator: @type-allOf[1]
Type: object
A description of the price and discount awarded.
Show Source
Nested Schema : priceAlteration
Type: array
Show Source
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
Is an amount, usually of money, that modifies the price charged for an order item.
Show Source
Nested Schema : Discriminator: @type-allOf[1]
Type: object
Is an amount, usually of money, that modifies the price charged for an order item.
Show Source
  • Allowed Values: [ "AmountOverride", "DiscountPercentageOverride", "DiscountAmountOverride" ]
    A category that describes the price, such as AmountOverride, DiscountPercentageOverride, or DiscountAmountOverride.
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
Used to describe relationship between product.
Show Source
Nested Schema : Discriminator: @type-allOf[1]
Type: object
Used to describe relationship between product.
Show Source
Nested Schema : PurchaseEndRef_MVO-allOf[1]
Type: object
PurchaseEnd reference. A PurchaseEnd contains details regarding purchase end date for purchased product.
Nested Schema : PurchaseStartRef_MVO-allOf[1]
Type: object
PurchaseStart reference. Provides details about the purchase start date for a purchased product.
Nested Schema : data
Type: array
The rating attribute values used by rating.
Show Source
Nested Schema : SpecialRatingProfile_MVO-allOf[1]
Type: object
Nested Schema : SpecialRatingProfileData
Type: object
A name/value entry for a product-linked special rating profile.
Show Source
Nested Schema : TimePeriod
Type: object
Represents a time period with a start date, an end date, or both.
Show Source
Nested Schema : UsageEndRef_MVO-allOf[1]
Type: object
UsageEnd reference. Provides details about the usage end date for a purchased product.
Nested Schema : UsageStartRef_MVO-allOf[1]
Type: object
UsageStart reference. Provides details about the usage start date for a purchased product.
Examples

Back to Top

Response

200 Response

The request was successfully completed.
Body ()
Root Schema : schema
Match One Schema
Show Source
Nested Schema : Product
Match All
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.
Show Source
  • Entity
    Represents a base entity schema for TM Forum Open APIs.
  • 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.
Nested Schema : ProductOracle
Match All
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.
Show Source
Nested Schema : Entity
Type: object
Represents a base entity schema for TM Forum Open APIs.
Match All
Represents a base entity schema for TM Forum Open APIs.
Represents a base entity schema for TM Forum Open APIs.
Show Source
Nested Schema : Extensible
Type: object
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
Show Source
Nested Schema : Addressable
Type: object
Defines a base schema for addressable entities.
Show Source
Nested Schema : Product-allOf[1]
Type: object
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.
Show Source
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
Refers to the billing account. The billing account describes the bill structure.
Show Source
Nested Schema : product
Type: array
Show Source
  • 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.
Nested Schema : productCharacteristic
Type: array
Show Source
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
Represents entities that are orderable from the catalog provider. This resource includes pricing information.
Show Source
Nested Schema : productPrice
Type: array
Show Source
Nested Schema : productRelationship
Type: array
Show Source
Nested Schema : realizingService
Type: array
Show Source
Nested Schema : EntityRef
Match All
Represents an entity reference schema for EntityRef classes.
Show Source
Nested Schema : EntityRef-allOf[2]
Type: object
Represents an entity reference schema for EntityRef classes.
Show Source
Nested Schema : Discriminator: @type-allOf[2]
Type: object
Refers to the billing account. The billing account describes the bill structure.
Show Source
  • Indicates if the account follows a specific payment option such as prepaid or postpaid.
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

The polymorphic attributes (@type, @schemaLocation, and @referredType) apply to the Product entity, not to the ProductRefOrValue class.
Match One Schema
Show Source
Nested Schema : ProductRef
Type: object
A product reference.
Match All
A product reference.
A product reference.
Show Source
Nested Schema : Characteristic
Match All
Describes a given characteristic of an object or entity through a name/value pair.
Show Source
Nested Schema : Characteristic-allOf[1]
Type: object
Describes a given characteristic of an object or entity through a name/value pair.
Show Source
Nested Schema : characteristicRelationship
Type: array
Show Source
Nested Schema : CharacteristicRelationship
Match All
The related characteristic.
Show Source
Nested Schema : CharacteristicRelationship-allOf[1]
Type: object
The related characteristic.
Show Source
Nested Schema : Discriminator: @type-allOf[1]
Type: object
Represents entities that are orderable from the catalog provider. This resource includes pricing information.
Show Source
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
Describes the price and any discount awarded.
Show Source
Nested Schema : Discriminator: @type-allOf[1]
Type: object
Describes the price and any discount awarded.
Show Source
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
Provides monetary amounts (tax included, duty-free), currency, and percentages to apply to Price and PriceAlteration.
Show Source
Nested Schema : priceAlteration
Type: array
Show Source
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
An amount, usually monetary, that is asked for or allowed when a ProductOffering is bought, rented, or leased.
Show Source
Nested Schema : Discriminator: @type-allOf[1]
Type: object
Provides monetary amounts (tax included, duty-free), currency, and percentages to apply to Price and PriceAlteration.
Show Source
Nested Schema : Money
Type: object
Represents a monetary amount.
Show Source
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
An amount, usually monetary, that modifies the price charged for an order item.
Show Source
Nested Schema : Discriminator: @type-allOf[1]
Type: object
An amount, usually monetary, that modifies the price charged for an order item.
Show Source
Nested Schema : Discriminator: @type-allOf[1]
Type: object
An amount, usually monetary, that is asked for or allowed when a ProductOffering is bought, rented, or leased.
Show Source
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
Describes the relationship between products.
Show Source
Nested Schema : Discriminator: @type-allOf[2]
Type: object
Describes the relationship between products.
Show Source
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

The service reference used by other entities.
Match All
The service reference used by other entities.
The service reference used by other entities.
Show Source
Nested Schema : ProductOracle-allOf[1]
Type: object
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.
Show Source
Nested Schema : CycleEndRef
Match All
CycleEnd reference. A CycleEnd contains details regarding cycle end date for purchased product.
Show Source
Nested Schema : CycleStartRef
Match All
CycleStart reference. A CycleStart contains details regarding cycle start date for purchased product.
Show Source
Nested Schema : GracePeriodRef
Match All
GracePeriod reference. A GracePeriod contains details regarding grace period date for purchased product.
Show Source
Nested Schema : productPrice
Type: array
Show Source
Nested Schema : productRelationship
Type: array
Show Source
Nested Schema : PurchaseEndRef
Match All
PurchaseEnd reference. A PurchaseEnd contains details regarding purchase end date for purchased product.
Show Source
Nested Schema : PurchaseStartRef
Match All
PurchaseStart reference. A PurchaseStart contains details regarding purchase start date for purchased product.
Show Source
Nested Schema : specialRatingProfile
Service extended rating profile linked to the product.
Match All
Service extended rating profile linked to the product.
Show Source
Nested Schema : UsageEndRef
Match All
UsageEnd reference. A UsageEnd contains details regarding usage end date for purchased product.
Show Source
Nested Schema : UsageStartRef
Match All
UsageStart reference. A UsageStart contains details regarding usage start date for purchased product.
Show Source
Nested Schema : CPUDatesExtension_FVO
Type: object
Contains the CPU extension dates' common properties.
Show Source
  • Indicates the amount of time of a given unit.
  • 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".
Nested Schema : CycleEndRef-allOf[1]
Type: object
CycleEnd reference. A CycleEnd contains details regarding cycle end date for purchased product.
Nested Schema : CycleStartRef-allOf[1]
Type: object
CycleStart reference. A CycleStart contains details regarding cycle start date for purchased product.
Nested Schema : GracePeriodRef-allOf[1]
Type: object
GracePeriod reference. A GracePeriod contains details regarding grace period date for purchased product.
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
A description of the price and discount awarded.
Show Source
Nested Schema : Discriminator: @type-allOf[1]
Type: object
A description of the price and discount awarded.
Show Source
Nested Schema : priceAlteration
Type: array
Show Source
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
Is an amount, usually of money, that modifies the price charged for an order item.
Show Source
Nested Schema : Discriminator: @type-allOf[1]
Type: object
Is an amount, usually of money, that modifies the price charged for an order item.
Show Source
  • Allowed Values: [ "AmountOverride", "DiscountPercentageOverride", "DiscountAmountOverride" ]
    A category that describes the price, such as AmountOverride, DiscountPercentageOverride, or DiscountAmountOverride.
Nested Schema : Discriminator: @type
Type: object
Discriminator: @type

Discriminator Values

Match All
Used to describe the relationship between products.
Show Source
Nested Schema : Discriminator: @type-allOf[1]
Type: object
Used to describe the relationship between products.
Show Source
  • Allowed Values: [ "bundles", "bundledBy", "tiedDiscount", "tiedProduct" ]
    The relationship type: bundles, bundledBy, tiedDiscount, tiedProduct.
Nested Schema : PurchaseEndRef-allOf[1]
Type: object
PurchaseEnd reference. A PurchaseEnd contains details regarding purchase end date for purchased product.
Nested Schema : PurchaseStartRef-allOf[1]
Type: object
PurchaseStart reference. A PurchaseStart contains details regarding purchase start date for purchased product.
Nested Schema : SpecialRatingProfile
Type: object
Represents a product-linked special rating profile instance for BRM service extended rating.
Show Source
  • Identifies the service extended rating profile type.
  • data
    The rating attribute values used by rating.
  • The profile identifier.
  • The label used to identify the special rating profile in rating rules.
  • The special rating profile name.
  • The special rating profile reference count.
  • Allowed Values: [ "noop", "provisioning", "provisioningFailed", "active", "unprovisioning", "unprovisioningFailed", "unprovisioned", "suspending", "suspendingFailed", "suspended" ]
    The special rating profile provisioning status.
Match All
Represents a product-linked special rating profile instance for BRM service extended rating.
Represents a product-linked special rating profile instance for BRM service extended rating.
Show Source
Nested Schema : SpecialRatingProfile-allOf[1]
Type: object
Nested Schema : UsageEndRef-allOf[1]
Type: object
UsageEnd reference. A UsageEnd contains details regarding usage end date for purchased product.
Nested Schema : UsageStartRef-allOf[1]
Type: object
UsageStart reference. A UsageStart contains details regarding usage start date for purchased product.
Examples

202 Response

Accepted

400 Response

The server received a bad request.
Body ()
Root Schema : Error
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Match All
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Show Source
Nested Schema : Extensible
Type: object
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
Show Source
Nested Schema : Error-allOf[1]
Type: object
Show Source

401 Response

The request is unauthorized.
Body ()
Root Schema : Error
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Match All
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Show Source
Nested Schema : Extensible
Type: object
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
Show Source
Nested Schema : Error-allOf[1]
Type: object
Show Source

403 Response

The request is forbidden.
Body ()
Root Schema : Error
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Match All
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Show Source
Nested Schema : Extensible
Type: object
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
Show Source
Nested Schema : Error-allOf[1]
Type: object
Show Source

404 Response

The resource is not found.
Body ()
Root Schema : Error
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Match All
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Show Source
Nested Schema : Extensible
Type: object
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
Show Source
Nested Schema : Error-allOf[1]
Type: object
Show Source

405 Response

The method is not allowed.
Body ()
Root Schema : Error
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Match All
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Show Source
Nested Schema : Extensible
Type: object
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
Show Source
Nested Schema : Error-allOf[1]
Type: object
Show Source

409 Response

The request conflicts with the resource state.
Body ()
Root Schema : Error
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Match All
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Show Source
Nested Schema : Extensible
Type: object
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
Show Source
Nested Schema : Error-allOf[1]
Type: object
Show Source

500 Response

The server encountered an internal error.
Body ()
Root Schema : Error
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Match All
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Show Source
Nested Schema : Extensible
Type: object
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
Show Source
Nested Schema : Error-allOf[1]
Type: object
Show Source

501 Response

The server does not implement this operation.
Body ()
Root Schema : Error
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Match All
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Show Source
Nested Schema : Extensible
Type: object
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
Show Source
Nested Schema : Error-allOf[1]
Type: object
Show Source

503 Response

The service is unavailable.
Body ()
Root Schema : Error
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Match All
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Represents an error returned by an API, typically with an HTTP 3xx, 4xx, or 5xx response code.
Show Source
Nested Schema : Extensible
Type: object
Represents a base extensible schema for TM Forum Open APIs. The entity must include @type.
Show Source
Nested Schema : Error-allOf[1]
Type: object
Show Source
Back to Top

Examples

Example 1: Enabling Service Grouping for Parent and Child Products

This example shows how to enable service grouping for a hierarchy of parent and child products by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+536560' -H 'Content-Type: application/json' -d @sampleRequest1.json

Request Body

The following example shows the contents of the sampleRequest1.json file sent as the request body.

{
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceId",
            "valueType": "string",
            "value": "parent_sub30",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/telco/gsm",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "Service Grouping",
            "valueType": "string",
            "value": "Y",
            "@type": "StringCharacteristic_FVO"
        }
    ]
}

Response Body

The following example shows the response body.

{
    "productRelationship": [
        {
            "id": "0.0.0.1+-purchased_product+536529",
            "relationshipType": "bundles",
            "@type": "ProductRelationshipOracle"
        },
        {
            "id": "0.0.0.1+-purchased_product+536530",
            "relationshipType": "bundles",
            "@type": "ProductRelationshipOracle"
        }
    ],
    "@type": "ProductOracle",
    "product": [
        {
            "productRelationship": [
                {
                    "id": "0.0.0.1+-purchased_product+536560",
                    "relationshipType": "bundledBy",
                    "@type": "ProductRelationshipOracle"
                }
            ],
            "@type": "ProductOracle",
            "terminationDate": "2020-01-02T08:00:00.00Z",
            "gracePeriod": {
                "unit": "absolute",
                "amount": 0
            },
            "status": "active",
            "id": "0.0.0.1+-purchased_product+536529",
            "href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+536529",
            "billingAccount": {
                "id": "0.0.0.1+-account+734874",
                "name": "Junior Walter",
                "@type": "BillingAccountRef"
            },
            "realizingService": [
                {
                    "id": "",
                    "@type": "ServiceRef"
                }
            ],
            "isBundle": false,
            "name": "Voice Over SMS",
            "description": "Test description",
            "productOffering": {
                "name": "Standard SMS",
                "id": "0.0.0.1+-product+709357",
                "@type": "ProductOfferingRef"
            },
            "productCharacteristic": [
                {
                    "id": "",
                    "name": "ServiceId",
                    "valueType": "string",
                    "value": "child_sub_sms30",
                    "@type": "StringCharacteristic"
                },
                {
                    "id": "",
                    "name": "ServiceType",
                    "valueType": "string",
                    "value": "/service/telco/gsm/sms",
                    "@type": "StringCharacteristic"
                }
            ],
            "quantity": 1,
            "startDate": "2018-01-01T08:00:00.00Z"
        },
        {
            "productRelationship": [
                {
                    "id": "0.0.0.1+-purchased_product+536560",
                    "relationshipType": "bundledBy",
                    "@type": "ProductRelationshipOracle"
                }
            ],
            "@type": "ProductOracle",
            "terminationDate": "2020-01-02T08:00:00.00Z",
            "gracePeriod": {
                "unit": "absolute",
                "amount": 0
            },
            "status": "active",
            "id": "0.0.0.1+-purchased_product+536530",
            "href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+536530",
            "billingAccount": {
                "id": "0.0.0.1+-account+734874",
                "name": "Junior Walter",
                "@type": "BillingAccountRef"
            },
            "isBundle": false,
            "name": "Voice Over GSM Telephony",
            "description": "Test description",
            "productOffering": {
                "name": "Standard GSM Telephony",
                "id": "0.0.0.1+-product+709367",
                "@type": "ProductOfferingRef"
            },
            "productCharacteristic": [
                {
                    "id": "",
                    "name": "ServiceId",
                    "valueType": "string",
                    "value": "child_sub_telephony30",
                    "@type": "StringCharacteristic"
                },
                {
                    "id": "",
                    "name": "ServiceType",
                    "valueType": "string",
                    "value": "/service/telco/gsm/telephony",
                    "@type": "StringCharacteristic"
                }
            ],
            "quantity": 1,
            "startDate": "2018-01-01T08:00:00.00Z"
        }
    ],
    "terminationDate": "2020-01-03T01:30:00.00Z",
    "gracePeriod": {
        "unit": "absolute",
        "amount": 0
    },
    "status": "active",
    "id": "0.0.0.1+-purchased_product+536560",
    "href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+536560",
    "billingAccount": {
        "id": "0.0.0.1+-account+734874",
        "name": "Junior Walter",
        "@type": "BillingAccountRef"
    },
    "realizingService": [
        {
            "id": "",
            "@type": "ServiceRef"
        }
    ],
    "isBundle": true,
    "name": "Voice Over IP",
    "description": "DBE Product Specification instance",
    "productOffering": {
        "name": "Standard GSM",
        "id": "0.0.0.1+-product+709347",
        "@type": "ProductOfferingRef"
    },
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceId",
            "valueType": "string",
            "value": "parent_sub30",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/telco/gsm",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "Service Grouping",
            "valueType": "string",
            "value": "Y",
            "@type": "StringCharacteristic"
        }
    ],
    "quantity": 5,
    "startDate": "2018-01-02T01:30:00.00Z"
}

Example 2: Replacing Services in a Service Group Using Product Relationships

This example shows how to replace services in an existing service group using product relationships by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+536560' -H 'Content-Type: application/json' -d @sampleRequest2.json

Request Body

The following example shows the contents of the sampleRequest2.json file sent as the request body.

{
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceId",
            "valueType": "string",
            "value": "parent_sub31",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/telco/gsm",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "Service Grouping",
            "valueType": "string",
            "value": "Y",
            "@type": "StringCharacteristic_FVO"
        }
    ],
    "productRelationship": [
        {
            "id": "0.0.0.1+-purchased_product+536529",
            "relationshipType": "bundles",
            "@type": "ProductRelationshipOracle"
        },
        {
            "id": "0.0.0.1+-purchased_product+536530",
            "relationshipType": "bundles",
            "@type": "ProductRelationshipOracle"
        }
    ]
}

Response Body

The following example shows the response body.

{
    "productRelationship": [
        {
            "id": "0.0.0.1+-purchased_product+536529",
            "relationshipType": "bundles",
            "@type": "ProductRelationshipOracle"
        },
        {
            "id": "0.0.0.1+-purchased_product+536530",
            "relationshipType": "bundles",
            "@type": "ProductRelationshipOracle"
        }
    ],
    "@type": "ProductOracle",
    "product": [
        {
            "productRelationship": [
                {
                    "id": "0.0.0.1+-purchased_product+536560",
                    "relationshipType": "bundledBy",
                    "@type": "ProductRelationshipOracle"
                }
            ],
            "@type": "ProductOracle",
            "terminationDate": "2020-01-02T08:00:00.00Z",
            "gracePeriod": {
                "unit": "absolute",
                "amount": 0
            },
            "status": "active",
            "id": "0.0.0.1+-purchased_product+536529",
            "href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+536529",
            "billingAccount": {
                "id": "0.0.0.1+-account+734874",
                "name": "Junior Walter",
                "@type": "BillingAccountRef"
            },
            "realizingService": [
                {
                    "id": "",
                    "@type": "ServiceRef"
                }
            ],
            "isBundle": false,
            "name": "Voice Over SMS",
            "description": "Test description",
            "productOffering": {
                "name": "Standard SMS",
                "id": "0.0.0.1+-product+709357",
                "@type": "ProductOfferingRef"
            },
            "productCharacteristic": [
                {
                    "id": "",
                    "name": "ServiceId",
                    "valueType": "string",
                    "value": "child_sub_sms30",
                    "@type": "StringCharacteristic"
                },
                {
                    "id": "",
                    "name": "ServiceType",
                    "valueType": "string",
                    "value": "/service/telco/gsm/sms",
                    "@type": "StringCharacteristic"
                }
            ],
            "quantity": 1,
            "startDate": "2018-01-01T08:00:00.00Z"
        },
        {
            "productRelationship": [
                {
                    "id": "0.0.0.1+-purchased_product+536560",
                    "relationshipType": "bundledBy",
                    "@type": "ProductRelationshipOracle"
                }
            ],
            "@type": "ProductOracle",
            "terminationDate": "2020-01-02T08:00:00.00Z",
            "gracePeriod": {
                "unit": "absolute",
                "amount": 0
            },
            "status": "active",
            "id": "0.0.0.1+-purchased_product+536530",
            "href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+536530",
            "billingAccount": {
                "id": "0.0.0.1+-account+734874",
                "name": "Junior Walter",
                "@type": "BillingAccountRef"
            },
            "isBundle": false,
            "name": "Voice Over GSM Telephony",
            "description": "Test description",
            "productOffering": {
                "name": "Standard GSM Telephony",
                "id": "0.0.0.1+-product+709367",
                "@type": "ProductOfferingRef"
            },
            "productCharacteristic": [
                {
                    "id": "",
                    "name": "ServiceId",
                    "valueType": "string",
                    "value": "child_sub_telephony30",
                    "@type": "StringCharacteristic"
                },
                {
                    "id": "",
                    "name": "ServiceType",
                    "valueType": "string",
                    "value": "/service/telco/gsm/telephony",
                    "@type": "StringCharacteristic"
                }
            ],
            "quantity": 1,
            "startDate": "2018-01-01T08:00:00.00Z"
        }
    ],
    "terminationDate": "2020-01-03T01:30:00.00Z",
    "gracePeriod": {
        "unit": "absolute",
        "amount": 0
    },
    "status": "active",
    "id": "0.0.0.1+-purchased_product+536560",
    "href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+536560",
    "billingAccount": {
        "id": "0.0.0.1+-account+734874",
        "name": "Junior Walter",
        "@type": "BillingAccountRef"
    },
    "realizingService": [
        {
            "id": "",
            "@type": "ServiceRef"
        }
    ],
    "isBundle": true,
    "name": "Voice Over IP",
    "description": "DBE Product Specification instance",
    "productOffering": {
        "name": "Standard GSM",
        "id": "0.0.0.1+-product+709347",
        "@type": "ProductOfferingRef"
    },
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceId",
            "valueType": "string",
            "value": "parent_sub30",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/telco/gsm",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "Service Grouping",
            "valueType": "string",
            "value": "Y",
            "@type": "StringCharacteristic"
        }
    ],
    "quantity": 5,
    "startDate": "2018-01-02T01:30:00.00Z"
}

Example 3: Enabling Service Grouping for Parent and Child Products (Custom Payload)

Note:

Key 'externalIdMappingEnabled' should be set to 'true' to use external Ids in custom payload

This example shows how to enable service grouping for a hierarchy of parent and child products using a custom payload by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/cuke4BRM2_productName_test_new_prod_001080' -H 'Content-Type: application/json' -d @sampleRequest3.json

Request Body

The following example shows the contents of the sampleRequest3.json file sent as the request body.

{
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceId",
            "valueType": "string",
            "value": "parent_sub30",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/telco/gsm",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "Service Grouping",
            "valueType": "string",
            "value": "Y",
            "@type": "StringCharacteristic_FVO"
        }
    ]
}

Response Body

The following example shows the response body.

{
    "productRelationship": [
        {
            "id": "ProductServiceFlattenedSMS1080",
            "relationshipType": "bundles",
            "@type": "ProductRelationshipOracle"
        },
        {
            "id": "ProductTelephoneyServiceFlattened1080",
            "relationshipType": "bundles",
            "@type": "ProductRelationshipOracle"
        }
    ],
    "@type": "ProductOracle",
    "product": [
        {
            "productRelationship": [
                {
                    "id": "cuke4BRM2_productName_test_new_prod_001080",
                    "relationshipType": "bundledBy",
                    "@type": "ProductRelationshipOracle"
                }
            ],
            "@type": "ProductOracle",
            "terminationDate": "2020-01-02T08:00:00.00Z",
            "gracePeriod": {
                "unit": "absolute",
                "amount": 0
            },
            "status": "active",
            "id": "ProductServiceFlattenedSMS1080",
            "href": "https://host:port/brm/productInventory/v5/product/ProductServiceFlattenedSMS1080",
            "billingAccount": {
                "id": "cuke4brm-rsm-customer-actno-new71",
                "name": "Junior Walter",
                "@type": "BillingAccountRef"
            },
            "realizingService": [
                {
                    "id": "",
                    "@type": "ServiceRef"
                }
            ],
            "isBundle": false,
            "name": "Voice Over SMS",
            "description": "Test description",
            "productOffering": {
                "name": "Standard SMS",
                "id": "Standard SMS",
                "@type": "ProductOfferingRef"
            },
            "productCharacteristic": [
                {
                    "id": "",
                    "name": "ServiceId",
                    "valueType": "string",
                    "value": "child_sub_sms30",
                    "@type": "StringCharacteristic"
                },
                {
                    "id": "",
                    "name": "ServiceType",
                    "valueType": "string",
                    "value": "/service/telco/gsm/sms",
                    "@type": "StringCharacteristic"
                }
            ],
            "quantity": 1,
            "startDate": "2018-01-01T08:00:00.00Z"
        },
        {
            "productRelationship": [
                {
                    "id": "cuke4BRM2_productName_test_new_prod_001080",
                    "relationshipType": "bundledBy",
                    "@type": "ProductRelationshipOracle"
                }
            ],
            "@type": "ProductOracle",
            "terminationDate": "2020-01-02T08:00:00.00Z",
            "gracePeriod": {
                "unit": "absolute",
                "amount": 0
            },
            "status": "active",
            "id": "ProductTelephoneyServiceFlattened1080",
            "href": "https://host:port/brm/productInventory/v5/product/ProductTelephoneyServiceFlattened1080",
            "billingAccount": {
                "id": "cuke4brm-rsm-customer-actno-new71",
                "name": "Junior Walter",
                "@type": "BillingAccountRef"
            },
            "realizingService": [
                {
                    "id": "",
                    "@type": "ServiceRef"
                }
            ],
            "isBundle": false,
            "name": "Voice Over GSM Telephony",
            "description": "Test description",
            "productOffering": {
                "name": "Standard GSM Telephony",
                "id": "Standard GSM Telephony",
                "@type": "ProductOfferingRef"
            },
            "productCharacteristic": [
                {
                    "id": "",
                    "name": "ServiceId",
                    "valueType": "string",
                    "value": "child_sub_telephony30",
                    "@type": "StringCharacteristic"
                },
                {
                    "id": "",
                    "name": "ServiceType",
                    "valueType": "string",
                    "value": "/service/telco/gsm/telephony",
                    "@type": "StringCharacteristic"
                }
            ],
            "quantity": 1,
            "startDate": "2018-01-01T08:00:00.00Z"
        }
    ],
    "terminationDate": "2020-01-03T01:30:00.00Z",
    "gracePeriod": {
        "unit": "absolute",
        "amount": 0
    },
    "status": "active",
    "id": "cuke4BRM2_productName_test_new_prod_001080",
    "href": "https://host:port/brm/productInventory/v5/product/cuke4BRM2_productName_test_new_prod_001080",
    "billingAccount": {
        "id": "cuke4brm-rsm-customer-actno-new71",
        "name": "Junior Walter",
        "@type": "BillingAccountRef"
    },
    "realizingService": [
        {
            "id": "",
            "@type": "ServiceRef"
        }
    ],
    "isBundle": true,
    "name": "Voice Over IP",
    "description": "DBE Product Specification instance",
    "productOffering": {
        "name": "",
        "id": "",
        "@type": "ProductOfferingRef"
    },
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceId",
            "valueType": "string",
            "value": "parent_sub30",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/telco/gsm",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "Service Grouping",
            "valueType": "string",
            "value": "Y",
            "@type": "StringCharacteristic"
        }
    ],
    "quantity": 5,
    "startDate": "2018-01-02T01:30:00.00Z"
}

Example 4: Replacing Services in a Service Group Using Product Relationships (Custom Payload)

Note:

Key 'externalIdMappingEnabled' should be set to 'true' to use external Ids in custom payload

This example shows how to replace services in an existing service group using product relationships and a custom payload by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/cuke4BRM2_productName_test_new_prod_001081' -H 'Content-Type: application/json' -d @sampleRequest4.json

Request Body

The following example shows the contents of the sampleRequest4.json file sent as the request body.

{
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceId",
            "valueType": "string",
            "value": "parent_sub31",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/telco/gsm",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "Service Grouping",
            "valueType": "string",
            "value": "Y",
            "@type": "StringCharacteristic_FVO"
        }
    ],
    "productRelationship": [
        {
            "id": "ProductServiceFlattenedSMS1081",
            "relationshipType": "bundles",
            "@type": "ProductRelationshipOracle"
        },
        {
            "id": "ProductTelephoneyServiceFlattened1081",
            "relationshipType": "bundles",
            "@type": "ProductRelationshipOracle"
        }
    ]
}

Response Body

The following example shows the response body.

{
    "productRelationship": [
        {
            "id": "ProductServiceFlattenedSMS1081",
            "relationshipType": "bundles",
            "@type": "ProductRelationshipOracle"
        },
        {
            "id": "ProductTelephoneyServiceFlattened1081",
            "relationshipType": "bundles",
            "@type": "ProductRelationshipOracle"
        }
    ],
    "@type": "ProductOracle",
    "product": [
        {
            "productRelationship": [
                {
                    "id": "cuke4BRM2_productName_test_new_prod_001081",
                    "relationshipType": "bundledBy",
                    "@type": "ProductRelationshipOracle"
                }
            ],
            "@type": "ProductOracle",
            "terminationDate": "2020-01-02T08:00:00.00Z",
            "gracePeriod": {
                "unit": "absolute",
                "amount": 0
            },
            "status": "active",
            "id": "ProductServiceFlattenedSMS1080",
            "href": "https://host:port/brm/productInventory/v5/product/ProductServiceFlattenedSMS1080",
            "billingAccount": {
                "id": "cuke4brm-rsm-customer-actno-new71",
                "name": "Junior Walter",
                "@type": "BillingAccountRef"
            },
            "realizingService": [
                {
                    "id": "",
                    "@type": "ServiceRef"
                }
            ],
            "isBundle": false,
            "name": "Voice Over SMS",
            "description": "Test description",
            "productOffering": {
                "name": "Standard SMS",
                "id": "Standard SMS",
                "@type": "ProductOfferingRef"
            },
            "productCharacteristic": [
                {
                    "id": "",
                    "name": "ServiceId",
                    "valueType": "string",
                    "value": "child_sub_sms31",
                    "@type": "StringCharacteristic"
                },
                {
                    "id": "",
                    "name": "ServiceType",
                    "valueType": "string",
                    "value": "/service/telco/gsm/sms",
                    "@type": "StringCharacteristic"
                }
            ],
            "quantity": 1,
            "startDate": "2018-01-01T08:00:00.00Z"
        },
        {
            "productRelationship": [
                {
                    "id": "cuke4BRM2_productName_test_new_prod_001081",
                    "relationshipType": "bundledBy",
                    "@type": "ProductRelationshipOracle"
                }
            ],
            "@type": "ProductOracle",
            "terminationDate": "2020-01-02T08:00:00.00Z",
            "gracePeriod": {
                "unit": "absolute",
                "amount": 0
            },
            "status": "active",
            "id": "ProductTelephoneyServiceFlattened1080",
            "href": "https://host:port/brm/productInventory/v5/product/ProductTelephoneyServiceFlattened1080",
            "billingAccount": {
                "id": "cuke4brm-rsm-customer-actno-new71",
                "name": "Junior Walter",
                "@type": "BillingAccountRef"
            },
            "realizingService": [
                {
                    "id": "",
                    "@type": "ServiceRef"
                }
            ],
            "isBundle": false,
            "name": "Voice Over GSM Telephony",
            "description": "Test description",
            "productOffering": {
                "name": "Standard GSM Telephony",
                "id": "Standard GSM Telephony",
                "@type": "ProductOfferingRef"
            },
            "productCharacteristic": [
                {
                    "id": "",
                    "name": "ServiceId",
                    "valueType": "string",
                    "value": "child_sub_telephony31",
                    "@type": "StringCharacteristic"
                },
                {
                    "id": "",
                    "name": "ServiceType",
                    "valueType": "string",
                    "value": "/service/telco/gsm/telephony",
                    "@type": "StringCharacteristic"
                }
            ],
            "quantity": 1,
            "startDate": "2018-01-01T08:00:00.00Z"
        }
    ],
    "terminationDate": "2020-01-03T01:30:00.00Z",
    "gracePeriod": {
        "unit": "absolute",
        "amount": 0
    },
    "status": "active",
    "id": "cuke4BRM2_productName_test_new_prod_001081",
    "href": "https://host:port/brm/productInventory/v5/product/cuke4BRM2_productName_test_new_prod_001080",
    "billingAccount": {
        "id": "cuke4brm-rsm-customer-actno-new71",
        "name": "Junior Walter",
        "@type": "BillingAccountRef"
    },
    "realizingService": [
        {
            "id": "",
            "@type": "ServiceRef"
        }
    ],
    "isBundle": true,
    "name": "Voice Over IP",
    "description": "DBE Product Specification instance",
    "productOffering": {
        "name": "",
        "id": "",
        "@type": "ProductOfferingRef"
    },
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceId",
            "valueType": "string",
            "value": "parent_sub31",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/telco/gsm",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "Service Grouping",
            "valueType": "string",
            "value": "Y",
            "@type": "StringCharacteristic"
        }
    ],
    "quantity": 5,
    "startDate": "2018-01-02T01:30:00.00Z"
}

Example 5: Creating a Discount Sharing Group (Community Member N to Y)

This example shows how to generate a Discount Sharing Group by changing Community Member from N to Y by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+227645' -H 'Content-Type: application/json' -d @sampleRequest5.json

Request Body

The following example shows the contents of the sampleRequest5.json file sent as the request body.

{
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceId",
            "valueType": "string",
            "value": "tc03-service",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/telco/gsm/telephony",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "Service Grouping",
            "valueType": "string",
            "value": "Y",
            "@type": "StringCharacteristic"
        },
        {
            "name": "Community Member",
            "valueType": "string",
            "value": "Y"
        }
    ]
}

Response Body

The following example shows the response body.

{
    "@type": "Product",
    "id": "0.0.0.1+-purchased_product+227645",
    "href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+227645",
    "status": "active",
    "billingAccount": {
        "id": "0.0.0.1+-account+224482",
        "name": "parent-billunit ",
        "@type": "BillingAccountRef"
    },
    "realizingService": [
        {
            "id": "0.0.0.1+-service-telco-gsm-telephony+228413",
            "@type": "ServiceRef"
        }
    ],
    "isBundle": true,
    "name": "TC03 No Discount Sharing Group",
    "description": "",
    "productOffering": {
        "id": "0.0.0.1+-product+64390",
        "name": "Standard GSM Telephony",
        "@type": "ProductOfferingRef"
    },
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceId",
            "valueType": "string",
            "value": "tc03-service",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/telco/gsm/telephony",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "Service Grouping",
            "valueType": "string",
            "value": "Y",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "Community Member",
            "valueType": "string",
            "value": "Y",
            "@type": "StringCharacteristic"
        }
    ],
    "quantity": 1
}

Example 6: Renaming a Discount Sharing Group

This example shows how to change a Discount Sharing Group group name by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+227645' -H 'Content-Type: application/json' -d @sampleRequest6.json

Request Body

The following example shows the contents of the sampleRequest6.json file sent as the request body.

{
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceId",
            "valueType": "string",
            "value": "tc03-service",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/telco/gsm/telephony",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "Service Grouping",
            "valueType": "string",
            "value": "Y",
            "@type": "StringCharacteristic"
        },
        {
            "name": "Community Member",
            "valueType": "string",
            "value": "Discount Sharing GroupNameTC03"
        }
    ]
}

Response Body

The following example shows the response body.

{
    "@type": "Product",
    "id": "0.0.0.1+-purchased_product+227645",
    "href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+227645",
    "status": "active",
    "billingAccount": {
        "id": "0.0.0.1+-account+224482",
        "name": "parent-billunit ",
        "@type": "BillingAccountRef"
    },
    "realizingService": [
        {
            "id": "0.0.0.1+-service-telco-gsm-telephony+228413",
            "@type": "ServiceRef"
        }
    ],
    "isBundle": true,
    "name": "TC03 No Discount Sharing Group",
    "description": "",
    "productOffering": {
        "id": "0.0.0.1+-product+64390",
        "name": "Standard GSM Telephony",
        "@type": "ProductOfferingRef"
    },
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceId",
            "valueType": "string",
            "value": "tc03-service",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/telco/gsm/telephony",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "Community Member",
            "valueType": "string",
            "value": "Discount Sharing GroupNameTC03",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "Service Grouping",
            "valueType": "string",
            "value": "Y",
            "@type": "StringCharacteristic"
        }
    ],
    "quantity": 1
}

Example 7: Removing a Generated Discount Sharing Group Without a Community Offer

This example shows how to delete a generated Discount Sharing Group by patching product characteristics without Community Offer by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+227645' -H 'Content-Type: application/json' -d @sampleRequest7.json

Request Body

The following example shows the contents of the sampleRequest7.json file sent as the request body.

{
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceId",
            "valueType": "string",
            "value": "tc03-service",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/telco/gsm/telephony",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "Service Grouping",
            "valueType": "string",
            "value": "Y",
            "@type": "StringCharacteristic"
        }
    ]
}

Response Body

The following example shows the response body.

{
    "@type": "Product",
    "id": "0.0.0.1+-purchased_product+227645",
    "href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+227645",
    "status": "active",
    "billingAccount": {
        "id": "0.0.0.1+-account+224482",
        "name": "parent-billunit ",
        "@type": "BillingAccountRef"
    },
    "realizingService": [
        {
            "id": "0.0.0.1+-service-telco-gsm-telephony+228413",
            "@type": "ServiceRef"
        }
    ],
    "isBundle": true,
    "name": "TC03 No Discount Sharing Group",
    "description": "",
    "productOffering": {
        "id": "0.0.0.1+-product+64390",
        "name": "Standard GSM Telephony",
        "@type": "ProductOfferingRef"
    },
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceId",
            "valueType": "string",
            "value": "tc03-service",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/telco/gsm/telephony",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "Service Grouping",
            "valueType": "string",
            "value": "Y",
            "@type": "StringCharacteristic"
        }
    ],
    "quantity": 1
}

Example 8: Updating a Community Offer

This example shows how to update Community Offer to Discount Sharing Group07Name by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_discount+222546' -H 'Content-Type: application/json' -d @sampleRequest8.json

Request Body

The following example shows the contents of the sampleRequest8.json file sent as the request body.

{
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceId",
            "valueType": "string",
            "value": "tc07z-member-service",
            "@type": "StringCharacteristic"
        },
        {
            "name": "Community Offer",
            "valueType": "string",
            "value": "Discount Sharing Group07Name"
        }
    ]
}

Response Body

The following example shows the response body.

{
    "productRelationship": [
        {
            "id": "0.0.0.1+-purchased_product+224850",
            "relationshipType": "bundledBy",
            "@type": "ProductRelationship"
        }
    ],
    "@type": "Product",
    "id": "0.0.0.1+-purchased_discount+222546",
    "href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_discount+222546",
    "status": "active",
    "billingAccount": {
        "id": "0.0.0.1+-account+206471",
        "name": "parent-billunit ",
        "@type": "BillingAccountRef"
    },
    "realizingService": [
        {
            "id": "0.0.0.1+-service-telco-gsm-telephony+221266",
            "@type": "ServiceRef"
        }
    ],
    "isBundle": false,
    "name": "TC07 Shared Minutes Discount",
    "description": "",
    "productOffering": {
        "id": "0.0.0.1+-discount+61766",
        "name": "Standard GSM Discount",
        "@type": "ProductOfferingRef"
    },
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceId",
            "valueType": "string",
            "value": "tc07z-member-service",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "Community Offer",
            "valueType": "string",
            "value": "Discount Sharing Group07Name",
            "@type": "StringCharacteristic"
        }
    ],
    "quantity": 1
}

Example 9: Removing a Discount from a Community Offer

This example shows how to remove a discount from a community offer by setting Community Offer to N by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_discount+222546' -H 'Content-Type: application/json' -d @sampleRequest9.json

Request Body

The following example shows the contents of the sampleRequest9.json file sent as the request body.

{
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceId",
            "valueType": "string",
            "value": "tc07z-member-service",
            "@type": "StringCharacteristic"
        },
        {
            "name": "Community Offer",
            "valueType": "string",
            "value": "N"
        }
    ]
}

Response Body

The following example shows the response body.

{
    "productRelationship": [
        {
            "id": "0.0.0.1+-purchased_product+224850",
            "relationshipType": "bundledBy",
            "@type": "ProductRelationship"
        }
    ],
    "@type": "Product",
    "id": "0.0.0.1+-purchased_discount+222546",
    "href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_discount+222546",
    "status": "active",
    "billingAccount": {
        "id": "0.0.0.1+-account+206471",
        "name": "parent-billunit ",
        "@type": "BillingAccountRef"
    },
    "realizingService": [
        {
            "id": "0.0.0.1+-service-telco-gsm-telephony+221266",
            "@type": "ServiceRef"
        }
    ],
    "isBundle": false,
    "name": "TC07 Shared Minutes Discount",
    "description": "",
    "productOffering": {
        "id": "0.0.0.1+-discount+61766",
        "name": "Standard GSM Discount",
        "@type": "ProductOfferingRef"
    },
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceId",
            "valueType": "string",
            "value": "tc07z-member-service",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "Community Offer",
            "valueType": "string",
            "value": "N",
            "@type": "StringCharacteristic"
        }
    ],
    "quantity": 1
}

Example 10: Replacing Community Member or Community Offer Characteristics (JSON Patch)

Note:

To generate JSON PATCH payloads, set the content type to application/json-patch+json or application/json-patch-query+json.

This example shows how to replace a Community Member characteristic from N to Y using JSON Patch by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+227645' -H 'Content-Type: application/json-patch-query+json' -d @sampleRequest10.json

Request Body

The following example shows the contents of the sampleRequest10.json file sent as the request body.

[
    {
        "op": "replace",
        "path": "$.productCharacteristic[?(@.name=='Community Member' && @.value=='N' && @.valueType=='string')]",
        "value": {
            "name": "Community Member",
            "valueType": "string",
            "value": "Y"
        }
    }
]

Response Body

The following example shows the response body.

{
    "@type": "Product",
    "id": "0.0.0.1+-purchased_product+227645",
    "href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+227645",
    "status": "active",
    "billingAccount": {
        "id": "0.0.0.1+-account+224482",
        "name": "parent-billunit ",
        "@type": "BillingAccountRef"
    },
    "realizingService": [
        {
            "id": "0.0.0.1+-service-telco-gsm-telephony+228413",
            "@type": "ServiceRef"
        }
    ],
    "isBundle": true,
    "name": "TC03 No Discount Sharing Group",
    "description": "",
    "productOffering": {
        "id": "0.0.0.1+-product+64390",
        "name": "Standard GSM Telephony",
        "@type": "ProductOfferingRef"
    },
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceId",
            "valueType": "string",
            "value": "tc03-service",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/telco/gsm/telephony",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "Community Member",
            "valueType": "string",
            "value": "Y",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "Service Grouping",
            "valueType": "string",
            "value": "Y",
            "@type": "StringCharacteristic"
        }
    ],
    "quantity": 1
}

Example 11: Removing Community Member or Community Offer Characteristics (JSON Patch)

Note:

To generate JSON PATCH payloads, set the content type to application/json-patch+json or application/json-patch-query+json.

This example shows how to remove a Community Offer characteristic using JSON Patch by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_discount+222546' -H 'Content-Type: application/json-patch-query+json' -d @sampleRequest11.json

Request Body

The following example shows the contents of the sampleRequest11.json file sent as the request body.

[
    {
        "op": "remove",
        "path": "$.productCharacteristic[?(@.name=='Community Offer' && @.value=='N' && @.valueType=='string')]"
    }
]

Response Body

The following example shows the response body.

{
    "productRelationship": [
        {
            "id": "0.0.0.1+-purchased_product+224850",
            "relationshipType": "bundledBy",
            "@type": "ProductRelationship"
        }
    ],
    "@type": "Product",
    "id": "0.0.0.1+-purchased_discount+222546",
    "href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_discount+222546",
    "status": "active",
    "billingAccount": {
        "id": "0.0.0.1+-account+206471",
        "name": "parent-billunit ",
        "@type": "BillingAccountRef"
    },
    "realizingService": [
        {
            "id": "0.0.0.1+-service-telco-gsm-telephony+221266",
            "@type": "ServiceRef"
        }
    ],
    "isBundle": false,
    "name": "TC07 Shared Minutes Discount",
    "description": "",
    "productOffering": {
        "id": "0.0.0.1+-discount+61766",
        "name": "Standard GSM Discount",
        "@type": "ProductOfferingRef"
    },
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceId",
            "valueType": "string",
            "value": "tc07z-member-service",
            "@type": "StringCharacteristic"
        }
    ],
    "quantity": 1
}

Example 12: Adding Community Member or Community Offer Characteristics (JSON Patch)

Note:

To generate JSON PATCH payloads, set the content type to application/json-patch+json or application/json-patch-query+json.

This example shows how to add a Community Member characteristic using JSON Patch by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+217329' -H 'Content-Type: application/json-patch-query+json' -d @sampleRequest12.json

Request Body

The following example shows the contents of the sampleRequest12.json file sent as the request body.

[
    {
        "op": "add",
        "path": "$.productCharacteristic",
        "value": {
            "name": "Community Member",
            "valueType": "string",
            "value": "Y"
        }
    }
]

Response Body

The following example shows the response body.

{
    "@type": "Product",
    "id": "0.0.0.1+-purchased_product+217329",
    "href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+217329",
    "status": "active",
    "billingAccount": {
        "id": "0.0.0.1+-account+207737",
        "name": "parent-billunit ",
        "@type": "BillingAccountRef"
    },
    "realizingService": [
        {
            "id": "0.0.0.1+-service-telco-gsm-telephony+218481",
            "@type": "ServiceRef"
        }
    ],
    "isBundle": true,
    "name": "TC04 Owner Service",
    "description": "",
    "productOffering": {
        "id": "0.0.0.0++0",
        "name": "",
        "@type": "ProductOfferingRef"
    },
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceId",
            "valueType": "string",
            "value": "tc04-owner-service-ob",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/telco/gsm/telephony",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "Service Grouping",
            "valueType": "string",
            "value": "Y",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "Community Member",
            "valueType": "string",
            "value": "Y",
            "@type": "StringCharacteristic"
        }
    ],
    "quantity": 1
}

Example 13: Updating CPU Dates

This example shows how to update CPU dates and quantity by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+190602' -H 'Content-Type: application/json' -d @sampleRequest13.json

Request Body

The following example shows the contents of the sampleRequest13.json file sent as the request body.

{
    "@type": "Product",
    "quantity": 2,
    "cycleStart": {
        "amount": 10,
        "unit": "days"
    },
    "usageStart": {
        "amount": 10,
        "unit": "days"
    },
    "purchaseStart": {
        "amount": 10,
        "unit": "days"
    },
    "cycleEnd": {
        "amount": 2,
        "unit": "months"
    },
    "usageEnd": {
        "amount": 2,
        "unit": "months"
    },
    "purchaseEnd": {
        "amount": 2,
        "unit": "months"
    }
}

Response Body

The following example shows the response body.

{
    "@type": "Product",
    "cycleStart": {
        "unit": "days",
        "amount": 10
    },
    "purchaseStart": {
        "unit": "days",
        "amount": 10
    },
    "purchaseEnd": {
        "unit": "months",
        "amount": 2
    },
    "id": "0.0.0.1+-purchased_product+190602",
    "href": "https://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+219251",
    "status": "active",
    "billingAccount": {
        "id": "0.0.0.1+-account+211178",
        "name": "child-billunit ",
        "@type": "BillingAccountRef"
    },
    "realizingService": [
        {
            "id": "0.0.0.1+-service-ip+220083",
            "@type": "ServiceRef"
        }
    ],
    "usageEnd": {
        "unit": "months",
        "amount": 2
    },
    "isBundle": true,
    "name": "Voice Over IP12",
    "description": "Test description",
    "productOffering": {
        "id": "0.0.0.1+-product+47039",
        "name": "Product 1a - Internet Access",
        "@type": "ProductOfferingRef"
    },
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/ip",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServicePassword",
            "valueType": "string",
            "value": "Cgbu1234#",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServiceLogin",
            "valueType": "string",
            "value": "OotbNewServiceLoginIpCPUDates_0001",
            "@type": "StringCharacteristic"
        }
    ],
    "usageStart": {
        "unit": "days",
        "amount": 10
    },
    "cycleEnd": {
        "unit": "months",
        "amount": 2
    },
    "quantity": 2
}

Example 14: Updating an ERA Special Rating Profile (Custom Payload)

Note:

Key 'externalIdMappingEnabled' should be set to 'true' to use external Ids in custom payload

This example shows how to update an existing ERA special rating profile using a custom payload by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/ERA_PROD_DBE_p040_notification' -H 'Content-Type: application/json' -d @sampleRequest14.json

Request Body

The following example shows the contents of the sampleRequest14.json file sent as the request body.

{
    "@type": "Product",
    "specialRatingProfile": {
        "@type": "SpecialRatingProfile",
        "name": "FRIENDS_FAMILY",
        "label": "DBE priority contacts",
        "status": "active",
        "referenceCount": 1,
        "data": [
            {
                "name": "dummy",
                "value": "120842301897231",
                "validFor": {
                    "startDateTime": "2026-04-02T18:23:39Z",
                    "endDateTime": "2026-07-27T12:10:19Z"
                }
            }
        ]
    }
}

Response Body

The following example shows the response body.

{
    "isBundle": false,
    "productOffering": {
        "id": ""
    },
    "@type": "Product",
    "specialRatingProfile": {
        "id": "ExistingSpecialRatingProfile",
        "@type": "SpecialRatingProfile",
        "name": "FRIENDS_FAMILY",
        "label": "DBE priority contacts",
        "status": "active",
        "referenceCount": 1,
        "data": [
            {
                "name": "dummy",
                "value": "120842301897231",
                "validFor": {
                    "startDateTime": "2026-04-02T18:23:39Z",
                    "endDateTime": "2026-07-27T12:10:19Z"
                }
            }
        ]
    },
    "productCharacteristic": [
        {
            "@type": "StringCharacteristic",
            "valueType": "string",
            "name": "ServiceId",
            "id": "ERA_PROD_DBE_p0040notifications_eraNoBundleService",
            "value": "cuke4brm_productChar_array_test_40notification_eraNoBundleService"
        },
        {
            "id": "PC_BundledChild_TeenTelephony_044_1fdfasfs",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/telco/gsm/telephony",
            "@type": "StringCharacteristic"
        }
    ],
    "name": "Voice Over IP",
    "description": "DBE Product Specification instance",
    "id": "ERA_PROD_DBE_p040_notification",
    "billingAccount": {
        "id": "cuke4brm-rsm-customer-actno-new70"
    },
    "realizingService": [
        {
            "id": "one_product_characteristic2_notification"
        }
    ],
    "status": "active"
}

Example 15: Replacing a Value in an ERA Special Rating Profile (Custom Payload; JSON Patch)

Note:

To generate JSON PATCH payloads, set the content type to application/json-patch+json or application/json-patch-query+json.

Note:

Key 'externalIdMappingEnabled' should be set to 'true' to use external Ids in custom payload

This example shows how to replace a value in an ERA special rating profile using a custom JSON Patch payload by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/SRP_JSON_DBE_REPLACE_001' -H 'Content-Type: application/json-patch-query+json' -d @sampleRequest15.json

Request Body

The following example shows the contents of the sampleRequest15.json file sent as the request body.

[
    {
        "op": "replace",
        "path": "$.specialRatingProfile.data[?(@.name=='dummy3' && @.value=='120842301897233')]",
        "value": {
            "name": "dummy1",
            "value": "120842301897237"
        }
    }
]

Response Body

The following example shows the response body.

{
    "@type": "Product",
    "terminationDate": "2020-01-01T08:00:00.00Z",
    "purchaseEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "id": "SRP_JSON_DBE_REPLACE_001",
    "href": "http://host:port/brm/productInventory/v5/product/SRP_JSON_DBE_REPLACE_001",
    "status": "active",
    "billingAccount": {
        "id": "billing-account-srp-001",
        "name": "John ",
        "@type": "BillingAccount"
    },
    "realizingService": [
        {
            "id": "service-srp-001",
            "@type": "RealizingService"
        }
    ],
    "usageEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "specialRatingProfile": {
        "id": "SRP_DBE_001",
        "@type": "SpecialRatingProfile",
        "name": "FRIENDS_FAMILY",
        "label": "DBE priority contacts",
        "status": "active",
        "referenceCount": 1,
        "data": [
            {
                "name": "dummy",
                "value": "120842301897231",
                "validFor": {
                    "startDateTime": "2026-04-02T18:23:39Z"
                }
            },
            {
                "name": "dummy1",
                "value": "120842301897237",
                "validFor": {
                    "startDateTime": "2026-04-02T18:23:39Z"
                }
            }
        ]
    },
    "isBundle": false,
    "name": "Voice Over IP12",
    "description": "Test description",
    "productOffering": {
        "id": "Discount-Product",
        "name": "Discount-Product",
        "@type": "ProductOffering"
    },
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/telco/gsm/telephony",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "MSISDN",
            "valueType": "string",
            "value": "ERA_PATCHABLE",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "IMEI",
            "valueType": "string",
            "value": "ERA_PATCHABLE2",
            "@type": "StringCharacteristic"
        }
    ],
    "cycleEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "startDate": "2018-01-03T08:00:00.00Z"
}

Example 16: Updating A Product Attribute

This example shows how to update a product attribute by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+192048' -H 'Content-Type: application/json' -d @sampleRequest16.json

Request Body

The following example shows the contents of the sampleRequest16.json file sent as the request body.

{
    "@type": "Product",
    "description": "Patched Test description"
}

Response Body

The following example shows the response body.

{
    "@type": "Product",
    "terminationDate": "2020-01-01T08:00:00.00Z",
    "purchaseEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "id": "0.0.0.1+-purchased_product+192048",
    "href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+192048",
    "status": "active",
    "billingAccount": {
        "id": "0.0.0.1+-account+187327",
        "name": "John ",
        "@type": "BillingAccount"
    },
    "realizingService": [
        {
            "id": "0.0.0.1+-service-ip+191536",
            "@type": "RealizingService"
        }
    ],
    "usageEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "isBundle": false,
    "name": "Voice Over IP12",
    "description": "Patched Test description",
    "productOffering": {
        "id": "0.0.0.1+-product+41250",
        "name": "Product 1a - Internet Access",
        "@type": "ProductOffering"
    },
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/ip",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServicePassword",
            "valueType": "string",
            "value": "Cgbu1234#",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServiceLogin",
            "valueType": "string",
            "value": "OotbServiceLoginIp_0001",
            "@type": "StringCharacteristic"
        }
    ],
    "cycleEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "startDate": "2018-01-01T08:00:00.00Z"
}

Example 17: Adding a Hierarchy After Creating A Product

This example shows how to set the isBundle attribute after creating a product by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+192048' -H 'Content-Type: application/json' -d @sampleRequest17.json

Request Body

The following example shows the contents of the sampleRequest17.json file sent as the request body.

{
    "@type": "Product",
    "isBundle": true
}

Response Body

The following example shows the response body.

{
    "@type": "Product",
    "terminationDate": "2020-01-01T08:00:00.00Z",
    "purchaseEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "id": "0.0.0.1+-purchased_product+192048",
    "href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+192048",
    "status": "active",
    "billingAccount": {
        "id": "0.0.0.1+-account+187327",
        "name": "John ",
        "@type": "BillingAccount"
    },
    "realizingService": [
        {
            "id": "0.0.0.1+-service-ip+191536",
            "@type": "RealizingService"
        }
    ],
    "usageEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "isBundle": true,
    "name": "Voice Over IP12",
    "description": "Patched Test description",
    "productOffering": {
        "id": "0.0.0.1+-product+41250",
        "name": "Product 1a - Internet Access",
        "@type": "ProductOffering"
    },
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/ip",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServicePassword",
            "valueType": "string",
            "value": "Cgbu1234#",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServiceLogin",
            "valueType": "string",
            "value": "OotbServiceLoginIp_0001",
            "@type": "StringCharacteristic"
        }
    ],
    "cycleEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "startDate": "2018-01-01T08:00:00.00Z"
}

Example 18: Updating The Product Status

This example shows how to update the product status to cancelled by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+192048' -H 'Content-Type: application/json' -d @sampleRequest18.json

Request Body

The following example shows the contents of the sampleRequest18.json file sent as the request body.

{
    "@type": "Product",
    "status": "cancelled"
}

Response Body

The following example shows the response body.

{
    "@type": "Product",
    "terminationDate": "2018-01-01T08:00:00.00Z",
    "purchaseEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "id": "0.0.0.1+-purchased_product+192048",
    "href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+192048",
    "status": "cancelled",
    "billingAccount": {
        "id": "0.0.0.1+-account+187327",
        "name": "John ",
        "@type": "BillingAccount"
    },
    "realizingService": [
        {
            "id": "0.0.0.1+-service-ip+191536",
            "@type": "RealizingService"
        }
    ],
    "usageEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "isBundle": false,
    "name": "Voice Over IP12",
    "description": "Patched Test description",
    "productOffering": {
        "id": "0.0.0.1+-product+41250",
        "name": "Product 1a - Internet Access",
        "@type": "ProductOffering"
    },
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/ip",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServicePassword",
            "valueType": "string",
            "value": "Cgbu1234#",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServiceLogin",
            "valueType": "string",
            "value": "OotbServiceLoginIp_0001",
            "@type": "StringCharacteristic"
        }
    ],
    "cycleEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "startDate": "2018-01-01T08:00:00.00Z"
}

Example 19: Update A Product Price

This example shows how to update a product price using a discount percentage override by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+194414' -H 'Content-Type: application/json' -d @sampleRequest19.json

Request Body

The following example shows the contents of the sampleRequest19.json file sent as the request body.

{
    "@type": "Product",
    "productPrice": [
        {
            "@type": "ProductPrice",
            "priceType": "recurring",
            "priceAlteration": [
                {
                    "@type": "PriceAlteration",
                    "priceType": "DiscountPercentageOverride",
                    "price": {
                        "percentage": 32.0
                    }
                }
            ]
        }
    ]
}

Response Body

The following example shows the response body.

{
    "@type": "Product",
    "terminationDate": "2020-01-01T08:00:00.00Z",
    "purchaseEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "id": "0.0.0.1+-purchased_product+194414",
    "href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+194414",
    "status": "active",
    "billingAccount": {
        "id": "0.0.0.1+-account+187327",
        "name": "John ",
        "@type": "BillingAccount"
    },
    "realizingService": [
        {
            "id": "0.0.0.1+-service-telco-gsm-telephony+193902",
            "@type": "RealizingService"
        }
    ],
    "usageEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "isBundle": false,
    "name": "Voice Over IP12",
    "description": "Test description",
    "productOffering": {
        "id": "0.0.0.1+-product+173523",
        "name": "Teen Telephony C4B0",
        "@type": "ProductOffering"
    },
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/telco/gsm/telephony",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "MSISDN",
            "valueType": "string",
            "value": "OotbNewServiceAliasMSISDNDiscountPercentageOverride_0001",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "IMEI",
            "valueType": "string",
            "value": "OotbNewServiceAliasIMEIDiscountPercentageOverride_0001",
            "@type": "StringCharacteristic"
        }
    ],
    "cycleEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "startDate": "2018-01-03T08:00:00.00Z",
    "productPrice": [
        {
            "@type": "ProductPrice",
            "priceType": "recurring",
            "priceAlteration": [
                {
                    "@type": "PriceAlteration",
                    "priceType": "DiscountPercentageOverride",
                    "price": {
                        "percentage": "32.0"
                    }
                }
            ]
        }
    ]
}

Example 20: Updating A Flattened Service Alias

This example shows how to update flattened service aliases in product characteristics by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+189002' -H 'Content-Type: application/json' -d @sampleRequest20.json

Request Body

The following example shows the contents of the sampleRequest20.json file sent as the request body.

{
    "@type": "Product",
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/telco/gsm/telephony",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "MSISDN",
            "valueType": "string",
            "value": "ServiceAliasMSISDN_0001patch",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "IMEI",
            "valueType": "string",
            "value": "ServiceAliasIMEI_0001patch",
            "@type": "StringCharacteristic"
        }
    ]
}

Response Body

The following example shows the response body.

{
    "@type": "Product",
    "terminationDate": "2020-01-01T08:00:00.00Z",
    "purchaseEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "id": "0.0.0.1+-purchased_product+189002",
    "href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+189002",
    "status": "active",
    "billingAccount": {
        "id": "0.0.0.1+-account+187327",
        "name": "John ",
        "@type": "BillingAccount"
    },
    "realizingService": [
        {
            "id": "0.0.0.1+-service-telco-gsm-telephony+188490",
            "@type": "RealizingService"
        }
    ],
    "usageEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "isBundle": false,
    "name": "Voice Over IP12",
    "description": "Test description",
    "productOffering": {
        "id": "0.0.0.1+-product+173523",
        "name": "Teen Telephony C4B0",
        "@type": "ProductOffering"
    },
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/telco/gsm/telephony",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "MSISDN",
            "valueType": "string",
            "value": "ServiceAliasMSISDN_0001patch",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "IMEI",
            "valueType": "string",
            "value": "ServiceAliasIMEI_0001patch",
            "@type": "StringCharacteristic"
        }
    ],
    "cycleEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "startDate": "2018-01-01T08:00:00.00Z"
}

Example 21: Updating A Product Relationship

This example shows how to update a product relationship to bundle an existing purchased product by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+178275' -H 'Content-Type: application/json' -d @sampleRequest21.json

Request Body

The following example shows the contents of the sampleRequest21.json file sent as the request body.

{
    "@type": "Product",
    "productRelationship": {
        "id": "0.0.0.1+-purchased_product+179696",
        "relationshipType": "bundles"
    }
}

Response Body

The following example shows the response body.

{
    "isBundle": true,
    "name": "Voice Over IP12",
    "@type": "Product",
    "description": "Test description",
    "terminationDate": "2020-01-01T08:00:00.00Z",
    "productOffering": {
        "id": "0.0.0.1+-product+175112",
        "@type": "ProductOffering"
    },
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/telco/gsm/telephony",
            "@type": "StringCharacteristic"
        },
        {
            "name": "MSISDN",
            "valueType": "string",
            "value": "OotbBaseServiceAliasMSISDNBundles_0001",
            "@type": "StringCharacteristic",
            "id": ""
        },
        {
            "name": "IMEI",
            "valueType": "string",
            "value": "OotbBaseServiceAliasIMEIBundles_0001",
            "@type": "StringCharacteristic",
            "id": ""
        }
    ],
    "gracePeriod": {
        "unit": "absolute",
        "amount": 0
    },
    "purchaseEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "cycleEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "id": "0.0.0.1+-purchased_product+178275",
    "href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+178275",
    "status": "active",
    "quantity": 1,
    "billingAccount": {
        "id": "0.0.0.1+-account+170441",
        "@type": "BillingAccount",
        "name": "Junior Walter"
    },
    "realizingService": [
        {
            "id": "0.0.0.1+-service-telco-gsm-telephony+179107",
            "@type": "RealizingService"
        }
    ],
    "startDate": "2018-01-01T08:00:00.00Z",
    "usageEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "productRelationship": {
        "id": "0.0.0.1+-purchased_product+179696",
        "relationshipType": "bundles"
    },
    "product": [
        {
            "isBundle": false,
            "name": "Voice Over IP12",
            "@type": "Product",
            "description": "Test description",
            "terminationDate": "2020-01-01T08:00:00.00Z",
            "productOffering": {
                "id": "0.0.0.1+-product+41250",
                "@type": "ProductOffering"
            },
            "productCharacteristic": [
                {
                    "id": "",
                    "name": "ServiceType",
                    "valueType": "string",
                    "value": "/service/ip",
                    "@type": "StringCharacteristic"
                },
                {
                    "id": "",
                    "name": "ServicePassword",
                    "valueType": "string",
                    "value": "Cgbu1234#",
                    "@type": "StringCharacteristic"
                },
                {
                    "id": "",
                    "name": "ServiceLogin",
                    "valueType": "string",
                    "value": "OotbNewServiceLoginIpBillInfo_0001",
                    "@type": "StringCharacteristic"
                },
                {
                    "id": "",
                    "name": "BillStructure",
                    "valueType": "string",
                    "value": "0.0.0.1 /billinfo 169417",
                    "@type": "StringCharacteristic"
                }
            ],
            "gracePeriod": {
                "unit": "absolute",
                "amount": 0
            },
            "purchaseEnd": {
                "unit": "absolute",
                "amount": 0
            },
            "cycleEnd": {
                "unit": "absolute",
                "amount": 0
            },
            "id": "0.0.0.1+-purchased_product+179696",
            "href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+179696",
            "status": "active",
            "quantity": 1,
            "billingAccount": {
                "id": "0.0.0.1+-account+170441",
                "@type": "BillingAccount",
                "name": "Junior Walter"
            },
            "realizingService": [
                {
                    "id": "0.0.0.1+-service-ip+179952",
                    "@type": "RealizingService"
                }
            ],
            "startDate": "2018-01-03T08:00:00.00Z",
            "usageEnd": {
                "unit": "absolute",
                "amount": 0
            },
            "productRelationship": {
                "id": "0.0.0.1+-purchased_product+178275",
                "relationshipType": "bundledBy"
            }
        }
    ]
}

Example 22: Adding a New ProductPrice Array (JSON Patch)

Note:

To generate JSON PATCH payloads, set the content type to application/json-patch+json or application/json-patch-query+json.

This example shows how to add a productPrice array using JSON Patch by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+196190' -H 'Content-Type: application/json-patch-query+json' -d @sampleRequest22.json

Request Body

The following example shows the contents of the sampleRequest22.json file sent as the request body.

[
    {
        "op": "add",
        "path": "$.productPrice",
        "value": {
            "@type": "ProductPrice",
            "priceType": "recurring",
            "priceAlteration": [
                {
                    "@type": "PriceAlteration",
                    "priceType": "AmountOverride",
                    "price": {
                        "dutyFreeAmount": {
                            "unit": "USD",
                            "value": 15.99
                        },
                        "@type": "Price"
                    }
                }
            ]
        }
    }
]

Response Body

The following example shows the response body.

{
    "@type": "Product",
    "terminationDate": "2020-01-01T08:00:00.00Z",
    "purchaseEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "id": "0.0.0.1+-purchased_product+196190",
    "href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+196190",
    "status": "active",
    "billingAccount": {
        "id": "0.0.0.1+-account+187327",
        "name": "John ",
        "@type": "BillingAccount"
    },
    "realizingService": [
        {
            "id": "0.0.0.1+-service-ip+195678",
            "@type": "RealizingService"
        }
    ],
    "usageEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "isBundle": false,
    "name": "Voice Over IP12",
    "description": "Test description",
    "productOffering": {
        "id": "0.0.0.1+-product+41250",
        "name": "Product 1a - Internet Access",
        "@type": "ProductOffering"
    },
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/ip",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServicePassword",
            "valueType": "string",
            "value": "Cgbu1234#",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServiceLogin",
            "valueType": "string",
            "value": "OotbServiceLoginIp_0004",
            "@type": "StringCharacteristic"
        }
    ],
    "cycleEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "startDate": "2018-01-01T08:00:00.00Z",
    "productPrice": [
        {
            "@type": "ProductPrice",
            "priceType": "recurring",
            "priceAlteration": [
                {
                    "@type": "PriceAlteration",
                    "priceType": "AmountOverride",
                    "price": {
                        "dutyFreeAmount": {
                            "unit": "USD",
                            "value": "15.99"
                        },
                        "@type": "Price"
                    }
                }
            ]
        }
    ]
}

Example 23: Replacing a Product Price Array with A Specific priceType (JSON Patch)

Note:

To generate JSON PATCH payloads, set the content type to application/json-patch+json or application/json-patch-query+json.

This example shows how to replace product prices with a specific priceType using JSON Patch by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+196190' -H 'Content-Type: application/json-patch-query+json' -d @sampleRequest23.json

Request Body

The following example shows the contents of the sampleRequest23.json file sent as the request body.

[
    {
        "op": "replace",
        "path": "$.productPrice[?(@.priceType=='recurring')]",
        "value": {
            "@type": "ProductPrice",
            "priceType": "recurring",
            "priceAlteration": [
                {
                    "@type": "PriceAlteration",
                    "priceType": "AmountOverride",
                    "price": {
                        "dutyFreeAmount": {
                            "unit": "USD",
                            "value": "15.99"
                        },
                        "@type": "Price"
                    }
                },
                {
                    "@type": "PriceAlteration",
                    "priceType": "DiscountPercentageOverride",
                    "price": {
                        "percentage": 60.0,
                        "@type": "Price"
                    }
                }
            ]
        }
    }
]

Response Body

The following example shows the response body.

{
    "@type": "Product",
    "terminationDate": "2020-01-01T08:00:00.00Z",
    "purchaseEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "id": "0.0.0.1+-purchased_product+196190",
    "href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+196190",
    "status": "active",
    "billingAccount": {
        "id": "0.0.0.1+-account+187327",
        "name": "John ",
        "@type": "BillingAccount"
    },
    "realizingService": [
        {
            "id": "0.0.0.1+-service-ip+195678",
            "@type": "RealizingService"
        }
    ],
    "usageEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "isBundle": false,
    "name": "Voice Over IP12",
    "description": "Test description",
    "productOffering": {
        "id": "0.0.0.1+-product+41250",
        "name": "Product 1a - Internet Access",
        "@type": "ProductOffering"
    },
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/ip",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServicePassword",
            "valueType": "string",
            "value": "Cgbu1234#",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServiceLogin",
            "valueType": "string",
            "value": "OotbServiceLoginIp_0004",
            "@type": "StringCharacteristic"
        }
    ],
    "cycleEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "startDate": "2018-01-01T08:00:00.00Z",
    "productPrice": [
        {
            "@type": "ProductPrice",
            "priceType": "oneTime",
            "priceAlteration": [
                {
                    "@type": "PriceAlteration",
                    "priceType": "AmountOverride",
                    "price": {
                        "dutyFreeAmount": {
                            "unit": "USD",
                            "value": "15.99"
                        },
                        "@type": "Price"
                    }
                }
            ]
        },
        {
            "@type": "ProductPrice",
            "priceType": "recurring",
            "priceAlteration": [
                {
                    "@type": "PriceAlteration",
                    "priceType": "AmountOverride",
                    "price": {
                        "dutyFreeAmount": {
                            "unit": "USD",
                            "value": "15.99"
                        },
                        "@type": "Price"
                    }
                },
                {
                    "@type": "PriceAlteration",
                    "priceType": "DiscountPercentageOverride",
                    "price": {
                        "percentage": "60.0"
                    }
                }
            ]
        }
    ]
}

Example 24: Removing a Product Price Array with a Specific priceType (JSON Patch)

Note:

To generate JSON PATCH payloads, set the content type to application/json-patch+json or application/json-patch-query+json.

This example shows how to remove product prices with a specific priceType using JSON Patch by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+196190' -H 'Content-Type: application/json-patch-query+json' -d @sampleRequest24.json

Request Body

The following example shows the contents of the sampleRequest24.json file sent as the request body.

[
    {
        "op": "remove",
        "path": "$.productPrice[?(@.priceType=='oneTime')]"
    }
]

Response Body

The following example shows the response body.

{
    "@type": "Product",
    "terminationDate": "2020-01-01T08:00:00.00Z",
    "purchaseEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "id": "0.0.0.1+-purchased_product+196190",
    "href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+196190",
    "status": "active",
    "billingAccount": {
        "id": "0.0.0.1+-account+187327",
        "name": "John ",
        "@type": "BillingAccount"
    },
    "realizingService": [
        {
            "id": "0.0.0.1+-service-ip+195678",
            "@type": "RealizingService"
        }
    ],
    "usageEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "isBundle": false,
    "name": "Voice Over IP12",
    "description": "Test description",
    "productOffering": {
        "id": "0.0.0.1+-product+41250",
        "name": "Product 1a - Internet Access",
        "@type": "ProductOffering"
    },
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/ip",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServicePassword",
            "valueType": "string",
            "value": "Cgbu1234#",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServiceLogin",
            "valueType": "string",
            "value": "OotbServiceLoginIp_0004",
            "@type": "StringCharacteristic"
        }
    ],
    "cycleEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "startDate": "2018-01-01T08:00:00.00Z",
    "productPrice": [
        {
            "@type": "ProductPrice",
            "priceType": "recurring",
            "priceAlteration": [
                {
                    "@type": "PriceAlteration",
                    "priceType": "AmountOverride",
                    "price": {
                        "dutyFreeAmount": {
                            "unit": "USD",
                            "value": "15.99"
                        },
                        "@type": "Price"
                    }
                },
                {
                    "@type": "PriceAlteration",
                    "priceType": "DiscountPercentageOverride",
                    "price": {
                        "percentage": "75.0"
                    }
                }
            ]
        }
    ]
}

Example 25: Adding a New Service Alias Name to a Product Characteristic (JSON Patch)

Note:

To generate JSON PATCH payloads, set the content type to application/json-patch+json or application/json-patch-query+json.

This example shows how to add a service alias name to a product characteristic using JSON Patch by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+191027' -H 'Content-Type: application/json-patch-query+json' -d @sampleRequest25.json

Request Body

The following example shows the contents of the sampleRequest25.json file sent as the request body.

[
    {
        "op": "add",
        "path": "$.productCharacteristic[?(@.id=='ootbServiceAliasId_0004' && @.valueType=='array')].value",
        "value": {
            "name": "jsonPatchServiceAlias_0004"
        }
    }
]

Response Body

The following example shows the response body.

{
    "@type": "Product",
    "terminationDate": "2020-01-01T08:00:00.00Z",
    "purchaseEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "id": "0.0.0.1+-purchased_product+191027",
    "href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+191027",
    "status": "created",
    "billingAccount": {
        "id": "0.0.0.1+-account+187327",
        "name": "John ",
        "@type": "BillingAccount"
    },
    "realizingService": [
        {
            "id": "0.0.0.1+-service-telco-gsm-telephony+190515",
            "@type": "RealizingService"
        }
    ],
    "usageEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "isBundle": false,
    "name": "Voice Over IP12",
    "description": "Test description",
    "productOffering": {
        "id": "0.0.0.1+-product+173523",
        "name": "Teen Telephony C4B0",
        "@type": "ProductOffering"
    },
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/telco/gsm/telephony",
            "@type": "StringCharacteristic"
        },
        {
            "id": "ootbServiceAliasId_0004",
            "name": "ServiceAlias",
            "valueType": "array",
            "value": [
                {
                    "name": "OotbNewServiceAliasMSISDNNF_0004"
                },
                {
                    "name": "OotbNewServiceAliasIMEINF_0004"
                },
                {
                    "name": "jsonPatchServiceAlias_0004"
                }
            ],
            "@type": "ArrayCharacteristic"
        }
    ],
    "cycleEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "startDate": "2018-01-01T08:00:00.00Z"
}

Example 26: Removing a Service Alias Name in a Product Characteristic (JSON Patch)

Note:

To generate JSON PATCH payloads, set the content type to application/json-patch+json or application/json-patch-query+json.

This example shows how to remove a service alias name from a product characteristic using JSON Patch by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+191027' -H 'Content-Type: application/json-patch-query+json' -d @sampleRequest26.json

Request Body

The following example shows the contents of the sampleRequest26.json file sent as the request body.

[
    {
        "op": "remove",
        "path": "$.productCharacteristic[?(@.name=='ServiceAlias' && @.id=='ootbServiceAliasId_0004' && @.valueType=='array')].value[?(@.name=='jsonPatchNewServiceAlias_0004')].name"
    }
]

Response Body

The following example shows the response body.

{
    "@type": "Product",
    "terminationDate": "2020-01-01T08:00:00.00Z",
    "purchaseEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "id": "0.0.0.1+-purchased_product+191027",
    "href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+191027",
    "status": "created",
    "billingAccount": {
        "id": "0.0.0.1+-account+187327",
        "name": "John ",
        "@type": "BillingAccount"
    },
    "realizingService": [
        {
            "id": "0.0.0.1+-service-telco-gsm-telephony+190515",
            "@type": "RealizingService"
        }
    ],
    "usageEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "isBundle": false,
    "name": "Voice Over IP12",
    "description": "Test description",
    "productOffering": {
        "id": "0.0.0.1+-product+173523",
        "name": "Teen Telephony C4B0",
        "@type": "ProductOffering"
    },
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/telco/gsm/telephony",
            "@type": "StringCharacteristic"
        },
        {
            "id": "ootbServiceAliasId_0004",
            "name": "ServiceAlias",
            "valueType": "array",
            "value": [
                {
                    "name": "OotbNewServiceAliasMSISDNNF_0004"
                },
                {
                    "name": "OotbNewServiceAliasIMEINF_0004"
                },
                {
                    "name": "jsonPatchServiceAlias_0004"
                }
            ],
            "@type": "ArrayCharacteristic"
        }
    ],
    "cycleEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "startDate": "2018-01-01T08:00:00.00Z"
}

Example 27: Adding a Tied Discount Relationship (JSON Patch)

Note:

To generate JSON PATCH payloads, set the content type to application/json-patch+json or application/json-patch-query+json.

This example shows how to add a tied discount relationship using JSON Patch by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+192371' -H 'Content-Type: application/json-patch-query+json' -d @sampleRequest27.json

Request Body

The following example shows the contents of the sampleRequest27.json file sent as the request body.

[
    {
        "op": "add",
        "path": "$.productRelationship",
        "value": {
            "id": "0.0.0.1+-purchased_discount+191322",
            "relationshipType": "tiedDiscount"
        }
    }
]

Response Body

The following example shows the response body.

{
    "@type": "Product",
    "terminationDate": "2020-01-01T08:00:00.00Z",
    "purchaseEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "id": "0.0.0.1+-purchased_product+192371",
    "href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+192371",
    "status": "active",
    "billingAccount": {
        "id": "0.0.0.1+-account+187327",
        "name": "John ",
        "@type": "BillingAccount"
    },
    "realizingService": [
        {
            "id": "0.0.0.1+-service-telco-gsm-telephony+191859",
            "@type": "RealizingService"
        }
    ],
    "usageEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "isBundle": true,
    "name": "Voice Over IP12",
    "description": "Test description",
    "productOffering": {
        "id": "0.0.0.1+-product+173523",
        "name": "Teen Telephony C4B0",
        "@type": "ProductOffering"
    },
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/telco/gsm/telephony",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "MSISDN",
            "valueType": "string",
            "value": "OotbBaseServiceAliasMSISDNTiedProductwithId_0007",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "IMEI",
            "valueType": "string",
            "value": "OotbBaseServiceAliasIMEITiedProductwithId_0007",
            "@type": "StringCharacteristic"
        }
    ],
    "cycleEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "startDate": "2018-01-03T08:00:00.00Z",
    "productRelationship": {
        "id": "0.0.0.1+-purchased_discount+191322",
        "relationshipType": "tiedDiscount"
    }
}

Example 28: Adding a Tied Product Relationship (JSON Patch)

Note:

To generate JSON PATCH payloads, set the content type to application/json-patch+json or application/json-patch-query+json.

This example shows how to add a tied product relationship using JSON Patch by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_discount+188816' -H 'Content-Type: application/json-patch-query+json' -d @sampleRequest28.json

Request Body

The following example shows the contents of the sampleRequest28.json file sent as the request body.

[
    {
        "op": "add",
        "path": "$.productRelationship",
        "value": {
            "id": "0.0.0.1+-purchased_product+189579",
            "relationshipType": "tiedProduct"
        }
    }
]

Response Body

The following example shows the response body.

{
    "@type": "Product",
    "terminationDate": "2020-01-01T08:00:00.00Z",
    "purchaseEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "id": "0.0.0.1+-purchased_discount+188816",
    "href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_discount+188816",
    "status": "active",
    "billingAccount": {
        "id": "0.0.0.1+-account+191389",
        "name": "John ",
        "@type": "BillingAccount"
    },
    "realizingService": [
        {
            "id": "0.0.0.1+-service-telco-gsm-telephony+189072",
            "@type": "RealizingService"
        }
    ],
    "usageEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "isBundle": false,
    "name": "Voice Over IP12",
    "description": "Test description",
    "productOffering": {
        "id": "0.0.0.1+-discount+168649",
        "name": "Discount-Product",
        "@type": "ProductOffering"
    },
    "productCharacteristic": [
        {
            "id": "",
            "name": "MSISDN",
            "valueType": "string",
            "value": "NewServiceAliasMSISDNForTiedDiscount_0003",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "IMEI",
            "valueType": "string",
            "value": "NewServiceAliasIMEIForTiedDiscount_0003",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/telco/gsm/telephony",
            "@type": "StringCharacteristic"
        }
    ],
    "cycleEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "startDate": "2018-01-03T08:00:00.00Z",
    "productRelationship": {
        "id": "0.0.0.1+-purchased_product+189579",
        "relationshipType": "tiedProduct"
    }
}

Example 29: Removing a Tied Product or Discount (JSON Patch)

Note:

To generate JSON PATCH payloads, set the content type to application/json-patch+json or application/json-patch-query+json.

This example shows how to remove a tied product or discount relationship using JSON Patch by submitting a PATCH request on the REST resource using cURL. For more information about cURL, see Use cURL.

The -d option specifies the sample request body file.

curl -X PATCH 'http://hostname:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+192371' -H 'Content-Type: application/json-patch-query+json' -d @sampleRequest29.json

Request Body

The following example shows the contents of the sampleRequest29.json file sent as the request body.

[
    {
        "op": "remove",
        "path": "$.productRelationship[?(@.id=='0.0.0.1+-purchased_discount+191016' && @.relationshipType=='tiedDiscount')]"
    }
]

Response Body

The following example shows the response body.

{
    "@type": "Product",
    "terminationDate": "2020-01-01T08:00:00.00Z",
    "purchaseEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "id": "0.0.0.1+-purchased_product+192371",
    "href": "http://host:port/brm/productInventory/v5/product/0.0.0.1+-purchased_product+192371",
    "status": "active",
    "billingAccount": {
        "id": "0.0.0.1+-account+187327",
        "name": "John ",
        "@type": "BillingAccount"
    },
    "realizingService": [
        {
            "id": "0.0.0.1+-service-telco-gsm-telephony+191859",
            "@type": "RealizingService"
        }
    ],
    "usageEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "isBundle": true,
    "name": "Voice Over IP12",
    "description": "Test description",
    "productOffering": {
        "id": "0.0.0.1+-product+173523",
        "name": "Teen Telephony C4B0",
        "@type": "ProductOffering"
    },
    "productCharacteristic": [
        {
            "id": "",
            "name": "ServiceType",
            "valueType": "string",
            "value": "/service/telco/gsm/telephony",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "MSISDN",
            "valueType": "string",
            "value": "OotbBaseServiceAliasMSISDNTiedProductwithId_0007",
            "@type": "StringCharacteristic"
        },
        {
            "id": "",
            "name": "IMEI",
            "valueType": "string",
            "value": "OotbBaseServiceAliasIMEITiedProductwithId_0007",
            "@type": "StringCharacteristic"
        }
    ],
    "cycleEnd": {
        "unit": "absolute",
        "amount": 0
    },
    "startDate": "2018-01-03T08:00:00.00Z"
}
Back to Top