/* eslint-disable */ /** * This file was automatically generated by json-schema-to-typescript. * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, * and run json-schema-to-typescript to regenerate this file. */ /** * Provide the canary script source */ export type Code = { S3Bucket?: string; S3Key?: string; S3ObjectVersion?: string; Script?: string; Handler: string; } & { [k: string]: unknown; }; /** * Resource Type definition for AWS::Synthetics::Canary */ export interface AwsSyntheticsCanary { /** * Name of the canary. */ Name: string; /** * Id of the canary */ Id?: string; /** * State of the canary */ State?: string; Code: Code; /** * Provide the s3 bucket output location for test results */ ArtifactS3Location: string; ArtifactConfig?: ArtifactConfig; Schedule: Schedule; /** * Lambda Execution role used to run your canaries */ ExecutionRoleArn: string; /** * Runtime version of Synthetics Library */ RuntimeVersion: string; /** * Retention period of successful canary runs represented in number of days */ SuccessRetentionPeriod?: number; /** * Retention period of failed canary runs represented in number of days */ FailureRetentionPeriod?: number; Tags?: Tag[]; VPCConfig?: VPCConfig; RunConfig?: RunConfig; /** * Runs canary if set to True. Default is False */ StartCanaryAfterCreation: boolean; VisualReference?: VisualReference; /** * Deletes associated lambda resources created by Synthetics if set to True. Default is False */ DeleteLambdaResourcesOnCanaryDeletion?: boolean; } /** * Provide artifact configuration */ export interface ArtifactConfig { S3Encryption?: S3Encryption; } /** * Encryption configuration for uploading artifacts to S3 */ export interface S3Encryption { /** * Encryption mode for encrypting artifacts when uploading to S3. Valid values: SSE_S3 and SSE_KMS. */ EncryptionMode?: string; /** * KMS key Arn for encrypting artifacts when uploading to S3. You must specify KMS key Arn for SSE_KMS encryption mode only. */ KmsKeyArn?: string; } /** * Frequency to run your canaries */ export interface Schedule { Expression: string; DurationInSeconds?: string; } /** * A key-value pair to associate with a resource. */ export interface Tag { /** * The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. */ Key: string; /** * The value for the tag. You can specify a value that is 1 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. */ Value: string; } /** * Provide VPC Configuration if enabled. */ export interface VPCConfig { VpcId?: string; SubnetIds: string[]; SecurityGroupIds: string[]; } /** * Provide canary run configuration */ export interface RunConfig { /** * Provide maximum canary timeout per run in seconds */ TimeoutInSeconds?: number; /** * Provide maximum memory available for canary in MB */ MemoryInMB?: number; /** * Enable active tracing if set to true */ ActiveTracing?: boolean; /** * Environment variable key-value pairs. */ EnvironmentVariables?: { /** * This interface was referenced by `undefined`'s JSON-Schema definition * via the `patternProperty` "[a-zA-Z][a-zA-Z0-9_]+". */ [k: string]: string; }; } /** * Visual reference configuration for visual testing */ export interface VisualReference { /** * Canary run id to be used as base reference for visual testing */ BaseCanaryRunId: string; /** * List of screenshots used as base reference for visual testing */ BaseScreenshots?: BaseScreenshot[]; } export interface BaseScreenshot { /** * Name of the screenshot to be used as base reference for visual testing */ ScreenshotName: string; /** * List of coordinates of rectangles to be ignored during visual testing */ IgnoreCoordinates?: string[]; [k: string]: unknown; }