UNPKG

cdk-insights

Version:

AWS CDK security and cost analysis tool with AI-powered insights

26 lines (25 loc) 2.1 kB
export type FeatureName = 'staticAnalysis' | 'multiStackAnalysis' | 'localAnalysis' | 'basicServiceChecks' | 'aiAnalysis' | 'contextualFixes' | 'smartPrioritization' | 'naturalLanguageExplanations' | 'customAITraining' | 'githubIntegration' | 'teamDashboards' | 'collaborativeCommenting' | 'sharedConfigurations' | 'jsonOutput' | 'tableOutput' | 'markdownOutput' | 'pdfReports' | 'executiveSummaries' | 'customBrandedReports' | 'customRuleSets' | 'advancedCompliance' | 'cloudAnalysis' | 'parallelAnalysis' | 'caching' | 'largeProjectSupport' | 'advancedFiltering' | 'apiAccess' | 'webhookNotifications' | 'cicdIntegration' | 'customIntegrations' | 'roleBasedAccess' | 'teamAnalytics' | 'auditTrails' | 'ssoIntegration' | 'multiTenantSupport' | 'whiteLabeling' | 'customBranding' | 'communitySupport' | 'emailSupport' | 'prioritySupport' | 'dedicatedAccountManager' | 'customTraining' | 'soc2Compliance' | 'hipaaCompliance' | 'fedrampCompliance' | 'customCompliance'; export type Tier = 'free' | 'pro' | 'enterprise'; interface FeatureConfig { features: Record<FeatureName, Record<Tier, boolean>>; } type FeatureGatingFunction = { isFeatureEnabled: (feature: FeatureName, tier: Tier) => boolean; getEnabledFeatures: (tier: Tier) => FeatureName[]; getAllFeatures: () => FeatureName[]; getFeatureTiers: (feature: FeatureName) => Record<Tier, boolean> | undefined; getUpgradePath: (feature: FeatureName, currentTier: Tier) => { required: boolean; tier: Tier; path: string; } | null; }; /** * Creates a feature gating function with the provided configuration */ export declare const createFeatureGating: (config?: FeatureConfig) => FeatureGatingFunction; export declare const featureGating: FeatureGatingFunction; export declare const requireFeature: (feature: FeatureName, tier: Tier, context?: string) => void; export declare const getFeatureUpgradeMessage: (feature: FeatureName, tier: Tier, context?: string) => string; export declare const logFeatureAccess: (feature: FeatureName, tier: Tier, enabled: boolean, context?: string) => void; export {};