Documentation
Types
User
AuthUser

AuthUser

export interface AuthUser {
    createdAt: number;
    /**
     * When the User account has been "soft blocked", this property will contain
     * the date when the restriction was enacted, and the identifier for why.
     */
    softBlock: {
        blockedAt: number;
        reason: SoftBlockReason;
        blockedDueToOverageType?: SoftBlockedDueToOverageType;
    } | null;
 
    /**
     * An object containing billing infomation associated with the User account.
     */
    billing: {
        currency?: 'usd' | 'eur' | (string & {});
        cancelation?: number | null;
        period: {
            start: number;
            end: number;
        } | null;
        contract?: {
            start: number;
            end: number;
        } | null;
        plan: 'pro' | 'enterprise' | 'hobby';
        platform?: 'stripe' | 'stripeTestMode';
        orbCustomerId?: string;
        syncedAt?: number;
        programType?: 'startup' | 'agency';
        trial?: {
            start: number;
            end: number;
        } | null;
        email?: string | null;
        tax?: {
            type: string;
            id: string;
        } | null;
        language?: string | null;
        address?: {
            line1?: string;
            line2?: string;
            postalCode?: string;
            city?: string;
            country?: string;
            state?: string;
        } | null;
        name?: string | null;
        invoiceItems?: {
            /**
             * Will be used to create an invoice item. The price must be in cents: 2000 for $20.
             */
            concurrentBuilds?: {
                tier?: number;
                price: number;
                quantity: number;
                highestQuantity?: number;
                name?: string;
                hidden: boolean;
                createdAt?: number;
                disabledAt?: number | null;
                frequency?: {
                    interval: 'month';
                    intervalCount: 1 | 2 | 3 | 6 | 12;
                };
                maxQuantity?: number;
            };
 
            /**
             * Will be used to create an invoice item. The price must be in cents: 2000 for $20.
             */
            webAnalytics?: {
                tier?: number;
                price: number;
                quantity: number;
                highestQuantity?: number;
                name?: string;
                hidden: boolean;
                createdAt?: number;
                disabledAt?: number | null;
                frequency?: {
                    interval: 'month';
                    intervalCount: 1 | 2 | 3 | 6 | 12;
                };
                maxQuantity?: number;
            };
 
            /**
             * Will be used to create an invoice item. The price must be in cents: 2000 for $20.
             */
            pro?: {
                tier?: number;
                price: number;
                quantity: number;
                highestQuantity?: number;
                name?: string;
                hidden: boolean;
                createdAt?: number;
                disabledAt?: number | null;
                frequency?: {
                    interval: 'month';
                    intervalCount: 1 | 2 | 3 | 6 | 12;
                };
                maxQuantity?: number;
            };
 
            /**
             * Will be used to create an invoice item. The price must be in cents: 2000 for $20.
             */
            enterprise?: {
                tier?: number;
                price: number;
                quantity: number;
                highestQuantity?: number;
                name?: string;
                hidden: boolean;
                createdAt?: number;
                disabledAt?: number | null;
                frequency?: {
                    interval: 'month';
                    intervalCount: 1 | 2 | 3 | 6 | 12;
                };
                maxQuantity?: number;
            };
 
            /**
             * Will be used to create an invoice item. The price must be in cents: 2000 for $20.
             */
            analytics?: {
                tier?: number;
                price: number;
                quantity: number;
                highestQuantity?: number;
                name?: string;
                hidden: boolean;
                createdAt?: number;
                disabledAt?: number | null;
                frequency?: {
                    interval: 'month';
                    intervalCount: 1 | 2 | 3 | 6 | 12;
                };
                maxQuantity?: number;
            };
 
            /**
             * Will be used to create an invoice item. The price must be in cents: 2000 for $20.
             */
            monitoring?: {
                tier?: number;
                price: number;
                quantity: number;
                highestQuantity?: number;
                name?: string;
                hidden: boolean;
                createdAt?: number;
                disabledAt?: number | null;
                frequency?: {
                    interval: 'month';
                    intervalCount: 1 | 2 | 3 | 6 | 12;
                };
                maxQuantity?: number;
            };
 
            /**
             * Will be used to create an invoice item. The price must be in cents: 2000 for $20.
             */
            passwordProtection?: {
                tier?: number;
                price: number;
                quantity: number;
                highestQuantity?: number;
                name?: string;
                hidden: boolean;
                createdAt?: number;
                disabledAt?: number | null;
                frequency?: {
                    interval: 'month';
                    intervalCount: 1 | 2 | 3 | 6 | 12;
                };
                maxQuantity?: number;
            };
 
            /**
             * Will be used to create an invoice item. The price must be in cents: 2000 for $20.
             */
            previewDeploymentSuffix?: {
                tier?: number;
                price: number;
                quantity: number;
                highestQuantity?: number;
                name?: string;
                hidden: boolean;
                createdAt?: number;
                disabledAt?: number | null;
                frequency?: {
                    interval: 'month';
                    intervalCount: 1 | 2 | 3 | 6 | 12;
                };
                maxQuantity?: number;
            };
 
            /**
             * Will be used to create an invoice item. The price must be in cents: 2000 for $20.
             */
            saml?: {
                tier?: number;
                price: number;
                quantity: number;
                highestQuantity?: number;
                name?: string;
                hidden: boolean;
                createdAt?: number;
                disabledAt?: number | null;
                frequency?: {
                    interval: 'month';
                    intervalCount: 1 | 2 | 3 | 6 | 12;
                };
                maxQuantity?: number;
            };
 
            /**
             * Will be used to create an invoice item. The price must be in cents: 2000 for $20.
             */
            teamSeats?: {
                tier?: number;
                price: number;
                quantity: number;
                highestQuantity?: number;
                name?: string;
                hidden: boolean;
                createdAt?: number;
                disabledAt?: number | null;
                frequency?: {
                    interval: 'month';
                    intervalCount: 1 | 2 | 3 | 6 | 12;
                };
                maxQuantity?: number;
            };
            analyticsUsage?: {
                tier?: number;
                price: number;
                batch: number;
                threshold: number;
                name?: string;
                hidden: boolean;
                disabledAt?: number | null;
                enabledAt?: number | null;
            };
            artifacts?: {
                tier?: number;
                price: number;
                batch: number;
                threshold: number;
                name?: string;
                hidden: boolean;
                disabledAt?: number | null;
                enabledAt?: number | null;
            };
            bandwidth?: {
                tier?: number;
                price: number;
                batch: number;
                threshold: number;
                name?: string;
                hidden: boolean;
                disabledAt?: number | null;
                enabledAt?: number | null;
            };
            dataCacheRead?: {
                tier?: number;
                price: number;
                batch: number;
                threshold: number;
                name?: string;
                hidden: boolean;
                disabledAt?: number | null;
                enabledAt?: number | null;
            };
            dataCacheRevalidation?: {
                tier?: number;
                price: number;
                batch: number;
                threshold: number;
                name?: string;
                hidden: boolean;
                disabledAt?: number | null;
                enabledAt?: number | null;
            };
            dataCacheWrite?: {
                tier?: number;
                price: number;
                batch: number;
                threshold: number;
                name?: string;
                hidden: boolean;
                disabledAt?: number | null;
                enabledAt?: number | null;
            };
            edgeConfigRead?: {
                tier?: number;
                price: number;
                batch: number;
                threshold: number;
                name?: string;
                hidden: boolean;
                disabledAt?: number | null;
                enabledAt?: number | null;
            };
            edgeConfigWrite?: {
                tier?: number;
                price: number;
                batch: number;
                threshold: number;
                name?: string;
                hidden: boolean;
                disabledAt?: number | null;
                enabledAt?: number | null;
            };
            edgeFunctionExecutionUnits?: {
                tier?: number;
                price: number;
                batch: number;
                threshold: number;
                name?: string;
                hidden: boolean;
                disabledAt?: number | null;
                enabledAt?: number | null;
            };
            edgeMiddlewareInvocations?: {
                tier?: number;
                price: number;
                batch: number;
                threshold: number;
                name?: string;
                hidden: boolean;
                disabledAt?: number | null;
                enabledAt?: number | null;
            };
            monitoringMetric?: {
                tier?: number;
                price: number;
                batch: number;
                threshold: number;
                name?: string;
                hidden: boolean;
                disabledAt?: number | null;
                enabledAt?: number | null;
            };
            postgresComputeTime?: {
                tier?: number;
                price: number;
                batch: number;
                threshold: number;
                name?: string;
                hidden: boolean;
                disabledAt?: number | null;
                enabledAt?: number | null;
            };
            postgresDatabase?: {
                tier?: number;
                price: number;
                batch: number;
                threshold: number;
                name?: string;
                hidden: boolean;
                disabledAt?: number | null;
                enabledAt?: number | null;
            };
            postgresDataStorage?: {
                tier?: number;
                price: number;
                batch: number;
                threshold: number;
                name?: string;
                hidden: boolean;
                disabledAt?: number | null;
                enabledAt?: number | null;
            };
            postgresDataTransfer?: {
                tier?: number;
                price: number;
                batch: number;
                threshold: number;
                name?: string;
                hidden: boolean;
                disabledAt?: number | null;
                enabledAt?: number | null;
            };
            postgresWrittenData?: {
                tier?: number;
                price: number;
                batch: number;
                threshold: number;
                name?: string;
                hidden: boolean;
                disabledAt?: number | null;
                enabledAt?: number | null;
            };
            serverlessFunctionExecution?: {
                tier?: number;
                price: number;
                batch: number;
                threshold: number;
                name?: string;
                hidden: boolean;
                disabledAt?: number | null;
                enabledAt?: number | null;
            };
            sourceImages?: {
                tier?: number;
                price: number;
                batch: number;
                threshold: number;
                name?: string;
                hidden: boolean;
                disabledAt?: number | null;
                enabledAt?: number | null;
            };
            storageRedisTotalBandwidthInBytes?: {
                tier?: number;
                price: number;
                batch: number;
                threshold: number;
                name?: string;
                hidden: boolean;
                disabledAt?: number | null;
                enabledAt?: number | null;
            };
            storageRedisTotalCommands?: {
                tier?: number;
                price: number;
                batch: number;
                threshold: number;
                name?: string;
                hidden: boolean;
                disabledAt?: number | null;
                enabledAt?: number | null;
            };
            storageRedisTotalDailyAvgStorageInBytes?: {
                tier?: number;
                price: number;
                batch: number;
                threshold: number;
                name?: string;
                hidden: boolean;
                disabledAt?: number | null;
                enabledAt?: number | null;
            };
            storageRedisTotalDatabases?: {
                tier?: number;
                price: number;
                batch: number;
                threshold: number;
                name?: string;
                hidden: boolean;
                disabledAt?: number | null;
                enabledAt?: number | null;
            };
            webAnalyticsEvent?: {
                tier?: number;
                price: number;
                batch: number;
                threshold: number;
                name?: string;
                hidden: boolean;
                disabledAt?: number | null;
                enabledAt?: number | null;
            };
        } | null;
        invoiceSettings?: {
            footer?: string;
        };
        subscriptions?:
            | {
                  id: string;
                  trial: {
                      start: number;
                      end: number;
                  } | null;
                  period: {
                      start: number;
                      end: number;
                  };
                  frequency: {
                      interval: 'month' | 'day' | 'week' | 'year';
                      intervalCount: number;
                  };
                  discount: {
                      id: string;
                      coupon: {
                          id: string;
                          name: string | null;
                          amountOff: number | null;
                          percentageOff: number | null;
                          durationInMonths: number | null;
                          duration: 'forever' | 'repeating' | 'once';
                      };
                  } | null;
                  items: {
                      id: string;
                      priceId: string;
                      productId: string;
                      amount: number;
                      quantity: number;
                  }[];
              }[]
            | null;
        controls?: {
            analyticsSampleRateInPercent?: number | null;
            analyticsSpendLimitInDollars?: number | null;
        } | null;
        purchaseOrder?: string | null;
        status?: 'active' | 'trialing' | 'overdue' | 'expired' | 'canceled';
        pricingExperiment?: 'august-2022';
        orbMigrationScheduledAt?: number | null;
    } | null;
 
