or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

Files

docs

core-compute.mdindex.mdsecurity.mdserverless.mdstorage.md

index.mddocs/

0

# Pulumi AWS

1

2

Pulumi AWS is a comprehensive infrastructure-as-code SDK that provides strongly-typed TypeScript bindings for creating and managing Amazon Web Services (AWS) cloud resources. It covers the complete AWS service catalog with over 180 service modules and 1,000+ resource types, enabling programmatic infrastructure management with full AWS API coverage.

3

4

## Package Information

5

6

- **Package Name**: @pulumi/aws

7

- **Package Type**: npm

8

- **Language**: TypeScript

9

- **Installation**: `npm install @pulumi/pulumi @pulumi/aws`

10

11

## Core Imports

12

13

```typescript

14

import * as aws from "@pulumi/aws";

15

import * as pulumi from "@pulumi/pulumi";

16

```

17

18

For specific services:

19

20

```typescript

21

import * as ec2 from "@pulumi/aws/ec2";

22

import * as s3 from "@pulumi/aws/s3";

23

import * as iam from "@pulumi/aws/iam";

24

```

25

26

For CommonJS:

27

28

```javascript

29

const aws = require("@pulumi/aws");

30

const pulumi = require("@pulumi/pulumi");

31

```

32

33

## Basic Usage

34

35

```typescript

36

import * as aws from "@pulumi/aws";

37

import * as pulumi from "@pulumi/pulumi";

38

39

// Configure the AWS provider

40

const provider = new aws.Provider("my-provider", {

41

region: "us-west-2",

42

profile: "default",

43

});

44

45

// Create a VPC

46

const vpc = new aws.ec2.Vpc("my-vpc", {

47

cidrBlock: "10.0.0.0/16",

48

enableDnsHostnames: true,

49

enableDnsSupport: true,

50

tags: {

51

Name: "my-vpc",

52

},

53

}, { provider });

54

55

// Create an S3 bucket

56

const bucket = new aws.s3.Bucket("my-bucket", {

57

bucket: "my-unique-bucket-name",

58

acl: "private",

59

}, { provider });

60

61

// Export the bucket name

62

export const bucketName = bucket.id;

63

export const vpcId = vpc.id;

64

```

65

66

## Architecture

67

68

Pulumi AWS is built around several key patterns:

69

70

- **Provider Class**: Central configuration for AWS credentials, regions, and global settings

71

- **Resource Classes**: Strongly-typed classes for creating and managing AWS resources (e.g., `aws.ec2.Instance`, `aws.s3.Bucket`)

72

- **Data Source Functions**: Functions for querying existing AWS resources (e.g., `aws.ec2.getVpc`, `aws.s3.getBucket`)

73

- **Type System**: Complete TypeScript definitions with Input/Output types for all resource properties

74

- **Module Organization**: AWS services organized into logical modules (ec2, s3, iam, lambda, etc.)

75

- **Lazy Loading**: Optimized imports with utilities.lazyLoad for improved performance

76

77

## Capabilities

78

79

### Provider Configuration

80

81

Central AWS provider configuration for credentials, regions, and service endpoints.

82

83

