/**
 * Google Workspace Admin Node - Version 1
 * Discriminator: resource=user, operation=get
 */


interface Credentials {
  gSuiteAdminOAuth2Api: CredentialReference;
}

/** Get a ChromeOS device */
export type GSuiteAdminV1UserGetParams = {
  resource: 'user';
  operation: 'get';
/**
 * Select the user to perform the operation on
 * @default {"mode":"list","value":""}
 */
    userId?: { __rl: true; mode: 'list' | 'userEmail' | 'userId'; value: string; cachedResultName?: string };
/**
 * Output
 * @default simplified
 */
    output?: 'simplified' | 'raw' | 'select' | Expression<string>;
/**
 * Fields to include in the response when "Select Included Fields" is chosen
 * @displayOptions.show { output: ["select"] }
 * @default []
 */
    fields?: Array<'creationTime' | 'isAdmin' | 'kind' | 'lastLoginTime' | 'name' | 'primaryEmail' | 'suspended'>;
/**
 * What subset of fields to fetch for this user
 * @default basic
 */
    projection?: 'basic' | 'custom' | 'full' | Expression<string>;
/**
 * A comma-separated list of schema names. All fields from these schemas are fetched. Choose from the list, or specify IDs using an &lt;a href="https://docs.n8n.io/code/expressions/"&gt;expression&lt;/a&gt;.
 * @displayOptions.show { /projection: ["custom"] }
 * @default []
 */
    customFieldMask?: string[];
};

export type GSuiteAdminV1UserGetOutput = {
  creationTime?: string;
  id?: string;
  isAdmin?: boolean;
  kind?: string;
  lastLoginTime?: string;
  name?: {
    familyName?: string;
    fullName?: string;
    givenName?: string;
  };
  primaryEmail?: string;
  suspended?: boolean;
};

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