@aws-amplify/amplify-appsync-simulator
Version:
An AppSync Simulator to test AppSync API.
142 lines • 5.63 kB
TypeScript
import { Request } from 'express';
export type AppSyncMockFile = {
path?: string;
content: string;
};
export type AppSyncVTLTemplate = AppSyncMockFile;
export type AppSyncSimulatorFunctionsConfig = {
name: string;
dataSourceName: string;
requestMappingTemplateLocation: string;
responseMappingTemplateLocation: string;
};
export declare enum RESOLVER_KIND {
UNIT = "UNIT",
PIPELINE = "PIPELINE"
}
export interface AppSyncSimulatorBaseResolverConfig {
requestMappingTemplateLocation?: string;
responseMappingTemplateLocation?: string;
requestMappingTemplate?: string;
responseMappingTemplate?: string;
}
export interface AppSyncSimulatorUnitResolverConfig extends AppSyncSimulatorBaseResolverConfig {
kind: RESOLVER_KIND.UNIT;
fieldName: string;
typeName: string;
dataSourceName: string;
}
export interface AppSyncSimulatorPipelineResolverConfig extends AppSyncSimulatorBaseResolverConfig {
kind: RESOLVER_KIND.PIPELINE;
typeName: string;
fieldName: string;
functions: string[];
}
export interface AppSyncSimulatorFunctionResolverConfig extends AppSyncSimulatorBaseResolverConfig {
dataSourceName: string;
}
export type AppSyncSimulatorMappingTemplate = AppSyncMockFile;
export type AppSyncSimulatorTable = string;
export interface AppSyncSimulatorUnitResolver extends AppSyncSimulatorUnitResolverConfig {
datSourceName: string;
}
export interface AppSyncSimulatorPipelineResolver extends AppSyncSimulatorUnitResolverConfig {
functions: string[];
}
export declare const enum AppSyncSimulatorDataSourceType {
DynamoDB = "AMAZON_DYNAMODB",
Lambda = "AWS_LAMBDA",
OpenSearch = "AMAZON_ELASTICSEARCH",
None = "NONE"
}
export interface AppSyncSimulatorDataSourceBaseConfig {
name: string;
type: AppSyncSimulatorDataSourceType | `${AppSyncSimulatorDataSourceType}`;
}
export interface AppSyncSimulatorDataSourceDDBConfig extends AppSyncSimulatorDataSourceBaseConfig {
type: AppSyncSimulatorDataSourceType.DynamoDB | `${AppSyncSimulatorDataSourceType.DynamoDB}`;
config: {
endpoint: string;
region?: string;
accessKeyId?: string;
secretAccessKey?: string;
tableName: string;
};
}
export interface AppSyncSimulatorDataSourceNoneConfig extends AppSyncSimulatorDataSourceBaseConfig {
type: AppSyncSimulatorDataSourceType.None | `${AppSyncSimulatorDataSourceType.None}`;
}
export interface AppSyncSimulatorDataSourceLambdaConfig extends AppSyncSimulatorDataSourceBaseConfig {
type: AppSyncSimulatorDataSourceType.Lambda | `${AppSyncSimulatorDataSourceType.Lambda}`;
invoke: Function;
}
export type AppSyncSimulatorDataSourceConfig = AppSyncSimulatorDataSourceDDBConfig | AppSyncSimulatorDataSourceNoneConfig | AppSyncSimulatorDataSourceLambdaConfig;
export type AppSyncSimulatorSchemaConfig = AppSyncMockFile;
export declare enum AmplifyAppSyncSimulatorAuthenticationType {
API_KEY = "API_KEY",
AWS_IAM = "AWS_IAM",
AMAZON_COGNITO_USER_POOLS = "AMAZON_COGNITO_USER_POOLS",
OPENID_CONNECT = "OPENID_CONNECT",
AWS_LAMBDA = "AWS_LAMBDA"
}
export type AmplifyAppSyncAuthenticationProviderAPIConfig = {
authenticationType: AmplifyAppSyncSimulatorAuthenticationType.API_KEY;
};
export type AmplifyAppSyncAuthenticationProviderIAMConfig = {
authenticationType: AmplifyAppSyncSimulatorAuthenticationType.AWS_IAM;
};
export type AmplifyAppSyncAuthenticationProviderCognitoConfig = {
authenticationType: AmplifyAppSyncSimulatorAuthenticationType.AMAZON_COGNITO_USER_POOLS;
cognitoUserPoolConfig: {
AppIdClientRegex?: string;
};
};
export type AmplifyAppSyncAuthenticationProviderOIDCConfig = {
authenticationType: AmplifyAppSyncSimulatorAuthenticationType.OPENID_CONNECT;
openIDConnectConfig: {
Issuer?: string;
ClientId?: string;
};
};
export type AmplifyAppSyncAuthenticationProviderLambdaConfig = {
authenticationType: AmplifyAppSyncSimulatorAuthenticationType.AWS_LAMBDA;
lambdaAuthorizerConfig: {
AuthorizerUri: string;
AuthorizerResultTtlInSeconds?: number;
};
};
export type AmplifyAppSyncAuthenticationProviderConfig = AmplifyAppSyncAuthenticationProviderAPIConfig | AmplifyAppSyncAuthenticationProviderIAMConfig | AmplifyAppSyncAuthenticationProviderCognitoConfig | AmplifyAppSyncAuthenticationProviderOIDCConfig | AmplifyAppSyncAuthenticationProviderLambdaConfig;
export type AmplifyAppSyncAPIConfig = {
name: string;
defaultAuthenticationType: AmplifyAppSyncAuthenticationProviderConfig;
authRoleName?: string;
unAuthRoleName?: string;
authAccessKeyId?: string;
accountId?: string;
apiKey?: string;
additionalAuthenticationProviders: AmplifyAppSyncAuthenticationProviderConfig[];
};
export type AmplifyAppSyncSimulatorConfig = {
schema: AppSyncSimulatorSchemaConfig;
resolvers?: (AppSyncSimulatorUnitResolverConfig | AppSyncSimulatorPipelineResolverConfig)[];
functions?: AppSyncSimulatorFunctionsConfig[];
dataSources?: AppSyncSimulatorDataSourceConfig[];
mappingTemplates?: AppSyncSimulatorMappingTemplate[];
tables?: AppSyncSimulatorTable[];
appSync: AmplifyAppSyncAPIConfig;
};
export type AppSyncSimulatorServerConfig = {
port?: number;
wsPort?: number;
httpsConfig?: {
sslKeyPath: string;
sslCertPath: string;
};
};
export type AmplifyAppSyncSimulatorRequestContext = {
jwt?: object;
requestAuthorizationMode: AmplifyAppSyncSimulatorAuthenticationType;
request: Request;
appsyncErrors: any[];
};
//# sourceMappingURL=type-definition.d.ts.map