Summary

The createVictorOpsAction() mutation creates a VictorOps action in a LogScale repository or view. VictorOps actions send incident notifications to a VictorOps webhook URL with a configured message type. Define the action with this mutation, then assign it to an alert so the alert can trigger the notification. On success, the mutation returns the created VictorOpsAction object. To modify an existing action, use updateVictorOpsAction() instead.

Syntax

graphql
createVictorOpsAction(
      input: CreateVictorOpsAction!
   ): VictorOpsAction!

The mutation accepts a single required input argument of type CreateVictorOpsAction. This input specifies the view name, the VictorOps message type, and the webhook URL. See the Input Parameters section for the full list of accepted fields.

The mutation returns a non-null VictorOpsAction object. See the Returned Values section for the available fields.

Example

Raw
graphql
mutation {
  createVictorOpsAction(input:
         { viewName: "humio",
           name: "my-victory-act",
           messageType: "CRITICAL",
           notifyUrl: "https://victorops.company.com",
           useProxy: false
        } )
  { id }
}
Mac OS or Linux (curl)
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-Type: application/json" \
    -d @- << EOF
{"query" : "mutation {
  createVictorOpsAction(input:
         { viewName: \"humio\",
           name: \"my-victory-act\",
           messageType: \"CRITICAL\",
           notifyUrl: \"https://victorops.company.com\",
           useProxy: false
        } )
  { id }
}"
}
EOF
Mac OS or Linux (curl) One-line
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-Type: application/json" \
    -d @- << EOF
{"query" : "mutation {
  createVictorOpsAction(input:
         { viewName: \"humio\",
           name: \"my-victory-act\",
           messageType: \"CRITICAL\",
           notifyUrl: \"https://victorops.company.com\",
           useProxy: false
        } )
  { id }
}"
}
EOF
Windows Cmd and curl
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql ^
    -H "Authorization: Bearer $TOKEN" ^
    -H "Content-Type: application/json" ^
    -d @'{"query" : "mutation { ^
  createVictorOpsAction(input: ^
         { viewName: \"humio\", ^
           name: \"my-victory-act\", ^
           messageType: \"CRITICAL\", ^
           notifyUrl: \"https://victorops.company.com\", ^
           useProxy: false ^
        } ) ^
  { id } ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "mutation {
  createVictorOpsAction(input:
         { viewName: \"humio\",
           name: \"my-victory-act\",
           messageType: \"CRITICAL\",
           notifyUrl: \"https://victorops.company.com\",
           useProxy: false
        } )
  { id }
}"
}'
    "$YOUR_LOGSCALE_URL/graphql"
Perl
perl
#!/usr/bin/perl

use HTTP::Request;
use LWP;

my $TOKEN = "TOKEN";

my $uri = '$YOUR_LOGSCALE_URL/graphql';

my $query = "mutation {
  createVictorOpsAction(input:
         { viewName: \"humio\",
           name: \"my-victory-act\",
           messageType: \"CRITICAL\",
           notifyUrl: \"https://victorops.company.com\",
           useProxy: false
        } )
  { id }
}";
$query =~ s/\n/ /g;
my $json = sprintf('{"query" : "%s"}',$query);
my $req = HTTP::Request->new("POST", $uri );

$req->header("Authorization" => "Bearer $TOKEN");
$req->header("Content-Type" => "application/json");

$req->content( $json );

my $lwp = LWP::UserAgent->new;

my $result = $lwp->request( $req );

print $result->{"_content"},"\n";
Python
python
#! /usr/local/bin/python3

import requests

url = '$YOUR_LOGSCALE_URL/graphql'
mydata = r'''{"query" : "mutation {
  createVictorOpsAction(input:
         { viewName: \"humio\",
           name: \"my-victory-act\",
           messageType: \"CRITICAL\",
           notifyUrl: \"https://victorops.company.com\",
           useProxy: false
        } )
  { id }
}"
}'''

