1.0 APPENDIX A Curl Examples

WAS THIS PAGE HELPFUL? Leave Feedback

1.0 APPENDIX A Curl Examples

  • These examples require that you have populated a Collage database with the attached script for Postgres and that Postgres is already installed.
  • SQL database to be restored: Tar-ball of database backup
  • Restore script: restore.sh
  • The curl examples assume that you are running JBoss with Apache on port 80, and the Collage Restful Services are deployed to a web application with the context name of 'foundation-webapp'

Appendix A: Contents

1.1 Accessing the Foundation REST API using Curl

This section reviews the curl command needed for a curl-based login to the Foundation REST API. It is possible to not hardcode various credentials into a script, and instead write the script as one that extracts the current values from the config/ws_client.properties file so they're always current, even if an Administrator changes the password.

Each session has a limited lifetime, approximately 8 hours. It is important to note that a long-lived token will eventually expire. If still using it then it will stop working, and you'll need to keep track and log in again. In general, applications should try to keep using the same token for as long as there is something useful to do, and when finished should log out explicitly to help clean up the server side. This helps with a possible buildup of tokens in the server.

1.1.1 Sample script
#!/bin/bash

# This is a sample script showing the full process for accessing the
# Foundation REST API using "curl".

# Set this value to reflect the name of your client application.
APP_NAME='my-application'

# NOTE 1:  This code assumes that "credentials.encryption.enabled = true"
# is set in the credentials file, without checking that said condition holds.
# This should be the case in all recent releases of GroundWork Monitor.

# NOTE 2:  The webservices_reader_user and webservices_reader_password keys are
# used for read-only access to the REST API.  If you need read/write access, you
# must use the webservices_user and webservices_password keys instead.

PERL=/usr/local/groundwork/perl/bin/perl
CRED_FILE=/usr/local/groundwork/config/ws_client.properties
REST_KEY=foundation_rest_url
USER_KEY=webservices_reader_user
PASS_KEY=webservices_reader_password
# USER_KEY=webservices_user
# PASS_KEY=webservices_password

API_REST=$( $PERL -ne '/^\s*'"$REST_KEY"'\s*=\s*(\S+)/ && print $1' $CRED_FILE )
API_USER=$( $PERL -ne '/^\s*'"$USER_KEY"'\s*=\s*(\S+)/ && print $1' $CRED_FILE | base64 )
API_PASS=$( $PERL -ne '/^\s*'"$PASS_KEY"'\s*=\s*(\S+)/ && print $1' $CRED_FILE )

if [ -z "${API_REST}" ]; then echo "ERROR:  Cannot find the REST API endpoint."; exit 1; fi
if [ -z "${API_USER}" ]; then echo "ERROR:  Cannot find the REST API username."; exit 1; fi
if [ -z "${API_PASS}" ]; then echo "ERROR:  Cannot find the REST API password."; exit 1; fi

# Once we log in shortly and have obtained a token, we want a trap in place to
# ensure that we always log out when this script exits, no matter how we exit.
# That way, we avoid having lots of unexpired tokens build up on the server.
# Putting the trap in place before we obtain the token will guarantee we don't
# have a race condition between logging in and setting up the trap.

rest_api_logout() {
    if [ -n "${TOKEN}" ]; then
        result=$(
            curl -s -S -X POST \
                --data-urlencode "gwos-api-token=${TOKEN}" \
                --data-urlencode "gwos-app-name=${APP_NAME}" \
                -H "Accept: text/plain" \
                -H "Content-Type: application/x-www-form-urlencoded" \
                ${API_REST}/auth/logout
        )
        if [[ $? != 0 || "$result" =~ "error=" ]]; then
            echo "REST API logout failed; result is:"
            echo $result
        fi
    fi
}

# EXIT appears to cover all cases of exiting the script:  falling off the end,
# responding to a signal like SIGINT or SIGTERM, or explicitly exiting.
trap "rest_api_logout" EXIT

TOKEN=$(
    curl -s -S -X POST \
        --data-urlencode "user=${API_USER}" \
        --data-urlencode "password=${API_PASS}" \
        --data-urlencode "gwos-app-name=${APP_NAME}" \
        -H "Accept: text/plain" \
        -H "Content-Type: application/x-www-form-urlencoded" \
        "${API_REST}/auth/login"
)
if [ $? != 0 -o -z "$TOKEN" -o "${TOKEN#<html}" != "$TOKEN" ] ; then
    # echo "API_REST = '$API_REST'"
    # echo "API_USER = '$API_USER'"
    # echo "API_PASS = '$API_PASS'"
    echo "ERROR:  Could not obtain an auth token from the REST API."
    exit 1
else
    :
    # Uncomment this to show the token obtained.
    # echo "GOT TOKEN: ${TOKEN}"
fi

# Now let's show a simple example call that uses both $TOKEN and $APP_NAME.

json_error_check='
    my $d;
    eval { local $/; $d = decode_json <STDIN>; };
    die "ERROR:  Invalid JSON returned from call.\n" if ($@);
    die "ERROR:  $d->{error}\n" if $d->{error};
'

# Verifying a successful call depends partly on checking the return value from the
# curl command, and on the form of the result from the call we're making.
result=$(
    curl -s -S \
        -H "GWOS-API-TOKEN:${TOKEN}" \
        -H "GWOS-APP-NAME:${APP_NAME}" \
        -H "Accept: application/json" \
        ${API_REST}/hosts/localhost
)
if [ $? != 0 ]; then
    # Do whatever is appropriate here, considering the needs of your application.
    echo "fetch failed"
else
    # We're not home free yet.  The curl call may have succeeded at the curl level
    # but not at the REST API level.  So we may have a zero exit code from curl but
    # an error noted in the returned results.
    echo "$result" | $PERL -MJSON -e "$json_error_check"
    if [ $? != 0 ]; then
        # Do whatever is appropriate here, considering the needs of your application.
        echo "got bad result"
        # echo $result
    else
        # Do whatever is appropriate here, considering the needs of your application.
        echo "got good result"
        # echo $result
    fi
fi
1.2 Host Examples with Curl

(toc)

1.2.1 Retrieve a Single Host

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" http://localhost/api/hosts/localhost

Results: XML - JSON

1.2.2 Retrieve Hosts by Query with Depth Simple (encoded)

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost/api/hosts?query=property.ExecutionTime+between+5+and+3500&depth=simple"

Results: XML - JSON

1.2.3 Store Two Hosts

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d @./postHost.xml -H "Accept: application/xml" --header "Content-Type: application/xml" http://localhost/api/hosts

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d @./postHost.json -H "Accept: application/json" --header "Content-Type: application/json" http://localhost/api/hosts

Post Data Example: XML - JSON

1.2.4 Delete Hosts
  1. delete a single host
    curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X DELETE -H "Accept: application/xml" --header "Content-Type: application/xml" http://localhost/api/hosts/localhost
  2. delete 2 hosts
    curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X DELETE -H "Accept: application/xml" --header "Content-Type: application/xml" http://localhost/api/hosts/localhost,malbec
1.2.5 Host Autocomplete Using JSON

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" http://localhost/api/hosts/autocomplete/localhost

JSON Results:

{
  "names" : [ "localhost", "localhost2" ]
}
1.3 Host Group Examples with Curl

(toc)

1.3.1 Retrieve a Single Host Group

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" http://localhost/api/hostgroups/Support

Results: XML - JSON

1.3.2 Retrieve Host Groups Depth Deep (encoded)

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost/api/hostgroups?depth=deep&query=hosts.hostName+%3D+%27localhost%27"

Results: XML - JSON

1.3.3 Store Host Group

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d @./postHostGroup.xml -H "Accept: application/xml" --header "Content-Type: application/xml" http://localhost/api/hostgroups

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d @./postHost.json -H "Accept: application/json" --header "Content-Type: application/json" http://localhost/api/hostgroups

Post Data Example: XML - JSON

1.3.4 Delete Host Groups
  1. delete a single host group
    curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X DELETE -H "Accept: application/xml" --header "Content-Type: application/xml" http://localhost/api/hostgroups/Support
  2. delete 2 host group
    curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X DELETE -H "Accept: application/xml" --header "Content-Type: application/xml" http://localhost/api/hostgroups/Support,HG1
1.3.5 Host Group Autocomplete Using XML

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" http://localhost/api/hostgroups/autocomplete/hg

XML Results:

<names>
    <name>HG1</name>
    <name>HG2</name>
</names>
1.4 Services Examples with Curl

(toc)

1.4.1 Retrieve A Single Service

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" http://localhost/api/services/service-109?hostName=localhost

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" http://localhost/api/services/service-109?hostName=localhost

Results: XML - JSON

1.4.2 Retrieve Services by Query (encoded)

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost/api/services?query=%28property.ExecutionTime+%3E+1000+and+monitorStatus%21%3D+%27UP%27%29"

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" "http://localhost/api/services?query=%28property.ExecutionTime+%3E+1000+and+monitorStatus%21%3D+%27UP%27%29"

Results: XML - JSON

1.4.3 Store Services

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d @./postService.json -H "Accept: application/json" --header "Content-Type: application/json" http://localhost/api/services

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d @./postService.xml -H "Accept: application/xml" --header "Content-Type: application/xml" http://localhost/api/services

Post Data Example: XML - JSON

1.4.4 Delete Service

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X DELETE -H "Accept: application/xml" --header "Content-Type: application/xml" http://localhost/api/services/service-109,service-110?hostName=localhost

1.4.5 Service Autocomplete Using JSON

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" http://localhost/api/services/autocomplete/local_cpu

JSON Results:

{
  "names" : [ "local_cpu_httpd", "local_cpu_java" ]
}
1.5 Events Examples with Curl

(toc)

1.5.1 Retrieve Events by Event Id List

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" http://localhost/api/events/4,5

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" http://localhost/api/events/4,5

Results: XML - JSON

1.5.2 Retrieve Events by Query (encoded)

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost/api/events?query=category+%3D+%27SG1%27"

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost/api/events?query=device+%3D+%27172.28.113.156%27+and+severity+%3D+%27CRITICAL%27"

Results: XML - JSON

1.5.3 Store Events

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d @./postEvent.xml -H "Accept: application/xml" --header "Content-Type: application/xml" http://localhost/api/events

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d @./postEvent.json -H "Accept: application/json" --header "Content-Type: application/json" http://localhost/api/events

Post Data Example: XML - JSON

1.5.4 Update Event

curl -X PUT -d@./putEvents.xml -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" --header "Content-Type: application/xml" http://localhost/api/events

Post Data Example: XML - JSON

1.5.5 Update Event Op Status

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X PUT -H "Accept: application/xml" --header "Content-Type: application/xml" http://localhost/api/events/50,51,52?opStatus=NOTIFIED

1.5.6 Delete Events

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X DELETE -H "Accept: application/xml" --header "Content-Type: application/xml" http://localhost/api/events/50,51

1.6 Devices Examples with Curl

(toc)

1.6.1 Retrieve A Single Device

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" http://localhost/api/devices/127.0.0.1

  1. with depth = deep
    curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" http://localhost/api/devices/127.0.0.1?depth=deep

Results: XML - JSON

1.6.2 Retrieve Devices by Query (encoded)

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" http://localhost/api/devices?query=identification+like+%27172.28.113%25%27

Results: XML - JSON

1.6.3 Store Devices

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d @./postDevice.xml -H "Accept: application/xml" --header "Content-Type: application/xml" http://localhost/api/devices

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d @./postDevice.json -H "Accept: application/json" --header "Content-Type: application/json" http://localhost/api/devices

Post Data Example: XML - JSON

1.6.4 Delete Devices
  1. delete a single device
    curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X DELETE -H "Accept: application/xml" --header "Content-Type: application/xml" http://localhost/api/devices/127.0.0.1
  2. delete 2 devices
    curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X DELETE -H "Accept: application/xml" --header "Content-Type: application/xml" http://localhost/api/devices/127.0.0.1,172.28.128.100
1.7 Statistics Examples with Curl

(toc)

1.7.1 Retrieve Total Statistics
  1. query for total statistics by hosts
    curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H “Accept: application/xml” http://localhost/api/statistics/totals/hosts
  2. query for total statistics by services
    curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H “Accept: application/xml” http://localhost/api/services
1.7.2 Retrieve Host Statistics
  1. query for statistics for the two given host names
    curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H “Accept: application/xml” http://localhost/api/statistics/hosts/demo,malbec
1.7.3 Retrieve Host Group Statistics
  1. query all host group statistics group by host group
    curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H “Accept: application/xml” http://localhost/api/statistics/hostgroups
  2. query host group statistics filtered by one or more host groups names comma separated,
    group by host group
    curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H “Accept: application/xml” http://localhost/api/statistics/hostgroups/Linux+Servers,Engineering
1.7.4 Retrieve Service Statistics
  1. query all service statistics group by host group
    curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H “Accept: application/xml” http://localhost/api/statistics/services
  2. query service statistics filtered by one or more host names comma separated, group by hosts
    curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H “Accept: application/xml” http://localhost/api/statistics/services/hosts/localhost,support-xp-1
  3. query service statistics filtered by one or more host group names comma separated,
    group by host groups
    curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H “Accept: application/xml” http://localhost/api/statistics/services/hostgroups/Linux+Servers,Engineering
  4. query all service statistics group by service group
    curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H “Accept: application/xml” http://localhost/api/statistics/services/servicegroups
  5. query service statistics filtered by one or more service group names comma separated,
    group by service groups
    curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H “Accept: application/xml” http://localhost/api/statistics/services/servicegroups/SG1,web-svr
  6. query host availability by a single host group name
    curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H “Accept: application/xml” http://localhost/api/statistics/availability/hosts?hostGroup=HG1
  7. query service availability by a single host group name
    curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H “Accept: application/xml” http://localhost/api/statistics/availability/services?hostGroup=HG1
  8. query service availability by a single service group name
    curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H “Accept: application/xml” http://localhost/api/statistics/availability/services?serviceGroup=SG1
1.8 Category Examples with Curl

(toc)

1.8.1 Retrieve A Single Category

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/categories/TEST-2/SERVICE_GROUP"

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/categories/TEST-2/SERVICE_GROUP?depth=full"

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/categories/TEST-2/SERVICE_GROUP"

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/categories/TEST-2/SERVICE_GROUP?depth=full"

Results:

{
  "id" : 63,
  "name" : "TEST-2",
  "entityTypeName" : "SERVICE_GROUP",
  "childNames" : [ "TEST-B" ],
  "root" : true
}
{
  "id" : 63,
  "name" : "TEST-2",
  "entityTypeName" : "SERVICE_GROUP",
  "childNames" : [ "TEST-B" ],
  "root" : true,
  "applicationType" : {
    "properties" : {
    }
  },
  "entityType" : {
    "id" : 23,
    "name" : "SERVICE_GROUP",
    "description" : "com.groundwork.collage.model.impl.ServiceGroup",
    "applicationTypeSupported" : false,
    "logicalEntity" : true
  },
  "children" : [ {
    "id" : 65,
    "name" : "TEST-B",
    "entityTypeName" : "SERVICE_GROUP",
    "parentNames" : [ "TEST-2", "TEST-A" ],
    "root" : false,
    "applicationType" : {
      "properties" : {
      }
    },
    "entityType" : {
      "id" : 23,
      "name" : "SERVICE_GROUP",
      "description" : "com.groundwork.collage.model.impl.ServiceGroup",
      "applicationTypeSupported" : false,
      "logicalEntity" : true
    },
    "parents" : [ {
      "id" : 63,
      "name" : "TEST-2",
      "entityTypeName" : "SERVICE_GROUP",
      "childNames" : [ "TEST-B" ],
      "root" : true
    }, {
      "id" : 64,
      "name" : "TEST-A",
      "entityTypeName" : "SERVICE_GROUP",
      "childNames" : [ "TEST-B" ],
      "root" : true
    } ],
    "entities" : [ {
      "id" : 31,
      "objectID" : 1024,
      "entityTypeId" : 2,
      "entityTypeName" : "SERVICE_STATUS"
    } ]
  } ]
}
<category id="67" name="TEST-2" entityTypeName="SERVICE_GROUP" root="true">
  <childNames>
    <childName>TEST-B</childName>
  </childNames>
