A group in LogScale is merely a shell containing user related elements: a list of users, a set of roles, specific permissions, etc. The group itself is just a wrapper for these items. Therefore, the updateGroup() GraphQL mutation is used only to rename a group. To make changes to the contents of a group, you'll have to use other mutations, ones related to what you want to change.

To create a new group, use the addGroup() mutation. To delete a group, use removeGroup(). For a list of groups, use the groupsPage() query. To get details on a group, use group().

For more information on user groups, see the Manage Groups documentation page.

API Stability Long-Term
Security Requirement & Control ManageUsers API permission

Syntax

graphql
updateGroup(
      input: UpdateGroupInput!
   ): UpdateGroupMutation!

For the input, you'll have to give the new name for the group, and its unique identifier. You can get that with the groupByDisplayName() query, if you know the name of the group. Otherwise, you can use groupsPage() to get a list of groups and their identifiers (click on Show Query below for an example). See the Given Datatype section for details on the input parameters.

For the return datatype, you'll need to specify its only parameter, group and at least one sub-parameter (i.e., id). See the Returned Datatype section farther down this page for more on this.

Hide Query Example

Show Group Identifiers Query

Example

Raw
graphql
mutation {
  updateGroup( input:
    { groupId: "abc123",
      displayName: "cool-kids"
    }
  )
  { group { userCount } }
}
Mac OS or Linux (curl)
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-Type: application/json" \
    -d @- << EOF
{"query" : "mutation {
  updateGroup( input:
    { groupId: \"abc123\",
      displayName: \"cool-kids\"
    }
  )
  { group { userCount } }
}"
}
EOF
Mac OS or Linux (curl) One-line
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-Type: application/json" \
    -d @- << EOF
{"query" : "mutation {
  updateGroup( input:
    { groupId: \"abc123\",
      displayName: \"cool-kids\"
    }
  )
  { group { userCount } }
}"
}
EOF
Windows Cmd and curl
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql ^
    -H "Authorization: Bearer $TOKEN" ^
    -H "Content-Type: application/json" ^
    -d @'{"query" : "mutation { ^
  updateGroup( input: ^
    { groupId: \"abc123\", ^
      displayName: \"cool-kids\" ^
    } ^
  ) ^
  { group { userCount } } ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "mutation {
  updateGroup( input:
    { groupId: \"abc123\",
      displayName: \"cool-kids\"
    }
  )
  { group { userCount } }
}"
}'
    "$YOUR_LOGSCALE_URL/graphql"
Perl
perl
#!/usr/bin/perl

use HTTP::Request;
use LWP;

my $TOKEN = "TOKEN";

my $uri = '$YOUR_LOGSCALE_URL/graphql';

my $query = "mutation {
  updateGroup( input:
    { groupId: \"abc123\",
      displayName: \"cool-kids\"
    }
  )
  { group { userCount } }
}";
$query =~ s/\n/ /g;
my $json = sprintf('{"query" : "%s"}',$query);
my $req = HTTP::Request->new("POST", $uri );

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

$req->content( $json );

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

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

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

import requests

url = '$YOUR_LOGSCALE_URL/graphql'
mydata = r'''{"query" : "mutation {
  updateGroup( input:
    { groupId: \"abc123\",
      displayName: \"cool-kids\"
    }
  )
  { group { userCount } }
}"
}'''

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

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

const data = JSON.stringify(
    {"query" : "mutation {
  updateGroup( input:
    { groupId: \"abc123\",
      displayName: \"cool-kids\"
    }
  )
  { group { userCount } }
}"
}
);


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

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

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

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

req.write(data);
req.end();
Example Responses
Success (HTTP Response Code 200 OK)
json
{
  "data": {
    "updateGroup": {
      "group": {
        "userCount": 6
      }
    }
  }
}

Given Datatype

For this input datatype, you'll have to give the unique identifier of the group to update, the new display name or lookup name. Click on the Show Query link under the Syntax section above for an example of how to get the group identifier.

Table: UpdateGroupInput

ParameterTypeRequiredDefaultStabilityDescription
Some arguments may be required, as indicated in the Required column. For return datatypes, this indicates that you must specify which fields you want returned in the results.
Table last updated: Sep 23, 2024
displayNamestring  Long-TermThe display name for the group.
groupIdstringyes Long-TermThe unique identifier of the group to update.
lookupNamestring  Long-TermThe lookup name for the group.

Returned Datatype

For the return datatype, through sub-parameters, you can get information on the group, such as how many users, a list of them, and which assets they can access. You can also get a list of roles and what they entail. These parameters are described below, in addition to links to sub-parameters:

Table: UpdateGroupMutation

ParameterTypeRequiredDefaultStabilityDescription
Some arguments may be required, as indicated in the Required column. For return datatypes, this indicates that you must specify which fields you want returned in the results.
Table last updated: Apr 2, 2025
groupGroupyes Long-TermThe group to update. See Group.