alchemy 0.1.14 → 0.1.16
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/lib/apply.js +1 -1
- package/lib/apply.js.map +1 -1
- package/lib/destroy.js +9 -3
- package/lib/destroy.js.map +1 -1
- package/package.json +1 -2
- package/src/apply.ts +1 -1
- package/src/aws/table.ts +30 -8
- package/src/cloudflare/kv-namespace.ts +34 -15
- package/src/cloudflare/worker.ts +66 -41
- package/src/destroy.ts +15 -10
- package/src/utils/retry.ts +1 -0
- package/README.md +0 -334
- package/lib/$.d.ts +0 -12
- package/lib/$.d.ts.map +0 -1
- package/lib/$.js +0 -42
- package/lib/$.js.map +0 -1
- package/lib/alchemize.d.ts +0 -43
- package/lib/alchemize.d.ts.map +0 -1
- package/lib/alchemize.js +0 -112
- package/lib/alchemize.js.map +0 -1
- package/lib/apply.d.ts +0 -23
- package/lib/aws/account-id.d.ts +0 -5
- package/lib/aws/account-id.d.ts.map +0 -1
- package/lib/aws/account-id.js +0 -10
- package/lib/aws/account-id.js.map +0 -1
- package/lib/aws/bucket.d.ts +0 -21
- package/lib/aws/bucket.d.ts.map +0 -1
- package/lib/aws/bucket.js +0 -114
- package/lib/aws/bucket.js.map +0 -1
- package/lib/aws/function.d.ts +0 -53
- package/lib/aws/function.d.ts.map +0 -1
- package/lib/aws/function.js +0 -195
- package/lib/aws/function.js.map +0 -1
- package/lib/aws/index.d.ts +0 -9
- package/lib/aws/index.d.ts.map +0 -1
- package/lib/aws/index.js +0 -9
- package/lib/aws/index.js.map +0 -1
- package/lib/aws/oidc/github-oidc-provider.d.ts +0 -11
- package/lib/aws/oidc/github-oidc-provider.d.ts.map +0 -1
- package/lib/aws/oidc/github-oidc-provider.js +0 -22
- package/lib/aws/oidc/github-oidc-provider.js.map +0 -1
- package/lib/aws/oidc/index.d.ts +0 -3
- package/lib/aws/oidc/index.d.ts.map +0 -1
- package/lib/aws/oidc/index.js +0 -3
- package/lib/aws/oidc/index.js.map +0 -1
- package/lib/aws/oidc/oidc-provider.d.ts +0 -60
- package/lib/aws/oidc/oidc-provider.d.ts.map +0 -1
- package/lib/aws/oidc/oidc-provider.js +0 -140
- package/lib/aws/oidc/oidc-provider.js.map +0 -1
- package/lib/aws/policy.d.ts +0 -46
- package/lib/aws/policy.d.ts.map +0 -1
- package/lib/aws/policy.js +0 -139
- package/lib/aws/policy.js.map +0 -1
- package/lib/aws/queue.d.ts +0 -62
- package/lib/aws/queue.d.ts.map +0 -1
- package/lib/aws/queue.js +0 -167
- package/lib/aws/queue.js.map +0 -1
- package/lib/aws/role.d.ts +0 -27
- package/lib/aws/role.d.ts.map +0 -1
- package/lib/aws/role.js +0 -197
- package/lib/aws/role.js.map +0 -1
- package/lib/aws/ses.d.ts +0 -75
- package/lib/aws/ses.d.ts.map +0 -1
- package/lib/aws/ses.js +0 -189
- package/lib/aws/ses.js.map +0 -1
- package/lib/aws/table.d.ts +0 -26
- package/lib/aws/table.d.ts.map +0 -1
- package/lib/aws/table.js +0 -142
- package/lib/aws/table.js.map +0 -1
- package/lib/cloudflare/api.d.ts +0 -88
- package/lib/cloudflare/api.d.ts.map +0 -1
- package/lib/cloudflare/api.js +0 -184
- package/lib/cloudflare/api.js.map +0 -1
- package/lib/cloudflare/asset-manifest.d.ts +0 -15
- package/lib/cloudflare/asset-manifest.d.ts.map +0 -1
- package/lib/cloudflare/asset-manifest.js +0 -2
- package/lib/cloudflare/asset-manifest.js.map +0 -1
- package/lib/cloudflare/auth.d.ts +0 -52
- package/lib/cloudflare/auth.d.ts.map +0 -1
- package/lib/cloudflare/auth.js +0 -114
- package/lib/cloudflare/auth.js.map +0 -1
- package/lib/cloudflare/bindings.d.ts +0 -259
- package/lib/cloudflare/bindings.d.ts.map +0 -1
- package/lib/cloudflare/bindings.js +0 -2
- package/lib/cloudflare/bindings.js.map +0 -1
- package/lib/cloudflare/durable-object-namespace.d.ts +0 -20
- package/lib/cloudflare/durable-object-namespace.d.ts.map +0 -1
- package/lib/cloudflare/durable-object-namespace.js +0 -21
- package/lib/cloudflare/durable-object-namespace.js.map +0 -1
- package/lib/cloudflare/generate-asset-manifest.d.ts +0 -3
- package/lib/cloudflare/generate-asset-manifest.d.ts.map +0 -1
- package/lib/cloudflare/generate-asset-manifest.js +0 -69
- package/lib/cloudflare/generate-asset-manifest.js.map +0 -1
- package/lib/cloudflare/index.d.ts +0 -7
- package/lib/cloudflare/index.d.ts.map +0 -1
- package/lib/cloudflare/index.js +0 -7
- package/lib/cloudflare/index.js.map +0 -1
- package/lib/cloudflare/kv-namespace.d.ts +0 -64
- package/lib/cloudflare/kv-namespace.d.ts.map +0 -1
- package/lib/cloudflare/kv-namespace.js +0 -97
- package/lib/cloudflare/kv-namespace.js.map +0 -1
- package/lib/cloudflare/state.d.ts +0 -83
- package/lib/cloudflare/state.d.ts.map +0 -1
- package/lib/cloudflare/state.js +0 -109
- package/lib/cloudflare/state.js.map +0 -1
- package/lib/cloudflare/static-site-router.d.ts +0 -19
- package/lib/cloudflare/static-site-router.d.ts.map +0 -1
- package/lib/cloudflare/static-site-router.js +0 -110
- package/lib/cloudflare/static-site-router.js.map +0 -1
- package/lib/cloudflare/static-site.d.ts +0 -166
- package/lib/cloudflare/static-site.d.ts.map +0 -1
- package/lib/cloudflare/static-site.js +0 -150
- package/lib/cloudflare/static-site.js.map +0 -1
- package/lib/cloudflare/types.d.ts +0 -52
- package/lib/cloudflare/types.d.ts.map +0 -1
- package/lib/cloudflare/types.js +0 -21
- package/lib/cloudflare/types.js.map +0 -1
- package/lib/cloudflare/upload-asset-manifest.d.ts +0 -12
- package/lib/cloudflare/upload-asset-manifest.d.ts.map +0 -1
- package/lib/cloudflare/upload-asset-manifest.js +0 -55
- package/lib/cloudflare/upload-asset-manifest.js.map +0 -1
- package/lib/cloudflare/worker-metadata.d.ts +0 -130
- package/lib/cloudflare/worker-metadata.d.ts.map +0 -1
- package/lib/cloudflare/worker-metadata.js +0 -2
- package/lib/cloudflare/worker-metadata.js.map +0 -1
- package/lib/cloudflare/worker-migration.d.ts +0 -110
- package/lib/cloudflare/worker-migration.d.ts.map +0 -1
- package/lib/cloudflare/worker-migration.js +0 -11
- package/lib/cloudflare/worker-migration.js.map +0 -1
- package/lib/cloudflare/worker.d.ts +0 -108
- package/lib/cloudflare/worker.d.ts.map +0 -1
- package/lib/cloudflare/worker.js +0 -384
- package/lib/cloudflare/worker.js.map +0 -1
- package/lib/destroy.d.ts +0 -19
- package/lib/error.d.ts +0 -2
- package/lib/error.d.ts.map +0 -1
- package/lib/error.js +0 -13
- package/lib/error.js.map +0 -1
- package/lib/esbuild.d.ts +0 -152
- package/lib/esbuild.d.ts.map +0 -1
- package/lib/esbuild.js +0 -67
- package/lib/esbuild.js.map +0 -1
- package/lib/fs.d.ts +0 -12
- package/lib/fs.d.ts.map +0 -1
- package/lib/fs.js +0 -41
- package/lib/fs.js.map +0 -1
- package/lib/github/client.d.ts +0 -34
- package/lib/github/client.d.ts.map +0 -1
- package/lib/github/client.js +0 -91
- package/lib/github/client.js.map +0 -1
- package/lib/github/index.d.ts +0 -2
- package/lib/github/index.d.ts.map +0 -1
- package/lib/github/index.js +0 -2
- package/lib/github/index.js.map +0 -1
- package/lib/github/secret.d.ts +0 -46
- package/lib/github/secret.d.ts.map +0 -1
- package/lib/github/secret.js +0 -103
- package/lib/github/secret.js.map +0 -1
- package/lib/global.d.ts +0 -16
- package/lib/global.d.ts.map +0 -1
- package/lib/global.js +0 -42
- package/lib/global.js.map +0 -1
- package/lib/index.d.ts +0 -10
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -9
- package/lib/index.js.map +0 -1
- package/lib/input.d.ts +0 -6
- package/lib/input.d.ts.map +0 -1
- package/lib/input.js +0 -2
- package/lib/input.js.map +0 -1
- package/lib/main.d.ts +0 -3
- package/lib/main.d.ts.map +0 -1
- package/lib/main.js +0 -32
- package/lib/main.js.map +0 -1
- package/lib/output.d.ts +0 -24
- package/lib/output.d.ts.map +0 -1
- package/lib/output.js +0 -23
- package/lib/output.js.map +0 -1
- package/lib/print.d.ts +0 -7
- package/lib/print.d.ts.map +0 -1
- package/lib/print.js +0 -10
- package/lib/print.js.map +0 -1
- package/lib/resource.d.ts +0 -71
- package/lib/resource.d.ts.map +0 -1
- package/lib/resource.js +0 -276
- package/lib/resource.js.map +0 -1
- package/lib/scope.d.ts +0 -18
- package/lib/scope.d.ts.map +0 -1
- package/lib/scope.js +0 -30
- package/lib/scope.js.map +0 -1
- package/lib/slug.d.ts +0 -2
- package/lib/slug.d.ts.map +0 -1
- package/lib/slug.js +0 -4
- package/lib/slug.js.map +0 -1
- package/lib/state.d.ts +0 -40
- package/lib/state.d.ts.map +0 -1
- package/lib/state.js +0 -73
- package/lib/state.js.map +0 -1
- package/lib/stripe/index.d.ts +0 -4
- package/lib/stripe/index.d.ts.map +0 -1
- package/lib/stripe/index.js +0 -4
- package/lib/stripe/index.js.map +0 -1
- package/lib/stripe/price.d.ts +0 -109
- package/lib/stripe/price.d.ts.map +0 -1
- package/lib/stripe/price.js +0 -112
- package/lib/stripe/price.js.map +0 -1
- package/lib/stripe/product.d.ts +0 -86
- package/lib/stripe/product.d.ts.map +0 -1
- package/lib/stripe/product.js +0 -90
- package/lib/stripe/product.js.map +0 -1
- package/lib/stripe/webhook.d.ts +0 -73
- package/lib/stripe/webhook.d.ts.map +0 -1
- package/lib/stripe/webhook.js +0 -94
- package/lib/stripe/webhook.js.map +0 -1
- package/lib/utils/content-type.d.ts +0 -8
- package/lib/utils/content-type.d.ts.map +0 -1
- package/lib/utils/content-type.js +0 -41
- package/lib/utils/content-type.js.map +0 -1
- package/lib/utils/retry.d.ts +0 -13
- package/lib/utils/retry.d.ts.map +0 -1
- package/lib/utils/retry.js +0 -31
- package/lib/utils/retry.js.map +0 -1
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
import { CreateOpenIDConnectProviderCommand, DeleteOpenIDConnectProviderCommand, GetOpenIDConnectProviderCommand, GetRoleCommand, IAMClient, UpdateAssumeRolePolicyCommand, } from "@aws-sdk/client-iam";
|
|
2
|
-
import { Resource } from "../../resource";
|
|
3
|
-
import { getAccountId } from "../account-id";
|
|
4
|
-
/**
|
|
5
|
-
* Unique identifier for our trust policy statement
|
|
6
|
-
* Used to track and remove our specific statement without affecting others
|
|
7
|
-
*/
|
|
8
|
-
const TRUST_POLICY_SID = "GitHubOIDCTrust";
|
|
9
|
-
/**
|
|
10
|
-
* Resource for configuring AWS OIDC provider for GitHub Actions
|
|
11
|
-
*/
|
|
12
|
-
export class OIDCProvider extends Resource("aws::OIDCProvider", async (ctx, props) => {
|
|
13
|
-
// Initialize AWS SDK client
|
|
14
|
-
const client = new IAMClient({
|
|
15
|
-
region: props.region,
|
|
16
|
-
});
|
|
17
|
-
if (ctx.event === "delete") {
|
|
18
|
-
if (ctx.output?.providerArn) {
|
|
19
|
-
try {
|
|
20
|
-
// First, remove our trust policy statement from the role
|
|
21
|
-
const getRole = await client.send(new GetRoleCommand({
|
|
22
|
-
RoleName: props.roleArn.split("/").pop(),
|
|
23
|
-
}));
|
|
24
|
-
if (getRole.Role?.AssumeRolePolicyDocument) {
|
|
25
|
-
const policy = JSON.parse(decodeURIComponent(getRole.Role.AssumeRolePolicyDocument));
|
|
26
|
-
// Remove our specific statement while preserving others
|
|
27
|
-
policy.Statement = policy.Statement.filter((stmt) => stmt.Sid !== TRUST_POLICY_SID);
|
|
28
|
-
await client.send(new UpdateAssumeRolePolicyCommand({
|
|
29
|
-
RoleName: props.roleArn.split("/").pop(),
|
|
30
|
-
PolicyDocument: JSON.stringify(policy),
|
|
31
|
-
}));
|
|
32
|
-
}
|
|
33
|
-
// Then delete the OIDC provider if we're the last user
|
|
34
|
-
const provider = await client.send(new GetOpenIDConnectProviderCommand({
|
|
35
|
-
OpenIDConnectProviderArn: ctx.output.providerArn,
|
|
36
|
-
}));
|
|
37
|
-
// Only delete the provider if it exists and has no other tags
|
|
38
|
-
if (provider && (!provider.Tags || provider.Tags.length === 0)) {
|
|
39
|
-
await client.send(new DeleteOpenIDConnectProviderCommand({
|
|
40
|
-
OpenIDConnectProviderArn: ctx.output.providerArn,
|
|
41
|
-
}));
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
catch (error) {
|
|
45
|
-
// Log but don't throw on cleanup errors
|
|
46
|
-
console.error("Error during cleanup:", error);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
try {
|
|
52
|
-
const url = "https://token.actions.githubusercontent.com";
|
|
53
|
-
const thumbprint = props.thumbprint;
|
|
54
|
-
// Create or get existing OIDC provider
|
|
55
|
-
let providerArn;
|
|
56
|
-
try {
|
|
57
|
-
const createProvider = await client.send(new CreateOpenIDConnectProviderCommand({
|
|
58
|
-
Url: url,
|
|
59
|
-
ClientIDList: ["sts.amazonaws.com"],
|
|
60
|
-
ThumbprintList: [thumbprint],
|
|
61
|
-
Tags: [
|
|
62
|
-
{
|
|
63
|
-
Key: "ManagedBy",
|
|
64
|
-
Value: "alchemy",
|
|
65
|
-
},
|
|
66
|
-
],
|
|
67
|
-
}));
|
|
68
|
-
providerArn = createProvider.OpenIDConnectProviderArn;
|
|
69
|
-
}
|
|
70
|
-
catch (error) {
|
|
71
|
-
if (error.name === "EntityAlreadyExistsException") {
|
|
72
|
-
// Provider exists, use its ARN
|
|
73
|
-
providerArn = `arn:aws:iam::${await getAccountId()}:oidc-provider/${url}`;
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
throw error;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
// Get current role policy
|
|
80
|
-
const getRole = await client.send(new GetRoleCommand({
|
|
81
|
-
RoleName: props.roleArn.split("/").pop(),
|
|
82
|
-
}));
|
|
83
|
-
let policy;
|
|
84
|
-
if (getRole.Role?.AssumeRolePolicyDocument) {
|
|
85
|
-
policy = JSON.parse(decodeURIComponent(getRole.Role.AssumeRolePolicyDocument));
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
policy = {
|
|
89
|
-
Version: "2012-10-17",
|
|
90
|
-
Statement: [],
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
// Construct the trust policy conditions
|
|
94
|
-
const conditions = {
|
|
95
|
-
StringEquals: {
|
|
96
|
-
"token.actions.githubusercontent.com:aud": "sts.amazonaws.com",
|
|
97
|
-
"token.actions.githubusercontent.com:sub": `repo:${props.owner}/${props.repository}:`,
|
|
98
|
-
},
|
|
99
|
-
};
|
|
100
|
-
if (props.branches?.length) {
|
|
101
|
-
conditions.StringEquals["token.actions.githubusercontent.com:sub"] =
|
|
102
|
-
props.branches.map((branch) => `repo:${props.owner}/${props.repository}:ref:refs/heads/${branch}`);
|
|
103
|
-
}
|
|
104
|
-
if (props.environments?.length) {
|
|
105
|
-
conditions.StringEquals["token.actions.githubusercontent.com:sub"] =
|
|
106
|
-
props.environments.map((env) => `repo:${props.owner}/${props.repository}:environment:${env}`);
|
|
107
|
-
}
|
|
108
|
-
// Create our policy statement
|
|
109
|
-
const ourStatement = {
|
|
110
|
-
Sid: TRUST_POLICY_SID,
|
|
111
|
-
Effect: "Allow",
|
|
112
|
-
Principal: {
|
|
113
|
-
Federated: providerArn,
|
|
114
|
-
},
|
|
115
|
-
Action: "sts:AssumeRoleWithWebIdentity",
|
|
116
|
-
Condition: conditions,
|
|
117
|
-
};
|
|
118
|
-
// Remove any existing statement with our SID and add the new one
|
|
119
|
-
policy.Statement = [
|
|
120
|
-
...policy.Statement.filter((stmt) => stmt.Sid !== TRUST_POLICY_SID),
|
|
121
|
-
ourStatement,
|
|
122
|
-
];
|
|
123
|
-
// Update the role's trust policy
|
|
124
|
-
await client.send(new UpdateAssumeRolePolicyCommand({
|
|
125
|
-
RoleName: props.roleArn.split("/").pop(),
|
|
126
|
-
PolicyDocument: JSON.stringify(policy),
|
|
127
|
-
}));
|
|
128
|
-
return {
|
|
129
|
-
...props,
|
|
130
|
-
providerArn,
|
|
131
|
-
createdAt: Date.now(),
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
catch (error) {
|
|
135
|
-
console.error("Error configuring OIDC provider:", error);
|
|
136
|
-
throw error;
|
|
137
|
-
}
|
|
138
|
-
}) {
|
|
139
|
-
}
|
|
140
|
-
//# sourceMappingURL=oidc-provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oidc-provider.js","sourceRoot":"","sources":["../../../src/aws/oidc/oidc-provider.ts"],"names":[],"mappings":"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"}
|
package/lib/aws/policy.d.ts
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
export type Effect = "Allow" | "Deny";
|
|
2
|
-
export interface PolicyStatement {
|
|
3
|
-
Sid?: string;
|
|
4
|
-
Effect: Effect;
|
|
5
|
-
Action: string | string[];
|
|
6
|
-
Resource?: string | string[];
|
|
7
|
-
Condition?: Record<string, Record<string, string | string[]>>;
|
|
8
|
-
Principal?: Record<string, string | string[]>;
|
|
9
|
-
NotPrincipal?: Record<string, string | string[]>;
|
|
10
|
-
NotAction?: string | string[];
|
|
11
|
-
NotResource?: string | string[];
|
|
12
|
-
}
|
|
13
|
-
export interface PolicyDocument {
|
|
14
|
-
Version: "2012-10-17";
|
|
15
|
-
Statement: PolicyStatement[];
|
|
16
|
-
}
|
|
17
|
-
export interface PolicyProps {
|
|
18
|
-
policyName: string;
|
|
19
|
-
document: PolicyDocument;
|
|
20
|
-
description?: string;
|
|
21
|
-
path?: string;
|
|
22
|
-
tags?: Record<string, string>;
|
|
23
|
-
}
|
|
24
|
-
export interface PolicyOutput extends PolicyProps {
|
|
25
|
-
id: string;
|
|
26
|
-
arn: string;
|
|
27
|
-
defaultVersionId: string;
|
|
28
|
-
attachmentCount: number;
|
|
29
|
-
createDate: Date;
|
|
30
|
-
updateDate: Date;
|
|
31
|
-
isAttachable: boolean;
|
|
32
|
-
}
|
|
33
|
-
declare const Policy_base: import("../resource").Provider<"iam::Policy", [props: PolicyProps], PolicyOutput>;
|
|
34
|
-
export declare class Policy extends Policy_base {
|
|
35
|
-
}
|
|
36
|
-
export interface PolicyAttachmentProps {
|
|
37
|
-
policyArn: string;
|
|
38
|
-
roleName: string;
|
|
39
|
-
}
|
|
40
|
-
export interface PolicyAttachmentOutput extends PolicyAttachmentProps {
|
|
41
|
-
}
|
|
42
|
-
declare const PolicyAttachment_base: import("../resource").Provider<"iam::PolicyAttachment", [props: PolicyAttachmentProps], PolicyAttachmentProps>;
|
|
43
|
-
export declare class PolicyAttachment extends PolicyAttachment_base {
|
|
44
|
-
}
|
|
45
|
-
export {};
|
|
46
|
-
//# sourceMappingURL=policy.d.ts.map
|
package/lib/aws/policy.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/aws/policy.ts"],"names":[],"mappings":"AAiBA,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEtC,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IACjD,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,eAAe,EAAE,CAAC;CAC9B;AAGD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;CACvB;;AAED,qBAAa,MAAO,SAAQ,WA0J3B;CAAG;AAGJ,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAuB,SAAQ,qBAAqB;CAAG;;AAExE,qBAAa,gBAAiB,SAAQ,qBAyBrC;CAAG"}
|
package/lib/aws/policy.js
DELETED
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
import { AttachRolePolicyCommand, CreatePolicyCommand, CreatePolicyVersionCommand, DeletePolicyCommand, DeletePolicyVersionCommand, DetachRolePolicyCommand, GetPolicyCommand, GetPolicyVersionCommand, IAMClient, ListPolicyVersionsCommand, NoSuchEntityException, } from "@aws-sdk/client-iam";
|
|
2
|
-
import { ignore } from "../error";
|
|
3
|
-
import { Resource } from "../resource";
|
|
4
|
-
export class Policy extends Resource("iam::Policy", async (ctx, props) => {
|
|
5
|
-
const client = new IAMClient({});
|
|
6
|
-
const policyArn = `arn:aws:iam::${process.env.AWS_ACCOUNT_ID}:policy${props.path || "/"}${props.policyName}`;
|
|
7
|
-
if (ctx.event === "delete") {
|
|
8
|
-
try {
|
|
9
|
-
// List and delete all non-default versions first
|
|
10
|
-
const versions = await client.send(new ListPolicyVersionsCommand({
|
|
11
|
-
PolicyArn: policyArn,
|
|
12
|
-
}));
|
|
13
|
-
for (const version of versions.Versions || []) {
|
|
14
|
-
if (!version.IsDefaultVersion) {
|
|
15
|
-
await client.send(new DeletePolicyVersionCommand({
|
|
16
|
-
PolicyArn: policyArn,
|
|
17
|
-
VersionId: version.VersionId,
|
|
18
|
-
}));
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
// Delete the policy
|
|
22
|
-
await client.send(new DeletePolicyCommand({
|
|
23
|
-
PolicyArn: policyArn,
|
|
24
|
-
}));
|
|
25
|
-
}
|
|
26
|
-
catch (error) {
|
|
27
|
-
if (error.name !== NoSuchEntityException.name) {
|
|
28
|
-
throw error;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return {
|
|
32
|
-
...props,
|
|
33
|
-
id: props.policyName,
|
|
34
|
-
arn: policyArn,
|
|
35
|
-
defaultVersionId: "v1",
|
|
36
|
-
attachmentCount: 0,
|
|
37
|
-
createDate: new Date(),
|
|
38
|
-
updateDate: new Date(),
|
|
39
|
-
isAttachable: true,
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
try {
|
|
44
|
-
// Check if policy exists
|
|
45
|
-
const existingPolicy = await client.send(new GetPolicyCommand({
|
|
46
|
-
PolicyArn: policyArn,
|
|
47
|
-
}));
|
|
48
|
-
// Get current policy version
|
|
49
|
-
const currentVersion = await client.send(new GetPolicyVersionCommand({
|
|
50
|
-
PolicyArn: policyArn,
|
|
51
|
-
VersionId: existingPolicy.Policy.DefaultVersionId,
|
|
52
|
-
}));
|
|
53
|
-
const currentDocument = JSON.parse(decodeURIComponent(currentVersion.PolicyVersion.Document));
|
|
54
|
-
// If policy document changed, create new version
|
|
55
|
-
if (JSON.stringify(currentDocument) !== JSON.stringify(props.document)) {
|
|
56
|
-
// List versions to check if we need to delete old ones
|
|
57
|
-
const versions = await client.send(new ListPolicyVersionsCommand({
|
|
58
|
-
PolicyArn: policyArn,
|
|
59
|
-
}));
|
|
60
|
-
// Delete oldest version if we have 5 versions (maximum allowed)
|
|
61
|
-
if (versions.Versions?.length === 5) {
|
|
62
|
-
const oldestVersion = versions.Versions.sort((a, b) => a.CreateDate.getTime() - b.CreateDate.getTime())[0];
|
|
63
|
-
if (!oldestVersion.IsDefaultVersion) {
|
|
64
|
-
await client.send(new DeletePolicyVersionCommand({
|
|
65
|
-
PolicyArn: policyArn,
|
|
66
|
-
VersionId: oldestVersion.VersionId,
|
|
67
|
-
}));
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
// Create new version
|
|
71
|
-
await client.send(new CreatePolicyVersionCommand({
|
|
72
|
-
PolicyArn: policyArn,
|
|
73
|
-
PolicyDocument: JSON.stringify(props.document),
|
|
74
|
-
SetAsDefault: true,
|
|
75
|
-
}));
|
|
76
|
-
}
|
|
77
|
-
const policy = await client.send(new GetPolicyCommand({
|
|
78
|
-
PolicyArn: policyArn,
|
|
79
|
-
}));
|
|
80
|
-
return {
|
|
81
|
-
...props,
|
|
82
|
-
id: props.policyName,
|
|
83
|
-
arn: policy.Policy.Arn,
|
|
84
|
-
defaultVersionId: policy.Policy.DefaultVersionId,
|
|
85
|
-
attachmentCount: policy.Policy.AttachmentCount,
|
|
86
|
-
createDate: policy.Policy.CreateDate,
|
|
87
|
-
updateDate: policy.Policy.UpdateDate,
|
|
88
|
-
isAttachable: policy.Policy.IsAttachable,
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
catch (error) {
|
|
92
|
-
if (error.name === "NoSuchEntity") {
|
|
93
|
-
// Create new policy
|
|
94
|
-
const newPolicy = await client.send(new CreatePolicyCommand({
|
|
95
|
-
PolicyName: props.policyName,
|
|
96
|
-
PolicyDocument: JSON.stringify(props.document),
|
|
97
|
-
Description: props.description,
|
|
98
|
-
Path: props.path,
|
|
99
|
-
Tags: props.tags
|
|
100
|
-
? Object.entries(props.tags).map(([Key, Value]) => ({
|
|
101
|
-
Key,
|
|
102
|
-
Value,
|
|
103
|
-
}))
|
|
104
|
-
: undefined,
|
|
105
|
-
}));
|
|
106
|
-
return {
|
|
107
|
-
...props,
|
|
108
|
-
id: props.policyName,
|
|
109
|
-
arn: newPolicy.Policy.Arn,
|
|
110
|
-
defaultVersionId: newPolicy.Policy.DefaultVersionId,
|
|
111
|
-
attachmentCount: newPolicy.Policy.AttachmentCount,
|
|
112
|
-
createDate: newPolicy.Policy.CreateDate,
|
|
113
|
-
updateDate: newPolicy.Policy.UpdateDate,
|
|
114
|
-
isAttachable: newPolicy.Policy.IsAttachable,
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
throw error;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}) {
|
|
121
|
-
}
|
|
122
|
-
export class PolicyAttachment extends Resource("iam::PolicyAttachment", async (ctx, props) => {
|
|
123
|
-
const client = new IAMClient({});
|
|
124
|
-
if (ctx.event === "delete") {
|
|
125
|
-
await ignore(NoSuchEntityException.name, () => client.send(new DetachRolePolicyCommand({
|
|
126
|
-
PolicyArn: props.policyArn,
|
|
127
|
-
RoleName: props.roleName,
|
|
128
|
-
})));
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
await client.send(new AttachRolePolicyCommand({
|
|
132
|
-
PolicyArn: props.policyArn,
|
|
133
|
-
RoleName: props.roleName,
|
|
134
|
-
}));
|
|
135
|
-
}
|
|
136
|
-
return props;
|
|
137
|
-
}) {
|
|
138
|
-
}
|
|
139
|
-
//# sourceMappingURL=policy.js.map
|
package/lib/aws/policy.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/aws/policy.ts"],"names":[],"mappings":"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"}
|
package/lib/aws/queue.d.ts
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
export interface QueueProps {
|
|
2
|
-
/**
|
|
3
|
-
* Name of the queue
|
|
4
|
-
* For FIFO queues, the name must end with the .fifo suffix
|
|
5
|
-
*/
|
|
6
|
-
queueName: string;
|
|
7
|
-
/**
|
|
8
|
-
* Whether this is a FIFO queue.
|
|
9
|
-
* If true, the queueName must end with .fifo suffix
|
|
10
|
-
*/
|
|
11
|
-
fifo?: boolean;
|
|
12
|
-
visibilityTimeout?: number;
|
|
13
|
-
messageRetentionPeriod?: number;
|
|
14
|
-
maximumMessageSize?: number;
|
|
15
|
-
delaySeconds?: number;
|
|
16
|
-
receiveMessageWaitTimeSeconds?: number;
|
|
17
|
-
/**
|
|
18
|
-
* Enables content-based deduplication for FIFO queues.
|
|
19
|
-
* Only applicable when fifo is true.
|
|
20
|
-
*/
|
|
21
|
-
contentBasedDeduplication?: boolean;
|
|
22
|
-
deduplicationScope?: "messageGroup" | "queue";
|
|
23
|
-
fifoThroughputLimit?: "perQueue" | "perMessageGroupId";
|
|
24
|
-
tags?: Record<string, string>;
|
|
25
|
-
}
|
|
26
|
-
export interface QueueOutput extends QueueProps {
|
|
27
|
-
id: string;
|
|
28
|
-
arn: string;
|
|
29
|
-
url: string;
|
|
30
|
-
}
|
|
31
|
-
declare const Queue_base: import("../resource").Provider<"sqs::Queue", [props: QueueProps], {
|
|
32
|
-
id: string;
|
|
33
|
-
arn: string;
|
|
34
|
-
url: string;
|
|
35
|
-
/**
|
|
36
|
-
* Name of the queue
|
|
37
|
-
* For FIFO queues, the name must end with the .fifo suffix
|
|
38
|
-
*/
|
|
39
|
-
queueName: string;
|
|
40
|
-
/**
|
|
41
|
-
* Whether this is a FIFO queue.
|
|
42
|
-
* If true, the queueName must end with .fifo suffix
|
|
43
|
-
*/
|
|
44
|
-
fifo?: boolean;
|
|
45
|
-
visibilityTimeout?: number;
|
|
46
|
-
messageRetentionPeriod?: number;
|
|
47
|
-
maximumMessageSize?: number;
|
|
48
|
-
delaySeconds?: number;
|
|
49
|
-
receiveMessageWaitTimeSeconds?: number;
|
|
50
|
-
/**
|
|
51
|
-
* Enables content-based deduplication for FIFO queues.
|
|
52
|
-
* Only applicable when fifo is true.
|
|
53
|
-
*/
|
|
54
|
-
contentBasedDeduplication?: boolean;
|
|
55
|
-
deduplicationScope?: "messageGroup" | "queue";
|
|
56
|
-
fifoThroughputLimit?: "perQueue" | "perMessageGroupId";
|
|
57
|
-
tags?: Record<string, string>;
|
|
58
|
-
}>;
|
|
59
|
-
export declare class Queue extends Queue_base {
|
|
60
|
-
}
|
|
61
|
-
export {};
|
|
62
|
-
//# sourceMappingURL=queue.d.ts.map
|
package/lib/aws/queue.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../src/aws/queue.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6BAA6B,CAAC,EAAE,MAAM,CAAC;IAEvC;;;OAGG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAEpC,kBAAkB,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC;IAC9C,mBAAmB,CAAC,EAAE,UAAU,GAAG,mBAAmB,CAAC;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;;;;;IAjCC;;;OAGG;eACQ,MAAM;IAEjB;;;OAGG;WACI,OAAO;wBAEM,MAAM;6BACD,MAAM;yBACV,MAAM;mBACZ,MAAM;oCACW,MAAM;IAEtC;;;OAGG;gCACyB,OAAO;yBAEd,cAAc,GAAG,OAAO;0BACvB,UAAU,GAAG,mBAAmB;WAC/C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;AAS/B,qBAAa,KAAM,SAAQ,UAsM1B;CAAG"}
|
package/lib/aws/queue.js
DELETED
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
import { CreateQueueCommand, DeleteQueueCommand, GetQueueAttributesCommand, GetQueueUrlCommand, SQSClient, } from "@aws-sdk/client-sqs";
|
|
2
|
-
import { Resource } from "../resource";
|
|
3
|
-
export class Queue extends Resource("sqs::Queue", async (ctx, props) => {
|
|
4
|
-
const client = new SQSClient({});
|
|
5
|
-
// Don't automatically add .fifo suffix - user must include it in queueName
|
|
6
|
-
const queueName = props.queueName;
|
|
7
|
-
// Validate that FIFO queues have .fifo suffix
|
|
8
|
-
if (props.fifo && !queueName.endsWith(".fifo")) {
|
|
9
|
-
throw new Error("FIFO queue names must end with .fifo suffix");
|
|
10
|
-
}
|
|
11
|
-
if (ctx.event === "delete") {
|
|
12
|
-
try {
|
|
13
|
-
// Get queue URL first
|
|
14
|
-
const urlResponse = await client.send(new GetQueueUrlCommand({
|
|
15
|
-
QueueName: queueName,
|
|
16
|
-
}));
|
|
17
|
-
// Delete the queue
|
|
18
|
-
await client.send(new DeleteQueueCommand({
|
|
19
|
-
QueueUrl: urlResponse.QueueUrl,
|
|
20
|
-
}));
|
|
21
|
-
// Wait for queue to be deleted
|
|
22
|
-
let queueDeleted = false;
|
|
23
|
-
while (!queueDeleted) {
|
|
24
|
-
try {
|
|
25
|
-
await client.send(new GetQueueUrlCommand({
|
|
26
|
-
QueueName: queueName,
|
|
27
|
-
}));
|
|
28
|
-
// If we get here, queue still exists
|
|
29
|
-
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
30
|
-
}
|
|
31
|
-
catch (error) {
|
|
32
|
-
if (error.name === "QueueDoesNotExist") {
|
|
33
|
-
queueDeleted = true;
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
throw error;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
if (error.name !== "QueueDoesNotExist") {
|
|
43
|
-
throw error;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
return {
|
|
47
|
-
...props,
|
|
48
|
-
id: props.queueName,
|
|
49
|
-
arn: `arn:aws:sqs:${client.config.region}:${process.env.AWS_ACCOUNT_ID}:${queueName}`,
|
|
50
|
-
url: "",
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
// Create queue with attributes
|
|
55
|
-
const attributes = {};
|
|
56
|
-
if (props.visibilityTimeout !== undefined) {
|
|
57
|
-
attributes["VisibilityTimeout"] = props.visibilityTimeout.toString();
|
|
58
|
-
}
|
|
59
|
-
if (props.messageRetentionPeriod !== undefined) {
|
|
60
|
-
attributes["MessageRetentionPeriod"] =
|
|
61
|
-
props.messageRetentionPeriod.toString();
|
|
62
|
-
}
|
|
63
|
-
if (props.maximumMessageSize !== undefined) {
|
|
64
|
-
attributes["MaximumMessageSize"] = props.maximumMessageSize.toString();
|
|
65
|
-
}
|
|
66
|
-
if (props.delaySeconds !== undefined) {
|
|
67
|
-
attributes["DelaySeconds"] = props.delaySeconds.toString();
|
|
68
|
-
}
|
|
69
|
-
if (props.receiveMessageWaitTimeSeconds !== undefined) {
|
|
70
|
-
attributes["ReceiveMessageWaitTimeSeconds"] =
|
|
71
|
-
props.receiveMessageWaitTimeSeconds.toString();
|
|
72
|
-
}
|
|
73
|
-
// FIFO specific attributes
|
|
74
|
-
if (props.fifo) {
|
|
75
|
-
attributes["FifoQueue"] = "true";
|
|
76
|
-
if (props.contentBasedDeduplication) {
|
|
77
|
-
attributes["ContentBasedDeduplication"] = "true";
|
|
78
|
-
}
|
|
79
|
-
if (props.deduplicationScope) {
|
|
80
|
-
attributes["DeduplicationScope"] = props.deduplicationScope;
|
|
81
|
-
}
|
|
82
|
-
if (props.fifoThroughputLimit) {
|
|
83
|
-
attributes["FifoThroughputLimit"] = props.fifoThroughputLimit;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
// Convert tags to AWS format
|
|
87
|
-
const tags = props.tags
|
|
88
|
-
? Object.entries(props.tags).reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {})
|
|
89
|
-
: undefined;
|
|
90
|
-
try {
|
|
91
|
-
// Create the queue
|
|
92
|
-
const createResponse = await client.send(new CreateQueueCommand({
|
|
93
|
-
QueueName: queueName,
|
|
94
|
-
Attributes: attributes,
|
|
95
|
-
tags,
|
|
96
|
-
}));
|
|
97
|
-
// Get queue attributes
|
|
98
|
-
const attributesResponse = await client.send(new GetQueueAttributesCommand({
|
|
99
|
-
QueueUrl: createResponse.QueueUrl,
|
|
100
|
-
AttributeNames: ["QueueArn"],
|
|
101
|
-
}));
|
|
102
|
-
return {
|
|
103
|
-
...props,
|
|
104
|
-
id: props.queueName,
|
|
105
|
-
arn: attributesResponse.Attributes.QueueArn,
|
|
106
|
-
url: createResponse.QueueUrl,
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
catch (error) {
|
|
110
|
-
if (error.name === "QueueAlreadyExists") {
|
|
111
|
-
// Get existing queue URL
|
|
112
|
-
const urlResponse = await client.send(new GetQueueUrlCommand({
|
|
113
|
-
QueueName: queueName,
|
|
114
|
-
}));
|
|
115
|
-
// Get queue attributes
|
|
116
|
-
const attributesResponse = await client.send(new GetQueueAttributesCommand({
|
|
117
|
-
QueueUrl: urlResponse.QueueUrl,
|
|
118
|
-
AttributeNames: ["QueueArn"],
|
|
119
|
-
}));
|
|
120
|
-
return {
|
|
121
|
-
...props,
|
|
122
|
-
id: props.queueName,
|
|
123
|
-
arn: attributesResponse.Attributes.QueueArn,
|
|
124
|
-
url: urlResponse.QueueUrl,
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
else if (error.name === "QueueDeletedRecently") {
|
|
128
|
-
// Queue was recently deleted, wait and retry
|
|
129
|
-
const maxRetries = 3;
|
|
130
|
-
let retryCount = 0;
|
|
131
|
-
while (retryCount < maxRetries) {
|
|
132
|
-
try {
|
|
133
|
-
// Wait for 60 seconds before retrying
|
|
134
|
-
await new Promise((resolve) => setTimeout(resolve, 61000));
|
|
135
|
-
// Retry creating the queue
|
|
136
|
-
const createResponse = await client.send(new CreateQueueCommand({
|
|
137
|
-
QueueName: queueName,
|
|
138
|
-
Attributes: attributes,
|
|
139
|
-
tags,
|
|
140
|
-
}));
|
|
141
|
-
// Get queue attributes
|
|
142
|
-
const attributesResponse = await client.send(new GetQueueAttributesCommand({
|
|
143
|
-
QueueUrl: createResponse.QueueUrl,
|
|
144
|
-
AttributeNames: ["QueueArn"],
|
|
145
|
-
}));
|
|
146
|
-
return {
|
|
147
|
-
...props,
|
|
148
|
-
id: props.queueName,
|
|
149
|
-
arn: attributesResponse.Attributes.QueueArn,
|
|
150
|
-
url: createResponse.QueueUrl,
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
catch (retryError) {
|
|
154
|
-
if (retryError.name !== "QueueDeletedRecently" ||
|
|
155
|
-
retryCount === maxRetries - 1) {
|
|
156
|
-
throw retryError;
|
|
157
|
-
}
|
|
158
|
-
retryCount++;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
throw error;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
}) {
|
|
166
|
-
}
|
|
167
|
-
//# sourceMappingURL=queue.js.map
|
package/lib/aws/queue.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/aws/queue.ts"],"names":[],"mappings":"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"}
|
package/lib/aws/role.d.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import type { PolicyDocument } from "./policy";
|
|
2
|
-
export interface RoleProps {
|
|
3
|
-
roleName: string;
|
|
4
|
-
assumeRolePolicy: PolicyDocument;
|
|
5
|
-
description?: string;
|
|
6
|
-
path?: string;
|
|
7
|
-
maxSessionDuration?: number;
|
|
8
|
-
permissionsBoundary?: string;
|
|
9
|
-
policies?: Array<{
|
|
10
|
-
policyName: string;
|
|
11
|
-
policyDocument: PolicyDocument;
|
|
12
|
-
}>;
|
|
13
|
-
managedPolicyArns?: string[];
|
|
14
|
-
tags?: Record<string, string>;
|
|
15
|
-
}
|
|
16
|
-
export interface RoleOutput extends RoleProps {
|
|
17
|
-
id: string;
|
|
18
|
-
arn: string;
|
|
19
|
-
uniqueId: string;
|
|
20
|
-
roleId: string;
|
|
21
|
-
createDate: Date;
|
|
22
|
-
}
|
|
23
|
-
declare const Role_base: import("../resource").Provider<"iam::Role", [props: RoleProps], RoleOutput>;
|
|
24
|
-
export declare class Role extends Role_base {
|
|
25
|
-
}
|
|
26
|
-
export {};
|
|
27
|
-
//# sourceMappingURL=role.d.ts.map
|
package/lib/aws/role.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"role.d.ts","sourceRoot":"","sources":["../../src/aws/role.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,cAAc,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,cAAc,CAAC;KAChC,CAAC,CAAC;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,UAAW,SAAQ,SAAS;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,IAAI,CAAC;CAClB;;AAED,qBAAa,IAAK,SAAQ,SA6QzB;CAAG"}
|