---
bonuses:
    list:
        path: bonuses
        optional: [ limit, skip, start_time, end_time, non_zero, top_level, giver_email, receiver_email, user_email, hashtag, include_children, '*' ]
    get:
        path: 'bonuses/:id'
        required: [ id ]
    give:
        method: POST
        path: bonuses
        required: [ reason ]
        optional: [ giver_email, parent_bonus_id, receiver_email, amount ]
users:
    list:
        path: users
        optional: [ limit, skip, email, sort, '*' ]
    get:
        path: 'users/:id'
        required: [ id ]
    me:
        path: users/me
    neighborhood:
        path: 'users/:id/neighborhood'
        required: [ id ]
        optional: [ days ]
    redemptions:
        path: 'users/:id/redemptions'
        required: [ id ]
        optional: [ limit, skip ]
    bonuses:
        path: 'users/:id/bonuses'
        required: [ id ]
        optional: [ skip, start_time, hashtag, end_time, include_children, '*', limit, role ]
    autocomplete:
        path: 'users/autocomplete'
        required: [ search ]
    create_redemption:
        method: POST
        path: 'users/:id/redemptions'
        required: [ id, denomination_id ]
    add:
        method: POST
        path: users
        required: [ email, first_name, last_name ]
        optional: [ '%custom_properties', user_mode, budget_boost, external_unique_id ]
    update:
        method: PUT
        path: 'users/:id'
        required: [ id ]
        optional: [ email, first_name, last_name, '%custom_properties', user_mode, budget_boost, external_unique_id ]
    delete:
        method: DELETE
        path: 'users/:id'
        required: [ id ]
values:
    list:
        path: values
    get:
        path: 'values/:id'
        required: [ id ]
companies:
    show:
        path: companies/show
    update:
        method: PUT
        path: companies/update
        optional: [ name, '%custom_properties' ]
leaderboards:
    standouts:
        path: analytics/standouts
        optional: [ role, value, limit, period, custom_property_name, custom_property_value ]
rewards:
    list:
        path: rewards
        optional: [ catalog_country, request_country, personalize_for ]
    get:
        path: 'rewards/:id'
        required: [ id ]
redemptions:
    get:
        path: 'redemptions/:id'
        required: [ id ]
authentication:
    sessions:
        method: POST
        path: sessions
        required: [ email, password ]
        token: 0