All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.opsmatters.newrelic.api.services.NrqlAlertConditionService Maven / Gradle / Ivy

Go to download

Java client library for the New Relic REST APIs built using Jersey and Gson. The library includes over 110 operations across all of the available 35 New Relic services. It can be used by applications to automate the configuration of New Relic Monitoring, Alerting and Dashboards, but can also be used for extracting incident and metric data, executing Insights queries, and uploading plugin metrics.

There is a newer version: 1.0.12
Show newest version
/*
 * Copyright 2018 Gerald Curley
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.opsmatters.newrelic.api.services;

import java.util.List;
import java.util.ArrayList;
import java.util.Collection;
import com.google.common.base.Optional;
import com.opsmatters.newrelic.api.NewRelicClient;
import com.opsmatters.newrelic.api.model.alerts.conditions.NrqlAlertCondition;
import com.opsmatters.newrelic.api.util.QueryParameterList;

/**
 * The set of operations used for NRQL alert conditions.
 * 
 * @author Gerald Curley (opsmatters)
 */
public class NrqlAlertConditionService extends BaseFluent
{
    /**
     * Constructor that takes a http context and API client.
     * @param httpContext The set of HTTP operations
     * @param client The client used to invoke the New Relic operations
     */
    public NrqlAlertConditionService(HttpContext httpContext, NewRelicClient client)
    {
        super(httpContext, client);
    }

    /**
     * Returns the set of alert conditions for the given policy id.
     * @param policyId The id of the alert policy to return the conditions for
     * @return The set of alert conditions
     */
    public Collection list(long policyId)
    {
        QueryParameterList queryParams = new QueryParameterList();
        queryParams.add("policy_id", new Long(policyId));
        return HTTP.GET("/v2/alerts_nrql_conditions.json", null, queryParams, NRQL_ALERT_CONDITIONS).get();
    }

    /**
     * Returns the set of alert conditions for the given policy id and name.
     * @param policyId The id of the alert policy to return the conditions for
     * @param name The name of the conditions
     * @return The set of alert conditions
     */
    public Collection list(long policyId, String name)
    {
        List ret = new ArrayList();
        Collection conditions = list(policyId);
        for(NrqlAlertCondition condition : conditions)
        {
            if(condition.getName().equals(name))
                ret.add(condition);
        }
        return ret;
    }

    /**
     * Returns the NRQL alert condition with the given id.
     * 

* This is needed because the API does not contain an operation to get a condition using the id directly. * @param policyId The id of the policy the condition belongs to * @param conditionId The id of the alert condition to return * @return The alert condition */ public Optional show(long policyId, long conditionId) { Optional ret = Optional.absent(); Collection conditions = list(policyId); for(NrqlAlertCondition condition : conditions) { if(condition.getId() == conditionId) ret = Optional.of(condition); } return ret; } /** * Creates the given NRQL alert condition. * @param policyId The id of the policy to add the alert condition to * @param condition The alert condition to create * @return The alert condition that was created */ public Optional create(long policyId, NrqlAlertCondition condition) { return HTTP.POST(String.format("/v2/alerts_nrql_conditions/policies/%d.json", policyId), condition, NRQL_ALERT_CONDITION); } /** * Updates the given NRQL alert condition. * @param condition The alert condition to update * @return The alert condition that was updated */ public Optional update(NrqlAlertCondition condition) { return HTTP.PUT(String.format("/v2/alerts_nrql_conditions/%d.json", condition.getId()), condition, NRQL_ALERT_CONDITION); } /** * Deletes the NRQL alert condition with the given id. * @param conditionId The id of the alert condition to delete * @return This object */ public NrqlAlertConditionService delete(long conditionId) { HTTP.DELETE(String.format("/v2/alerts_nrql_conditions/%d.json", conditionId)); return this; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy