cdk-certbot-dns-route53 2.3.1 → 2.4.1

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/.jsii CHANGED
@@ -7,7 +7,8 @@
7
7
  ]
8
8
  },
9
9
  "dependencies": {
10
- "aws-cdk-lib": "^2.110.0",
10
+ "@aws-cdk/aws-lambda-python-alpha": "2.115.0-alpha.0",
11
+ "aws-cdk-lib": "^2.115.0",
11
12
  "constructs": "^10.0.5"
12
13
  },
13
14
  "dependencyClosure": {
@@ -89,6 +90,37 @@
89
90
  }
90
91
  }
91
92
  },
93
+ "@aws-cdk/aws-lambda-python-alpha": {
94
+ "targets": {
95
+ "dotnet": {
96
+ "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/main/logo/default-256-dark.png",
97
+ "namespace": "Amazon.CDK.AWS.Lambda.Python.Alpha",
98
+ "packageId": "Amazon.CDK.AWS.Lambda.Python.Alpha"
99
+ },
100
+ "go": {
101
+ "moduleName": "github.com/aws/aws-cdk-go",
102
+ "packageName": "awscdklambdapythonalpha"
103
+ },
104
+ "java": {
105
+ "maven": {
106
+ "artifactId": "lambda-python-alpha",
107
+ "groupId": "software.amazon.awscdk"
108
+ },
109
+ "package": "software.amazon.awscdk.services.lambda.python.alpha"
110
+ },
111
+ "js": {
112
+ "npm": "@aws-cdk/aws-lambda-python-alpha"
113
+ },
114
+ "python": {
115
+ "classifiers": [
116
+ "Framework :: AWS CDK",
117
+ "Framework :: AWS CDK :: 2"
118
+ ],
119
+ "distName": "aws-cdk.aws-lambda-python-alpha",
120
+ "module": "aws_cdk.aws_lambda_python_alpha"
121
+ }
122
+ }
123
+ },
92
124
  "aws-cdk-lib": {
93
125
  "submodules": {
94
126
  "aws-cdk-lib.alexa_ask": {
@@ -221,6 +253,8 @@
221
253
  }
222
254
  }
223
255
  },
256
+ "aws-cdk-lib.aws_apigatewayv2_authorizers": {},
257
+ "aws-cdk-lib.aws_apigatewayv2_integrations": {},
224
258
  "aws-cdk-lib.aws_appconfig": {
225
259
  "targets": {
226
260
  "dotnet": {
@@ -351,6 +385,19 @@
351
385
  }
352
386
  }
353
387
  },
388
+ "aws-cdk-lib.aws_arczonalshift": {
389
+ "targets": {
390
+ "dotnet": {
391
+ "package": "Amazon.CDK.AWS.ARCZonalShift"
392
+ },
393
+ "java": {
394
+ "package": "software.amazon.awscdk.services.arczonalshift"
395
+ },
396
+ "python": {
397
+ "module": "aws_cdk.aws_arczonalshift"
398
+ }
399
+ }
400
+ },
354
401
  "aws-cdk-lib.aws_athena": {
355
402
  "targets": {
356
403
  "dotnet": {
@@ -448,7 +495,7 @@
448
495
  "package": "Amazon.CDK.AWS.BackupGateway"
449
496
  },
450
497
  "java": {
451
- "package": "services.backupgateway"
498
+ "package": "software.amazon.awscdk.services.backupgateway"
452
499
  },
453
500
  "python": {
454
501
  "module": "aws_cdk.aws_backupgateway"
@@ -468,6 +515,19 @@
468
515
  }
469
516
  }
470
517
  },
518
+ "aws-cdk-lib.aws_bedrock": {
519
+ "targets": {
520
+ "dotnet": {
521
+ "namespace": "Amazon.CDK.AWS.Bedrock"
522
+ },
523
+ "java": {
524
+ "package": "software.amazon.awscdk.services.bedrock"
525
+ },
526
+ "python": {
527
+ "module": "aws_cdk.aws_bedrock"
528
+ }
529
+ }
530
+ },
471
531
  "aws-cdk-lib.aws_billingconductor": {
472
532
  "targets": {
473
533
  "dotnet": {
@@ -552,7 +612,7 @@
552
612
  "package": "Amazon.CDK.AWS.CleanRooms"
553
613
  },
554
614
  "java": {
555
- "package": "services.cleanrooms"
615
+ "package": "software.amazon.awscdk.services.cleanrooms"
556
616
  },
557
617
  "python": {
558
618
  "module": "aws_cdk.aws_cleanrooms"
@@ -1294,7 +1354,7 @@
1294
1354
  "package": "Amazon.CDK.AWS.EntityResolution"
1295
1355
  },
1296
1356
  "java": {
1297
- "package": "services.entityresolution"
1357
+ "package": "software.amazon.awscdk.services.entityresolution"
1298
1358
  },
1299
1359
  "python": {
1300
1360
  "module": "aws_cdk.aws_entityresolution"
@@ -1554,7 +1614,7 @@
1554
1614
  "package": "Amazon.CDK.AWS.HealthImaging"
1555
1615
  },
1556
1616
  "java": {
1557
- "package": "services.healthimaging"
1617
+ "package": "software.amazon.awscdk.services.healthimaging"
1558
1618
  },
1559
1619
  "python": {
1560
1620
  "module": "aws_cdk.aws_healthimaging"
@@ -2217,7 +2277,7 @@
2217
2277
  "package": "Amazon.CDK.AWS.MediaPackageV2"
2218
2278
  },
2219
2279
  "java": {
2220
- "package": "services.mediapackagev2"
2280
+ "package": "software.amazon.awscdk.services.mediapackagev2"
2221
2281
  },
2222
2282
  "python": {
2223
2283
  "module": "aws_cdk.aws_mediapackagev2"
@@ -2438,7 +2498,7 @@
2438
2498
  "package": "Amazon.CDK.AWS.OSIS"
2439
2499
  },
2440
2500
  "java": {
2441
- "package": "services.osis"
2501
+ "package": "software.amazon.awscdk.services.osis"
2442
2502
  },
2443
2503
  "python": {
2444
2504
  "module": "aws_cdk.aws_osis"
@@ -2464,7 +2524,7 @@
2464
2524
  "package": "Amazon.CDK.AWS.PCAConnectorAD"
2465
2525
  },
2466
2526
  "java": {
2467
- "package": "services.pcaconnectorad"
2527
+ "package": "software.amazon.awscdk.services.pcaconnectorad"
2468
2528
  },
2469
2529
  "python": {
2470
2530
  "module": "aws_cdk.aws_pcaconnectorad"
@@ -2529,7 +2589,7 @@
2529
2589
  "package": "Amazon.CDK.AWS.Proton"
2530
2590
  },
2531
2591
  "java": {
2532
- "package": "services.proton"
2592
+ "package": "software.amazon.awscdk.services.proton"
2533
2593
  },
2534
2594
  "python": {
2535
2595
  "module": "aws_cdk.aws_proton"
@@ -2848,6 +2908,19 @@
2848
2908
  }
2849
2909
  }
2850
2910
  },
2911
+ "aws-cdk-lib.aws_s3express": {
2912
+ "targets": {
2913
+ "dotnet": {
2914
+ "package": "Amazon.CDK.AWS.S3Express"
2915
+ },
2916
+ "java": {
2917
+ "package": "software.amazon.awscdk.services.s3express"
2918
+ },
2919
+ "python": {
2920
+ "module": "aws_cdk.aws_s3express"
2921
+ }
2922
+ }
2923
+ },
2851
2924
  "aws-cdk-lib.aws_s3objectlambda": {
2852
2925
  "targets": {
2853
2926
  "dotnet": {
@@ -3023,7 +3096,7 @@
3023
3096
  "package": "Amazon.CDK.AWS.Shield"
3024
3097
  },
3025
3098
  "java": {
3026
- "package": "services.shield"
3099
+ "package": "software.amazon.awscdk.services.shield"
3027
3100
  },
3028
3101
  "python": {
3029
3102
  "module": "aws_cdk.aws_shield"
@@ -3244,7 +3317,7 @@
3244
3317
  "package": "Amazon.CDK.AWS.VerifiedPermissions"
3245
3318
  },
3246
3319
  "java": {
3247
- "package": "services.verifiedpermissions"
3320
+ "package": "software.amazon.awscdk.services.verifiedpermissions"
3248
3321
  },
3249
3322
  "python": {
3250
3323
  "module": "aws_cdk.aws_verifiedpermissions"
@@ -3342,13 +3415,26 @@
3342
3415
  }
3343
3416
  }
3344
3417
  },
