@jaypie/constructs 1.1.65 → 1.1.66

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.
Files changed (139) hide show
  1. package/dist/cjs/JaypieAccountLoggingBucket.d.ts +60 -0
  2. package/dist/cjs/JaypieApiGateway.d.ts +47 -0
  3. package/dist/cjs/JaypieAppStack.d.ts +5 -0
  4. package/dist/cjs/JaypieBucketQueuedLambda.d.ts +48 -0
  5. package/dist/cjs/JaypieDatadogBucket.d.ts +55 -0
  6. package/dist/cjs/JaypieDatadogForwarder.d.ts +76 -0
  7. package/dist/cjs/JaypieDatadogSecret.d.ts +5 -0
  8. package/dist/cjs/JaypieDistribution.d.ts +76 -0
  9. package/dist/cjs/JaypieDnsRecord.d.ts +45 -0
  10. package/dist/cjs/JaypieEnvSecret.d.ts +41 -0
  11. package/dist/cjs/JaypieEventsRule.d.ts +45 -0
  12. package/dist/cjs/JaypieExpressLambda.d.ts +5 -0
  13. package/dist/cjs/JaypieGitHubDeployRole.d.ts +14 -0
  14. package/dist/cjs/JaypieHostedZone.d.ts +59 -0
  15. package/dist/cjs/JaypieInfrastructureStack.d.ts +5 -0
  16. package/dist/cjs/JaypieLambda.d.ts +115 -0
  17. package/dist/cjs/JaypieMongoDbSecret.d.ts +5 -0
  18. package/dist/cjs/JaypieNextJs.d.ts +36 -0
  19. package/dist/cjs/JaypieNextJs.test.d.ts +1 -0
  20. package/dist/cjs/JaypieOpenAiSecret.d.ts +5 -0
  21. package/dist/cjs/JaypieOrganizationTrail.d.ts +62 -0
  22. package/dist/cjs/JaypieQueuedLambda.d.ts +77 -0
  23. package/dist/cjs/JaypieSsoPermissions.d.ts +96 -0
  24. package/dist/cjs/JaypieSsoSyncApplication.d.ts +27 -0
  25. package/dist/cjs/JaypieStack.d.ts +8 -0
  26. package/dist/cjs/JaypieStaticWebBucket.d.ts +22 -0
  27. package/dist/cjs/JaypieTraceSigningKeySecret.d.ts +5 -0
  28. package/dist/cjs/JaypieWebDeploymentBucket.d.ts +84 -0
  29. package/dist/cjs/__tests__/JaypieBucketQueuedLambda.spec.d.ts +1 -0
  30. package/dist/cjs/__tests__/JaypieDistribution.spec.d.ts +1 -0
  31. package/dist/cjs/__tests__/JaypieDnsRecord.spec.d.ts +1 -0
  32. package/dist/cjs/__tests__/JaypieEnvSecret.spec.d.ts +1 -0
  33. package/dist/cjs/__tests__/JaypieExpressLambda.spec.d.ts +1 -0
  34. package/dist/cjs/__tests__/JaypieHostedZone.spec.d.ts +1 -0
  35. package/dist/cjs/__tests__/JaypieLambda.spec.d.ts +1 -0
  36. package/dist/cjs/__tests__/JaypieQueuedLambda.spec.d.ts +1 -0
  37. package/dist/cjs/__tests__/JaypieSsoPermissions.spec.d.ts +1 -0
  38. package/dist/cjs/__tests__/JaypieSsoSyncApplication.spec.d.ts +1 -0
  39. package/dist/cjs/__tests__/JaypieStaticWebBucket.spec.d.ts +1 -0
  40. package/dist/cjs/__tests__/index.spec.d.ts +1 -0
  41. package/dist/cjs/constants.d.ts +151 -0
  42. package/dist/cjs/helpers/__tests__/envHostname.spec.d.ts +1 -0
  43. package/dist/cjs/helpers/__tests__/jaypieLambdaEnv.spec.d.ts +1 -0
  44. package/dist/cjs/helpers/__tests__/resolveDatadogForwarderFunction.spec.d.ts +1 -0
  45. package/dist/cjs/helpers/__tests__/resolveDatadogLoggingDestination.spec.d.ts +1 -0
  46. package/dist/cjs/helpers/__tests__/resolveEnvironment.spec.d.ts +1 -0
  47. package/dist/cjs/helpers/__tests__/resolveSecrets.spec.d.ts +1 -0
  48. package/dist/cjs/helpers/addDatadogLayers.d.ts +5 -0
  49. package/dist/cjs/helpers/constructEnvName.d.ts +5 -0
  50. package/dist/cjs/helpers/constructStackName.d.ts +1 -0
  51. package/dist/cjs/helpers/constructTagger.d.ts +4 -0
  52. package/dist/cjs/helpers/envHostname.d.ts +6 -0
  53. package/dist/cjs/helpers/extendDatadogRole.d.ts +31 -0
  54. package/dist/cjs/helpers/index.d.ts +18 -0
  55. package/dist/cjs/helpers/isEnv.d.ts +12 -0
  56. package/dist/cjs/helpers/isValidHostname.d.ts +1 -0
  57. package/dist/cjs/helpers/isValidSubdomain.d.ts +1 -0
  58. package/dist/cjs/helpers/jaypieLambdaEnv.d.ts +8 -0
  59. package/dist/cjs/helpers/mergeDomain.d.ts +1 -0
  60. package/dist/cjs/helpers/resolveDatadogForwarderFunction.d.ts +7 -0
  61. package/dist/cjs/helpers/resolveDatadogLayers.d.ts +7 -0
  62. package/dist/cjs/helpers/resolveDatadogLoggingDestination.d.ts +4 -0
  63. package/dist/cjs/helpers/resolveEnvironment.d.ts +47 -0
  64. package/dist/cjs/helpers/resolveHostedZone.d.ts +6 -0
  65. package/dist/cjs/helpers/resolveParamsAndSecrets.d.ts +13 -0
  66. package/dist/cjs/helpers/resolveSecrets.d.ts +52 -0
  67. package/dist/cjs/index.cjs +3503 -0
  68. package/dist/cjs/index.cjs.map +1 -0
  69. package/dist/cjs/index.d.ts +29 -0
  70. package/dist/esm/JaypieAccountLoggingBucket.d.ts +60 -0
  71. package/dist/esm/JaypieApiGateway.d.ts +47 -0
  72. package/dist/esm/JaypieAppStack.d.ts +5 -0
  73. package/dist/esm/JaypieBucketQueuedLambda.d.ts +48 -0
  74. package/dist/esm/JaypieDatadogBucket.d.ts +55 -0
  75. package/dist/esm/JaypieDatadogForwarder.d.ts +76 -0
  76. package/dist/esm/JaypieDatadogSecret.d.ts +5 -0
  77. package/dist/esm/JaypieDistribution.d.ts +76 -0
  78. package/dist/esm/JaypieDnsRecord.d.ts +45 -0
  79. package/dist/esm/JaypieEnvSecret.d.ts +41 -0
  80. package/dist/esm/JaypieEventsRule.d.ts +45 -0
  81. package/dist/esm/JaypieExpressLambda.d.ts +5 -0
  82. package/dist/esm/JaypieGitHubDeployRole.d.ts +14 -0
  83. package/dist/esm/JaypieHostedZone.d.ts +59 -0
  84. package/dist/esm/JaypieInfrastructureStack.d.ts +5 -0
  85. package/dist/esm/JaypieLambda.d.ts +115 -0
  86. package/dist/esm/JaypieMongoDbSecret.d.ts +5 -0
  87. package/dist/esm/JaypieNextJs.d.ts +36 -0
  88. package/dist/esm/JaypieNextJs.test.d.ts +1 -0
  89. package/dist/esm/JaypieOpenAiSecret.d.ts +5 -0
  90. package/dist/esm/JaypieOrganizationTrail.d.ts +62 -0
  91. package/dist/esm/JaypieQueuedLambda.d.ts +77 -0
  92. package/dist/esm/JaypieSsoPermissions.d.ts +96 -0
  93. package/dist/esm/JaypieSsoSyncApplication.d.ts +27 -0
  94. package/dist/esm/JaypieStack.d.ts +8 -0
  95. package/dist/esm/JaypieStaticWebBucket.d.ts +22 -0
  96. package/dist/esm/JaypieTraceSigningKeySecret.d.ts +5 -0
  97. package/dist/esm/JaypieWebDeploymentBucket.d.ts +84 -0
  98. package/dist/esm/__tests__/JaypieBucketQueuedLambda.spec.d.ts +1 -0
  99. package/dist/esm/__tests__/JaypieDistribution.spec.d.ts +1 -0
  100. package/dist/esm/__tests__/JaypieDnsRecord.spec.d.ts +1 -0
  101. package/dist/esm/__tests__/JaypieEnvSecret.spec.d.ts +1 -0
  102. package/dist/esm/__tests__/JaypieExpressLambda.spec.d.ts +1 -0
  103. package/dist/esm/__tests__/JaypieHostedZone.spec.d.ts +1 -0
  104. package/dist/esm/__tests__/JaypieLambda.spec.d.ts +1 -0
  105. package/dist/esm/__tests__/JaypieQueuedLambda.spec.d.ts +1 -0
  106. package/dist/esm/__tests__/JaypieSsoPermissions.spec.d.ts +1 -0
  107. package/dist/esm/__tests__/JaypieSsoSyncApplication.spec.d.ts +1 -0
  108. package/dist/esm/__tests__/JaypieStaticWebBucket.spec.d.ts +1 -0
  109. package/dist/esm/__tests__/index.spec.d.ts +1 -0
  110. package/dist/esm/constants.d.ts +151 -0
  111. package/dist/esm/helpers/__tests__/envHostname.spec.d.ts +1 -0
  112. package/dist/esm/helpers/__tests__/jaypieLambdaEnv.spec.d.ts +1 -0
  113. package/dist/esm/helpers/__tests__/resolveDatadogForwarderFunction.spec.d.ts +1 -0
  114. package/dist/esm/helpers/__tests__/resolveDatadogLoggingDestination.spec.d.ts +1 -0
  115. package/dist/esm/helpers/__tests__/resolveEnvironment.spec.d.ts +1 -0
  116. package/dist/esm/helpers/__tests__/resolveSecrets.spec.d.ts +1 -0
  117. package/dist/esm/helpers/addDatadogLayers.d.ts +5 -0
  118. package/dist/esm/helpers/constructEnvName.d.ts +5 -0
  119. package/dist/esm/helpers/constructStackName.d.ts +1 -0
  120. package/dist/esm/helpers/constructTagger.d.ts +4 -0
  121. package/dist/esm/helpers/envHostname.d.ts +6 -0
  122. package/dist/esm/helpers/extendDatadogRole.d.ts +31 -0
  123. package/dist/esm/helpers/index.d.ts +18 -0
  124. package/dist/esm/helpers/isEnv.d.ts +12 -0
  125. package/dist/esm/helpers/isValidHostname.d.ts +1 -0
  126. package/dist/esm/helpers/isValidSubdomain.d.ts +1 -0
  127. package/dist/esm/helpers/jaypieLambdaEnv.d.ts +8 -0
  128. package/dist/esm/helpers/mergeDomain.d.ts +1 -0
  129. package/dist/esm/helpers/resolveDatadogForwarderFunction.d.ts +7 -0
  130. package/dist/esm/helpers/resolveDatadogLayers.d.ts +7 -0
  131. package/dist/esm/helpers/resolveDatadogLoggingDestination.d.ts +4 -0
  132. package/dist/esm/helpers/resolveEnvironment.d.ts +47 -0
  133. package/dist/esm/helpers/resolveHostedZone.d.ts +6 -0
  134. package/dist/esm/helpers/resolveParamsAndSecrets.d.ts +13 -0
  135. package/dist/esm/helpers/resolveSecrets.d.ts +52 -0
  136. package/dist/esm/index.d.ts +29 -0
  137. package/dist/esm/index.js +3423 -0
  138. package/dist/esm/index.js.map +1 -0
  139. package/package.json +2 -2
