/**
 * Google Workspace Admin Node - Version 1
 * Discriminator: resource=group, operation=getAll
 */


interface Credentials {
  gSuiteAdminOAuth2Api: CredentialReference;
}

/** Get many ChromeOS devices */
export type GSuiteAdminV1GroupGetAllParams = {
  resource: 'group';
  operation: 'getAll';
/**
 * Whether to return all results or only up to a given limit
 * @default false
 */
    returnAll?: boolean | Expression<boolean>;
/**
 * Max number of results to return
 * @displayOptions.show { returnAll: [false] }
 * @default 100
 */
    limit?: number | Expression<number>;
/**
 * Filter
 * @default {}
 */
    filter?: {
    /** The unique ID for the customer's Google Workspace account
     */
    customer?: string | Expression<string> | PlaceholderValue;
    /** The domain name. Use this field to get groups from a specific domain.
     */
    domain?: string | Expression<string> | PlaceholderValue;
    /** Query string to filter the results. Follow Google Admin SDK documentation. &lt;a href="https://developers.google.com/admin-sdk/directory/v1/guides/search-groups#examples" target="_blank"&gt;More info&lt;/a&gt;.
     */
    query?: string | Expression<string> | PlaceholderValue;
    /** Email or immutable ID of a user to list groups they are a member of
     */
    userId?: string | Expression<string> | PlaceholderValue;
  };
/**
 * Sort
 * @default {}
 */
    sort?: {
        /** Sort Rules
     */
    sortRules?: {
      /** Field to sort the results by
       * @default email
       */
      orderBy?: 'email' | Expression<string>;
      /** Sort order direction
       * @default ASCENDING
       */
      sortOrder?: 'ASCENDING' | 'DESCENDING' | Expression<string>;
    };
  };
};

export type GSuiteAdminV1GroupGetAllOutput = {
  adminCreated?: boolean;
  aliases?: Array<string>;
  description?: string;
  directMembersCount?: string;
  email?: string;
  etag?: string;
  id?: string;
  kind?: string;
  name?: string;
  nonEditableAliases?: Array<string>;
};

export type GSuiteAdminV1GroupGetAllNode = {
  type: 'n8n-nodes-base.gSuiteAdmin';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<GSuiteAdminV1GroupGetAllParams>;
  output?: Items<GSuiteAdminV1GroupGetAllOutput>;
};