<?php

declare (strict_types=1);
namespace idoit\Module\SyneticsJdisc\Graphql\Schema\Model;

use Axtiva\FlexibleGraphql\Resolver\AutoGenerationInterface;

/**
 * This code is @generated by axtiva/flexible-graphql-php
 * if you want to extend it or change, then remove interface AutoGenerationInterface
 * and it will be managed by you, not axtiva/flexible-graphql-php code generator
 * PHP representation of graphql type UsersManagementMutation
 * Objects for users and user groups management. */
final class UsersManagementMutationType implements AutoGenerationInterface
{
    /**
     * Add a new inventory user
     */
    public ?InventoryUserType $addInventoryUser = null;
    /**
     * Add a new inventory user group
     */
    public ?InventoryUserGroupType $addInventoryUserGroup = null;
    /**
     * Add a new permissions group
     */
    public ?InventoryPermissionsGroupType $addPermissionsGroup = null;
    /**
     * Update inventory user members (user/groups) and permissions groups

Internal API
     */
    public ?bool $applyUserNGroupChanges = null;
    /**
     * Change an inventory user: user is identified by its id and the action updates its membership to permissions groups, each group is identified by its name
     */
    public ?bool $changeInventoryUser = null;
    /**
     * Change an inventory user group: user group is identified by its id and the action updates its membership to permissions groups, each group is identified by its name
     */
    public ?bool $changeInventoryUserGroup = null;
    /**
     * Change a permissions group: permission group is identified by its id and the action updates its description and its permissions rights
     */
    public ?bool $changePermissionsGroup = null;
    /**
     * Delete discovered user groups

Required permissions: ChangeDiscoverySettings
     */
    public ?DiscoveredUserGroupDeletionOperationResultType $deleteDiscoveredUserGroupsAsync = null;
    /**
     * Delete discovered users

Required permissions: ChangeDiscoverySettings
     */
    public ?DiscoveredUserDeletionOperationResultType $deleteDiscoveredUsersAsync = null;
    /**
     * Delete an inventory user: user is identified by its id
     */
    public ?bool $deleteInventoryUser = null;
    /**
     * Delete an inventory user group: user group is identified by its id 
     */
    public ?bool $deleteInventoryUserGroup = null;
    /**
     * Delete a permissions group: permission group is identified by its id
     */
    public ?bool $deletePermissionsGroup = null;
}