</category>
<category id="67" name="TEST-2" entityTypeName="SERVICE_GROUP" root="true">
  <childNames>
    <childName>TEST-B</childName>
  </childNames>
  <applicationType/>
  <entityType id="23" name="SERVICE_GROUP" description="com.groundwork.collage.model.impl.ServiceGroup" isLogicalEntity="true" applicationTypeSupported="false"/>
  <children>
    <category id="69" name="TEST-B" entityTypeName="SERVICE_GROUP" root="false">
      <parentNames>
        <parentName>TEST-A</parentName>
        <parentName>TEST-2</parentName>
      </parentNames>
      <applicationType/>
      <entityType id="23" name="SERVICE_GROUP" description="com.groundwork.collage.model.impl.ServiceGroup" isLogicalEntity="true" applicationTypeSupported="false"/>
      <parents>
        <category id="68" name="TEST-A" entityTypeName="SERVICE_GROUP" root="true">
          <childNames>
            <childName>TEST-B</childName>
          </childNames>
        </category>
        <category id="67" name="TEST-2" entityTypeName="SERVICE_GROUP" root="true">
          <childNames>
            <childName>TEST-B</childName>
          </childNames>
        </category>
      </parents>
      <entities>
        <entity id="32" objectID="1024" entityTypeId="2" entityTypeName="SERVICE_STATUS"/>
      </entities>
    </category>
  </children>
</category>
1.8.2 Retrieve All Categories

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/categories?entityTypeName=SERVICE_GROUP"

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/categories?entityTypeName=SERVICE_GROUP"

Results:

{
  "categories" : [ {
    "id" : 62,
    "name" : "TEST-1",
    "entityTypeName" : "SERVICE_GROUP",
    "root" : true
  }, {
    "id" : 63,
    "name" : "TEST-2",
    "entityTypeName" : "SERVICE_GROUP",
    "childNames" : [ "TEST-B" ],
    "root" : true
  }, {
    "id" : 64,
    "name" : "TEST-A",
    "entityTypeName" : "SERVICE_GROUP",
    "childNames" : [ "TEST-B" ],
    "root" : true
  }, {
    "id" : 65,
    "name" : "TEST-B",
    "entityTypeName" : "SERVICE_GROUP",
    "parentNames" : [ "TEST-A", "TEST-2" ],
    "root" : false
  } ]
}
<categories>
  <category id="66" name="TEST-1" entityTypeName="SERVICE_GROUP" root="true"/>
  <category id="67" name="TEST-2" entityTypeName="SERVICE_GROUP" root="true">
    <childNames>
      <childName>TEST-B</childName>
    </childNames>
  </category>
  <category id="68" name="TEST-A" entityTypeName="SERVICE_GROUP" root="true">
    <childNames>
      <childName>TEST-B</childName>
    </childNames>
  </category>
  <category id="69" name="TEST-B" entityTypeName="SERVICE_GROUP" root="false">
    <parentNames>
      <parentName>TEST-2</parentName>
      <parentName>TEST-A</parentName>
    </parentNames>
  </category>
</categories>
1.8.3 Retrieve Root Categories

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/categories?entityTypeName=SERVICE_GROUP&roots=true"

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/categories?entityTypeName=SERVICE_GROUP&roots=true"

Results:

{
  "categories" : [ {
    "id" : 62,
    "name" : "TEST-1",
    "entityTypeName" : "SERVICE_GROUP",
    "root" : true
  }, {
    "id" : 63,
    "name" : "TEST-2",
    "entityTypeName" : "SERVICE_GROUP",
    "childNames" : [ "TEST-B" ],
    "root" : true
  }, {
    "id" : 64,
    "name" : "TEST-A",
    "entityTypeName" : "SERVICE_GROUP",
    "childNames" : [ "TEST-B" ],
    "root" : true
  } ]
}
<categories>
  <category id="66" name="TEST-1" entityTypeName="SERVICE_GROUP" root="true"/>
  <category id="67" name="TEST-2" entityTypeName="SERVICE_GROUP" root="true">
    <childNames>
      <childName>TEST-B</childName>
    </childNames>
  </category>
  <category id="68" name="TEST-A" entityTypeName="SERVICE_GROUP" root="true">
    <childNames>
      <childName>TEST-B</childName>
    </childNames>
  </category>
</categories>
1.8.4 Retrieve Hierarchy Categories

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/categories?name=TEST-A&entityTypeName=SERVICE_GROUP"

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/categories?name=TEST-A&entityTypeName=SERVICE_GROUP"

Results:

{
  "categories" : [ {
    "id" : 64,
    "name" : "TEST-A",
    "entityTypeName" : "SERVICE_GROUP",
    "childNames" : [ "TEST-B" ],
    "root" : true
  }, {
    "id" : 65,
    "name" : "TEST-B",
    "entityTypeName" : "SERVICE_GROUP",
    "parentNames" : [ "TEST-A", "TEST-2" ],
    "root" : false
  } ]
}
<categories>
  <category id="68" name="TEST-A" entityTypeName="SERVICE_GROUP" root="true">
    <childNames>
      <childName>TEST-B</childName>
    </childNames>
  </category>
  <category id="69" name="TEST-B" entityTypeName="SERVICE_GROUP" root="false">
    <parentNames>
      <parentName>TEST-A</parentName>
      <parentName>TEST-2</parentName>
    </parentNames>
  </category>
</categories>
1.8.5 Retrieve Entity Root Categories

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/categories?entityTypeName=SERVICE_GROUP&entityObjectId=1024&entityEntityTypeName=SERVICE_STATUS&entityRoots=true"

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/categories?entityTypeName=SERVICE_GROUP&entityObjectId=1024&entityEntityTypeName=SERVICE_STATUS&entityRoots=true"

Results:

{
  "categories" : [ {
    "id" : 63,
    "name" : "TEST-2",
    "entityTypeName" : "SERVICE_GROUP",
    "childNames" : [ "TEST-B" ],
    "root" : true
  }, {
    "id" : 64,
    "name" : "TEST-A",
    "entityTypeName" : "SERVICE_GROUP",
    "childNames" : [ "TEST-B" ],
    "root" : true
  } ]
}
<categories>
  <category id="67" name="TEST-2" entityTypeName="SERVICE_GROUP" root="true">
    <childNames>
      <childName>TEST-B</childName>
    </childNames>
  </category>
  <category id="68" name="TEST-A" entityTypeName="SERVICE_GROUP" root="true">
    <childNames>
      <childName>TEST-B</childName>
    </childNames>
  </category>
</categories>
1.8.6 Retrieve Categories by Query (encoded)

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/categories?query=entityType.name%20%3D%20'SERVICE_GROUP'%20and%20name%20like%20'TEST-%25'%20ORDER%20BY%20name%20ASC&first=0&count=2"

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/categories?query=entityType.name%20%3D%20'SERVICE_GROUP'%20and%20name%20like%20'TEST-%25'%20ORDER%20BY%20name%20ASC&first=0&count=2"

Results:

{
  "categories" : [ {
    "id" : 62,
    "name" : "TEST-1",
    "entityTypeName" : "SERVICE_GROUP",
    "root" : true
  }, {
    "id" : 63,
    "name" : "TEST-2",
    "entityTypeName" : "SERVICE_GROUP",
    "childNames" : [ "TEST-B" ],
    "root" : true
  } ]
}
<categories>
  <category id="66" name="TEST-1" entityTypeName="SERVICE_GROUP" root="true"/>
  <category id="67" name="TEST-2" entityTypeName="SERVICE_GROUP" root="true">
    <childNames>
      <childName>TEST-B</childName>
    </childNames>
  </category>
</categories>
1.8.7 Store Categories

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d '{"categories": [{"name" : "TEST-1", "entityTypeName" : "SERVICE_GROUP"}, {"name" : "TEST-2", "entityTypeName" : "SERVICE_GROUP"}]}' -H "Content-Type: application/json" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/categories"

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d '{"categories": [{"name" : "TEST-B", "entityTypeName" : "SERVICE_GROUP", "entities" : [{"objectID" : 1024, "entityTypeName" : "SERVICE_STATUS"}]}]}' -H "Content-Type: application/json" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/categories

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d '<categories><category name="TEST-1" entityTypeName="SERVICE_GROUP"></category><category name="TEST-2" entityTypeName="SERVICE_GROUP"></category></categories>' -H "Content-Type: application/xml" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/categories"

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d '<categories><category name="TEST-B" entityTypeName="SERVICE_GROUP"><entities><entity objectID="1024" entityTypeName="SERVICE_STATUS"/></entities></category></categories>' -H "Content-Type: application/xml" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/categories"

Results:

{
  "successful" : 2,
  "failed" : 0,
  "entityType" : "Category",
  "operation" : "Update",
  "warning" : 0,
  "count" : 2,
  "results" : [ {
    "entity" : "TEST-1:SERVICE_GROUP",
    "status" : "success",
    "location" : "http://localhost:8080/foundation-webapp/api/categories/TEST-1/SERVICE_GROUP"
  }, {
    "entity" : "TEST-2:SERVICE_GROUP",
    "status" : "success",
    "location" : "http://localhost:8080/foundation-webapp/api/categories/TEST-2/SERVICE_GROUP"
  } ]
}
{
  "successful" : 1,
  "failed" : 0,
  "entityType" : "Category",
  "operation" : "Update",
  "warning" : 0,
  "count" : 1,
  "results" : [ {
    "entity" : "TEST-B:SERVICE_GROUP",
    "status" : "success",
    "location" : "http://localhost:8080/foundation-webapp/api/categories/TEST-B/SERVICE_GROUP"
  } ]
}
<results successful="2" failed="0" entityType="Category" operation="Update" warning="0" count="2">
  <result>
    <entity>TEST-1:SERVICE_GROUP</entity>
    <location>http://localhost:8080/foundation-webapp/api/categories/TEST-1/SERVICE_GROUP</location>
    <status>success</status>
  </result>
  <result>
    <entity>TEST-2:SERVICE_GROUP</entity>
    <location>http://localhost:8080/foundation-webapp/api/categories/TEST-2/SERVICE_GROUP</location>
    <status>success</status>
  </result>
</results>
<results successful="1" failed="0" entityType="Category" operation="Update" warning="0" count="1">
  <result>
    <entity>TEST-B:SERVICE_GROUP</entity>
    <location>http://localhost:8080/foundation-webapp/api/categories/TEST-B/SERVICE_GROUP</location>
    <status>success</status>
  </result>
</results>
1.8.8 Modify Hierarchical Categories

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X PUT -d '{"categoryUpdates": [{"entityTypeName" : "SERVICE_GROUP", "categoryName" : "TEST-A", "create" : "AS_ROOT"}, {"entityTypeName" : "SERVICE_GROUP", "categoryName" : "TEST-B", "create" : "AS_CHILD", "parentName" : "TEST-A"}, {"entityTypeName" : "SERVICE_GROUP", "categoryName" : "TEST-B", "modify" : "ADD_CHILD", "otherCategoryNames" : [ "TEST-2" ]}]}' -H "Content-Type: application/json" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/categories"

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X PUT -d '{"categoryUpdates": [{"entityTypeName" : "SERVICE_GROUP", "categoryName" : "TEST-A", "delete" : "CASCADE"}, {"entityTypeName" : "SERVICE_GROUP", "categoryName" : "TEST-2", "delete" : "CASCADE_ALL"}]}' -H "Content-Type: application/json" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/categories

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X PUT -d '<categoryUpdates><categoryUpdate entityTypeName="SERVICE_GROUP" categoryName="TEST-A" create="AS_ROOT"/><categoryUpdate entityTypeName="SERVICE_GROUP" categoryName="TEST-B" create="AS_CHILD" parentName="TEST-A"/><categoryUpdate entityTypeName="SERVICE_GROUP" categoryName="TEST-B" modify="ADD_CHILD"><otherCategoryNames><categoryName>TEST-2</categoryName></otherCategoryNames></categoryUpdate></categoryUpdates>' -H "Content-Type: application/xml" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/categories

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X PUT -d '<categoryUpdates><categoryUpdate entityTypeName="SERVICE_GROUP" categoryName="TEST-A" delete="CASCADE"/><categoryUpdate entityTypeName="SERVICE_GROUP" categoryName="TEST-2" delete="CASCADE_ALL"/></categoryUpdates>' -H "Content-Type: application/xml" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/categories"

Results:

{
  "successful" : 3,
  "failed" : 0,
  "entityType" : "Category",
  "operation" : "Update",
  "warning" : 0,
  "count" : 3,
  "results" : [ {
    "entity" : "TEST-A:SERVICE_GROUP",
    "status" : "success",
    "location" : "http://localhost:8080/foundation-webapp/api/categories/TEST-A/SERVICE_GROUP"
  }, {
    "entity" : "TEST-B:SERVICE_GROUP",
    "status" : "success",
    "location" : "http://localhost:8080/foundation-webapp/api/categories/TEST-B/SERVICE_GROUP"
  }, {
    "entity" : "TEST-B:SERVICE_GROUP",
    "status" : "success",
    "location" : "http://localhost:8080/foundation-webapp/api/categories/TEST-B/SERVICE_GROUP"
  } ]
}
{
  "successful" : 2,
  "failed" : 0,
  "entityType" : "Category",
  "operation" : "Update",
  "warning" : 0,
  "count" : 2,
  "results" : [ {
    "entity" : "TEST-A:SERVICE_GROUP",
    "status" : "success",
    "message" : "Category deleted, (CASCADE)."
  }, {
    "entity" : "TEST-2:SERVICE_GROUP",
    "status" : "success",
    "message" : "Category deleted, (CASCADE_ALL)."
  } ]
}
<results successful="3" failed="0" entityType="Category" operation="Update" warning="0" count="3">
  <result>
    <entity>TEST-A:SERVICE_GROUP</entity>
    <location>http://localhost:8080/foundation-webapp/api/categories/TEST-A/SERVICE_GROUP</location>
    <status>success</status>
  </result>
  <result>
    <entity>TEST-B:SERVICE_GROUP</entity>
    <location>http://localhost:8080/foundation-webapp/api/categories/TEST-B/SERVICE_GROUP</location>
    <status>success</status>
  </result>
  <result>
    <entity>TEST-B:SERVICE_GROUP</entity>
    <location>http://localhost:8080/foundation-webapp/api/categories/TEST-B/SERVICE_GROUP</location>
    <status>success</status>
  </result>
</results>
<results successful="2" failed="0" entityType="Category" operation="Update" warning="0" count="2">
  <result>
    <entity>TEST-A:SERVICE_GROUP</entity>
    <message>Category deleted, (CASCADE).</message>
    <status>success</status>
  </result>
  <result>
    <entity>TEST-2:SERVICE_GROUP</entity>
    <message>Category deleted, (CASCADE_ALL).</message>
    <status>success</status>
  </result>
</results>
1.8.9 Add/Delete Category Members

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X PUT -d '{"name" : "TEST-B", "entityTypeName" : "SERVICE_GROUP", "entities" : [{"objectID" : 2048, "entityTypeName" : "SERVICE_STATUS"}]}' -H "Content-Type: application/json" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/categories/addmembers"

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X PUT -d '<category name="TEST-B" entityTypeName="SERVICE_GROUP"><entities><entity objectID="2048" entityTypeName="SERVICE_STATUS"/></entities></category>' -H "Content-Type: application/xml" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/categories/deletemembers"

Results:

