UNPKG

kubricate

Version:

A TypeScript framework for building reusable, type-safe Kubernetes infrastructure — without the YAML mess.

32 lines 2.08 kB
import type { BaseProvider } from '@kubricate/core'; import type { BaseStack } from '../stack/BaseStack.js'; import { SecretInjectionBuilder } from './SecretInjectionBuilder.js'; import type { SecretManager } from './SecretManager.js'; import type { AnySecretManager, ExtractSecretManager } from './types.js'; export type ExtractProviderKeyFromSecretManager<SM extends AnySecretManager, Key extends keyof ExtractSecretManager<SM>['secretEntries']> = ExtractSecretManager<SM>['secretEntries'][Key] extends { provider: infer P; } ? P : never; export type GetProviderKindFromConnector<SM extends AnySecretManager, ProviderKey> = ProviderKey extends string ? ExtractSecretManager<SM>['providerInstances'][ProviderKey] extends BaseProvider<any, infer Instance> ? Instance : never : never; export type GetProviderKinds<SM extends AnySecretManager, Key extends keyof ExtractSecretManager<SM>['secretEntries']> = GetProviderKindFromConnector<SM, ExtractProviderKeyFromSecretManager<SM, Key>>; export declare class SecretsInjectionContext<SM extends SecretManager = AnySecretManager> { private stack; private manager; private secretManagerId; private defaultResourceId; private builders; constructor(stack: BaseStack, manager: SM, secretManagerId: number); /** * Set the default resourceId to use when no explicit resource is defined in a secret injection. */ setDefaultResourceId(id: string): void; /** * Start defining how a secret will be injected into a resource. * This only resolves the provider, not the actual secret value. * * @param secretName - The name of the secret to inject. * @returns A SecretInjectionBuilder for chaining inject behavior. */ secrets<NewKey extends keyof ExtractSecretManager<SM>['secretEntries'] = keyof ExtractSecretManager<SM>['secretEntries'], ProviderKinds extends GetProviderKinds<SM, NewKey> = GetProviderKinds<SM, NewKey>>(secretName: NewKey): SecretInjectionBuilder<ProviderKinds>; resolveAll(): void; } //# sourceMappingURL=SecretsInjectionContext.d.ts.map