{
  "manifestVersion": 1,
  "revision": 2,
  "name": "service-obligation",
  "description": "One service obligation per activated contract component the Order Activation Policy classified as service work. It starts pending_activation and becomes activated when the optional Service package records the coverage it belongs to. Activating one is an operational fact: no Contract, Contract Version, Subscription or Order is created or altered by it.",
  "fields": [
    {
      "name": "sourceKey",
      "type": "string",
      "unique": true,
      "writable": "managed"
    },
    {
      "name": "contractId",
      "type": "string",
      "index": true,
      "writable": "managed"
    },
    {
      "name": "contractLineId",
      "type": "string",
      "index": true,
      "writable": "managed"
    },
    {
      "name": "orderId",
      "type": "string",
      "index": true,
      "writable": "managed"
    },
    {
      "name": "orderComponentId",
      "type": "string",
      "index": true,
      "writable": "managed"
    },
    {
      "name": "status",
      "type": "enum",
      "values": [
        "pending_activation",
        "activated"
      ],
      "writable": "managed"
    },
    {
      "name": "label",
      "type": "string",
      "writable": "managed"
    },
    {
      "name": "componentKey",
      "type": "string",
      "writable": "managed"
    },
    {
      "name": "sku",
      "type": "string",
      "writable": "managed"
    },
    {
      "name": "chargeType",
      "type": "enum",
      "values": [
        "one_time",
        "recurring"
      ],
      "writable": "managed"
    },
    {
      "name": "interval",
      "type": "enum",
      "values": [
        "month",
        "year"
      ],
      "writable": "managed"
    },
    {
      "name": "intervalCount",
      "type": "integer",
      "writable": "managed"
    },
    {
      "name": "quantity",
      "type": "integer",
      "writable": "managed"
    },
    {
      "name": "netAmountCents",
      "type": "integer",
      "writable": "managed"
    },
    {
      "name": "currency",
      "type": "string",
      "writable": "managed"
    },
    {
      "name": "activationId",
      "type": "string",
      "writable": "managed"
    },
    {
      "name": "coverageRef",
      "type": "string",
      "writable": "managed"
    },
    {
      "name": "activatedAt",
      "type": "timestamp",
      "writable": "managed"
    }
  ]
}