{
  "successful" : 1,
  "failed" : 0,
  "entityType" : "Category",
  "operation" : "Update",
  "warning" : 0,
  "results" : [ {
    "entity" : "TEST-B:SERVICE_GROUP",
    "status" : "success",
    "location" : "http://localhost:8080/foundation-webapp/api/categories/TEST-B/SERVICE_GROUP"
  } ],
  "count" : 1
}
<results successful="1" failed="0" entityType="Category" operation="Update" warning="0" count="1">
  <result>
    <entity>TEST-B:SERVICE_GROUP</entity>
    <location>http://localhost:8080/foundation-webapp/api/categories/TEST-B/SERVICE_GROUP</location>
    <status>success</status>
  </result>
</results>
1.8.10 Delete Categories

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X DELETE -d '{"categories": [{"name" : "TEST-1", "entityTypeName" : "SERVICE_GROUP"}]}' -H "Content-Type: application/json" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/categories"

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X DELETE -d '<categories><category name="TEST-1" entityTypeName="SERVICE_GROUP"></category></categories>' -H "Content-Type: application/xml" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/categories"

Results:

{
  "successful" : 1,
  "failed" : 0,
  "entityType" : "Category",
  "operation" : "Delete",
  "warning" : 0,
  "count" : 1,
  "results" : [ {
    "entity" : "TEST-1:SERVICE_GROUP",
    "status" : "success",
    "message" : "Category deleted."
  } ]
}
<results successful="1" failed="0" entityType="Category" operation="Delete" warning="0" count="1">
  <result>
    <entity>TEST-1:SERVICE_GROUP</entity>
    <message>Category deleted.</message>
    <status>success</status>
  </result>
</results>
1.9 Metadata Examples with Curl

(toc)

1.9.1 Retrieve WADL file

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" http://localhost/api/meta/wadl

Results: XML (WADL)

1.9.2 Retrieve XSD file

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" http://localhost/api/meta/xsd

Results: XSD

1.10 Property Type Examples with Curl

(toc)

1.10.1 Retrieve A Single Property Type

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" http://localhost/api/propertytypes/ExecutionTime

Results: XML - JSON

1.10.2 Retrieve Property Type by Query (encoded)

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost/api/propertytypes?query=name+like+%27SYS%25%27"

Results: XML - JSON

1.10.3 Store Property Types

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d @./postPropertyType.json -H "Accept: application/json" --header "Content-Type: application/json" http://localhost/api/propertytypes

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d @./postPropertyType.xml -H "Accept: application/xml" --header "Content-Type: application/xml" http://localhost/api/propertytypes

Post Data Example: XML - JSON

1.10.4 Delete Property Type

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X DELETE -H "Accept: application/xml" --header "Content-Type: application/xml" http://localhost/api/propertytypes/name

1.11 Application Type Examples with Curl

(toc)

1.11.1 Retrieve A Single Application Type

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" http://localhost/api/applicationtypes/NAGIOS

Results: XML - JSON

1.11.2 Retrieve Application Type by Query (encoded)

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost/api/applicationtypes?query=name+like+%27RRD%25%27"

Results: XML - JSON

1.11.3 Add Application Types

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d @./postAppType.json -H "Accept: application/json" --header "Content-Type: application/json" http://localhost/api/applicationtypes

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d @./postAppType.xml -H "Accept: application/xml" --header "Content-Type: application/xml" http://localhost/api/applicationtypes

Post Data Example: XML - JSON

1.11.4 Delete Application Type

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X DELETE -H "Accept: application/xml" --header "Content-Type: application/xml" http://localhost/api/applicationtypes/name

1.12 Entity Type Examples with Curl

(toc)

1.12.1 Retrieve A Single Entity Type

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" http://localhost/api/entitytypes/HOST

Results: XML - JSON

1.12.2 Retrieve Application Type by Query (encoded)

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost/api/entitytypes?query=name+like+%27C%25%27"

Results: XML - JSON

1.13 Consolidation Examples with Curl

(toc)

1.13.1 Retrieve A Single Consolidation Criteria

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" http://localhost/api/consolidations/SYSLOG

Results: XML - JSON

1.13.2 Retrieve Consolidations by Query (encoded)

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost/api/consolidations?query=name+like+%27SY%25%27"

Results: XML - JSON

1.13.3 Store Consolidation Criteria

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d @./consolidations.json -H "Accept: application/json" --header "Content-Type: application/json" http://localhost/api/applicationtypes

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d @./consolidations.xml -H "Accept: application/xml" --header "Content-Type: application/xml" http://localhost/api/consolidations

Post Data Example: XML - JSON

1.13.4 Delete Consolidation Criteria

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X DELETE -H "Accept: application/xml" --header "Content-Type: application/xml" http://localhost/api/consolidations/name

1.14 Notification Examples with Curl

(toc)

1.14.1 Post a Host Notification

curl -X POST -d@./postHostNotification.xml -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" --header "Content-Type: application/xml" http://localhost/api/notifications/hosts

More Post Data Examples: XML - JSON

1.14.2 Post a Service Notification

curl -X POST -d@./postServiceNotification.xml -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" --header "Content-Type: application/xml" http://localhost/api/notifications/services

More Post Data Examples: XML - JSON

1.15 Perf Data Examples with Curl

(toc)

1.15.1 Post to Perf Data

curl -X POST -d@./postPerfData.json -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" --header "Content-Type: application/json" http://localhost/api/perfdata

More Post Data Examples: XML - JSON

1.15.2 Get Performance Time Series Data Using XML

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/perfdata?appType=VEMA&serverName=loadtest-vm-0&serviceName=loadtest-vm-metric-0&startTime=1443208066000&endTime=1443208366000&interval=30000"

XML Response:

<perfDataTimeSeries appType="VEMA" serverName="loadtest-vm-0" serviceName="loadtest-vm-metric-0" startTime="1443208066000" endTime="1443208366000" interval="30000">
    <perfDataTimeSeriesValue valueType="value" timestamp="1443208110000" value="36.0"/>
    <perfDataTimeSeriesValue valueType="value" timestamp="1443208170000" value="27.0"/>
    <perfDataTimeSeriesValue valueType="value" timestamp="1443208230000" value="20.0"/>
    <perfDataTimeSeriesValue valueType="value" timestamp="1443208290000" value="13.0"/>
    <perfDataTimeSeriesValue valueType="thold-c" timestamp="1443208110000" value="100.0"/>
    <perfDataTimeSeriesValue valueType="thold-c" timestamp="1443208170000" value="100.0"/>
    <perfDataTimeSeriesValue valueType="thold-c" timestamp="1443208230000" value="100.0"/>
    <perfDataTimeSeriesValue valueType="thold-c" timestamp="1443208290000" value="100.0"/>
    <perfDataTimeSeriesValue valueType="thold-w" timestamp="1443208110000" value="90.0"/>
    <perfDataTimeSeriesValue valueType="thold-w" timestamp="1443208170000" value="90.0"/>
    <perfDataTimeSeriesValue valueType="thold-w" timestamp="1443208230000" value="90.0"/>
    <perfDataTimeSeriesValue valueType="thold-w" timestamp="1443208290000" value="90.0"/>
</perfDataTimeSeries>
1.15.3 Get Performance Time Series Data Using JSON

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/perfdata?appType=VEMA&serverName=loadtest-vm-0&serviceName=loadtest-vm-metric-0&startTime=1443208066000&endTime=1443208366000&interval=30000"

JSON Response:

{
  "appType" : "VEMA",
  "serverName" : "loadtest-vm-0",
  "serviceName" : "loadtest-vm-metric-0",
  "startTime" : 1443208066000,
  "endTime" : 1443208366000,
  "interval" : 30000,
  "perfDataTimeSeriesValues" : [ {
    "valueType" : "value",
    "timestamp" : 1443208110000,
    "value" : 36.0
  }, {
    "valueType" : "value",
    "timestamp" : 1443208170000,
    "value" : 27.0
  }, {
    "valueType" : "value",
    "timestamp" : 1443208230000,
    "value" : 20.0
  }, {
    "valueType" : "value",
    "timestamp" : 1443208290000,
    "value" : 13.0
  }, {
    "valueType" : "thold-c",
    "timestamp" : 1443208110000,
    "value" : 100.0
  }, {
    "valueType" : "thold-c",
    "timestamp" : 1443208170000,
    "value" : 100.0
  }, {
    "valueType" : "thold-c",
    "timestamp" : 1443208230000,
    "value" : 100.0
  }, {
    "valueType" : "thold-c",
    "timestamp" : 1443208290000,
    "value" : 100.0
  }, {
    "valueType" : "thold-w",
    "timestamp" : 1443208110000,
    "value" : 90.0
  }, {
    "valueType" : "thold-w",
    "timestamp" : 1443208170000,
    "value" : 90.0
  }, {
    "valueType" : "thold-w",
    "timestamp" : 1443208230000,
    "value" : 90.0
  }, {
    "valueType" : "thold-w",
    "timestamp" : 1443208290000,
    "value" : 90.0
  } ]
}
1.16 Audit Log Examples with Curl

(toc)

1.16.1 Retrieve Audit Logs for a Host Using XML

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost/foundation-webapp/api/auditlogs/server_2?first=0&count=2"

XML Response:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<auditLogs>
    <auditLog auditLogId="30" subsystem="SV" hostName="server_2" action="DELETE" description="Test deletion server 2." username="admin" timestamp="2014-09-26T14:03:24.515-0600" serviceDescription="network_users"/>
    <auditLog auditLogId="29" subsystem="SV" hostName="server_2" action="ADD" description="Test addition server 2." username="admin" timestamp="2014-09-26T14:03:24.515-0600" serviceDescription="local_processes"/>
</auditLogs>
1.16.2 Retrieve Audit Logs for a Host and Service Using JSON

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" "http://localhost/foundation-webapp/api/auditlogs/server_2/local_processes?first=0&count=1"

JSON Response:

{
  "auditLogs": [ {
    "auditLogId" : 32,
    "subsystem" : "SV",
    "hostName" : "server_2",
    "action" : "ADD",
    "description" : "Test addition server 2.",
    "username" : "admin",
    "timestamp" : "2014-09-26T14:03:25.600-0600",
    "serviceDescription" : "local_processes"
  } ]
}
1.16.3 Retrieve Audit Logs by Query Using JSON

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" "http://localhost/foundation-webapp/api/auditlogs?query=hostName%20%3D%20'server_2'%20ORDER%20BY%20timestamp%20DESC,%20auditLogId%20DESC&first=0&count=2"

JSON Response:

{
  "auditLogs": [ {
    "auditLogId" : 33,
    "subsystem" : "SV",
    "hostName" : "server_2",
    "action" : "DELETE",
    "description" : "Test deletion server 2.",
    "username" : "admin",
    "timestamp" : "2014-09-26T14:03:25.600-0600",
    "serviceDescription" : "network_users"
  }, {
    "auditLogId" : 32,
    "subsystem" : "SV",
    "hostName" : "server_2",
    "action" : "ADD",
    "description" : "Test addition server 2.",
    "username" : "admin",
    "timestamp" : "2014-09-26T14:03:25.600-0600",
    "serviceDescription" : "local_processes"
  } ]
}
1.16.4 Create Audit Log Asynchronously Using XML

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d '<auditLogs><auditLog subsystem="Console" hostName="server_1" action="MODIFY" description="Test modification server 1." username="admin"/></auditLogs>' -H "Content-Type: application/xml" -H "Accept: application/xml" "http://localhost/foundation-webapp/api/auditlogs

XML Response:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<results successful="1" failed="0" entityType="AuditLog Async" operation="Insert" warning="0" count="1">
    <result><entity>1411761803932</entity><message>Job 1411761803932 submitted</message><status>success</status></result>
</results>
1.16.5 Create Audit Logs Synchronously Using JSON

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d '{"auditLogs": [{"subsystem": "SV", "hostName": "server_2", "action": "ADD", "description": "Test addition server 2.", "username": "admin", "serviceDescription": "local_processes"}, {"subsystem": "SV", "hostName": "server_2", "action": "DELETE", "description": "Test deletion server 2.", "username": "admin", "serviceDescription": "network_users"}]}' -H "Content-Type: application/json" -H "Accept: application/json" "http://localhost/foundation-webapp/api/auditlogs?async=false"

JSON Response:

{
  "successful" : 2,
  "failed" : 0,
  "entityType" : "AuditLog",
  "operation" : "Insert",
  "warning" : 0,
  "results" : [ {
    "entity" : "com.groundwork.collage.model.impl.AuditLog@7aec81d5[auditLogId=94,subsystem=SV,hostName=server_2,action=ADD,description=Test addition server 2.,username=admin,timestamp=Fri Oct 24 11:40:43 MDT 2014,serviceDescription=local_processes]",
    "status" : "success",
    "message" : "AuditLog saved"
  }, {
    "entity" : "com.groundwork.collage.model.impl.AuditLog@3d4005ff[auditLogId=95,subsystem=SV,hostName=server_2,action=DELETE,description=Test deletion server 2.,username=admin,timestamp=Fri Oct 24 11:40:43 MDT 2014,serviceDescription=network_users]",
    "status" : "success",
    "message" : "AuditLog saved"
  } ],
  "count" : 2
}
1.17 Host Identity Examples with Curl

(toc)

1.17.1 Retrieve Host Identity by Host Name Using XML

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/hostidentities/TEST-HOST-NAME-0"

XML Response:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<hostIdentity hostIdentityId="11c2d250-6437-11e4-9584-002219ed08d3" hostName="test-host-name-0" host="false"><hostNames><hostName>test-host-name-0</hostName></hostNames></hostIdentity>
1.17.2 Retrieve All Host Identities Using JSON

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" "http://localhost/foundation-webapp/api/hostidentities?first=0&count=2"

JSON Response:

{
  "hostIdentities" : [ {
    "hostIdentityId" : "1267adf2-6437-11e4-82be-002219ed08d3",
    "hostName" : "test-host-name-0",
    "hostNames" : [ "test-host-name-0" ],
    "host" : false
  }, {
    "hostIdentityId" : "12c545e8-6437-11e4-82bf-002219ed08d3",
    "hostName" : "test-host-name-1",
    "hostNames" : [ "test-host-name-1", "test-host-name-1.0", "test-host-name-1.1" ],
    "host" : false
  } ]
}
1.17.3 Retrieve Host Identities by Query Using JSON

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" "http://localhost/foundation-webapp/api/hostidentities?query=hostName%20like%20%27test-host-name-%25%27%20ORDER%20BY%20hostName"

JSON Response:

{
  "hostIdentities" : [ {
    "hostIdentityId" : "1267adf2-6437-11e4-82be-002219ed08d3",
    "hostName" : "test-host-name-0",
    "hostNames" : [ "test-host-name-0" ],
    "host" : false
  }, {
    "hostIdentityId" : "12c545e8-6437-11e4-82bf-002219ed08d3",
    "hostName" : "test-host-name-1",
    "hostNames" : [ "test-host-name-1", "test-host-name-1.0", "test-host-name-1.1" ],
    "host" : false
  }, {
    "hostIdentityId" : "8fb9a880-f093-4892-a0f3-b1a403b49e5e",
    "hostName" : "test-host-name-2",
    "hostNames" : [ "9e1b25a0-e036-4ce1-bf01-56c9cc8934ce", "test-host-name-2" ],
    "host" : false
  } ]
}
1.17.4 Create Host Identity Asynchronously Using XML

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d '<hostIdentities><hostIdentity hostName="test-host-name-0"><hostNames><hostName>test-host-name-0</hostName></hostNames></hostIdentity></hostIdentities>' -H "Content-Type: application/xml" -H "Accept: application/xml" "http://localhost/foundation-webapp/api/hostidentities?async=true

XML Response:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<results successful="1" failed="0" entityType="HostIdentity Async" operation="Insert" warning="0" count="1">
    <result><entity>1415114840770</entity><message>Job 1415114840770 submitted</message><status>success</status></result>
