import { Dict, KeyVal, Limits, Response, PathName, Status, ActionDesc, PackageDesc, RuleDesc, TriggerDesc } from 'openwhisk'; import { ResourceWithMetadata } from '@kui-shell/core'; /** our synthetic apiVersion */ export declare const apiVersion = "openwhisk/v1"; export interface Metadata { name: string; namespace: string; creationTimestamp?: string; } export interface ResourceWithNonOptionalMetadata extends ResourceWithMetadata { metadata: Metadata; } /** kind attribute */ export interface WithKind extends ResourceWithNonOptionalMetadata { kind: string; } /** has a kind attribute? */ export declare function hasKind(resource: ResourceWithNonOptionalMetadata): resource is WithKind; /** version attribute */ export interface WithVersion extends ResourceWithNonOptionalMetadata { version?: string; } /** has a version attribute? */ export declare function hasVersion(resource: ResourceWithNonOptionalMetadata): resource is WithVersion; /** payload with raw data as fetched from the backend */ export interface RawDataBearing extends ResourceWithNonOptionalMetadata { data?: string; } /** has a raw data payload? */ export declare function hasRawData(resource: ResourceWithNonOptionalMetadata): resource is RawDataBearing; export declare type OpenWhiskResource = WithKind & RawDataBearing & { apiVersion: any; }; export declare function isOpenWhiskResource(resource: ResourceWithMetadata): resource is OpenWhiskResource; export interface WithAnnotations extends OpenWhiskResource { annotations: KeyVal[]; } export declare function hasAnnotations(resource: ResourceWithNonOptionalMetadata): resource is WithAnnotations; export declare function hasAnnotation(resource: WithAnnotations, key: string, value?: string): boolean; export interface WithParameters extends OpenWhiskResource { parameters: KeyVal[]; } export declare function hasParameters(resource: ResourceWithNonOptionalMetadata): resource is WithParameters; export interface WithLimits extends OpenWhiskResource { limits: Limits; } export declare function hasLimits(resource: ResourceWithNonOptionalMetadata): resource is WithLimits; export interface Action extends WithAnnotations, WithParameters, WithLimits { kind: 'Action'; exec: { kind: string; code?: string; binary?: boolean; components?: string[]; }; } export interface ActionWithCode extends Action { exec: { kind: string; code: string; binary?: boolean; }; } export declare function isAction(resource: ResourceWithNonOptionalMetadata): resource is Action; export interface Sequence extends Action { exec: { kind: 'sequence'; components: string[]; }; } export declare function isSequence(resource: ResourceWithNonOptionalMetadata): resource is Sequence; export declare function hasCode(action: ResourceWithNonOptionalMetadata): action is ActionWithCode; export declare function hasTextualCode(action: ResourceWithNonOptionalMetadata): action is ActionWithCode; export declare function hasBinaryCode(action: ResourceWithNonOptionalMetadata): action is ActionWithCode; export declare function hasZipCode(action: ResourceWithNonOptionalMetadata): action is ActionWithCode; export interface BlackboxAction extends Action { exec: { kind: 'blackbox'; image: string; binary: boolean; }; } export declare function isBlackbox(action: ResourceWithNonOptionalMetadata): action is BlackboxAction; export interface Trigger extends WithAnnotations, WithLimits, WithParameters { kind: 'Trigger'; } export declare function isTrigger(resource: ResourceWithNonOptionalMetadata): resource is Trigger; export interface FQN { name: string; } export interface WithActions extends ResourceWithNonOptionalMetadata { actions: FQN[]; } export interface WithActionDescs extends ResourceWithNonOptionalMetadata { actions: ActionDesc[]; } export declare function hasActions(resource: ResourceWithNonOptionalMetadata): resource is WithActions; export declare function hasActionDescs(resource: ResourceWithNonOptionalMetadata): resource is WithActionDescs; export interface WithPackages extends ResourceWithNonOptionalMetadata { packages: PackageDesc[]; } export declare function hasPackages(resource: ResourceWithNonOptionalMetadata): resource is WithPackages; export interface WithRules extends ResourceWithNonOptionalMetadata { rules: RuleDesc[]; } export declare function hasRules(resource: ResourceWithNonOptionalMetadata): resource is WithRules; export interface WithTriggers extends ResourceWithNonOptionalMetadata { triggers: TriggerDesc[]; } export declare function hasTriggers(resource: ResourceWithNonOptionalMetadata): resource is WithTriggers; export interface WithFeeds extends ResourceWithNonOptionalMetadata { feeds: FQN[]; } export declare function hasFeeds(resource: ResourceWithNonOptionalMetadata): resource is WithFeeds; export interface WithBinding extends ResourceWithNonOptionalMetadata { binding?: { name: string; namespace: string; }; } export declare function hasBinding(resource: ResourceWithNonOptionalMetadata): resource is WithBinding; export declare type Package = WithAnnotations & WithParameters & WithActions & WithFeeds & WithBinding & { kind: 'Package'; }; export declare function isPackage(resource: ResourceWithNonOptionalMetadata): resource is Package; export interface WithLogs extends ResourceWithNonOptionalMetadata { logs: string[]; } export declare function hasLogs(resource: ResourceWithNonOptionalMetadata): resource is WithLogs; export interface WithResponse extends ResourceWithNonOptionalMetadata { response: Response; } export declare function hasResponse(resource: ResourceWithNonOptionalMetadata): resource is WithResponse; export interface WithActivationId extends ResourceWithNonOptionalMetadata { activationId: string; } export declare function hasActivationId(resource: ResourceWithNonOptionalMetadata): resource is WithActivationId; export interface WithDuration extends ResourceWithNonOptionalMetadata { end?: number; start?: number; duration: number; } export declare function hasDuration(resource: ResourceWithNonOptionalMetadata): resource is WithDuration; export declare type Activation = WithAnnotations & WithLogs & WithResponse & WithLimits & WithActivationId & WithDuration & { kind: 'Activation'; start: number; end: number; statusCode: number; }; export declare function isActivation(resource: ResourceWithNonOptionalMetadata): resource is Activation; /** OpenWhisk current namespace at the time the resource was fetched */ declare type WithCurrentNamespace = { currentNamespace: string; }; /** Prefetched component activations of a sequence */ declare type WithSequenceComponents = { componentActivations: Activation[]; }; export declare type SequenceActivation = Activation & WithCurrentNamespace & WithSequenceComponents; export declare function isSequenceActivation(resource: ResourceWithNonOptionalMetadata): resource is SequenceActivation; export declare type Invokeable = Action | Trigger | Activation; export declare function isInvokeable(resource: ResourceWithNonOptionalMetadata): resource is Invokeable; export interface WithAction extends ResourceWithNonOptionalMetadata { action: PathName; } export declare function hasAction(resource: ResourceWithNonOptionalMetadata): resource is WithAction; export interface WithTrigger extends ResourceWithNonOptionalMetadata { trigger: PathName; } export declare function hasTrigger(resource: ResourceWithNonOptionalMetadata): resource is WithTrigger; export interface WithStatus extends ResourceWithNonOptionalMetadata { status: Status; } export declare function hasStatus(resource: ResourceWithNonOptionalMetadata): resource is WithStatus; export declare type Rule = OpenWhiskResource & WithAction & WithTrigger & WithStatus & { kind: 'Rule'; }; export declare function isRule(resource: ResourceWithNonOptionalMetadata): resource is Rule; export declare type Deleteable = Action | Package | Trigger | Rule; export declare function isDeleteable(resource: OpenWhiskResource): resource is Deleteable; export declare function isWebExported(resource: ResourceWithNonOptionalMetadata): boolean; export declare type Namespace = OpenWhiskResource & WithActionDescs & WithPackages & WithRules & WithTriggers & { kind: 'Namespace'; }; export {};