Update a usage counter definition

This PUT operation updates the information for a specific usage counter definition by passing both planDefinitionId and usageCounterDefinitionId in the URL as well as a JSON payload to choosing what to update within the usage counter definition.

If successful, you receive an HTTP response code of 200 as well as a JSON response body showing the updated usage counter definition.

See HTTP response codes for other response codes.

PUT /pcc/spcm/planDefinitions/<planDefinitionId>/usageCounterDefinitions/<usageCounterDefinitionId> + JSON payload


HEADER INFO

tenant: <tenantName>

authorisation: HTTP Basic Auth

accept: application/hal+JSON

permissions: SPCM_PLAN_DEFINITION_CREATE_PERMISSION

URL parameters

There are two mandatory parameters.

Parameter Type Description

planDefinitionId

integer

A unique identifier for a plan definition which was assigned by the server upon creating the plan definition.

usageCounterDefinitionId

integer

A unique identifier for the usage counter.


JSON request payload

The following example is updating a usage counter (id of 33) with a new unitMeteringType setting (to VOLUME).

See Plan definition descriptions for all possible data types that you might want to update.
{
    "id": 33,
    "name": "fairUsageCounter",
    "timeUnit": "NONE",
    "unitMeteringType": "VOLUME",
    "usageScope": "PLAN",
    "absoluteResetTime": "00:00:00",
    "_links": {
        "self": {
        "href": "http://localhost:8080/spcm-rest-ws/pcc/spcm/planDefinitions/
        167/usageCounterDefinitions/715"
        },
        "pccProfiles": {
        "href": "http://localhost:8080/spcm-rest-ws/pcc/spcm/planDefinitions/
        167/usageCounterDefinitions/715/pccProfiles"
        }
    }
}

JSON response

The following response example confirms the update usage counter (id of 33) with a new unitMeteringType setting (to VOLUME).

See Plan definition descriptions for all possible data types that you might want to update.
{
    "id": 33,
    "name": "fairUsageCounter",
    "timeUnit": "NONE",
    "unitMeteringType": "VOLUME",
    "usageScope": "PLAN",
    "absoluteResetTime": "00:00:00",
    "_links": {
        "self": {
        "href": "http://localhost:8080/spcm-rest-ws/pcc/spcm/planDefinitions/
        167/usageCounterDefinitions/715"
        },
        "pccProfiles": {
        "href": "http://localhost:8080/spcm-rest-ws/pcc/spcm/planDefinitions/
        167/usageCounterDefinitions/715/pccProfiles"
        }
    }
}


Usage counter definition type descriptions

Field Type Description

id

integer

The unique identifier for the usage counter. This is assigned by the server upon creation.

mandatory

name

string

The name of the usage counter.

mandatory

timerUnit

string

The timer unit being measured such as DAY, WEEK, MONTH, or NONE.

mandatory

unitMeteringType

string

The type of usage being counted. This can be time (seconds), volume (bytes), or credit (lowest denomination of local currency, e.g, $1 = 100 units).

mandatory

usageScope

string

The scope of this particular usage rule.

options
  • PLAN = count all usage on this plan

  • PROFILE = count the usage of a pcc profile

mandatory

absoluteResetTime

string

Specifies a specific time at which the counter should be reset. Format = hh:mm:ss.

It defaults to NULL which indicates the counter resets relative to the plan lifecycle.

HTTP response codes

Code Description

201/204

success!

If you receive a 204 code, you will not see a JSON response.

207

Multistatus response

Check out HTTP statuses for more details.
This is not applicable to all operations.

400

malformed request

401

unauthorised; bad username or password

403

forbidden; user does not have appropriate privileges

404

usage counter definition not found

409

conflict with target resource

This often occurs if the item already exists, such as a plan, group, or name.
This is not applicable to all operations.

412

failed validation; this typically means that a property was not set or a value is out of range.

example
HTTP 412
{
  "errors" : [
        {
          "field" : "name",
          "description" : "name is mandatory"
        }
    ]
}

422

failed processing (after passing validation).

example
HTTP 422
{
    "message": "Subscriber max plan count exceeded",
    "errorCode": 1
}

500

internal error

example
HTTP/1.1 500
{
    "message": "Internal server error - [Failed to get session information]",
    "status": "error"
}

503

request rejected due to overload