</results>
1.17.5 Create Host Identities Synchronously Using JSON

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d '{"hostIdentities":[{"hostName":"test-host-name-1","hostNames":["test-host-name-1.0","test-host-name-1.1","test-host-name-1"]},{"hostIdentityId":"8fb9a880-f093-4892-a0f3-b1a403b49e5e","hostName":"test-host-name-2","hostNames":["9e1b25a0-e036-4ce1-bf01-56c9cc8934ce","test-host-name-2"]}]}' -H "Content-Type: application/json" -H "Accept: application/json" "http://localhost/foundation-webapp/api/hostidentities

JSON Response:

{
  "successful" : 2,
  "failed" : 0,
  "entityType" : "HostIdentity",
  "operation" : "Insert",
  "warning" : 0,
  "results" : [ {
    "entity" : "test-host-name-1",
    "status" : "success",
    "message" : "http://localhost:8080/foundation-webapp/api/hostidentities/test-host-name-1"
  }, {
    "entity" : "test-host-name-2",
    "status" : "success",
    "message" : "http://localhost:8080/foundation-webapp/api/hostidentities/test-host-name-2"
  } ],
  "count" : 2
}
1.17.6 Update Host Identity Using XML

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d '<hostIdentities><hostIdentity hostIdentityId="12042cdc-6437-11e4-9585-002219ed08d3" hostName="test-host-name-1-changed"><hostNames><hostName>test-host-name-1-changed-alias</hostName></hostNames></hostIdentity></hostIdentities>' -H "Content-Type: application/xml" -H "Accept: application/xml" "http://localhost/foundation-webapp/api/hostidentities

XML Response:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<results successful="1" failed="0" entityType="HostIdentity" operation="Update" warning="0" count="1">
    <result><entity>12042cdc-6437-11e4-9585-002219ed08d3</entity><message>http://localhost:8080/foundation-webapp/api/hostidentities/test-host-name-1-changed</message><status>success</status></result>
</results>
1.17.7 Clear Host Identity Using JSON

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X DELETE -H "Accept: application/json" "http://localhost/foundation-webapp/api/hostidentities/test-host-name-1?clear=true"

JSON Response:

{
  "successful" : 1,
  "failed" : 0,
  "entityType" : "HostIdentity",
  "operation" : "Clear",
  "warning" : 0,
  "results" : [ {
    "entity" : "test-host-name-1",
    "status" : "success",
    "message" : "HostIdentity cleared"
  } ],
  "count" : 1
}
1.17.8 Delete Host Identities Using XML

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X DELETE -d '<hostIdentities><hostIdentity hostIdentityId="12042cdc-6437-11e4-9585-002219ed08d3" hostName="test-host-name-1-changed"><hostNames><hostName>test-host-name-1</hostName><hostName>test-host-name-1-changed</hostName><hostName>test-host-name-1-changed-alias</hostName></hostNames></hostIdentity><hostIdentity hostIdentityId="5d33537c-293e-4564-b0cf-d0998389b31f" hostName="test-host-name-2"><hostNames><hostName>test-host-name-2</hostName><hostName>46eb4a5b-a08e-470b-9be7-8108aa5a2cc7</hostName></hostNames></hostIdentity></hostIdentities>' -H "Content-Type: application/xml" -H "Accept: application/xml" "http://localhost/foundation-webapp/api/hostidentities"

XML Response:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<results successful="2" failed="0" entityType="HostIdentity" operation="Delete" warning="0" count="2">
    <result><entity>12042cdc-6437-11e4-9585-002219ed08d3</entity><message>HostIdentity deleted</message><status>success</status></result>
    <result><entity>5d33537c-293e-4564-b0cf-d0998389b31f</entity><message>HostIdentity deleted</message><status>success</status></result>
</results>
1.17.9 Host Identity Autocomplete Using XML

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost/foundation-webapp/api/hostidentities/autocomplete/local"

XML Response:

<names>
    <name>localhost</name>
    <name>localhost2</name>
</names>
1.18 Host Blacklist Examples with Curl

(toc)

1.18.1 Retrieve Host Blacklist by Host Name Using XML

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/hostblacklists/test-host-name-0"

XML Response:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<hostBlacklist hostBlacklistId="10" hostName="test-host-name-0"/>
1.18.2 Retrieve All Host Blacklists Using JSON

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" "http://localhost/foundation-webapp/api/hostblacklists?first=0&count=2"

JSON Response:

{
  "hostBlacklists" : [ {
    "hostBlacklistId" : 12,
    "hostName" : "test-host-name-0"
  }, {
    "hostBlacklistId" : 13,
    "hostName" : "test-host-name-1"
  } ]
}
1.18.3 Retrieve Host Blacklists by Query Using JSON

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" "http://localhost/foundation-webapp/api/hostblacklists?query=hostName%20like%20%27test-host-name-%25%27%20ORDER%20BY%20hostName"

JSON Response:

{
  "hostBlacklists" : [ {
    "hostBlacklistId" : 12,
    "hostName" : "test-host-name-0"
  }, {
    "hostBlacklistId" : 13,
    "hostName" : "test-host-name-1"
  }, {
    "hostBlacklistId" : 14,
    "hostName" : "test-host-name-2"
  } ]
}
1.18.4 Create Host Blacklist Using XML

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d '<hostBlacklists><hostBlacklist hostName="test-host-name-0"/></hostBlacklists>' -H "Content-Type: application/xml" -H "Accept: application/xml" "http://localhost/foundation-webapp/api/hostblacklists

XML Response:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<results successful="1" failed="0" entityType="HostBlacklist" operation="Insert" warning="0" count="3">
    <result><entity>test-host-name-0</entity><location>http://localhost:8080/foundation-webapp/api/hostblacklists/test-host-name-0</location><status>success</status></result>
</results>
1.18.5 Create Host Blacklists Using JSON

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d '{"hostBlacklists":[{"hostName":"test-host-name-1"},{"hostBlacklistId":"8fb9a880-f093-4892-a0f3-b1a403b49e5e","hostName":"test-host-name-2"}]}' -H "Content-Type: application/json" -H "Accept: application/json" "http://localhost/foundation-webapp/api/hostblacklists

JSON Response:

{
  "successful" : 2,
  "failed" : 0,
  "entityType" : "HostBlacklist",
  "operation" : "Insert",
  "warning" : 0,
  "results" : [ {
    "entity" : "test-host-name-1",
    "status" : "success",
    "message" : "http://localhost:8080/foundation-webapp/api/hostblacklists/test-host-name-1"
  }, {
    "entity" : "test-host-name-2",
    "status" : "success",
    "message" : "http://localhost:8080/foundation-webapp/api/hostblacklists/test-host-name-2"
  } ],
  "count" : 2
}
1.18.6 Update Host Blacklist Using XML

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d '<hostBlacklists><hostBlacklist hostBlacklistId="11" hostName="test-host-name-1-changed"/></hostBlacklists>' -H "Content-Type: application/xml" -H "Accept: application/xml" "http://localhost/foundation-webapp/api/hostblacklists

XML Response:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<results successful="1" failed="0" entityType="HostBlacklist" operation="Update" warning="0" count="1">
    <result><entity>11</entity><message>http://localhost:8080/foundation-webapp/api/hostblacklists/test-host-name-1-changed</message><status>success</status></result>
</results>
1.18.7 Delete Host Blacklists Using XML

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X DELETE -d '<hostBlacklists><hostBlacklist hostBlacklistId="11" hostName="test-host-name-1-changed"/><hostBlacklist hostBlacklistId="12" hostName="test-host-name-2"/></hostBlacklists>' -H "Content-Type: application/xml" -H "Accept: application/xml" "http://localhost/foundation-webapp/api/hostblacklists

XML Response:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<results successful="2" failed="0" entityType="HostBlacklist" operation="Delete" warning="0" count="2">
    <result><entity>11</entity><message>HostBlacklist deleted</message><status>success</status></result>
    <result><entity>12</entity><message>HostBlacklist deleted</message><status>success</status></result>
</results>
1.19 Biz Downtime Examples with Curl

(toc)

1.19.1 Set Service In Downtime Using XML

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d '<bizHostsAndServices><hostNames><hostName>localhost</hostName></hostNames><serviceDescriptions><serviceDescription>local_memory</serviceDescription></serviceDescriptions></bizHostsAndServices>' -H "Content-Type: application/xml" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/biz/setindowntime"

XML Response:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<bizHostServiceInDowntimes>
  <bizHostServiceInDowntime hostName="localhost" serviceDescription="local_memory" scheduledDowntimeDepth="1" entityType="SERVICE_STATUS" entityName="local_memory"/>
</bizHostServiceInDowntimes>
1.19.2 Set Host Group In Downtime Using JSON

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d '{"hostNames":["*"],"hostGroupNames":["Linux Servers"]}' -H "Content-Type: application/json" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/biz/setindowntime"

JSON Response:

{
  "bizHostServiceInDowntimes" : [ {
    "hostName" : "localhost",
    "scheduledDowntimeDepth" : 1,
    "entityType" : "HOSTGROUP",
    "entityName" : "Linux Servers"
  } ]
}
1.19.3 Clear In Downtime Using XML

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d '<bizHostServiceInDowntimes><bizHostServiceInDowntime hostName="localhost" serviceDescription="local_memory" scheduledDowntimeDepth="1" entityType="SERVICE_STATUS" entityName="local_memory"/></bizHostServiceInDowntimes>' -H "Content-Type: application/xml" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/biz/clearindowntime"

XML Response:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<bizHostServiceInDowntimes>
  <bizHostServiceInDowntime hostName="localhost" serviceDescription="local_memory" scheduledDowntimeDepth="0" entityType="SERVICE_STATUS" entityName="local_memory"/>
</bizHostServiceInDowntimes>
1.19.4 Clear In Downtime Using JSON

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d '{"bizHostServiceInDowntimes":[{"hostName":"localhost","scheduledDowntimeDepth":1,"entityType":"HOSTGROUP","entityName":"Linux Servers"}]}' -H "Content-Type: application/json" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/biz/clearindowntime"

JSON Response:

{
  "bizHostServiceInDowntimes" : [ {
    "hostName" : "localhost",
    "scheduledDowntimeDepth" : 1,
    "entityType" : "HOSTGROUP",
    "entityName" : "Linux Servers"
  } ]
}
1.19.5 Get In Downtime Using XML

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d '<bizHostServiceInDowntimes><bizHostServiceInDowntime hostName="localhost" serviceDescription="local_memory"/></bizHostServiceInDowntimes>' -H "Content-Type: application/xml" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/biz/getindowntime"

XML Response:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<bizHostServiceInDowntimes>
  <bizHostServiceInDowntime hostName="localhost" serviceDescription="local_memory" scheduledDowntimeDepth="1"/>
</bizHostServiceInDowntimes>
1.19.6 Get In Downtime Using JSON

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d '{"bizHostServiceInDowntimes":[{"hostName":"localhost"}]}' -H "Content-Type: application/json" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/biz/getindowntime"

JSON Response:

{
  "bizHostServiceInDowntimes" : [ {
    "hostName" : "localhost",
    "scheduledDowntimeDepth" : 1
  } ]
}
1.20 Device Template Profile Examples with Curl

(toc)

1.20.1 Retrieve Device Template Profile by Device Identification Using XML

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/devicetemplateprofiles/test-device-identification-0"

XML Response:

<deviceTemplateProfile deviceTemplateProfileId="37" deviceIdentification="test-device-identification-0" deviceDescription="test device identification 0" timestamp="2014-11-26T11:01:29.516-0700"/>
1.20.2 Retrieve All Device Template Profiles Using JSON

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" "http://localhost/foundation-webapp/api/devicetemplateprofiles?first=0&count=2"

JSON Response:

{
  "deviceTemplateProfiles" : [ {
    "deviceTemplateProfileId" : 34,
    "deviceIdentification" : "test-device-identification-0",
    "deviceDescription" : "test device identification 0",
    "timestamp" : "2014-11-26T11:01:29.056-0700"
  }, {
    "deviceTemplateProfileId" : 35,
    "deviceIdentification" : "test-device-identification-1",
    "deviceDescription" : "test device identification 1",
    "cactiHostTemplate" : "cacti-host-template",
    "timestamp" : "2014-11-26T11:01:29.056-0700"
  } ]
}
1.20.3 Retrieve Device Template Profiles by Query Using JSON

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" "http://localhost/foundation-webapp/api/devicetemplateprofiles?query=deviceIdentification%20like%20%27test-device-identification-%25%27%20ORDER%20BY%20deviceIdentification"

JSON Response:

{
  "deviceTemplateProfiles" : [ {
    "deviceTemplateProfileId" : 34,
    "deviceIdentification" : "test-device-identification-0",
    "deviceDescription" : "test device identification 0",
    "timestamp" : "2014-11-26T11:01:29.056-0700"
  }, {
    "deviceTemplateProfileId" : 35,
    "deviceIdentification" : "test-device-identification-1",
    "deviceDescription" : "test device identification 1",
    "cactiHostTemplate" : "cacti-host-template",
    "timestamp" : "2014-11-26T11:01:29.056-0700"
  }, {
    "deviceTemplateProfileId" : 36,
    "deviceIdentification" : "test-device-identification-2",
    "deviceDescription" : "test device identification 2",
    "monarchHostProfile" : "monarch-host-profile",
    "timestamp" : "2014-11-26T11:01:29.056-0700"
  } ]
}
1.20.4 Create Device Template Profile Using XML

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d '<deviceTemplateProfiles><deviceTemplateProfile deviceIdentification="test-device-identification-0" deviceDescription="test device identification 0"/></deviceTemplateProfiles>' -H "Content-Type: application/xml" -H "Accept: application/xml" "http://localhost/foundation-webapp/api/devicetemplateprofiles"

XML Response:

<results successful="1" failed="0" entityType="DeviceTemplateProfile" operation="Insert" warning="0" count="1">
    <result><entity>test-device-identification-0</entity><location>http://localhost:8080/foundation-webapp/api/devicetemplateprofiles/test-device-identification-0</location><status>success</status></result>
</results>
1.20.5 Create Device Template Profiles Using JSON

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d '{"deviceTemplateProfiles":[{"deviceIdentification":"test-device-identification-0","deviceDescription":"test device identification 0"},{"deviceIdentification":"test-device-identification-1","deviceDescription":"test device identification 1","cactiHostTemplate":"cacti-host-template"},{"deviceIdentification":"test-device-identification-2","deviceDescription":"test device identification 2","monarchHostProfile":"monarch-host-profile"}]}' -H "Content-Type: application/json" -H "Accept: application/json" "http://localhost/foundation-webapp/api/devicetemplateprofiles"

JSON Response:

{
  "successful" : 3,
  "failed" : 0,
  "entityType" : "DeviceTemplateProfile",
  "operation" : "Insert",
  "warning" : 0,
  "results" : [ {
    "entity" : "test-device-identification-0",
    "status" : "success",
    "location" : "http://localhost:8080/foundation-webapp/api/devicetemplateprofiles/test-device-identification-0"
  }, {
    "entity" : "test-device-identification-1",
    "status" : "success",
    "location" : "http://localhost:8080/foundation-webapp/api/devicetemplateprofiles/test-device-identification-1"
  }, {
    "entity" : "test-device-identification-2",
    "status" : "success",
    "location" : "http://localhost:8080/foundation-webapp/api/devicetemplateprofiles/test-device-identification-2"
  } ],
  "count" : 3
}
1.20.6 Update Device Template Profile Using XML

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d '<deviceTemplateProfiles><deviceTemplateProfile deviceIdentification="test-device-identification-1-changed" deviceDescription="test device identification 1 changed" monarchHostProfile="monarch-host-profile"/></deviceTemplateProfiles>' -H "Content-Type: application/xml" -H "Accept: application/xml" "http://localhost/foundation-webapp/api/devicetemplateprofiles"

XML Response:

