/** * This module exists because I haven't yet been able to figure out a way * to mock the AWS SDK when using Sinon and TypeScript. The 'aws-sdk-mock' * tool doesn't work in TypeScript, and I have yet to find out how to use * Sinon to mock the SDK when using promises. */ import * as AWS from 'aws-sdk'; declare const awsWrapper: { iam: { createRole: (params: AWS.IAM.CreateRoleRequest) => Promise; getRole: (params: AWS.IAM.GetRoleRequest) => Promise; attachRolePolicy: (params: AWS.IAM.AttachRolePolicyRequest) => Promise<{ $response: AWS.Response<{}, AWS.AWSError>; }>; getPolicy: (params: AWS.IAM.GetPolicyRequest) => Promise; createPolicy: (params: AWS.IAM.CreatePolicyRequest) => Promise; createPolicyVersion: (params: AWS.IAM.CreatePolicyVersionRequest) => Promise>; listPolicyVersions: (params: AWS.IAM.ListPolicyVersionsRequest) => Promise>; deletePolicyVersion: (params: AWS.IAM.DeletePolicyVersionRequest) => Promise<{ $response: AWS.Response<{}, AWS.AWSError>; }>; listAttachedRolePolicies: (params: AWS.IAM.ListAttachedRolePoliciesRequest) => Promise>; listRoles: (params: AWS.IAM.ListRolesRequest) => Promise; deleteRole: (params: AWS.IAM.DeleteRoleRequest) => Promise<{ $response: AWS.Response<{}, AWS.AWSError>; }>; deletePolicy: (params: AWS.IAM.DeletePolicyRequest) => Promise<{ $response: AWS.Response<{}, AWS.AWSError>; }>; detachRolePolicy: (params: AWS.IAM.DetachRolePolicyRequest) => Promise<{ $response: AWS.Response<{}, AWS.AWSError>; }>; createServiceLinkedRole: (params: AWS.IAM.CreateServiceLinkedRoleRequest) => Promise>; }; s3: { putBucketNotificationConfiguration: (params: AWS.S3.PutBucketNotificationConfigurationRequest) => Promise<{}>; }; ses: { getIdentityVerificationAttributes: (params: AWS.SES.GetIdentityVerificationAttributesRequest) => Promise>; verifyEmailAddress: (params: AWS.SES.VerifyEmailAddressRequest) => Promise<{ $response: AWS.Response<{}, AWS.AWSError>; }>; }; ec2: { describeSecurityGroups: (params: AWS.EC2.DescribeSecurityGroupsRequest) => Promise>; revokeSecurityGroupIngress: (params: AWS.EC2.RevokeSecurityGroupIngressRequest) => Promise<{ $response: AWS.Response<{}, AWS.AWSError>; }>; authorizeSecurityGroupIngress: (params: AWS.EC2.AuthorizeSecurityGroupIngressRequest) => Promise<{ $response: AWS.Response<{}, AWS.AWSError>; }>; describeImages: (params: AWS.EC2.DescribeImagesRequest) => Promise>; describeRegions: (params: AWS.EC2.DescribeRegionsRequest) => Promise>; describeSubnets: (params: AWS.EC2.DescribeSubnetsRequest) => Promise>; describeVpcs: (params: AWS.EC2.DescribeVpcsRequest) => Promise>; }; sts: { getCallerIdentity: (params: AWS.STS.GetCallerIdentityRequest) => Promise>; }; autoScaling: { terminateInstanceInAutoScalingGroup: (params: any) => Promise>; describeAutoScalingInstances: (params: any) => Promise>; describeAutoScalingGroups: (params: AWS.AutoScaling.AutoScalingGroupNamesType) => Promise; describeLaunchConfigurations: (params: any) => Promise>; updateAutoScalingGroup: (params: AWS.AutoScaling.UpdateAutoScalingGroupType) => Promise<{}>; }; ecs: { describeClusters: (params: AWS.ECS.DescribeClustersRequest) => Promise>; createCluster: (params: AWS.ECS.CreateClusterRequest) => Promise>; listContainerInstances: (params: AWS.ECS.ListContainerInstancesRequest) => Promise>; describeContainerInstances: (params: AWS.ECS.DescribeContainerInstancesRequest) => Promise>; }; cloudWatchEvents: { putTargets: (params: AWS.CloudWatchEvents.PutTargetsRequest) => Promise>; listTargetsByRule: (params: AWS.CloudWatchEvents.ListTargetsByRuleRequest) => Promise>; listRules: (params: any) => Promise>; removeTargets: (params: AWS.CloudWatchEvents.RemoveTargetsRequest) => Promise>; }; lambda: { addPermission: (params: AWS.Lambda.AddPermissionRequest) => Promise>; getPolicy: (params: AWS.Lambda.GetPolicyRequest) => Promise>; createEventSourceMapping: (params: AWS.Lambda.CreateEventSourceMappingRequest) => Promise>; listEventSourceMappings: (params: AWS.Lambda.ListEventSourceMappingsRequest) => Promise>; deleteEventSourceMapping: (params: AWS.Lambda.DeleteEventSourceMappingRequest) => Promise>; invoke: (params: AWS.Lambda.InvocationRequest) => Promise>; }; route53: { listHostedZones: (params: AWS.Route53.ListHostedZonesRequest) => Promise>; }; sqs: { getQueueAttributes: (params: AWS.SQS.GetQueueAttributesRequest) => Promise>; setQueueAttributes: (params: AWS.SQS.SetQueueAttributesRequest) => Promise<{ $response: AWS.Response<{}, AWS.AWSError>; }>; }; sns: { getTopicAttributes: (params: AWS.SNS.GetTopicAttributesInput) => Promise>; setTopicAttributes: (params: AWS.SNS.SetTopicAttributesInput) => Promise<{ $response: AWS.Response<{}, AWS.AWSError>; }>; subscribe: (params: AWS.SNS.SubscribeInput) => Promise>; }; dynamodb: { describeTable: (params: AWS.DynamoDB.DescribeTableInput) => Promise>; createTable: (params: AWS.DynamoDB.CreateTableInput) => Promise>; putItem: (params: AWS.DynamoDB.DocumentClient.PutItemInput) => Promise>; }; pricing: { getProducts: (params: AWS.Pricing.GetProductsRequest) => Promise>; }; }; export default awsWrapper;