ProductInventory

GraphViz

Schema

The considered APS type (download) extends the Resource APS type(s) and looks as follows:

{
  "name": "ProductInventory",
  "id": "http://ingrammicro.com/pa/flat-catalog/1.4",
  "apsVersion": "2.0",
  "implements": [
    "http://aps-standard.org/types/core/resource/1.0"
  ],
  "access": {
    "public": true
  },
  "properties": {
    "refreshStatsUUID": {
      "type": "string"
    }
  },
  "operations": {
    "getProductItems": {
      "path": "/flat-catalog/product-items",
      "verb": "GET",
      "response": {
        "type": "array",
        "items": {
          "type": "BssProductItem"
        }
      },
      "errorResponse": {
        "type": "object"
      },
      "access": {
        "public": false,
        "privilege": "http://www.odin.com/products/automation/billing#view-product-inventory"
      }
    },
    "getProducts": {
      "path": "/flat-catalog/products",
      "verb": "GET",
      "response": {
        "type": "array",
        "items": {
          "type": "ProductItem"
        }
      },
      "errorResponse": {
        "type": "object"
      },
      "access": {
        "public": false,
        "privilege": "http://www.odin.com/products/automation/billing#view-product-inventory"
      }
    },
    "getProductsInXlsx": {
      "path": "/flat-catalog/products-xlsx",
      "verb": "GET",
      "errorResponse": {
        "type": "object"
      },
      "access": {
        "public": false,
        "privilege": "http://www.odin.com/products/automation/billing#view-product-inventory"
      }
    },
    "getContext": {
      "path": "/flat-catalog/context",
      "verb": "GET",
      "response": {
        "type": "ProductInventoryContext"
      },
      "errorResponse": {
        "type": "object"
      },
      "access": {
        "public": false,
        "privilege": "http://www.odin.com/products/automation/billing#view-product-inventory"
      }
    },
    "createPriceList": {
      "path": "/flat-catalog/price-import-wizard/upload",
      "verb": "POST",
      "response": {
        "type": "PriceListState"
      },
      "errorResponse": {
        "type": "object"
      },
      "access": {
        "public": false,
        "privilege": "http://www.odin.com/products/automation/billing#manage-product-inventory"
      }
    },
    "parsePriceList": {
      "path": "/flat-catalog/price-import-wizard/{dataId}/parse",
      "verb": "POST",
      "response": {
        "type": "PriceListState"
      },
      "errorResponse": {
        "type": "object"
      },
      "access": {
        "public": false,
        "privilege": "http://www.odin.com/products/automation/billing#manage-product-inventory"
      },
      "parameters": {
        "dataId": {
          "kind": "path",
          "type": "integer"
        }
      }
    },
    "prepareProposals": {
      "path": "/flat-catalog/price-import-wizard/{dataId}/prepare-proposals",
      "verb": "POST",
      "response": {
        "type": "PriceListState"
      },
      "errorResponse": {
        "type": "object"
      },
      "access": {
        "public": false,
        "privilege": "http://www.odin.com/products/automation/billing#manage-product-inventory"
      },
      "parameters": {
        "dataId": {
          "kind": "path",
          "type": "integer"
        }
      }
    },
    "getProductDiffs": {
      "path": "/flat-catalog/price-import-wizard/{dataId}/product-diffs",
      "verb": "GET",
      "response": {
        "type": "array",
        "items": {
          "type": "ProductDiff"
        }
      },
      "errorResponse": {
        "type": "object"
      },
      "access": {
        "public": false,
        "privilege": "http://www.odin.com/products/automation/billing#view-product-inventory"
      },
      "parameters": {
        "dataId": {
          "kind": "path",
          "type": "integer"
        }
      }
    },
    "setPrices": {
      "path": "/flat-catalog/price-import-wizard/{dataId}/set-prices",
      "verb": "POST",
      "errorResponse": {
        "type": "object"
      },
      "access": {
        "public": false,
        "privilege": "http://www.odin.com/products/automation/billing#manage-product-inventory"
      },
      "parameters": {
        "dataId": {
          "kind": "path",
          "type": "integer"
        },
        "settings": {
          "kind": "body",
          "type": "PriceImportWizardSettings"
        }
      }
    },
    "updateStats": {
      "path": "/flat-catalog/update-stats",
      "verb": "PUT",
      "errorResponse": {
        "type": "object"
      },
      "access": {
        "referrer": false,
        "public": false
      }
    }
  },
  "structures": {
    "Currency": {
      "type": "object",
      "properties": {
        "value": {
          "type": "string"
        },
        "code": {
          "type": "string"
        }
      }
    },
    "BssProductItem": {
      "type": "object",
      "properties": {
        "product": {
          "type": "string"
        },
        "productItem": {
          "type": "string"
        },
        "resourceId": {
          "type": "integer"
        },
        "resourceUUID": {
          "type": "string"
        },
        "mpn": {
          "type": "string"
        },
        "billingPeriod": {
          "type": "integer"
        },
        "billingPeriodType": {
          "type": "integer",
          "enum": [
            "1",
            "2",
            "3"
          ],
          "enumTitles": [
            "Day",
            "Month",
            "Year"
          ]
        },
        "period": {
          "type": "integer"
        },
        "periodType": {
          "type": "integer",
          "enum": [
            "1",
            "2",
            "3"
          ],
          "enumTitles": [
            "Day",
            "Month",
            "Year"
          ]
        },
        "cost": {
          "type": "Currency"
        },
        "price": {
          "type": "Currency"
        },
        "margin": {
          "type": "number"
        },
        "msrpPrice": {
          "type": "Currency"
        },
        "feeType": {
          "type": "string",
          "enum": [
            "SETUP",
            "RECURRING",
            "OVERUSE"
          ]
        },
        "minimum": {
          "type": "number"
        },
        "maximum": {
          "type": "number"
        },
        "subscriptions": {
          "type": "integer"
        },
        "seats": {
          "type": "number"
        },
        "planUuids": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "dependsOn": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "ItemIdentifier": {
      "type": "object",
      "properties": {
        "resourceId": {
          "type": "integer"
        },
        "mpn": {
          "type": "string"
        },
        "billingPeriod": {
          "type": "Period"
        },
        "subscriptionPeriod": {
          "type": "Period"
        }
      }
    },
    "Period": {
      "type": "object",
      "properties": {
        "period": {
          "type": "integer"
        },
        "type": {
          "type": "string",
          "enum": [
            "DAY",
            "MONTH",
            "YEAR"
          ],
          "enumTitles": [
            "Day",
            "Month",
            "Year"
          ]
        }
      }
    },
    "Expense": {
      "type": "object",
      "properties": {
        "ranges": {
          "type": "array",
          "items": {
            "type": "PriceRange"
          }
        },
        "model": {
          "type": "string",
          "enum": [
            "FLAT",
            "TIERED",
            "VOLUME_SUBSCRIPTION",
            "VOLUME_ORDER"
          ]
        }
      }
    },
    "PriceRange": {
      "type": "object",
      "properties": {
        "level": {
          "type": "number"
        },
        "price": {
          "type": "Currency"
        }
      }
    },
    "ItemStats": {
      "type": "object",
      "properties": {
        "subscriptions": {
          "type": "integer"
        },
        "seats": {
          "type": "number"
        }
      }
    },
    "ItemTechInfo": {
      "type": "object",
      "properties": {
        "resourceUUID": {
          "type": "string"
        },
        "planUuids": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "ProductItem": {
      "type": "object",
      "properties": {
        "identifier": {
          "type": "ItemIdentifier"
        },
        "cost": {
          "type": "Expense"
        },
        "price": {
          "type": "Expense"
        },
        "msrp": {
          "type": "Expense"
        },
        "feeType": {
          "type": "string",
          "enum": [
            "SETUP",
            "RECURRING",
            "OVERUSE"
          ]
        },
        "effectiveDate": {
          "type": "string",
          "format": "date"
        },
        "application": {
          "type": "string"
        },
        "product": {
          "type": "string"
        },
        "margin": {
          "type": "number"
        },
        "resellerMargin": {
          "type": "number"
        },
        "minimum": {
          "type": "number"
        },
        "maximum": {
          "type": "number"
        },
        "stats": {
          "type": "ItemStats"
        },
        "dependsOn": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "technicalInfo": {
          "type": "ItemTechInfo"
        }
      }
    },
    "ProductInventoryContext": {
      "type": "object",
      "properties": {
        "provider": {
          "type": "boolean"
        },
        "costsSupported": {
          "type": "boolean"
        },
        "msrpSupported": {
          "type": "boolean"
        },
        "timezoneId": {
          "type": "string"
        }
      }
    },
    "PriceListState": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "required": true,
          "title": "Price list status",
          "enum": [
            "UPLOAD_FAILED",
            "PARSING_FAILED",
            "PARSED"
          ]
        },
        "errorMessage": {
          "type": "string"
        },
        "priceListStructure": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "pricingModel": {
          "type": "string"
        },
        "feeType": {
          "type": "string"
        },
        "dataId": {
          "type": "integer"
        }
      }
    },
    "ProductDiff": {
      "type": "object"
    },
    "PriceImportWizardSettings": {
      "type": "object",
      "properties": {
        "exportCosts": {
          "type": "boolean"
        },
        "exportPrices": {
          "type": "boolean"
        },
        "exportMSRP": {
          "type": "boolean"
        },
        "effectiveDate": {
          "type": "string",
          "format": "date"
        },
        "priceModel": {
          "type": "string",
          "enum": [
            "FLAT",
            "TIERED",
            "VOLUME_SUBSCRIPTION",
            "VOLUME_ORDER"
          ]
        },
        "feeType": {
          "type": "string",
          "enum": [
            "SETUP",
            "RECURRING",
            "OVERUSE"
          ]
        },
        "fileName": {
          "type": "string"
        }
      }
    }
  }
}

Properties

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

refreshStatsUUID

String

Not Required

Custom Operations

OPERATION

VERB

PATH

RETURNS

Description

getProductItems

GET

/flat-catalog/product-items

getProducts

GET

/flat-catalog/products

getProductsInXlsx

GET

/flat-catalog/products-xlsx

getContext

GET

/flat-catalog/context

createPriceList

POST

/flat-catalog/price-import-wizard/upload

parsePriceList

POST

/flat-catalog/price-import-wizard/{dataId}/parse

prepareProposals

POST

/flat-catalog/price-import-wizard/{dataId}/prepare-proposals

getProductDiffs

GET

/flat-catalog/price-import-wizard/{dataId}/product-diffs

setPrices

POST

/flat-catalog/price-import-wizard/{dataId}/set-prices

updateStats

PUT

/flat-catalog/update-stats

getProductItems

HTTP Request

GET /aps/2/resources/{aps-id}/flat-catalog/product-items

Description

Returns

getProducts

HTTP Request

GET /aps/2/resources/{aps-id}/flat-catalog/products

Description

Returns

getProductsInXlsx

HTTP Request

GET /aps/2/resources/{aps-id}/flat-catalog/products-xlsx

Description

Returns

getContext

HTTP Request

GET /aps/2/resources/{aps-id}/flat-catalog/context

Description

Returns

createPriceList

HTTP Request

POST /aps/2/resources/{aps-id}/flat-catalog/price-import-wizard/upload

Description

Returns

parsePriceList

HTTP Request

POST /aps/2/resources/{aps-id}/flat-catalog/price-import-wizard/{dataId}/parse

Description

Parameters

PARAMETER

TYPE

DESCRIPTION

dataId

Integer

Returns

prepareProposals

HTTP Request

POST /aps/2/resources/{aps-id}/flat-catalog/price-import-wizard/{dataId}/prepare-proposals

Description

Parameters

PARAMETER

TYPE

DESCRIPTION

dataId

Integer

Returns

getProductDiffs

HTTP Request

GET /aps/2/resources/{aps-id}/flat-catalog/price-import-wizard/{dataId}/product-diffs

Description

Parameters

PARAMETER

TYPE

DESCRIPTION

dataId

Integer

Returns

setPrices

HTTP Request

POST /aps/2/resources/{aps-id}/flat-catalog/price-import-wizard/{dataId}/set-prices

Description

Parameters

PARAMETER

TYPE

DESCRIPTION

dataId

Integer

settings

PriceImportWizardSettings

Returns

updateStats

HTTP Request

PUT /aps/2/resources/{aps-id}/flat-catalog/update-stats

Description

Returns

Structures

Currency

Basic currency structure.

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

value

String

Not Required

Amount.

code

String

Not Required

Currency Code

BssProductItem

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

product

String

Not Required

productItem

String

Not Required

resourceId

Integer

Not Required

resourceUUID

String

Not Required

mpn

String

Not Required

billingPeriod

Integer

Not Required

billingPeriodType

Integer

Not Required

period

Integer

Not Required

periodType

Integer

Not Required

cost

Currency

Not Required

price

Currency

Not Required

margin

Number

Not Required

msrpPrice

Currency

Not Required

feeType

Enum

Not Required

minimum

Number

Not Required

maximum

Number

Not Required

subscriptions

Integer

Not Required

seats

Number

Not Required

planUuids

Array of String

Not Required

dependsOn

Array of String

Not Required

ItemIdentifier

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

resourceId

Integer

Not Required

mpn

String

Not Required

billingPeriod

Period

Not Required

subscriptionPeriod

Period

Not Required

Period

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

period

Integer

Not Required

type

Enum

Not Required

Expense

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

ranges

Array of PriceRange

Not Required

model

Enum

Not Required

PriceRange

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

level

Number

Not Required

price

Currency

Not Required

ItemStats

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

subscriptions

Integer

Not Required

seats

Number

Not Required

ItemTechInfo

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

resourceUUID

String

Not Required

planUuids

Array of String

Not Required

ProductItem

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

identifier

ItemIdentifier

Not Required

cost

Expense

Not Required

price

Expense

Not Required

msrp

Expense

Not Required

feeType

Enum

Not Required

effectiveDate

String

Not Required

application

String

Not Required

product

String

Not Required

margin

Number

Not Required

resellerMargin

Number

Not Required

minimum

Number

Not Required

maximum

Number

Not Required

stats

ItemStats

Not Required

dependsOn

Array of String

Not Required

technicalInfo

ItemTechInfo

Not Required

ProductInventoryContext

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

provider

Boolean

Not Required

costsSupported

Boolean

Not Required

msrpSupported

Boolean

Not Required

timezoneId

String

Not Required

PriceListState

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

status

Enum

Required

errorMessage

String

Not Required

priceListStructure

Array of String

Not Required

pricingModel

String

Not Required

feeType

String

Not Required

dataId

Integer

Not Required

ProductDiff

PriceImportWizardSettings

NAME

TYPE

ATTRIBUTES

DEFAULT

DESCRIPTION

exportCosts

Boolean

Not Required

exportPrices

Boolean

Not Required

exportMSRP

Boolean

Not Required

effectiveDate

String

Not Required

priceModel

Enum

Not Required

feeType

Enum

Not Required

fileName

String

Not Required

Examples

Please find general description of create-read-update-delete (CRUD) operations with resources, properties, and structures respectively at:

Since the considered APS type contains custom operations, refer to Custom Operations for the general explanation of their structure and examples of operation calls.