/**
 * This file was automatically generated by json-schema-to-typescript.
 * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
 * and run json-schema-to-typescript to regenerate this file.
 */
/**
 * A role import document is an array of role
 *
 * This interface was referenced by `AuthSchemas`'s JSON-Schema
 * via the `definition` "RoleImport".
 */
export type RoleImport = RoleInput[];
export interface AuthSchemas {
    [k: string]: any;
}
/**
 * This interface was referenced by `AuthSchemas`'s JSON-Schema
 * via the `definition` "Condition".
 */
export interface Condition {
}
/**
 * This interface was referenced by `AuthSchemas`'s JSON-Schema
 * via the `definition` "Statement".
 */
export interface Statement {
    Effect?: 'Allow' | 'Deny';
    Sid?: string;
    Action?: string[];
    NotAction?: string[];
    Resource?: string[];
    NotResource?: string[];
    Principal?: {
        AWS?: string[];
        Service?: string[];
    };
    Condition?: Condition;
}
/**
 * This interface was referenced by `AuthSchemas`'s JSON-Schema
 * via the `definition` "AccessPolicyDocument".
 */
export interface AccessPolicyDocument {
    Version: string;
    Statement: Statement[];
}
/**
 * This interface was referenced by `AuthSchemas`'s JSON-Schema
 * via the `definition` "ApiKey".
 */
export interface ApiKey {
    projectId: string;
    name: string;
    role?: string;
    permissions?: AccessPolicyDocument;
    lastUsed?: string;
    apiKey?: string;
    id: string;
    delinquent?: boolean;
    apiRateLimit?: number;
    deactivated?: number;
}
/**
 * This interface was referenced by `AuthSchemas`'s JSON-Schema
 * via the `definition` "UserPermission".
 */
export interface UserPermission {
    projectId: string;
    userId: string;
    role: string;
    permissions?: AccessPolicyDocument;
    created?: number;
    updated?: number;
    deactivated?: number;
    delinquent?: boolean;
}
/**
 * This interface was referenced by `AuthSchemas`'s JSON-Schema
 * via the `definition` "Role".
 */
export interface Role {
    projectId: string;
    name: string;
    conditions?: Condition;
    permissions: AccessPolicyDocument;
    builtIn?: boolean;
    created?: number;
    updated?: number;
}
/**
 * Input type for role creation and updates.
 *
 * This interface was referenced by `AuthSchemas`'s JSON-Schema
 * via the `definition` "RoleInput".
 */
export interface RoleInput {
    projectId?: string;
    name: string;
    conditions?: Condition;
    permissions: AccessPolicyDocument;
    builtIn?: boolean;
    created?: number;
    updated?: number;
}
/**
 * This interface was referenced by `AuthSchemas`'s JSON-Schema
 * via the `definition` "BigCommerceAppSettings".
 */
export interface BigCommerceAppSettings {
    verified?: boolean;
    emailValidationToken?: string | null;
}
/**
 * This interface was referenced by `AuthSchemas`'s JSON-Schema
 * via the `definition` "AppSettings".
 */
export interface AppSettings {
    bigcommerce?: BigCommerceAppSettings;
}
/**
 * This interface was referenced by `AuthSchemas`'s JSON-Schema
 * via the `definition` "User".
 */
export interface User {
    id: string;
    email: string;
    fullName: string;
    created: number;
    updated: number;
    requiresEmailValidation?: boolean;
    emailValidationToken?: string;
    appSettings?: AppSettings;
    inviteCode?: string;
    firstTime: boolean;
    avatarPath?: string;
    intercomHash?: string;
    googleUserId?: string;
    comcastId?: string;
    token?: string;
    policies?: AccessPolicyDocument[];
    preferences?: {
        [k: string]: any;
    };
}
