@jaypie/constructs 1.1.63 → 1.1.65

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 (131) hide show
  1. package/package.json +6 -6
  2. package/dist/cjs/JaypieAccountLoggingBucket.d.ts +0 -60
  3. package/dist/cjs/JaypieApiGateway.d.ts +0 -47
  4. package/dist/cjs/JaypieAppStack.d.ts +0 -5
  5. package/dist/cjs/JaypieBucketQueuedLambda.d.ts +0 -48
  6. package/dist/cjs/JaypieDatadogBucket.d.ts +0 -55
  7. package/dist/cjs/JaypieDatadogForwarder.d.ts +0 -76
  8. package/dist/cjs/JaypieDatadogSecret.d.ts +0 -5
  9. package/dist/cjs/JaypieDistribution.d.ts +0 -76
  10. package/dist/cjs/JaypieDnsRecord.d.ts +0 -45
  11. package/dist/cjs/JaypieEnvSecret.d.ts +0 -40
  12. package/dist/cjs/JaypieEventsRule.d.ts +0 -45
  13. package/dist/cjs/JaypieExpressLambda.d.ts +0 -5
  14. package/dist/cjs/JaypieGitHubDeployRole.d.ts +0 -14
  15. package/dist/cjs/JaypieHostedZone.d.ts +0 -59
  16. package/dist/cjs/JaypieInfrastructureStack.d.ts +0 -5
  17. package/dist/cjs/JaypieLambda.d.ts +0 -100
  18. package/dist/cjs/JaypieMongoDbSecret.d.ts +0 -5
  19. package/dist/cjs/JaypieNextJs.d.ts +0 -18
  20. package/dist/cjs/JaypieNextJs.test.d.ts +0 -1
  21. package/dist/cjs/JaypieOpenAiSecret.d.ts +0 -5
  22. package/dist/cjs/JaypieOrganizationTrail.d.ts +0 -62
  23. package/dist/cjs/JaypieQueuedLambda.d.ts +0 -73
  24. package/dist/cjs/JaypieSsoPermissions.d.ts +0 -96
  25. package/dist/cjs/JaypieSsoSyncApplication.d.ts +0 -27
  26. package/dist/cjs/JaypieStack.d.ts +0 -8
  27. package/dist/cjs/JaypieStaticWebBucket.d.ts +0 -22
  28. package/dist/cjs/JaypieTraceSigningKeySecret.d.ts +0 -5
  29. package/dist/cjs/JaypieWebDeploymentBucket.d.ts +0 -84
  30. package/dist/cjs/__tests__/JaypieBucketQueuedLambda.spec.d.ts +0 -1
  31. package/dist/cjs/__tests__/JaypieDistribution.spec.d.ts +0 -1
  32. package/dist/cjs/__tests__/JaypieDnsRecord.spec.d.ts +0 -1
  33. package/dist/cjs/__tests__/JaypieEnvSecret.spec.d.ts +0 -1
  34. package/dist/cjs/__tests__/JaypieExpressLambda.spec.d.ts +0 -1
  35. package/dist/cjs/__tests__/JaypieHostedZone.spec.d.ts +0 -1
  36. package/dist/cjs/__tests__/JaypieLambda.spec.d.ts +0 -1
  37. package/dist/cjs/__tests__/JaypieQueuedLambda.spec.d.ts +0 -1
  38. package/dist/cjs/__tests__/JaypieSsoPermissions.spec.d.ts +0 -1
  39. package/dist/cjs/__tests__/JaypieSsoSyncApplication.spec.d.ts +0 -1
  40. package/dist/cjs/__tests__/JaypieStaticWebBucket.spec.d.ts +0 -1
  41. package/dist/cjs/__tests__/index.spec.d.ts +0 -1
  42. package/dist/cjs/constants.d.ts +0 -151
  43. package/dist/cjs/helpers/__tests__/envHostname.spec.d.ts +0 -1
  44. package/dist/cjs/helpers/__tests__/jaypieLambdaEnv.spec.d.ts +0 -1
  45. package/dist/cjs/helpers/__tests__/resolveDatadogForwarderFunction.spec.d.ts +0 -1
  46. package/dist/cjs/helpers/__tests__/resolveDatadogLoggingDestination.spec.d.ts +0 -1
  47. package/dist/cjs/helpers/addDatadogLayers.d.ts +0 -5
  48. package/dist/cjs/helpers/constructEnvName.d.ts +0 -5
  49. package/dist/cjs/helpers/constructStackName.d.ts +0 -1
  50. package/dist/cjs/helpers/constructTagger.d.ts +0 -4
  51. package/dist/cjs/helpers/envHostname.d.ts +0 -6
  52. package/dist/cjs/helpers/extendDatadogRole.d.ts +0 -31
  53. package/dist/cjs/helpers/index.d.ts +0 -16
  54. package/dist/cjs/helpers/isEnv.d.ts +0 -12
  55. package/dist/cjs/helpers/isValidHostname.d.ts +0 -1
  56. package/dist/cjs/helpers/isValidSubdomain.d.ts +0 -1
  57. package/dist/cjs/helpers/jaypieLambdaEnv.d.ts +0 -8
  58. package/dist/cjs/helpers/mergeDomain.d.ts +0 -1
  59. package/dist/cjs/helpers/resolveDatadogForwarderFunction.d.ts +0 -7
  60. package/dist/cjs/helpers/resolveDatadogLayers.d.ts +0 -7
  61. package/dist/cjs/helpers/resolveDatadogLoggingDestination.d.ts +0 -4
  62. package/dist/cjs/helpers/resolveHostedZone.d.ts +0 -6
  63. package/dist/cjs/helpers/resolveParamsAndSecrets.d.ts +0 -13
  64. package/dist/cjs/index.cjs +0 -3322
  65. package/dist/cjs/index.cjs.map +0 -1
  66. package/dist/cjs/index.d.ts +0 -29
  67. package/dist/esm/JaypieAccountLoggingBucket.d.ts +0 -60
  68. package/dist/esm/JaypieApiGateway.d.ts +0 -47
  69. package/dist/esm/JaypieAppStack.d.ts +0 -5
  70. package/dist/esm/JaypieBucketQueuedLambda.d.ts +0 -48
  71. package/dist/esm/JaypieDatadogBucket.d.ts +0 -55
  72. package/dist/esm/JaypieDatadogForwarder.d.ts +0 -76
  73. package/dist/esm/JaypieDatadogSecret.d.ts +0 -5
  74. package/dist/esm/JaypieDistribution.d.ts +0 -76
  75. package/dist/esm/JaypieDnsRecord.d.ts +0 -45
  76. package/dist/esm/JaypieEnvSecret.d.ts +0 -40
  77. package/dist/esm/JaypieEventsRule.d.ts +0 -45
  78. package/dist/esm/JaypieExpressLambda.d.ts +0 -5
  79. package/dist/esm/JaypieGitHubDeployRole.d.ts +0 -14
  80. package/dist/esm/JaypieHostedZone.d.ts +0 -59
  81. package/dist/esm/JaypieInfrastructureStack.d.ts +0 -5
  82. package/dist/esm/JaypieLambda.d.ts +0 -100
  83. package/dist/esm/JaypieMongoDbSecret.d.ts +0 -5
  84. package/dist/esm/JaypieNextJs.d.ts +0 -18
  85. package/dist/esm/JaypieNextJs.test.d.ts +0 -1
  86. package/dist/esm/JaypieOpenAiSecret.d.ts +0 -5
  87. package/dist/esm/JaypieOrganizationTrail.d.ts +0 -62
  88. package/dist/esm/JaypieQueuedLambda.d.ts +0 -73
  89. package/dist/esm/JaypieSsoPermissions.d.ts +0 -96
  90. package/dist/esm/JaypieSsoSyncApplication.d.ts +0 -27
  91. package/dist/esm/JaypieStack.d.ts +0 -8
  92. package/dist/esm/JaypieStaticWebBucket.d.ts +0 -22
  93. package/dist/esm/JaypieTraceSigningKeySecret.d.ts +0 -5
  94. package/dist/esm/JaypieWebDeploymentBucket.d.ts +0 -84
  95. package/dist/esm/__tests__/JaypieBucketQueuedLambda.spec.d.ts +0 -1
  96. package/dist/esm/__tests__/JaypieDistribution.spec.d.ts +0 -1
  97. package/dist/esm/__tests__/JaypieDnsRecord.spec.d.ts +0 -1
  98. package/dist/esm/__tests__/JaypieEnvSecret.spec.d.ts +0 -1
  99. package/dist/esm/__tests__/JaypieExpressLambda.spec.d.ts +0 -1
  100. package/dist/esm/__tests__/JaypieHostedZone.spec.d.ts +0 -1
  101. package/dist/esm/__tests__/JaypieLambda.spec.d.ts +0 -1
  102. package/dist/esm/__tests__/JaypieQueuedLambda.spec.d.ts +0 -1
  103. package/dist/esm/__tests__/JaypieSsoPermissions.spec.d.ts +0 -1
  104. package/dist/esm/__tests__/JaypieSsoSyncApplication.spec.d.ts +0 -1
  105. package/dist/esm/__tests__/JaypieStaticWebBucket.spec.d.ts +0 -1
  106. package/dist/esm/__tests__/index.spec.d.ts +0 -1
  107. package/dist/esm/constants.d.ts +0 -151
  108. package/dist/esm/helpers/__tests__/envHostname.spec.d.ts +0 -1
  109. package/dist/esm/helpers/__tests__/jaypieLambdaEnv.spec.d.ts +0 -1
  110. package/dist/esm/helpers/__tests__/resolveDatadogForwarderFunction.spec.d.ts +0 -1
  111. package/dist/esm/helpers/__tests__/resolveDatadogLoggingDestination.spec.d.ts +0 -1
  112. package/dist/esm/helpers/addDatadogLayers.d.ts +0 -5
  113. package/dist/esm/helpers/constructEnvName.d.ts +0 -5
  114. package/dist/esm/helpers/constructStackName.d.ts +0 -1
  115. package/dist/esm/helpers/constructTagger.d.ts +0 -4
  116. package/dist/esm/helpers/envHostname.d.ts +0 -6
  117. package/dist/esm/helpers/extendDatadogRole.d.ts +0 -31
  118. package/dist/esm/helpers/index.d.ts +0 -16
  119. package/dist/esm/helpers/isEnv.d.ts +0 -12
  120. package/dist/esm/helpers/isValidHostname.d.ts +0 -1
  121. package/dist/esm/helpers/isValidSubdomain.d.ts +0 -1
  122. package/dist/esm/helpers/jaypieLambdaEnv.d.ts +0 -8
  123. package/dist/esm/helpers/mergeDomain.d.ts +0 -1
  124. package/dist/esm/helpers/resolveDatadogForwarderFunction.d.ts +0 -7
  125. package/dist/esm/helpers/resolveDatadogLayers.d.ts +0 -7
  126. package/dist/esm/helpers/resolveDatadogLoggingDestination.d.ts +0 -4
  127. package/dist/esm/helpers/resolveHostedZone.d.ts +0 -6
  128. package/dist/esm/helpers/resolveParamsAndSecrets.d.ts +0 -13
  129. package/dist/esm/index.d.ts +0 -29
  130. package/dist/esm/index.js +0 -3246
  131. package/dist/esm/index.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jaypie/constructs",
