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


interface Credentials {
  gSuiteAdminOAuth2Api: CredentialReference;
}

/** Get many ChromeOS devices */
export type GSuiteAdminV1DeviceGetAllParams = {
  resource: 'device';
  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>;
/**
 * What subset of fields to fetch for this device
 * @default basic
 */
    projection?: 'basic' | 'full' | Expression<string>;
/**
 * Whether to include devices from organizational units below your specified organizational unit
 * @default false
 */
    includeChildOrgunits?: boolean | Expression<boolean>;
/**
 * Filter
 * @default {}
 */
    filter?: {
    /** Specify the organizational unit name or ID. Choose from the list or use an expression. Choose from the list, or specify an ID using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;.
     * @default []
     */
    orgUnitPath?: string | Expression<string>;
    /** Use Google's querying syntax to filter results
     */
    query?: string | Expression<string> | PlaceholderValue;
  };
/**
 * Define sorting rules for the results
 * @default {}
 */
    sort?: {
        /** Sort Rules
     */
    sortRules?: {
      /** Field to sort the results by
       */
      orderBy?: 'annotatedLocation' | 'annotatedUser' | 'lastSync' | 'notes' | 'serialNumber' | 'status' | Expression<string>;
      /** Sort order direction
       */
      sortBy?: 'ascending' | 'descending' | Expression<string>;
    };
  };
};

export type GSuiteAdminV1DeviceGetAllNode = {
  type: 'n8n-nodes-base.gSuiteAdmin';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<GSuiteAdminV1DeviceGetAllParams>;
};