```typescript { .api }

84

class Provider extends pulumi.ProviderResource {

85

constructor(name: string, args?: ProviderArgs, opts?: pulumi.ResourceOptions);

86

87

public readonly accessKey!: pulumi.Output<string | undefined>;

88

public readonly region!: pulumi.Output<string | undefined>;

89

public readonly secretKey!: pulumi.Output<string | undefined>;

90

public readonly profile!: pulumi.Output<string | undefined>;

91

public readonly customCaBundle!: pulumi.Output<string | undefined>;

92

public readonly ec2MetadataServiceEndpoint!: pulumi.Output<string | undefined>;

93

public readonly ec2MetadataServiceEndpointMode!: pulumi.Output<string | undefined>;

94

public readonly httpProxy!: pulumi.Output<string | undefined>;

95

public readonly httpsProxy!: pulumi.Output<string | undefined>;

96

public readonly noProxy!: pulumi.Output<string | undefined>;

97

public readonly retryMode!: pulumi.Output<string | undefined>;

98

public readonly s3UsEast1RegionalEndpoint!: pulumi.Output<string | undefined>;

99

public readonly stsRegion!: pulumi.Output<string | undefined>;

100

public readonly token!: pulumi.Output<string | undefined>;

101

}

102

103

interface ProviderArgs {

104

accessKey?: pulumi.Input<string>;

105

allowedAccountIds?: pulumi.Input<pulumi.Input<string>[]>;

106

region?: pulumi.Input<string>;

107

secretKey?: pulumi.Input<string>;

108

profile?: pulumi.Input<string>;

109

customCaBundle?: pulumi.Input<string>;

110

ec2MetadataServiceEndpoint?: pulumi.Input<string>;

111

ec2MetadataServiceEndpointMode?: pulumi.Input<string>;

112

httpProxy?: pulumi.Input<string>;

113

httpsProxy?: pulumi.Input<string>;

114

noProxy?: pulumi.Input<string>;

115

retryMode?: pulumi.Input<string>;

116

s3UsEast1RegionalEndpoint?: pulumi.Input<string>;

117

stsRegion?: pulumi.Input<string>;

118

token?: pulumi.Input<string>;

119

}

120

```

121

122

### Global Utility Functions

123

124

AWS-wide utility functions for account, region, and service information.

125

126

```typescript { .api }

127

function getCallerIdentity(args?: GetCallerIdentityArgs): Promise<GetCallerIdentityResult>;

128

function getRegion(args?: GetRegionArgs): Promise<GetRegionResult>;

129

function getAvailabilityZones(args?: GetAvailabilityZonesArgs): Promise<GetAvailabilityZonesResult>;

130

function getPartition(args?: GetPartitionArgs): Promise<GetPartitionResult>;

131

function getArn(args: GetArnArgs): Promise<GetArnResult>;

132

function getBillingServiceAccount(args?: GetBillingServiceAccountArgs): Promise<GetBillingServiceAccountResult>;

133

function getDefaultTags(args?: GetDefaultTagsArgs): Promise<GetDefaultTagsResult>;

134

function getIpRanges(args: GetIpRangesArgs): Promise<GetIpRangesResult>;

135

function getRegions(args?: GetRegionsArgs): Promise<GetRegionsResult>;

136

function getService(args: GetServiceArgs): Promise<GetServiceResult>;

137

function getServicePrincipal(args: GetServicePrincipalArgs): Promise<GetServicePrincipalResult>;

138

139

interface GetCallerIdentityResult {

140

accountId: string;

141

arn: string;

142

id: string;

143

userId: string;

144

}

145

146

interface GetArnResult {

147

account: string;

148

partition: string;

149

region: string;

150

resource: string;

151

service: string;

152

}

153

154

interface GetBillingServiceAccountResult {

155

arn: string;

156

id: string;

157

}

158

159

interface GetDefaultTagsResult {

160

tags: { [key: string]: string };

161

}

162

163

interface GetIpRangesResult {

164

cidrBlocks: string[];

165

ipv6CidrBlocks: string[];

166

createDate: string;

167

syncToken: string;

168

}

169

```

170

171

### Core Compute Services

172

173

Complete infrastructure services including EC2, Auto Scaling, and Load Balancing with 165+ resource types and data sources.

174

175