    /**
     * An object containing infomation related to the amount of platform resources may be allocated to the User account.
     */
    resourceConfig: {
        /**
         * An object containing infomation related to the amount of platform resources may be allocated to the User account.
         */
        nodeType?: string;
 
        /**
         * An object containing infomation related to the amount of platform resources may be allocated to the User account. */
        concurrentBuilds?: number;
 
        /**
         * An object containing infomation related to the amount of platform resources may be allocated to the User account.
         */
        awsAccountType?: string;
 
        /**
         * An object containing infomation related to the amount of platform resources may be allocated to the User account.
         */
        awsAccountIds?: string[];
 
        /**
         * An object containing infomation related to the amount of platform resources may be allocated to the User account.
         */
        cfZoneName?: string;
 
        /**
         * An object containing infomation related to the amount of platform resources may be allocated to the User account.
         */
        edgeConfigs?: number;
 
        /**
         * An object containing infomation related to the amount of platform resources may be allocated to the User account.
         */
        edgeConfigSize?: number;
 
        /**
         * An object containing infomation related to the amount of platform resources may be allocated to the User account.
         */
        edgeFunctionMaxSizeBytes?: number;
 
        /**
         * An object containing infomation related to the amount of platform resources may be allocated to the User account.
         */
        edgeFunctionExecutionTimeoutMs?: number;
 
        /**
         * An object containing infomation related to the amount of platform resources may be allocated to the User account.
         */
        serverlessFunctionDefaultMaxExecutionTime?: number;
 
        /**
         * An object containing infomation related to the amount of platform resources may be allocated to the User account.
         */
        kvDatabases?: number;
 
        /**
         * An object containing infomation related to the amount of platform resources may be allocated to the User account.
         */
        postgresDatabases?: number;
 
        /**
         * An object containing infomation related to the amount of platform resources may be allocated to the User account.
         */
        blobStores?: number;
 
        /**
         * An object containing infomation related to the amount of platform resources may be allocated to the User account.
         */
        integrationStores?: number;
 
        /**
         * An object containing infomation related to the amount of platform resources may be allocated to the User account.
         */
        cronJobs?: number;
    };
 
