---
#check options
-
    name: check OPTIONS for billingfees
    type: item
    method: OPTIONS
    path: /api/billingfees/
    conditions:
        is:
            code: 200
            header:
                Accept-Post: application/hal+json; profile=http://purl.org/sipwise/ngcp-api/#rel-billingfees
        ok:
            options:
                - GET
                - HEAD
                - OPTIONS
                - POST

#create billingfees
-
    name: create billingfees
    type: item
    method: POST
    path: '/api/billingfees/'
    header:
        Content-Type: application/json
    content:
        billing_profile_id: 1
        billing_zone_id: 1
        destination: '^1234'
        direction: out
        onpeak_init_rate: 1
        onpeak_init_interval: 60
        onpeak_follow_rate: 1
        onpeak_follow_interval: 30
        offpeak_init_rate: 0.5
        offpeak_init_interval: 60
        offpeak_follow_rate: 0.5
        offpeak_follow_interval: 30
        onpeak_extra_rate: 1
        onpeak_extra_second: 30
        offpeak_extra_rate: 0.5
        offpeak_extra_second: 60
    retain:
        billingfees_path1: header.location
    conditions:
        is:
            code: 201

#create billingfees
-
    name: create billingfees
    type: item
    method: POST
    path: '/api/billingfees/'
    header:
        Content-Type: application/json
    content:
        billing_profile_id: 1
        billing_zone_id: 1
        destination: '^4567'
        direction: out
        onpeak_init_rate: 1
        onpeak_init_interval: 60
        onpeak_follow_rate: 1
        onpeak_follow_interval: 30
        offpeak_init_rate: 0.5
        offpeak_init_interval: 60
        offpeak_follow_rate: 0.5
        offpeak_follow_interval: 30
        onpeak_extra_rate: 1
        onpeak_extra_second: 30
        offpeak_extra_rate: 0.5
        offpeak_extra_second: 60
    retain:
        billingfees_path2: header.location
    conditions:
        is:
            code: 201

#create billingfees
-
    name: create billingfees
    type: item
    method: POST
    path: '/api/billingfees/'
    header:
        Content-Type: application/json
    content:
        billing_profile_id: 1
        billing_zone_id: 1
        destination: '^8901'
        direction: out
        onpeak_init_rate: 1
        onpeak_init_interval: 60
        onpeak_follow_rate: 1
        onpeak_follow_interval: 30
        offpeak_init_rate: 0.5
        offpeak_init_interval: 60
        offpeak_follow_rate: 0.5
        offpeak_follow_interval: 30
        onpeak_extra_rate: 1
        onpeak_extra_second: 30
        offpeak_extra_rate: 0.5
        offpeak_extra_second: 60
    retain:
        billingfees_path3: header.location
    conditions:
        is:
            code: 201

#verify pagination
-
    name: verify pagination
    type: pagination
    method: GET
    path: '/api/billingfees/?page=1&rows=2'
    retain:
        collection: body
    conditions:
        is:
            code: 200

#get billingfees
-
    name: GET billingfees
    type: item
    method: GET
    path: '/${billingfees_path3}'
    retain:
        billingfees: body
    perl_code: !!perl/code |
        {
            my ($retained) = @_;
            delete $retained->{billingfees}->{_links};
            delete $retained->{billingfees}->{_embedded};
        }
    conditions:
        is:
            code: 200

#put billingfees
-
    name: PUT billingfees
    type: item
    method: PUT
    path: '/${billingfees_path3}'
    header:
        Content-Type: application/json
        Prefer: return=representation
    content: '${billingfees}'
    conditions:
        is:
            code: 200

#get billingfees
-
    name: GET billingfees
    type: item
    method: GET
    path: '/${billingfees_path3}'
    retain:
        new_billingfees: body
    perl_code: !!perl/code |
        {
            my ($retained) = @_;
            delete $retained->{new_billingfees}->{_links};
            delete $retained->{new_billingfees}->{_embedded};
        }
    conditions:
        is:
            code: 200
        is_deeply:
            '${billingfees}': ${new_billingfees}

#DELETE billingfees
-
    name: DELETE billingfees
    type: item
    method: DELETE
    path: '/${billingfees_path1}'
    conditions:
        is:
            code: 204

#DELETE billingfees
-
    name: DELETE billingfees
    type: item
    method: DELETE
    path: '/${billingfees_path2}'
    conditions:
        is:
            code: 204

#DELETE billingfees
-
    name: DELETE billingfees
    type: item
    method: DELETE
    path: '/${billingfees_path3}'
    conditions:
        is:
            code: 204