<results successful="1" failed="0" entityType="DeviceTemplateProfile" operation="Update" warning="0" count="1">
    <result><entity>test-device-identification-1-changed</entity><location>http://localhost:8080/foundation-webapp/api/devicetemplateprofiles/test-device-identification-1-changed</location><status>success</status></result>
</results>
1.20.7 Clear Device Template Profile Using JSON

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X DELETE -H "Accept: application/xml" "http://localhost/foundation-webapp/api/devicetemplateprofiles/test-device-identification-2?clear=true"

JSON Response:

{
  "successful" : 1,
  "failed" : 0,
  "entityType" : "DeviceTemplateProfile",
  "operation" : "Clear",
  "warning" : 0,
  "results" : [ {
    "entity" : "test-device-identification-2",
    "status" : "success",
    "message" : "DeviceTemplateProfile cleared"
  } ],
  "count" : 1
}
1.20.8 Delete Device Template Profiles Using XML

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X DELETE -d '<deviceTemplateProfiles><deviceTemplateProfile deviceTemplateProfileId="38" deviceIdentification="test-device-identification-1-changed" deviceDescription="test device identification 1 changed" monarchHostProfile="monarch-host-profile" timestamp="2014-11-25T20:45:33.674-0700"/><deviceTemplateProfile deviceTemplateProfileId="39" deviceIdentification="test-device-identification-2" deviceDescription="test device identification 2" monarchHostProfile="monarch-host-profile" timestamp="2014-11-25T20:45:33.264-0700"/></deviceTemplateProfiles>' -H "Content-Type: application/xml" -H "Accept: application/xml" "http://localhost/foundation-webapp/api/devicetemplateprofiles"

XML Response:

<results successful="2" failed="0" entityType="DeviceTemplateProfile" operation="Delete" warning="0" count="2">
    <result><entity>38</entity><message>DeviceTemplateProfile deleted</message><status>success</status></result>
    <result><entity>39</entity><message>DeviceTemplateProfile deleted</message><status>success</status></result>
</results>
1.21 Custom Group Examples with Curl

(toc)

1.21.1 Retrieve A Single Custom Group

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/customgroups/TEST-CUSTOM-GROUP-0"

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/customgroups/TEST-CUSTOM-GROUP-0"

Results:

{
  "id" : 11,
  "name" : "TEST-CUSTOM-GROUP-0",
  "description" : "TEST-CUSTOM-GROUP-0",
  "appType" : "NAGIOS",
  "agentId" : "TEST-AGENT",
  "root" : true,
  "hostGroups" : [ {
    "id" : 4,
    "name" : "TEST-HOST-GROUP-0",
    "alias" : "TEST-HOST-GROUP-0",
    "appType" : "NAGIOS"
  } ]
}
<customGroup id="15" name="TEST-CUSTOM-GROUP-0" description="TEST-CUSTOM-GROUP-0" appType="NAGIOS" agentId="TEST-AGENT" root="true">
  <hostGroups>
    <hostGroup id="4" name="TEST-HOST-GROUP-0" alias="TEST-HOST-GROUP-0" appType="NAGIOS"/>
  </hostGroups>
</customGroup>
1.21.2 Retrieve All Custom Groups

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/customgroups/"

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/customgroups/"

Results:

{
  "customGroups" : [ {
    "id" : 11,
    "name" : "TEST-CUSTOM-GROUP-0",
    "description" : "TEST-CUSTOM-GROUP-0",
    "appType" : "NAGIOS",
    "agentId" : "TEST-AGENT",
    "root" : true,
    "hostGroups" : [ {
      "id" : 4,
      "name" : "TEST-HOST-GROUP-0",
      "alias" : "TEST-HOST-GROUP-0",
      "appType" : "NAGIOS"
    } ]
  }, {
    "id" : 12,
    "name" : "TEST-CUSTOM-GROUP-1",
    "agentId" : "TEST-AGENT",
    "root" : true,
    "serviceGroups" : [ {
      "id" : 10,
      "name" : "TEST-SERVICE-GROUP-0"
    } ]
  }, {
    "id" : 13,
    "name" : "TEST-CUSTOM-GROUP-2",
    "appType" : "NAGIOS",
    "root" : true
  }, {
    "id" : 14,
    "name" : "TEST-CUSTOM-GROUP-3",
    "root" : true
  } ]
}
<customGroups>
  <customGroup id="15" name="TEST-CUSTOM-GROUP-0" description="TEST-CUSTOM-GROUP-0" appType="NAGIOS" agentId="TEST-AGENT"  root="true">
    <hostGroups>
      <hostGroup id="4" name="TEST-HOST-GROUP-0" alias="TEST-HOST-GROUP-0" appType="NAGIOS"/>
    </hostGroups>
  </customGroup>
  <customGroup id="16" name="TEST-CUSTOM-GROUP-1" agentId="TEST-AGENT" root="true">
    <serviceGroups>
      <serviceGroup id="10" name="TEST-SERVICE-GROUP-0"/>
    </serviceGroups>
  </customGroup>
  <customGroup id="17" name="TEST-CUSTOM-GROUP-2" appType="NAGIOS" root="true"/>
  <customGroup id="18" name="TEST-CUSTOM-GROUP-3" root="true"/>
</customGroups>
1.21.3 Retrieve Custom Groups by Query (encoded)

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/customgroups?query=name%20like%20%27TEST-CUSTOM-GROUP-%25%27%20order%20by%20name%20asc&first=0&count=2"

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/customgroups?query=name%20like%20%27TEST-CUSTOM-GROUP-%25%27%20order%20by%20name%20asc&first=0&count=2"

Results:

{
  "customGroups" : [ {
    "id" : 11,
    "name" : "TEST-CUSTOM-GROUP-0",
    "description" : "TEST-CUSTOM-GROUP-0",
    "appType" : "NAGIOS",
    "agentId" : "TEST-AGENT",
    "root" : true,
    "hostGroups" : [ {
      "id" : 4,
      "name" : "TEST-HOST-GROUP-0",
      "alias" : "TEST-HOST-GROUP-0",
      "appType" : "NAGIOS"
    } ]
  }, {
    "id" : 12,
    "name" : "TEST-CUSTOM-GROUP-1",
    "agentId" : "TEST-AGENT",
    "root" : true,
    "serviceGroups" : [ {
      "id" : 10,
      "name" : "TEST-SERVICE-GROUP-0"
    } ]
  } ]
}
<customGroups>
  <customGroup id="15" name="TEST-CUSTOM-GROUP-0" description="TEST-CUSTOM-GROUP-0" appType="NAGIOS" agentId="TEST-AGENT"  root="true">
    <hostGroups>
      <hostGroup id="4" name="TEST-HOST-GROUP-0" alias="TEST-HOST-GROUP-0" appType="NAGIOS"/>
    </hostGroups>
  </customGroup>
  <customGroup id="16" name="TEST-CUSTOM-GROUP-1" agentId="TEST-AGENT" root="true">
    <serviceGroups>
      <serviceGroup id="10" name="TEST-SERVICE-GROUP-0"/>
    </serviceGroups>
  </customGroup>
</customGroups>
1.21.4 Store Custom Groups

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d '{"customGroups" : [{"name" : "TEST-CUSTOM-GROUP-0", "description" : "TEST-CUSTOM-GROUP-0", "appType" : "NAGIOS", "agentId" : "TEST-AGENT", "hostGroupNames" : ["TEST-HOST-GROUP-0"]}, {"name" : "TEST-CUSTOM-GROUP-1", "agentId" : "TEST-AGENT", "serviceGroupNames" : ["TEST-SERVICE-GROUP-0"]}, {"name" : "TEST-CUSTOM-GROUP-2", "appType" : "NAGIOS"}, {"name" : "TEST-CUSTOM-GROUP-3"}]}' -H "Content-Type: application/json" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/customgroups"

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d '<customGroups><customGroup name="TEST-CUSTOM-GROUP-0" description="TEST-CUSTOM-GROUP-0" appType="NAGIOS" agentId="TEST-AGENT"><hostGroupNames><hostGroupName>TEST-HOST-GROUP-0</hostGroupName></hostGroupNames></customGroup><customGroup name="TEST-CUSTOM-GROUP-1" agentId="TEST-AGENT"><serviceGroupNames><serviceGroupName>TEST-SERVICE-GROUP-0</serviceGroupName></serviceGroupNames></customGroup><customGroup name="TEST-CUSTOM-GROUP-2" appType="NAGIOS"/><customGroup name="TEST-CUSTOM-GROUP-3"/></customGroups>' -H "Content-Type: application/xml" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/customgroups"

Results:

{
  "successful" : 4,
  "failed" : 0,
  "entityType" : "CustomGroup",
  "operation" : "Update",
  "warning" : 0,
  "results" : [ {
    "entity" : "TEST-CUSTOM-GROUP-0",
    "status" : "success",
    "location" : "http://localhost:8080/foundation-webapp/api/customgroups/TEST-CUSTOM-GROUP-0"
  }, {
    "entity" : "TEST-CUSTOM-GROUP-1",
    "status" : "success",
    "location" : "http://localhost:8080/foundation-webapp/api/customgroups/TEST-CUSTOM-GROUP-1"
  }, {
    "entity" : "TEST-CUSTOM-GROUP-2",
    "status" : "success",
    "location" : "http://localhost:8080/foundation-webapp/api/customgroups/TEST-CUSTOM-GROUP-2"
  }, {
    "entity" : "TEST-CUSTOM-GROUP-3",
    "status" : "success",
    "location" : "http://localhost:8080/foundation-webapp/api/customgroups/TEST-CUSTOM-GROUP-3"
  } ],
  "count" : 4
}
<results successful="4" failed="0" entityType="CustomGroup" operation="Update" warning="0" count="4">
  <result>
    <entity>TEST-CUSTOM-GROUP-0</entity>
    <location>http://localhost:8080/foundation-webapp/api/customgroups/TEST-CUSTOM-GROUP-0</location>
    <status>success</status>
  </result>
  <result>
    <entity>TEST-CUSTOM-GROUP-1</entity>
    <location>http://localhost:8080/foundation-webapp/api/customgroups/TEST-CUSTOM-GROUP-1</location>
    <status>success</status>
  </result>
  <result>
    <entity>TEST-CUSTOM-GROUP-2</entity>
    <location>http://localhost:8080/foundation-webapp/api/customgroups/TEST-CUSTOM-GROUP-2</location>
    <status>success</status>
  </result>
  <result>
    <entity>TEST-CUSTOM-GROUP-3</entity>
    <location>http://localhost:8080/foundation-webapp/api/customgroups/TEST-CUSTOM-GROUP-3</location>
    <status>success</status>
  </result>
</results>
1.21.5 Add/Delete Custom Group Members

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X PUT -d '{"name" : "TEST-CUSTOM-GROUP-0", "hostGroupNames" : ["TEST-HOST-GROUP-1"]}' -H "Content-Type: application/json" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/customgroups/addmembers"

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X PUT -d '{"name" : "TEST-CUSTOM-GROUP-1", "serviceGroupNames" : ["TEST-SERVICE-GROUP-0"]}' -H "Content-Type: application/json" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/customgroups/deletemembers"

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X PUT -d '<customGroup name="TEST-CUSTOM-GROUP-0"><hostGroupNames><hostGroupName>TEST-HOST-GROUP-1</hostGroupName></hostGroupNames></customGroup>' -H "Content-Type: application/xml" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/customgroups/addmembers"

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X PUT -d '<customGroup name="TEST-CUSTOM-GROUP-1"><serviceGroupNames><serviceGroupName>TEST-SERVICE-GROUP-0</serviceGroupName></serviceGroupNames></customGroup>' -H "Content-Type: application/xml" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/customgroups/deletemembers"

Results:

{
  "successful" : 1,
  "failed" : 0,
  "entityType" : "CustomGroup",
  "operation" : "Update",
  "warning" : 0,
  "results" : [ {
    "entity" : "TEST-CUSTOM-GROUP-0",
    "status" : "success",
    "location" : "http://localhost:8080/foundation-webapp/api/customgroups/TEST-CUSTOM-GROUP-0"
  } ],
  "count" : 1
}
<results successful="1" failed="0" entityType="CustomGroup" operation="Update" warning="0" count="1">
  <result>
    <entity>TEST-CUSTOM-GROUP-1</entity>
    <location>http://localhost:8080/foundation-webapp/api/customgroups/TEST-CUSTOM-GROUP-1</location>
    <status>success</status>
  </result>
</results>
1.21.6 Delete Custom Groups

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X DELETE -d '{"customGroups" : [{"name" : "TEST-CUSTOM-GROUP-0"}, {"name" : "TEST-CUSTOM-GROUP-1"}, {"name" : "TEST-CUSTOM-GROUP-2"}, {"name" : "TEST-CUSTOM-GROUP-3"}]}' -H "Content-Type: application/json" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/customgroups"

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X DELETE -d '<customGroups><customGroup name="TEST-CUSTOM-GROUP-0"/><customGroup name="TEST-CUSTOM-GROUP-1"/><customGroup name="TEST-CUSTOM-GROUP-2"/><customGroup name="TEST-CUSTOM-GROUP-3"/></customGroups>' -H "Content-Type: application/xml" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/customgroups"

Results:

{
  "successful" : 4,
  "failed" : 0,
  "entityType" : "CustomGroup",
  "operation" : "Delete",
  "warning" : 0,
  "results" : [ {
    "entity" : "TEST-CUSTOM-GROUP-0",
    "status" : "success",
    "message" : "Custom Group TEST-CUSTOM-GROUP-0 deleted."
  }, {
    "entity" : "TEST-CUSTOM-GROUP-1",
    "status" : "success",
    "message" : "Custom Group TEST-CUSTOM-GROUP-1 deleted."
  }, {
    "entity" : "TEST-CUSTOM-GROUP-2",
    "status" : "success",
    "message" : "Custom Group TEST-CUSTOM-GROUP-2 deleted."
  }, {
    "entity" : "TEST-CUSTOM-GROUP-3",
    "status" : "success",
    "message" : "Custom Group TEST-CUSTOM-GROUP-3 deleted."
  } ],
  "count" : 4
}
<results successful="4" failed="0" entityType="CustomGroup" operation="Delete" warning="0" count="4">
  <result>
    <entity>TEST-CUSTOM-GROUP-0</entity>
    <message>Custom Group TEST-CUSTOM-GROUP-0 deleted.</message>
    <status>success</status>
  </result>
  <result>
    <entity>TEST-CUSTOM-GROUP-1</entity>
    <message>Custom Group TEST-CUSTOM-GROUP-1 deleted.</message>
    <status>success</status>
  </result>
  <result>
    <entity>TEST-CUSTOM-GROUP-2</entity>
    <message>Custom Group TEST-CUSTOM-GROUP-2 deleted.</message>
    <status>success</status>
  </result>
  <result>
    <entity>TEST-CUSTOM-GROUP-3</entity>
    <message>Custom Group TEST-CUSTOM-GROUP-3 deleted.</message>
    <status>success</status>
  </result>
</results>
1.21.7 Custom Group Autocomplete Using XML

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost/foundation-webapp/api/customgroups/autocomplete/cg"

XML Response:

<names>
    <name>CG1</name>
    <name>CG2</name>
</names>
1.22 Service Group Examples with Curl

(toc)

1.22.1 Retrieve A Single Service Group

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/servicegroups/SG-200"

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/servicegroups/SG-200"

Results, (service properties elided here for the sake of brevity):