resp = requests.post(url,
                     data = mydata,
                     headers = {
   "Authorization" : "Bearer $TOKEN",
   "Content-Type" : "application/json"
}
)

print(resp.text)
Node.js
javascript
const https = require('https');

const data = JSON.stringify(
    {"query" : "mutation {
  createVictorOpsAction(input:
         { viewName: \"humio\",
           name: \"my-victory-act\",
           messageType: \"CRITICAL\",
           notifyUrl: \"https://victorops.company.com\",
           useProxy: false
        } )
  { id }
}"
}
);


const options = {
  hostname: '$YOUR_LOGSCALE_URL',
  path: 'graphql',
  port: 443,
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Content-Length': data.length,
    Authorization: 'BEARER ' + process.env.TOKEN,
    'User-Agent': 'Node',
  },
};

const req = https.request(options, (res) => {
  let data = '';
  console.log(`statusCode: ${res.statusCode}`);

  res.on('data', (d) => {
    data += d;
  });
  res.on('end', () => {
    console.log(JSON.parse(data).data);
  });
});

req.on('error', (error) => {
  console.error(error);
});

req.write(data);
req.end();
Example Responses
Success (HTTP Response Code 200 OK)
json
{
  "data": {
    "createVictorOpsAction": {
      "id": "abc123"
    }
  }
}

Input Parameters

The input argument accepts a CreateVictorOpsAction object. Provide the repository or view name, a display name for the action, the VictorOps message type (for example, CRITICAL or WARNING), and the notification webhook URL. Set useProxy to true to route notifications through the configured HTTP proxy. The following table describes all accepted fields:

Table: CreateVictorOpsAction Input Datatype

ParameterTypeRequiredDefaultStabilityAvailabilityDescription
labelsStringyes   Labels to categorize the action.
messageTypeStringyes Long-Term Type of the VictorOps message to make.
nameStringyes Long-Term Name of the action.
notifyUrlStringyes Long-Term VictorOps webhook URL where request should be sent.
useProxyBooleanyes Long-Term Defines whether the action should use the configured proxy to make web requests
viewNameStringyes Long-Term Name of the view of the action.

Returned Values

The mutation returns a VictorOpsAction object representing the newly created action. The returned fields include the action's identifier, name, creation and modification timestamps, and the configured webhook URL. Use these values to confirm the action was created with the expected configuration. The following table describes all available fields:

Table: VictorOpsAction Datatype

ParameterTypeRequiredDefaultStabilityAvailabilityDescription
allowedActions[AssetAction]yes Short-Term A list of allowed asset actions. See AssetAction . This is a preview and subject to change.
createdInfoAssetCommitMetadata  Long-Term Metadata related to the creation of the action. See AssetCommitMetadata.
displayNamestringyes Long-Term The display name of the action.
idstringyes Long-Term The unique identifier of the action.
isAllowedToRunbooleanyes Long-Term Whether action is disabled — usually because of a security policy.
labels[string]  Preview Any labels associated with the action.
messageTypestringyes Long-Term The type of VictorOps message.
modifiedInfoAssetCommitMetadata  Long-Term Metadata related to the latest modification of the action. See AssetCommitMetadata.
namestringyes Long-Term The name of the action.
notifyUrlstringyes Long-Term VictorOps webhook URL where to send the request.
packagePackageInstallation  Long-Term The package, if there is one, of which the action is part. See PackageInstallation.
packageIdVersionedPackageSpecifier  Long-Term The unique identifier of the package of the aggregate alert template. VersionedPackageSpecifier is a scalar.
requiresOrganizationOwnedQueriesPermissionToEditbooleanyes Long-Term True if this action is used by triggers, where the query is run by the organization. If true, the OrganizationOwnedQueries permission is required to edit the action.
resourcestringyes Short-Term The resource identifier for the action.
useProxybooleanyes Long-Term Whether the action should use the configured proxy to make web requests.
yamlTemplateYAMLyes Long-Term A template that can be used to recreate the action. YAML is a scalar.