```typescript { .api }

176

// EC2 Instance

177

class ec2.Instance extends pulumi.CustomResource {

178

constructor(name: string, args: ec2.InstanceArgs, opts?: pulumi.ResourceOptions);

179

180

public readonly ami!: pulumi.Output<string>;

181

public readonly instanceType!: pulumi.Output<string>;

182

public readonly publicIp!: pulumi.Output<string>;

183

public readonly privateIp!: pulumi.Output<string>;

184

public readonly securityGroups!: pulumi.Output<string[]>;

185

public readonly subnetId!: pulumi.Output<string>;

186

public readonly vpcSecurityGroupIds!: pulumi.Output<string[]>;

187

public readonly keyName!: pulumi.Output<string>;

188

public readonly availabilityZone!: pulumi.Output<string>;

189

public readonly arn!: pulumi.Output<string>;

190

public readonly id!: pulumi.Output<string>;

191

}

192

193

// VPC

194

class ec2.Vpc extends pulumi.CustomResource {

195

constructor(name: string, args: ec2.VpcArgs, opts?: pulumi.ResourceOptions);

196

197

public readonly cidrBlock!: pulumi.Output<string>;

198

public readonly id!: pulumi.Output<string>;

199

public readonly arn!: pulumi.Output<string>;

200

public readonly enableDnsHostnames!: pulumi.Output<boolean>;

201

public readonly enableDnsSupport!: pulumi.Output<boolean>;

202

public readonly defaultNetworkAclId!: pulumi.Output<string>;

203

public readonly defaultRouteTableId!: pulumi.Output<string>;

204

public readonly defaultSecurityGroupId!: pulumi.Output<string>;

205

public readonly mainRouteTableId!: pulumi.Output<string>;

206

}

207

```

208

209

[Core Compute Services](./core-compute.md)

210

211

### Storage Services

212

213

Complete storage solutions including S3, EBS, and EFS with object storage, block storage, and file systems.

214

215

```typescript { .api }

216

// S3 Bucket

217

class s3.Bucket extends pulumi.CustomResource {

218

constructor(name: string, args?: s3.BucketArgs, opts?: pulumi.ResourceOptions);

219

220

public readonly bucket!: pulumi.Output<string>;

221

public readonly arn!: pulumi.Output<string>;

222

public readonly bucketDomainName!: pulumi.Output<string>;

223

public readonly bucketRegionalDomainName!: pulumi.Output<string>;

224

public readonly hostedZoneId!: pulumi.Output<string>;

225

public readonly region!: pulumi.Output<string>;

226

public readonly websiteEndpoint!: pulumi.Output<string>;

227

public readonly websiteDomain!: pulumi.Output<string>;

228

public readonly id!: pulumi.Output<string>;

229

}

230

231

// EBS Volume

232

class ebs.Volume extends pulumi.CustomResource {

233

constructor(name: string, args: ebs.VolumeArgs, opts?: pulumi.ResourceOptions);

234

235

public readonly size!: pulumi.Output<number>;

236

public readonly type!: pulumi.Output<string>;

237

public readonly availabilityZone!: pulumi.Output<string>;

238

public readonly arn!: pulumi.Output<string>;

239

public readonly encrypted!: pulumi.Output<boolean>;

240

public readonly kmsKeyId!: pulumi.Output<string>;

241

public readonly iops!: pulumi.Output<number>;

242

public readonly throughput!: pulumi.Output<number>;

243

public readonly id!: pulumi.Output<string>;

244

}

245

```

246

247

[Storage Services](./storage.md)

248

249

### Database Services

250

251

Comprehensive database solutions including RDS, DynamoDB, and specialized database services.

252

253

```typescript { .api }

254

// RDS Instance

255

class rds.Instance extends pulumi.CustomResource {

256

constructor(name: string, args: rds.InstanceArgs, opts?: pulumi.ResourceOptions);

257

258

public readonly engine!: pulumi.Output<string>;

259

public readonly dbName!: pulumi.Output<string>;

260

public readonly endpoint!: pulumi.Output<string>;

261

}

262

263

// DynamoDB Table

264

class dynamodb.Table extends pulumi.CustomResource {

265

constructor(name: string, args: dynamodb.TableArgs, opts?: pulumi.ResourceOptions);

266

267

public readonly name!: pulumi.Output<string>;

268

public readonly arn!: pulumi.Output<string>;

269

}

270

```

271

272

Complete database services documentation will be added in future versions.

273

274

### Security & Identity Services

275

276

Complete security services including IAM, KMS, Secrets Manager, and security monitoring tools.

277

278