{
  "id" : 29,
  "name" : "SG-200",
  "description" : "Service Group 200",
  "appType" : "VEMA",
  "appTypeDisplayName" : "VEMA",
  "agentId" : "Agent-007",
  "services" : [ {
    "properties" : {
    },
    "id" : 2,
    "appType" : "NAGIOS",
    "description" : "local_cpu_java",
    "monitorStatus" : "OK",
    "lastCheckTime" : "2013-05-22T10:37:15.000-0600",
    "nextCheckTime" : "2013-05-22T10:47:15.000-0600",
    "lastStateChange" : "2013-05-17T08:57:15.000-0600",
    "hostName" : "localhost",
    "stateType" : "HARD",
    "checkType" : "ACTIVE",
    "lastHardState" : "PENDING",
    "monitorServer" : "localhost",
    "deviceIdentification" : "127.0.0.1",
    "lastPlugInOutput" : "1^^^3^^^0^^^05/17/2013 08:57:15 AM^^^OK - total %CPU for process java : 2.8^^^%CPU=2.8;40;50"
  }, {
    "properties" : {
    },
    "id" : 4,
    "appType" : "NAGIOS",
    "description" : "local_cpu_perl",
    "monitorStatus" : "OK",
    "lastCheckTime" : "2013-05-22T10:36:13.000-0600",
    "nextCheckTime" : "2013-05-22T10:46:13.000-0600",
    "lastStateChange" : "2013-05-17T08:46:12.000-0600",
    "hostName" : "localhost",
    "stateType" : "HARD",
    "checkType" : "ACTIVE",
    "lastHardState" : "PENDING",
    "monitorServer" : "localhost",
    "deviceIdentification" : "127.0.0.1",
    "lastPlugInOutput" : "1^^^3^^^0^^^05/17/2013 08:46:12 AM^^^OK - total %CPU for process perl : 0.7^^^%CPU=0.7;40;50"
  } ]
}
<serviceGroup id="30" name="SG-200" description="Service Group 200" appType="VEMA" appTypeDisplayName="VEMA" agentId="Agent-007">
  <services>
    <service id="2" appType="NAGIOS" description="local_cpu_java" monitorStatus="OK" lastCheckTime="2013-05-22T10:37:15.000-0600" nextCheckTime="2013-05-22T10:47:15.000-0600" lastStateChange="2013-05-17T08:57:15.000-0600" hostName="localhost" stateType="HARD" checkType="ACTIVE" lastHardState="PENDING" monitorServer="localhost" deviceIdentification="127.0.0.1" lastPlugInOutput="1^^^3^^^0^^^05/17/2013 08:57:15 AM^^^OK - total %CPU for process java : 2.8^^^%CPU=2.8;40;50">
      <properties/>
    </service>
    <service id="4" appType="NAGIOS" description="local_cpu_perl" monitorStatus="OK" lastCheckTime="2013-05-22T10:36:13.000-0600" nextCheckTime="2013-05-22T10:46:13.000-0600" lastStateChange="2013-05-17T08:46:12.000-0600" hostName="localhost" stateType="HARD" checkType="ACTIVE" lastHardState="PENDING" monitorServer="localhost" deviceIdentification="127.0.0.1" lastPlugInOutput="1^^^3^^^0^^^05/17/2013 08:46:12 AM^^^OK - total %CPU for process perl : 0.7^^^%CPU=0.7;40;50">
      <properties/>
    </service>
  </services>
</serviceGroup>
1.22.2 Retrieve All Service Groups

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/servicegroups/"

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/servicegroups/

Results, (service properties elided here for the sake of brevity):

{
  "serviceGroups" : [ {
    "id" : 1,
    "name" : "SG1",
    "services" : [ {
      "properties" : {
      },
      "id" : 44,
      "appType" : "NAGIOS",
      "description" : "icmp_ping_alive",
      "monitorStatus" : "OK",
      "lastCheckTime" : "2013-05-22T10:37:46.000-0600",
      "nextCheckTime" : "2013-05-22T10:47:46.000-0600",
      "lastStateChange" : "2013-05-17T10:27:46.000-0600",
      "hostName" : "qa-sles-11-64-2",
      "stateType" : "HARD",
      "checkType" : "ACTIVE",
      "lastHardState" : "PENDING",
      "monitorServer" : "localhost",
      "deviceIdentification" : "172.28.113.150",
      "lastPlugInOutput" : "1^^^3^^^0^^^05/17/2013 10:27:46 AM^^^OK - 172.28.113.150: rta 0.038ms, lost 0%^^^rta=0.036ms;3000.000;5000.000;0; pl=0%;80;100;; rtmax=0.036ms;;;; rtmin=0.036ms;;;;"
    }, {
      "properties" : {
      },
      "id" : 3,
      "appType" : "NAGIOS",
      "description" : "local_cpu_nagios",
      "monitorStatus" : "OK",
      "lastCheckTime" : "2013-05-22T10:45:43.000-0600",
      "nextCheckTime" : "2013-05-22T10:55:43.000-0600",
      "lastStateChange" : "2013-05-17T08:45:43.000-0600",
      "hostName" : "localhost",
      "stateType" : "HARD",
      "checkType" : "ACTIVE",
      "lastHardState" : "PENDING",
      "monitorServer" : "localhost",
      "deviceIdentification" : "127.0.0.1",
      "lastPlugInOutput" : "1^^^3^^^0^^^05/17/2013 08:45:43 AM^^^OK - total %CPU for process nagios : 0.0^^^%CPU=0.0;40;50"
    } ]
  }, {
    "id" : 29,
    "name" : "SG-200",
    "description" : "Service Group 200",
    "appType" : "VEMA",
    "appTypeDisplayName" : "VEMA",
    "agentId" : "Agent-007",
    "services" : [ {
      "properties" : {
      },
      "id" : 2,
      "appType" : "NAGIOS",
      "description" : "local_cpu_java",
      "monitorStatus" : "OK",
      "lastCheckTime" : "2013-05-22T10:37:15.000-0600",
      "nextCheckTime" : "2013-05-22T10:47:15.000-0600",
      "lastStateChange" : "2013-05-17T08:57:15.000-0600",
      "hostName" : "localhost",
      "stateType" : "HARD",
      "checkType" : "ACTIVE",
      "lastHardState" : "PENDING",
      "monitorServer" : "localhost",
      "deviceIdentification" : "127.0.0.1",
      "lastPlugInOutput" : "1^^^3^^^0^^^05/17/2013 08:57:15 AM^^^OK - total %CPU for process java : 2.8^^^%CPU=2.8;40;50"
    }, {
      "properties" : {
      },
      "id" : 4,
      "appType" : "NAGIOS",
      "description" : "local_cpu_perl",
      "monitorStatus" : "OK",
      "lastCheckTime" : "2013-05-22T10:36:13.000-0600",
      "nextCheckTime" : "2013-05-22T10:46:13.000-0600",
      "lastStateChange" : "2013-05-17T08:46:12.000-0600",
      "hostName" : "localhost",
      "stateType" : "HARD",
      "checkType" : "ACTIVE",
      "lastHardState" : "PENDING",
      "monitorServer" : "localhost",
      "deviceIdentification" : "127.0.0.1",
      "lastPlugInOutput" : "1^^^3^^^0^^^05/17/2013 08:46:12 AM^^^OK - total %CPU for process perl : 0.7^^^%CPU=0.7;40;50"
    } ]
  }, {
    "id" : 2,
    "name" : "web-svr",
    "services" : [ {
      "properties" : {
      },
      "id" : 26,
      "appType" : "NAGIOS",
      "description" : "http_alive",
      "monitorStatus" : "OK",
      "lastCheckTime" : "2013-05-22T10:40:41.000-0600",
      "nextCheckTime" : "2013-05-22T10:50:41.000-0600",
      "lastStateChange" : "2013-05-17T10:30:40.000-0600",
      "hostName" : "sql-2008",
      "stateType" : "HARD",
      "checkType" : "ACTIVE",
      "lastHardState" : "PENDING",
      "monitorServer" : "localhost",
      "deviceIdentification" : "172.28.113.156",
      "lastPlugInOutput" : "1^^^3^^^0^^^05/17/2013 10:30:40 AM^^^HTTP OK: HTTP/1.1 200 OK - 955 bytes in 0.002 second response time^^^time=0.002418s;4.000000;7.000000;0.000000 size=955B;;;0"
    }, {
      "properties" : {
      },
      "id" : 31,
      "appType" : "NAGIOS",
      "description" : "http_alive",
      "monitorStatus" : "UNSCHEDULED CRITICAL",
      "lastCheckTime" : "2013-05-22T10:39:21.000-0600",
      "nextCheckTime" : "2013-05-22T10:49:21.000-0600",
      "lastStateChange" : "2013-05-17T10:27:19.000-0600",
      "hostName" : "172.28.113.151",
      "stateType" : "HARD",
      "checkType" : "ACTIVE",
      "lastHardState" : "PENDING",
      "monitorServer" : "localhost",
      "deviceIdentification" : "172.28.113.151",
      "lastPlugInOutput" : "3^^^3^^^0^^^05/17/2013 10:27:19 AM^^^CRITICAL - Socket timeout after 10 seconds^^^NA^^^"
    }, {
      "properties" : {
      },
      "id" : 22,
      "appType" : "NAGIOS",
      "description" : "http_alive",
      "monitorStatus" : "OK",
      "lastCheckTime" : "2013-05-22T10:40:36.000-0600",
      "nextCheckTime" : "2013-05-22T10:50:36.000-0600",
      "lastStateChange" : "2013-05-17T10:30:35.000-0600",
      "hostName" : "qa-rh6-64-2",
      "stateType" : "HARD",
      "checkType" : "ACTIVE",
      "lastHardState" : "PENDING",
      "monitorServer" : "localhost",
      "deviceIdentification" : "172.28.113.167",
      "lastPlugInOutput" : "1^^^3^^^0^^^05/17/2013 10:30:35 AM^^^HTTP OK: HTTP/1.1 200 OK - 1269 bytes in 0.009 second response time^^^time=0.008503s;4.000000;7.000000;0.000000 size=1269B;;;0"
    }, {
      "properties" : {
      },
      "id" : 36,
      "appType" : "NAGIOS",
      "description" : "icmp_ping_alive",
      "monitorStatus" : "OK",
      "lastCheckTime" : "2013-05-22T10:42:48.000-0600",
      "nextCheckTime" : "2013-05-22T10:52:48.000-0600",
      "lastStateChange" : "2013-05-17T10:32:48.000-0600",
      "hostName" : "vm-it-xp-2",
      "stateType" : "HARD",
      "checkType" : "ACTIVE",
      "lastHardState" : "PENDING",
      "monitorServer" : "localhost",
      "deviceIdentification" : "172.28.113.164",
      "lastPlugInOutput" : "1^^^3^^^0^^^05/17/2013 10:32:48 AM^^^OK - 172.28.113.164: rta 0.422ms, lost 0%^^^rta=0.422ms;3000.000;5000.000;0; pl=0%;80;100;; rtmax=0.422ms;;;; rtmin=0.422ms;;;;"
    }, {
      "properties" : {
      },
      "id" : 51,
      "appType" : "NAGIOS",
      "description" : "icmp_ping_alive",
      "monitorStatus" : "OK",
      "lastCheckTime" : "2013-05-22T10:42:02.000-0600",
      "nextCheckTime" : "2013-05-22T10:52:02.000-0600",
      "lastStateChange" : "2013-05-17T10:32:02.000-0600",
      "hostName" : "qa-rh6-64-2",
      "stateType" : "HARD",
      "checkType" : "ACTIVE",
      "lastHardState" : "PENDING",
      "monitorServer" : "localhost",
      "deviceIdentification" : "172.28.113.167",
      "lastPlugInOutput" : "1^^^3^^^0^^^05/17/2013 10:32:02 AM^^^OK - 172.28.113.167: rta 1.064ms, lost 0%^^^rta=1.064ms;3000.000;5000.000;0; pl=0%;80;100;; rtmax=1.064ms;;;; rtmin=1.064ms;;;;"
    }, {
      "properties" : {
      },
      "id" : 44,
      "appType" : "NAGIOS",
      "description" : "icmp_ping_alive",
      "monitorStatus" : "OK",
      "lastCheckTime" : "2013-05-22T10:37:46.000-0600",
      "nextCheckTime" : "2013-05-22T10:47:46.000-0600",
      "lastStateChange" : "2013-05-17T10:27:46.000-0600",
      "hostName" : "qa-sles-11-64-2",
      "stateType" : "HARD",
      "checkType" : "ACTIVE",
      "lastHardState" : "PENDING",
      "monitorServer" : "localhost",
      "deviceIdentification" : "172.28.113.150",
      "lastPlugInOutput" : "1^^^3^^^0^^^05/17/2013 10:27:46 AM^^^OK - 172.28.113.150: rta 0.038ms, lost 0%^^^rta=0.036ms;3000.000;5000.000;0; pl=0%;80;100;; rtmax=0.036ms;;;; rtmin=0.036ms;;;;"
    }, {
      "properties" : {
      },
      "id" : 47,
      "appType" : "NAGIOS",
      "description" : "icmp_ping_alive",
      "monitorStatus" : "OK",
      "lastCheckTime" : "2013-05-22T10:39:59.000-0600",
      "nextCheckTime" : "2013-05-22T10:49:59.000-0600",
      "lastStateChange" : "2013-05-17T23:59:59.000-0600",
      "hostName" : "do-win7-1",
      "stateType" : "HARD",
      "checkType" : "ACTIVE",
      "lastHardState" : "PENDING",
      "monitorServer" : "localhost",
      "deviceIdentification" : "172.28.113.152",
      "lastPlugInOutput" : "1^^^3^^^0^^^05/17/2013 11:59:59 PM^^^OK - 172.28.113.152: rta 0.702ms, lost 0%^^^rta=0.702ms;3000.000;5000.000;0; pl=0%;80;100;; rtmax=0.702ms;;;; rtmin=0.702ms;;;;"
    }, {
      "properties" : {
      },
      "id" : 67,
      "appType" : "NAGIOS",
      "description" : "snmp_if_19",
      "monitorStatus" : "OK",
      "lastCheckTime" : "2013-05-22T10:37:56.000-0600",
      "nextCheckTime" : "2013-05-22T10:47:56.000-0600",
      "lastStateChange" : "2013-05-17T10:27:55.000-0600",
      "hostName" : "sql-2008",
      "stateType" : "HARD",
      "checkType" : "ACTIVE",
      "lastHardState" : "PENDING",
      "monitorServer" : "localhost",
      "deviceIdentification" : "172.28.113.156",
      "lastPlugInOutput" : "1^^^3^^^0^^^05/17/2013 10:27:55 AM^^^SNMP OK - 0 0 0 0 0 0^^^IF-MIB::ifInOctets.19=0c IF-MIB::ifOutOctets.19=0c IF-MIB::ifInDiscards.19=0c IF-MIB::ifOutDiscards.19=0c IF-MIB::ifInErrors.19=0c IF-MIB::ifOutErrors.19=0c"
    } ]
  } ]
}
<serviceGroups>
  <serviceGroup id="1" name="SG1">
    <services>
      <service id="44" appType="NAGIOS" description="icmp_ping_alive" monitorStatus="OK" lastCheckTime="2013-05-22T10:37:46.000-0600" nextCheckTime="2013-05-22T10:47:46.000-0600" lastStateChange="2013-05-17T10:27:46.000-0600" hostName="qa-sles-11-64-2" stateType="HARD" checkType="ACTIVE" lastHardState="PENDING" monitorServer="localhost" deviceIdentification="172.28.113.150" lastPlugInOutput="1^^^3^^^0^^^05/17/2013 10:27:46 AM^^^OK - 172.28.113.150: rta 0.038ms, lost 0%^^^rta=0.036ms;3000.000;5000.000;0; pl=0%;80;100;; rtmax=0.036ms;;;; rtmin=0.036ms;;;;">
        <properties/>
      </service>
      <service id="3" appType="NAGIOS" description="local_cpu_nagios" monitorStatus="OK" lastCheckTime="2013-05-22T10:45:43.000-0600" nextCheckTime="2013-05-22T10:55:43.000-0600" lastStateChange="2013-05-17T08:45:43.000-0600" hostName="localhost" stateType="HARD" checkType="ACTIVE" lastHardState="PENDING" monitorServer="localhost" deviceIdentification="127.0.0.1" lastPlugInOutput="1^^^3^^^0^^^05/17/2013 08:45:43 AM^^^OK - total %CPU for process nagios : 0.0^^^%CPU=0.0;40;50"><properties/>
      </service>
    </services>
  </serviceGroup>
  <serviceGroup id="30" name="SG-200" description="Service Group 200" appType="VEMA" appTypeDisplayName="VEMA" agentId="Agent-007">
    <services>
      <service id="2" appType="NAGIOS" description="local_cpu_java" monitorStatus="OK" lastCheckTime="2013-05-22T10:37:15.000-0600" nextCheckTime="2013-05-22T10:47:15.000-0600" lastStateChange="2013-05-17T08:57:15.000-0600" hostName="localhost" stateType="HARD" checkType="ACTIVE" lastHardState="PENDING" monitorServer="localhost" deviceIdentification="127.0.0.1" lastPlugInOutput="1^^^3^^^0^^^05/17/2013 08:57:15 AM^^^OK - total %CPU for process java : 2.8^^^%CPU=2.8;40;50">
        <properties/>
      </service>
      <service id="4" appType="NAGIOS" description="local_cpu_perl" monitorStatus="OK" lastCheckTime="2013-05-22T10:36:13.000-0600" nextCheckTime="2013-05-22T10:46:13.000-0600" lastStateChange="2013-05-17T08:46:12.000-0600" hostName="localhost" stateType="HARD" checkType="ACTIVE" lastHardState="PENDING" monitorServer="localhost" deviceIdentification="127.0.0.1" lastPlugInOutput="1^^^3^^^0^^^05/17/2013 08:46:12 AM^^^OK - total %CPU for process perl : 0.7^^^%CPU=0.7;40;50">
        <properties/>
      </service>
    </services>
  </serviceGroup>
  <serviceGroup id="2" name="web-svr">
    <services>
      <service id="26" appType="NAGIOS" description="http_alive" monitorStatus="OK" lastCheckTime="2013-05-22T10:40:41.000-0600" nextCheckTime="2013-05-22T10:50:41.000-0600" lastStateChange="2013-05-17T10:30:40.000-0600" hostName="sql-2008" stateType="HARD" checkType="ACTIVE" lastHardState="PENDING" monitorServer="localhost" deviceIdentification="172.28.113.156" lastPlugInOutput="1^^^3^^^0^^^05/17/2013 10:30:40 AM^^^HTTP OK: HTTP/1.1 200 OK - 955 bytes in 0.002 second response time^^^time=0.002418s;4.000000;7.000000;0.000000 size=955B;;;0">
        <properties/>
      </service>
      <service id="31" appType="NAGIOS" description="http_alive" monitorStatus="UNSCHEDULED CRITICAL" lastCheckTime="2013-05-22T10:39:21.000-0600" nextCheckTime="2013-05-22T10:49:21.000-0600" lastStateChange="2013-05-17T10:27:19.000-0600" hostName="172.28.113.151" stateType="HARD" checkType="ACTIVE" lastHardState="PENDING" monitorServer="localhost" deviceIdentification="172.28.113.151" lastPlugInOutput="3^^^3^^^0^^^05/17/2013 10:27:19 AM^^^CRITICAL - Socket timeout after 10 seconds^^^NA^^^">
        <properties/>
      </service>
      <service id="22" appType="NAGIOS" description="http_alive" monitorStatus="OK" lastCheckTime="2013-05-22T10:40:36.000-0600" nextCheckTime="2013-05-22T10:50:36.000-0600" lastStateChange="2013-05-17T10:30:35.000-0600" hostName="qa-rh6-64-2" stateType="HARD" checkType="ACTIVE" lastHardState="PENDING" monitorServer="localhost" deviceIdentification="172.28.113.167" lastPlugInOutput="1^^^3^^^0^^^05/17/2013 10:30:35 AM^^^HTTP OK: HTTP/1.1 200 OK - 1269 bytes in 0.009 second response time^^^time=0.008503s;4.000000;7.000000;0.000000 size=1269B;;;0">
        <properties/>
      </service>
      <service id="36" appType="NAGIOS" description="icmp_ping_alive" monitorStatus="OK" lastCheckTime="2013-05-22T10:42:48.000-0600" nextCheckTime="2013-05-22T10:52:48.000-0600" lastStateChange="2013-05-17T10:32:48.000-0600" hostName="vm-it-xp-2" stateType="HARD" checkType="ACTIVE" lastHardState="PENDING" monitorServer="localhost" deviceIdentification="172.28.113.164" lastPlugInOutput="1^^^3^^^0^^^05/17/2013 10:32:48 AM^^^OK - 172.28.113.164: rta 0.422ms, lost 0%^^^rta=0.422ms;3000.000;5000.000;0; pl=0%;80;100;; rtmax=0.422ms;;;; rtmin=0.422ms;;;;">
        <properties/>
      </service>
      <service id="51" appType="NAGIOS" description="icmp_ping_alive" monitorStatus="OK" lastCheckTime="2013-05-22T10:42:02.000-0600" nextCheckTime="2013-05-22T10:52:02.000-0600" lastStateChange="2013-05-17T10:32:02.000-0600" hostName="qa-rh6-64-2" stateType="HARD" checkType="ACTIVE" lastHardState="PENDING" monitorServer="localhost" deviceIdentification="172.28.113.167" lastPlugInOutput="1^^^3^^^0^^^05/17/2013 10:32:02 AM^^^OK - 172.28.113.167: rta 1.064ms, lost 0%^^^rta=1.064ms;3000.000;5000.000;0; pl=0%;80;100;; rtmax=1.064ms;;;; rtmin=1.064ms;;;;">
        <properties/>
      </service>
      <service id="44" appType="NAGIOS" description="icmp_ping_alive" monitorStatus="OK" lastCheckTime="2013-05-22T10:37:46.000-0600" nextCheckTime="2013-05-22T10:47:46.000-0600" lastStateChange="2013-05-17T10:27:46.000-0600" hostName="qa-sles-11-64-2" stateType="HARD" checkType="ACTIVE" lastHardState="PENDING" monitorServer="localhost" deviceIdentification="172.28.113.150" lastPlugInOutput="1^^^3^^^0^^^05/17/2013 10:27:46 AM^^^OK - 172.28.113.150: rta 0.038ms, lost 0%^^^rta=0.036ms;3000.000;5000.000;0; pl=0%;80;100;; rtmax=0.036ms;;;; rtmin=0.036ms;;;;">
        <properties/>
      </service>
      <service id="47" appType="NAGIOS" description="icmp_ping_alive" monitorStatus="OK" lastCheckTime="2013-05-22T10:39:59.000-0600" nextCheckTime="2013-05-22T10:49:59.000-0600" lastStateChange="2013-05-17T23:59:59.000-0600" hostName="do-win7-1" stateType="HARD" checkType="ACTIVE" lastHardState="PENDING" monitorServer="localhost" deviceIdentification="172.28.113.152" lastPlugInOutput="1^^^3^^^0^^^05/17/2013 11:59:59 PM^^^OK - 172.28.113.152: rta 0.702ms, lost 0%^^^rta=0.702ms;3000.000;5000.000;0; pl=0%;80;100;; rtmax=0.702ms;;;; rtmin=0.702ms;;;;">
        <properties/>
      </service>
      <service id="67" appType="NAGIOS" description="snmp_if_19" monitorStatus="OK" lastCheckTime="2013-05-22T10:37:56.000-0600" nextCheckTime="2013-05-22T10:47:56.000-0600" lastStateChange="2013-05-17T10:27:55.000-0600" hostName="sql-2008" stateType="HARD" checkType="ACTIVE" lastHardState="PENDING" monitorServer="localhost" deviceIdentification="172.28.113.156" lastPlugInOutput="1^^^3^^^0^^^05/17/2013 10:27:55 AM^^^SNMP OK - 0 0 0 0 0 0^^^IF-MIB::ifInOctets.19=0c IF-MIB::ifOutOctets.19=0c IF-MIB::ifInDiscards.19=0c IF-MIB::ifOutDiscards.19=0c IF-MIB::ifInErrors.19=0c IF-MIB::ifOutErrors.19=0c">
        <properties/>
      </service>
    </services>
  </serviceGroup>
