Summary

The unassignRoleFromGroup() mutation removes a role assigned to a group for a given view. Use this mutation when you want to revoke view-level access permissions for a group without deleting the group or the role. To assign a role to a group, use assignRoleToGroup() instead.

Syntax

graphql
unassignRoleFromGroup(
      input: RemoveRoleFromGroupInput!
   ): UnassignRoleFromGroup!

The mutation accepts a single required input argument of type RemoveRoleFromGroupInput!. Supply the unique identifiers for the view, the role, and the group. Select Show Group Roles Query to retrieve these identifiers.

The mutation returns an UnassignRoleFromGroup! object containing the updated group after the role is removed.

Example

Raw
graphql
mutation {
  unassignRoleFromGroup(input: 
          { viewId: "abc123",
            groupId: "def456", 
            roleId: "ghi789"} )
     { 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 {
  unassignRoleFromGroup(input: 
          { viewId: \"abc123\",
            groupId: \"def456\", 
            roleId: \"ghi789\"} )
     { 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 {
  unassignRoleFromGroup(input: 
          { viewId: \"abc123\",
            groupId: \"def456\", 
            roleId: \"ghi789\"} )
     { 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 { ^
  unassignRoleFromGroup(input:  ^
          { viewId: \"abc123\", ^
            groupId: \"def456\",  ^
            roleId: \"ghi789\"} ) ^
     { group { userCount } } ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "mutation {
  unassignRoleFromGroup(input: 
          { viewId: \"abc123\",
            groupId: \"def456\", 
            roleId: \"ghi789\"} )
     { 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 {
  unassignRoleFromGroup(input: 
          { viewId: \"abc123\",
            groupId: \"def456\", 
            roleId: \"ghi789\"} )
     { 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 {
  unassignRoleFromGroup(input: 
          { viewId: \"abc123\",
            groupId: \"def456\", 
            roleId: \"ghi789\"} )
     { 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 {
  unassignRoleFromGroup(input: 
          { viewId: \"abc123\",
            groupId: \"def456\", 
            roleId: \"ghi789\"} )
     { 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": {
    "unassignRoleFromGroup": {
      "group": {
        "userCount": 6
      }
    }
  }
}

Input Parameters

Provide the unique identifiers for the view, the role, and the group — specifying which role to remove from which group, scoped to the target view. Select Show Group Roles Query to retrieve these identifiers.

Table: RemoveRoleFromGroupInput Input Datatype

ParameterTypeRequiredDefaultStabilityAvailabilityDescription
groupIdStringyes Long-Term The unique identifier of the group.
roleIdStringyes Long-Term The unique identifier of the role to remove from the group.
viewIdStringyes Long-Term The unique identifier of the view associated with the role.

Returned Values

The mutation returns an UnassignRoleFromGroup object. The group field provides the updated group after the role is removed. Use it to retrieve group details such as member count, user list, accessible assets, and the current set of role assignments for the group.

Table: UnassignRoleFromGroup Datatype

ParameterTypeRequiredDefaultStabilityAvailabilityDescription
groupGroupyes Long-Term The unassigned group. See Group.