```typescript { .api }

279

// IAM Role

280

class iam.Role extends pulumi.CustomResource {

281

constructor(name: string, args: iam.RoleArgs, opts?: pulumi.ResourceOptions);

282

283

public readonly arn!: pulumi.Output<string>;

284

public readonly name!: pulumi.Output<string>;

285

}

286

287

// KMS Key

288

class kms.Key extends pulumi.CustomResource {

289

constructor(name: string, args?: kms.KeyArgs, opts?: pulumi.ResourceOptions);

290

291

public readonly keyId!: pulumi.Output<string>;

292

public readonly arn!: pulumi.Output<string>;

293

}

294

```

295

296

[Security & Identity Services](./security.md)

297

298

### Serverless Services

299

300

Complete serverless computing platform including Lambda, API Gateway, SQS, SNS, and event-driven services.

301

302

```typescript { .api }

303

// Lambda Function

304

class lambda.Function extends pulumi.CustomResource {

305

constructor(name: string, args: lambda.FunctionArgs, opts?: pulumi.ResourceOptions);

306

307

public readonly functionName!: pulumi.Output<string>;

308

public readonly arn!: pulumi.Output<string>;

309

public readonly invokeArn!: pulumi.Output<string>;

310

}

311

312

// API Gateway REST API

313

class apigateway.RestApi extends pulumi.CustomResource {

314

constructor(name: string, args?: apigateway.RestApiArgs, opts?: pulumi.ResourceOptions);

315

316

public readonly id!: pulumi.Output<string>;

317

public readonly executionArn!: pulumi.Output<string>;

318

}

319

```

320

321

[Serverless Services](./serverless.md)

322

323

### Networking Services

324

325

Complete networking infrastructure including VPC, Route53, CloudFront, and connectivity services.

326

327

```typescript { .api }

328

// Route53 Zone

329

class route53.Zone extends pulumi.CustomResource {

330

constructor(name: string, args: route53.ZoneArgs, opts?: pulumi.ResourceOptions);

331

332

public readonly name!: pulumi.Output<string>;

333

public readonly zoneId!: pulumi.Output<string>;

334

}

335

336

// CloudFront Distribution

337

class cloudfront.Distribution extends pulumi.CustomResource {

338

constructor(name: string, args: cloudfront.DistributionArgs, opts?: pulumi.ResourceOptions);

339

340

public readonly domainName!: pulumi.Output<string>;

341

public readonly arn!: pulumi.Output<string>;

342

}

343

```

344

345

Complete networking services documentation will be added in future versions.

346

347

### Monitoring & Observability

348

349

Complete monitoring solutions including CloudWatch, X-Ray, and operational tools for infrastructure observability.

350

351

```typescript { .api }

352

// CloudWatch Log Group

353

class cloudwatch.LogGroup extends pulumi.CustomResource {

354

constructor(name: string, args: cloudwatch.LogGroupArgs, opts?: pulumi.ResourceOptions);

355

356

public readonly name!: pulumi.Output<string>;

357

public readonly arn!: pulumi.Output<string>;

358

}

359

360

// X-Ray Sampling Rule

361

class xray.SamplingRule extends pulumi.CustomResource {

362

constructor(name: string, args: xray.SamplingRuleArgs, opts?: pulumi.ResourceOptions);

363

364

public readonly arn!: pulumi.Output<string>;

365

public readonly ruleName!: pulumi.Output<string>;

366

}

367

```

368

369

Complete monitoring and observability services documentation will be added in future versions.

370

371

## Complete Service Catalog

372

373

The SDK includes comprehensive coverage of all AWS services organized into 180+ modules including:

374

375

**Core Services**: ec2, s3, iam, lambda, rds, vpc, cloudformation, cloudwatch

376

**Analytics**: athena, glue, emr, kinesis, quicksight, lakeformation

377

**Machine Learning**: sagemaker, comprehend, rekognition, textract, bedrock

378

**Security**: kms, secretsmanager, guardduty, securityhub, macie, inspector

379

**DevOps**: codebuild, codedeploy, codepipeline, codebuild, codeartifact

380

**Containers**: ecs, eks, ecr, batch, apprunner

381

**And 160+ additional specialized services

382

383

Each service module follows consistent patterns with resource classes for creating infrastructure, data source functions for querying existing resources, and complete TypeScript definitions for all properties and return values.