</serviceGroups>
1.22.3 Retrieve Service Groups by Query (encoded)

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/servicegroups?query=name%20like%20%27SG-%25%27%20order%20by%20name%20asc&first=0&count=1"

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/servicegroups?query=name%20like%20%27SG-%25%27%20order%20by%20name%20asc&first=0&count=1"

Results, (service properties elided here for the sake of brevity):

{
  "serviceGroups" : [ {
    "id" : 29,
    "name" : "SG-200",
    "description" : "Service Group 200",
    "appType" : "VEMA",
    "appTypeDisplayName" : "VEMA",
    "agentId" : "Agent-007",
    "services" : [ {
      "properties" : {
      },
      "id" : 2,
      "appType" : "NAGIOS",
      "description" : "local_cpu_java",
      "monitorStatus" : "OK",
      "lastCheckTime" : "2013-05-22T10:37:15.000-0600",
      "nextCheckTime" : "2013-05-22T10:47:15.000-0600",
      "lastStateChange" : "2013-05-17T08:57:15.000-0600",
      "hostName" : "localhost",
      "stateType" : "HARD",
      "checkType" : "ACTIVE",
      "lastHardState" : "PENDING",
      "monitorServer" : "localhost",
      "deviceIdentification" : "127.0.0.1",
      "lastPlugInOutput" : "1^^^3^^^0^^^05/17/2013 08:57:15 AM^^^OK - total %CPU for process java : 2.8^^^%CPU=2.8;40;50"
    }, {
      "properties" : {
      },
      "id" : 4,
      "appType" : "NAGIOS",
      "description" : "local_cpu_perl",
      "monitorStatus" : "OK",
      "lastCheckTime" : "2013-05-22T10:36:13.000-0600",
      "nextCheckTime" : "2013-05-22T10:46:13.000-0600",
      "lastStateChange" : "2013-05-17T08:46:12.000-0600",
      "hostName" : "localhost",
      "stateType" : "HARD",
      "checkType" : "ACTIVE",
      "lastHardState" : "PENDING",
      "monitorServer" : "localhost",
      "deviceIdentification" : "127.0.0.1",
      "lastPlugInOutput" : "1^^^3^^^0^^^05/17/2013 08:46:12 AM^^^OK - total %CPU for process perl : 0.7^^^%CPU=0.7;40;50"
    } ]
  } ]
}
<serviceGroups>
  <serviceGroup id="30" name="SG-200" description="Service Group 200" appType="VEMA" appTypeDisplayName="VEMA" agentId="Agent-007">
    <services>
      <service id="2" appType="NAGIOS" description="local_cpu_java" monitorStatus="OK" lastCheckTime="2013-05-22T10:37:15.000-0600" nextCheckTime="2013-05-22T10:47:15.000-0600" lastStateChange="2013-05-17T08:57:15.000-0600" hostName="localhost" stateType="HARD" checkType="ACTIVE" lastHardState="PENDING" monitorServer="localhost" deviceIdentification="127.0.0.1" lastPlugInOutput="1^^^3^^^0^^^05/17/2013 08:57:15 AM^^^OK - total %CPU for process java : 2.8^^^%CPU=2.8;40;50">
        <properties/>
      </service>
      <service id="4" appType="NAGIOS" description="local_cpu_perl" monitorStatus="OK" lastCheckTime="2013-05-22T10:36:13.000-0600" nextCheckTime="2013-05-22T10:46:13.000-0600" lastStateChange="2013-05-17T08:46:12.000-0600" hostName="localhost" stateType="HARD" checkType="ACTIVE" lastHardState="PENDING" monitorServer="localhost" deviceIdentification="127.0.0.1" lastPlugInOutput="1^^^3^^^0^^^05/17/2013 08:46:12 AM^^^OK - total %CPU for process perl : 0.7^^^%CPU=0.7;40;50">
        <properties/>
      </service>
    </services>
  </serviceGroup>
</serviceGroups>
1.22.4 Store Service Groups

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d '{"serviceGroups" : [{"name" : "SG-200", "description" : "Service Group 200", "appType" : "VEMA", "agentId" : "Agent-007", "services" : [{"service" : "local_cpu_java", "host" : "localhost"}, {"service" : "local_cpu_perl", "host" : "localhost"}]}]}' -H "Content-Type: application/json" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/servicegroups"

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d '<serviceGroups><serviceGroup name="SG-200" description="Service Group 200" appType="VEMA" agentId="Agent-007"><services><service service="local_cpu_java" host="localhost"/><service service="local_cpu_perl" host="localhost"/></services></serviceGroup></serviceGroups>' -H "Content-Type: application/xml" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/servicegroups"

Results:

{
  "successful" : 1,
  "failed" : 0,
  "entityType" : "ServiceGroup",
  "operation" : "Update",
  "warning" : 0,
  "results" : [ {
    "entity" : "SG-200",
    "status" : "success",
    "location" : "http://localhost:8080/foundation-webapp/api/servicegroups/SG-200"
  } ],
  "count" : 1
}
<results successful="1" failed="0" entityType="ServiceGroup" operation="Update" warning="0" count="1">
  <result>
    <entity>SG-200</entity>
    <location>http://localhost:8080/foundation-webapp/api/servicegroups/SG-200</location>
    <status>success</status>
  </result>
</results>
1.22.5 Add/Delete Service Group Members

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X PUT -d '{"name" : "SG-200", "services" : [{"service" : "local_load", "host" : "localhost"}, {"service" : "local_users", "host" : "localhost"}]}' -H "Content-Type: application/json" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/servicegroups/addmembers"

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X PUT -d '{"name" : "SG-200", "services" : [{"service" : "local_load", "host" : "localhost"}]}' -H "Content-Type: application/json" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/servicegroups/deletemembers"

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X PUT -d '<serviceGroup name="SG-200"><services><service service="local_load" host="localhost"/><service service="local_users" host="localhost"/></services></serviceGroup>' -H "Content-Type: application/xml" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/servicegroups/addmembers"

curl -s -H "GWOS-API-TOKEN:b94aa48e-fbc5-4423-b4a8-68162599347f" -H "GWOS-APP-NAME:$APP_NAME" -X PUT -d '<serviceGroup name="SG-200"><services><service service="local_load" host="localhost"/></services></serviceGroup>' -H "Content-Type: application/xml" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/servicegroups/deletemembers"

Results:

{
  "successful" : 1,
  "failed" : 0,
  "entityType" : "ServiceGroup",
  "operation" : "Update",
  "warning" : 0,
  "results" : [ {
    "entity" : "SG-200",
    "status" : "success",
    "location" : "http://localhost:8080/foundation-webapp/api/servicegroups/SG-200"
  } ],
  "count" : 1
}
<results successful="1" failed="0" entityType="ServiceGroup" operation="Update" warning="0" count="1">
  <result>
    <entity>SG-200</entity>
    <location>http://localhost:8080/foundation-webapp/api/servicegroups/SG-200</location>
    <status>success</status>
  </result>
</results>
1.22.6 Delete Service Groups

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X DELETE -d '{"serviceGroups" : [{"name" : "SG-200"}]}' -H "Content-Type: application/json" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/servicegroups"

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X DELETE -d '<serviceGroups><serviceGroup name="SG-200"/></serviceGroups>' -H "Content-Type: application/xml" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/servicegroups"

Results:

{
  "successful" : 1,
  "failed" : 0,
  "entityType" : "ServiceGroup",
  "operation" : "Delete",
  "warning" : 0,
  "results" : [ {
    "entity" : "SG-200",
    "status" : "success",
    "message" : "Service Group SG-200 deleted."
  } ],
  "count" : 1
}
<results successful="1" failed="0" entityType="ServiceGroup" operation="Delete" warning="0" count="1">
  <result>
    <entity>SG-200</entity>
    <message>Service Group SG-200 deleted.</message>
    <status>success</status>
  </result>