@@ -0,0 +1,115 @@
1
+ import { Construct } from "constructs";
2
+ import { Duration, Stack, RemovalPolicy } from "aws-cdk-lib";
3
+ import * as lambda from "aws-cdk-lib/aws-lambda";
4
+ import * as cloudwatch from "aws-cdk-lib/aws-cloudwatch";
5
+ import * as ec2 from "aws-cdk-lib/aws-ec2";
6
+ import * as iam from "aws-cdk-lib/aws-iam";
7
+ import * as logs from "aws-cdk-lib/aws-logs";
8
+ import * as secretsmanager from "aws-cdk-lib/aws-secretsmanager";
9
+ import { EnvironmentInput, SecretsArrayItem } from "./helpers/index.js";
10
+ export interface JaypieLambdaProps {
11
+ allowAllOutbound?: boolean;
12
+ allowPublicSubnet?: boolean;
13
+ architecture?: lambda.Architecture;
14
+ code: lambda.Code | string;
15
+ datadogApiKeyArn?: string;
16
+ deadLetterQueue?: import("aws-cdk-lib/aws-sqs").IQueue;
17
+ deadLetterQueueEnabled?: boolean;
18
+ deadLetterTopic?: import("aws-cdk-lib/aws-sns").ITopic;
19
+ description?: string;
20
+ /**
21
+ * Environment variables for the Lambda function.
22
+ *
23
+ * Supports both legacy object syntax and new array syntax:
24
+ * - Object: { KEY: "value" } - directly sets environment variables
25
+ * - Array: ["KEY1", "KEY2", { KEY3: "value" }]
26
+ * - Strings: lookup value from process.env
27
+ * - Objects: merge key-value pairs directly
28
+ */
29
+ environment?: EnvironmentInput;
30
+ envSecrets?: {
31
+ [key: string]: secretsmanager.ISecret;
32
+ };
33
+ ephemeralStorageSize?: import("aws-cdk-lib").Size;
34
+ filesystem?: lambda.FileSystem;
35
+ handler: string;
36
+ initialPolicy?: iam.PolicyStatement[];
37
+ layers?: lambda.ILayerVersion[];
38
+ logGroup?: logs.ILogGroup;
39
+ logRetention?: logs.RetentionDays | number;
40
+ maxEventAge?: Duration;
41
+ memorySize?: number;
42
+ paramsAndSecrets?: lambda.ParamsAndSecretsLayerVersion | boolean;
43
+ paramsAndSecretsOptions?: {
44
+ cacheSize?: number;
45
+ logLevel?: lambda.ParamsAndSecretsLogLevel;
46
+ parameterStoreTtl?: Duration;
47
+ secretsManagerTtl?: Duration;
48
+ };
49
+ profiling?: boolean;
50
+ profilingGroup?: import("aws-cdk-lib/aws-codeguruprofiler").IProfilingGroup;
51
+ provisionedConcurrentExecutions?: number;
52
+ reservedConcurrentExecutions?: number;
53
+ retryAttempts?: number;
54
+ roleTag?: string;
55
+ runtime?: lambda.Runtime;
56
+ runtimeManagementMode?: lambda.RuntimeManagementMode;
57
+ /**
58
+ * Secrets to make available to the Lambda function.
59
+ *
60
+ * Supports both JaypieEnvSecret instances and strings:
61
+ * - JaypieEnvSecret: used directly
62
+ * - String: creates a JaypieEnvSecret with the string as envKey
63
+ * (reuses existing secrets within the same scope)
64
+ */
65
+ secrets?: SecretsArrayItem[];
66
+ securityGroups?: ec2.ISecurityGroup[];
67
+ timeout?: Duration | number;
68
+ tracing?: lambda.Tracing;
69
+ vendorTag?: string;
70
+ vpc?: ec2.IVpc;
71
+ vpcSubnets?: ec2.SubnetSelection;
72
+ }
73
+ export declare class JaypieLambda extends Construct implements lambda.IFunction {
74
+ private readonly _lambda;
75
+ private readonly _provisioned?;
76
+ private readonly _reference;
77
+ constructor(scope: Construct, id: string, props: JaypieLambdaProps);
78
+ get lambda(): lambda.Function;
79
+ get provisioned(): lambda.Alias | undefined;
80
+ get reference(): lambda.IFunction;
81
+ get functionArn(): string;
82
+ get functionName(): string;
83
+ get grantPrincipal(): iam.IPrincipal;
84
+ get role(): iam.IRole | undefined;
85
+ get architecture(): lambda.Architecture;
86
+ get connections(): import("aws-cdk-lib/aws-ec2").Connections;
87
+ get isBoundToVpc(): boolean;
88
+ get latestVersion(): lambda.IVersion;
89
+ get permissionsNode(): import("constructs").Node;
90
+ get resourceArnsForGrantInvoke(): string[];
91
+ get functionRef(): lambda.FunctionReference;
92
+ addEventSource(source: lambda.IEventSource): void;
93
+ addEventSourceMapping(id: string, options: lambda.EventSourceMappingOptions): lambda.EventSourceMapping;
94
+ addFunctionUrl(options?: lambda.FunctionUrlOptions): lambda.FunctionUrl;
95
+ addPermission(id: string, permission: lambda.Permission): void;
96
+ addToRolePolicy(statement: iam.PolicyStatement): void;
97
+ configureAsyncInvoke(options: lambda.EventInvokeConfigOptions): void;
98
+ grantInvoke(grantee: iam.IGrantable): iam.Grant;
99
+ grantInvokeCompositePrincipal(compositePrincipal: iam.CompositePrincipal): iam.Grant[];
100
+ grantInvokeUrl(grantee: iam.IGrantable): iam.Grant;
101
+ grantInvokeLatestVersion(grantee: iam.IGrantable): iam.Grant;
102
+ grantInvokeVersion(grantee: iam.IGrantable, version: lambda.IVersion): iam.Grant;
103
+ metric(metricName: string, props?: cloudwatch.MetricOptions): cloudwatch.Metric;
104
+ metricDuration(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
105
+ metricErrors(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
106
+ metricInvocations(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
107
+ metricThrottles(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
108
+ get env(): {
109
+ account: string;
110
+ region: string;
111
+ };
112
+ get stack(): Stack;
113
+ applyRemovalPolicy(policy: RemovalPolicy): void;
114
+ addEnvironment(key: string, value: string): void;
115
+ }
@@ -0,0 +1,5 @@
1
+ import { Construct } from "constructs";
2
+ import { JaypieEnvSecret, JaypieEnvSecretProps } from "./JaypieEnvSecret";
3
+ export declare class JaypieMongoDbSecret extends JaypieEnvSecret {
4
+ constructor(scope: Construct, id?: string, props?: JaypieEnvSecretProps);
5
+ }
@@ -0,0 +1,36 @@
1
+ import { IHostedZone } from "aws-cdk-lib/aws-route53";
2
+ import * as secretsmanager from "aws-cdk-lib/aws-secretsmanager";
3
+ import { Construct } from "constructs";
4
+ import { EnvironmentInput, SecretsArrayItem } from "./helpers";
5
+ export interface JaypieNextjsProps {
6
+ datadogApiKeyArn?: string;
7
+ domainName?: string;
8
+ /**
9
+ * Environment variables for the Next.js application.
10
+ *
11
+ * Supports both legacy object syntax and new array syntax:
12
+ * - Object: { KEY: "value" } - directly sets environment variables
13
+ * - Array: ["KEY1", "KEY2", { KEY3: "value" }]
14
+ * - Strings: lookup value from process.env
15
+ * - Objects: merge key-value pairs directly
16
+ */
17
+ environment?: EnvironmentInput;
18
+ envSecrets?: {
19
+ [key: string]: secretsmanager.ISecret;
20
+ };
21
+ hostedZone?: IHostedZone | string;
22
+ nextjsPath?: string;
23
+ /**
24
+ * Secrets to make available to the Next.js application.
25
+ *
26
+ * Supports both JaypieEnvSecret instances and strings:
27
+ * - JaypieEnvSecret: used directly
28
+ * - String: creates a JaypieEnvSecret with the string as envKey
29
+ * (reuses existing secrets within the same scope)
30
+ */
31
+ secrets?: SecretsArrayItem[];
32
+ }
33
+ export declare class JaypieNextJs extends Construct {
34
+ readonly domainName: string;
35
+ constructor(scope: Construct, id: string, props?: JaypieNextjsProps);
36
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ import { Construct } from "constructs";
2
+ import { JaypieEnvSecret, JaypieEnvSecretProps } from "./JaypieEnvSecret";
3
+ export declare class JaypieOpenAiSecret extends JaypieEnvSecret {
4
+ constructor(scope: Construct, id?: string, props?: JaypieEnvSecretProps);
5
+ }
@@ -0,0 +1,62 @@
1
+ import { IBucket } from "aws-cdk-lib/aws-s3";
2
+ import { Trail } from "aws-cdk-lib/aws-cloudtrail";
3
+ import { Construct } from "constructs";
4
+ export interface JaypieOrganizationTrailProps {
5
+ /**
6
+ * Optional construct ID
7
+ * @default Generated from trail name
8
+ */
9
+ id?: string;
10
+ /**
11
+ * The name of the CloudTrail trail
12
+ * @default Uses PROJECT_NONCE: `organization-cloudtrail-${PROJECT_NONCE}`
13
+ */
14
+ trailName?: string;
15
+ /**
16
+ * The name of the S3 bucket for CloudTrail logs
17
+ * @default Uses PROJECT_NONCE: `organization-cloudtrail-${PROJECT_NONCE}`
18
+ */
19
+ bucketName?: string;
20
+ /**
21
+ * The service tag value
22
+ * @default CDK.SERVICE.INFRASTRUCTURE
23
+ */
24
+ service?: string;
25
+ /**
26
+ * Optional project tag value
27
+ */
28
+ project?: string;
29
+ /**
30
+ * Whether to enable file validation for the trail
31
+ * @default false
32
+ */
33
+ enableFileValidation?: boolean;
34
+ /**
35
+ * Number of days before logs expire
36
+ * @default 365
37
+ */
38
+ expirationDays?: number;
39
+ /**
40
+ * Number of days before transitioning to INFREQUENT_ACCESS storage
41
+ * @default 30
42
+ */
43
+ infrequentAccessTransitionDays?: number;
44
+ /**
45
+ * Number of days before transitioning to GLACIER storage
46
+ * @default 180
47
+ */
48
+ glacierTransitionDays?: number;
49
+ /**
50
+ * Whether to send S3 notifications to Datadog forwarder
51
+ * @default true
52
+ */
53
+ enableDatadogNotifications?: boolean;
54
+ }
55
+ export declare class JaypieOrganizationTrail extends Construct {
56
+ readonly bucket: IBucket;
57
+ readonly trail: Trail;
58
+ /**
59
+ * Create a new organization CloudTrail with S3 bucket and lifecycle policies
60
+ */
61
+ constructor(scope: Construct, idOrProps?: string | JaypieOrganizationTrailProps, propsOrUndefined?: JaypieOrganizationTrailProps);
62
+ }
@@ -0,0 +1,77 @@
1
+ import { Construct } from "constructs";
2
+ import { Duration, Stack, RemovalPolicy } from "aws-cdk-lib";
3
+ import * as lambda from "aws-cdk-lib/aws-lambda";
4
+ import * as sqs from "aws-cdk-lib/aws-sqs";
5
+ import * as iam from "aws-cdk-lib/aws-iam";
6
+ import * as cloudwatch from "aws-cdk-lib/aws-cloudwatch";
7
+ import * as kms from "aws-cdk-lib/aws-kms";
8
+ import { JaypieLambdaProps } from "./JaypieLambda.js";
9
+ export interface JaypieQueuedLambdaProps extends JaypieLambdaProps {
10
+ batchSize?: number;
11
+ fifo?: boolean;
12
+ visibilityTimeout?: Duration | number;
13
+ }
14
+ export declare class JaypieQueuedLambda extends Construct implements lambda.IFunction, sqs.IQueue {
15
+ private readonly _queue;
16
+ private readonly _lambdaConstruct;
17
+ constructor(scope: Construct, id: string, props: JaypieQueuedLambdaProps);
18
+ get queue(): sqs.Queue;
19
+ get lambda(): lambda.Function;
20
+ get functionArn(): string;
21
+ get functionName(): string;
22
+ get grantPrincipal(): import("aws-cdk-lib/aws-iam").IPrincipal;
23
+ get role(): import("aws-cdk-lib/aws-iam").IRole | undefined;
24
+ get architecture(): lambda.Architecture;
25
+ get connections(): import("aws-cdk-lib/aws-ec2").Connections;
26
+ get isBoundToVpc(): boolean;
27
+ get latestVersion(): lambda.IVersion;
28
+ get permissionsNode(): import("constructs").Node;
29
+ get resourceArnsForGrantInvoke(): string[];
30
+ get functionRef(): lambda.FunctionReference;
31
+ addEventSource(source: lambda.IEventSource): void;
32
+ addEventSourceMapping(id: string, options: lambda.EventSourceMappingOptions): lambda.EventSourceMapping;
33
+ addFunctionUrl(options?: lambda.FunctionUrlOptions): lambda.FunctionUrl;
34
+ addPermission(id: string, permission: lambda.Permission): void;
35
+ addToRolePolicy(statement: import("aws-cdk-lib/aws-iam").PolicyStatement): void;
36
+ configureAsyncInvoke(options: lambda.EventInvokeConfigOptions): void;
37
+ grantInvoke(grantee: import("aws-cdk-lib/aws-iam").IGrantable): import("aws-cdk-lib/aws-iam").Grant;
38
+ grantInvokeCompositePrincipal(compositePrincipal: import("aws-cdk-lib/aws-iam").CompositePrincipal): import("aws-cdk-lib/aws-iam").Grant[];
39
+ grantInvokeUrl(grantee: import("aws-cdk-lib/aws-iam").IGrantable): import("aws-cdk-lib/aws-iam").Grant;
40
+ metric(metricName: string, props?: import("aws-cdk-lib/aws-cloudwatch").MetricOptions): import("aws-cdk-lib/aws-cloudwatch").Metric;
41
+ metricDuration(props?: import("aws-cdk-lib/aws-cloudwatch").MetricOptions): import("aws-cdk-lib/aws-cloudwatch").Metric;
42
+ metricErrors(props?: import("aws-cdk-lib/aws-cloudwatch").MetricOptions): import("aws-cdk-lib/aws-cloudwatch").Metric;
43
+ metricInvocations(props?: import("aws-cdk-lib/aws-cloudwatch").MetricOptions): import("aws-cdk-lib/aws-cloudwatch").Metric;
44
+ metricThrottles(props?: import("aws-cdk-lib/aws-cloudwatch").MetricOptions): import("aws-cdk-lib/aws-cloudwatch").Metric;
45
+ grantInvokeLatestVersion(grantee: iam.IGrantable): iam.Grant;
46
+ grantInvokeVersion(grantee: iam.IGrantable, version: lambda.Version): iam.Grant;
47
+ get env(): {
48
+ account: string;
49
+ region: string;
50
+ };
51
+ get stack(): Stack;
52
+ applyRemovalPolicy(policy: RemovalPolicy): void;
53
+ get queueRef(): {
54
+ queueUrl: string;
55
+ queueArn: string;
56
+ };
57
+ get fifo(): boolean;
58
+ get queueArn(): string;
59
+ get queueName(): string;
60
+ get queueUrl(): string;
61
+ get encryptionMasterKey(): kms.IKey | undefined;
62
+ addToResourcePolicy(statement: iam.PolicyStatement): iam.AddToResourcePolicyResult;
63
+ grant(grantee: iam.IGrantable, ...actions: string[]): iam.Grant;
64
+ grantConsumeMessages(grantee: iam.IGrantable): iam.Grant;
65
+ grantPurge(grantee: iam.IGrantable): iam.Grant;
66
+ grantSendMessages(grantee: iam.IGrantable): iam.Grant;
67
+ metricApproximateAgeOfOldestMessage(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
68
+ metricApproximateNumberOfMessagesDelayed(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
69
+ metricApproximateNumberOfMessagesNotVisible(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
70
+ metricApproximateNumberOfMessagesVisible(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
71
+ metricNumberOfEmptyReceives(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
72
+ metricNumberOfMessagesDeleted(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
73
+ metricNumberOfMessagesReceived(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
74
+ metricNumberOfMessagesSent(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
75
+ metricSentMessageSize(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
76
+ addEnvironment(key: string, value: string): void;
77
+ }
@@ -0,0 +1,96 @@
1
+ import { Construct } from "constructs";
2
+ import { CfnPermissionSet } from "aws-cdk-lib/aws-sso";
3
+ /**
4
+ * Mapping of account IDs to permission set names
5
+ * Key: AWS account ID
6
+ * Value: Array of permission set names to assign to this account
7
+ */
8
+ export interface AccountAssignments {
9
+ [accountId: string]: string[];
10
+ }
11
+ /**
12
+ * Properties for the JaypieSsoPermissions construct
13
+ */
14
+ export interface JaypieSsoPermissionsProps {
15
+ /**
16
+ * ARN of the IAM Identity Center instance
17
+ * If not provided, falls back to CDK_ENV_IAM_IDENTITY_CENTER_ARN
18
+ * If neither is set, SSO setup will be skipped
19
+ */
20
+ iamIdentityCenterArn?: string;
21
+ /**
22
+ * Google Workspace group GUID for administrators
23
+ * Example: "b4c8b438-4031-7000-782d-5046945fb956"
24
+ */
25
+ administratorGroupId?: string;
26
+ /**
27
+ * Google Workspace group GUID for analysts
28
+ * Example: "2488f4e8-d061-708e-abe1-c315f0e30005"
29
+ */
30
+ analystGroupId?: string;
31
+ /**
32
+ * Google Workspace group GUID for developers
33
+ * Example: "b438a4f8-e0e1-707c-c6e8-21841daf9ad1"
34
+ */
35
+ developerGroupId?: string;
36
+ /**
37
+ * Account assignments for administrator group
38
+ * Maps account IDs to arrays of permission set names
39
+ * Example:
40
+ * {
41
+ * "211125635435": ["Administrator", "Analyst"],
42
+ * "381492033431": ["Administrator"],
43
+ * }
44
+ */
45
+ administratorAccountAssignments?: AccountAssignments;
46
+ /**
47
+ * Account assignments for analyst group
48
+ * Maps account IDs to arrays of permission set names
49
+ * Example:
50
+ * {
51
+ * "211125635435": ["Analyst"],
52
+ * "381492033431": ["Analyst"],
53
+ * }
54
+ */
55
+ analystAccountAssignments?: AccountAssignments;
56
+ /**
57
+ * Account assignments for developer group
58
+ * Maps account IDs to arrays of permission set names
59
+ * Example:
60
+ * {
61
+ * "211125635435": ["Developer"],
62
+ * }
63
+ */
64
+ developerAccountAssignments?: AccountAssignments;
65
+ }
66
+ /**
67
+ * JaypieSsoPermissions Construct
68
+ *
69
+ * Creates and manages AWS IAM Identity Center (SSO) permission sets and assignments
70
+ *
71
+ * @example
72
+ * const permissionSets = new JaypieSsoPermissions(this, "PermissionSets", {
73
+ * iamIdentityCenterArn: "arn:aws:sso:::instance/...",
74
+ * administratorGroupId: "b4c8b438-4031-7000-782d-5046945fb956",
75
+ * analystGroupId: "2488f4e8-d061-708e-abe1-c315f0e30005",
76
+ * developerGroupId: "b438a4f8-e0e1-707c-c6e8-21841daf9ad1",
77
+ * administratorAccountAssignments: {
78
+ * "211125635435": ["Administrator", "Analyst", "Developer"],
79
+ * "381492033431": ["Administrator", "Analyst"],
80
+ * },
81
+ * analystAccountAssignments: {
82
+ * "211125635435": ["Analyst", "Developer"],
83
+ * "381492033431": [],
84
+ * },
85
+ * developerAccountAssignments: {
86
+ * "211125635435": ["Analyst", "Developer"],
87
+ * "381492033431": [],
88
+ * },
89
+ * });
90
+ */
91
+ export declare class JaypieSsoPermissions extends Construct {
92
+ readonly administratorPermissionSet?: CfnPermissionSet;
93
+ readonly analystPermissionSet?: CfnPermissionSet;
94
+ readonly developerPermissionSet?: CfnPermissionSet;
95
+ constructor(scope: Construct, id: string, props: JaypieSsoPermissionsProps);
96
+ }
@@ -0,0 +1,27 @@
1
+ import { Construct } from "constructs";
2
+ import { CfnApplication } from "aws-cdk-lib/aws-sam";
3
+ export interface JaypieSsoSyncApplicationProps {
4
+ googleAdminEmail?: string;
5
+ googleAdminEmailEnvKey?: string;
6
+ googleCredentials?: string;
7
+ googleCredentialsEnvKey?: string;
8
+ googleGroupMatch?: string;
9
+ googleGroupMatchEnvKey?: string;
10
+ identityStoreId?: string;
11
+ identityStoreIdEnvKey?: string;
12
+ scimEndpointAccessToken?: string;
13
+ scimEndpointAccessTokenEnvKey?: string;
14
+ scimEndpointUrl?: string;
15
+ scimEndpointUrlEnvKey?: string;
16
+ semanticVersion?: string;
17
+ semanticVersionEnvKey?: string;
18
+ ssoSyncApplicationId?: string;
19
+ tags?: {
20
+ [key: string]: string;
21
+ };
22
+ }
23
+ export declare class JaypieSsoSyncApplication extends Construct {
24
+ private readonly _application;
25
+ constructor(scope: Construct, id?: string, props?: JaypieSsoSyncApplicationProps);
26
+ get application(): CfnApplication;
27
+ }
@@ -0,0 +1,8 @@
1
+ import { Stack, StackProps } from "aws-cdk-lib";
2
+ import { Construct } from "constructs";
3
+ export interface JaypieStackProps extends StackProps {
4
+ key?: string;
5
+ }
6
+ export declare class JaypieStack extends Stack {
7
+ constructor(scope: Construct, id: string, props?: JaypieStackProps);
8
+ }
@@ -0,0 +1,22 @@
1
+ import { Construct } from "constructs";
2
+ import { JaypieWebDeploymentBucket, JaypieWebDeploymentBucketProps } from "./JaypieWebDeploymentBucket";
3
+ export interface JaypieStaticWebBucketProps extends Omit<JaypieWebDeploymentBucketProps, "host" | "name" | "roleTag"> {
4
+ /**
5
+ * The domain name for the website
6
+ * @default envHostname({ subdomain: "static" })
7
+ */
8
+ host?: string;
9
+ /**
10
+ * Optional bucket name
11
+ * @default constructEnvName("static")
12
+ */
13
+ name?: string;
14
+ /**
15
+ * Role tag for tagging resources
16
+ * @default CDK.ROLE.HOSTING
17
+ */
18
+ roleTag?: string;
19
+ }
20
+ export declare class JaypieStaticWebBucket extends JaypieWebDeploymentBucket {
21
+ constructor(scope: Construct, id?: string | JaypieStaticWebBucketProps, props?: JaypieStaticWebBucketProps);
22
+ }
@@ -0,0 +1,5 @@
1
+ import { Construct } from "constructs";
2
+ import { JaypieEnvSecret, JaypieEnvSecretProps } from "./JaypieEnvSecret";
3
+ export declare class JaypieTraceSigningKeySecret extends JaypieEnvSecret {
4
+ constructor(scope: Construct, id?: string, props?: JaypieEnvSecretProps);
5
+ }
@@ -0,0 +1,84 @@
1
+ import { RemovalPolicy } from "aws-cdk-lib";
2
+ import * as acm from "aws-cdk-lib/aws-certificatemanager";
3
+ import * as cloudfront from "aws-cdk-lib/aws-cloudfront";
4
+ import { AddToResourcePolicyResult, PolicyStatement } from "aws-cdk-lib/aws-iam";
5
+ import * as route53 from "aws-cdk-lib/aws-route53";
6
+ import * as s3 from "aws-cdk-lib/aws-s3";
7
+ import * as kms from "aws-cdk-lib/aws-kms";
8
+ import { Construct } from "constructs";
9
+ import { JaypieHostedZone } from "./JaypieHostedZone";
10
+ export interface JaypieWebDeploymentBucketProps extends s3.BucketProps {
11
+ /**
12
+ * SSL certificate for the CloudFront distribution
13
+ * @default true (creates a new certificate)
14
+ */
15
+ certificate?: boolean | acm.ICertificate;
16
+ /**
17
+ * The domain name for the website
18
+ * @default mergeDomain(CDK_ENV_WEB_SUBDOMAIN, CDK_ENV_WEB_HOSTED_ZONE || CDK_ENV_HOSTED_ZONE)
19
+ */
20
+ host?: string;
21
+ /**
22
+ * Optional bucket name
23
+ */
24
+ name?: string;
25
+ /**
26
+ * Role tag for tagging resources
27
+ * @default CDK.ROLE.HOSTING
28
+ */
29
+ roleTag?: string;
30
+ /**
31
+ * The hosted zone for DNS records
32
+ * @default CDK_ENV_WEB_HOSTED_ZONE || CDK_ENV_HOSTED_ZONE
33
+ */
34
+ zone?: string | route53.IHostedZone | JaypieHostedZone;
35
+ }
36
+ export declare class JaypieWebDeploymentBucket extends Construct implements s3.IBucket {
37
+ readonly bucket: s3.Bucket;
38
+ readonly bucketArn: string;
39
+ readonly bucketDomainName: string;
40
+ readonly bucketDualStackDomainName: string;
41
+ readonly bucketName: string;
42
+ readonly bucketRegionalDomainName: string;
43
+ readonly bucketWebsiteDomainName: string;
44
+ readonly bucketWebsiteUrl: string;
45
+ readonly encryptionKey?: kms.IKey;
46
+ readonly isWebsite?: boolean;
47
+ readonly notificationsHandlerRole?: string;
48
+ readonly policy?: s3.BucketPolicy;
49
+ readonly deployRoleArn?: string;
50
+ readonly distributionDomainName?: string;
51
+ readonly certificate?: acm.ICertificate;
52
+ readonly distribution?: cloudfront.Distribution;
53
+ constructor(scope: Construct, id: string, props?: JaypieWebDeploymentBucketProps);
54
+ addEventNotification(event: s3.EventType, dest: s3.IBucketNotificationDestination, ...filters: s3.NotificationKeyFilter[]): void;
55
+ addObjectCreatedNotification(dest: s3.IBucketNotificationDestination, ...filters: s3.NotificationKeyFilter[]): void;
56
+ addObjectRemovedNotification(dest: s3.IBucketNotificationDestination, ...filters: s3.NotificationKeyFilter[]): void;
57
+ addToResourcePolicy(permission: PolicyStatement): AddToResourcePolicyResult;
58
+ arnForObjects(keyPattern: string): string;
59
+ grantDelete(identity: any, objectsKeyPattern?: any): any;
60
+ grantPublicAccess(allowedActions: string, keyPrefix?: string): any;
61
+ grantPut(identity: any, objectsKeyPattern?: any): any;
62
+ grantPutAcl(identity: any, objectsKeyPattern?: string): any;
63
+ grantRead(identity: any, objectsKeyPattern?: any): any;
64
+ grantReadWrite(identity: any, objectsKeyPattern?: any): any;
65
+ grantWrite(identity: any, objectsKeyPattern?: any): any;
66
+ grantReplicationPermission(identity: any, props: any): any;
67
+ s3UrlForObject(key?: string): string;
68
+ urlForObject(key?: string): string;
69
+ virtualHostedUrlForObject(key?: string, options?: s3.VirtualHostedStyleUrlOptions): string;
70
+ transferAccelerationUrlForObject(key?: string): string;
71
+ onCloudTrailEvent(id: string, options?: s3.OnCloudTrailBucketEventOptions): any;
72
+ onCloudTrailPutObject(id: string, options?: s3.OnCloudTrailBucketEventOptions): any;
73
+ onCloudTrailWriteObject(id: string, options?: s3.OnCloudTrailBucketEventOptions): any;
74
+ addCorsRule(rule: s3.CorsRule): void;
75
+ addInventory(inventory: s3.Inventory): void;
76
+ addLifecycleRule(rule: s3.LifecycleRule): void;
77
+ addMetric(metric: s3.BucketMetrics): void;
78
+ enableEventBridgeNotification(): void;
79
+ addReplicationPolicy(policy: any): void;
80
+ get stack(): any;
81
+ get env(): any;
82
+ applyRemovalPolicy(policy: RemovalPolicy): void;
83
+ get bucketRef(): s3.BucketReference;
84
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};