    /**
     * Prefix that will be used in the URL of "Preview" deployments created by the User account.
     */
    stagingPrefix: string;
 
    /**
     * set of dashboard view preferences (cards or list) per scopeId
     */
    activeDashboardViews?: {
        scopeId: string;
        viewPreference?: 'cards' | 'list';
        favoritesViewPreference?: 'open' | 'closed';
        recentsViewPreference?: 'open' | 'closed';
    }[];
    importFlowGitNamespace?: (string | number) | null;
    importFlowGitNamespaceId?: (string | number) | null;
    importFlowGitProvider?: 'github' | 'gitlab' | 'bitbucket';
    preferredScopesAndGitNamespaces?: {
        scopeId: string;
        gitNamespaceId: (string | number) | null;
    }[];
    dismissedToasts?: {
        name: string;
        dismissals: {
            scopeId: string;
            createdAt: number;
        }[];
    }[];
    favoriteProjectsAndSpaces?: (
        | {
              projectId: string;
              scopeSlug: string;
              scopeId: string;
          }
        | {
              spaceId: string;
              scopeSlug: string;
              scopeId: string;
          }
    )[];
    hasTrialAvailable: boolean;
    remoteCaching?: {
        enabled?: boolean;
    };
    dataCache?: {
        excessBillingEnabled?: boolean;
    };
    featureBlocks?: {
        webAnalytics?: {
            blockedFrom?: number;
            blockedUntil?: number;
            isCurrentlyBlocked: boolean;
        };
    };
    id: string;
    email: string;
    name: string | null;
    username: string;
    avatar: string | null;
    defaultTeamId: string | null;
    version: 'northstar' | null;
}

References