</results>
1.22.7 Service Group Autocomplete Using JSON

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" "http://localhost/foundation-webapp/api/servicegroups/autocomplete/SG"

JSON Response:

{
  "names" : [ "SG1", "SG2" ]
}
1.23 Biz Service Authorization Examples with Curl

(toc)

1.23.1 Get Authorized Services Using XML

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d '<bizAuthorization><hostGroupNames><hostGroupName>Linux Servers</hostGroupName></hostGroupNames></bizAuthorization>' -H "Content-Type: application/xml" -H "Accept: application/xml" "http://localhost:8080/foundation-webapp/api/biz/getauthorizedservices"

XML Response:

<bizAuthorizedServices>
    <hostNames>
        <hostName>localhost</hostName>
    </hostNames>
    <serviceHostNames>
        <serviceHostMap>
            <serviceHostMapEntry serviceName="local_cpu_httpd">
                <hostNames>
                    <hostName>localhost</hostName>
                </hostNames>
            </serviceHostMapEntry>
            <serviceHostMapEntry serviceName="local_cpu_java">
                <hostNames>
                    <hostName>localhost</hostName>
                </hostNames>
            </serviceHostMapEntry>
            <serviceHostMapEntry serviceName="local_cpu_syslog-ng">
                <hostNames>
                    <hostName>localhost</hostName>
                </hostNames>
            </serviceHostMapEntry>
            <serviceHostMapEntry serviceName="local_swap">
                <hostNames>
                    <hostName>localhost</hostName>
                </hostNames>
            </serviceHostMapEntry>
            <serviceHostMapEntry serviceName="local_process_nagios">
                <hostNames>
                    <hostName>localhost</hostName>
                </hostNames>
            </serviceHostMapEntry>
            <serviceHostMapEntry serviceName="tcp_http">
                <hostNames>
                    <hostName>localhost</hostName>
                </hostNames>
            </serviceHostMapEntry>
        </serviceHostMap>
    </serviceHostNames>
</bizAuthorizedServices>
1.23.2 Get Authorized Services Using JSON

curl -s -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -X POST -d '{"hostGroupNames":["Linux Servers"], "serviceGroupNames":["local"]}' -H "Content-Type: application/json" -H "Accept: application/json" "http://localhost:8080/foundation-webapp/api/biz/getauthorizedservices"

JSON Response:

{
  "hostNames" : [ "localhost" ],
  "serviceHostNames" : {
    "local_cpu_httpd" : [ "localhost" ],
    "local_cpu_java" : [ "localhost" ],
    "local_cpu_syslog-ng" : [ "localhost" ],
    "local_swap" : [ "localhost" ],
    "local_process_nagios" : [ "localhost" ],
    "tcp_http" : [ "localhost" ]
  }
}
1.24 Suggestions Examples with Curl

(toc)

1.24.1 Get Suggestions Query Using XML

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost/foundation-webapp/api/suggestions/query/SERVICE/local*?limit=3"

XML Results:

<suggestions count="18">
    <suggestions>
        <suggestion name="local_cpu_httpd" entityType="SERVICE"/>
        <suggestion name="local_cpu_java" entityType="SERVICE"/>
        <suggestion name="local_cpu_nagios" entityType="SERVICE"/>
    </suggestions>
</suggestions>
1.24.2 Get Suggestions Services Using JSON

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/json" "http://localhost/foundation-webapp/api/suggestions/services/localhost"

JSON Results:

{
  "names" : [ "local_cpu_httpd", "local_cpu_java", "local_cpu_nagios", "local_cpu_perl" ]
}
1.24.3 Get Suggestions Hosts Using XML

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H "Accept: application/xml" "http://localhost/foundation-webapp/api/suggestions/hosts/local_cpu_httpd"

XML Results:

<names>
    <name>localhost</name>
</names>
1.25 License Check Examples with Curl

(toc)

1.25.1 License Check Using XML

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H 'Accept: application/xml' 'http://localhost:8080/foundation-webapp/api/license/check?allocate=5'

XML Results:

<licenseCheck success="true" message="OK to allocate 5 devices" devicesRequested="5" devices="1"/>
1.25.2 License Check Using JSON

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H 'Accept: application/json' http://localhost:8080/foundation-webapp/api/license/check

JSON Results:

{
  "success" : true,
  "message" : "OK to allocate 0 devices",
  "devicesRequested" : 0,
  "devices" : 1
}
1.26 Biz Feeder Examples with Curl

(toc)

1.26.1 Create or Update Host Returning XML

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H 'Accept: application/xml' -X POST -d 'message=PENDING+-+new&host=host5&status=PENDING&device=10.0.0.5&agentId=a4ca80e0-e855-43ee-86d8-f4e499f0a824&hostGroup=hosts&appType=NAGIOS' 'http://localhost:8080/foundation-webapp/api/biz/host'

XML Results:

<host id="7" hostName="host5" description="host5" monitorStatus="PENDING" appType="NAGIOS" deviceIdentification="10.0.0.5" deviceDisplayName="10.0.0.5" lastCheckTime="2016-01-04T23:42:29.588-0700" nextCheckTime="2016-01-04T23:47:29.588-0700" bubbleUpStatus="PENDING" serviceAvailability="0" acknowledged="false" agentId="a4ca80e0-e855-43ee-86d8-f4e499f0a824" serviceCount="0" stateType="HARD" checkType="ACTIVE" lastPlugInOutput="-1^^^-1^^^-1^^^01/01/1970 12:00:00 AM^^^PENDING - new^^^01/04/2016 11:47:29 PM">
    <properties>
        <property name="LastPluginOutput" value="PENDING - new"/>
    </properties>
    <device id="6" displayName="10.0.0.5" identification="10.0.0.5"/>
    <hostStatus hostStatusId="7" lastCheckTime="2016-01-04T23:42:29.588-0700" nextCheckTime="2016-01-04T23:47:29.588-0700">
        <monitorStatus monitorStatusId="5" name="PENDING" description="PENDING"/>
        <checkType checkTypeId="1" name="ACTIVE" description="Active Check"/>
        <stateType>
            <stateTypeId>2</stateTypeId>
            <name>HARD</name>
            <description>State Hard</description>
        </stateType>
    </hostStatus>
    <hostGroups>
        <hostGroup id="6" name="hosts" appType="NAGIOS"/>
    </hostGroups>
    <applicationType id="100" name="NAGIOS" description="System monitored by Nagios" stateTransitionCriteria="Device;Host;ServiceDescription"/>
</host>
1.26.2 Create or Update Service Returning JSON

curl -H "GWOS-API-TOKEN:$TOKEN" -H "GWOS-APP-NAME:$APP_NAME" -H 'Accept: application/json' -X POST -d 'message=PENDING+-+new&host=host5&status=PENDING&serviceGroup=cpu&device=10.0.0.5&service=local_cpu_httpd&agentId=a4ca80e0-e855-43ee-86d8-f4e499f0a824&hostGroup=hosts&appType=NAGIOS' 'http://localhost:8080/foundation-webapp/api/biz/service'

JSON Results:

{
  "properties" : {
    "LastPluginOutput" : "PENDING - new"
  },
  "id" : 89,
  "appType" : "NAGIOS",
  "description" : "local_cpu_httpd",
  "monitorStatus" : "PENDING",
  "lastCheckTime" : "2016-01-04T23:42:31.000-0700",
  "nextCheckTime" : "2016-01-04T23:47:31.000-0700",
  "hostName" : "host5",
  "stateType" : "HARD",
  "checkType" : "ACTIVE",
  "lastHardState" : "PENDING",
  "agentId" : "a4ca80e0-e855-43ee-86d8-f4e499f0a824",
  "monitorServer" : "localhost",
  "deviceIdentification" : "10.0.0.5",
  "lastPlugInOutput" : "-1^^^-1^^^-1^^^01/01/1970 12:00:00 AM^^^PENDING - new^^^NA"
}
1.26.3 Create or Update Hosts Using XML
XML_DATA='
<hosts>
    <host
        agentId="a4ca80e0-e855-43ee-86d8-f4e499f0a824"
        allowInserts="true"
        appType="NAGIOS"
        checkIntervalMinutes="5"
        device="10.0.0.6"
        host="host6"
        hostGroup="hosts"
        mergeHosts="true"
        message="UP"
        setStatusOnCreate="true"
        status="UP">
        <services>
            <service
                agentId="a4ca80e0-e855-43ee-86d8-f4e499f0a824"
                allowInserts="true"
                appType="NAGIOS"
                checkIntervalMinutes="5"
                criticalLevel="90"
                device="10.0.0.6"
                host="host6"
                hostGroup="hosts"
                mergeHosts="true"
                message="OK - 10"
                metricType="vm"
                service="local_cpu_httpd"
                serviceGroup="cpu"
                serviceValue="10"
                setStatusOnCreate="true"
                status="OK"
                warningLevel="50"/>
            <service
                agentId="a4ca80e0-e855-43ee-86d8-f4e499f0a824"
                allowInserts="true"
                appType="NAGIOS"
                checkIntervalMinutes="5"
                criticalLevel="90"
                device="10.0.0.6"
                host="host6"
                hostGroup="hosts"
                mergeHosts="true"
                message="OK - 20"
                metricType="vm"
                service="local_cpu_java"
                serviceGroup="cpu"
                serviceValue="20"
                setStatusOnCreate="true"
                status="OK"
                warningLevel="75"/>
        </services>
    </host>
</hosts>
'
curl -X POST \
    -H "GWOS-API-TOKEN:$TOKEN" \
    -H "GWOS-APP-NAME:$APP_NAME" \
    -H 'Accept: application/xml' \
    -H 'Content-Type: application/xml' \
    -d "$XML_DATA" "$API_REST/biz/hosts"

XML Results:

<results successful="3" failed="0" entityType="Host" operation="Update" warning="0" count="3">
    <result>
        <entity>host6</entity>
        <location>http://localhost:8080/foundation-webapp/api/hosts/host6</location>
        <status>success</status>
        <message>Update</message>
    </result>
    <result>
        <entity>host6:local_cpu_httpd</entity>
        <location>http://localhost:8080/foundation-webapp/api/services/local_cpu_httpd%3FhostName=host6</location>
        <status>success</status>
        <message>Update</message>
    </result>
    <result>
        <entity>host6:local_cpu_java</entity>
        <location>http://localhost:8080/foundation-webapp/api/services/local_cpu_java%3FhostName=host6</location>
        <status>success</status>
        <message>Update</message>
    </result>
</results>
1.26.4 Create or Update Hosts Using JSON
JSON_DATA='{
    "hosts": [
        {
            "agentId": "a4ca80e0-e855-43ee-86d8-f4e499f0a824",
            "allowInserts": true,
            "appType": "NAGIOS",
            "checkIntervalMinutes": 5,
            "device": "10.0.0.6",
            "host": "host6",
            "hostGroup": "hosts",
            "mergeHosts": true,
            "message": "UP",
            "properties": {},
            "services": [
                {
                    "agentId": "a4ca80e0-e855-43ee-86d8-f4e499f0a824",
                    "allowInserts": true,
                    "appType": "NAGIOS",
                    "checkIntervalMinutes": 5,
                    "criticalLevel": 90,
                    "device": "10.0.0.6",
                    "host": "host6",
                    "hostGroup": "hosts",
                    "mergeHosts": true,
                    "message": "OK - 10",
                    "metricType": "vm",
                    "properties": {},
                    "service": "local_cpu_httpd",
                    "serviceGroup": "cpu",
                    "serviceValue": "10",
                    "setStatusOnCreate": true,
                    "status": "OK",
                    "warningLevel": 50
                },
                {
                    "agentId": "a4ca80e0-e855-43ee-86d8-f4e499f0a824",
                    "allowInserts": true,
                    "appType": "NAGIOS",
                    "checkIntervalMinutes": 5,
                    "criticalLevel": 90,
                    "device": "10.0.0.6",
                    "host": "host6",
                    "hostGroup": "hosts",
                    "mergeHosts": true,
                    "message": "OK - 20",
                    "metricType": "vm",
                    "properties": {},
                    "service": "local_cpu_java",
                    "serviceGroup": "cpu",
                    "serviceValue": "20",
                    "setStatusOnCreate": true,
                    "status": "OK",
                    "warningLevel": 75
                }
            ],
            "setStatusOnCreate": true,
            "status": "UP"
        }
    ]
}'
curl -X POST \
    -H "GWOS-API-TOKEN:$TOKEN" \
    -H "GWOS-APP-NAME:$APP_NAME" \
    -H 'Accept: application/json' \
    -H 'Content-Type: application/json' \
    -d "$JSON_DATA" "$API_REST/biz/hosts"

JSON Results:

{
  "successful" : 3,
  "failed" : 0,
  "entityType" : "Host",
  "operation" : "Update",
  "warning" : 0,
  "results" : [ {
    "entity" : "host6",
    "status" : "success",
    "location" : "http://localhost:8080/foundation-webapp/api/hosts/host6",
    "message" : "Update"
  }, {
    "entity" : "host6:local_cpu_httpd",
    "status" : "success",
    "location" : "http://localhost:8080/foundation-webapp/api/services/local_cpu_httpd%3FhostName=host6",
    "message" : "Update"
  }, {
    "entity" : "host6:local_cpu_java",
    "status" : "success",
    "location" : "http://localhost:8080/foundation-webapp/api/services/local_cpu_java%3FhostName=host6",
    "message" : "Update"
  } ],
  "count" : 3
}
1.26.5 Create or Update Services Using JSON
JSON_DATA='{
    "services": [
        {
            "agentId": "a4ca80e0-e855-43ee-86d8-f4e499f0a824",
            "allowInserts": true,
            "appType": "NAGIOS",
            "checkIntervalMinutes": 5,
            "criticalLevel": -1,
            "device": "10.0.0.6",
            "host": "host6",
            "hostGroup": "hosts",
            "mergeHosts": true,
            "message": "PENDING - new",
            "properties": {},
            "service": "local_cpu_httpd",
            "serviceGroup": "cpu",
            "setStatusOnCreate": false,
            "status": "PENDING",
            "warningLevel": -1
        },
        {
            "agentId": "a4ca80e0-e855-43ee-86d8-f4e499f0a824",
            "allowInserts": true,
            "appType": "NAGIOS",
            "checkIntervalMinutes": 5,
            "criticalLevel": -1,
            "device": "10.0.0.6",
            "host": "host6",
            "hostGroup": "hosts",
            "mergeHosts": true,
            "message": "PENDING - new",
            "properties": {},
            "service": "local_cpu_java",
            "serviceGroup": "cpu",
            "setStatusOnCreate": false,
            "status": "PENDING",
            "warningLevel": -1
        }
    ]
}'
curl -X POST \
    -H "GWOS-API-TOKEN:$TOKEN" \
    -H "GWOS-APP-NAME:$APP_NAME" \
    -H 'Accept: application/json' \
    -H 'Content-Type: application/json' \
    -d "$JSON_DATA" "$API_REST/biz/services"

XML Results:

{
  "successful" : 3,
  "failed" : 0,
  "entityType" : "ServiceStatus",
  "operation" : "Update",
  "warning" : 0,
  "results" : [ {
    "entity" : "host6",
    "status" : "success",
    "location" : "http://localhost:8080/foundation-webapp/api/hosts/host6",
    "message" : "Insert"
  }, {
    "entity" : "host6:local_cpu_httpd",
    "status" : "success",
    "location" : "http://localhost:8080/foundation-webapp/api/services/local_cpu_httpd%3FhostName=host6",
    "message" : "Insert"
  }, {
    "entity" : "host6:local_cpu_java",
    "status" : "success",
    "location" : "http://localhost:8080/foundation-webapp/api/services/local_cpu_java%3FhostName=host6",
    "message" : "Insert"
  } ],
  "count" : 3
}

Labels

restful restful Delete
rest rest Delete
api api Delete
curl curl Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.