Examples

As stated in Configuration, you need to pass in your API key to the constructor for each resource class, or set the NEW_RELIC_API_KEY environment variable. The following examples assume the environment variable is set.

Applications & AlertPolicies Example

Scenario: Say we want to move our application, ‘Marketing Website’ from the default Alert Policy to a second Alert Policy, ‘Marketing Policy’.

First we need to get the ID for our application and the alert policy that we want to add it to:

from newrelic_api import AlertPolicies, Applications

website_app_id = Applications().list(
    filter_name='Marketing Website'
)['applications'][0]['id']

marketing_policy = AlertPolicies().list(
    filter_name='Marketing Policy',
    filter_type=['application'],
    filter_enabled=True
)['alert_policies'][0]

Next, we need to determine if our application is already in the alert_policy. Since each alert_policy dictionary in the the AlertPolicies .list() method response has an inner dictionary links with a key applications whose value is a list of application ids, we can simply check if the id for ‘Marketing Website’ is in the list.

app_in_policy = website_app_id in marketing_policy.get('links', {}).get('applications')

Finally, we need to construct a new policy and call .update() with the new policy for ‘Marketing Policy’.

if not app_in_policy:
    app_ids = marketing_policy['links']['applications']
    app_ids.append(website_app_id)

    new_alert_policy = marketing_policy.copy()
    new_alert_policy['links']['applications'] = app_ids

    AlertPolicies().update(
        id=new_alert_policy['id'],
        policy_update=new_alert_policy
    )