@anvil-cloud/sdk 0.0.13 → 0.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/aws/cognitoAuth.ts +70 -0
- package/aws/cognitoUserPool.ts +132 -0
- package/aws/dynamoDB.ts +176 -0
- package/aws/eventBus.ts +91 -0
- package/aws/httpApi.ts +108 -0
- package/aws/index.ts +63 -0
- package/aws/lambda.ts +9 -3
- package/aws/oauthAuthorizer.ts +70 -0
- package/aws/queue.ts +156 -0
- package/aws/svelteKitSite.ts +14 -0
- package/aws/vpc.ts +159 -0
- package/aws/vpcEndpoint.ts +98 -0
- package/bin/aws/cognitoAuth.d.ts +36 -0
- package/bin/aws/cognitoAuth.js +53 -0
- package/bin/aws/cognitoAuth.js.map +1 -0
- package/bin/aws/cognitoUserPool.d.ts +82 -0
- package/bin/aws/cognitoUserPool.js +65 -0
- package/bin/aws/cognitoUserPool.js.map +1 -0
- package/bin/aws/dynamoDB.d.ts +115 -0
- package/bin/aws/dynamoDB.js +121 -0
- package/bin/aws/dynamoDB.js.map +1 -0
- package/bin/aws/eventBus.d.ts +47 -0
- package/bin/aws/eventBus.js +63 -0
- package/bin/aws/eventBus.js.map +1 -0
- package/bin/aws/httpApi.d.ts +66 -0
- package/bin/aws/httpApi.js +60 -0
- package/bin/aws/httpApi.js.map +1 -0
- package/bin/aws/index.d.ts +27 -0
- package/bin/aws/index.js +37 -1
- package/bin/aws/index.js.map +1 -1
- package/bin/aws/lambda.d.ts +7 -3
- package/bin/aws/lambda.js +2 -0
- package/bin/aws/lambda.js.map +1 -1
- package/bin/aws/oauthAuthorizer.d.ts +36 -0
- package/bin/aws/oauthAuthorizer.js +53 -0
- package/bin/aws/oauthAuthorizer.js.map +1 -0
- package/bin/aws/queue.d.ts +83 -0
- package/bin/aws/queue.js +103 -0
- package/bin/aws/queue.js.map +1 -0
- package/bin/aws/svelteKitSite.d.ts +9 -0
- package/bin/aws/svelteKitSite.js +3 -0
- package/bin/aws/svelteKitSite.js.map +1 -1
- package/bin/aws/vpc.d.ts +98 -0
- package/bin/aws/vpc.js +94 -0
- package/bin/aws/vpc.js.map +1 -0
- package/bin/aws/vpcEndpoint.d.ts +53 -0
- package/bin/aws/vpcEndpoint.js +62 -0
- package/bin/aws/vpcEndpoint.js.map +1 -0
- package/bin/grants.d.ts +0 -10
- package/bin/grants.js +5 -10
- package/bin/grants.js.map +1 -1
- package/bin/package.json +1 -1
- package/bin/types/enums/aws/index.d.ts +211 -7
- package/bin/types/enums/aws/index.js +192 -8
- package/bin/types/enums/aws/index.js.map +1 -1
- package/bin/types/input.d.ts +1040 -0
- package/bin/types/output.d.ts +13 -0
- package/grants.ts +7 -22
- package/package.json +1 -1
- package/tsconfig.json +9 -0
- package/types/enums/aws/index.ts +239 -7
- package/types/input.ts +1079 -0
- package/types/output.ts +14 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
|
|
2
|
+
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
|
3
|
+
|
|
4
|
+
import * as pulumi from "@pulumi/pulumi";
|
|
5
|
+
import * as utilities from "../utilities";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* An Anvil-managed JWT authorizer backed by a Cognito user pool. Derives the issuer URL automatically from the user pool ID — no manual Cognito endpoint construction required. Creates a native API Gateway JWT authorizer; verification is handled entirely by API Gateway with no Lambda or custom code. Pass authorizerId to HttpApi defaultAuthorizerId to protect your API routes.
|
|
9
|
+
*/
|
|
10
|
+
export class CognitoAuth extends pulumi.ComponentResource {
|
|
11
|
+
/** @internal */
|
|
12
|
+
public static readonly __pulumiType = 'anvil:aws:CognitoAuth';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Returns true if the given object is an instance of CognitoAuth. This is designed to work even
|
|
16
|
+
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
17
|
+
*/
|
|
18
|
+
public static isInstance(obj: any): obj is CognitoAuth {
|
|
19
|
+
if (obj === undefined || obj === null) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
return obj['__pulumiType'] === CognitoAuth.__pulumiType;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* The API Gateway authorizer ID. Pass this to HttpApi defaultAuthorizerId to protect your API routes.
|
|
27
|
+
*/
|
|
28
|
+
declare public /*out*/ readonly authorizerId: pulumi.Output<string>;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Create a CognitoAuth resource with the given unique name, arguments, and options.
|
|
32
|
+
*
|
|
33
|
+
* @param name The _unique_ name of the resource.
|
|
34
|
+
* @param args The arguments to use to populate this resource's properties.
|
|
35
|
+
* @param opts A bag of options that control this resource's behavior.
|
|
36
|
+
*/
|
|
37
|
+
constructor(name: string, args: CognitoAuthArgs, opts?: pulumi.ComponentResourceOptions) {
|
|
38
|
+
let resourceInputs: pulumi.Inputs = {};
|
|
39
|
+
opts = opts || {};
|
|
40
|
+
if (!opts.id) {
|
|
41
|
+
if (args?.audience === undefined && !opts.urn) {
|
|
42
|
+
throw new Error("Missing required property 'audience'");
|
|
43
|
+
}
|
|
44
|
+
if (args?.userPoolId === undefined && !opts.urn) {
|
|
45
|
+
throw new Error("Missing required property 'userPoolId'");
|
|
46
|
+
}
|
|
47
|
+
resourceInputs["audience"] = args?.audience;
|
|
48
|
+
resourceInputs["userPoolId"] = args?.userPoolId;
|
|
49
|
+
resourceInputs["authorizerId"] = undefined /*out*/;
|
|
50
|
+
} else {
|
|
51
|
+
resourceInputs["authorizerId"] = undefined /*out*/;
|
|
52
|
+
}
|
|
53
|
+
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
|
|
54
|
+
super(CognitoAuth.__pulumiType, name, resourceInputs, opts, true /*remote*/);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* The set of arguments for constructing a CognitoAuth resource.
|
|
60
|
+
*/
|
|
61
|
+
export interface CognitoAuthArgs {
|
|
62
|
+
/**
|
|
63
|
+
* The Cognito app client IDs allowed to access this API. API Gateway rejects tokens whose 'aud' claim does not match one of these values. Pass your Cognito app client ID(s) here.
|
|
64
|
+
*/
|
|
65
|
+
audience: pulumi.Input<pulumi.Input<string>[]>;
|
|
66
|
+
/**
|
|
67
|
+
* The Cognito user pool ID. Pass pool.userPoolId directly. Accepts Output<string>. Anvil derives the issuer URL automatically: https://cognito-idp.{region}.amazonaws.com/{userPoolId}.
|
|
68
|
+
*/
|
|
69
|
+
userPoolId: any;
|
|
70
|
+
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
|
|
2
|
+
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
|
3
|
+
|
|
4
|
+
import * as pulumi from "@pulumi/pulumi";
|
|
5
|
+
import * as inputs from "../types/input";
|
|
6
|
+
import * as outputs from "../types/output";
|
|
7
|
+
import * as enums from "../types/enums";
|
|
8
|
+
import * as utilities from "../utilities";
|
|
9
|
+
|
|
10
|
+
import * as pulumiAws from "@pulumi/aws";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* An Anvil-managed Cognito user pool. Tier 1 controls (deletion protection, enforced password policy, account recovery via email) are always on. Pair with CognitoAuth to protect API Gateway routes.
|
|
14
|
+
*/
|
|
15
|
+
export class CognitoUserPool extends pulumi.ComponentResource {
|
|
16
|
+
/** @internal */
|
|
17
|
+
public static readonly __pulumiType = 'anvil:aws:CognitoUserPool';
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Returns true if the given object is an instance of CognitoUserPool. This is designed to work even
|
|
21
|
+
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
22
|
+
*/
|
|
23
|
+
public static isInstance(obj: any): obj is CognitoUserPool {
|
|
24
|
+
if (obj === undefined || obj === null) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
return obj['__pulumiType'] === CognitoUserPool.__pulumiType;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* The ID of the default app client. Pass to CognitoAuth audience.
|
|
32
|
+
*/
|
|
33
|
+
declare public /*out*/ readonly appClientId: pulumi.Output<string>;
|
|
34
|
+
/**
|
|
35
|
+
* The client secret of the default app client. Only populated when appClient.generateSecret is true. Treat as sensitive.
|
|
36
|
+
*/
|
|
37
|
+
declare public /*out*/ readonly appClientSecret: pulumi.Output<string | undefined>;
|
|
38
|
+
/**
|
|
39
|
+
* The CloudFront distribution domain for the custom hosted UI. Only populated when hostedUi.customDomain is true. Create a Route53 alias record pointing hostedUi.domain to this value to complete DNS setup. Empty string for Cognito-managed domains.
|
|
40
|
+
*/
|
|
41
|
+
declare public /*out*/ readonly cloudFrontDomain: pulumi.Output<string>;
|
|
42
|
+
/**
|
|
43
|
+
* The Cognito OIDC issuer URL. Format: https://cognito-idp.{region}.amazonaws.com/{userPoolId}. Pass directly to CognitoAuth if building the authorizer manually.
|
|
44
|
+
*/
|
|
45
|
+
declare public /*out*/ readonly endpoint: pulumi.Output<string>;
|
|
46
|
+
/**
|
|
47
|
+
* The full hosted UI domain (e.g. https://auth.myapp.com or https://myprefix.auth.us-east-1.amazoncognito.com). Empty string if hostedUi is not configured.
|
|
48
|
+
*/
|
|
49
|
+
declare public /*out*/ readonly hostedUiDomain: pulumi.Output<string>;
|
|
50
|
+
/**
|
|
51
|
+
* The ARN of the Cognito user pool.
|
|
52
|
+
*/
|
|
53
|
+
declare public /*out*/ readonly userPoolArn: pulumi.Output<string>;
|
|
54
|
+
/**
|
|
55
|
+
* The Cognito user pool ID. Pass to CognitoAuth.userPoolId.
|
|
56
|
+
*/
|
|
57
|
+
declare public /*out*/ readonly userPoolId: pulumi.Output<string>;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Create a CognitoUserPool resource with the given unique name, arguments, and options.
|
|
61
|
+
*
|
|
62
|
+
* @param name The _unique_ name of the resource.
|
|
63
|
+
* @param args The arguments to use to populate this resource's properties.
|
|
64
|
+
* @param opts A bag of options that control this resource's behavior.
|
|
65
|
+
*/
|
|
66
|
+
constructor(name: string, args?: CognitoUserPoolArgs, opts?: pulumi.ComponentResourceOptions) {
|
|
67
|
+
let resourceInputs: pulumi.Inputs = {};
|
|
68
|
+
opts = opts || {};
|
|
69
|
+
if (!opts.id) {
|
|
70
|
+
resourceInputs["appClient"] = args?.appClient;
|
|
71
|
+
resourceInputs["attributes"] = args?.attributes;
|
|
72
|
+
resourceInputs["emailConfiguration"] = args?.emailConfiguration;
|
|
73
|
+
resourceInputs["hostedUi"] = args?.hostedUi;
|
|
74
|
+
resourceInputs["identityProviders"] = args?.identityProviders;
|
|
75
|
+
resourceInputs["mfa"] = args?.mfa;
|
|
76
|
+
resourceInputs["passwordPolicy"] = args?.passwordPolicy;
|
|
77
|
+
resourceInputs["transform"] = args?.transform;
|
|
78
|
+
resourceInputs["appClientId"] = undefined /*out*/;
|
|
79
|
+
resourceInputs["appClientSecret"] = undefined /*out*/;
|
|
80
|
+
resourceInputs["cloudFrontDomain"] = undefined /*out*/;
|
|
81
|
+
resourceInputs["endpoint"] = undefined /*out*/;
|
|
82
|
+
resourceInputs["hostedUiDomain"] = undefined /*out*/;
|
|
83
|
+
resourceInputs["userPoolArn"] = undefined /*out*/;
|
|
84
|
+
resourceInputs["userPoolId"] = undefined /*out*/;
|
|
85
|
+
} else {
|
|
86
|
+
resourceInputs["appClientId"] = undefined /*out*/;
|
|
87
|
+
resourceInputs["appClientSecret"] = undefined /*out*/;
|
|
88
|
+
resourceInputs["cloudFrontDomain"] = undefined /*out*/;
|
|
89
|
+
resourceInputs["endpoint"] = undefined /*out*/;
|
|
90
|
+
resourceInputs["hostedUiDomain"] = undefined /*out*/;
|
|
91
|
+
resourceInputs["userPoolArn"] = undefined /*out*/;
|
|
92
|
+
resourceInputs["userPoolId"] = undefined /*out*/;
|
|
93
|
+
}
|
|
94
|
+
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
|
|
95
|
+
super(CognitoUserPool.__pulumiType, name, resourceInputs, opts, true /*remote*/);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* The set of arguments for constructing a CognitoUserPool resource.
|
|
101
|
+
*/
|
|
102
|
+
export interface CognitoUserPoolArgs {
|
|
103
|
+
/**
|
|
104
|
+
* Default app client created with the user pool. Covers the 80% case of one application per pool. Use transform for additional clients.
|
|
105
|
+
*/
|
|
106
|
+
appClient?: pulumi.Input<inputs.aws.CognitoUserPoolAppClientArgs>;
|
|
107
|
+
/**
|
|
108
|
+
* User attribute configuration. Controls sign-in identifiers and required attributes on sign-up.
|
|
109
|
+
*/
|
|
110
|
+
attributes?: pulumi.Input<inputs.aws.CognitoUserPoolAttributesArgs>;
|
|
111
|
+
/**
|
|
112
|
+
* Email delivery configuration. Default: Cognito-managed email (5 emails/day limit). Set sesFromAddress for SES delivery in production.
|
|
113
|
+
*/
|
|
114
|
+
emailConfiguration?: pulumi.Input<inputs.aws.CognitoUserPoolEmailConfigurationArgs>;
|
|
115
|
+
/**
|
|
116
|
+
* Hosted UI / Managed Login configuration. Omit to use the Cognito user pools API directly without a hosted sign-in page.
|
|
117
|
+
*/
|
|
118
|
+
hostedUi?: pulumi.Input<inputs.aws.CognitoUserPoolHostedUiArgs>;
|
|
119
|
+
/**
|
|
120
|
+
* External identity providers to federate with this user pool. Supports Google, Facebook, LoginWithAmazon, SignInWithApple, OIDC, and SAML. Schema never changes per provider — add new providers by extending this array.
|
|
121
|
+
*/
|
|
122
|
+
identityProviders?: pulumi.Input<pulumi.Input<inputs.aws.CognitoUserPoolIdentityProviderArgs>[]>;
|
|
123
|
+
/**
|
|
124
|
+
* MFA configuration. TOTP requires no additional AWS resources. SMS requires an SNS caller ARN.
|
|
125
|
+
*/
|
|
126
|
+
mfa?: pulumi.Input<inputs.aws.CognitoUserPoolMfaArgs>;
|
|
127
|
+
/**
|
|
128
|
+
* Password policy for the user pool. Anvil enforces a secure baseline by default — override only to strengthen.
|
|
129
|
+
*/
|
|
130
|
+
passwordPolicy?: pulumi.Input<inputs.aws.CognitoUserPoolPasswordPolicyArgs>;
|
|
131
|
+
transform?: pulumi.Input<inputs.aws.CognitoUserPoolTransformArgsArgs>;
|
|
132
|
+
}
|
package/aws/dynamoDB.ts
ADDED
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
|
|
2
|
+
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
|
3
|
+
|
|
4
|
+
import * as pulumi from "@pulumi/pulumi";
|
|
5
|
+
import * as inputs from "../types/input";
|
|
6
|
+
import * as outputs from "../types/output";
|
|
7
|
+
import * as enums from "../types/enums";
|
|
8
|
+
import * as utilities from "../utilities";
|
|
9
|
+
|
|
10
|
+
import * as pulumiAws from "@pulumi/aws";
|
|
11
|
+
import * as grants from "../grants";
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Serverless key-value and document store. Secure-by-default DynamoDB table with GSI support, optional streams, and Lambda/EventBridge consumers. First data layer component — pairs naturally with anvil.aws.Lambda.
|
|
15
|
+
*/
|
|
16
|
+
export class DynamoDB extends pulumi.ComponentResource {
|
|
17
|
+
/** @internal */
|
|
18
|
+
public static readonly __pulumiType = 'anvil:aws:DynamoDB';
|
|
19
|
+
|
|
20
|
+
/** @internal Logical resource name for grant policy naming. */
|
|
21
|
+
private __name: string;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Returns true if the given object is an instance of DynamoDB. This is designed to work even
|
|
25
|
+
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
26
|
+
*/
|
|
27
|
+
public static isInstance(obj: any): obj is DynamoDB {
|
|
28
|
+
if (obj === undefined || obj === null) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
return obj['__pulumiType'] === DynamoDB.__pulumiType;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* The ARN of the DynamoDB stream. Only present when stream is enabled.
|
|
36
|
+
*/
|
|
37
|
+
declare public /*out*/ readonly streamArn: pulumi.Output<string | undefined>;
|
|
38
|
+
/**
|
|
39
|
+
* The ARN of the DynamoDB table.
|
|
40
|
+
*/
|
|
41
|
+
declare public /*out*/ readonly tableArn: pulumi.Output<string>;
|
|
42
|
+
/**
|
|
43
|
+
* The physical DynamoDB table name. Scoped as {name}-{stage}.
|
|
44
|
+
*/
|
|
45
|
+
declare public /*out*/ readonly tableName: pulumi.Output<string>;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Create a DynamoDB resource with the given unique name, arguments, and options.
|
|
49
|
+
*
|
|
50
|
+
* @param name The _unique_ name of the resource.
|
|
51
|
+
* @param args The arguments to use to populate this resource's properties.
|
|
52
|
+
* @param opts A bag of options that control this resource's behavior.
|
|
53
|
+
*/
|
|
54
|
+
constructor(name: string, args: DynamoDBArgs, opts?: pulumi.ComponentResourceOptions) {
|
|
55
|
+
let resourceInputs: pulumi.Inputs = {};
|
|
56
|
+
opts = opts || {};
|
|
57
|
+
if (!opts.id) {
|
|
58
|
+
if (args?.hashKey === undefined && !opts.urn) {
|
|
59
|
+
throw new Error("Missing required property 'hashKey'");
|
|
60
|
+
}
|
|
61
|
+
resourceInputs["globalSecondaryIndexes"] = args?.globalSecondaryIndexes;
|
|
62
|
+
resourceInputs["hashKey"] = args?.hashKey;
|
|
63
|
+
resourceInputs["kmsKeyArn"] = args?.kmsKeyArn;
|
|
64
|
+
resourceInputs["rangeKey"] = args?.rangeKey;
|
|
65
|
+
resourceInputs["stream"] = args?.stream;
|
|
66
|
+
resourceInputs["transform"] = args?.transform;
|
|
67
|
+
resourceInputs["ttlAttribute"] = args?.ttlAttribute;
|
|
68
|
+
resourceInputs["streamArn"] = undefined /*out*/;
|
|
69
|
+
resourceInputs["tableArn"] = undefined /*out*/;
|
|
70
|
+
resourceInputs["tableName"] = undefined /*out*/;
|
|
71
|
+
} else {
|
|
72
|
+
resourceInputs["streamArn"] = undefined /*out*/;
|
|
73
|
+
resourceInputs["tableArn"] = undefined /*out*/;
|
|
74
|
+
resourceInputs["tableName"] = undefined /*out*/;
|
|
75
|
+
}
|
|
76
|
+
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
|
|
77
|
+
super(DynamoDB.__pulumiType, name, resourceInputs, opts, true /*remote*/);
|
|
78
|
+
this.__name = name;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Grants read access (dynamodb:GetItem, dynamodb:BatchGetItem, dynamodb:Query, dynamodb:Scan) on this dynamodb
|
|
83
|
+
* to the target compute resource's execution role.
|
|
84
|
+
*
|
|
85
|
+
* @param target - The compute resource to grant access to.
|
|
86
|
+
* @param opts - Optional. indexes: scope to specific GSI names only.
|
|
87
|
+
* If omitted, grants table access only — no index access.
|
|
88
|
+
* @param opts.justification - Optional audit trail note.
|
|
89
|
+
*/
|
|
90
|
+
public grantRead(target: grants.GrantTarget, opts?: { indexes?: string[]; justification?: string }): void {
|
|
91
|
+
const name = `${this.__name}-${target.grantName()}-read`;
|
|
92
|
+
const indexPaths = opts?.indexes?.map(i => `index/${i}`) ?? null;
|
|
93
|
+
const arns = grants.buildResourceArns(this.tableArn, indexPaths);
|
|
94
|
+
grants.createGrant(this, name, target, ["dynamodb:GetItem", "dynamodb:BatchGetItem", "dynamodb:Query", "dynamodb:Scan"], arns, { justification: opts?.justification });
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Grants write access (dynamodb:PutItem, dynamodb:UpdateItem, dynamodb:BatchWriteItem) on this dynamodb
|
|
99
|
+
* to the target compute resource's execution role.
|
|
100
|
+
*
|
|
101
|
+
* @param target - The compute resource to grant access to.
|
|
102
|
+
* @param opts - Optional. indexes: scope to specific GSI names only.
|
|
103
|
+
* If omitted, grants table access only — no index access.
|
|
104
|
+
* @param opts.justification - Optional audit trail note.
|
|
105
|
+
*/
|
|
106
|
+
public grantWrite(target: grants.GrantTarget, opts?: { indexes?: string[]; justification?: string }): void {
|
|
107
|
+
const name = `${this.__name}-${target.grantName()}-write`;
|
|
108
|
+
const indexPaths = opts?.indexes?.map(i => `index/${i}`) ?? null;
|
|
109
|
+
const arns = grants.buildResourceArns(this.tableArn, indexPaths);
|
|
110
|
+
grants.createGrant(this, name, target, ["dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:BatchWriteItem"], arns, { justification: opts?.justification });
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Grants readwrite access (dynamodb:GetItem, dynamodb:BatchGetItem, dynamodb:Query, dynamodb:Scan, dynamodb:PutItem, dynamodb:UpdateItem, dynamodb:BatchWriteItem) on this dynamodb
|
|
115
|
+
* to the target compute resource's execution role.
|
|
116
|
+
*
|
|
117
|
+
* @param target - The compute resource to grant access to.
|
|
118
|
+
* @param opts - Optional. indexes: scope to specific GSI names only.
|
|
119
|
+
* If omitted, grants table access only — no index access.
|
|
120
|
+
* @param opts.justification - Optional audit trail note.
|
|
121
|
+
*/
|
|
122
|
+
public grantReadWrite(target: grants.GrantTarget, opts?: { indexes?: string[]; justification?: string }): void {
|
|
123
|
+
const name = `${this.__name}-${target.grantName()}-readwrite`;
|
|
124
|
+
const indexPaths = opts?.indexes?.map(i => `index/${i}`) ?? null;
|
|
125
|
+
const arns = grants.buildResourceArns(this.tableArn, indexPaths);
|
|
126
|
+
grants.createGrant(this, name, target, ["dynamodb:GetItem", "dynamodb:BatchGetItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:BatchWriteItem"], arns, { justification: opts?.justification });
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Grants delete access (dynamodb:DeleteItem) on this dynamodb
|
|
131
|
+
* to the target compute resource's execution role.
|
|
132
|
+
*
|
|
133
|
+
* @param target - The compute resource to grant access to.
|
|
134
|
+
* @param opts - Optional. indexes: scope to specific GSI names only.
|
|
135
|
+
* If omitted, grants table access only — no index access.
|
|
136
|
+
* @param opts.justification - Optional audit trail note.
|
|
137
|
+
*/
|
|
138
|
+
public grantDelete(target: grants.GrantTarget, opts?: { indexes?: string[]; justification?: string }): void {
|
|
139
|
+
const name = `${this.__name}-${target.grantName()}-delete`;
|
|
140
|
+
const indexPaths = opts?.indexes?.map(i => `index/${i}`) ?? null;
|
|
141
|
+
const arns = grants.buildResourceArns(this.tableArn, indexPaths);
|
|
142
|
+
grants.createGrant(this, name, target, ["dynamodb:DeleteItem"], arns, { justification: opts?.justification });
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* The set of arguments for constructing a DynamoDB resource.
|
|
149
|
+
*/
|
|
150
|
+
export interface DynamoDBArgs {
|
|
151
|
+
/**
|
|
152
|
+
* Global Secondary Indexes. All GSI key types must be explicitly declared — Anvil derives attributeDefinitions automatically from all declared keys.
|
|
153
|
+
*/
|
|
154
|
+
globalSecondaryIndexes?: pulumi.Input<pulumi.Input<inputs.aws.DynamoDBGlobalSecondaryIndexArgs>[]>;
|
|
155
|
+
/**
|
|
156
|
+
* Primary hash (partition) key. Required.
|
|
157
|
+
*/
|
|
158
|
+
hashKey: pulumi.Input<inputs.aws.DynamoDBKeyAttributeArgs>;
|
|
159
|
+
/**
|
|
160
|
+
* Tier 2 opt-in. ARN of a KMS CMK for encryption at rest. If omitted, AWS_OWNED_KMS is used (Tier 1 default — always on, zero cost). Use this for compliance workloads requiring key rotation control, audit trail, or the ability to revoke access by disabling the key.
|
|
161
|
+
*/
|
|
162
|
+
kmsKeyArn?: pulumi.Input<string>;
|
|
163
|
+
/**
|
|
164
|
+
* Primary range (sort) key. Optional.
|
|
165
|
+
*/
|
|
166
|
+
rangeKey?: pulumi.Input<inputs.aws.DynamoDBKeyAttributeArgs>;
|
|
167
|
+
/**
|
|
168
|
+
* DynamoDB Streams configuration. Opt-in. Enables change data capture on the table.
|
|
169
|
+
*/
|
|
170
|
+
stream?: pulumi.Input<inputs.aws.DynamoDBStreamArgs>;
|
|
171
|
+
transform?: pulumi.Input<inputs.aws.DynamoTransformArgsArgs>;
|
|
172
|
+
/**
|
|
173
|
+
* Name of the attribute used for TTL (time-to-live). Items with this attribute set to a past Unix timestamp are automatically deleted by DynamoDB.
|
|
174
|
+
*/
|
|
175
|
+
ttlAttribute?: pulumi.Input<string>;
|
|
176
|
+
}
|
package/aws/eventBus.ts
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
|
|
2
|
+
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
|
3
|
+
|
|
4
|
+
import * as pulumi from "@pulumi/pulumi";
|
|
5
|
+
import * as inputs from "../types/input";
|
|
6
|
+
import * as outputs from "../types/output";
|
|
7
|
+
import * as enums from "../types/enums";
|
|
8
|
+
import * as utilities from "../utilities";
|
|
9
|
+
|
|
10
|
+
import * as pulumiAws from "@pulumi/aws";
|
|
11
|
+
import * as grants from "../grants";
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* An Anvil-managed EventBridge event bus. Archives events for 7 days by default for replay and debugging. Rules route matching events to Lambda targets.
|
|
15
|
+
*/
|
|
16
|
+
export class EventBus extends pulumi.ComponentResource {
|
|
17
|
+
/** @internal */
|
|
18
|
+
public static readonly __pulumiType = 'anvil:aws:EventBus';
|
|
19
|
+
|
|
20
|
+
/** @internal Logical resource name for grant policy naming. */
|
|
21
|
+
private __name: string;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Returns true if the given object is an instance of EventBus. This is designed to work even
|
|
25
|
+
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
26
|
+
*/
|
|
27
|
+
public static isInstance(obj: any): obj is EventBus {
|
|
28
|
+
if (obj === undefined || obj === null) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
return obj['__pulumiType'] === EventBus.__pulumiType;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* The ARN of the EventBridge event bus.
|
|
36
|
+
*/
|
|
37
|
+
declare public /*out*/ readonly arn: pulumi.Output<string>;
|
|
38
|
+
/**
|
|
39
|
+
* The name of the EventBridge event bus. Pass to HttpApi consumer: { eventBridge: { name: bus.name } }
|
|
40
|
+
*/
|
|
41
|
+
declare public /*out*/ readonly name: pulumi.Output<string>;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Create a EventBus resource with the given unique name, arguments, and options.
|
|
45
|
+
*
|
|
46
|
+
* @param name The _unique_ name of the resource.
|
|
47
|
+
* @param args The arguments to use to populate this resource's properties.
|
|
48
|
+
* @param opts A bag of options that control this resource's behavior.
|
|
49
|
+
*/
|
|
50
|
+
constructor(name: string, args?: EventBusArgs, opts?: pulumi.ComponentResourceOptions) {
|
|
51
|
+
let resourceInputs: pulumi.Inputs = {};
|
|
52
|
+
opts = opts || {};
|
|
53
|
+
if (!opts.id) {
|
|
54
|
+
resourceInputs["rules"] = args?.rules;
|
|
55
|
+
resourceInputs["transform"] = args?.transform;
|
|
56
|
+
resourceInputs["arn"] = undefined /*out*/;
|
|
57
|
+
resourceInputs["name"] = undefined /*out*/;
|
|
58
|
+
} else {
|
|
59
|
+
resourceInputs["arn"] = undefined /*out*/;
|
|
60
|
+
resourceInputs["name"] = undefined /*out*/;
|
|
61
|
+
}
|
|
62
|
+
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
|
|
63
|
+
super(EventBus.__pulumiType, name, resourceInputs, opts, true /*remote*/);
|
|
64
|
+
this.__name = name;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Grants putevents access (events:PutEvents) on this eventbus
|
|
69
|
+
* to the target compute resource's execution role.
|
|
70
|
+
*
|
|
71
|
+
* @param target - The compute resource to grant access to.
|
|
72
|
+
* @param opts - Optional grant options (justification for audit trail).
|
|
73
|
+
*/
|
|
74
|
+
public grantPutEvents(target: grants.GrantTarget, opts?: grants.GrantOptions): void {
|
|
75
|
+
const name = `${this.__name}-${target.grantName()}-putevents`;
|
|
76
|
+
const arns = grants.buildResourceArns(this.arn, undefined);
|
|
77
|
+
grants.createGrant(this, name, target, ["events:PutEvents"], arns, opts);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* The set of arguments for constructing a EventBus resource.
|
|
84
|
+
*/
|
|
85
|
+
export interface EventBusArgs {
|
|
86
|
+
/**
|
|
87
|
+
* EventBridge rules on this bus. Each rule matches events by pattern and routes them to a target.
|
|
88
|
+
*/
|
|
89
|
+
rules?: pulumi.Input<pulumi.Input<inputs.aws.EventBusRuleArgs>[]>;
|
|
90
|
+
transform?: pulumi.Input<inputs.aws.EventBridgeTransformArgsArgs>;
|
|
91
|
+
}
|
package/aws/httpApi.ts
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
|
|
2
|
+
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
|
3
|
+
|
|
4
|
+
import * as pulumi from "@pulumi/pulumi";
|
|
5
|
+
import * as inputs from "../types/input";
|
|
6
|
+
import * as outputs from "../types/output";
|
|
7
|
+
import * as enums from "../types/enums";
|
|
8
|
+
import * as utilities from "../utilities";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* An Anvil-managed AWS HTTP API Gateway (API Gateway v2). Route-level consumers support Lambda, SQS, EventBridge, Step Functions, and HTTP proxy integrations. Secure by default: TLS 1.2 minimum enforced on custom domains, execute-api endpoint disabled when a custom domain is set, conservative throttling defaults (1000 rps / 500 burst), CORS opt-in with wildcard origin blocked, per-consumer least-privilege IAM roles, access logs on by default.
|
|
12
|
+
*/
|
|
13
|
+
export class HttpApi extends pulumi.ComponentResource {
|
|
14
|
+
/** @internal */
|
|
15
|
+
public static readonly __pulumiType = 'anvil:aws:HttpApi';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Returns true if the given object is an instance of HttpApi. This is designed to work even
|
|
19
|
+
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
20
|
+
*/
|
|
21
|
+
public static isInstance(obj: any): obj is HttpApi {
|
|
22
|
+
if (obj === undefined || obj === null) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
return obj['__pulumiType'] === HttpApi.__pulumiType;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* The default execute-api endpoint URL. Empty string when a custom domain is set and the execute-api endpoint is disabled.
|
|
30
|
+
*/
|
|
31
|
+
declare public /*out*/ readonly apiEndpoint: pulumi.Output<string>;
|
|
32
|
+
/**
|
|
33
|
+
* The API Gateway HTTP API ID.
|
|
34
|
+
*/
|
|
35
|
+
declare public /*out*/ readonly apiId: pulumi.Output<string>;
|
|
36
|
+
/**
|
|
37
|
+
* ACM cert validation CNAME. Only populated when domain.dns: false and domain.certificateArn is omitted. Add this record in Cloudflare (or your DNS provider) then re-run deploy — Anvil blocks until ACM confirms validation.
|
|
38
|
+
*/
|
|
39
|
+
declare public /*out*/ readonly certValidationCname: pulumi.Output<outputs.aws.HttpApiCertValidationCname>;
|
|
40
|
+
/**
|
|
41
|
+
* The primary URL for the API. When a custom domain is configured this is the custom domain URL. Otherwise it is the execute-api endpoint URL.
|
|
42
|
+
*/
|
|
43
|
+
declare public /*out*/ readonly url: pulumi.Output<string>;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Create a HttpApi resource with the given unique name, arguments, and options.
|
|
47
|
+
*
|
|
48
|
+
* @param name The _unique_ name of the resource.
|
|
49
|
+
* @param args The arguments to use to populate this resource's properties.
|
|
50
|
+
* @param opts A bag of options that control this resource's behavior.
|
|
51
|
+
*/
|
|
52
|
+
constructor(name: string, args: HttpApiArgs, opts?: pulumi.ComponentResourceOptions) {
|
|
53
|
+
let resourceInputs: pulumi.Inputs = {};
|
|
54
|
+
opts = opts || {};
|
|
55
|
+
if (!opts.id) {
|
|
56
|
+
if (args?.routes === undefined && !opts.urn) {
|
|
57
|
+
throw new Error("Missing required property 'routes'");
|
|
58
|
+
}
|
|
59
|
+
resourceInputs["cors"] = args?.cors;
|
|
60
|
+
resourceInputs["defaultAuthorizerId"] = args?.defaultAuthorizerId;
|
|
61
|
+
resourceInputs["domain"] = args?.domain;
|
|
62
|
+
resourceInputs["logRetention"] = args?.logRetention;
|
|
63
|
+
resourceInputs["routes"] = args?.routes;
|
|
64
|
+
resourceInputs["throttling"] = args?.throttling;
|
|
65
|
+
resourceInputs["apiEndpoint"] = undefined /*out*/;
|
|
66
|
+
resourceInputs["apiId"] = undefined /*out*/;
|
|
67
|
+
resourceInputs["certValidationCname"] = undefined /*out*/;
|
|
68
|
+
resourceInputs["url"] = undefined /*out*/;
|
|
69
|
+
} else {
|
|
70
|
+
resourceInputs["apiEndpoint"] = undefined /*out*/;
|
|
71
|
+
resourceInputs["apiId"] = undefined /*out*/;
|
|
72
|
+
resourceInputs["certValidationCname"] = undefined /*out*/;
|
|
73
|
+
resourceInputs["url"] = undefined /*out*/;
|
|
74
|
+
}
|
|
75
|
+
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
|
|
76
|
+
super(HttpApi.__pulumiType, name, resourceInputs, opts, true /*remote*/);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* The set of arguments for constructing a HttpApi resource.
|
|
82
|
+
*/
|
|
83
|
+
export interface HttpApiArgs {
|
|
84
|
+
/**
|
|
85
|
+
* Optional CORS configuration. Opt-in — omit to disable CORS entirely. When enabled, allowOrigins is required and wildcard '*' is blocked as a security measure.
|
|
86
|
+
*/
|
|
87
|
+
cors?: pulumi.Input<inputs.aws.HttpApiCorsArgs>;
|
|
88
|
+
/**
|
|
89
|
+
* The API Gateway authorizer ID to apply to all routes. Pass auth.authorizerId from an OAuthAuthorizer or CognitoAuth component. All routes inherit this authorizer unless skipAuth: true is set on the route. Omit to leave all routes public.
|
|
90
|
+
*/
|
|
91
|
+
defaultAuthorizerId?: any;
|
|
92
|
+
/**
|
|
93
|
+
* Optional custom domain for the API. When set, Anvil provisions the ACM certificate, API Gateway domain name, and Route 53 DNS record automatically. The raw execute-api endpoint is disabled — all traffic must flow through the custom domain.
|
|
94
|
+
*/
|
|
95
|
+
domain?: pulumi.Input<inputs.aws.HttpApiDomainArgs>;
|
|
96
|
+
/**
|
|
97
|
+
* CloudWatch access log retention period. Presets: '7d' | '30d' | '90d' | '1y' | '3y' | '6y' | '7y'. Default: '1y' — satisfies SOC 2, ISO 27001, and PCI DSS baseline retention requirements.
|
|
98
|
+
*/
|
|
99
|
+
logRetention?: pulumi.Input<string>;
|
|
100
|
+
/**
|
|
101
|
+
* The API routes. Each route maps a method and path to a consumer. At least one route is required.
|
|
102
|
+
*/
|
|
103
|
+
routes: pulumi.Input<pulumi.Input<inputs.aws.HttpApiRouteArgs>[]>;
|
|
104
|
+
/**
|
|
105
|
+
* Optional throttling configuration. Defaults to rateLimit: 1000 rps and burstLimit: 500 concurrent requests when omitted. Without throttling a single route can exhaust the account-level limit shared across all APIs.
|
|
106
|
+
*/
|
|
107
|
+
throttling?: pulumi.Input<inputs.aws.HttpApiThrottlingArgs>;
|
|
108
|
+
}
|
package/aws/index.ts
CHANGED
|
@@ -10,16 +10,61 @@ export type Bucket = import("./bucket").Bucket;
|
|
|
10
10
|
export const Bucket: typeof import("./bucket").Bucket = null as any;
|
|
11
11
|
utilities.lazyLoad(exports, ["Bucket"], () => require("./bucket"));
|
|
12
12
|
|
|
13
|
+
export { CognitoAuthArgs } from "./cognitoAuth";
|
|
14
|
+
export type CognitoAuth = import("./cognitoAuth").CognitoAuth;
|
|
15
|
+
export const CognitoAuth: typeof import("./cognitoAuth").CognitoAuth = null as any;
|
|
16
|
+
utilities.lazyLoad(exports, ["CognitoAuth"], () => require("./cognitoAuth"));
|
|
17
|
+
|
|
18
|
+
export { CognitoUserPoolArgs } from "./cognitoUserPool";
|
|
19
|
+
export type CognitoUserPool = import("./cognitoUserPool").CognitoUserPool;
|
|
20
|
+
export const CognitoUserPool: typeof import("./cognitoUserPool").CognitoUserPool = null as any;
|
|
21
|
+
utilities.lazyLoad(exports, ["CognitoUserPool"], () => require("./cognitoUserPool"));
|
|
22
|
+
|
|
23
|
+
export { DynamoDBArgs } from "./dynamoDB";
|
|
24
|
+
export type DynamoDB = import("./dynamoDB").DynamoDB;
|
|
25
|
+
export const DynamoDB: typeof import("./dynamoDB").DynamoDB = null as any;
|
|
26
|
+
utilities.lazyLoad(exports, ["DynamoDB"], () => require("./dynamoDB"));
|
|
27
|
+
|
|
28
|
+
export { EventBusArgs } from "./eventBus";
|
|
29
|
+
export type EventBus = import("./eventBus").EventBus;
|
|
30
|
+
export const EventBus: typeof import("./eventBus").EventBus = null as any;
|
|
31
|
+
utilities.lazyLoad(exports, ["EventBus"], () => require("./eventBus"));
|
|
32
|
+
|
|
33
|
+
export { HttpApiArgs } from "./httpApi";
|
|
34
|
+
export type HttpApi = import("./httpApi").HttpApi;
|
|
35
|
+
export const HttpApi: typeof import("./httpApi").HttpApi = null as any;
|
|
36
|
+
utilities.lazyLoad(exports, ["HttpApi"], () => require("./httpApi"));
|
|
37
|
+
|
|
13
38
|
export { LambdaArgs } from "./lambda";
|
|
14
39
|
export type Lambda = import("./lambda").Lambda;
|
|
15
40
|
export const Lambda: typeof import("./lambda").Lambda = null as any;
|
|
16
41
|
utilities.lazyLoad(exports, ["Lambda"], () => require("./lambda"));
|
|
17
42
|
|
|
43
|
+
export { OAuthAuthorizerArgs } from "./oauthAuthorizer";
|
|
44
|
+
export type OAuthAuthorizer = import("./oauthAuthorizer").OAuthAuthorizer;
|
|
45
|
+
export const OAuthAuthorizer: typeof import("./oauthAuthorizer").OAuthAuthorizer = null as any;
|
|
46
|
+
utilities.lazyLoad(exports, ["OAuthAuthorizer"], () => require("./oauthAuthorizer"));
|
|
47
|
+
|
|
48
|
+
export { QueueArgs } from "./queue";
|
|
49
|
+
export type Queue = import("./queue").Queue;
|
|
50
|
+
export const Queue: typeof import("./queue").Queue = null as any;
|
|
51
|
+
utilities.lazyLoad(exports, ["Queue"], () => require("./queue"));
|
|
52
|
+
|
|
18
53
|
export { SvelteKitSiteArgs } from "./svelteKitSite";
|
|
19
54
|
export type SvelteKitSite = import("./svelteKitSite").SvelteKitSite;
|
|
20
55
|
export const SvelteKitSite: typeof import("./svelteKitSite").SvelteKitSite = null as any;
|
|
21
56
|
utilities.lazyLoad(exports, ["SvelteKitSite"], () => require("./svelteKitSite"));
|
|
22
57
|
|
|
58
|
+
export { VpcArgs } from "./vpc";
|
|
59
|
+
export type Vpc = import("./vpc").Vpc;
|
|
60
|
+
export const Vpc: typeof import("./vpc").Vpc = null as any;
|
|
61
|
+
utilities.lazyLoad(exports, ["Vpc"], () => require("./vpc"));
|
|
62
|
+
|
|
63
|
+
export { VpcEndpointArgs } from "./vpcEndpoint";
|
|
64
|
+
export type VpcEndpoint = import("./vpcEndpoint").VpcEndpoint;
|
|
65
|
+
export const VpcEndpoint: typeof import("./vpcEndpoint").VpcEndpoint = null as any;
|
|
66
|
+
utilities.lazyLoad(exports, ["VpcEndpoint"], () => require("./vpcEndpoint"));
|
|
67
|
+
|
|
23
68
|
|
|
24
69
|
// Export enums:
|
|
25
70
|
export * from "../types/enums/aws";
|
|
@@ -30,10 +75,28 @@ const _module = {
|
|
|
30
75
|
switch (type) {
|
|
31
76
|
case "anvil:aws:Bucket":
|
|
32
77
|
return new Bucket(name, <any>undefined, { urn })
|
|
78
|
+
case "anvil:aws:CognitoAuth":
|
|
79
|
+
return new CognitoAuth(name, <any>undefined, { urn })
|
|
80
|
+
case "anvil:aws:CognitoUserPool":
|
|
81
|
+
return new CognitoUserPool(name, <any>undefined, { urn })
|
|
82
|
+
case "anvil:aws:DynamoDB":
|
|
83
|
+
return new DynamoDB(name, <any>undefined, { urn })
|
|
84
|
+
case "anvil:aws:EventBus":
|
|
85
|
+
return new EventBus(name, <any>undefined, { urn })
|
|
86
|
+
case "anvil:aws:HttpApi":
|
|
87
|
+
return new HttpApi(name, <any>undefined, { urn })
|
|
33
88
|
case "anvil:aws:Lambda":
|
|
34
89
|
return new Lambda(name, <any>undefined, { urn })
|
|
90
|
+
case "anvil:aws:OAuthAuthorizer":
|
|
91
|
+
return new OAuthAuthorizer(name, <any>undefined, { urn })
|
|
92
|
+
case "anvil:aws:Queue":
|
|
93
|
+
return new Queue(name, <any>undefined, { urn })
|
|
35
94
|
case "anvil:aws:SvelteKitSite":
|
|
36
95
|
return new SvelteKitSite(name, <any>undefined, { urn })
|
|
96
|
+
case "anvil:aws:Vpc":
|
|
97
|
+
return new Vpc(name, <any>undefined, { urn })
|
|
98
|
+
case "anvil:aws:VpcEndpoint":
|
|
99
|
+
return new VpcEndpoint(name, <any>undefined, { urn })
|
|
37
100
|
default:
|
|
38
101
|
throw new Error(`unknown resource type ${type}`);
|
|
39
102
|
}
|