3418
+ "aws-cdk-lib.aws_workspacesthinclient": {
3419
+ "targets": {
3420
+ "dotnet": {
3421
+ "package": "Amazon.CDK.AWS.WorkSpacesThinClient"
3422
+ },
3423
+ "java": {
3424
+ "package": "software.amazon.awscdk.services.workspacesthinclient"
3425
+ },
3426
+ "python": {
3427
+ "module": "aws_cdk.aws_workspacesthinclient"
3428
+ }
3429
+ }
3430
+ },
3345
3431
  "aws-cdk-lib.aws_workspacesweb": {
3346
3432
  "targets": {
3347
3433
  "dotnet": {
3348
3434
  "package": "Amazon.CDK.AWS.WorkSpacesWeb"
3349
3435
  },
3350
3436
  "java": {
3351
- "package": "services.workspacesweb"
3437
+ "package": "software.amazon.awscdk.services.workspacesweb"
3352
3438
  },
3353
3439
  "python": {
3354
3440
  "module": "aws_cdk.aws_workspacesweb"
@@ -3573,7 +3659,7 @@
3573
3659
  },
3574
3660
  "name": "cdk-certbot-dns-route53",
3575
3661
  "readme": {
3576
- "markdown": "[![NPM version](https://badge.fury.io/js/cdk-certbot-dns-route53.svg)](https://badge.fury.io/js/cdk-certbot-dns-route53)\n[![PyPI version](https://badge.fury.io/py/cdk-certbot-dns-route53.svg)](https://badge.fury.io/py/cdk-certbot-dns-route53)\n[![Release](https://github.com/neilkuan/cdk-certbot-dns-route53/actions/workflows/release.yml/badge.svg?branch=main)](https://github.com/neilkuan/cdk-certbot-dns-route53/actions/workflows/release.yml)\n\n![Downloads](https://img.shields.io/badge/-DOWNLOADS:-brightgreen?color=gray)\n![npm](https://img.shields.io/npm/dt/cdk-certbot-dns-route53?label=npm&color=orange)\n![PyPI](https://img.shields.io/pypi/dm/cdk-certbot-dns-route53?label=pypi&color=blue)\n\n# cdk-certbot-dns-route53\n**cdk-certbot-dns-route53** is a CDK construct library that allows you to create [Certbot](https://github.com/certbot/certbot) Lambda Function on AWS with CDK, and setting schedule cron job to renew certificate to store on S3 Bucket.\n\n## Install\n```bash\nUse the npm dist tag to opt in CDKv1 or CDKv2:\n\n// for CDKv2\nnpm install cdk-certbot-dns-route53\nor\nnpm install cdk-certbot-dns-route53@latest\n\n// for CDKv1\nnpm install cdk-certbot-dns-route53@cdkv1\n```\n\n💡💡💡 please click [here](https://github.com/neilkuan/cdk-certbot-dns-route53/tree/cdkv1#readme), if you are using aws-cdk v1.x.x version.💡💡💡\n\n```ts\nimport * as r53 from 'aws-cdk-lib/aws-route53';\nimport * as s3 from 'aws-cdk-lib/aws-s3';\nimport * as cdk from 'aws-cdk-lib';\nimport { CertbotDnsRoute53Job } from 'cdk-certbot-dns-route53';\n\nconst devEnv = {\n account: process.env.CDK_DEFAULT_ACCOUNT,\n region: process.env.CDK_DEFAULT_REGION,\n};\n\nconst app = new cdk.App();\n\nconst stack = new cdk.Stack(app, 'lambda-certbot-dev', { env: devEnv });\n\nnew CertbotDnsRoute53Job(stack, 'Demo', {\n certbotOptions: {\n domainName: '*.example.com',\n email: 'user@example.com',\n },\n zone: r53.HostedZone.fromHostedZoneAttributes(stack, 'myZone', {\n zoneName: 'example.com',\n hostedZoneId: 'mockId',\n }),\n destinationBucket: s3.Bucket.fromBucketName(stack, 'myBucket', 'mybucket'),\n});\n```\n\n\n### You can define Lambda Image Architecture now. 2022/04/19\n```ts\nimport * as r53 from 'aws-cdk-lib/aws-route53';\nimport * as s3 from 'aws-cdk-lib/aws-s3';\nimport * as lambda from 'aws-cdk-lib/aws-lambda';\nimport * as cdk from 'aws-cdk-lib';\nimport { CertbotDnsRoute53Job } from 'cdk-certbot-dns-route53';\n\nconst mockApp = new cdk.App();\nconst stack = new cdk.Stack(mockApp, 'teststack', { env: devEnv });\nconst bucket = new s3.Bucket(stack, 'testingBucket');\nconst zone = r53.HostedZone.fromHostedZoneAttributes(stack, 'zone', {\n zoneName: mock.zoneName, hostedZoneId: mock.zoneId,\n});\nnew CertbotDnsRoute53Job(stack, 'Testtask', {\n certbotOptions: {\n domainName: 'example.com',\n email: 'user@example.com',\n customPrefixDirectory: '/',\n },\n zone,\n destinationBucket: bucket,\n schedule: events.Schedule.cron({ month: '2' }),\n architecture: lambda.Architecture.ARM_64, // <- like this way.\n});\n\n```\n\n### Example: Invoke Lambda Function log.\n![](./images/lambda-logs.png)\n\n### Example: Renew certificate to store on S3 Bucket\n![](./images/s3-bucket.png)\n"
3662
+ "markdown": "[![NPM version](https://badge.fury.io/js/cdk-certbot-dns-route53.svg)](https://badge.fury.io/js/cdk-certbot-dns-route53)\n[![PyPI version](https://badge.fury.io/py/cdk-certbot-dns-route53.svg)](https://badge.fury.io/py/cdk-certbot-dns-route53)\n[![Release](https://github.com/neilkuan/cdk-certbot-dns-route53/actions/workflows/release.yml/badge.svg?branch=main)](https://github.com/neilkuan/cdk-certbot-dns-route53/actions/workflows/release.yml)\n\n![Downloads](https://img.shields.io/badge/-DOWNLOADS:-brightgreen?color=gray)\n![npm](https://img.shields.io/npm/dt/cdk-certbot-dns-route53?label=npm&color=orange)\n![PyPI](https://img.shields.io/pypi/dm/cdk-certbot-dns-route53?label=pypi&color=blue)\n\n# cdk-certbot-dns-route53\n**cdk-certbot-dns-route53** is a CDK construct library that allows you to create [Certbot](https://github.com/certbot/certbot) Lambda Function on AWS with CDK, and setting schedule cron job to renew certificate to store on S3 Bucket.\n\n## Install\n```bash\nUse the npm dist tag to opt in CDKv1 or CDKv2:\n\n// for CDKv2\nnpm install cdk-certbot-dns-route53\nor\nnpm install cdk-certbot-dns-route53@latest\n\n// for CDKv1\nnpm install cdk-certbot-dns-route53@cdkv1\n```\n\n💡💡💡 please click [here](https://github.com/neilkuan/cdk-certbot-dns-route53/tree/cdkv1#readme), if you are using aws-cdk v1.x.x version.💡💡💡\n\n```ts\nimport * as r53 from 'aws-cdk-lib/aws-route53';\nimport * as s3 from 'aws-cdk-lib/aws-s3';\nimport * as cdk from 'aws-cdk-lib';\nimport { CertbotDnsRoute53Job } from 'cdk-certbot-dns-route53';\n\nconst devEnv = {\n account: process.env.CDK_DEFAULT_ACCOUNT,\n region: process.env.CDK_DEFAULT_REGION,\n};\n\nconst app = new cdk.App();\n\nconst stack = new cdk.Stack(app, 'lambda-certbot-dev', { env: devEnv });\n\nnew CertbotDnsRoute53Job(stack, 'Demo', {\n certbotOptions: {\n domainName: '*.example.com',\n email: 'user@example.com',\n },\n zone: r53.HostedZone.fromHostedZoneAttributes(stack, 'myZone', {\n zoneName: 'example.com',\n hostedZoneId: 'mockId',\n }),\n destinationBucket: s3.Bucket.fromBucketName(stack, 'myBucket', 'mybucket'),\n});\n```\n\n\n### You can define Lambda Image Architecture now. 2022/04/19\n```ts\nimport * as r53 from 'aws-cdk-lib/aws-route53';\nimport * as s3 from 'aws-cdk-lib/aws-s3';\nimport * as lambda from 'aws-cdk-lib/aws-lambda';\nimport * as cdk from 'aws-cdk-lib';\nimport { CertbotDnsRoute53Job } from 'cdk-certbot-dns-route53';\n\nconst mockApp = new cdk.App();\nconst stack = new cdk.Stack(mockApp, 'teststack', { env: devEnv });\nconst bucket = new s3.Bucket(stack, 'testingBucket');\nconst zone = r53.HostedZone.fromHostedZoneAttributes(stack, 'zone', {\n zoneName: mock.zoneName, hostedZoneId: mock.zoneId,\n});\nnew CertbotDnsRoute53Job(stack, 'Testtask', {\n certbotOptions: {\n domainName: 'example.com',\n email: 'user@example.com',\n customPrefixDirectory: '/',\n },\n zone,\n destinationBucket: bucket,\n schedule: events.Schedule.cron({ month: '2' }),\n architecture: lambda.Architecture.ARM_64, // <- like this way.\n});\n\n```\n\n### Example: Invoke Lambda Function log.\n![](./images/lambda-logs.png)\n\n### Example: Renew certificate to store on S3 Bucket\n![](./images/s3-bucket.png)\n\n\n### Support Python Lambda Runtime. 2023/12/17\n> Support enabled Lambda Function Url.\n```ts\nimport * as r53 from 'aws-cdk-lib/aws-route53';\nimport * as s3 from 'aws-cdk-lib/aws-s3';\nimport * as lambda from 'aws-cdk-lib/aws-lambda';\nimport * as cdk from 'aws-cdk-lib';\nimport { CertbotDnsRoute53JobPython } from 'cdk-certbot-dns-route53';\n\nconst mockApp = new cdk.App();\nconst stack = new cdk.Stack(mockApp, 'teststack', { env: devEnv });\nconst bucket = new s3.Bucket(stack, 'testingBucket');\nconst zone = r53.HostedZone.fromHostedZoneAttributes(stack, 'zone', {\n zoneName: mock.zoneName, hostedZoneId: mock.zoneId,\n});\nnew CertbotDnsRoute53JobPython(stack, 'Testtask', {\n certbotOptions: {\n domainName: 'example.com',\n email: 'user@example.com',\n customPrefixDirectory: '/',\n },\n zone,\n destinationBucket: bucket,\n schedule: events.Schedule.cron({ month: '2' }),\n enabledLambdaFunctionUrl: true,\n});\n\n```"
3577
3663
  },
3578
3664
  "repository": {
3579
3665
  "type": "git",
@@ -3790,7 +3876,7 @@
3790
3876
  },
3791
3877
  "locationInModule": {
3792
3878
  "filename": "src/main.ts",
3793
- "line": 79
3879
+ "line": 80
3794
3880
  },
3795
3881
  "parameters": [
3796
3882
  {
@@ -3816,7 +3902,7 @@
3816
3902
  "kind": "class",
3817
3903
  "locationInModule": {
3818
3904
  "filename": "src/main.ts",
3819
- "line": 78
3905
+ "line": 79
3820
3906
  },
3821
3907
  "name": "CertbotDnsRoute53Job",
3822
3908
  "symbolId": "src/main:CertbotDnsRoute53Job"
@@ -3831,7 +3917,7 @@
3831
3917
  "kind": "interface",
3832
3918
  "locationInModule": {
3833
3919
  "filename": "src/main.ts",
3834
- "line": 36
3920
+ "line": 37
3835
3921
  },
3836
3922
  "name": "CertbotDnsRoute53JobProps",
3837
3923
  "properties": [
@@ -3844,7 +3930,7 @@
3844
3930
  "immutable": true,
3845
3931
  "locationInModule": {
3846
3932
  "filename": "src/main.ts",
3847
- "line": 56
3933
+ "line": 57
3848
3934
  },
3849
3935
  "name": "certbotOptions",
3850
3936
  "type": {
@@ -3860,7 +3946,7 @@
3860
3946
  "immutable": true,
3861
3947
  "locationInModule": {
3862
3948
  "filename": "src/main.ts",
3863
- "line": 46
3949
+ "line": 47
3864
3950
  },
3865
3951
  "name": "destinationBucket",
3866
3952
  "type": {
@@ -3876,7 +3962,7 @@
3876
3962
  "immutable": true,
3877
3963
  "locationInModule": {
3878
3964
  "filename": "src/main.ts",
3879
- "line": 51
3965
+ "line": 52
3880
3966
  },
3881
3967
  "name": "zone",
3882
3968
  "type": {
@@ -3893,7 +3979,7 @@
3893
3979
  "immutable": true,
3894
3980
  "locationInModule": {
3895
3981
  "filename": "src/main.ts",
3896
- "line": 63
3982
+ "line": 64
3897
3983
  },
3898
3984
  "name": "architecture",
3899
3985
  "optional": true,
@@ -3911,7 +3997,7 @@
3911
3997
  "immutable": true,
3912
3998
  "locationInModule": {
3913
3999
  "filename": "src/main.ts",
3914
- "line": 69
4000
+ "line": 70
3915
4001
  },
3916
4002
  "name": "enabledLambdaFunctionUrl",
3917
4003
  "optional": true,
@@ -3929,7 +4015,7 @@
3929
4015
  "immutable": true,
3930
4016
  "locationInModule": {
3931
4017
  "filename": "src/main.ts",
3932
- "line": 75
4018
+ "line": 76
3933
4019
  },
3934
4020
  "name": "functionUrlOptions",
3935
4021
  "optional": true,
@@ -3947,7 +4033,7 @@
3947
4033
  "immutable": true,
3948
4034
  "locationInModule": {
3949
4035
  "filename": "src/main.ts",
3950
- "line": 41
4036
+ "line": 42
3951
4037
  },
3952
4038
  "name": "schedule",
3953
4039
  "optional": true,
@@ -3958,6 +4044,50 @@
3958
4044
  ],
3959
4045
  "symbolId": "src/main:CertbotDnsRoute53JobProps"
3960
4046
  },
4047
+ "cdk-certbot-dns-route53.CertbotDnsRoute53JobPython": {
4048
+ "assembly": "cdk-certbot-dns-route53",
4049
+ "base": "constructs.Construct",
4050
+ "docs": {
4051
+ "stability": "stable"
4052
+ },
4053
+ "fqn": "cdk-certbot-dns-route53.CertbotDnsRoute53JobPython",
4054
+ "initializer": {
4055
+ "docs": {
4056
+ "stability": "stable"
4057
+ },
4058
+ "locationInModule": {
4059
+ "filename": "src/main.ts",
4060
+ "line": 174
4061
+ },
4062
+ "parameters": [
4063
+ {
4064
+ "name": "scope",
4065
+ "type": {
4066
+ "fqn": "constructs.Construct"
4067
+ }
4068
+ },
4069
+ {
4070
+ "name": "id",
4071
+ "type": {
4072
+ "primitive": "string"
4073
+ }
4074
+ },
4075
+ {
4076
+ "name": "props",
4077
+ "type": {
4078
+ "fqn": "cdk-certbot-dns-route53.CertbotDnsRoute53JobProps"
4079
+ }
4080
+ }
4081
+ ]
4082
+ },
4083
+ "kind": "class",
4084
+ "locationInModule": {
4085
+ "filename": "src/main.ts",
4086
+ "line": 173
4087
+ },
4088
+ "name": "CertbotDnsRoute53JobPython",
4089
+ "symbolId": "src/main:CertbotDnsRoute53JobPython"
4090
+ },
3961
4091
  "cdk-certbot-dns-route53.CertbotOptions": {
3962
4092
  "assembly": "cdk-certbot-dns-route53",
3963
4093
  "datatype": true,
@@ -3968,7 +4098,7 @@
3968
4098
  "kind": "interface",
3969
4099
  "locationInModule": {
3970
4100
  "filename": "src/main.ts",
3971
- "line": 12
4101
+ "line": 13
3972
4102
  },
3973
4103
  "name": "CertbotOptions",
3974
4104
  "properties": [
@@ -3977,12 +4107,12 @@
3977
4107
  "docs": {
3978
4108
  "example": "- `*.example.com` or `a.example.com` .",
3979
4109
  "stability": "stable",
3980
- "summary": "the domain must host on route53 like example.com."
4110
+ "summary": "the domain must host on route53 like example.com. the domain must host on route53 like example.com."
3981
4111
  },
3982
4112
  "immutable": true,
3983
4113
  "locationInModule": {
3984
4114
  "filename": "src/main.ts",
3985
- "line": 18
4115
+ "line": 19
3986
4116
  },
3987
4117
  "name": "domainName",
3988
4118
  "type": {
@@ -3992,13 +4122,14 @@
3992
4122
  {
3993
4123
  "abstract": true,
3994
4124
  "docs": {
4125
+ "remarks": "Email address for important account notifications.",
3995
4126
  "stability": "stable",
3996
4127
  "summary": "Email address for important account notifications."
3997
4128
  },
3998
4129
  "immutable": true,
3999
4130
  "locationInModule": {
4000
4131
  "filename": "src/main.ts",
4001
- "line": 23
4132
+ "line": 24
4002
4133
  },
4003
4134
  "name": "email",
4004
4135
  "type": {
@@ -4010,13 +4141,14 @@
4010
4141
  "docs": {
4011
4142
  "default": "- `s3://YOUR_BUCKET_NAME/2021-01-01/your.domain.name/`",
4012
4143
  "example": "- customPrefixDirectory: 'abc' -> `s3://YOUR_BUCKET_NAME/abc/your.domain.name/`",
4144
+ "remarks": "Custom prefix directory on s3 bucket object path.",
4013
4145
  "stability": "stable",
4014
4146
  "summary": "Custom prefix directory on s3 bucket object path."
4015
4147
  },
4016
4148
  "immutable": true,
4017
4149
  "locationInModule": {
4018
4150
  "filename": "src/main.ts",
4019
- "line": 33
4151
+ "line": 34
4020
4152
  },
4021
4153
  "name": "customPrefixDirectory",
4022
4154
  "optional": true,
@@ -4026,8 +4158,152 @@
4026
4158
  }
4027
4159
  ],
4028
4160
  "symbolId": "src/main:CertbotOptions"
4161
+ },
4162
+ "cdk-certbot-dns-route53.LambdaFunctionProps": {
4163
+ "assembly": "cdk-certbot-dns-route53",
4164
+ "datatype": true,
4165
+ "docs": {
4166
+ "stability": "stable"
4167
+ },
4168
+ "fqn": "cdk-certbot-dns-route53.LambdaFunctionProps",
4169
+ "kind": "interface",
4170
+ "locationInModule": {
4171
+ "filename": "src/lambda-python.ts",
4172
+ "line": 9
4173
+ },
4174
+ "name": "LambdaFunctionProps",
4175
+ "properties": [
4176
+ {
4177
+ "abstract": true,
4178
+ "docs": {
4179
+ "stability": "stable"
4180
+ },
4181
+ "immutable": true,
4182
+ "locationInModule": {
4183
+ "filename": "src/lambda-python.ts",
4184
+ "line": 13
4185
+ },
4186
+ "name": "architecture",
4187
+ "type": {
4188
+ "fqn": "aws-cdk-lib.aws_lambda.Architecture"
4189
+ }
4190
+ },
4191
+ {
4192
+ "abstract": true,
4193
+ "docs": {
4194
+ "stability": "stable"
4195
+ },
4196
+ "immutable": true,
4197
+ "locationInModule": {
4198
+ "filename": "src/lambda-python.ts",
4199
+ "line": 10
4200
+ },
4201
+ "name": "timeout",
4202
+ "type": {
4203
+ "fqn": "aws-cdk-lib.Duration"
4204
+ }
4205
+ },
4206
+ {
4207
+ "abstract": true,
4208
+ "docs": {
4209
+ "stability": "stable"
4210
+ },
4211
+ "immutable": true,
4212
+ "locationInModule": {
4213
+ "filename": "src/lambda-python.ts",
4214
+ "line": 11
4215
+ },
4216
+ "name": "environment",
4217
+ "optional": true,
4218
+ "type": {
4219
+ "collection": {
4220
+ "elementtype": {
4221
+ "primitive": "string"
4222
+ },
4223
+ "kind": "map"
4224
+ }
4225
+ }
4226
+ },
4227
+ {
4228
+ "abstract": true,
4229
+ "docs": {
4230
+ "stability": "stable"
4231
+ },
4232
+ "immutable": true,
4233
+ "locationInModule": {
4234
+ "filename": "src/lambda-python.ts",
4235
+ "line": 12
4236
+ },
4237
+ "name": "role",
4238
+ "optional": true,
4239
+ "type": {
4240
+ "fqn": "aws-cdk-lib.aws_iam.IRole"
4241
+ }
4242
+ }
4243
+ ],
4244
+ "symbolId": "src/lambda-python:LambdaFunctionProps"
4245
+ },
4246
+ "cdk-certbot-dns-route53.LambdaPythonFunction": {
4247
+ "assembly": "cdk-certbot-dns-route53",
4248
+ "base": "constructs.Construct",
4249
+ "docs": {
4250
+ "stability": "stable"
4251
+ },
4252
+ "fqn": "cdk-certbot-dns-route53.LambdaPythonFunction",
4253
+ "initializer": {
4254
+ "docs": {
4255
+ "stability": "stable"
4256
+ },
4257
+ "locationInModule": {
4258
+ "filename": "src/lambda-python.ts",
4259
+ "line": 19
4260
+ },
4261
+ "parameters": [
4262
+ {
4263
+ "name": "scope",
4264
+ "type": {
4265
+ "fqn": "constructs.Construct"
4266
+ }
4267
+ },
4268
+ {
4269
+ "name": "id",
4270
+ "type": {
4271
+ "primitive": "string"
4272
+ }
4273
+ },
4274
+ {
4275
+ "name": "props",
4276
+ "type": {
4277
+ "fqn": "cdk-certbot-dns-route53.LambdaFunctionProps"
4278
+ }
4279
+ }
4280
+ ]
4281
+ },
4282
+ "kind": "class",
4283
+ "locationInModule": {
4284
+ "filename": "src/lambda-python.ts",
4285
+ "line": 17
4286
+ },
4287
+ "name": "LambdaPythonFunction",
4288
+ "properties": [
4289
+ {
4290
+ "docs": {
4291
+ "stability": "stable"
4292
+ },
4293
+ "immutable": true,
4294
+ "locationInModule": {
4295
+ "filename": "src/lambda-python.ts",
4296
+ "line": 18
4297
+ },
4298
+ "name": "handler",
4299
+ "type": {
4300
+ "fqn": "@aws-cdk/aws-lambda-python-alpha.PythonFunction"
4301
+ }
4302
+ }
4303
+ ],
4304
+ "symbolId": "src/lambda-python:LambdaPythonFunction"
4029
4305
  }
4030
4306
  },
4031
- "version": "2.3.1",
4032
- "fingerprint": "vg7TP2gy1pujr2INolPZ/IRIPqZndIeJT2y1g4hKOUg="
4307
+ "version": "2.4.1",
4308
+ "fingerprint": "5QhCplFLrtln39/BDt7mmCKfuy7hTdQYEaODOtiPxKQ="
4033
4309
  }
package/API.md CHANGED
@@ -77,6 +77,81 @@ new CertbotDnsRoute53Job(scope: Construct, id: string, props: CertbotDnsRoute53J
77
77
 
78
78
 
79
79
 
80
+ ### CertbotDnsRoute53JobPython <a name="cdk-certbot-dns-route53.CertbotDnsRoute53JobPython"></a>
81
+
82
+ #### Initializers <a name="cdk-certbot-dns-route53.CertbotDnsRoute53JobPython.Initializer"></a>
83
+
84
+ ```typescript
85
+ import { CertbotDnsRoute53JobPython } from 'cdk-certbot-dns-route53'
86
+
87
+ new CertbotDnsRoute53JobPython(scope: Construct, id: string, props: CertbotDnsRoute53JobProps)
88
+ ```
89
+
90
+ ##### `scope`<sup>Required</sup> <a name="cdk-certbot-dns-route53.CertbotDnsRoute53JobPython.parameter.scope"></a>
91
+
92
+ - *Type:* [`constructs.Construct`](#constructs.Construct)
93
+
94
+ ---
95
+
96
+ ##### `id`<sup>Required</sup> <a name="cdk-certbot-dns-route53.CertbotDnsRoute53JobPython.parameter.id"></a>
97
+
98
+ - *Type:* `string`
99
+
100
+ ---
101
+
102
+ ##### `props`<sup>Required</sup> <a name="cdk-certbot-dns-route53.CertbotDnsRoute53JobPython.parameter.props"></a>
103
+
104
+ - *Type:* [`cdk-certbot-dns-route53.CertbotDnsRoute53JobProps`](#cdk-certbot-dns-route53.CertbotDnsRoute53JobProps)
105
+
106
+ ---
107
+
108
+
109
+
110
+
111
+
112
+ ### LambdaPythonFunction <a name="cdk-certbot-dns-route53.LambdaPythonFunction"></a>
113
+
114
+ #### Initializers <a name="cdk-certbot-dns-route53.LambdaPythonFunction.Initializer"></a>
115
+
116
+ ```typescript
117
+ import { LambdaPythonFunction } from 'cdk-certbot-dns-route53'
118
+
119
+ new LambdaPythonFunction(scope: Construct, id: string, props: LambdaFunctionProps)
120
+ ```
121
+
122
+ ##### `scope`<sup>Required</sup> <a name="cdk-certbot-dns-route53.LambdaPythonFunction.parameter.scope"></a>
123
+
124
+ - *Type:* [`constructs.Construct`](#constructs.Construct)
125
+
126
+ ---
127
+
128
+ ##### `id`<sup>Required</sup> <a name="cdk-certbot-dns-route53.LambdaPythonFunction.parameter.id"></a>
129
+
130
+ - *Type:* `string`
131
+
132
+ ---
133
+
134
+ ##### `props`<sup>Required</sup> <a name="cdk-certbot-dns-route53.LambdaPythonFunction.parameter.props"></a>
135
+
136
+ - *Type:* [`cdk-certbot-dns-route53.LambdaFunctionProps`](#cdk-certbot-dns-route53.LambdaFunctionProps)
137
+
138
+ ---
139
+
140
+
141
+
142
+ #### Properties <a name="Properties"></a>
143
+
144
+ ##### `handler`<sup>Required</sup> <a name="cdk-certbot-dns-route53.LambdaPythonFunction.property.handler"></a>
145
+
146
+ ```typescript
147
+ public readonly handler: PythonFunction;
148
+ ```
149
+
150
+ - *Type:* [`@aws-cdk/aws-lambda-python-alpha.PythonFunction`](#@aws-cdk/aws-lambda-python-alpha.PythonFunction)
151
+
152
+ ---
153
+
154
+
80
155
  ## Structs <a name="Structs"></a>
81
156
 
82
157
  ### BashExecFunctionProps <a name="cdk-certbot-dns-route53.BashExecFunctionProps"></a>
@@ -282,7 +357,7 @@ public readonly domainName: string;
282
357
 
283
358
  - *Type:* `string`
284
359
 
285
- the domain must host on route53 like example.com.
360
+ the domain must host on route53 like example.com. the domain must host on route53 like example.com.
286
361
 
287
362
  ---
288
363
 
@@ -296,6 +371,8 @@ public readonly email: string;
296
371
 
297
372
  Email address for important account notifications.
298
373
 
374
+ Email address for important account notifications.
375
+
299
376
  ---
300
377
 
301
378
  ##### `customPrefixDirectory`<sup>Optional</sup> <a name="cdk-certbot-dns-route53.CertbotOptions.property.customPrefixDirectory"></a>
@@ -309,6 +386,58 @@ public readonly customPrefixDirectory: string;
309
386
 
310
387
  Custom prefix directory on s3 bucket object path.
311
388
 
389
+ Custom prefix directory on s3 bucket object path.
390
+
391
+ ---
392
+
393
+ ### LambdaFunctionProps <a name="cdk-certbot-dns-route53.LambdaFunctionProps"></a>
394
+
395
+ #### Initializer <a name="[object Object].Initializer"></a>
396
+
397
+ ```typescript
398
+ import { LambdaFunctionProps } from 'cdk-certbot-dns-route53'
399
+
400
+ const lambdaFunctionProps: LambdaFunctionProps = { ... }
401
+ ```
402
+
403
+ ##### `architecture`<sup>Required</sup> <a name="cdk-certbot-dns-route53.LambdaFunctionProps.property.architecture"></a>
404
+
405
+ ```typescript
406
+ public readonly architecture: Architecture;
407
+ ```
408
+
409
+ - *Type:* [`aws-cdk-lib.aws_lambda.Architecture`](#aws-cdk-lib.aws_lambda.Architecture)
410
+
411
+ ---
412
+
413
+ ##### `timeout`<sup>Required</sup> <a name="cdk-certbot-dns-route53.LambdaFunctionProps.property.timeout"></a>
414
+
415
+ ```typescript
416
+ public readonly timeout: Duration;
417
+ ```
418
+
419
+ - *Type:* [`aws-cdk-lib.Duration`](#aws-cdk-lib.Duration)
420
+
421
+ ---
422
+
423
+ ##### `environment`<sup>Optional</sup> <a name="cdk-certbot-dns-route53.LambdaFunctionProps.property.environment"></a>
424
+
425
+ ```typescript
426
+ public readonly environment: {[ key: string ]: string};
427
+ ```
428
+
429
+ - *Type:* {[ key: string ]: `string`}
430
+
431
+ ---
432
+
433
+ ##### `role`<sup>Optional</sup> <a name="cdk-certbot-dns-route53.LambdaFunctionProps.property.role"></a>
434
+
435
+ ```typescript
436
+ public readonly role: IRole;
437
+ ```
438
+
439
+ - *Type:* [`aws-cdk-lib.aws_iam.IRole`](#aws-cdk-lib.aws_iam.IRole)
440
+
312
441
  ---
313
442
 
314
443
 
package/README.md CHANGED
@@ -86,3 +86,33 @@ new CertbotDnsRoute53Job(stack, 'Testtask', {
86
86
 
87
87
  ### Example: Renew certificate to store on S3 Bucket
88
88
  ![](./images/s3-bucket.png)
89
+
90
+
91
+ ### Support Python Lambda Runtime. 2023/12/17
92
+ > Support enabled Lambda Function Url.
93
+ ```ts
94
+ import * as r53 from 'aws-cdk-lib/aws-route53';
95
+ import * as s3 from 'aws-cdk-lib/aws-s3';
96
+ import * as lambda from 'aws-cdk-lib/aws-lambda';
97
+ import * as cdk from 'aws-cdk-lib';
98
+ import { CertbotDnsRoute53JobPython } from 'cdk-certbot-dns-route53';
99
+
100
+ const mockApp = new cdk.App();
101
+ const stack = new cdk.Stack(mockApp, 'teststack', { env: devEnv });
102
+ const bucket = new s3.Bucket(stack, 'testingBucket');
103
+ const zone = r53.HostedZone.fromHostedZoneAttributes(stack, 'zone', {
104
+ zoneName: mock.zoneName, hostedZoneId: mock.zoneId,
105
+ });
106
+ new CertbotDnsRoute53JobPython(stack, 'Testtask', {
107
+ certbotOptions: {
108
+ domainName: 'example.com',
109
+ email: 'user@example.com',
110
+ customPrefixDirectory: '/',
111
+ },
112
+ zone,
113
+ destinationBucket: bucket,
114
+ schedule: events.Schedule.cron({ month: '2' }),
115
+ enabledLambdaFunctionUrl: true,
116
+ });
117
+
118
+ ```
package/assets/main.py ADDED
@@ -0,0 +1,79 @@
1
+ import os
2
+ import datetime
3
+ import boto3
4
+ import sys
5
+ from certbot.main import main
6
+ import json
7
+ sys.path.append('/var/task')
8
+ def handler(events, contexts):
9
+ events = events
10
+ contexts = contexts
11
+ DOMAIN_NAME=os.getenv('DOMAIN_NAME')
12
+ MAIL=os.getenv('EMAIL')
13
+ BUCKET_NAME = os.getenv('BUCKET_NAME')
14
+
15
+ print('start to renew cert from route53...')
16
+ try:
17
+ main(['certonly', '--agree-tos',
18
+ '--dns-route53',
19
+ '-d', DOMAIN_NAME,
20
+ '-m', MAIL,
21
+ '--no-eff-email',
22
+ '--config-dir', '/tmp',
23
+ '--work-dir', '/tmp',
24
+ '--logs-dir', '/tmp',
25
+ ])
26
+ except Exception as e:
27
+ print(e)
28
+ return json.dumps({
29
+ "message": f'Execute certbot command fail {e}'
30
+ })
31
+
32
+ today = datetime.date.today()
33
+ CUSTOM_PREFIX_DIRECTORY= os.getenv('CUSTOM_PREFIX_DIRECTORY')
34
+ s3_path = ''
35
+ if CUSTOM_PREFIX_DIRECTORY == None:
36
+ print('CUSTOM_PREFIX_DIRECTORY is not set')
37
+ print(f'S3_PATH is set to {today}')
38
+ s3_path = f'{today}/'
39
+ elif CUSTOM_PREFIX_DIRECTORY == '/':
40
+ print('S3_PATH is set to /')
41
+ s3_path = ''
42
+ else:
43
+ print('S3_PATH CUSTOM_PREFIX_DIRECTORY is set')
44
+ s3_path = f'{CUSTOM_PREFIX_DIRECTORY}/'
45
+ print('sync file to S3 bucket s3://{BUCKET_NAME}/{S3_PATH}')
46
+
47
+ client = boto3.client('s3')
48
+ domain_path = domain_path_helper(DOMAIN_NAME)
49
+ dirs = os.listdir(f'/tmp/live/{domain_path}')
50
+ for file_name in dirs:
51
+ try:
52
+ client.upload_file('/tmp/live/' + domain_path + '/' + file_name, BUCKET_NAME, s3_path + domain_path + '/' + file_name)
53
+ except Exception as e:
54
+ print(e)
55
+
56
+ return json.dumps({
57
+ "message": f'{e}'
58
+ })
59
+ if s3_path == '':
60
+ print(f'find your certificates in your bucket s3://{BUCKET_NAME}/{domain_path}')
61
+ return json.dumps({
62
+ "message": f'find your certificates in your bucket s3://{BUCKET_NAME}/{domain_path}'
63
+ })
64
+ else:
65
+ print(f'find your certificates in your bucket s3://{BUCKET_NAME}/{s3_path}/{domain_path}')
66
+ return json.dumps({
67
+ "message": f'find your certificates in your bucket s3://{BUCKET_NAME}/{s3_path}/{domain_path}'
68
+ })
69
+
70
+
71
+
72
+ def domain_path_helper(domain: str):
73
+ d = domain.split('.')
74
+ try:
75
+ d.remove('*')
76
+ except:
77
+ pass
78
+ r = '.'.join(d)
79
+ return r
@@ -0,0 +1,25 @@
1
+ acme==2.8.0
2
+ boto3==1.34.2
3
+ botocore==1.34.2
4
+ certbot==2.8.0
5
+ certbot-dns-route53==2.8.0
6
+ certifi==2023.11.17
7
+ cffi==1.16.0
8
+ charset-normalizer==3.3.2
9
+ ConfigArgParse==1.7
10
+ configobj==5.0.8
11
+ cryptography==41.0.7
12
+ distro==1.8.0
13
+ idna==3.6
14
+ jmespath==1.0.1
15
+ josepy==1.14.0
16
+ parsedatetime==2.6
17
+ pycparser==2.21
18
+ pyOpenSSL==23.3.0
19
+ pyRFC3339==1.1
20
+ python-dateutil==2.8.2
21
+ pytz==2023.3.post1
22
+ requests==2.31.0
23
+ s3transfer==0.9.0
24
+ six==1.16.0
25
+ urllib3==2.0.7
package/lib/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './main';
2
2
  export * from './lambda-bash';
3
+ export * from './lambda-python';
package/lib/index.js CHANGED
@@ -12,4 +12,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./main"), exports);
14
14
  __exportStar(require("./lambda-bash"), exports);
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXVCO0FBQ3ZCLGdEQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbWFpbic7XG5leHBvcnQgKiBmcm9tICcuL2xhbWJkYS1iYXNoJzsiXX0=
15
+ __exportStar(require("./lambda-python"), exports);
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXVCO0FBQ3ZCLGdEQUE4QjtBQUM5QixrREFBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21haW4nO1xuZXhwb3J0ICogZnJvbSAnLi9sYW1iZGEtYmFzaCc7XG5leHBvcnQgKiBmcm9tICcuL2xhbWJkYS1weXRob24nOyJdfQ==
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const cdk = require("aws-cdk-lib");
4
+ const lambda = require("aws-cdk-lib/aws-lambda");
5
+ const r53 = require("aws-cdk-lib/aws-route53");
6
+ const s3 = require("aws-cdk-lib/aws-s3");
7
+ const _1 = require(".");
8
+ const devEnv = {
9
+ account: process.env.CDK_DEFAULT_ACCOUNT,
10
+ region: process.env.CDK_DEFAULT_REGION,
11
+ };
12
+ const app = new cdk.App();
13
+ const stack = new cdk.Stack(app, 'lambda-certbot-dev-python', { env: devEnv });
14
+ new _1.CertbotDnsRoute53JobPython(stack, 'Demo', {
15
+ certbotOptions: {
16
+ domainName: stack.node.tryGetContext('DOMAIN'),
17
+ email: stack.node.tryGetContext('EMAIL'),
18
+ customPrefixDirectory: '/',
19
+ },
20
+ zone: r53.HostedZone.fromHostedZoneAttributes(stack, 'myZone', {
21
+ zoneName: stack.node.tryGetContext('ZONENAME'),
22
+ hostedZoneId: stack.node.tryGetContext('HOSTZONEID'),
23
+ }),
24
+ destinationBucket: s3.Bucket.fromBucketName(stack, 'myBucket', stack.node.tryGetContext('BUCKETNAME')),
25
+ architecture: lambda.Architecture.X86_64,
26
+ enabledLambdaFunctionUrl: true,
27
+ });
28
+ app.synth();
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcucHl0aG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ludGVnLnB5dGhvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQUFtQztBQUNuQyxpREFBaUQ7QUFDakQsK0NBQStDO0FBQy9DLHlDQUF5QztBQUN6Qyx3QkFBK0M7QUFFL0MsTUFBTSxNQUFNLEdBQUc7SUFDYixPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUI7SUFDeEMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCO0NBQ3ZDLENBQUM7QUFFRixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUUxQixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLDJCQUEyQixFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFFL0UsSUFBSSw2QkFBMEIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFO0lBQzVDLGNBQWMsRUFBRTtRQUNkLFVBQVUsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7UUFDOUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztRQUN4QyxxQkFBcUIsRUFBRSxHQUFHO0tBQzNCO0lBQ0QsSUFBSSxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsd0JBQXdCLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRTtRQUM3RCxRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDO1FBQzlDLFlBQVksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7S0FDckQsQ0FBQztJQUNGLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdEcsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTTtJQUN4Qyx3QkFBd0IsRUFBRSxJQUFJO0NBRS9CLENBQUMsQ0FBQztBQUVILEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyByNTMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXJvdXRlNTMnO1xuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCB7IENlcnRib3REbnNSb3V0ZTUzSm9iUHl0aG9uIH0gZnJvbSAnLic7XG5cbmNvbnN0IGRldkVudiA9IHtcbiAgYWNjb3VudDogcHJvY2Vzcy5lbnYuQ0RLX0RFRkFVTFRfQUNDT1VOVCxcbiAgcmVnaW9uOiBwcm9jZXNzLmVudi5DREtfREVGQVVMVF9SRUdJT04sXG59O1xuXG5jb25zdCBhcHAgPSBuZXcgY2RrLkFwcCgpO1xuXG5jb25zdCBzdGFjayA9IG5ldyBjZGsuU3RhY2soYXBwLCAnbGFtYmRhLWNlcnRib3QtZGV2LXB5dGhvbicsIHsgZW52OiBkZXZFbnYgfSk7XG5cbm5ldyBDZXJ0Ym90RG5zUm91dGU1M0pvYlB5dGhvbihzdGFjaywgJ0RlbW8nLCB7XG4gIGNlcnRib3RPcHRpb25zOiB7XG4gICAgZG9tYWluTmFtZTogc3RhY2subm9kZS50cnlHZXRDb250ZXh0KCdET01BSU4nKSxcbiAgICBlbWFpbDogc3RhY2subm9kZS50cnlHZXRDb250ZXh0KCdFTUFJTCcpLFxuICAgIGN1c3RvbVByZWZpeERpcmVjdG9yeTogJy8nLFxuICB9LFxuICB6b25lOiByNTMuSG9zdGVkWm9uZS5mcm9tSG9zdGVkWm9uZUF0dHJpYnV0ZXMoc3RhY2ssICdteVpvbmUnLCB7XG4gICAgem9uZU5hbWU6IHN0YWNrLm5vZGUudHJ5R2V0Q29udGV4dCgnWk9ORU5BTUUnKSxcbiAgICBob3N0ZWRab25lSWQ6IHN0YWNrLm5vZGUudHJ5R2V0Q29udGV4dCgnSE9TVFpPTkVJRCcpLFxuICB9KSxcbiAgZGVzdGluYXRpb25CdWNrZXQ6IHMzLkJ1Y2tldC5mcm9tQnVja2V0TmFtZShzdGFjaywgJ215QnVja2V0Jywgc3RhY2subm9kZS50cnlHZXRDb250ZXh0KCdCVUNLRVROQU1FJykpLFxuICBhcmNoaXRlY3R1cmU6IGxhbWJkYS5BcmNoaXRlY3R1cmUuWDg2XzY0LFxuICBlbmFibGVkTGFtYmRhRnVuY3Rpb25Vcmw6IHRydWUsXG4gIC8vIGVuYWJsZWRMYW1iZGFGdW5jdGlvblVybDogZmFsc2UsXG59KTtcblxuYXBwLnN5bnRoKCk7Il19
@@ -23,7 +23,7 @@ class BashExecFunction extends constructs_1.Construct {
23
23
  logRetention: logs.RetentionDays.ONE_DAY,
24
24
  environment: props.environment,
25
25
  role: props.role,
26
- architecture: props.architecture ?? lambda.Architecture.X86_64,
26
+ architecture: props.architecture,
27
27
  memorySize: 1024,
28
28
  });
29
29
  new aws_cdk_lib_1.CfnOutput(this, 'LogGroup', { value: this.handler.logGroup.logGroupName });
@@ -31,5 +31,5 @@ class BashExecFunction extends constructs_1.Construct {
31
31
  }
32
32
  exports.BashExecFunction = BashExecFunction;
33
33
  _a = JSII_RTTI_SYMBOL_1;
34
- BashExecFunction[_a] = { fqn: "cdk-certbot-dns-route53.BashExecFunction", version: "2.3.1" };
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLWJhc2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbGFtYmRhLWJhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDZDQUFrRDtBQUVsRCxpREFBaUQ7QUFDakQsNkNBQTZDO0FBQzdDLDJDQUF1QztBQXdDdkMsTUFBYSxnQkFBaUIsU0FBUSxzQkFBUztJQUU3QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDMUQsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUVoQywyR0FBMkc7UUFDM0csTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdEQsRUFBRSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7WUFDdEUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxFQUMxRCxDQUFDO1lBQ0YsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLElBQUksc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzlDLFlBQVksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU87WUFDeEMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVksSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU07WUFDOUQsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSx1QkFBUyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUNqRixDQUFDOztBQXZCSCw0Q0F3QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgQ2ZuT3V0cHV0LCBEdXJhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzaEV4ZWNGdW5jdGlvblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBwYXRoIG9mIHRoZSBzaGVsbCBzY3JpcHQgdG8gYmUgZXhlY3V0ZWQuXG4gICAqL1xuICByZWFkb25seSBzY3JpcHQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggb2YgeW91ciBjdXN0b20gZG9ja2VyZmlsZS5cbiAgICovXG4gIHJlYWRvbmx5IGRvY2tlcmZpbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExhbWJkYSBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gICAqL1xuICByZWFkb25seSBlbnZpcm9ubWVudD86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFRoZSBmdW5jdGlvbiBleGVjdXRpb24gdGltZSAoaW4gc2Vjb25kcykgYWZ0ZXIgd2hpY2ggTGFtYmRhIHRlcm1pbmF0ZXMgdGhlIGZ1bmN0aW9uLlxuICAgKiBCZWNhdXNlIHRoZSBleGVjdXRpb24gdGltZSBhZmZlY3RzIGNvc3QsIHNldCB0aGlzIHZhbHVlIGJhc2VkIG9uIHRoZSBmdW5jdGlvbidzIGV4cGVjdGVkIGV4ZWN1dGlvbiB0aW1lLlxuICAgKiBAZGVmYXVsdCAtIER1cmF0aW9uLnNlY29uZHMoNjApXG4gICAqICovXG4gIHJlYWRvbmx5IHRpbWVvdXQ/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogQ3VzdG9tIGxhbWJkYSBleGVjdXRpb24gcm9sZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhdXRvIGdlbmVyYXRlZCByb2xlLlxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZT86IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogQ3VzdG9tIGxhbWJkYSBJbWFnZSBBcmNoaXRlY3R1cmUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbGFtYmRhLkFyY2hpdGVjdHVyZS5YODZfNjRcbiAgICovXG4gIHJlYWRvbmx5IGFyY2hpdGVjdHVyZT86IGxhbWJkYS5BcmNoaXRlY3R1cmU7XG59XG5cbmV4cG9ydCBjbGFzcyBCYXNoRXhlY0Z1bmN0aW9uIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcmVhZG9ubHkgaGFuZGxlcjogbGFtYmRhLkRvY2tlckltYWdlRnVuY3Rpb247XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBCYXNoRXhlY0Z1bmN0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgZG9ja2VyRGlyUGF0aCA9IHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi9kb2NrZXIuZCcpO1xuICAgIGNvbnN0IHNjcmlwdFBhdGggPSBwcm9wcy5zY3JpcHQ7XG5cbiAgICAvLyBjb3B5IHRoZSB1c2VyIHNjcmlwdCB0byB0aGUgZG9ja2VyLmQgZGlyZWN0b3J5IGFzIG1haW4uc2ggc28gd2UgY2FuIGJ1bmRsZSBpdCB1cCBpbnRvIGEgbmV3IGRvY2tlciBpbWFnZVxuICAgIGNvbnN0IG1haW5GaWxlID0gcGF0aC5qb2luKGRvY2tlckRpclBhdGgsICcvbWFpbi5zaCcpO1xuICAgIGZzLmNvcHlGaWxlU3luYyhzY3JpcHRQYXRoLCBtYWluRmlsZSk7XG5cbiAgICB0aGlzLmhhbmRsZXIgPSBuZXcgbGFtYmRhLkRvY2tlckltYWdlRnVuY3Rpb24odGhpcywgJ0Jhc2hFeGVjRnVuY3Rpb24nLCB7XG4gICAgICBjb2RlOiBsYW1iZGEuRG9ja2VySW1hZ2VDb2RlLmZyb21JbWFnZUFzc2V0KGRvY2tlckRpclBhdGgsIHtcbiAgICAgIH0pLFxuICAgICAgdGltZW91dDogcHJvcHMudGltZW91dCA/PyBEdXJhdGlvbi5zZWNvbmRzKDYwKSxcbiAgICAgIGxvZ1JldGVudGlvbjogbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9EQVksXG4gICAgICBlbnZpcm9ubWVudDogcHJvcHMuZW52aXJvbm1lbnQsXG4gICAgICByb2xlOiBwcm9wcy5yb2xlLFxuICAgICAgYXJjaGl0ZWN0dXJlOiBwcm9wcy5hcmNoaXRlY3R1cmUgPz8gbGFtYmRhLkFyY2hpdGVjdHVyZS5YODZfNjQsXG4gICAgICBtZW1vcnlTaXplOiAxMDI0LFxuICAgIH0pO1xuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgJ0xvZ0dyb3VwJywgeyB2YWx1ZTogdGhpcy5oYW5kbGVyLmxvZ0dyb3VwLmxvZ0dyb3VwTmFtZSB9KTtcbiAgfVxufSJdfQ==
34
+ BashExecFunction[_a] = { fqn: "cdk-certbot-dns-route53.BashExecFunction", version: "2.4.1" };
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLWJhc2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbGFtYmRhLWJhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLDZDQUFrRDtBQUVsRCxpREFBaUQ7QUFDakQsNkNBQTZDO0FBQzdDLDJDQUF1QztBQXdDdkMsTUFBYSxnQkFBaUIsU0FBUSxzQkFBUztJQUU3QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDMUQsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUVoQywyR0FBMkc7UUFDM0csTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdEQsRUFBRSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7WUFDdEUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxFQUMxRCxDQUFDO1lBQ0YsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLElBQUksc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzlDLFlBQVksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU87WUFDeEMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDaEMsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSx1QkFBUyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUNqRixDQUFDOztBQXZCSCw0Q0F3QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgQ2ZuT3V0cHV0LCBEdXJhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzaEV4ZWNGdW5jdGlvblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBwYXRoIG9mIHRoZSBzaGVsbCBzY3JpcHQgdG8gYmUgZXhlY3V0ZWQuXG4gICAqL1xuICByZWFkb25seSBzY3JpcHQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggb2YgeW91ciBjdXN0b20gZG9ja2VyZmlsZS5cbiAgICovXG4gIHJlYWRvbmx5IGRvY2tlcmZpbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExhbWJkYSBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gICAqL1xuICByZWFkb25seSBlbnZpcm9ubWVudD86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFRoZSBmdW5jdGlvbiBleGVjdXRpb24gdGltZSAoaW4gc2Vjb25kcykgYWZ0ZXIgd2hpY2ggTGFtYmRhIHRlcm1pbmF0ZXMgdGhlIGZ1bmN0aW9uLlxuICAgKiBCZWNhdXNlIHRoZSBleGVjdXRpb24gdGltZSBhZmZlY3RzIGNvc3QsIHNldCB0aGlzIHZhbHVlIGJhc2VkIG9uIHRoZSBmdW5jdGlvbidzIGV4cGVjdGVkIGV4ZWN1dGlvbiB0aW1lLlxuICAgKiBAZGVmYXVsdCAtIER1cmF0aW9uLnNlY29uZHMoNjApXG4gICAqICovXG4gIHJlYWRvbmx5IHRpbWVvdXQ/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogQ3VzdG9tIGxhbWJkYSBleGVjdXRpb24gcm9sZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhdXRvIGdlbmVyYXRlZCByb2xlLlxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZT86IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogQ3VzdG9tIGxhbWJkYSBJbWFnZSBBcmNoaXRlY3R1cmUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbGFtYmRhLkFyY2hpdGVjdHVyZS5YODZfNjRcbiAgICovXG4gIHJlYWRvbmx5IGFyY2hpdGVjdHVyZT86IGxhbWJkYS5BcmNoaXRlY3R1cmU7XG59XG5cbmV4cG9ydCBjbGFzcyBCYXNoRXhlY0Z1bmN0aW9uIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcmVhZG9ubHkgaGFuZGxlcjogbGFtYmRhLkRvY2tlckltYWdlRnVuY3Rpb247XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBCYXNoRXhlY0Z1bmN0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgZG9ja2VyRGlyUGF0aCA9IHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi9kb2NrZXIuZCcpO1xuICAgIGNvbnN0IHNjcmlwdFBhdGggPSBwcm9wcy5zY3JpcHQ7XG5cbiAgICAvLyBjb3B5IHRoZSB1c2VyIHNjcmlwdCB0byB0aGUgZG9ja2VyLmQgZGlyZWN0b3J5IGFzIG1haW4uc2ggc28gd2UgY2FuIGJ1bmRsZSBpdCB1cCBpbnRvIGEgbmV3IGRvY2tlciBpbWFnZVxuICAgIGNvbnN0IG1haW5GaWxlID0gcGF0aC5qb2luKGRvY2tlckRpclBhdGgsICcvbWFpbi5zaCcpO1xuICAgIGZzLmNvcHlGaWxlU3luYyhzY3JpcHRQYXRoLCBtYWluRmlsZSk7XG5cbiAgICB0aGlzLmhhbmRsZXIgPSBuZXcgbGFtYmRhLkRvY2tlckltYWdlRnVuY3Rpb24odGhpcywgJ0Jhc2hFeGVjRnVuY3Rpb24nLCB7XG4gICAgICBjb2RlOiBsYW1iZGEuRG9ja2VySW1hZ2VDb2RlLmZyb21JbWFnZUFzc2V0KGRvY2tlckRpclBhdGgsIHtcbiAgICAgIH0pLFxuICAgICAgdGltZW91dDogcHJvcHMudGltZW91dCA/PyBEdXJhdGlvbi5zZWNvbmRzKDYwKSxcbiAgICAgIGxvZ1JldGVudGlvbjogbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9EQVksXG4gICAgICBlbnZpcm9ubWVudDogcHJvcHMuZW52aXJvbm1lbnQsXG4gICAgICByb2xlOiBwcm9wcy5yb2xlLFxuICAgICAgYXJjaGl0ZWN0dXJlOiBwcm9wcy5hcmNoaXRlY3R1cmUsXG4gICAgICBtZW1vcnlTaXplOiAxMDI0LFxuICAgIH0pO1xuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgJ0xvZ0dyb3VwJywgeyB2YWx1ZTogdGhpcy5oYW5kbGVyLmxvZ0dyb3VwLmxvZ0dyb3VwTmFtZSB9KTtcbiAgfVxufSJdfQ==
@@ -0,0 +1,17 @@
1
+ import * as lambdaPython from '@aws-cdk/aws-lambda-python-alpha';
2
+ import { Duration } from 'aws-cdk-lib';
3
+ import * as iam from 'aws-cdk-lib/aws-iam';
4
+ import * as lambda from 'aws-cdk-lib/aws-lambda';
5
+ import { Construct } from 'constructs';
6
+ export interface LambdaFunctionProps {
7
+ readonly timeout: Duration;
8
+ readonly environment?: {
9
+ [key: string]: string;
10
+ };
11
+ readonly role?: iam.IRole;
12
+ readonly architecture: lambda.Architecture;
13
+ }
14
+ export declare class LambdaPythonFunction extends Construct {
15
+ readonly handler: lambdaPython.PythonFunction;
16
+ constructor(scope: Construct, id: string, props: LambdaFunctionProps);
17
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.LambdaPythonFunction = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const path = require("path");
7
+ const lambdaPython = require("@aws-cdk/aws-lambda-python-alpha");
8
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
9
+ const lambda = require("aws-cdk-lib/aws-lambda");
10
+ const logs = require("aws-cdk-lib/aws-logs");
11
+ const constructs_1 = require("constructs");
12
+ class LambdaPythonFunction extends constructs_1.Construct {
13
+ constructor(scope, id, props) {
14
+ super(scope, id);
15
+ this.handler = new lambdaPython.PythonFunction(this, 'PythonFunction', {
16
+ entry: path.join(__dirname, '../assets/'),
17
+ handler: 'handler',
18
+ index: 'main.py',
19
+ runtime: lambda.Runtime.PYTHON_3_12,
20
+ timeout: props.timeout ?? aws_cdk_lib_1.Duration.seconds(60),
21
+ logRetention: logs.RetentionDays.ONE_DAY,
22
+ environment: props.environment,
23
+ role: props.role,
24
+ memorySize: 1024,
25
+ bundling: {
26
+ platform: props.architecture.dockerPlatform,
27
+ },
28
+ });
29
+ new aws_cdk_lib_1.CfnOutput(this, 'LogGroup', { value: this.handler.logGroup.logGroupName });
30
+ }
31
+ }
32
+ exports.LambdaPythonFunction = LambdaPythonFunction;
33
+ _a = JSII_RTTI_SYMBOL_1;
34
+ LambdaPythonFunction[_a] = { fqn: "cdk-certbot-dns-route53.LambdaPythonFunction", version: "2.4.1" };
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLXB5dGhvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9sYW1iZGEtcHl0aG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLGlFQUFpRTtBQUNqRSw2Q0FBa0Q7QUFFbEQsaURBQWlEO0FBQ2pELDZDQUE2QztBQUM3QywyQ0FBdUM7QUFVdkMsTUFBYSxvQkFBcUIsU0FBUSxzQkFBUztJQUVqRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBCO1FBQ2xFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLFlBQVksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQ3JFLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUM7WUFDekMsT0FBTyxFQUFFLFNBQVM7WUFDbEIsS0FBSyxFQUFFLFNBQVM7WUFDaEIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVztZQUNuQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sSUFBSSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDOUMsWUFBWSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTztZQUN4QyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFFBQVEsRUFBRTtnQkFDUixRQUFRLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxjQUFjO2FBQzVDO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSx1QkFBUyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUNqRixDQUFDOztBQW5CSCxvREFvQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgbGFtYmRhUHl0aG9uIGZyb20gJ0Bhd3MtY2RrL2F3cy1sYW1iZGEtcHl0aG9uLWFscGhhJztcbmltcG9ydCB7IENmbk91dHB1dCwgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUZ1bmN0aW9uUHJvcHMge1xuICByZWFkb25seSB0aW1lb3V0OiBEdXJhdGlvbjtcbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xuICByZWFkb25seSBhcmNoaXRlY3R1cmU6IGxhbWJkYS5BcmNoaXRlY3R1cmU7XG59XG5cblxuZXhwb3J0IGNsYXNzIExhbWJkYVB5dGhvbkZ1bmN0aW9uIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcmVhZG9ubHkgaGFuZGxlcjogbGFtYmRhUHl0aG9uLlB5dGhvbkZ1bmN0aW9uO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTGFtYmRhRnVuY3Rpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5oYW5kbGVyID0gbmV3IGxhbWJkYVB5dGhvbi5QeXRob25GdW5jdGlvbih0aGlzLCAnUHl0aG9uRnVuY3Rpb24nLCB7XG4gICAgICBlbnRyeTogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uL2Fzc2V0cy8nKSxcbiAgICAgIGhhbmRsZXI6ICdoYW5kbGVyJyxcbiAgICAgIGluZGV4OiAnbWFpbi5weScsXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5QWVRIT05fM18xMixcbiAgICAgIHRpbWVvdXQ6IHByb3BzLnRpbWVvdXQgPz8gRHVyYXRpb24uc2Vjb25kcyg2MCksXG4gICAgICBsb2dSZXRlbnRpb246IGxvZ3MuUmV0ZW50aW9uRGF5cy5PTkVfREFZLFxuICAgICAgZW52aXJvbm1lbnQ6IHByb3BzLmVudmlyb25tZW50LFxuICAgICAgcm9sZTogcHJvcHMucm9sZSxcbiAgICAgIG1lbW9yeVNpemU6IDEwMjQsXG4gICAgICBidW5kbGluZzoge1xuICAgICAgICBwbGF0Zm9ybTogcHJvcHMuYXJjaGl0ZWN0dXJlLmRvY2tlclBsYXRmb3JtLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsICdMb2dHcm91cCcsIHsgdmFsdWU6IHRoaXMuaGFuZGxlci5sb2dHcm91cC5sb2dHcm91cE5hbWUgfSk7XG4gIH1cbn0iXX0=
package/lib/main.d.ts CHANGED
@@ -62,3 +62,27 @@ export interface CertbotDnsRoute53JobProps {
62
62
  export declare class CertbotDnsRoute53Job extends Construct {
63
63
  constructor(scope: Construct, id: string, props: CertbotDnsRoute53JobProps);
64
64
  }
65
+ export interface CertbotOptions {
66
+ /**
67
+ * the domain must host on route53 like example.com.
68
+ *
69
+ * @example - `*.example.com` or `a.example.com` .
70
+ */
71
+ readonly domainName: string;
72
+ /**
73
+ * Email address for important account notifications.
74
+ */
75
+ readonly email: string;
76
+ /**
77
+ * Custom prefix directory on s3 bucket object path.
78
+ * @default - `s3://YOUR_BUCKET_NAME/2021-01-01/your.domain.name/`
79
+ *
80
+ * @example - customPrefixDirectory: '/' -> `s3://YOUR_BUCKET_NAME/your.domain.name/`
81
+ *
82
+ * @example - customPrefixDirectory: 'abc' -> `s3://YOUR_BUCKET_NAME/abc/your.domain.name/`
83
+ */
84
+ readonly customPrefixDirectory?: string;
85
+ }
86
+ export declare class CertbotDnsRoute53JobPython extends Construct {
87
+ constructor(scope: Construct, id: string, props: CertbotDnsRoute53JobProps);
88
+ }
package/lib/main.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
- var _a;
2
+ var _a, _b;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.CertbotDnsRoute53Job = void 0;
4
+ exports.CertbotDnsRoute53JobPython = exports.CertbotDnsRoute53Job = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  const path = require("path");
7
7
  const cdk = require("aws-cdk-lib");
@@ -11,6 +11,7 @@ const iam = require("aws-cdk-lib/aws-iam");
11
11
  const lambda = require("aws-cdk-lib/aws-lambda");
12
12
  const constructs_1 = require("constructs");
13
13
  const lambda_bash_1 = require("./lambda-bash");
14
+ const lambda_python_1 = require("./lambda-python");
14
15
  class CertbotDnsRoute53Job extends constructs_1.Construct {
15
16
  constructor(scope, id, props) {
16
17
  super(scope, id);
@@ -75,5 +76,69 @@ class CertbotDnsRoute53Job extends constructs_1.Construct {
75
76
  }
76
77
  exports.CertbotDnsRoute53Job = CertbotDnsRoute53Job;
77
78
  _a = JSII_RTTI_SYMBOL_1;
78
- CertbotDnsRoute53Job[_a] = { fqn: "cdk-certbot-dns-route53.CertbotDnsRoute53Job", version: "2.3.1" };
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLG1DQUFtQztBQUNuQyxpREFBaUQ7QUFDakQseURBQXlEO0FBQ3pELDJDQUEyQztBQUMzQyxpREFBaUQ7QUFHakQsMkNBQXVDO0FBQ3ZDLCtDQUFpRDtBQW9FakQsTUFBYSxvQkFBcUIsU0FBUSxzQkFBUztJQUNqRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWdDO1FBQ3hFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsTUFBTSxXQUFXLEdBQUc7WUFDbEIsV0FBVyxFQUFFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVO1lBQy9DLEtBQUssRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUs7WUFDakMsV0FBVyxFQUFFLEtBQUssQ0FBQyxjQUFjLENBQUMsVUFBVTtZQUM1Qyx1QkFBdUIsRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDLHFCQUFzQjtTQUNyRSxDQUFDO1FBRUYsTUFBTSxTQUFTLEdBQUcsSUFBSSw4QkFBZ0IsQ0FBQyxJQUFJLEVBQUUsNEJBQTRCLEVBQUU7WUFDekUsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLDJCQUEyQixDQUFDO1lBQ3pELE9BQU8sRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDaEMsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNO1lBQzlELFdBQVcsRUFBRTtnQkFDWCxHQUFHLFdBQVc7YUFDZjtTQUNGLENBQUMsQ0FBQztRQUVILEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFLLENBQUMsQ0FBQztRQUNoRSxNQUFNLHFCQUFxQixHQUFHLENBQUM7Z0JBQzdCLE1BQU0sRUFBRSxPQUFPO2dCQUNmLE1BQU0sRUFBRTtvQkFDTix5QkFBeUI7b0JBQ3pCLG1CQUFtQjtpQkFDcEI7Z0JBQ0QsUUFBUSxFQUFFO29CQUNSLEdBQUc7aUJBQ0o7YUFDRjtZQUNEO2dCQUNFLE1BQU0sRUFBRSxPQUFPO2dCQUNmLE1BQU0sRUFBRTtvQkFDTixrQ0FBa0M7aUJBQ25DO2dCQUNELFFBQVEsRUFBRTtvQkFDUixPQUFPLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLHlCQUF5QixLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtpQkFDM0Y7YUFDRixDQUFDLENBQUM7UUFDSCxxQkFBcUIsQ0FBQyxPQUFPLENBQzNCLENBQUMsQ0FBQyxFQUFFO1lBQ0YsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFLLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRixDQUFDLENBQ0YsQ0FBQztRQUdGLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTtnQkFDcEMsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO2dCQUN4QixPQUFPLEVBQUU7b0JBQ1AsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7aUJBQzdDO2FBQ0YsQ0FBQyxDQUFDO1NBQ0o7UUFBQSxDQUFDO1FBRUYsSUFBSSxLQUFLLENBQUMsd0JBQXdCLEVBQUU7WUFDbEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxtQkFBbUIsRUFBRTtnQkFDNUQsUUFBUSxFQUFFLFNBQVMsQ0FBQyxPQUFPO2dCQUMzQixRQUFRLEVBQUUsTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQUk7Z0JBQ3pDLEdBQUcsS0FBSyxDQUFDLGtCQUFrQjthQUM1QixDQUFDLENBQUM7WUFFSCxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLG1CQUFtQixFQUFFO2dCQUMzQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUc7YUFDZixDQUFDLENBQUM7U0FDSjtRQUFBLENBQUM7SUFDSixDQUFDOztBQWxFSCxvREFtRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGV2ZW50cyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzJztcbmltcG9ydCAqIGFzIHRhcmdldCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzLXRhcmdldHMnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0ICogYXMgcjUzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1yb3V0ZTUzJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEJhc2hFeGVjRnVuY3Rpb24gfSBmcm9tICcuL2xhbWJkYS1iYXNoJztcblxuZXhwb3J0IGludGVyZmFjZSBDZXJ0Ym90T3B0aW9ucyB7XG4gIC8qKlxuICAgKiB0aGUgZG9tYWluIG11c3QgaG9zdCBvbiByb3V0ZTUzIGxpa2UgZXhhbXBsZS5jb20uXG4gICAqXG4gICAqIEBleGFtcGxlIC0gYCouZXhhbXBsZS5jb21gIG9yIGBhLmV4YW1wbGUuY29tYCAuXG4gICAqL1xuICByZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVtYWlsIGFkZHJlc3MgZm9yIGltcG9ydGFudCBhY2NvdW50IG5vdGlmaWNhdGlvbnMuXG4gICAqL1xuICByZWFkb25seSBlbWFpbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gcHJlZml4IGRpcmVjdG9yeSBvbiBzMyBidWNrZXQgb2JqZWN0IHBhdGguXG4gICAqIEBkZWZhdWx0IC0gYHMzOi8vWU9VUl9CVUNLRVRfTkFNRS8yMDIxLTAxLTAxL3lvdXIuZG9tYWluLm5hbWUvYFxuICAgKlxuICAgKiBAZXhhbXBsZSAtIGN1c3RvbVByZWZpeERpcmVjdG9yeTogJy8nIC0+IGBzMzovL1lPVVJfQlVDS0VUX05BTUUveW91ci5kb21haW4ubmFtZS9gXG4gICAqXG4gICAqIEBleGFtcGxlIC0gY3VzdG9tUHJlZml4RGlyZWN0b3J5OiAnYWJjJyAtPiBgczM6Ly9ZT1VSX0JVQ0tFVF9OQU1FL2FiYy95b3VyLmRvbWFpbi5uYW1lL2BcbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbVByZWZpeERpcmVjdG9yeT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZXJ0Ym90RG5zUm91dGU1M0pvYlByb3BzIHtcbiAgLyoqXG4gICAqIHJ1biB0aGUgSm9iIHdpdGggZGVmaW5lZCBzY2hlZHVsZVxuICAgKiBAZGVmYXVsdCAtIG5vIHNjaGVkdWxlXG4gICAqL1xuICByZWFkb25seSBzY2hlZHVsZT86IGV2ZW50cy5TY2hlZHVsZTtcblxuICAvKipcbiAgICogVGhlIFMzIGJ1Y2tldCB0byBzdG9yZSBjZXJ0aWZpY2F0ZS5cbiAgICovXG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uQnVja2V0OiBzMy5JQnVja2V0O1xuXG4gIC8qKlxuICAgKiBUaGUgSG9zdFpvbmUgb24gcm91dGU1MyB0byBkbnMtMDEgY2hhbGxlbmdlLlxuICAgKi9cbiAgcmVhZG9ubHkgem9uZTogcjUzLklIb3N0ZWRab25lO1xuXG4gIC8qKlxuICAgKiBjZXJ0Ym90IGNtZCBvcHRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgY2VydGJvdE9wdGlvbnM6IENlcnRib3RPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gbGFtYmRhIEltYWdlIEFyY2hpdGVjdHVyZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBsYW1iZGEuQXJjaGl0ZWN0dXJlLlg4Nl82NFxuICAgKi9cbiAgcmVhZG9ubHkgYXJjaGl0ZWN0dXJlPzogbGFtYmRhLkFyY2hpdGVjdHVyZTtcblxuICAvKipcbiAgICogRW5hYmxlZCBMYW1iZGEgRnVuY3Rpb24gVVJMXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZWRMYW1iZGFGdW5jdGlvblVybD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgdG8gYWRkIGEgdXJsIHRvIGEgTGFtYmRhIGZ1bmN0aW9uXG4gICAqIEBkZWZhdWx0IC0gYXV0aFR5cGU6IGxhbWJkYS5GdW5jdGlvblVybEF1dGhUeXBlLk5PTkVcbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uVXJsT3B0aW9ucz86IGxhbWJkYS5GdW5jdGlvblVybE9wdGlvbnM7XG59XG5cbmV4cG9ydCBjbGFzcyBDZXJ0Ym90RG5zUm91dGU1M0pvYiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDZXJ0Ym90RG5zUm91dGU1M0pvYlByb3BzICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgY29uc3QgY2VydE9wdGlvbnMgPSB7XG4gICAgICBCVUNLRVRfTkFNRTogcHJvcHMuZGVzdGluYXRpb25CdWNrZXQuYnVja2V0TmFtZSxcbiAgICAgIEVNQUlMOiBwcm9wcy5jZXJ0Ym90T3B0aW9ucy5lbWFpbCxcbiAgICAgIERPTUFJTl9OQU1FOiBwcm9wcy5jZXJ0Ym90T3B0aW9ucy5kb21haW5OYW1lLFxuICAgICAgQ1VTVE9NX1BSRUZJWF9ESVJFQ1RPUlk6IHByb3BzLmNlcnRib3RPcHRpb25zLmN1c3RvbVByZWZpeERpcmVjdG9yeSEsXG4gICAgfTtcblxuICAgIGNvbnN0IGxhbWJkYUZ1biA9IG5ldyBCYXNoRXhlY0Z1bmN0aW9uKHRoaXMsICdjZXJ0Ym90RG5zUm91dGU1M0pvYkxhbWJkYScsIHtcbiAgICAgIHNjcmlwdDogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uL2RvY2tlci5kL2VudHJ5cG9pbnQuc2gnKSxcbiAgICAgIHRpbWVvdXQ6IGNkay5EdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgYXJjaGl0ZWN0dXJlOiBwcm9wcy5hcmNoaXRlY3R1cmUgPz8gbGFtYmRhLkFyY2hpdGVjdHVyZS5YODZfNjQsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAuLi5jZXJ0T3B0aW9ucyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBwcm9wcy5kZXN0aW5hdGlvbkJ1Y2tldC5ncmFudFJlYWRXcml0ZShsYW1iZGFGdW4uaGFuZGxlci5yb2xlISk7XG4gICAgY29uc3Qgcm91dGU1M1BvbGljeUpzb25MaXN0ID0gW3tcbiAgICAgIEVmZmVjdDogJ0FsbG93JyxcbiAgICAgIEFjdGlvbjogW1xuICAgICAgICAncm91dGU1MzpMaXN0SG9zdGVkWm9uZXMnLFxuICAgICAgICAncm91dGU1MzpHZXRDaGFuZ2UnLFxuICAgICAgXSxcbiAgICAgIFJlc291cmNlOiBbXG4gICAgICAgICcqJyxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBFZmZlY3Q6ICdBbGxvdycsXG4gICAgICBBY3Rpb246IFtcbiAgICAgICAgJ3JvdXRlNTM6Q2hhbmdlUmVzb3VyY2VSZWNvcmRTZXRzJyxcbiAgICAgIF0sXG4gICAgICBSZXNvdXJjZTogW1xuICAgICAgICBgYXJuOiR7bmV3IGNkay5TY29wZWRBd3ModGhpcykucGFydGl0aW9ufTpyb3V0ZTUzOjo6aG9zdGVkem9uZS8ke3Byb3BzLnpvbmUuaG9zdGVkWm9uZUlkfWAsXG4gICAgICBdLFxuICAgIH1dO1xuICAgIHJvdXRlNTNQb2xpY3lKc29uTGlzdC5mb3JFYWNoKFxuICAgICAgZSA9PiB7XG4gICAgICAgIGxhbWJkYUZ1bi5oYW5kbGVyLnJvbGUhLmFkZFRvUHJpbmNpcGFsUG9saWN5KGlhbS5Qb2xpY3lTdGF0ZW1lbnQuZnJvbUpzb24oZSkpO1xuICAgICAgfSxcbiAgICApO1xuXG5cbiAgICBpZiAocHJvcHMuc2NoZWR1bGUpIHtcbiAgICAgIG5ldyBldmVudHMuUnVsZSh0aGlzLCAnU2NoZWR1bGVSdWxlJywge1xuICAgICAgICBzY2hlZHVsZTogcHJvcHMuc2NoZWR1bGUsXG4gICAgICAgIHRhcmdldHM6IFtcbiAgICAgICAgICBuZXcgdGFyZ2V0LkxhbWJkYUZ1bmN0aW9uKGxhbWJkYUZ1bi5oYW5kbGVyKSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBpZiAocHJvcHMuZW5hYmxlZExhbWJkYUZ1bmN0aW9uVXJsKSB7XG4gICAgICBjb25zdCB1cmwgPSBuZXcgbGFtYmRhLkZ1bmN0aW9uVXJsKHRoaXMsICdMYW1iZGFGdW5jdGlvblVybCcsIHtcbiAgICAgICAgZnVuY3Rpb246IGxhbWJkYUZ1bi5oYW5kbGVyLFxuICAgICAgICBhdXRoVHlwZTogbGFtYmRhLkZ1bmN0aW9uVXJsQXV0aFR5cGUuTk9ORSxcbiAgICAgICAgLi4ucHJvcHMuZnVuY3Rpb25VcmxPcHRpb25zLFxuICAgICAgfSk7XG5cbiAgICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICdsYW1iZGFGdW5jdGlvblVybCcsIHtcbiAgICAgICAgdmFsdWU6IHVybC51cmwsXG4gICAgICB9KTtcbiAgICB9O1xuICB9XG59Il19
79
+ CertbotDnsRoute53Job[_a] = { fqn: "cdk-certbot-dns-route53.CertbotDnsRoute53Job", version: "2.4.1" };
80
+ class CertbotDnsRoute53JobPython extends constructs_1.Construct {
81
+ constructor(scope, id, props) {
82
+ super(scope, id);
83
+ const certOptions = {
84
+ BUCKET_NAME: props.destinationBucket.bucketName,
85
+ EMAIL: props.certbotOptions.email,
86
+ DOMAIN_NAME: props.certbotOptions.domainName,
87
+ CUSTOM_PREFIX_DIRECTORY: props.certbotOptions.customPrefixDirectory,
88
+ };
89
+ const lambdaFun = new lambda_python_1.LambdaPythonFunction(this, 'certbotDnsRoute53JobPythonLambda', {
90
+ timeout: cdk.Duration.minutes(5),
91
+ architecture: lambda.Architecture.X86_64,
92
+ environment: {
93
+ ...certOptions,
94
+ },
95
+ });
96
+ props.destinationBucket.grantReadWrite(lambdaFun.handler.role);
97
+ const route53PolicyJsonList = [{
98
+ Effect: 'Allow',
99
+ Action: [
100
+ 'route53:ListHostedZones',
101
+ 'route53:GetChange',
102
+ ],
103
+ Resource: [
104
+ '*',
105
+ ],
106
+ },
107
+ {
108
+ Effect: 'Allow',
109
+ Action: [
110
+ 'route53:ChangeResourceRecordSets',
111
+ ],
112
+ Resource: [
113
+ `arn:${new cdk.ScopedAws(this).partition}:route53:::hostedzone/${props.zone.hostedZoneId}`,
114
+ ],
115
+ }];
116
+ route53PolicyJsonList.forEach(e => {
117
+ lambdaFun.handler.role.addToPrincipalPolicy(iam.PolicyStatement.fromJson(e));
118
+ });
119
+ if (props.schedule) {
120
+ new events.Rule(this, 'ScheduleRule', {
121
+ schedule: props.schedule,
122
+ targets: [
123
+ new target.LambdaFunction(lambdaFun.handler),
124
+ ],
125
+ });
126
+ }
127
+ ;
128
+ if (props.enabledLambdaFunctionUrl) {
129
+ const url = new lambda.FunctionUrl(this, 'LambdaFunctionUrl', {
130
+ function: lambdaFun.handler,
131
+ authType: lambda.FunctionUrlAuthType.NONE,
132
+ ...props.functionUrlOptions,
133
+ });
134
+ new cdk.CfnOutput(this, 'lambdaFunctionUrl', {
135
+ value: url.url,
136
+ });
137
+ }
138
+ ;
139
+ }
140
+ }
141
+ exports.CertbotDnsRoute53JobPython = CertbotDnsRoute53JobPython;
142
+ _b = JSII_RTTI_SYMBOL_1;
143
+ CertbotDnsRoute53JobPython[_b] = { fqn: "cdk-certbot-dns-route53.CertbotDnsRoute53JobPython", version: "2.4.1" };
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLG1DQUFtQztBQUNuQyxpREFBaUQ7QUFDakQseURBQXlEO0FBQ3pELDJDQUEyQztBQUMzQyxpREFBaUQ7QUFHakQsMkNBQXVDO0FBQ3ZDLCtDQUFpRDtBQUNqRCxtREFBdUQ7QUFvRXZELE1BQWEsb0JBQXFCLFNBQVEsc0JBQVM7SUFDakQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFnQztRQUN4RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLE1BQU0sV0FBVyxHQUFHO1lBQ2xCLFdBQVcsRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsVUFBVTtZQUMvQyxLQUFLLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxLQUFLO1lBQ2pDLFdBQVcsRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDLFVBQVU7WUFDNUMsdUJBQXVCLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxxQkFBc0I7U0FDckUsQ0FBQztRQUVGLE1BQU0sU0FBUyxHQUFHLElBQUksOEJBQWdCLENBQUMsSUFBSSxFQUFFLDRCQUE0QixFQUFFO1lBQ3pFLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSwyQkFBMkIsQ0FBQztZQUN6RCxPQUFPLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTTtZQUM5RCxXQUFXLEVBQUU7Z0JBQ1gsR0FBRyxXQUFXO2FBQ2Y7U0FDRixDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSyxDQUFDLENBQUM7UUFDaEUsTUFBTSxx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QUFDOztBQWpFSCxnRUFrRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGV2ZW50cyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzJztcbmltcG9ydCAqIGFzIHRhcmdldCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzLXRhcmdldHMnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0ICogYXMgcjUzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1yb3V0ZTUzJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEJhc2hFeGVjRnVuY3Rpb24gfSBmcm9tICcuL2xhbWJkYS1iYXNoJztcbmltcG9ydCB7IExhbWJkYVB5dGhvbkZ1bmN0aW9uIH0gZnJvbSAnLi9sYW1iZGEtcHl0aG9uJztcblxuZXhwb3J0IGludGVyZmFjZSBDZXJ0Ym90T3B0aW9ucyB7XG4gIC8qKlxuICAgKiB0aGUgZG9tYWluIG11c3QgaG9zdCBvbiByb3V0ZTUzIGxpa2UgZXhhbXBsZS5jb20uXG4gICAqXG4gICAqIEBleGFtcGxlIC0gYCouZXhhbXBsZS5jb21gIG9yIGBhLmV4YW1wbGUuY29tYCAuXG4gICAqL1xuICByZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVtYWlsIGFkZHJlc3MgZm9yIGltcG9ydGFudCBhY2NvdW50IG5vdGlmaWNhdGlvbnMuXG4gICAqL1xuICByZWFkb25seSBlbWFpbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gcHJlZml4IGRpcmVjdG9yeSBvbiBzMyBidWNrZXQgb2JqZWN0IHBhdGguXG4gICAqIEBkZWZhdWx0IC0gYHMzOi8vWU9VUl9CVUNLRVRfTkFNRS8yMDIxLTAxLTAxL3lvdXIuZG9tYWluLm5hbWUvYFxuICAgKlxuICAgKiBAZXhhbXBsZSAtIGN1c3RvbVByZWZpeERpcmVjdG9yeTogJy8nIC0+IGBzMzovL1lPVVJfQlVDS0VUX05BTUUveW91ci5kb21haW4ubmFtZS9gXG4gICAqXG4gICAqIEBleGFtcGxlIC0gY3VzdG9tUHJlZml4RGlyZWN0b3J5OiAnYWJjJyAtPiBgczM6Ly9ZT1VSX0JVQ0tFVF9OQU1FL2FiYy95b3VyLmRvbWFpbi5uYW1lL2BcbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbVByZWZpeERpcmVjdG9yeT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZXJ0Ym90RG5zUm91dGU1M0pvYlByb3BzIHtcbiAgLyoqXG4gICAqIHJ1biB0aGUgSm9iIHdpdGggZGVmaW5lZCBzY2hlZHVsZVxuICAgKiBAZGVmYXVsdCAtIG5vIHNjaGVkdWxlXG4gICAqL1xuICByZWFkb25seSBzY2hlZHVsZT86IGV2ZW50cy5TY2hlZHVsZTtcblxuICAvKipcbiAgICogVGhlIFMzIGJ1Y2tldCB0byBzdG9yZSBjZXJ0aWZpY2F0ZS5cbiAgICovXG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uQnVja2V0OiBzMy5JQnVja2V0O1xuXG4gIC8qKlxuICAgKiBUaGUgSG9zdFpvbmUgb24gcm91dGU1MyB0byBkbnMtMDEgY2hhbGxlbmdlLlxuICAgKi9cbiAgcmVhZG9ubHkgem9uZTogcjUzLklIb3N0ZWRab25lO1xuXG4gIC8qKlxuICAgKiBjZXJ0Ym90IGNtZCBvcHRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgY2VydGJvdE9wdGlvbnM6IENlcnRib3RPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gbGFtYmRhIEltYWdlIEFyY2hpdGVjdHVyZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBsYW1iZGEuQXJjaGl0ZWN0dXJlLlg4Nl82NFxuICAgKi9cbiAgcmVhZG9ubHkgYXJjaGl0ZWN0dXJlPzogbGFtYmRhLkFyY2hpdGVjdHVyZTtcblxuICAvKipcbiAgICogRW5hYmxlZCBMYW1iZGEgRnVuY3Rpb24gVVJMXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZWRMYW1iZGFGdW5jdGlvblVybD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgdG8gYWRkIGEgdXJsIHRvIGEgTGFtYmRhIGZ1bmN0aW9uXG4gICAqIEBkZWZhdWx0IC0gYXV0aFR5cGU6IGxhbWJkYS5GdW5jdGlvblVybEF1dGhUeXBlLk5PTkVcbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uVXJsT3B0aW9ucz86IGxhbWJkYS5GdW5jdGlvblVybE9wdGlvbnM7XG59XG5cbmV4cG9ydCBjbGFzcyBDZXJ0Ym90RG5zUm91dGU1M0pvYiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDZXJ0Ym90RG5zUm91dGU1M0pvYlByb3BzICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgY29uc3QgY2VydE9wdGlvbnMgPSB7XG4gICAgICBCVUNLRVRfTkFNRTogcHJvcHMuZGVzdGluYXRpb25CdWNrZXQuYnVja2V0TmFtZSxcbiAgICAgIEVNQUlMOiBwcm9wcy5jZXJ0Ym90T3B0aW9ucy5lbWFpbCxcbiAgICAgIERPTUFJTl9OQU1FOiBwcm9wcy5jZXJ0Ym90T3B0aW9ucy5kb21haW5OYW1lLFxuICAgICAgQ1VTVE9NX1BSRUZJWF9ESVJFQ1RPUlk6IHByb3BzLmNlcnRib3RPcHRpb25zLmN1c3RvbVByZWZpeERpcmVjdG9yeSEsXG4gICAgfTtcblxuICAgIGNvbnN0IGxhbWJkYUZ1biA9IG5ldyBCYXNoRXhlY0Z1bmN0aW9uKHRoaXMsICdjZXJ0Ym90RG5zUm91dGU1M0pvYkxhbWJkYScsIHtcbiAgICAgIHNjcmlwdDogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uL2RvY2tlci5kL2VudHJ5cG9pbnQuc2gnKSxcbiAgICAgIHRpbWVvdXQ6IGNkay5EdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgYXJjaGl0ZWN0dXJlOiBwcm9wcy5hcmNoaXRlY3R1cmUgPz8gbGFtYmRhLkFyY2hpdGVjdHVyZS5YODZfNjQsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAuLi5jZXJ0T3B0aW9ucyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBwcm9wcy5kZXN0aW5hdGlvbkJ1Y2tldC5ncmFudFJlYWRXcml0ZShsYW1iZGFGdW4uaGFuZGxlci5yb2xlISk7XG4gICAgY29uc3Qgcm91dGU1M1BvbGljeUpzb25MaXN0ID0gW3tcbiAgICAgIEVmZmVjdDogJ0FsbG93JyxcbiAgICAgIEFjdGlvbjogW1xuICAgICAgICAncm91dGU1MzpMaXN0SG9zdGVkWm9uZXMnLFxuICAgICAgICAncm91dGU1MzpHZXRDaGFuZ2UnLFxuICAgICAgXSxcbiAgICAgIFJlc291cmNlOiBbXG4gICAgICAgICcqJyxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBFZmZlY3Q6ICdBbGxvdycsXG4gICAgICBBY3Rpb246IFtcbiAgICAgICAgJ3JvdXRlNTM6Q2hhbmdlUmVzb3VyY2VSZWNvcmRTZXRzJyxcbiAgICAgIF0sXG4gICAgICBSZXNvdXJjZTogW1xuICAgICAgICBgYXJuOiR7bmV3IGNkay5TY29wZWRBd3ModGhpcykucGFydGl0aW9ufTpyb3V0ZTUzOjo6aG9zdGVkem9uZS8ke3Byb3BzLnpvbmUuaG9zdGVkWm9uZUlkfWAsXG4gICAgICBdLFxuICAgIH1dO1xuICAgIHJvdXRlNTNQb2xpY3lKc29uTGlzdC5mb3JFYWNoKFxuICAgICAgZSA9PiB7XG4gICAgICAgIGxhbWJkYUZ1bi5oYW5kbGVyLnJvbGUhLmFkZFRvUHJpbmNpcGFsUG9saWN5KGlhbS5Qb2xpY3lTdGF0ZW1lbnQuZnJvbUpzb24oZSkpO1xuICAgICAgfSxcbiAgICApO1xuXG5cbiAgICBpZiAocHJvcHMuc2NoZWR1bGUpIHtcbiAgICAgIG5ldyBldmVudHMuUnVsZSh0aGlzLCAnU2NoZWR1bGVSdWxlJywge1xuICAgICAgICBzY2hlZHVsZTogcHJvcHMuc2NoZWR1bGUsXG4gICAgICAgIHRhcmdldHM6IFtcbiAgICAgICAgICBuZXcgdGFyZ2V0LkxhbWJkYUZ1bmN0aW9uKGxhbWJkYUZ1bi5oYW5kbGVyKSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBpZiAocHJvcHMuZW5hYmxlZExhbWJkYUZ1bmN0aW9uVXJsKSB7XG4gICAgICBjb25zdCB1cmwgPSBuZXcgbGFtYmRhLkZ1bmN0aW9uVXJsKHRoaXMsICdMYW1iZGFGdW5jdGlvblVybCcsIHtcbiAgICAgICAgZnVuY3Rpb246IGxhbWJkYUZ1bi5oYW5kbGVyLFxuICAgICAgICBhdXRoVHlwZTogbGFtYmRhLkZ1bmN0aW9uVXJsQXV0aFR5cGUuTk9ORSxcbiAgICAgICAgLi4ucHJvcHMuZnVuY3Rpb25VcmxPcHRpb25zLFxuICAgICAgfSk7XG5cbiAgICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICdsYW1iZGFGdW5jdGlvblVybCcsIHtcbiAgICAgICAgdmFsdWU6IHVybC51cmwsXG4gICAgICB9KTtcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2VydGJvdE9wdGlvbnMge1xuICAvKipcbiAgICogdGhlIGRvbWFpbiBtdXN0IGhvc3Qgb24gcm91dGU1MyBsaWtlIGV4YW1wbGUuY29tLlxuICAgKlxuICAgKiBAZXhhbXBsZSAtIGAqLmV4YW1wbGUuY29tYCBvciBgYS5leGFtcGxlLmNvbWAgLlxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbWFpbCBhZGRyZXNzIGZvciBpbXBvcnRhbnQgYWNjb3VudCBub3RpZmljYXRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgZW1haWw6IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIHByZWZpeCBkaXJlY3Rvcnkgb24gczMgYnVja2V0IG9iamVjdCBwYXRoLlxuICAgKiBAZGVmYXVsdCAtIGBzMzovL1lPVVJfQlVDS0VUX05BTUUvMjAyMS0wMS0wMS95b3VyLmRvbWFpbi5uYW1lL2BcbiAgICpcbiAgICogQGV4YW1wbGUgLSBjdXN0b21QcmVmaXhEaXJlY3Rvcnk6ICcvJyAtPiBgczM6Ly9ZT1VSX0JVQ0tFVF9OQU1FL3lvdXIuZG9tYWluLm5hbWUvYFxuICAgKlxuICAgKiBAZXhhbXBsZSAtIGN1c3RvbVByZWZpeERpcmVjdG9yeTogJ2FiYycgLT4gYHMzOi8vWU9VUl9CVUNLRVRfTkFNRS9hYmMveW91ci5kb21haW4ubmFtZS9gXG4gICAqL1xuICByZWFkb25seSBjdXN0b21QcmVmaXhEaXJlY3Rvcnk/OiBzdHJpbmc7XG59XG5cblxuZXhwb3J0IGNsYXNzIENlcnRib3REbnNSb3V0ZTUzSm9iUHl0aG9uIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENlcnRib3REbnNSb3V0ZTUzSm9iUHJvcHMgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBjZXJ0T3B0aW9ucyA9IHtcbiAgICAgIEJVQ0tFVF9OQU1FOiBwcm9wcy5kZXN0aW5hdGlvbkJ1Y2tldC5idWNrZXROYW1lLFxuICAgICAgRU1BSUw6IHByb3BzLmNlcnRib3RPcHRpb25zLmVtYWlsLFxuICAgICAgRE9NQUlOX05BTUU6IHByb3BzLmNlcnRib3RPcHRpb25zLmRvbWFpbk5hbWUsXG4gICAgICBDVVNUT01fUFJFRklYX0RJUkVDVE9SWTogcHJvcHMuY2VydGJvdE9wdGlvbnMuY3VzdG9tUHJlZml4RGlyZWN0b3J5ISxcbiAgICB9O1xuXG4gICAgY29uc3QgbGFtYmRhRnVuID0gbmV3IExhbWJkYVB5dGhvbkZ1bmN0aW9uKHRoaXMsICdjZXJ0Ym90RG5zUm91dGU1M0pvYlB5dGhvbkxhbWJkYScsIHtcbiAgICAgIHRpbWVvdXQ6IGNkay5EdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgYXJjaGl0ZWN0dXJlOiBsYW1iZGEuQXJjaGl0ZWN0dXJlLlg4Nl82NCxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIC4uLmNlcnRPcHRpb25zLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHByb3BzLmRlc3RpbmF0aW9uQnVja2V0LmdyYW50UmVhZFdyaXRlKGxhbWJkYUZ1bi5oYW5kbGVyLnJvbGUhKTtcbiAgICBjb25zdCByb3V0ZTUzUG9saWN5SnNvbkxpc3QgPSBbe1xuICAgICAgRWZmZWN0OiAnQWxsb3cnLFxuICAgICAgQWN0aW9uOiBbXG4gICAgICAgICdyb3V0ZTUzOkxpc3RIb3N0ZWRab25lcycsXG4gICAgICAgICdyb3V0ZTUzOkdldENoYW5nZScsXG4gICAgICBdLFxuICAgICAgUmVzb3VyY2U6IFtcbiAgICAgICAgJyonLFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIEVmZmVjdDogJ0FsbG93JyxcbiAgICAgIEFjdGlvbjogW1xuICAgICAgICAncm91dGU1MzpDaGFuZ2VSZXNvdXJjZVJlY29yZFNldHMnLFxuICAgICAgXSxcbiAgICAgIFJlc291cmNlOiBbXG4gICAgICAgIGBhcm46JHtuZXcgY2RrLlNjb3BlZEF3cyh0aGlzKS5wYXJ0aXRpb259OnJvdXRlNTM6Ojpob3N0ZWR6b25lLyR7cHJvcHMuem9uZS5ob3N0ZWRab25lSWR9YCxcbiAgICAgIF0sXG4gICAgfV07XG4gICAgcm91dGU1M1BvbGljeUpzb25MaXN0LmZvckVhY2goXG4gICAgICBlID0+IHtcbiAgICAgICAgbGFtYmRhRnVuLmhhbmRsZXIucm9sZSEuYWRkVG9QcmluY2lwYWxQb2xpY3koaWFtLlBvbGljeVN0YXRlbWVudC5mcm9tSnNvbihlKSk7XG4gICAgICB9LFxuICAgICk7XG5cblxuICAgIGlmIChwcm9wcy5zY2hlZHVsZSkge1xuICAgICAgbmV3IGV2ZW50cy5SdWxlKHRoaXMsICdTY2hlZHVsZVJ1bGUnLCB7XG4gICAgICAgIHNjaGVkdWxlOiBwcm9wcy5zY2hlZHVsZSxcbiAgICAgICAgdGFyZ2V0czogW1xuICAgICAgICAgIG5ldyB0YXJnZXQuTGFtYmRhRnVuY3Rpb24obGFtYmRhRnVuLmhhbmRsZXIpLFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGlmIChwcm9wcy5lbmFibGVkTGFtYmRhRnVuY3Rpb25VcmwpIHtcbiAgICAgIGNvbnN0IHVybCA9IG5ldyBsYW1iZGEuRnVuY3Rpb25VcmwodGhpcywgJ0xhbWJkYUZ1bmN0aW9uVXJsJywge1xuICAgICAgICBmdW5jdGlvbjogbGFtYmRhRnVuLmhhbmRsZXIsXG4gICAgICAgIGF1dGhUeXBlOiBsYW1iZGEuRnVuY3Rpb25VcmxBdXRoVHlwZS5OT05FLFxuICAgICAgICAuLi5wcm9wcy5mdW5jdGlvblVybE9wdGlvbnMsXG4gICAgICB9KTtcblxuICAgICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ2xhbWJkYUZ1bmN0aW9uVXJsJywge1xuICAgICAgICB2YWx1ZTogdXJsLnVybCxcbiAgICAgIH0pO1xuICAgIH07XG4gIH1cbn0iXX0=
package/package.json CHANGED
@@ -41,7 +41,7 @@
41
41
  "@types/node": "^16",
42
42
  "@typescript-eslint/eslint-plugin": "^6",
43
43
  "@typescript-eslint/parser": "^6",
44
- "aws-cdk-lib": "2.110.0",
44
+ "aws-cdk-lib": "2.115.0",
45
45
  "constructs": "10.0.5",
46
46
  "eslint": "^8",
47
47
  "eslint-import-resolver-typescript": "^2.7.1",
@@ -59,9 +59,12 @@
59
59
  "typescript": "^4.9"
60
60
  },
61
61
  "peerDependencies": {
62
- "aws-cdk-lib": "^2.110.0",
62
+ "aws-cdk-lib": "^2.115.0",
63
63
  "constructs": "^10.0.5"
64
64
  },
65
+ "dependencies": {
66
+ "@aws-cdk/aws-lambda-python-alpha": "2.115.0-alpha.0"
67
+ },
65
68
  "resolutions": {
66
69
  "@types/babel__traverse": "7.18.2",
67
70
  "@types/prettier": "2.6.0"
@@ -73,7 +76,7 @@
73
76
  ],
74
77
  "main": "lib/index.js",
75
78
  "license": "Apache-2.0",
76
- "version": "2.3.1",
79
+ "version": "2.4.1",
77
80
  "jest": {
78
81
  "testMatch": [
79
82
  "<rootDir>/src/**/__tests__/**/*.ts?(x)",