3
- "version": "1.1.63",
3
+ "version": "1.1.65",
4
4
  "description": "CDK constructs for Jaypie applications",
5
5
  "repository": {
6
6
  "type": "git",
@@ -32,10 +32,10 @@
32
32
  },
33
33
  "dependencies": {
34
34
  "@jaypie/errors": "^1.1.6",
35
- "aws-cdk-lib": "^2.216.0",
36
- "cdk-nextjs-standalone": "^4.3.0",
37
- "constructs": "^10.4.2",
38
- "datadog-cdk-constructs-v2": "^3.2.0"
35
+ "aws-cdk-lib": "^2.232.1",
36
+ "cdk-nextjs-standalone": "^4.3.2",
37
+ "constructs": "^10.4.3",
38
+ "datadog-cdk-constructs-v2": "^3.4.0"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@rollup/plugin-typescript": "^12.1.2",
@@ -53,5 +53,5 @@
53
53
  "publishConfig": {
54
54
  "access": "public"
55
55
  },
56
- "gitHead": "45fe048c6687a807ed52bbc0b25963f45450f9c9"
56
+ "gitHead": "4d7923a62bc29f1030b556b34ed90288a574ca31"
57
57
  }
@@ -1,60 +0,0 @@
1
- import { BucketProps, IBucket } from "aws-cdk-lib/aws-s3";
2
- import { Construct } from "constructs";
3
- export interface JaypieAccountLoggingBucketProps extends BucketProps {
4
- /**
5
- * Optional construct ID
6
- * @default "AccountLoggingBucket"
7
- */
8
- id?: string;
9
- /**
10
- * Bucket name
11
- * @default `account-logging-stack-${PROJECT_NONCE}`
12
- */
13
- bucketName?: string;
14
- /**
15
- * The service tag value
16
- * @default CDK.SERVICE.INFRASTRUCTURE
17
- */
18
- service?: string;
19
- /**
20
- * Optional project tag value
21
- */
22
- project?: string;
23
- /**
24
- * Number of days before logs expire
25
- * @default 365
26
- */
27
- expirationDays?: number;
28
- /**
29
- * Number of days before transitioning to INFREQUENT_ACCESS storage
30
- * @default 30
31
- */
32
- infrequentAccessTransitionDays?: number;
33
- /**
34
- * Number of days before transitioning to GLACIER storage
35
- * @default 180
36
- */
37
- glacierTransitionDays?: number;
38
- /**
39
- * Whether to create CloudFormation output for bucket name
40
- * @default true
41
- */
42
- createOutput?: boolean;
43
- /**
44
- * Custom export name for the bucket name output
45
- * @default CDK.IMPORT.LOG_BUCKET
46
- */
47
- exportName?: string;
48
- /**
49
- * Description for the CloudFormation output
50
- * @default "Account-wide logging bucket"
51
- */
52
- outputDescription?: string;
53
- }
54
- export declare class JaypieAccountLoggingBucket extends Construct {
55
- readonly bucket: IBucket;
56
- /**
57
- * Create a new account-wide logging S3 bucket with lifecycle policies and export
58
- */
59
- constructor(scope: Construct, idOrProps?: string | JaypieAccountLoggingBucketProps, propsOrUndefined?: JaypieAccountLoggingBucketProps);
60
- }
@@ -1,47 +0,0 @@
1
- import { Construct } from "constructs";
2
- import { RemovalPolicy, Stack } from "aws-cdk-lib";
3
- import * as acm from "aws-cdk-lib/aws-certificatemanager";
4
- import * as apiGateway from "aws-cdk-lib/aws-apigateway";
5
- import * as route53 from "aws-cdk-lib/aws-route53";
6
- export interface JaypieApiGatewayProps extends apiGateway.LambdaRestApiProps {
7
- certificate?: boolean | acm.ICertificate;
8
- host?: string;
9
- name?: string;
10
- roleTag?: string;
11
- zone?: string | route53.IHostedZone;
12
- }
13
- export declare class JaypieApiGateway extends Construct implements apiGateway.IRestApi {
14
- private readonly _api;
15
- private readonly _certificate?;
16
- private readonly _domainName?;
17
- private readonly _host?;
18
- constructor(scope: Construct, id: string, props: JaypieApiGatewayProps);
19
- get api(): apiGateway.LambdaRestApi;
20
- get url(): string;
21
- get certificateArn(): string | undefined;
22
- get domainName(): string | undefined;
23
- get host(): string | undefined;
24
- get restApiId(): string;
25
- get restApiName(): string;
26
- get restApiRootResourceId(): string;
27
- get deploymentStage(): apiGateway.Stage;
28
- get domainNameAliasDomainName(): string | undefined;
29
- get domainNameAliasHostedZoneId(): string | undefined;
30
- get root(): apiGateway.IResource;
31
- get env(): {
32
- account: string;
33
- region: string;
34
- };
35
- get stack(): Stack;
36
- arnForExecuteApi(method?: string, path?: string, stage?: string): string;
37
- metric(metricName: string, props?: import("aws-cdk-lib/aws-cloudwatch").MetricOptions): import("aws-cdk-lib/aws-cloudwatch").Metric;
38
- metricCacheHitCount(props?: import("aws-cdk-lib/aws-cloudwatch").MetricOptions): import("aws-cdk-lib/aws-cloudwatch").Metric;
39
- metricCacheMissCount(props?: import("aws-cdk-lib/aws-cloudwatch").MetricOptions): import("aws-cdk-lib/aws-cloudwatch").Metric;
40
- metricClientError(props?: import("aws-cdk-lib/aws-cloudwatch").MetricOptions): import("aws-cdk-lib/aws-cloudwatch").Metric;
41
- metricCount(props?: import("aws-cdk-lib/aws-cloudwatch").MetricOptions): import("aws-cdk-lib/aws-cloudwatch").Metric;
42
- metricIntegrationLatency(props?: import("aws-cdk-lib/aws-cloudwatch").MetricOptions): import("aws-cdk-lib/aws-cloudwatch").Metric;
43
- metricLatency(props?: import("aws-cdk-lib/aws-cloudwatch").MetricOptions): import("aws-cdk-lib/aws-cloudwatch").Metric;
44
- metricServerError(props?: import("aws-cdk-lib/aws-cloudwatch").MetricOptions): import("aws-cdk-lib/aws-cloudwatch").Metric;
45
- applyRemovalPolicy(policy: RemovalPolicy): void;
46
- get restApiRef(): apiGateway.RestApiReference;
47
- }
@@ -1,5 +0,0 @@
1
- import { Construct } from "constructs";
2
- import { JaypieStack, JaypieStackProps } from "./JaypieStack";
3
- export declare class JaypieAppStack extends JaypieStack {
4
- constructor(scope: Construct, id: string, props?: JaypieStackProps);
5
- }
@@ -1,48 +0,0 @@
1
- import { Construct } from "constructs";
2
- import { RemovalPolicy } from "aws-cdk-lib";
3
- import * as s3 from "aws-cdk-lib/aws-s3";
4
- import * as iam from "aws-cdk-lib/aws-iam";
5
- import { JaypieQueuedLambda, JaypieQueuedLambdaProps } from "./JaypieQueuedLambda.js";
6
- export interface JaypieBucketQueuedLambdaProps extends JaypieQueuedLambdaProps {
7
- bucketName?: string;
8
- bucketOptions?: s3.BucketProps;
9
- }
10
- export declare class JaypieBucketQueuedLambda extends JaypieQueuedLambda implements s3.IBucket {
11
- private readonly _bucket;
12
- constructor(scope: Construct, id: string, props: JaypieBucketQueuedLambdaProps);
13
- get bucket(): s3.Bucket;
14
- get bucketArn(): string;
15
- get bucketDomainName(): string;
16
- get bucketDualStackDomainName(): string;
17
- get bucketName(): string;
18
- get bucketRegionalDomainName(): string;
19
- get bucketWebsiteDomainName(): string;
20
- get bucketWebsiteUrl(): string;
21
- get encryptionKey(): undefined | import("aws-cdk-lib/aws-kms").IKey;
22
- get isWebsite(): boolean;
23
- get policy(): s3.BucketPolicy | undefined;
24
- addEventNotification(event: s3.EventType, dest: s3.IBucketNotificationDestination, ...filters: s3.NotificationKeyFilter[]): void;
25
- addObjectCreatedNotification(dest: s3.IBucketNotificationDestination, ...filters: s3.NotificationKeyFilter[]): void;
26
- addObjectRemovedNotification(dest: s3.IBucketNotificationDestination, ...filters: s3.NotificationKeyFilter[]): void;
27
- addToResourcePolicy(permission: iam.PolicyStatement): iam.AddToResourcePolicyResult;
28
- arnForObjects(objectKeyPattern: string): string;
29
- enableEventBridgeNotification(): void;
30
- grantDelete(grantee: iam.IGrantable, objectsKeyPattern?: any): iam.Grant;
31
- grantPublicAccess(keyPrefix?: string, ...allowedActions: string[]): iam.Grant;
32
- grantPut(grantee: iam.IGrantable, objectsKeyPattern?: any): iam.Grant;
33
- grantPutAcl(grantee: iam.IGrantable, objectsKeyPattern?: string): iam.Grant;
34
- grantRead(grantee: iam.IGrantable, objectsKeyPattern?: any): iam.Grant;
35
- grantReadWrite(grantee: iam.IGrantable, objectsKeyPattern?: any): iam.Grant;
36
- grantWrite(grantee: iam.IGrantable, objectsKeyPattern?: any): iam.Grant;
37
- onCloudTrailEvent(id: string, options?: s3.OnCloudTrailBucketEventOptions): import("aws-cdk-lib/aws-events").Rule;
38
- onCloudTrailPutObject(id: string, options?: s3.OnCloudTrailBucketEventOptions): import("aws-cdk-lib/aws-events").Rule;
39
- onCloudTrailWriteObject(id: string, options?: s3.OnCloudTrailBucketEventOptions): import("aws-cdk-lib/aws-events").Rule;
40
- s3UrlForObject(key?: string): string;
41
- transferAccelerationUrlForObject(key?: string, options?: s3.TransferAccelerationUrlOptions): string;
42
- urlForObject(key?: string): string;
43
- virtualHostedUrlForObject(key?: string, options?: s3.VirtualHostedStyleUrlOptions): string;
44
- grantReplicationPermission(identity: iam.IGrantable, props: any): iam.Grant;
45
- addReplicationPolicy(policy: any): void;
46
- get bucketRef(): s3.BucketReference;
47
- applyRemovalPolicy(policy: RemovalPolicy): void;
48
- }
@@ -1,55 +0,0 @@
1
- import { Policy } from "aws-cdk-lib/aws-iam";
2
- import { BucketProps, IBucket } from "aws-cdk-lib/aws-s3";
3
- import { Construct } from "constructs";
4
- export interface JaypieDatadogBucketProps extends BucketProps {
5
- /**
6
- * Optional construct ID
7
- * @default "JaypieDatadogBucket"
8
- */
9
- id?: string;
10
- /**
11
- * The scope to use when creating the S3 bucket
12
- * @default this (the construct itself)
13
- */
14
- bucketScope?: Construct;
15
- /**
16
- * The ID to use for the S3 bucket construct
17
- * @default "DatadogArchiveBucket"
18
- */
19
- bucketId?: string;
20
- /**
21
- * The service tag value
22
- * @default CDK.SERVICE.DATADOG
23
- */
24
- service?: string;
25
- /**
26
- * Optional project tag value
27
- */
28
- project?: string;
29
- /**
30
- * Whether to grant Datadog role access to this bucket
31
- * Uses CDK_ENV_DATADOG_ROLE_ARN if set
32
- * @default true
33
- */
34
- grantDatadogAccess?: boolean;
35
- }
36
- export declare class JaypieDatadogBucket extends Construct {
37
- readonly bucket: IBucket;
38
- readonly policy?: Policy;
39
- /**
40
- * Create a new S3 bucket for Datadog log archiving with automatic IAM permissions
41
- */
42
- constructor(scope: Construct, idOrProps?: string | JaypieDatadogBucketProps, propsOrUndefined?: JaypieDatadogBucketProps);
43
- /**
44
- * Grants the Datadog IAM role access to this bucket
45
- *
46
- * Checks for CDK_ENV_DATADOG_ROLE_ARN environment variable.
47
- * If found, creates a custom policy with:
48
- * - s3:ListBucket on bucket
49
- * - s3:GetObject and s3:PutObject on bucket/*
50
- *
51
- * @param options - Configuration options
52
- * @returns The created Policy, or undefined if CDK_ENV_DATADOG_ROLE_ARN is not set
53
- */
54
- private grantDatadogRoleBucketAccess;
55
- }
@@ -1,76 +0,0 @@
1
- import { CfnStack } from "aws-cdk-lib";
2
- import { Rule } from "aws-cdk-lib/aws-events";
3
- import { IFunction } from "aws-cdk-lib/aws-lambda";
4
- import { Construct } from "constructs";
5
- export interface JaypieDatadogForwarderProps {
6
- /**
7
- * Optional construct ID
8
- * @default "DatadogForwarder"
9
- */
10
- id?: string;
11
- /**
12
- * Datadog API key
13
- * @default process.env.CDK_ENV_DATADOG_API_KEY
14
- */
15
- datadogApiKey?: string;
16
- /**
17
- * Account identifier for Datadog tags
18
- * @default process.env.CDK_ENV_ACCOUNT
19
- */
20
- account?: string;
21
- /**
22
- * Reserved concurrency for the forwarder Lambda
23
- * Must be a string as required by the CloudFormation template
24
- * @default "10"
25
- */
26
- reservedConcurrency?: string;
27
- /**
28
- * Additional Datadog tags (comma-separated)
29
- * Will be appended to account tag
30
- */
31
- additionalTags?: string;
32
- /**
33
- * The service tag value
34
- * @default CDK.VENDOR.DATADOG
35
- */
36
- service?: string;
37
- /**
38
- * Optional project tag value
39
- */
40
- project?: string;
41
- /**
42
- * Whether to create CloudFormation events rule
43
- * @default true
44
- */
45
- enableCloudFormationEvents?: boolean;
46
- /**
47
- * Whether to extend Datadog role with custom permissions
48
- * Uses CDK_ENV_DATADOG_ROLE_ARN if set
49
- * @default true
50
- */
51
- enableRoleExtension?: boolean;
52
- /**
53
- * Whether to create CloudFormation output for forwarder ARN
54
- * @default true
55
- */
56
- createOutput?: boolean;
57
- /**
58
- * Custom export name for the forwarder ARN output
59
- * @default CDK.IMPORT.DATADOG_LOG_FORWARDER
60
- */
61
- exportName?: string;
62
- /**
63
- * URL to Datadog forwarder CloudFormation template
64
- * @default "https://datadog-cloudformation-template.s3.amazonaws.com/aws/forwarder/latest.yaml"
65
- */
66
- templateUrl?: string;
67
- }
68
- export declare class JaypieDatadogForwarder extends Construct {
69
- readonly cfnStack: CfnStack;
70
- readonly forwarderFunction: IFunction;
71
- readonly eventsRule?: Rule;
72
- /**
73
- * Create a new Datadog forwarder with CloudFormation nested stack
74
- */
75
- constructor(scope: Construct, idOrProps?: string | JaypieDatadogForwarderProps, propsOrUndefined?: JaypieDatadogForwarderProps);
76
- }
@@ -1,5 +0,0 @@
1
- import { Construct } from "constructs";
2
- import { JaypieEnvSecret, JaypieEnvSecretProps } from "./JaypieEnvSecret";
3
- export declare class JaypieDatadogSecret extends JaypieEnvSecret {
4
- constructor(scope: Construct, id?: string, props?: JaypieEnvSecretProps);
5
- }
@@ -1,76 +0,0 @@
1
- import { RemovalPolicy, Stack } 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 * as lambda from "aws-cdk-lib/aws-lambda";
5
- import * as route53 from "aws-cdk-lib/aws-route53";
6
- import * as s3 from "aws-cdk-lib/aws-s3";
7
- import { LambdaDestination } from "aws-cdk-lib/aws-s3-notifications";
8
- import { Construct } from "constructs";
9
- export interface JaypieDistributionProps extends Omit<cloudfront.DistributionProps, "certificate" | "defaultBehavior"> {
10
- /**
11
- * SSL certificate for the CloudFront distribution
12
- * @default true (creates a new certificate)
13
- */
14
- certificate?: boolean | acm.ICertificate;
15
- /**
16
- * Override default behavior (optional if handler is provided)
17
- */
18
- defaultBehavior?: cloudfront.BehaviorOptions;
19
- /**
20
- * Log destination configuration for CloudFront access logs
21
- * - LambdaDestination: Use a specific Lambda destination for S3 notifications
22
- * - true: Use Datadog forwarder for S3 notifications (default)
23
- * - false: Disable logging entirely
24
- * @default true
25
- */
26
- destination?: LambdaDestination | boolean;
27
- /**
28
- * The origin handler - can be an IOrigin, IFunctionUrl, or IFunction
29
- * If IFunction, a FunctionUrl will be created with auth NONE
30
- */
31
- handler?: cloudfront.IOrigin | lambda.IFunctionUrl | lambda.IFunction;
32
- /**
33
- * The domain name for the distribution
34
- * @default mergeDomain(CDK_ENV_API_SUBDOMAIN, CDK_ENV_API_HOSTED_ZONE || CDK_ENV_HOSTED_ZONE)
35
- */
36
- host?: string;
37
- /**
38
- * Invoke mode for Lambda Function URLs
39
- * @default InvokeMode.BUFFERED
40
- */
41
- invokeMode?: lambda.InvokeMode;
42
- /**
43
- * Role tag for tagging resources
44
- * @default CDK.ROLE.HOSTING
45
- */
46
- roleTag?: string;
47
- /**
48
- * The hosted zone for DNS records
49
- * @default CDK_ENV_API_HOSTED_ZONE || CDK_ENV_HOSTED_ZONE
50
- */
51
- zone?: string | route53.IHostedZone;
52
- }
53
- export declare class JaypieDistribution extends Construct implements cloudfront.IDistribution {
54
- readonly certificate?: acm.ICertificate;
55
- readonly distribution: cloudfront.Distribution;
56
- readonly distributionArn: string;
57
- readonly distributionDomainName: string;
58
- readonly distributionId: string;
59
- readonly domainName: string;
60
- readonly functionUrl?: lambda.FunctionUrl;
61
- readonly host?: string;
62
- readonly logBucket?: s3.IBucket;
63
- constructor(scope: Construct, id: string, props: JaypieDistributionProps);
64
- private isIOrigin;
65
- private isIFunctionUrl;
66
- private isIFunction;
67
- get env(): {
68
- account: string;
69
- region: string;
70
- };
71
- get stack(): Stack;
72
- applyRemovalPolicy(policy: RemovalPolicy): void;
73
- grant(identity: import("aws-cdk-lib/aws-iam").IGrantable, ...actions: string[]): import("aws-cdk-lib/aws-iam").Grant;
74
- grantCreateInvalidation(identity: import("aws-cdk-lib/aws-iam").IGrantable): import("aws-cdk-lib/aws-iam").Grant;
75
- get distributionRef(): cloudfront.DistributionReference;
76
- }
@@ -1,45 +0,0 @@
1
- import * as cdk from "aws-cdk-lib";
2
- import { ARecord, CnameRecord, IHostedZone, MxRecord, NsRecord, TxtRecord } from "aws-cdk-lib/aws-route53";
3
- import { Construct } from "constructs";
4
- export interface JaypieDnsRecordProps {
5
- /**
6
- * Optional comment to add to the DNS record
7
- */
8
- comment?: string;
9
- /**
10
- * Optional record name (subdomain). If not provided, creates record at zone apex
11
- */
12
- recordName?: string;
13
- /**
14
- * Time to live for the DNS record
15
- * @default CDK.DNS.CONFIG.TTL (5 minutes)
16
- */
17
- ttl?: cdk.Duration;
18
- /**
19
- * The DNS record type (A, CNAME, MX, NS, TXT)
20
- */
21
- type: string;
22
- /**
23
- * Values for the DNS record. Format depends on record type:
24
- * - A: Array of IPv4 addresses (e.g., ["1.2.3.4", "5.6.7.8"])
25
- * - CNAME: Single domain name as first element (e.g., ["example.com"])
26
- * - MX: Array of objects with priority and hostName (e.g., [{priority: 10, hostName: "mail.example.com"}])
27
- * - NS: Array of name server addresses (e.g., ["ns1.example.com", "ns2.example.com"])
28
- * - TXT: Array of text values (e.g., ["v=spf1 include:example.com ~all"])
29
- */
30
- values: string[] | Array<{
31
- hostName: string;
32
- priority: number;
33
- }>;
34
- /**
35
- * The hosted zone where the record will be created.
36
- * Can be either:
37
- * - A string (zone name) - will lookup the hosted zone by domain name
38
- * - An IHostedZone object - will use the provided zone directly
39
- */
40
- zone: string | IHostedZone;
41
- }
42
- export declare class JaypieDnsRecord extends Construct {
43
- readonly record: ARecord | CnameRecord | MxRecord | NsRecord | TxtRecord;
44
- constructor(scope: Construct, id: string, props: JaypieDnsRecordProps);
45
- }
@@ -1,40 +0,0 @@
1
- import { Construct } from "constructs";
2
- import { SecretValue, RemovalPolicy, Stack } from "aws-cdk-lib";
3
- import * as secretsmanager from "aws-cdk-lib/aws-secretsmanager";
4
- import { ISecret, ISecretAttachmentTarget, RotationSchedule, RotationScheduleOptions } from "aws-cdk-lib/aws-secretsmanager";
5
- import { IKey } from "aws-cdk-lib/aws-kms";
6
- import { Grant, IGrantable, PolicyStatement, AddToResourcePolicyResult } from "aws-cdk-lib/aws-iam";
7
- export interface JaypieEnvSecretProps {
8
- consumer?: boolean;
9
- envKey?: string;
10
- export?: string;
11
- generateSecretString?: secretsmanager.SecretStringGenerator;
12
- provider?: boolean;
13
- roleTag?: string;
14
- vendorTag?: string;
15
- value?: string;
16
- }
17
- export declare class JaypieEnvSecret extends Construct implements ISecret {
18
- private readonly _envKey?;
19
- private readonly _secret;
20
- constructor(scope: Construct, idOrEnvKey: string, props?: JaypieEnvSecretProps);
21
- get stack(): Stack;
22
- get env(): {
23
- account: string;
24
- region: string;
25
- };
26
- applyRemovalPolicy(policy: RemovalPolicy): void;
27
- get secretArn(): string;
28
- get secretName(): string;
29
- get secretFullArn(): string | undefined;
30
- get encryptionKey(): IKey | undefined;
31
- get secretValue(): SecretValue;
32
- secretValueFromJson(key: string): SecretValue;
33
- grantRead(grantee: IGrantable, versionStages?: string[]): Grant;
34
- grantWrite(grantee: IGrantable): Grant;
35
- addRotationSchedule(id: string, options: RotationScheduleOptions): RotationSchedule;
36
- addToResourcePolicy(statement: PolicyStatement): AddToResourcePolicyResult;
37
- denyAccountRootDelete(): void;
38
- attach(target: ISecretAttachmentTarget): ISecret;
39
- get envKey(): string | undefined;
40
- }
@@ -1,45 +0,0 @@
1
- import { Rule, RuleProps } from "aws-cdk-lib/aws-events";
2
- import { IFunction } from "aws-cdk-lib/aws-lambda";
3
- import { Construct } from "constructs";
4
- export interface JaypieEventsRuleProps extends Omit<RuleProps, "targets"> {
5
- /**
6
- * Optional construct ID
7
- * @default Generated from source or "EventsRule"
8
- */
9
- id?: string;
10
- /**
11
- * Event source(s) to match
12
- * @default undefined
13
- */
14
- source?: string | string[];
15
- /**
16
- * Lambda function to target
17
- * Can be:
18
- * - An IFunction instance
19
- * - undefined (will resolve Datadog forwarder)
20
- * @default Resolves Datadog forwarder via resolveDatadogForwarderFunction
21
- */
22
- targetFunction?: IFunction;
23
- /**
24
- * The service tag value
25
- * @default CDK.SERVICE.DATADOG
26
- */
27
- service?: string;
28
- /**
29
- * The vendor tag value
30
- * @default CDK.VENDOR.DATADOG
31
- */
32
- vendor?: string;
33
- /**
34
- * Optional project tag value
35
- */
36
- project?: string;
37
- }
38
- export declare class JaypieEventsRule extends Construct {
39
- readonly rule: Rule;
40
- readonly targetFunction: IFunction;
41
- /**
42
- * Create a new EventBridge rule that targets a Lambda function
43
- */
44
- constructor(scope: Construct, idOrSourceOrProps?: string | JaypieEventsRuleProps, propsOrUndefined?: JaypieEventsRuleProps);
45
- }
@@ -1,5 +0,0 @@
1
- import { Construct } from "constructs";
2
- import { JaypieLambda, JaypieLambdaProps } from "./JaypieLambda.js";
3
- export declare class JaypieExpressLambda extends JaypieLambda {
4
- constructor(scope: Construct, id: string, props: JaypieLambdaProps);
5
- }
@@ -1,14 +0,0 @@
1
- import { Role } from "aws-cdk-lib/aws-iam";
2
- import { Construct } from "constructs";
3
- export interface JaypieGitHubDeployRoleProps {
4
- oidcProviderArn?: string;
5
- output?: boolean | string;
6
- repoRestriction?: string;
7
- }
8
- export declare class JaypieGitHubDeployRole extends Construct {
9
- private readonly _role;
10
- constructor(scope: Construct, id?: string, props?: JaypieGitHubDeployRoleProps);
11
- get role(): Role;
12
- get roleArn(): string;
13
- get roleName(): string;
14
- }
@@ -1,59 +0,0 @@
1
- import { ILogGroup } from "aws-cdk-lib/aws-logs";
2
- import { LambdaDestination } from "aws-cdk-lib/aws-logs-destinations";
3
- import { IHostedZone } from "aws-cdk-lib/aws-route53";
4
- import { Construct } from "constructs";
5
- import { JaypieDnsRecord, JaypieDnsRecordProps } from "./JaypieDnsRecord";
6
- /**
7
- * DNS record configuration for JaypieHostedZone
8
- * Omits 'zone' since it will be automatically set to the created hosted zone
9
- */
10
- export interface JaypieHostedZoneRecordProps extends Omit<JaypieDnsRecordProps, "zone"> {
11
- /**
12
- * Optional ID for the DNS record construct
13
- * @default Generated from record type and name
14
- */
15
- id?: string;
16
- }
17
- interface JaypieHostedZoneProps {
18
- /**
19
- * Optional construct ID
20
- * @default `${zoneName}-HostedZone`
21
- */
22
- id?: string;
23
- /**
24
- * The domain name for the hosted zone
25
- */
26
- zoneName: string;
27
- /**
28
- * The service tag value
29
- * @default CDK.SERVICE.INFRASTRUCTURE
30
- */
31
- service?: string;
32
- /**
33
- * Optional project tag value
34
- */
35
- project?: string;
36
- /**
37
- * Log destination configuration
38
- * - LambdaDestination: Use a specific Lambda destination
39
- * - true: Use Datadog logging destination (default)
40
- * - false: Do not use a destination
41
- * @default true
42
- */
43
- destination?: LambdaDestination | boolean;
44
- /**
45
- * Optional DNS records to create for this hosted zone
46
- * Each record will be created as a JaypieDnsRecord construct
47
- */
48
- records?: JaypieHostedZoneRecordProps[];
49
- }
50
- export declare class JaypieHostedZone extends Construct {
51
- readonly hostedZone: IHostedZone;
52
- readonly logGroup: ILogGroup;
53
- readonly dnsRecords: JaypieDnsRecord[];
54
- /**
55
- * Create a new hosted zone with query logging and optional DNS records
56
- */
57
- constructor(scope: Construct, idOrProps: string | JaypieHostedZoneProps, propsOrRecords?: JaypieHostedZoneProps | JaypieHostedZoneRecordProps[]);
58
- }
59
- export {};
@@ -1,5 +0,0 @@
1
- import { Construct } from "constructs";
2
- import { JaypieStack, JaypieStackProps } from "./JaypieStack";
3
- export declare class JaypieInfrastructureStack extends JaypieStack {
4
- constructor(scope: Construct, id: string, props?: JaypieStackProps);
5
- }