@altostra/core
Version:
Core library for shared types and logic
90 lines (89 loc) • 5.53 kB
TypeScript
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>;