UNPKG

@altostra/core

Version:

Core library for shared types and logic

90 lines (89 loc) 5.53 kB
import type { TaggedUnionValidation } from '@altostra/type-validations/lib/taggedUnionOf'; import type { ApiAuthorizerConnection, ApiAuthorizerConnectionType } from "./ApiAuthorizerConnection"; import type { ApiDomainAssociation, ApiDomainAssociationType } from "./Association"; import type { Auth0ApplicationAccess, Auth0ApplicationAccessType } from "./Auth0ApplicationAccess"; import type { CDNStorage, CDNStorageType } from "./CDNStorage"; import type { ConnectionBase } from "./Common"; import type { DeadLetterQueueConnection, DeadLetterQueueConnectionType } from "./DeadLetterQueueConnection"; import type { DeliveryStreamConnectionByType, DeliveryStreamConnectionType } from "./DeliveryStreams"; import type { DomainConnection, DomainConnectionType, DomainServiceConnection, DomainServiceConnectionType } from "./DomainConnection"; import type { EventBridgeEventBusConnection, EventBridgeEventBusConnectionType } from "./EventBridgeEventBusConnection"; import type { EventBridgeReceiveEventConnection, EventBridgeReceiveEventConnectionType } from "./EventBridgeReceiveEventConnection"; import type { InvocationAccessConnection, InvocationAccessConnectionType } from "./InvocationAccessConnection"; import type { ManagedKeyAccessConnection, ManagedKeyAccessConnectionType } from "./ManagedKeyAccessConnection"; import type { PolicyAttachmentConnection, PolicyAttachmentConnectionType } from "./PolicyAttachmentConnection"; import type { RelationalDBParamsAttachment, RelationalDBParamsAttachmentType } from "./RelationDBParameters"; import type { ResourceAccess, ResourceAccessType } from "./ResourceAccess"; import type { ResourceDomainName, ResourceDomainNameType } from "./ResourceDomainName"; import type { StreamData, StreamDataType } from "./StreamedData"; import type { StreamTrigger, StreamTriggerType } from "./StreamTrigger"; import type { TopicSubscription, TopicSubscriptionType } from "./TopicSubscription"; import type { ContainerTriggerConnectionByType, ContainerTriggerConnectionTypes } from "./Triggers/ContainerTrigger"; import type { FileStoreTriggerConnection, FileStoreTriggerConnectionType } from "./Triggers/FileStoreTrigger"; import type { Trigger, TriggerType } from "./Triggers/Trigger"; export * from "./Association"; export * from "./Auth0ApplicationAccess"; export { ConnectionBase } from "./Common"; export * from "./ConnectionId"; export * from "./DeadLetterQueueConnection"; export * from "./DomainConnection"; export * from "./InvocationAccessConnection"; export * from "./ManagedKeyAccessConnection"; export * from "./PolicyAttachmentConnection"; export * from "./RelationDBParameters"; export * from "./ResourceAccess"; export * from "./ResourceDomainName"; export * from "./StreamedData"; export * from "./TopicSubscription"; export * from "./Triggers/ContainerTrigger"; export * from "./Triggers/FileStoreTrigger"; export * from "./DeliveryStreams/FileStoreDeliveryStreamConnection"; export * from "./Triggers/Trigger"; export * from "./EventBridgeReceiveEventConnection"; export * from "./EventBridgeEventBusConnection"; export declare type ConnectionType = ApiAuthorizerConnectionType | ApiDomainAssociationType | Auth0ApplicationAccessType | CDNStorageType | ContainerTriggerConnectionTypes | DeadLetterQueueConnectionType | DeliveryStreamConnectionType | DomainConnectionType | DomainServiceConnectionType | EventBridgeEventBusConnectionType | EventBridgeReceiveEventConnectionType | FileStoreTriggerConnectionType | InvocationAccessConnectionType | ManagedKeyAccessConnectionType | PolicyAttachmentConnectionType | RelationalDBParamsAttachmentType | ResourceAccessType | ResourceDomainNameType | StreamDataType | StreamTriggerType | TopicSubscriptionType | TriggerType; export declare type ConnectionsByType = ContainerTriggerConnectionByType & DeliveryStreamConnectionByType & { [K in ApiAuthorizerConnectionType]: ApiAuthorizerConnection; } & { [K in ApiDomainAssociationType]: ApiDomainAssociation; } & { [K in Auth0ApplicationAccessType]: Auth0ApplicationAccess; } & { [K in CDNStorageType]: CDNStorage; } & { [K in DeadLetterQueueConnectionType]: DeadLetterQueueConnection; } & { [K in DomainConnectionType]: DomainConnection; } & { [K in DomainServiceConnectionType]: DomainServiceConnection; } & { [K in EventBridgeEventBusConnectionType]: EventBridgeEventBusConnection; } & { [K in EventBridgeReceiveEventConnectionType]: EventBridgeReceiveEventConnection; } & { [K in FileStoreTriggerConnectionType]: FileStoreTriggerConnection; } & { [K in InvocationAccessConnectionType]: InvocationAccessConnection; } & { [K in ManagedKeyAccessConnectionType]: ManagedKeyAccessConnection; } & { [K in PolicyAttachmentConnectionType]: PolicyAttachmentConnection; } & { [K in RelationalDBParamsAttachmentType]: RelationalDBParamsAttachment; } & { [K in ResourceAccessType]: ResourceAccess; } & { [K in ResourceDomainNameType]: ResourceDomainName; } & { [K in StreamDataType]: StreamData; } & { [K in StreamTriggerType]: StreamTrigger; } & { [K in TopicSubscriptionType]: TopicSubscription; } & { [K in TriggerType]: Trigger; }; export declare type ConnectionByType<TType extends ConnectionType> = ConnectionsByType[TType]; export declare type Connection = ConnectionByType<ConnectionType>; export declare type ConnectionData<TType extends ConnectionType> = Omit<ConnectionByType<TType>, keyof ConnectionBase>; export declare const isConnection: TaggedUnionValidation<Connection, 'type', ConnectionType>;